firebase
Version:
Firebase JavaScript library for web and Node.js
7 lines • 807 kB
JavaScript
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let n=()=>{},i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},g=function(e,t){if(!e)throw B(t)},B=function(e){return new Error("Firebase Database ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},s=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},a={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let c=0;c<r.length;c+=3){var s=r[c],a=c+1<r.length,o=a?r[c+1]:0,l=c+2<r.length,h=l?r[c+2]:0;let e=(15&o)<<2|h>>6,t=63&h;l||(t=64,a)||(e=64),i.push(n[s>>2],n[(3&s)<<4|o>>4],n[e],n[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,h=i[e++];h<128?s[t++]=String.fromCharCode(h):191<h&&h<224?(a=i[e++],s[t++]=String.fromCharCode((31&h)<<6|63&a)):239<h&&h<365?(a=((7&h)<<18|(63&i[e++])<<12|(63&i[e++])<<6|63&i[e++])-65536,s[t++]=String.fromCharCode(55296+(a>>10)),s[t++]=String.fromCharCode(56320+(1023&a))):(o=i[e++],l=i[e++],s[t++]=String.fromCharCode((15&h)<<12|(63&o)<<6|63&l))}return s.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let l=0;l<e.length;){var i=r[e.charAt(l++)],s=l<e.length?r[e.charAt(l)]:0,a=++l<e.length?r[e.charAt(l)]:64,o=++l<e.length?r[e.charAt(l)]:64;if(++l,null==i||null==s||null==a||null==o)throw new j;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),(this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class j extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function o(e){var t=s(e);return a.encodeByteArray(t,!0)}let z=function(e){return o(e).replace(/\./g,"")},K=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function W(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=W(e[r],t[r]));return e}function H(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}let G=()=>H().__FIREBASE_DEFAULTS__,$=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},Q=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&K(e[1]);return t&&JSON.parse(t)}},Y=()=>{try{return n()||G()||$()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},J=()=>Y()?.config;var p,X;class Z{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function ee(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r={iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}},...e},[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")}function te(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function re(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(te())}function ne(){var e=Y()?.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function ie(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function se(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ae(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function oe(){var e=te();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function le(){return!0===i.NODE_ADMIN}function he(){return!ne()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ce(){return!ne()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function ue(){try{return"object"==typeof indexedDB}catch(e){return!1}}function de(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function pe(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class fe extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,fe.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ge.prototype.create)}}class ge{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(me,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new fe(i,s,r)}}let me=/\{\$([^}]+)}/g;function ve(e){return JSON.parse(e)}function _e(e){return JSON.stringify(e)}function ye(e){let t={},r={},n={},i="";try{var s=e.split(".");t=ve(K(s[0])||""),r=ve(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function we(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function be(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function Ie(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Te(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ee(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Ce(a)&&Ce(o)){if(!Ee(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Ce(e){return null!==e&&"object"==typeof e}function Se(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function ke(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function Ae(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Ne{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,c;for(let p=0;p<80;p++){c=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var u=(t<<5|t>>>27)+h+l+c+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=u}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Re(e,t){var r=new Pe(e,t);return r.subscribe.bind(r)}class Pe{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=De),void 0===n.error&&(n.error=De),void 0===n.complete&&(n.complete=De);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function De(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function xe(e,t){return e+` failed: ${t} argument `}function Oe(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(xe(e,t)+"must be a valid function.")}function Me(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(xe(e,t)+"must be a valid context object.")}let Le=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},Fe=1e3,Ue=2,Ve=144e5,qe=.5;function Be(e,t=Fe,r=Ue){var n=t*Math.pow(r,e),i=Math.round(qe*n*(Math.random()-.5)*2);return Math.min(Ve,n+i)}function w(e){return e&&e._delegate?e._delegate:e}function je(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}async function ze(e){return(await fetch(e,{credentials:"include"})).ok}class c{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let Ke="[DEFAULT]";class We{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new Z;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:Ke})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=Ke){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=Ke){return this.instances.has(e)}getOptions(e=Ke){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ke?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}var n;return r||null}normalizeInstanceIdentifier(e=Ke){return!this.component||this.component.multipleInstances?e:Ke}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class He{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with `+this.name);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){var t;return this.providers.has(e)?this.providers.get(e):(t=new We(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ge=[],$e=((t=p=p||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",{debug:p.DEBUG,verbose:p.VERBOSE,info:p.INFO,warn:p.WARN,error:p.ERROR,silent:p.SILENT}),Qe=p.INFO,Ye={[p.DEBUG]:"log",[p.VERBOSE]:"log",[p.INFO]:"info",[p.WARN]:"warn",[p.ERROR]:"error"},Je=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ye[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class Xe{constructor(e){this.name=e,this._logLevel=Qe,this._logHandler=Je,this._userLogHandler=null,Ge.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in p))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?$e[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,p.DEBUG,...e),this._logHandler(this,p.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,p.VERBOSE,...e),this._logHandler(this,p.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,p.INFO,...e),this._logHandler(this,p.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,p.WARN,...e),this._logHandler(this,p.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,p.ERROR,...e),this._logHandler(this,p.ERROR,...e)}}let Ze=(t,e)=>e.some(e=>t instanceof e),et,tt;let rt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,at=new WeakMap;let ot={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return nt.get(e);if("objectStoreNames"===t)return e.objectStoreNames||it.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return ct(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function lt(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(tt=tt||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ut(this),e),ct(rt.get(this))}:function(...e){return ct(n.apply(ut(this),e))}:function(e,...t){var r=n.call(ut(this),e,...t);return it.set(r,e.sort?e.sort():[e]),ct(r)}}function ht(e){var s,t;return"function"==typeof e?lt(e):(e instanceof IDBTransaction&&(s=e,nt.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),nt.set(s,t))),Ze(e,et=et||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ot):e)}function ct(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(ct(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&rt.set(e,s)}).catch(()=>{}),at.set(t,s),t):st.has(e)?st.get(e):((t=ht(e))!==e&&(st.set(e,t),at.set(t,e)),t)}let ut=e=>at.get(e);function dt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=ct(a);return n&&a.addEventListener("upgradeneeded",e=>{n(ct(a.result),e.oldVersion,e.newVersion,ct(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function pt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),ct(r).then(()=>{})}let ft=["get","getKey","getAll","getAllKeys","count"],gt=["put","add","delete","clear"],mt=new Map;function vt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(mt.get(t))return mt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=gt.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||ft.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},mt.set(t,r),r):void 0}}ot={...X=ot,get:(e,t,r)=>vt(e,t)||X.get(e,t,r),has:(e,t)=>!!vt(e,t)||X.has(e,t)};class _t{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let yt="@firebase/app",wt="0.14.10",bt=new Xe("@firebase/app");let It="[DEFAULT]",Tt={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},Et=new Map,Ct=new Map,St=new Map;function kt(t,r){try{t.container.addComponent(r)}catch(e){bt.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function At(e,t){e.container.addOrOverwriteComponent(t)}function Nt(e){var t,r,n=e.name;if(St.has(n))return bt.debug(`There were multiple attempts to register component ${n}.`),!1;St.set(n,e);for(t of Et.values())kt(t,e);for(r of Ct.values())kt(r,e);return!0}function Rt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Pt(e){return void 0!==e.options}function Dt(e){return!Pt(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function h(e){return null!=e&&void 0!==e.settings}let xt=new ge("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Ot{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new c("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw xt.create("app-deleted",{appName:this._name})}}function Mt(e,t){var r=K(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Lt extends Ot{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&Mt(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Mt(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,u(yt,wt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){qt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw xt.create("server-app-deleted")}}let Ft="12.11.0";function Ut(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:It,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw xt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw xt.create("no-options");var s=Et.get(i);if(s){if(Ee(r,s.options)&&Ee(n,s.config))return s;throw xt.create("duplicate-app",{appName:i})}var a,o=new He(i);for(a of St.values())o.addComponent(a);s=new Ot(r,n,o);return Et.set(i,s),s}function Vt(e=It){var t=Et.get(e);if(!t&&e===It&&J())return Ut();if(t)return t;throw xt.create("no-app",{appName:e})}async function qt(e){let t=!1;var r=e.name;Et.has(r)?(t=!0,Et.delete(r)):Ct.has(r)&&e.decRefCount()<=0&&(Ct.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function u(e,t,r){let n=Tt[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),bt.warn(i.join(" "))):Nt(new c(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Bt(e,t){if(null!==e&&"function"!=typeof e)throw xt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ge){let i=null;n&&n.level&&(i=$e[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(i??e.logLevel)&&s({level:p[t].toLowerCase(),message:n,args:r,type:e.name})}}}function jt(e){var t;t=e,Ge.forEach(e=>{e.setLogLevel(t)})}let zt="firebase-heartbeat-database",Kt=1,Wt="firebase-heartbeat-store",Ht=null;function Gt(){return Ht=Ht||dt(zt,Kt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(Wt)}catch(e){console.warn(e)}}}).catch(e=>{throw xt.create("idb-open",{originalErrorMessage:e.message})})}async function $t(e,t){try{var r=(await Gt()).transaction(Wt,"readwrite");await r.objectStore(Wt).put(t,Qt(e)),await r.done}catch(e){e instanceof fe?bt.warn(e.message):(r=xt.create("idb-set",{originalErrorMessage:e?.message}),bt.warn(r.message))}}function Qt(e){return e.name+"!"+e.options.appId}class Yt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new Xt(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Jt();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){bt.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=Jt(),{heartbeatsToSend:t,unsentEntries:r}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),Zt(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),Zt(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=z(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return bt.warn(e),""}}}function Jt(){return(new Date).toISOString().substring(0,10)}class Xt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!ue()&&de().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Gt()).transaction(Wt),r=await t.objectStore(Wt).get(Qt(e));return await t.done,r}catch(e){e instanceof fe?bt.warn(e.message):(t=xt.create("idb-get",{originalErrorMessage:e?.message}),bt.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),$t(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),$t(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function Zt(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",Nt(new c("platform-logger",e=>new _t(e),"PRIVATE")),Nt(new c("heartbeat",e=>new Yt(e),"PRIVATE")),u(yt,wt,t),u(yt,wt,"esm2020"),u("fire-js","");var er=Object.freeze({__proto__:null,SDK_VERSION:Ft,_DEFAULT_ENTRY_NAME:It,_addComponent:kt,_addOrOverwriteComponent:At,_apps:Et,_clearComponents:function(){St.clear()},_components:St,_getProvider:Rt,_isFirebaseApp:Pt,_isFirebaseServerApp:h,_isFirebaseServerAppSettings:Dt,_registerComponent:Nt,_removeServiceInstance:function(e,t,r=It){Rt(e,t).clearInstance(r)},_serverApps:Ct,deleteApp:qt,getApp:Vt,getApps:function(){return Array.from(Et.values())},initializeApp:Ut,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||ie())&&!ie())throw xt.create("invalid-server-app-environment");let r,n=t||{};if(e&&(Pt(e)?r=e.options:Dt(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||J()))throw xt.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw xt.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=Ct.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new He(i);for(a of St.values())o.addComponent(a);s=new Lt(r,n,i,o),Ct.set(i,s)}return s},onLog:Bt,registerVersion:u,setLogLevel:jt,FirebaseError:fe});class tr{constructor(e,t){this._delegate=e,this.firebase=t,kt(e,new c("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),qt(this._delegate)))}_getService(e,t=It){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=It){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){kt(this._delegate,e)}_addOrOverwriteComponent(e){At(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let rr=new ge("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function nr(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Ut(e,t);if(we(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:u,setLogLevel:jt,onLog:Bt,apps:null,SDK_VERSION:Ft,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Nt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw rr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:er}};function o(e){if(e=e||It,we(s,e))return s[e];throw rr.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var ir=function e(){let t=nr(tr);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Re,ErrorFactory:ge,deepExtend:W},t}(),sr=new Xe("@firebase/app-compat");try{var ar=H();void 0!==ar.firebase&&(sr.warn(`
Warning: Firebase is already defined in the global scope. Please make sure
Firebase library is only loaded once.
`),lr=ar.firebase.SDK_VERSION)&&0<=lr.indexOf("LITE")&&sr.warn(`
Warning: You are trying to load Firebase while using Firebase Performance standalone script.
You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
`)}catch{}let or=ir;u("@firebase/app-compat","0.5.10",void 0);or.registerVersion("firebase","12.11.0","app-compat");var ar="@firebase/installations",lr="0.6.21";let hr=1e4,cr="w:"+lr,ur="FIS_v2",dr="https://firebaseinstallations.googleapis.com/v1",pr=36e5;let fr=new ge("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function gr(e){return e instanceof fe&&e.code.includes("request-failed")}function mr({projectId:e}){return dr+`/projects/${e}/installations`}function vr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function _r(e,t){var r=(await t.json()).error;return fr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function yr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function wr(e,{refreshToken:t}){var r=yr(e);return r.append("Authorization",(e=t,ur+" "+e)),r}async function br(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Ir(t){return new Promise(e=>{setTimeout(e,t)})}let Tr=/^[cdef][\w-]{21}$/,Er="";function Cr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Tr.test(t)?t:Er}catch{return Er}}function Sr(e){return e.appName+"!"+e.appId}let kr=new Map;function Ar(e,t){var r=Sr(e),e=(Nr(r,t),r),r=(()=>(!Rr&&"BroadcastChannel"in self&&((Rr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Nr(e.data.key,e.data.fid)}),Rr))();r&&r.postMessage({key:e,fid:t}),0===kr.size&&Rr&&(Rr.close(),Rr=null)}function Nr(e,t){var r=kr.get(e);if(r)for(var n of r)n(t)}let Rr=null;let Pr="firebase-installations-database",Dr=1,xr="firebase-installations-store",Or=null;function Mr(){return Or=Or||dt(Pr,Dr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(xr)}})}async function Lr(e,t){var r=Sr(e),n=(await Mr()).transaction(xr,"readwrite"),i=n.objectStore(xr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Ar(e,t.fid),t}async function Fr(e){var t=Sr(e),r=(await Mr()).transaction(xr,"readwrite");await r.objectStore(xr).delete(t),await r.done}async function Ur(e,t){var r=Sr(e),n=(await Mr()).transaction(xr,"readwrite"),i=n.objectStore(xr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Ar(e,a.fid),a}async function Vr(r){let n;var e=await Ur(r.appConfig,e=>{var t=Br(e||{fid:Cr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=mr(e);var i=yr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:ur,appId:e.appId,sdkVersion:cr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await br(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:vr(s.authToken)};throw await _r("Create Installation",i)})(t,r);return Lr(t.appConfig,e)}catch(e){throw gr(e)&&409===e.customData.serverCode?await Fr(t.appConfig):await Lr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(fr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await qr(e.appConfig);for(;1===t.registrationStatus;)await Ir(100),t=await qr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await Vr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===Er?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function qr(e){return Ur(e,e=>{if(e)return Br(e);throw fr.create("installation-not-found")})}function Br(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+hr<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function jr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=mr(i)+`/${s}/authTokens:generate`;var i,s,a=wr(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:cr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await br(()=>fetch(n,l));if(a.ok)return vr(await a.json());throw await _r("Generate Auth Token",a)}async function zr(n,i=!1){let s;var e=await Ur(n.appConfig,e=>{if(!Wr(e))throw fr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+pr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Kr(e.appConfig);for(;1===r.authToken.requestStatus;)await Ir(100),r=await Kr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?zr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r={...t,authToken:r},s=(async(t,r)=>{try{var e=await jr(t,r),n={...r,authToken:e};return await Lr(t.appConfig,n),e}catch(e){var i;throw!gr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Lr(t.appConfig,i)):await Fr(t.appConfig),e}})(n,r),r;throw fr.create("app-offline")}return e});return s?await s:e.authToken}function Kr(e){return Ur(e,e=>{var t,r;if(Wr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+hr<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw fr.create("not-registered")})}function Wr(e){return void 0!==e&&2===e.registrationStatus}async function Hr(e,t=!1){var r=e,n=(await(!(n=(await Vr(r)).registrationPromise)||!await n),await zr(r,t));return n.token}function Gr(e){return fr.create("missing-app-config-values",{valueName:e})}let $r="installations",Qr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Gr("App Configuration");if(!e.name)throw Gr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Gr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Rt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Yr=e=>{let t=Rt(e.getProvider("app").getImmediate(),$r).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await Vr(t);return(n||zr(t)).catch(console.error),r.fid})(t),getToken:e=>Hr(t,e)}};Nt(new c($r,Qr,"PUBLIC")),Nt(new c("installations-internal",Yr,"PRIVATE")),u(ar,lr),u(ar,lr,"esm2020");let Jr="analytics",Xr="firebase_id",Zr="origin",en=6e4,tn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",rn="https://www.googletagmanager.com/gtag/js",nn=new Xe("@firebase/analytics"),sn=new ge("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function an(e){var t;return e.startsWith(rn)?e:(t=sn.create("invalid-gtag-resource",{gtagURL:e}),nn.warn(t.message),"")}function on(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function ln(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:an}),n=document.createElement("script"),i=rn+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function hn(k,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=k,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await on(a);for(let t of e){var c=h.find(e=>e.measurementId===t),u=c&&s[c.appId];if(!u){r=[];break}r.push(u)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){nn.error(e)}}else if("config"===e){var d,[p,f]=t,g=k,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await on(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){nn.error(e)}g("config",_,y)}else{var b,I,T,E,C,S;"consent"===e?([b,I]=t,k("consent",b,I)):"get"===e?([T,E,C]=t,k("get",T,E,C)):"set"===e?([S]=t,k("set",S)):k(e,...t)}}catch(e){nn.error(e)}}}let cn=30;let un=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function dn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=tn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw sn.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function pn(e,t=un,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw sn.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw sn.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new mn;return setTimeout(async()=>{o.abort()},void 0!==r?r:en),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=un){let{appId:h,measurementId:c}=s;try{await fn(o,e)}catch(e){if(c)return nn.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${e?.message}]`),{appId:h,measurementId:c};throw e}try{let e=await dn(s);return l.deleteThrottleMetadata(h),e}catch(e){let t=e;if(!gn(t)){if(l.deleteThrottleMetadata(h),c)return nn.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${t?.message}]`),{appId:h,measurementId:c};throw