{"version":3,"file":"firebase-app.js","sources":["../../node_modules/whatwg-fetch/fetch.js","../polyfill/node_modules/promise-polyfill/lib/polyfill.js","../../node_modules/core-js/modules/_global.js","../../node_modules/core-js/modules/_core.js","../../node_modules/core-js/modules/_is-object.js","../../node_modules/core-js/modules/_an-object.js","../../node_modules/core-js/modules/_fails.js","../../node_modules/core-js/modules/_descriptors.js","../../node_modules/core-js/modules/_dom-create.js","../../node_modules/core-js/modules/_ie8-dom-define.js","../../node_modules/core-js/modules/_to-primitive.js","../../node_modules/core-js/modules/_object-dp.js","../../node_modules/core-js/modules/_property-desc.js","../../node_modules/core-js/modules/_hide.js","../../node_modules/core-js/modules/_has.js","../../node_modules/core-js/modules/_uid.js","../../node_modules/core-js/modules/_redefine.js","../../node_modules/core-js/modules/_ctx.js","../../node_modules/core-js/modules/_a-function.js","../../node_modules/core-js/modules/_export.js","../../node_modules/core-js/modules/_cof.js","../../node_modules/core-js/modules/_iobject.js","../../node_modules/core-js/modules/_defined.js","../../node_modules/core-js/modules/_to-object.js","../../node_modules/core-js/modules/_to-integer.js","../../node_modules/core-js/modules/_to-length.js","../../node_modules/core-js/modules/_is-array.js","../../node_modules/core-js/modules/_shared.js","../../node_modules/core-js/modules/_wks.js","../../node_modules/core-js/modules/_array-species-constructor.js","../../node_modules/core-js/modules/_array-species-create.js","../../node_modules/core-js/modules/_array-methods.js","../../node_modules/core-js/modules/_add-to-unscopables.js","../../node_modules/core-js/modules/es6.array.find.js","../../node_modules/core-js/fn/array/find.js","../../node_modules/core-js/modules/es6.array.find-index.js","../../node_modules/core-js/fn/array/find-index.js","../../node_modules/core-js/modules/_array-includes.js","../../node_modules/core-js/modules/_to-iobject.js","../../node_modules/core-js/modules/_to-absolute-index.js","../../node_modules/core-js/modules/_shared-key.js","../../node_modules/core-js/modules/_object-keys-internal.js","../../node_modules/core-js/modules/_enum-bug-keys.js","../../node_modules/core-js/modules/_object-keys.js","../../node_modules/core-js/modules/_object-gops.js","../../node_modules/core-js/modules/_object-pie.js","../../node_modules/core-js/modules/_object-assign.js","../../node_modules/core-js/modules/es6.object.assign.js","../../node_modules/core-js/fn/object/assign.js","../../node_modules/core-js/modules/_is-regexp.js","../../node_modules/core-js/modules/_string-context.js","../../node_modules/core-js/modules/_fails-is-regexp.js","../../node_modules/core-js/modules/es6.string.starts-with.js","../../node_modules/core-js/fn/string/starts-with.js","../../node_modules/core-js/modules/es6.string.repeat.js","../../node_modules/core-js/modules/_string-repeat.js","../../node_modules/core-js/fn/string/repeat.js","../../node_modules/core-js/modules/_meta.js","../../node_modules/core-js/modules/_set-to-string-tag.js","../../node_modules/core-js/modules/_wks-ext.js","../../node_modules/core-js/modules/_wks-define.js","../../node_modules/core-js/modules/_object-dps.js","../../node_modules/core-js/modules/_html.js","../../node_modules/core-js/modules/_object-create.js","../../node_modules/core-js/modules/_object-gopn.js","../../node_modules/core-js/modules/_object-gopn-ext.js","../../node_modules/core-js/modules/_object-gopd.js","../../node_modules/core-js/modules/es6.symbol.js","../../node_modules/core-js/modules/_enum-keys.js","../../node_modules/core-js/modules/_classof.js","../../node_modules/core-js/modules/es6.object.to-string.js","../../node_modules/core-js/modules/es7.symbol.async-iterator.js","../../node_modules/core-js/modules/es7.symbol.observable.js","../../node_modules/core-js/fn/symbol/index.js","../../node_modules/core-js/modules/_iter-create.js","../../node_modules/core-js/modules/_string-at.js","../../node_modules/core-js/modules/_object-gpo.js","../../node_modules/core-js/modules/_iter-define.js","../../node_modules/core-js/modules/es6.string.iterator.js","../../node_modules/core-js/modules/_iter-step.js","../../node_modules/core-js/modules/es6.array.iterator.js","../../node_modules/core-js/modules/web.dom.iterable.js","../../node_modules/core-js/fn/symbol/iterator.js","../../node_modules/tslib/tslib.es6.js","../util/dist/index.esm.js","../app/dist/index.esm.js"],"sourcesContent":["(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","'use strict';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = function(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n return constructor.resolve(callback()).then(function() {\n return constructor.reject(reason);\n });\n }\n );\n};\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(values) {\n return new Promise(function(resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n (typeof setImmediate === 'function' &&\n function(fn) {\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nvar globalNS = (function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n})();\n\nif (!globalNS.Promise) {\n globalNS.Promise = Promise;\n}\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.5.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('../../modules/es6.array.find');\nmodule.exports = require('../../modules/_core').Array.find;\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('../../modules/es6.array.find-index');\nmodule.exports = require('../../modules/_core').Array.findIndex;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","require('../../modules/es6.string.starts-with');\nmodule.exports = require('../../modules/_core').String.startsWith;\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","require('../../modules/es6.string.repeat');\nmodule.exports = require('../../modules/_core').String.repeat;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { __extends } from 'tslib';\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nvar CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n * @param {*} assertion The assertion to be tested for falsiness\r\n * @param {!string} message The message to display if the check fails\r\n */\r\nvar assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n * @param {string} message\r\n * @return {!Error}\r\n */\r\nvar assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar stringToByteArray = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [], p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) == 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param {Array} bytes Array of numbers representing characters.\r\n * @return {string} Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [], pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n var c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n var c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n var c4 = bytes[pos++];\r\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n * @type {Object}\r\n * @private\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n * @type {Object}\r\n * @private\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @type {Object}\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @type {Object}\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n * @type {string}\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n * @type {string}\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n * @type {string}\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n * @type {boolean}\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param {Array|Uint8Array} input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param {boolean=} opt_webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return {string} The base64 encoded string.\r\n */\r\n encodeByteArray: function (input, opt_webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n var byteToCharMap = opt_webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length; i += 3) {\r\n var byte1 = input[i];\r\n var haveByte2 = i + 1 < input.length;\r\n var byte2 = haveByte2 ? input[i + 1] : 0;\r\n var haveByte3 = i + 2 < input.length;\r\n var byte3 = haveByte3 ? input[i + 2] : 0;\r\n var outByte1 = byte1 >> 2;\r\n var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n var outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param {string} input A string to encode.\r\n * @param {boolean=} opt_webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return {string} The base64 encoded string.\r\n */\r\n encodeString: function (input, opt_webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray(input), opt_webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param {string} input to decode.\r\n * @param {boolean=} opt_webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return {string} string representing the decoded value.\r\n */\r\n decodeString: function (input, opt_webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, opt_webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param {string} input Input to decode.\r\n * @param {boolean=} opt_webSafe True if we should use the web-safe alphabet.\r\n * @return {!Array} bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray: function (input, opt_webSafe) {\r\n this.init_();\r\n var charToByteMap = opt_webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length;) {\r\n var byte1 = charToByteMap[input.charAt(i++)];\r\n var haveByte2 = i < input.length;\r\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n var haveByte3 = i < input.length;\r\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n var haveByte4 = i < input.length;\r\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 != 64) {\r\n var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 != 64) {\r\n var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_: function () {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n * @param {!string} str\r\n * @return {!string}\r\n */\r\nvar base64Encode = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param {string} str To be decoded\r\n * @return {?string} Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n var dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (var prop in source) {\r\n if (!source.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\n// TODO: Really needed (for JSCompiler type checking)?\r\nfunction patchProperty(obj, prop, value) {\r\n obj[prop] = value;\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n * @param {((?function(?(Error)): (?|undefined))| (?function(?(Error),?=): (?|undefined)))=} callback\r\n * @return {!function(?(Error), ?=)}\r\n */\r\n Deferred.prototype.wrapCallback = function (callback) {\r\n var _this = this;\r\n return function (error, value) {\r\n if (error) {\r\n _this.reject(error);\r\n }\r\n else {\r\n _this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n _this.promise.catch(function () { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n };\r\n return Deferred;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return {string} user agent string\r\n */\r\nvar getUA = function () {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n};\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap in the Ripple emulator) nor\r\n * Cordova `onDeviceReady`, which would normally wait for a callback.\r\n *\r\n * @return {boolean} isMobileCordova\r\n */\r\nvar isMobileCordova = function () {\r\n return (typeof window !== 'undefined' &&\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n};\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return {boolean} True if ReactNative environment is detected.\r\n */\r\nvar isReactNative = function () {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n};\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return {boolean} True if Node.js environment is detected.\r\n */\r\nvar isNodeSdk = function () {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n};\n\nvar ERROR_NAME = 'FirebaseError';\r\nvar captureStackTrace = Error\r\n .captureStackTrace;\r\n// Export for faking in tests\r\nfunction patchCapture(captureFake) {\r\n var result = captureStackTrace;\r\n captureStackTrace = captureFake;\r\n return result;\r\n}\r\nvar FirebaseError = /** @class */ (function () {\r\n function FirebaseError(code, message) {\r\n this.code = code;\r\n this.message = message;\r\n // We want the stack value, if implemented by Error\r\n if (captureStackTrace) {\r\n // Patches this.stack, omitted calls above ErrorFactory#create\r\n captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n else {\r\n try {\r\n // In case of IE11, stack will be set only after error is raised.\r\n // https://docs.microsoft.com/en-us/scripting/javascript/reference/stack-property-error-javascript\r\n throw Error.apply(this, arguments);\r\n }\r\n catch (err) {\r\n this.name = ERROR_NAME;\r\n // Make non-enumerable getter for the property.\r\n Object.defineProperty(this, 'stack', {\r\n get: function () {\r\n return err.stack;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return FirebaseError;\r\n}());\r\n// Back-door inheritance\r\nFirebaseError.prototype = Object.create(Error.prototype);\r\nFirebaseError.prototype.constructor = FirebaseError;\r\nFirebaseError.prototype.name = ERROR_NAME;\r\nvar ErrorFactory = /** @class */ (function () {\r\n function ErrorFactory(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n // Matches {$name}, by default.\r\n this.pattern = /\\{\\$([^}]+)}/g;\r\n // empty\r\n }\r\n ErrorFactory.prototype.create = function (code, data) {\r\n if (data === undefined) {\r\n data = {};\r\n }\r\n var template = this.errors[code];\r\n var fullCode = this.service + '/' + code;\r\n var message;\r\n if (template === undefined) {\r\n message = 'Error';\r\n }\r\n else {\r\n message = template.replace(this.pattern, function (match, key) {\r\n var value = data[key];\r\n return value !== undefined ? value.toString() : '<' + key + '?>';\r\n });\r\n }\r\n // Service: Error message (service/code).\r\n message = this.serviceName + ': ' + message + ' (' + fullCode + ').';\r\n var err = new FirebaseError(fullCode, message);\r\n // Populate the Error object with message parts for programmatic\r\n // accesses (e.g., e.file).\r\n for (var prop in data) {\r\n if (!data.hasOwnProperty(prop) || prop.slice(-1) === '_') {\r\n continue;\r\n }\r\n err[prop] = data[prop];\r\n }\r\n return err;\r\n };\r\n return ErrorFactory;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {{header: *, claims: *, data: *, signature: string}}\r\n */\r\nvar decode = function (token) {\r\n var header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n var parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header: header,\r\n claims: claims,\r\n data: data,\r\n signature: signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidTimestamp = function (token) {\r\n var claims = decode(token).claims, now = Math.floor(new Date().getTime() / 1000), validSince, validUntil;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (now && validSince && validUntil && now >= validSince && now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {?number}\r\n */\r\nvar issuedAtTime = function (token) {\r\n var claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidFormat = function (token) {\r\n var decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isAdmin = function (token) {\r\n var claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// See http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/\r\nvar contains = function (obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar safeGet = function (obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key))\r\n return obj[key];\r\n // else return undefined.\r\n};\r\n/**\r\n * Enumerates the keys/values in an object, excluding keys defined on the prototype.\r\n *\r\n * @param {?Object.} obj Object to enumerate.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar forEach = function (obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n fn(key, obj[key]);\r\n }\r\n }\r\n};\r\n/**\r\n * Copies all the (own) properties from one object to another.\r\n * @param {!Object} objTo\r\n * @param {!Object} objFrom\r\n * @return {!Object} objTo\r\n */\r\nvar extend = function (objTo, objFrom) {\r\n forEach(objFrom, function (key, value) {\r\n objTo[key] = value;\r\n });\r\n return objTo;\r\n};\r\n/**\r\n * Returns a clone of the specified object.\r\n * @param {!Object} obj\r\n * @return {!Object} cloned obj.\r\n */\r\nvar clone = function (obj) {\r\n return extend({}, obj);\r\n};\r\n/**\r\n * Returns true if obj has typeof \"object\" and is not null. Unlike goog.isObject(), does not return true\r\n * for functions.\r\n *\r\n * @param obj {*} A potential object.\r\n * @returns {boolean} True if it's an object.\r\n */\r\nvar isNonNullObject = function (obj) {\r\n return typeof obj === 'object' && obj !== null;\r\n};\r\nvar isEmpty = function (obj) {\r\n for (var key in obj) {\r\n return false;\r\n }\r\n return true;\r\n};\r\nvar getCount = function (obj) {\r\n var rv = 0;\r\n for (var key in obj) {\r\n rv++;\r\n }\r\n return rv;\r\n};\r\nvar map = function (obj, f, opt_obj) {\r\n var res = {};\r\n for (var key in obj) {\r\n res[key] = f.call(opt_obj, obj[key], key, obj);\r\n }\r\n return res;\r\n};\r\nvar findKey = function (obj, fn, opt_this) {\r\n for (var key in obj) {\r\n if (fn.call(opt_this, obj[key], key, obj)) {\r\n return key;\r\n }\r\n }\r\n return undefined;\r\n};\r\nvar findValue = function (obj, fn, opt_this) {\r\n var key = findKey(obj, fn, opt_this);\r\n return key && obj[key];\r\n};\r\nvar getAnyKey = function (obj) {\r\n for (var key in obj) {\r\n return key;\r\n }\r\n};\r\nvar getValues = function (obj) {\r\n var res = [];\r\n var i = 0;\r\n for (var key in obj) {\r\n res[i++] = obj[key];\r\n }\r\n return res;\r\n};\r\n/**\r\n * Tests whether every key/value pair in an object pass the test implemented\r\n * by the provided function\r\n *\r\n * @param {?Object.} obj Object to test.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar every = function (obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n if (!fn(key, obj[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a params\r\n * object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n *\r\n * @param {!Object} querystringParams\r\n * @return {string}\r\n */\r\nvar querystring = function (querystringParams) {\r\n var params = [];\r\n forEach(querystringParams, function (key, value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(function (arrayVal) {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n });\r\n return params.length ? '&' + params.join('&') : '';\r\n};\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object (e.g. {arg: 'val', arg2: 'val2'})\r\n *\r\n * @param {string} querystring\r\n * @return {!Object}\r\n */\r\nvar querystringDecode = function (querystring) {\r\n var obj = {};\r\n var tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(function (token) {\r\n if (token) {\r\n var key = token.split('=');\r\n obj[key[0]] = key[1];\r\n }\r\n });\r\n return obj;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Copyright 2011 The Closure Library Authors. All Rights Reserved.\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n/**\r\n * @fileoverview Abstract cryptographic hash interface.\r\n *\r\n * See Sha1 and Md5 for sample implementations.\r\n *\r\n */\r\n/**\r\n * Create a cryptographic hash instance.\r\n *\r\n * @constructor\r\n * @struct\r\n */\r\nvar Hash = /** @class */ (function () {\r\n function Hash() {\r\n /**\r\n * The block size for the hasher.\r\n * @type {number}\r\n */\r\n this.blockSize = -1;\r\n }\r\n return Hash;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @extends {Hash}\r\n * @final\r\n * @struct\r\n */\r\nvar Sha1 = /** @class */ (function (_super) {\r\n __extends(Sha1, _super);\r\n function Sha1() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n _this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n _this.total_ = 0;\r\n _this.blockSize = 512 / 8;\r\n _this.pad_[0] = 128;\r\n for (var i = 1; i < _this.blockSize; ++i) {\r\n _this.pad_[i] = 0;\r\n }\r\n _this.reset();\r\n return _this;\r\n }\r\n Sha1.prototype.reset = function () {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n };\r\n /**\r\n * Internal compress helper function.\r\n * @param {!Array|!Uint8Array|string} buf Block to compress.\r\n * @param {number=} opt_offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n Sha1.prototype.compress_ = function (buf, opt_offset) {\r\n if (!opt_offset) {\r\n opt_offset = 0;\r\n }\r\n var W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (var i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(opt_offset) << 24) |\r\n (buf.charCodeAt(opt_offset + 1) << 16) |\r\n (buf.charCodeAt(opt_offset + 2) << 8) |\r\n buf.charCodeAt(opt_offset + 3);\r\n opt_offset += 4;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[opt_offset] << 24) |\r\n (buf[opt_offset + 1] << 16) |\r\n (buf[opt_offset + 2] << 8) |\r\n buf[opt_offset + 3];\r\n opt_offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (var i = 16; i < 80; i++) {\r\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n var a = this.chain_[0];\r\n var b = this.chain_[1];\r\n var c = this.chain_[2];\r\n var d = this.chain_[3];\r\n var e = this.chain_[4];\r\n var f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n };\r\n Sha1.prototype.update = function (bytes, opt_length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (opt_length === undefined) {\r\n opt_length = bytes.length;\r\n }\r\n var lengthMinusBlock = opt_length - this.blockSize;\r\n var n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n var buf = this.buf_;\r\n var inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < opt_length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf == 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < opt_length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf == this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < opt_length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf == this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += opt_length;\r\n };\r\n /** @override */\r\n Sha1.prototype.digest = function () {\r\n var digest = [];\r\n var totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (var i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n var n = 0;\r\n for (var i = 0; i < 5; i++) {\r\n for (var j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n };\r\n return Sha1;\r\n}(Hash));\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n var proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n function ObserverProxy(executor, onNoObservers) {\r\n var _this = this;\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(function () {\r\n executor(_this);\r\n })\r\n .catch(function (e) {\r\n _this.error(e);\r\n });\r\n }\r\n ObserverProxy.prototype.next = function (value) {\r\n this.forEachObserver(function (observer) {\r\n observer.next(value);\r\n });\r\n };\r\n ObserverProxy.prototype.error = function (error) {\r\n this.forEachObserver(function (observer) {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n };\r\n ObserverProxy.prototype.complete = function () {\r\n this.forEachObserver(function (observer) {\r\n observer.complete();\r\n });\r\n this.close();\r\n };\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n var _this = this;\r\n var observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, ['next', 'error', 'complete'])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error: error,\r\n complete: complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n this.task.then(function () {\r\n try {\r\n if (_this.finalError) {\r\n observer.error(_this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n };\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n };\r\n ObserverProxy.prototype.forEachObserver = function (fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (var i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n };\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n ObserverProxy.prototype.sendOne = function (i, fn) {\r\n var _this = this;\r\n // Execute the callback asynchronously\r\n this.task.then(function () {\r\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n try {\r\n fn(_this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n ObserverProxy.prototype.close = function (err) {\r\n var _this = this;\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n this.task.then(function () {\r\n _this.observers = undefined;\r\n _this.onNoObservers = undefined;\r\n });\r\n };\r\n return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\nfunction async(fn, onError) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n Promise.resolve(true)\r\n .then(function () {\r\n fn.apply(void 0, args);\r\n })\r\n .catch(function (error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n var method = methods_1[_i];\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} minCount The minimum number of arguments to allow for the function call\r\n * @param {!number} maxCount The maximum number of argument to allow for the function call\r\n * @param {!number} argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n var argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n var error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} argumentNumber The index of the argument\r\n * @param {boolean} optional Whether or not the argument is optional\r\n * @return {!string} The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n var argName = '';\r\n switch (argumentNumber) {\r\n case 1:\r\n argName = optional ? 'first' : 'First';\r\n break;\r\n case 2:\r\n argName = optional ? 'second' : 'Second';\r\n break;\r\n case 3:\r\n argName = optional ? 'third' : 'Third';\r\n break;\r\n case 4:\r\n argName = optional ? 'fourth' : 'Fourth';\r\n break;\r\n default:\r\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\r\n }\r\n var error = fnName + ' failed: ';\r\n error += argName + ' argument ';\r\n return error;\r\n}\r\n/**\r\n * @param {!string} fnName\r\n * @param {!number} argumentNumber\r\n * @param {!string} namespace\r\n * @param {boolean} optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n if (optional && !namespace)\r\n return;\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, callback, optional) {\r\n if (optional && !callback)\r\n return;\r\n if (typeof callback !== 'function')\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid function.');\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n if (optional && !context)\r\n return;\r\n if (typeof context !== 'object' || context === null)\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid context object.');\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n var out = [], p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n var high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nexport { assert, assertionError, base64, base64Decode, base64Encode, CONSTANTS, deepCopy, deepExtend, patchProperty, Deferred, getUA, isMobileCordova, isNodeSdk, isReactNative, ErrorFactory, FirebaseError, patchCapture, jsonEval, stringify, decode, isAdmin, issuedAtTime, isValidFormat, isValidTimestamp, clone, contains, every, extend, findKey, findValue, forEach, getAnyKey, getCount, getValues, isEmpty, isNonNullObject, map, safeGet, querystring, querystringDecode, Sha1, async, createSubscribe, errorPrefix, validateArgCount, validateCallback, validateContextObject, validateNamespace, stringLength, stringToByteArray$1 as stringToByteArray };\n","import { createSubscribe, deepCopy, deepExtend, ErrorFactory, patchProperty } from '@firebase/util';\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar contains = function (obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\n// An array to capture listeners before the true auth functions\r\n// exist\r\nvar tokenListeners = [];\r\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\r\nvar FirebaseAppImpl = /** @class */ (function () {\r\n function FirebaseAppImpl(options, config, firebase_) {\r\n this.firebase_ = firebase_;\r\n this.isDeleted_ = false;\r\n this.services_ = {};\r\n this.name_ = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled || false;\r\n this.options_ = deepCopy(options);\r\n this.INTERNAL = {\r\n getUid: function () { return null; },\r\n getToken: function () { return Promise.resolve(null); },\r\n addAuthTokenListener: function (callback) {\r\n tokenListeners.push(callback);\r\n // Make sure callback is called, asynchronously, in the absence of the auth module\r\n setTimeout(function () { return callback(null); }, 0);\r\n },\r\n removeAuthTokenListener: function (callback) {\r\n tokenListeners = tokenListeners.filter(function (listener) { return listener !== callback; });\r\n }\r\n };\r\n }\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this._automaticDataCollectionEnabled;\r\n },\r\n set: function (val) {\r\n this.checkDestroyed_();\r\n this._automaticDataCollectionEnabled = val;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.name_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.options_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n FirebaseAppImpl.prototype.delete = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.checkDestroyed_();\r\n resolve();\r\n })\r\n .then(function () {\r\n _this.firebase_.INTERNAL.removeApp(_this.name_);\r\n var services = [];\r\n Object.keys(_this.services_).forEach(function (serviceKey) {\r\n Object.keys(_this.services_[serviceKey]).forEach(function (instanceKey) {\r\n services.push(_this.services_[serviceKey][instanceKey]);\r\n });\r\n });\r\n return Promise.all(services.map(function (service) {\r\n return service.INTERNAL.delete();\r\n }));\r\n })\r\n .then(function () {\r\n _this.isDeleted_ = true;\r\n _this.services_ = {};\r\n });\r\n };\r\n /**\r\n * Return a service instance associated with this app (creating it\r\n * on demand), identified by the passed instanceIdentifier.\r\n *\r\n * NOTE: Currently storage is the only one that is leveraging this\r\n * functionality. They invoke it by calling:\r\n *\r\n * ```javascript\r\n * firebase.app().storage('STORAGE BUCKET ID')\r\n * ```\r\n *\r\n * The service name is passed to this already\r\n * @internal\r\n */\r\n FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\r\n if (instanceIdentifier === void 0) { instanceIdentifier = DEFAULT_ENTRY_NAME; }\r\n this.checkDestroyed_();\r\n if (!this.services_[name]) {\r\n this.services_[name] = {};\r\n }\r\n if (!this.services_[name][instanceIdentifier]) {\r\n /**\r\n * If a custom instance has been defined (i.e. not '[DEFAULT]')\r\n * then we will pass that instance on, otherwise we pass `null`\r\n */\r\n var instanceSpecifier = instanceIdentifier !== DEFAULT_ENTRY_NAME\r\n ? instanceIdentifier\r\n : undefined;\r\n var service = this.firebase_.INTERNAL.factories[name](this, this.extendApp.bind(this), instanceSpecifier);\r\n this.services_[name][instanceIdentifier] = service;\r\n }\r\n return this.services_[name][instanceIdentifier];\r\n };\r\n /**\r\n * Callback function used to extend an App instance at the time\r\n * of service instance creation.\r\n */\r\n FirebaseAppImpl.prototype.extendApp = function (props) {\r\n var _this = this;\r\n // Copy the object onto the FirebaseAppImpl prototype\r\n deepExtend(this, props);\r\n /**\r\n * If the app has overwritten the addAuthTokenListener stub, forward\r\n * the active token listeners on to the true fxn.\r\n *\r\n * TODO: This function is required due to our current module\r\n * structure. Once we are able to rely strictly upon a single module\r\n * implementation, this code should be refactored and Auth should\r\n * provide these stubs and the upgrade logic\r\n */\r\n if (props.INTERNAL && props.INTERNAL.addAuthTokenListener) {\r\n tokenListeners.forEach(function (listener) {\r\n _this.INTERNAL.addAuthTokenListener(listener);\r\n });\r\n tokenListeners = [];\r\n }\r\n };\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n FirebaseAppImpl.prototype.checkDestroyed_ = function () {\r\n if (this.isDeleted_) {\r\n error('app-deleted', { name: this.name_ });\r\n }\r\n };\r\n return FirebaseAppImpl;\r\n}());\r\n// Prevent dead-code elimination of these methods w/o invalid property\r\n// copying.\r\n(FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\r\n FirebaseAppImpl.prototype.delete ||\r\n console.log('dc');\r\n/**\r\n * Return a firebase namespace object.\r\n *\r\n * In production, this will be called exactly once and the result\r\n * assigned to the 'firebase' global. It may be called multiple times\r\n * in unit tests.\r\n */\r\nfunction createFirebaseNamespace() {\r\n var apps_ = {};\r\n var factories = {};\r\n var appHooks = {};\r\n // A namespace is a plain JavaScript Object.\r\n var namespace = {\r\n // Hack to prevent Babel from modifying the object returned\r\n // as the firebase namespace.\r\n __esModule: true,\r\n initializeApp: initializeApp,\r\n app: app,\r\n apps: null,\r\n Promise: Promise,\r\n SDK_VERSION: '5.8.1',\r\n INTERNAL: {\r\n registerService: registerService,\r\n createFirebaseNamespace: createFirebaseNamespace,\r\n extendNamespace: extendNamespace,\r\n createSubscribe: createSubscribe,\r\n ErrorFactory: ErrorFactory,\r\n removeApp: removeApp,\r\n factories: factories,\r\n useAsService: useAsService,\r\n Promise: Promise,\r\n deepExtend: deepExtend\r\n }\r\n };\r\n // Inject a circular default export to allow Babel users who were previously\r\n // using:\r\n //\r\n // import firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase').default;\r\n //\r\n // instead of\r\n //\r\n // import * as firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase');\r\n patchProperty(namespace, 'default', namespace);\r\n // firebase.apps is a read-only getter.\r\n Object.defineProperty(namespace, 'apps', {\r\n get: getApps\r\n });\r\n /**\r\n * Called by App.delete() - but before any services associated with the App\r\n * are deleted.\r\n */\r\n function removeApp(name) {\r\n var app = apps_[name];\r\n callAppHooks(app, 'delete');\r\n delete apps_[name];\r\n }\r\n /**\r\n * Get the App object for a given name (or DEFAULT).\r\n */\r\n function app(name) {\r\n name = name || DEFAULT_ENTRY_NAME;\r\n if (!contains(apps_, name)) {\r\n error('no-app', { name: name });\r\n }\r\n return apps_[name];\r\n }\r\n patchProperty(app, 'App', FirebaseAppImpl);\r\n function initializeApp(options, rawConfig) {\r\n if (rawConfig === void 0) { rawConfig = {}; }\r\n if (typeof rawConfig !== 'object' || rawConfig === null) {\r\n var name_1 = rawConfig;\r\n rawConfig = { name: name_1 };\r\n }\r\n var config = rawConfig;\r\n if (config.name === undefined) {\r\n config.name = DEFAULT_ENTRY_NAME;\r\n }\r\n var name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n error('bad-app-name', { name: name + '' });\r\n }\r\n if (contains(apps_, name)) {\r\n error('duplicate-app', { name: name });\r\n }\r\n var app = new FirebaseAppImpl(options, config, namespace);\r\n apps_[name] = app;\r\n callAppHooks(app, 'create');\r\n return app;\r\n }\r\n /*\r\n * Return an array of all the non-deleted FirebaseApps.\r\n */\r\n function getApps() {\r\n // Make a copy so caller cannot mutate the apps list.\r\n return Object.keys(apps_).map(function (name) { return apps_[name]; });\r\n }\r\n /*\r\n * Register a Firebase Service.\r\n *\r\n * firebase.INTERNAL.registerService()\r\n *\r\n * TODO: Implement serviceProperties.\r\n */\r\n function registerService(name, createService, serviceProperties, appHook, allowMultipleInstances) {\r\n // Cannot re-register a service that already exists\r\n if (factories[name]) {\r\n error('duplicate-service', { name: name });\r\n }\r\n // Capture the service factory for later service instantiation\r\n factories[name] = createService;\r\n // Capture the appHook, if passed\r\n if (appHook) {\r\n appHooks[name] = appHook;\r\n // Run the **new** app hook on all existing apps\r\n getApps().forEach(function (app) {\r\n appHook('create', app);\r\n });\r\n }\r\n // The Service namespace is an accessor function ...\r\n var serviceNamespace = function (appArg) {\r\n if (appArg === void 0) { appArg = app(); }\r\n if (typeof appArg[name] !== 'function') {\r\n // Invalid argument.\r\n // This happens in the following case: firebase.storage('gs:/')\r\n error('invalid-app-argument', { name: name });\r\n }\r\n // Forward service instance lookup to the FirebaseApp.\r\n return appArg[name]();\r\n };\r\n // ... and a container for service-level properties.\r\n if (serviceProperties !== undefined) {\r\n deepExtend(serviceNamespace, serviceProperties);\r\n }\r\n // Monkey-patch the serviceNamespace onto the firebase namespace\r\n namespace[name] = serviceNamespace;\r\n // Patch the FirebaseAppImpl prototype\r\n FirebaseAppImpl.prototype[name] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var serviceFxn = this._getService.bind(this, name);\r\n return serviceFxn.apply(this, allowMultipleInstances ? args : []);\r\n };\r\n return serviceNamespace;\r\n }\r\n /**\r\n * Patch the top-level firebase namespace with additional properties.\r\n *\r\n * firebase.INTERNAL.extendNamespace()\r\n */\r\n function extendNamespace(props) {\r\n deepExtend(namespace, props);\r\n }\r\n function callAppHooks(app, eventName) {\r\n Object.keys(factories).forEach(function (serviceName) {\r\n // Ignore virtual services\r\n var factoryName = useAsService(app, serviceName);\r\n if (factoryName === null) {\r\n return;\r\n }\r\n if (appHooks[factoryName]) {\r\n appHooks[factoryName](eventName, app);\r\n }\r\n });\r\n }\r\n // Map the requested service to a registered service name\r\n // (used to map auth to serverAuth service when needed).\r\n function useAsService(app, name) {\r\n if (name === 'serverAuth') {\r\n return null;\r\n }\r\n var useService = name;\r\n var options = app.options;\r\n return useService;\r\n }\r\n return namespace;\r\n}\r\nfunction error(code, args) {\r\n throw appErrors.create(code, args);\r\n}\r\n// TypeScript does not support non-string indexes!\r\n// let errors: {[code: AppError: string} = {\r\nvar errors = {\r\n 'no-app': \"No Firebase App '{$name}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n 'bad-app-name': \"Illegal App name: '{$name}\",\r\n 'duplicate-app': \"Firebase App named '{$name}' already exists\",\r\n 'app-deleted': \"Firebase App named '{$name}' already deleted\",\r\n 'duplicate-service': \"Firebase service named '{$name}' already registered\",\r\n 'sa-not-supported': 'Initializing the Firebase SDK with a service ' +\r\n 'account is only allowed in a Node.js environment. On client ' +\r\n 'devices, you should instead initialize the SDK with an api key and ' +\r\n 'auth domain',\r\n 'invalid-app-argument': 'firebase.{$name}() takes either no argument or a ' +\r\n 'Firebase App instance.'\r\n};\r\nvar appErrors = new ErrorFactory('app', 'Firebase', errors);\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar firebase = createFirebaseNamespace();\n\nexport default firebase;\nexport { firebase };\n"],"names":["self","fetch","support","searchParams","iterable","Symbol","blob","Blob","e","formData","arrayBuffer","viewClasses","isDataView","obj","DataView","prototype","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","indexOf","Object","toString","call","Headers","append","name","value","normalizeName","normalizeValue","oldValue","this","map","get","has","hasOwnProperty","set","forEach","callback","thisArg","keys","items","push","iteratorFor","values","entries","iterator","methods","Request","clone","body","_bodyInit","Body","Response","status","statusText","headers","url","error","response","type","redirectStatuses","redirect","RangeError","location","input","init","Promise","resolve","reject","request","xhr","XMLHttpRequest","onload","rawHeaders","options","getAllResponseHeaders","replace","split","line","parts","key","shift","trim","join","responseURL","responseText","onerror","TypeError","ontimeout","open","method","credentials","withCredentials","responseType","setRequestHeader","send","polyfill","String","test","toLowerCase","next","done","undefined","Array","isArray","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","result","readBlobAsArrayBuffer","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","buffer","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","Error","rejected","then","text","readAsText","chars","length","i","fromCharCode","readArrayBufferAsText","decode","json","JSON","parse","upcased","mode","toUpperCase","referrer","form","bytes","decodeURIComponent","bodyInit","ok","setTimeoutFunc","setTimeout","noop","fn","_state","_handled","_value","_deferreds","doResolve","handle","deferred","_immediateFn","cb","onFulfilled","onRejected","ret","newValue","finale","apply","arguments","_unhandledRejectionFn","len","reason","ex","prom","constructor","all","arr","args","remaining","res","val","race","setImmediate","err","console","warn","globalNS","window","global","module","Math","Function","__g","core","version","__e","it","isObject","exec","require$$0","defineProperty","a","document","is","createElement","require$$1","require$$2","S","valueOf","dP","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","bitmap","enumerable","configurable","writable","object","f","createDesc","id","px","random","concat","SRC","$toString","TPL","inspectSource","safe","isFunction","hide","that","aFunction","b","c","$export","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","target","exports","expProto","ctx","redefine","U","W","R","propertyIsEnumerable","cof","defined","ceil","floor","isNaN","min","toInteger","arg","store","USE_SYMBOL","uid","SPECIES","original","C","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","asc","$this","callbackfn","toObject","IObject","toLength","index","UNSCOPABLES","ArrayProto","$find","forced","find","findIndex","IS_INCLUDES","max","shared","arrayIndexOf","el","fromIndex","toIObject","toAbsoluteIndex","IE_PROTO","names","$keys","enumBugKeys","getOwnPropertySymbols","$assign","assign","A","K","k","T","aLen","getSymbols","gOPS","isEnum","pIE","getKeys","j","MATCH","searchString","NAME","isRegExp","$startsWith","KEY","re","startsWith","context","search","repeat","count","str","n","Infinity","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","def","TAG","tag","stat","$Symbol","charAt","wksExt","defineProperties","Properties","documentElement","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","write","lt","close","dPs","hiddenKeys","gOPN","windowNames","getWindowNames","gOPD","getOwnPropertyDescriptor","$GOPD","$DP","gOPNExt","$JSON","_stringify","stringify","HIDDEN","wks","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","DESCRIPTORS","$fails","_create","D","protoDesc","wrap","sym","_k","isSymbol","$defineProperty","$defineProperties","symbols","enumKeys","l","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","require$$3","es6Symbols","wellKnownSymbols","wksDefine","for","keyFor","useSetter","useSimple","replacer","$replacer","require$$5","ARG","tryGet","callee","require$$4","IteratorPrototype","TO_STRING","Constructor","descriptor","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","$iterCreate","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","Iterators","$at","pos","s","charCodeAt","iterated","_t","_i","point","step","Arguments","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$iterators","extendStatics","setPrototypeOf","__proto__","d","p","deepExtend","Date","getTime","prop","patchProperty","ERROR_NAME","captureStackTrace","FirebaseError","code","message","ErrorFactory","stack","service","serviceName","errors","pattern","data","template","fullCode","match","_super","Sha1","_this","chain_","buf_","W_","pad_","inbuf_","total_","blockSize","reset","__","__extends","compress_","opt_offset","t","update","opt_length","lengthMinusBlock","inbuf","digest","totalBits","createSubscribe","executor","onNoObservers","proxy","ObserverProxy","subscribe","bind","observers","unsubscribes","observerCount","task","finalized","catch","forEachObserver","observer","complete","nextOrObserver","methods_1","implementsAnyMethods","unsub","unsubscribeOne","finalError","sendOne","contains","DEFAULT_ENTRY_NAME","tokenListeners","FirebaseAppImpl","config","firebase_","isDeleted_","services_","name_","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","options_","INTERNAL","getUid","getToken","addAuthTokenListener","removeAuthTokenListener","filter","listener","checkDestroyed_","delete","removeApp","services","serviceKey","instanceKey","_getService","instanceIdentifier","instanceSpecifier","factories","extendApp","props","appErrors","log","no-app","bad-app-name","duplicate-app","app-deleted","duplicate-service","sa-not-supported","invalid-app-argument","createFirebaseNamespace","apps_","appHooks","namespace","__esModule","initializeApp","rawConfig","name_1","app","callAppHooks","apps","SDK_VERSION","registerService","createService","serviceProperties","appHook","allowMultipleInstances","getApps","serviceNamespace","appArg","extendNamespace","useAsService","eventName","factoryName","useService"],"mappings":"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"}