Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910
  1. !function(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(){"use strict";function i(e){var t=n(e);return r.encodeByteArray(t,!0)}const t={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},f=function(e,t){if(!e)throw u(t)},u=function(e){return new Error("Firebase Database ("+t.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},n=function(t){const n=[];let r=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?n[r++]=e:(e<2048?n[r++]=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)),n[r++]=e>>18|240,n[r++]=e>>12&63|128):n[r++]=e>>12|224,n[r++]=e>>6&63|128),n[r++]=63&e|128)}return n},r={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(n,e){if(!Array.isArray(n))throw Error("encodeByteArray takes an array as a parameter");this.init_();var r=e?this.byteToCharMapWebSafe_:this.byteToCharMap_;const i=[];for(let u=0;u<n.length;u+=3){var s=n[u],a=u+1<n.length,o=a?n[u+1]:0,c=u+2<n.length,l=c?n[u+2]:0;let e=(15&o)<<2|l>>6,t=63&l;c||(t=64,a||(e=64)),i.push(r[s>>2],r[(3&s)<<4|o>>4],r[e],r[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(n(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){var i,s,a=e[n++];a<128?t[r++]=String.fromCharCode(a):191<a&&a<224?(i=e[n++],t[r++]=String.fromCharCode((31&a)<<6|63&i)):239<a&&a<365?(s=((7&a)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536,t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))):(i=e[n++],s=e[n++],t[r++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s))}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();var n=t?this.charToByteMapWebSafe_:this.charToByteMap_;const r=[];for(let c=0;c<e.length;){var i=n[e.charAt(c++)],s=c<e.length?n[e.charAt(c)]:0;++c;var a=c<e.length?n[e.charAt(c)]:64;++c;var o=c<e.length?n[e.charAt(c)]:64;if(++c,null==i||null==s||null==a||null==o)throw Error();r.push(i<<2|s>>4),64!==a&&(r.push(s<<4&240|a>>2),64!==o&&r.push(a<<6&192|o))}return r},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,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}},s=function(e){return i(e).replace(/\./g,"")},a=function(e){try{return r.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function c(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:const n=t;return new Date(n.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(const r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=c(e[r],t[r]));return e}function o(){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.")}const e=()=>o().__FIREBASE_DEFAULTS__,l=()=>{if("undefined"!=typeof process&&void 0!==process.env){var e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0}},h=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&a(e[1]);return t&&JSON.parse(t)}},d=()=>{try{return e()||l()||h()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},p=()=>{var e;return null===(e=d())||void 0===e?void 0:e.config};var g,m,v;class y{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(n){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof n&&(this.promise.catch(()=>{}),1===n.length?n(e):n(e,t))}}}function _(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 n=t||"demo-project",r=e.iat||0,i=e.sub||e.user_id;if(!i)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e);return[s(JSON.stringify({alg:"none",type:"JWT"})),s(JSON.stringify(i)),""].join(".")}function w(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function b(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(w())}function I(){var e=null===(e=d())||void 0===e?void 0:e.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 T(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function E(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function k(){const e=w();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function S(){return!0===t.NODE_ADMIN}function C(){try{return"object"==typeof indexedDB}catch(e){return!1}}function A(){return new Promise((t,n)=>{try{let e=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),e||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{e=!1},i.onerror=()=>{var e;n((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){n(e)}})}function N(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class R extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,R.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,x.prototype.create)}}class x{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],s=s?(r=n,s.replace(D,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",s=`${this.serviceName}: ${s} (${i}).`;return new R(i,s,n)}}const D=/\{\$([^}]+)}/g;function P(e){return JSON.parse(e)}function O(e){return JSON.stringify(e)}function M(e){let t={},n={},r={},i="";try{var s=e.split(".");t=P(a(s[0])||""),n=P(a(s[1])||""),i=s[2],r=n.d||{},delete n.d}catch(e){}return{header:t,claims:n,data:r,signature:i}}function L(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function F(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function U(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function q(e,t,n){const r={};for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=t.call(n,e[i],i,e));return r}function V(e,t){if(e===t)return 1;const n=Object.keys(e),r=Object.keys(t);for(const a of n){if(!r.includes(a))return;var i=e[a],s=t[a];if(B(i)&&B(s)){if(!V(i,s))return}else if(i!==s)return}for(const o of r)if(!n.includes(o))return;return 1}function B(e){return null!==e&&"object"==typeof e}function j(e){const t=[];for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach(e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""}function $(e){const r={},t=e.replace(/^\?/,"").split("&");return t.forEach(e=>{var t,n;e&&([t,n]=e.split("="),r[decodeURIComponent(t)]=decodeURIComponent(n))}),r}function K(e){var t=e.indexOf("?");if(!t)return"";var n=e.indexOf("#",t);return e.substring(t,0<n?n:void 0)}class W{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_(n,r){r=r||0;const i=this.W_;if("string"==typeof n)for(let e=0;e<16;e++)i[e]=n.charCodeAt(r)<<24|n.charCodeAt(r+1)<<16|n.charCodeAt(r+2)<<8|n.charCodeAt(r+3),r+=4;else for(let t=0;t<16;t++)i[t]=n[r]<<24|n[r+1]<<16|n[r+2]<<8|n[r+3],r+=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],c=this.chain_[4],l,u;for(let p=0;p<80;p++){u=p<40?p<20?(l=o^s&(a^o),1518500249):(l=s^a^o,1859775393):p<60?(l=s&a|o&(s|a),2400959708):(l=s^a^o,3395469782);var h=(t<<5|t>>>27)+l+c+u+i[p]&4294967295;c=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=h}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]+c&4294967295}update(n,r){if(null!=n){var i=(r=void 0===r?n.length:r)-this.blockSize;let e=0;const s=this.buf_;let t=this.inbuf_;for(;e<r;){if(0===t)for(;e<=i;)this.compress_(n,e),e+=this.blockSize;if("string"==typeof n){for(;e<r;)if(s[t]=n.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<r;)if(s[t]=n[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=r}}digest(){const 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 r=this.blockSize-1;56<=r;r--)this.buf_[r]=255&e,e/=256;this.compress_(this.buf_);let n=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[n]=this.chain_[i]>>e&255,++n;return t}}function z(e,t){const n=new G(e,t);return n.subscribe.bind(n)}class G{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,n){let r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=function(e,t){if("object"!=typeof e||null===e)return!1;for(const n of t)if(n in e&&"function"==typeof e[n])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=H),void 0===r.error&&(r.error=H),void 0===r.complete&&(r.complete=H);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}}),this.observers.push(r),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 H(){}function Q(e,t,n,r){let i;if(r<t?i="at least "+t:n<r&&(i=0===n?"none":"no more than "+n),i){var s=e+" failed: Was called with "+r+(1===r?" argument.":" arguments.")+" Expects "+i+".";throw new Error(s)}}function Y(e,t){return`${e} failed: ${t} argument `}function J(e,t,n,r){if((!r||n)&&"function"!=typeof n)throw new Error(Y(e,t)+"must be a valid function.")}function X(e,t,n,r){if((!r||n)&&("object"!=typeof n||null===n))throw new Error(Y(e,t)+"must be a valid context object.")}function Z(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}const ee=function(e){let t=0;for(let r=0;r<e.length;r++){var n=e.charCodeAt(r);n<128?t++:n<2048?t+=2:55296<=n&&n<=56319?(t+=4,r++):t+=3}return t},te=1e3,ne=2,re=144e5,ie=.5;function se(e,t=te,n=ne){var r=t*Math.pow(n,e),i=Math.round(ie*r*(Math.random()-.5)*2);return Math.min(re,r+i)}function ae(e){return e&&e._delegate?e._delegate:e}class oe{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}const ce="[DEFAULT]";class le{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)){const r=new y;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(null==e?void 0:e.identifier),n=null!==(n=null==e?void 0:e.optional)&&void 0!==n&&n;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(n)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:ce})}catch(e){}for(var[t,n]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var r=this.getOrInitializeService({instanceIdentifier:t});n.resolve(r)}catch(e){}}}}clearInstance(e=ce){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const 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=ce){return this.instances.has(e)}getOptions(e=ce){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var r,i,s=this.getOrInitializeService({instanceIdentifier:n,options:t});for([r,i]of this.instancesDeferred.entries())n===this.normalizeInstanceIdentifier(r)&&i.resolve(s);return s}onInit(e,t){var n=this.normalizeInstanceIdentifier(t);const r=null!==(i=this.onInitCallbacks.get(n))&&void 0!==i?i:new Set;r.add(e),this.onInitCallbacks.set(n,r);var i=this.instances.get(n);return i&&e(i,n),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){var n=this.onInitCallbacks.get(t);if(n)for(const r of n)try{r(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===ce?void 0:r,options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var r;return n||null}normalizeInstanceIdentifier(e=ce){return!this.component||this.component.multipleInstances?e:ce}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class ue{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const 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){const t=this.getProvider(e.name);t.isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);var t=new le(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const he=[];(m=g=g||{})[m.DEBUG=0]="DEBUG",m[m.VERBOSE=1]="VERBOSE",m[m.INFO=2]="INFO",m[m.WARN=3]="WARN",m[m.ERROR=4]="ERROR",m[m.SILENT=5]="SILENT";const de={debug:g.DEBUG,verbose:g.VERBOSE,info:g.INFO,warn:g.WARN,error:g.ERROR,silent:g.SILENT},pe=g.INFO,fe={[g.DEBUG]:"log",[g.VERBOSE]:"log",[g.INFO]:"info",[g.WARN]:"warn",[g.ERROR]:"error"},ge=(e,t,...n)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),i=fe[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${r}] ${e.name}:`,...n)}};class me{constructor(e){this.name=e,this._logLevel=pe,this._logHandler=ge,this._userLogHandler=null,he.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in g))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?de[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,g.DEBUG,...e),this._logHandler(this,g.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,g.VERBOSE,...e),this._logHandler(this,g.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,g.INFO,...e),this._logHandler(this,g.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,g.WARN,...e),this._logHandler(this,g.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,g.ERROR,...e),this._logHandler(this,g.ERROR,...e)}}const ve=(t,e)=>e.some(e=>t instanceof e);let ye,_e;const we=new WeakMap,be=new WeakMap,Ie=new WeakMap,Te=new WeakMap,Ee=new WeakMap;let ke={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return be.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Ie.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Ae(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function Se(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(_e=_e||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply(Ne(this),e),Ae(we.get(this))}:function(...e){return Ae(r.apply(Ne(this),e))}:function(e,...t){var n=r.call(Ne(this),e,...t);return Ie.set(n,e.sort?e.sort():[e]),Ae(n)}}function Ce(e){return"function"==typeof e?Se(e):(e instanceof IDBTransaction&&(s=e,be.has(s)||(t=new Promise((e,t)=>{const n=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),n()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)}),be.set(s,t))),ve(e,ye=ye||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ke):e);var s,t}function Ae(e){if(e instanceof IDBRequest)return function(s){const e=new Promise((e,t)=>{const n=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{e(Ae(s.result)),n()},i=()=>{t(s.error),n()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(e=>{e instanceof IDBCursor&&we.set(e,s)}).catch(()=>{}),Ee.set(e,s),e}(e);if(Te.has(e))return Te.get(e);var t=Ce(e);return t!==e&&(Te.set(e,t),Ee.set(t,e)),t}const Ne=e=>Ee.get(e);function Re(e,t,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const a=indexedDB.open(e,t),o=Ae(a);return r&&a.addEventListener("upgradeneeded",e=>{r(Ae(a.result),e.oldVersion,e.newVersion,Ae(a.transaction))}),n&&a.addEventListener("blocked",()=>n()),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",()=>i())}).catch(()=>{}),o}function xe(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",()=>t()),Ae(n).then(()=>{})}const De=["get","getKey","getAll","getAllKeys","count"],Pe=["put","add","delete","clear"],Oe=new Map;function Me(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(Oe.get(t))return Oe.get(t);const i=t.replace(/FromIndex$/,""),s=t!==i,a=Pe.includes(i);if(i in(s?IDBIndex:IDBObjectStore).prototype&&(a||De.includes(i))){var n=async function(e,...t){var n=this.transaction(e,a?"readwrite":"readonly");let r=n.store;return s&&(r=r.index(t.shift())),(await Promise.all([r[i](...t),a&&n.done]))[0]};return Oe.set(t,n),n}}}ke={...v=ke,get:(e,t,n)=>Me(e,t)||v.get(e,t,n),has:(e,t)=>!!Me(e,t)||v.has(e,t)};class Le{constructor(e){this.container=e}getPlatformInfoString(){const e=this.container.getProviders();return e.map(e=>{if("VERSION"!==(null==(t=e.getComponent())?void 0:t.type))return null;var t,t=e.getImmediate();return`${t.library}/${t.version}`}).filter(e=>e).join(" ")}}const Fe="@firebase/app",Ue=new me("@firebase/app");var qe;const Ve="[DEFAULT]",Be={"@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/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","fire-js":"fire-js",firebase:"fire-js-all"},je=new Map,$e=new Map;function Ke(t,n){try{t.container.addComponent(n)}catch(e){Ue.debug(`Component ${n.name} failed to register with FirebaseApp ${t.name}`,e)}}function We(e,t){e.container.addOrOverwriteComponent(t)}function ze(e){var t=e.name;if($e.has(t))return Ue.debug(`There were multiple attempts to register component ${t}.`),!1;$e.set(t,e);for(const n of je.values())Ke(n,e);return!0}function Ge(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}const He=new x("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","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","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}."});class Qe{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new oe("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 He.create("app-deleted",{appName:this._name})}}const Ye="9.16.0";function Je(e,t={}){let n=e;if("object"!=typeof t){const i=t;t={name:i}}var r=Object.assign({name:Ve,automaticDataCollectionEnabled:!1},t);const i=r.name;if("string"!=typeof i||!i)throw He.create("bad-app-name",{appName:String(i)});if(n=n||p(),!n)throw He.create("no-options");var s=je.get(i);if(s){if(V(n,s.options)&&V(r,s.config))return s;throw He.create("duplicate-app",{appName:i})}const a=new ue(i);for(const o of $e.values())a.addComponent(o);r=new Qe(n,r,a);return je.set(i,r),r}function Xe(e=Ve){var t=je.get(e);if(!t&&e===Ve)return Je();if(!t)throw He.create("no-app",{appName:e});return t}async function Ze(e){var t=e.name;je.has(t)&&(je.delete(t),await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function et(e,t,n){let r=null!==(s=Be[e])&&void 0!==s?s:e;n&&(r+=`-${n}`);var i=r.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const a=[`Unable to register library "${r}" with version "${t}":`];return i&&a.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&a.push("and"),s&&a.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void Ue.warn(a.join(" "))}ze(new oe(`${r}-version`,()=>({library:r,version:t}),"VERSION"))}function tt(e,t){if(null!==e&&"function"!=typeof e)throw He.create("invalid-log-argument");!function(s,e){for(const t of he){let i=null;e&&e.level&&(i=de[e.level]),t.userLogHandler=null===s?null:(e,t,...n)=>{var r=n.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>=(null!==i&&void 0!==i?i:e.logLevel)&&s({level:g[t].toLowerCase(),message:r,args:n,type:e.name})}}}(e,t)}function nt(e){var t;t=e,he.forEach(e=>{e.setLogLevel(t)})}const rt="firebase-heartbeat-database",it=1,st="firebase-heartbeat-store";let at=null;function ot(){return at=at||Re(rt,it,{upgrade:(e,t)=>{0===t&&e.createObjectStore(st)}}).catch(e=>{throw He.create("idb-open",{originalErrorMessage:e.message})}),at}async function ct(e,t){try{const r=await ot(),i=r.transaction(st,"readwrite"),s=i.objectStore(st);return await s.put(t,lt(e)),i.done}catch(e){var n;e instanceof R?Ue.warn(e.message):(n=He.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),Ue.warn(n.message))}}function lt(e){return`${e.name}!${e.options.appId}`}class ut{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new dt(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){const e=this.container.getProvider("platform-logger").getImmediate();var t=e.getPlatformInfoString();const n=ht();if(null===this._heartbeatsCache&&(this._heartbeatsCache=await this._heartbeatsCachePromise),this._heartbeatsCache.lastSentHeartbeatDate!==n&&!this._heartbeatsCache.heartbeats.some(e=>e.date===n))return this._heartbeatsCache.heartbeats.push({date:n,agent:t}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter(e=>{var t=new Date(e.date).valueOf();return Date.now()-t<=2592e6}),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null===this._heartbeatsCache||0===this._heartbeatsCache.heartbeats.length)return"";var e=ht(),{heartbeatsToSend:t,unsentEntries:n}=function(e,t=1024){const n=[];let r=e.slice();for(const i of e){const s=n.find(e=>e.agent===i.agent);if(s){if(s.dates.push(i.date),pt(n)>t){s.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),pt(n)>t){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),t=s(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,0<n.length?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),t}}function ht(){const e=new Date;return e.toISOString().substring(0,10)}class dt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!C()&&A().then(()=>!0).catch(()=>!1)}async read(){return await this._canUseIndexedDBPromise&&await async function(e){try{const n=await ot();return n.transaction(st).objectStore(st).get(lt(e))}catch(e){var t;e instanceof R?Ue.warn(e.message):(t=He.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),Ue.warn(t.message))}}(this.app)||{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){var n=await this.read();return ct(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){var n=await this.read();return ct(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function pt(e){return s(JSON.stringify({version:2,heartbeats:e})).length}qe="",ze(new oe("platform-logger",e=>new Le(e),"PRIVATE")),ze(new oe("heartbeat",e=>new ut(e),"PRIVATE")),et(Fe,"0.9.1",qe),et(Fe,"0.9.1","esm2017"),et("fire-js","");var ft=Object.freeze({__proto__:null,SDK_VERSION:Ye,_DEFAULT_ENTRY_NAME:Ve,_addComponent:Ke,_addOrOverwriteComponent:We,_apps:je,_clearComponents:function(){$e.clear()},_components:$e,_getProvider:Ge,_registerComponent:ze,_removeServiceInstance:function(e,t,n=Ve){Ge(e,t).clearInstance(n)},deleteApp:Ze,getApp:Xe,getApps:function(){return Array.from(je.values())},initializeApp:Je,onLog:tt,registerVersion:et,setLogLevel:nt,FirebaseError:R});class gt{constructor(e,t){this._delegate=e,this.firebase=t,Ke(e,new oe("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),Ze(this._delegate)))}_getService(e,t=Ve){var n;this._delegate.checkDestroyed();const r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==(null===(n=r.getComponent())||void 0===n?void 0:n.instantiationMode)||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ve){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Ke(this._delegate,e)}_addOrOverwriteComponent(e){We(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}const mt=new x("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 vt(i){const s={},a={__esModule:!0,initializeApp:function(e,t={}){var n=Je(e,t);if(L(s,n.name))return s[n.name];var r=new i(n,a);return s[n.name]=r},app:o,registerVersion:et,setLogLevel:nt,onLog:tt,apps:null,SDK_VERSION:Ye,INTERNAL:{registerComponent:function(n){const r=n.name,t=r.replace("-compat","");{var e;ze(n)&&"PUBLIC"===n.type&&(e=(e=o())=>{if("function"!=typeof e[t])throw mt.create("invalid-app-argument",{appName:r});return e[t]()},void 0!==n.serviceProps&&c(e,n.serviceProps),a[t]=e,i.prototype[t]=function(...e){const t=this._getService.bind(this,r);return t.apply(this,n.multipleInstances?e:[])})}return"PUBLIC"===n.type?a[t]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var n=t;return n},modularAPIs:ft}};function o(e){if(e=e||Ve,!L(s,e))throw mt.create("no-app",{appName:e});return s[e]}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var yt=function e(){const t=vt(gt);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){c(t,e)},createSubscribe:z,ErrorFactory:x,deepExtend:c}),t}();const _t=new me("@firebase/app-compat");if("object"==typeof self&&self.self===self&&void 0!==self.firebase){_t.warn(`
  2. Warning: Firebase is already defined in the global scope. Please make sure
  3. Firebase library is only loaded once.
  4. `);const nO=self.firebase.SDK_VERSION;nO&&0<=nO.indexOf("LITE")&&_t.warn(`
  5. Warning: You are trying to load Firebase while using Firebase Performance standalone script.
  6. You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
  7. `)}const wt=yt;et("@firebase/app-compat","0.2.1",void 0);wt.registerVersion("firebase","9.16.0","app-compat");var bt="@firebase/installations",It="0.6.1";const Tt=1e4,Et="w:0.6.1",kt="FIS_v2",St="https://firebaseinstallations.googleapis.com/v1",Ct=36e5;const At=new x("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 Nt(e){return e instanceof R&&e.code.includes("request-failed")}function Rt({projectId:e}){return`${St}/projects/${e}/installations`}function xt(e){return{token:e.token,requestStatus:2,expiresIn:(e=e.expiresIn,Number(e.replace("s","000"))),creationTime:Date.now()}}async function Dt(e,t){var n=(await t.json()).error;return At.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function Pt({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Ot(e,{refreshToken:t}){const n=Pt(e);return n.append("Authorization",(t=t,`${kt} ${t}`)),n}async function Mt(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Lt(t){return new Promise(e=>{setTimeout(e,t)})}const Ft=/^[cdef][\w-]{21}$/,Ut="";function qt(){try{const t=new Uint8Array(17),n=self.crypto||self.msCrypto;n.getRandomValues(t),t[0]=112+t[0]%16;var e=function(e){const t=function(e){const t=btoa(String.fromCharCode(...e));return t.replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(t);return Ft.test(e)?e:Ut}catch(e){return Ut}}function Vt(e){return`${e.appName}!${e.appId}`}const Bt=new Map;function jt(e,t){var n=Vt(e);$t(n,t),function(e,t){const n=function(){!Kt&&"BroadcastChannel"in self&&(Kt=new BroadcastChannel("[Firebase] FID Change"),Kt.onmessage=e=>{$t(e.data.key,e.data.fid)});return Kt}();n&&n.postMessage({key:e,fid:t});0===Bt.size&&Kt&&(Kt.close(),Kt=null)}(n,t)}function $t(e,t){var n=Bt.get(e);if(n)for(const r of n)r(t)}let Kt=null;const Wt="firebase-installations-store";let zt=null;function Gt(){return zt=zt||Re("firebase-installations-database",1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Wt)}}),zt}async function Ht(e,t){var n=Vt(e);const r=await Gt(),i=r.transaction(Wt,"readwrite"),s=i.objectStore(Wt);var a=await s.get(n);return await s.put(t,n),await i.done,a&&a.fid===t.fid||jt(e,t.fid),t}async function Qt(e){var t=Vt(e);const n=await Gt(),r=n.transaction(Wt,"readwrite");await r.objectStore(Wt).delete(t),await r.done}async function Yt(e,t){var n=Vt(e);const r=await Gt(),i=r.transaction(Wt,"readwrite"),s=i.objectStore(Wt);var a=await s.get(n),o=t(a);return void 0===o?await s.delete(n):await s.put(o,n),await i.done,!o||a&&a.fid===o.fid||jt(e,o.fid),o}async function Jt(n){let r;var e=await Yt(n.appConfig,e=>{var t=Zt(e||{fid:qt(),registrationStatus:0}),t=function(e,t){{if(0!==t.registrationStatus)return 1===t.registrationStatus?{installationEntry:t,registrationPromise:async function(e){let t=await Xt(e.appConfig);for(;1===t.registrationStatus;)await Lt(100),t=await Xt(e.appConfig);if(0!==t.registrationStatus)return t;{var{installationEntry:n,registrationPromise:r}=await Jt(e);return r||n}}(e)}:{installationEntry:t};if(!navigator.onLine){var n=Promise.reject(At.create("app-offline"));return{installationEntry:t,registrationPromise:n}}var r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=async function(t,n){try{var e=await async function({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=Rt(e),i=Pt(e),s=t.getImmediate({optional:!0});!s||(a=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",a);var a={fid:n,authVersion:kt,appId:e.appId,sdkVersion:Et};const o={method:"POST",headers:i,body:JSON.stringify(a)},c=await Mt(()=>fetch(r,o));if(c.ok){a=await c.json();return{fid:a.fid||n,registrationStatus:2,refreshToken:a.refreshToken,authToken:xt(a.authToken)}}throw await Dt("Create Installation",c)}(t,n);return Ht(t.appConfig,e)}catch(e){throw Nt(e)&&409===e.customData.serverCode?await Qt(t.appConfig):await Ht(t.appConfig,{fid:n.fid,registrationStatus:0}),e}}(e,r);return{installationEntry:r,registrationPromise:n}}}(n,t);return r=t.registrationPromise,t.installationEntry});return e.fid===Ut?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function Xt(e){return Yt(e,e=>{if(!e)throw At.create("installation-not-found");return Zt(e)})}function Zt(e){return 1===(t=e).registrationStatus&&t.registrationTime+Tt<Date.now()?{fid:e.fid,registrationStatus:0}:e;var t}async function en({appConfig:e,heartbeatServiceProvider:t},n){const r=([i,s]=[e,n["fid"]],`${Rt(i)}/${s}/authTokens:generate`);var i,s;const a=Ot(e,n),o=t.getImmediate({optional:!0});!o||(c=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",c);var c={installation:{sdkVersion:Et,appId:e.appId}};const l={method:"POST",headers:a,body:JSON.stringify(c)},u=await Mt(()=>fetch(r,l));if(u.ok)return xt(await u.json());throw await Dt("Generate Auth Token",u)}async function tn(r,i=!1){let s;var e=await Yt(r.appConfig,e=>{if(!rn(e))throw At.create("not-registered");var t,n=e.authToken;if(i||2!==(t=n).requestStatus||function(e){var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+Ct}(t)){if(1===n.requestStatus)return s=async function(e,t){let n=await nn(e.appConfig);for(;1===n.authToken.requestStatus;)await Lt(100),n=await nn(e.appConfig);var r=n.authToken;return 0===r.requestStatus?tn(e,t):r}(r,i),e;if(!navigator.onLine)throw At.create("app-offline");n=(t=e,n={requestStatus:1,requestTime:Date.now()},Object.assign(Object.assign({},t),{authToken:n}));return s=async function(t,n){try{var r=await en(t,n),e=Object.assign(Object.assign({},n),{authToken:r});return await Ht(t.appConfig,e),r}catch(e){throw!Nt(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(r=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await Ht(t.appConfig,r)):await Qt(t.appConfig),e}}(r,n),n}return e});return s?await s:e.authToken}function nn(e){return Yt(e,e=>{if(!rn(e))throw At.create("not-registered");var t,n=e.authToken;return 1===(t=n).requestStatus&&t.requestTime+Tt<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}function rn(e){return void 0!==e&&2===e.registrationStatus}async function sn(e,t=!1){var n,r=e;return await((n=(await Jt(r)).registrationPromise)&&await n),(await tn(r,t)).token}function an(e){return At.create("missing-app-config-values",{valueName:e})}const on="installations",cn=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:function(e){if(!e||!e.options)throw an("App Configuration");if(!e.name)throw an("App Name");for(const t of["projectId","apiKey","appId"])if(!e.options[t])throw an(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t),heartbeatServiceProvider:Ge(t,"heartbeat"),_delete:()=>Promise.resolve()}},ln=e=>{const t=Ge(e.getProvider("app").getImmediate(),on).getImmediate();return{getId:()=>async function(e){var t=e;const{installationEntry:n,registrationPromise:r}=await Jt(t);return(r||tn(t)).catch(console.error),n.fid}(t),getToken:e=>sn(t,e)}};ze(new oe(on,cn,"PUBLIC")),ze(new oe("installations-internal",ln,"PRIVATE")),et(bt,It),et(bt,It,"esm2017");const un="analytics",hn="firebase_id",dn="origin",pn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",fn="https://www.googletagmanager.com/gtag/js",gn=new me("@firebase/analytics");function mn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function vn(r,i,s,a){return async function(e,t,n){try{"event"===e?await async function(e,n,r,i,s){try{let t=[];if(s&&s.send_to){let e=s.send_to;Array.isArray(e)||(e=[e]);const c=await mn(r);for(const l of e){var a=c.find(e=>e.measurementId===l),o=a&&n[a.appId];if(!o){t=[];break}t.push(o)}}0===t.length&&(t=Object.values(n)),await Promise.all(t),e("event",i,s||{})}catch(e){gn.error(e)}}(r,i,s,t,n):"config"===e?await async function(e,t,n,r,i,s){var a=r[i];try{if(a)await t[a];else{const c=await mn(n);var o=c.find(e=>e.measurementId===i);o&&await t[o.appId]}}catch(e){gn.error(e)}e("config",i,s)}(r,i,s,a,t,n):"consent"===e?r("consent","update",n):r("set",t)}catch(e){gn.error(e)}}}const yn=new x("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-intialized 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.'}),_n=30;const wn=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 bn(e){var t,{appId:n,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},n=pn.replace("{app-id}",n);const i=await fetch(n,r);if(200===i.status||304===i.status)return i.json();{let e="";try{var s=await i.json();null!==(t=s.error)&&void 0!==t&&t.message&&(e=s.error.message)}catch(e){}throw yn.create("config-fetch-failed",{httpStatus:i.status,responseMessage:e})}}async function In(e,t=wn,n){var{appId:r,apiKey:i,measurementId:s}=e.options;if(!r)throw yn.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:r};throw yn.create("no-api-key")}var a=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};const o=new kn;return setTimeout(async()=>{o.abort()},void 0!==n?n:6e4),async function t(n,{throttleEndTimeMillis:e,backoffCount:r},i,s=wn){var a;const{appId:o,measurementId:c}=n;try{await Tn(i,e)}catch(e){if(c)return gn.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. [${null==e?void 0:e.message}]`),{appId:o,measurementId:c};throw e}try{const l=await bn(n);return s.deleteThrottleMetadata(o),l}catch(e){const u=e;if(!En(u)){if(s.deleteThrottleMetadata(o),c)return gn.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. [${null===u||void 0===u?void 0:u.message}]`),{appId:o,measurementId:c};throw e}const h=503===Number(null===(a=null===u||void 0===u?void 0:u.customData)||void 0===a?void 0:a.httpStatus)?se(r,s.intervalMillis,_n):se(r,s.intervalMillis),d={throttleEndTimeMillis:Date.now()+h,backoffCount:r+1};return s.setThrottleMetadata(o,d),gn.debug(`Calling attemptFetch again in ${h} millis`),t(n,d,i,s)}}({appId:r,apiKey:i,measurementId:s},a,o,t)}function Tn(i,s){return new Promise((e,t)=>{var n=Math.max(s-Date.now(),0);const r=setTimeout(e,n);i.addEventListener(()=>{clearTimeout(r),t(yn.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function En(e){if(!(e instanceof R&&e.customData))return!1;var t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}class kn{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function Sn(t,e,n,r,i,s,a){const o=In(t);o.then(e=>{n[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&gn.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.measurementId}).`+" To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.")}).catch(e=>gn.error(e)),e.push(o);var c=async function(){if(!C())return gn.warn(yn.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await A()}catch(e){return gn.warn(yn.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0}().then(e=>{if(e)return r.getId()}),[l,u]=await Promise.all([o,c]);!function(e){var t=window.document.getElementsByTagName("script");for(const n of Object.values(t))if(n.src&&n.src.includes(fn)&&n.src.includes(e))return n}(s)&&function(e,t){const n=document.createElement("script");n.src=`${fn}?l=${e}&id=${t}`,n.async=!0,document.head.appendChild(n)}(s,l.measurementId),i("js",new Date);const h=null!==(c=null==a?void 0:a.config)&&void 0!==c?c:{};return h[dn]="firebase",h.update=!0,null!=u&&(h[hn]=u),i("config",l.measurementId,h),l.measurementId}class Cn{constructor(e){this.app=e}_delete(){return delete An[this.app.options.appId],Promise.resolve()}}let An={},Nn=[];const Rn={};let xn="dataLayer",Dn="gtag",Pn,On,Mn=!1;function Ln(e){if(Mn)throw yn.create("already-initialized");e.dataLayerName&&(xn=e.dataLayerName),e.gtagName&&(Dn=e.gtagName)}function Fn(e,t,n){!function(){const e=[];var t;T()&&e.push("This is a browser extension environment."),N()||e.push("Cookies are not available."),0<e.length&&(t=e.map((e,t)=>`(${t+1}) ${e}`).join(" "),t=yn.create("invalid-analytics-context",{errorInfo:t}),gn.warn(t.message))}();var r,i,s=e.options.appId;if(!s)throw yn.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw yn.create("no-api-key");gn.warn('The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest'+` measurement ID for this Firebase app. Falling back to the measurement ID ${e.options.measurementId}`+' provided in the "measurementId" field in the local Firebase config.')}if(null!=An[s])throw yn.create("already-exists",{id:s});return Mn||(function(e){let t=[];Array.isArray(window[e])?t=window[e]:window[e]=t,t}(xn),{wrappedGtag:r,gtagCore:i}=function(e,t,n,r,i){let s=function(){window[r].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=vn(s,e,t,n),{gtagCore:s,wrappedGtag:window[i]}}(An,Nn,Rn,xn,Dn),On=r,Pn=i,Mn=!0),An[s]=Sn(e,Nn,Rn,t,Pn,xn,n),new Cn(e)}async function Un(){if(T())return!1;if(!N())return!1;if(!C())return!1;try{return await A()}catch(e){return!1}}function qn(e,t,n){e=ae(e),async function(e,t,n,r){if(r&&r.global)return e("set",{screen_name:n}),Promise.resolve();e("config",await t,{update:!0,screen_name:n})}(On,An[e.app.options.appId],t,n).catch(e=>gn.error(e))}function Vn(e,t,n){e=ae(e),async function(e,t,n,r){if(r&&r.global)return e("set",{user_id:n}),Promise.resolve();e("config",await t,{update:!0,user_id:n})}(On,An[e.app.options.appId],t,n).catch(e=>gn.error(e))}function Bn(e,t,n){e=ae(e),async function(e,t,n,r){if(r&&r.global){const i={};for(const s of Object.keys(n))i[`user_properties.${s}`]=n[s];return e("set",i),Promise.resolve()}e("config",await t,{update:!0,user_properties:n})}(On,An[e.app.options.appId],t,n).catch(e=>gn.error(e))}function jn(e,t){e=ae(e),async function(e,t){var n=await e;window[`ga-disable-${n}`]=!t}(An[e.app.options.appId],t).catch(e=>gn.error(e))}function $n(e,t,n,r){e=ae(e),async function(e,t,n,r,i){var s;i&&i.global?e("event",n,r):(s=await t,e("event",n,Object.assign(Object.assign({},r),{send_to:s})))}(On,An[e.app.options.appId],t,n,r).catch(e=>gn.error(e))}const Kn="@firebase/analytics";ze(new oe(un,(e,{options:t})=>{return Fn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t)},"PUBLIC")),ze(new oe("analytics-internal",function(e){try{const r=e.getProvider(un).getImmediate();return{logEvent:(e,t,n)=>$n(r,e,t,n)}}catch(e){throw yn.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),et(Kn,"0.9.1"),et(Kn,"0.9.1","esm2017");var Wn,zn;class Gn{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,n){$n(this._delegate,e,t,n)}setCurrentScreen(e,t){qn(this._delegate,e,t)}setUserId(e,t){Vn(this._delegate,e,t)}setUserProperties(e,t){Bn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){jn(this._delegate,e)}}(XS=Wn=Wn||{}).ADD_SHIPPING_INFO="add_shipping_info",XS.ADD_PAYMENT_INFO="add_payment_info",XS.ADD_TO_CART="add_to_cart",XS.ADD_TO_WISHLIST="add_to_wishlist",XS.BEGIN_CHECKOUT="begin_checkout",XS.CHECKOUT_PROGRESS="checkout_progress",XS.EXCEPTION="exception",XS.GENERATE_LEAD="generate_lead",XS.LOGIN="login",XS.PAGE_VIEW="page_view",XS.PURCHASE="purchase",XS.REFUND="refund",XS.REMOVE_FROM_CART="remove_from_cart",XS.SCREEN_VIEW="screen_view",XS.SEARCH="search",XS.SELECT_CONTENT="select_content",XS.SELECT_ITEM="select_item",XS.SELECT_PROMOTION="select_promotion",XS.SET_CHECKOUT_OPTION="set_checkout_option",XS.SHARE="share",XS.SIGN_UP="sign_up",XS.TIMING_COMPLETE="timing_complete",XS.VIEW_CART="view_cart",XS.VIEW_ITEM="view_item",XS.VIEW_ITEM_LIST="view_item_list",XS.VIEW_PROMOTION="view_promotion",XS.VIEW_SEARCH_RESULTS="view_search_results";const Hn=e=>{var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("analytics").getImmediate();return new Gn(t,n)};zn={Analytics:Gn,settings:Ln,isSupported:Un,EventName:Wn},wt.INTERNAL.registerComponent(new oe("analytics-compat",Hn,"PUBLIC").setServiceProps(zn).setMultipleInstances(!0)),wt.registerVersion("@firebase/analytics-compat","0.2.1");const Qn=new Map,Yn={activated:!1,tokenObservers:[]},Jn={initialized:!1,enabled:!1};function Xn(e){return Qn.get(e)||Object.assign({},Yn)}const Zn="https://content-firebaseappcheck.googleapis.com/v1",er="exchangeDebugToken",tr={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class nr{constructor(e,t,n,r,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=n,this.lowerBound=r,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=r))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new y,t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new y,await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();var t=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t}}const rr=new x("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.",throttled:"Requests throttled due to {$httpStatus} error. Attempts allowed again after {$time}"});function ir(e=!1){var t;return e?null===(t=self.grecaptcha)||void 0===t?void 0:t.enterprise:self.grecaptcha}function sr(e){if(!Xn(e).activated)throw rr.create("use-before-activation",{appName:e.name})}function ar(e){var t=Math.round(e/1e3),n=Math.floor(t/86400),r=Math.floor((t-3600*n*24)/3600),i=Math.floor((t-3600*n*24-3600*r)/60),t=t-3600*n*24-3600*r-60*i;let s="";return n&&(s+=or(n)+"d:"),r&&(s+=or(r)+"h:"),s+=or(i)+"m:"+or(t)+"s",s}function or(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function cr({url:e,body:t},n){const r={"Content-Type":"application/json"},i=n.getImmediate({optional:!0});!i||(c=await i.getHeartbeatsHeader())&&(r["X-Firebase-Client"]=c);var s={method:"POST",body:JSON.stringify(t),headers:r};let a;try{a=await fetch(e,s)}catch(e){throw rr.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==a.status)throw rr.create("fetch-status-error",{httpStatus:a.status});let o;try{o=await a.json()}catch(e){throw rr.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}var c=o.ttl.match(/^([\d.]+)(s)$/);if(!c||!c[2]||isNaN(Number(c[1])))throw rr.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration "+`format: ${o.ttl}`});s=1e3*Number(c[1]),c=Date.now();return{token:o.token,expireTimeMillis:c+s,issuedAtTimeMillis:c}}const lr="firebase-app-check-database",ur=1,hr="firebase-app-check-store",dr="debug-token";let pr=null;function fr(){return pr||(pr=new Promise((t,n)=>{try{const e=indexedDB.open(lr,ur);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{var t;n(rr.create("storage-open",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))},e.onupgradeneeded=e=>{const t=e.target.result;0===e.oldVersion&&t.createObjectStore(hr,{keyPath:"compositeKey"})}}catch(e){n(rr.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}),pr)}async function gr(e,t){const n=await fr(),r=n.transaction(hr,"readwrite"),i=r.objectStore(hr),s=i.put({compositeKey:e,value:t});return new Promise((t,n)=>{s.onsuccess=e=>{t()},r.onerror=e=>{var t;n(rr.create("storage-set",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))}})}async function mr(e){const t=await fr(),i=t.transaction(hr,"readonly"),n=i.objectStore(hr),s=n.get(e);return new Promise((n,r)=>{s.onsuccess=e=>{var t=e.target.result;n(t?t.value:void 0)},i.onerror=e=>{var t;r(rr.create("storage-get",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))}})}function vr(e){return`${e.options.appId}-${e.name}`}const yr=new me("@firebase/app-check");async function _r(t){if(C()){let e=void 0;try{e=await mr(vr(t))}catch(e){yr.warn(`Failed to read token from IndexedDB. Error: ${e}`)}return e}}function wr(e,t){return C()?gr(vr(e),t).catch(e=>{yr.warn(`Failed to write token to IndexedDB. Error: ${e}`)}):Promise.resolve()}async function br(){let e=void 0;try{e=await mr(dr)}catch(e){}if(e)return e;var t,n=Z();return t=n,gr(dr,t).catch(e=>yr.warn(`Failed to persist debug token to IndexedDB. Error: ${e}`)),n}function Ir(){return Jn.enabled}async function Tr(){var e=Jn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
  8. Can't get debug token in production mode.
  9. `)}const Er={error:"UNKNOWN_ERROR"};async function kr(e,t=!1){var n=e.app;sr(n);const r=Xn(n);let i=r.token,s=void 0;if(i&&!Rr(i)&&(r.token=void 0,i=void 0),i||(o=await r.cachedTokenPromise)&&(Rr(o)?i=o:await wr(n,void 0)),!t&&i&&Rr(i))return{token:i.token};let a=!1;if(Ir()){r.exchangeTokenPromise||(r.exchangeTokenPromise=cr(function(e,t){var{projectId:n,appId:r,apiKey:i}=e.options;return{url:`${Zn}/projects/${n}/apps/${r}:${er}?key=${i}`,body:{debug_token:t}}}(n,await Tr()),e.heartbeatServiceProvider).finally(()=>{r.exchangeTokenPromise=void 0}),a=!0);var o=await r.exchangeTokenPromise;return await wr(n,o),{token:(r.token=o).token}}try{r.exchangeTokenPromise||(r.exchangeTokenPromise=r.provider.getToken().finally(()=>{r.exchangeTokenPromise=void 0}),a=!0),i=await Xn(n).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code?yr.warn(e.message):yr.error(e),s=e}let c;return i?s?c=Rr(i)?{token:i.token,internalError:s}:xr(s):(c={token:i.token},r.token=i,await wr(n,i)):c=xr(s),a&&Nr(n,c),c}function Sr(e,t,n,r){var i=e["app"];const s=Xn(i);i={next:n,error:r,type:t};if(s.tokenObservers=[...s.tokenObservers,i],s.token&&Rr(s.token)){const a=s.token;Promise.resolve().then(()=>{n({token:a.token}),Ar(e)}).catch(()=>{})}s.cachedTokenPromise.then(()=>Ar(e))}function Cr(e,t){const n=Xn(e);var r=n.tokenObservers.filter(e=>e.next!==t);0===r.length&&n.tokenRefresher&&n.tokenRefresher.isRunning()&&n.tokenRefresher.stop(),n.tokenObservers=r}function Ar(e){var t=e["app"];const n=Xn(t);let r=n.tokenRefresher;r||(r=function(n){const r=n["app"];return new nr(async()=>{var e=Xn(r);let t;if(t=e.token?await kr(n,!0):await kr(n),t.error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e=Xn(r);if(e.token){var t=e.token.issuedAtTimeMillis+.5*(e.token.expireTimeMillis-e.token.issuedAtTimeMillis)+3e5,e=e.token.expireTimeMillis-3e5,t=Math.min(t,e);return Math.max(0,t-Date.now())}return 0},tr.RETRIAL_MIN_WAIT,tr.RETRIAL_MAX_WAIT)}(e),n.tokenRefresher=r),!r.isRunning()&&n.isTokenAutoRefreshEnabled&&r.start()}function Nr(e,t){for(const n of Xn(e).tokenObservers)try{"EXTERNAL"===n.type&&null!=t.error?n.error(t.error):n.next(t)}catch(e){}}function Rr(e){return 0<e.expireTimeMillis-Date.now()}function xr(e){return{token:(t=Er,r.encodeString(JSON.stringify(t),!1)),error:e};var t}class Dr{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e=Xn(this.app)["tokenObservers"];for(const t of e)Cr(this.app,t.next);return Promise.resolve()}}const Pr="https://www.google.com/recaptcha/api.js",Or="https://www.google.com/recaptcha/enterprise.js";function Mr(t,n){const r=new y,e=Xn(t);e.reCAPTCHAState={initialized:r};const i=Ur(t);var s=ir(!1);return s?Fr(t,n,s,i,r):function(e){const t=document.createElement("script");t.src=Pr,t.onload=e,document.head.appendChild(t)}(()=>{var e=ir(!1);if(!e)throw new Error("no recaptcha");Fr(t,n,e,i,r)}),r.promise}function Lr(t,n){const r=new y,e=Xn(t);e.reCAPTCHAState={initialized:r};const i=Ur(t);var s=ir(!0);return s?Fr(t,n,s,i,r):function(e){const t=document.createElement("script");t.src=Or,t.onload=e,document.head.appendChild(t)}(()=>{var e=ir(!0);if(!e)throw new Error("no recaptcha");Fr(t,n,e,i,r)}),r.promise}function Fr(e,t,n,r,i){n.ready(()=>{!function(e,t,n,r){const i=n.render(r,{sitekey:t,size:"invisible"}),s=Xn(e);s.reCAPTCHAState=Object.assign(Object.assign({},s.reCAPTCHAState),{widgetId:i})}(e,t,n,r),i.resolve(n)})}function Ur(e){var t=`fire_app_check_${e.name}`;const n=document.createElement("div");return n.id=t,n.style.display="none",document.body.appendChild(n),t}async function qr(r){sr(r);const i=await Xn(r).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{const n=Xn(r).reCAPTCHAState;i.ready(()=>{e(i.execute(n.widgetId,{action:"fire_app_check"}))})})}class Vr{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Kr(this._throttleData);var t=await qr(this._app).catch(e=>{throw rr.create("recaptcha-error")});let e;try{e=await cr(function(e,t){var{projectId:n,appId:r,apiKey:i}=e.options;return{url:`${Zn}/projects/${n}/apps/${r}:exchangeRecaptchaV3Token?key=${i}`,body:{recaptcha_v3_token:t}}}(this._app,t),this._heartbeatServiceProvider)}catch(e){throw null!==(t=e.code)&&void 0!==t&&t.includes("fetch-status-error")?(this._throttleData=$r(Number(null===(t=e.customData)||void 0===t?void 0:t.httpStatus),this._throttleData),rr.create("throttled",{time:ar(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Ge(e,"heartbeat"),Mr(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Vr&&this._siteKey===e._siteKey}}class Br{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Kr(this._throttleData);var t=await qr(this._app).catch(e=>{throw rr.create("recaptcha-error")});let e;try{e=await cr(function(e,t){var{projectId:n,appId:r,apiKey:i}=e.options;return{url:`${Zn}/projects/${n}/apps/${r}:exchangeRecaptchaEnterpriseToken?key=${i}`,body:{recaptcha_enterprise_token:t}}}(this._app,t),this._heartbeatServiceProvider)}catch(e){throw null!==(t=e.code)&&void 0!==t&&t.includes("fetch-status-error")?(this._throttleData=$r(Number(null===(t=e.customData)||void 0===t?void 0:t.httpStatus),this._throttleData),rr.create("throttled",{time:ar(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Ge(e,"heartbeat"),Lr(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Br&&this._siteKey===e._siteKey}}class jr{constructor(e){this._customProviderOptions=e}async getToken(){var e=await this._customProviderOptions.getToken(),t=function(e){const t=M(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null}(e.token),t=null!==t&&t<Date.now()&&0<t?1e3*t:Date.now();return Object.assign(Object.assign({},e),{issuedAtTimeMillis:t})}initialize(e){this._app=e}isEqual(e){return e instanceof jr&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function $r(e,t){if(404===e||403===e)return{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e};var n=t?t.backoffCount:0,r=se(n,1e3,2);return{backoffCount:n+1,allowRequestsAfter:Date.now()+r,httpStatus:e}}function Kr(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw rr.create("throttled",{time:ar(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function Wr(e=Xe(),t){const n=Ge(e=ae(e),"app-check");if(Jn.initialized||function(){var e=o();const t=Jn;if(t.initialized=!0,"string"==typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN||!0===e.FIREBASE_APPCHECK_DEBUG_TOKEN){t.enabled=!0;const n=new y;t.token=n,"string"==typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN?n.resolve(e.FIREBASE_APPCHECK_DEBUG_TOKEN):n.resolve(br())}}(),Ir()&&Tr().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),n.isInitialized()){var r=n.getImmediate();const i=n.getOptions();if(i.isTokenAutoRefreshEnabled===t.isTokenAutoRefreshEnabled&&i.provider.isEqual(t.provider))return r;throw rr.create("already-initialized",{appName:e.name})}r=n.initialize({options:t});return function(t,e,n){const r=function(e,t){return Qn.set(e,t),Qn.get(e)}(t,Object.assign({},Yn));r.activated=!0,r.provider=e,r.cachedTokenPromise=_r(t).then(e=>(e&&Rr(e)&&(r.token=e,Nr(t,{token:e.token})),e)),r.isTokenAutoRefreshEnabled=void 0===n?t.automaticDataCollectionEnabled:n,r.provider.initialize(t)}(e,t.provider,t.isTokenAutoRefreshEnabled),Xn(e).isTokenAutoRefreshEnabled&&Sr(r,"INTERNAL",()=>{}),r}const zr="app-check-internal";ze(new oe("app-check",e=>{var t,n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat");return t=n,e=r,new Dr(t,e)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,n)=>{e.getProvider(zr).initialize()})),ze(new oe(zr,e=>{var t,n=e.getProvider("app-check").getImmediate();return t=n,{getToken:e=>kr(t,e),addTokenListener:e=>Sr(t,"INTERNAL",e),removeTokenListener:e=>Cr(t.app,e)}},"PUBLIC").setInstantiationMode("EXPLICIT")),et("@firebase/app-check","0.6.1");const Gr=new x("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class Hr{constructor(e){this.app=e}activate(e,t){let n;n="string"==typeof e?new Vr(e):e instanceof Br||e instanceof Vr||e instanceof jr?e:new jr({getToken:e.getToken}),this._delegate=Wr(this.app,{provider:n,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw Gr.create("use-before-activation",{appName:this.app.name});!function(e,t){const n=Xn(e.app);n.tokenRefresher&&(!0===t?n.tokenRefresher.start():n.tokenRefresher.stop()),n.isTokenAutoRefreshEnabled=t}(this._delegate,e)}getToken(e){if(!this._delegate)throw Gr.create("use-before-activation",{appName:this.app.name});return async function(e,t){var n=await kr(e,t);if(n.error)throw n.error;return{token:n.token}}(this._delegate,e)}onTokenChanged(e,t,n){if(!this._delegate)throw Gr.create("use-before-activation",{appName:this.app.name});return function(e,t,n){let r=()=>{},i=()=>{};return r=null!=t.next?t.next.bind(t):t,null!=t.error?i=t.error.bind(t):n&&(i=n),Sr(e,"EXTERNAL",r,i),()=>Cr(e.app,r)}(this._delegate,e,t)}}const Qr=e=>{var t=e.getProvider("app-compat").getImmediate();return new Hr(t)};function Yr(e,t){var n={};for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]]);return n}wt.INTERNAL.registerComponent(new oe("appCheck-compat",Qr,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Br,ReCaptchaV3Provider:Vr,CustomProvider:jr})),wt.registerVersion("@firebase/app-check-compat","0.3.1");const Jr={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Xr={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Zr(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}function ei(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registed for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance."}}const ti=Zr,ni=new x("auth","Firebase",Zr()),ri=new me("@firebase/auth");function ii(e,...t){ri.logLevel<=g.ERROR&&ri.error(`Auth (${Ye}): ${e}`,...t)}function si(e,...t){throw li(e,...t)}function ai(e,...t){return li(e,...t)}function oi(e,t,n){var r=Object.assign(Object.assign({},ti()),{[t]:n});const i=new x("auth","Firebase",r);return i.create(t,{appName:e.name})}function ci(e,t,n){if(!(t instanceof n))throw n.name!==t.constructor.name&&si(e,"argument-error"),oi(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function li(e,...t){if("string"==typeof e)return ni.create(e,...t);{var n=t[0];const r=[...t.slice(1)];return r[0]&&(r[0].appName=e.name),e._errorFactory.create(n,...r)}}function ui(e,t,...n){if(!e)throw li(t,...n)}function hi(e){var t="INTERNAL ASSERTION FAILED: "+e;throw ii(t),new Error(t)}function di(e,t){e||hi(t)}const pi=new Map;function fi(e){di(e instanceof Function,"Expected a class definition");let t=pi.get(e);return t?di(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,pi.set(e,t)),t}function gi(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function mi(){return"http:"===vi()||"https:"===vi()}function vi(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}class yi{constructor(e,t){di((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=b()||E()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(mi()||T()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function _i(e,t){di(e.emulator,"Emulator should always be set here");var n=e.emulator["url"];return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}class wi{static initialize(e,t,n){this.fetchImpl=e,t&&(this.headersImpl=t),n&&(this.responseImpl=n)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:void hi("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:void hi("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:void hi("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}const bi={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"internal-error",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error"},Ii=new yi(3e4,6e4);function Ti(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function Ei(i,s,a,o,e={}){return ki(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var n=j(Object.assign({key:i.config.apiKey},t)).slice(1);const r=await i._getAdditionalHeaders();return r["Content-Type"]="application/json",i.languageCode&&(r["X-Firebase-Locale"]=i.languageCode),wi.fetch()(Ci(i,i.config.apiHost,a,n),Object.assign({method:s,headers:r,referrerPolicy:"no-referrer"},e))})}async function ki(t,e,n){t._canInitEmulator=!1;var r=Object.assign(Object.assign({},bi),e);try{const a=new Ai(t),o=await Promise.race([n(),a.promise]);a.clearNetworkTimeout();var i=await o.json();if("needConfirmation"in i)throw Ni(t,"account-exists-with-different-credential",i);if(o.ok&&!("errorMessage"in i))return i;{const c=o.ok?i.errorMessage:i.error.message,[l,u]=c.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===l)throw Ni(t,"credential-already-in-use",i);if("EMAIL_EXISTS"===l)throw Ni(t,"email-already-in-use",i);if("USER_DISABLED"===l)throw Ni(t,"user-disabled",i);var s=r[l]||l.toLowerCase().replace(/[_\s]+/g,"-");if(u)throw oi(t,s,u);si(t,s)}}catch(e){if(e instanceof R)throw e;si(t,"network-request-failed")}}async function Si(e,t,n,r,i={}){var s=await Ei(e,t,n,r,i);return"mfaPendingCredential"in s&&si(e,"multi-factor-auth-required",{_serverResponse:s}),s}function Ci(e,t,n,r){var i=`${t}${n}?${r}`;return e.config.emulator?_i(e.config,i):`${e.config.apiScheme}://${i}`}class Ai{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(ai(this.auth,"network-request-failed")),Ii.get())})}clearNetworkTimeout(){clearTimeout(this.timer)}}function Ni(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=ai(e,t,r);return i.customData._tokenResponse=n,i}function Ri(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function xi(e){return 1e3*Number(e)}function Di(e){var[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return ii("JWT malformed, contained fewer than 3 sections"),null;try{var i=a(n);return i?JSON.parse(i):(ii("Failed to decode base64 JWT payload"),null)}catch(e){return ii("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}async function Pi(t,n,e=!1){if(e)return n;try{return n}catch(e){throw e instanceof R&&(n=[e["code"]][0],"auth/user-disabled"===n||"auth/user-token-expired"===n)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}class Oi{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){if(e){var t=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t}this.errorBackoff=3e4;t=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,t)}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class Mi{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ri(this.lastLoginAt),this.creationTime=Ri(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Li(e){var t=e.auth,n=await e.getIdToken(),r=await Pi(e,async function(e,t){return Ei(e,"POST","/v1/accounts:lookup",t)}(t,{idToken:n}));ui(null==r?void 0:r.users.length,t,"internal-error");var i=r.users[0];e._notifyReloadListener(i);var s,a,t=null!==(n=i.providerUserInfo)&&void 0!==n&&n.length?i.providerUserInfo.map(e=>{var t=e["providerId"],n=Yr(e,["providerId"]);return{providerId:t,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}}):[],r=(s=e.providerData,a=t,[...s.filter(t=>!a.some(e=>e.providerId===t.providerId)),...a]),n=e.isAnonymous,t=!(e.email&&i.passwordHash||null!==r&&r.length),t=!!n&&t,t={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:r,metadata:new Mi(i.createdAt,i.lastLoginAt),isAnonymous:t};Object.assign(e,t)}class Fi{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){ui(e.idToken,"internal-error"),ui(void 0!==e.idToken,"internal-error"),ui(void 0!==e.refreshToken,"internal-error");var t,n,n="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):(t=e.idToken,ui(n=Di(t),"internal-error"),ui(void 0!==n.exp,"internal-error"),ui(void 0!==n.iat,"internal-error"),Number(n.exp)-Number(n.iat));this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}async getToken(e,t=!1){return ui(!this.accessToken||this.refreshToken,e,"user-token-expired"),t||!this.accessToken||this.isExpired?this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){var i,s,{accessToken:n,refreshToken:r,expiresIn:a}=(s=t,await{accessToken:(a=await ki(i=e,{},async()=>{var e=j({grant_type:"refresh_token",refresh_token:s}).slice(1),{tokenApiHost:t,apiKey:n}=i.config,n=Ci(i,t,"/v1/token",`key=${n}`);const r=await i._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",wi.fetch()(n,{method:"POST",headers:r,body:e})})).access_token,expiresIn:a.expires_in,refreshToken:a.refresh_token});this.updateTokensAndExpiration(n,r,Number(a))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){var{refreshToken:n,accessToken:r,expirationTime:i}=t;const s=new Fi;return n&&(ui("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),r&&(ui("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),i&&(ui("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Fi,this.toJSON())}_performRefresh(){return hi("not implemented")}}function Ui(e,t){ui("string"==typeof e||void 0===e,"internal-error",{appName:t})}class qi{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=Yr(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Oi(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new Mi(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){var t=await Pi(this,this.stsTokenManager.getToken(this.auth,e));return ui(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return async function(e,t=!1){const n=ae(e);var r=await n.getIdToken(t),i=Di(r);ui(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");var s="object"==typeof i.firebase?i.firebase:void 0,a=null==s?void 0:s.sign_in_provider;return{claims:i,token:r,authTime:Ri(xi(i.auth_time)),issuedAtTime:Ri(xi(i.iat)),expirationTime:Ri(xi(i.exp)),signInProvider:a||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=ae(e);await Li(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(ui(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){return new qi(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}))}_onReload(e){ui(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await Li(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e=await this.getIdToken();return await Pi(this,async function(e,t){return Ei(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var n=null!==(a=t.displayName)&&void 0!==a?a:void 0,r=null!==(g=t.email)&&void 0!==g?g:void 0,i=null!==(o=t.phoneNumber)&&void 0!==o?o:void 0,s=null!==(l=t.photoURL)&&void 0!==l?l:void 0,a=null!==(c=t.tenantId)&&void 0!==c?c:void 0,o=null!==(g=t._redirectEventId)&&void 0!==g?g:void 0,c=null!==(l=t.createdAt)&&void 0!==l?l:void 0,l=null!==(g=t.lastLoginAt)&&void 0!==g?g:void 0;const{uid:u,emailVerified:h,isAnonymous:d,providerData:p,stsTokenManager:f}=t;ui(u&&f,e,"internal-error");var g=Fi.fromJSON(this.name,f);ui("string"==typeof u,e,"internal-error"),Ui(n,e.name),Ui(r,e.name),ui("boolean"==typeof h,e,"internal-error"),ui("boolean"==typeof d,e,"internal-error"),Ui(i,e.name),Ui(s,e.name),Ui(a,e.name),Ui(o,e.name),Ui(c,e.name),Ui(l,e.name);const m=new qi({uid:u,auth:e,email:r,emailVerified:h,displayName:n,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:g,createdAt:c,lastLoginAt:l});return p&&Array.isArray(p)&&(m.providerData=p.map(e=>Object.assign({},e))),o&&(m._redirectEventId=o),m}static async _fromIdTokenResponse(e,t,n=!1){const r=new Fi;r.updateFromServerResponse(t);var i=new qi({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await Li(i),i}}class Vi{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}Vi.type="NONE";const Bi=Vi;function ji(e,t,n){return`firebase:${e}:${t}:${n}`}class $i{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;var{config:r,name:i}=this.auth;this.fullUserKey=ji(this.userKey,r.apiKey,i),this.fullPersistenceKey=ji("persistence",r.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e=await this.persistence._get(this.fullUserKey);return e?qi._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence!==e){var t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,n="authUser"){if(!t.length)return new $i(fi(Bi),e,n);const r=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let i=r[0]||fi(Bi);const s=ji(n,e.config.apiKey,e.name);let a=null;for(const u of t)try{var o=await u._get(s);if(o){var c=qi._fromJSON(e,o);u!==i&&(a=c),i=u;break}}catch(e){}var l=r.filter(e=>e._shouldAllowMigration);return i._shouldAllowMigration&&l.length&&(i=l[0],a&&await i._set(s,a.toJSON()),await Promise.all(t.map(async e=>{if(e!==i)try{await e._remove(s)}catch(e){}}))),new $i(i,e,n)}}function Ki(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(Hi(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(Wi(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(Yi(t))return"Blackberry";if(Ji(t))return"Webos";if(zi(t))return"Safari";if((t.includes("chrome/")||Gi(t))&&!t.includes("edge/"))return"Chrome";if(Qi(t))return"Android";var n=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);return 2===(null==n?void 0:n.length)?n[1]:"Other"}function Wi(e=w()){return/firefox\//i.test(e)}function zi(e=w()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function Gi(e=w()){return/crios\//i.test(e)}function Hi(e=w()){return/iemobile/i.test(e)}function Qi(e=w()){return/android/i.test(e)}function Yi(e=w()){return/blackberry/i.test(e)}function Ji(e=w()){return/webos/i.test(e)}function Xi(e=w()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function Zi(e=w()){return Xi(e)||Qi(e)||Ji(e)||Yi(e)||/windows phone/i.test(e)||Hi(e)}function es(e,t=[]){let n;switch(e){case"Browser":n=Ki(w());break;case"Worker":n=`${Ki(w())}-${e}`;break;default:n=e}var r=t.length?t.join(","):"FirebaseCore-web";return`${n}/JsCore/${Ye}/${r}`}class ts{constructor(e){this.auth=e,this.queue=[]}pushCallback(r,e){var t=n=>new Promise((e,t)=>{try{e(r(n))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);const n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const r of t)try{r()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}}class ns{constructor(e,t,n){this.app=e,this.heartbeatServiceProvider=t,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new is(this),this.idTokenSubscription=new is(this),this.beforeStateQueue=new ts(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=ni,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion}_initializeWithPersistence(t,n){return n&&(this._popupRedirectResolver=fi(n)),this._initializationPromise=this.queue(async()=>{var e;if(!this._deleted&&(this.persistenceManager=await $i.create(this,t),!this._deleted)){if(null!==(e=this._popupRedirectResolver)&&void 0!==e&&e._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(n),this.lastNotifiedUid=(null===(e=this.currentUser)||void 0===e?void 0:e.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(!this._deleted){var e=await this.assertedPersistence.getCurrentUser();if(this.currentUser||e)return this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0)}}async initializeCurrentUser(e){var t,n,r,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=null===(r=this.redirectUser)||void 0===r?void 0:r._redirectEventId,n=null===s||void 0===s?void 0:s._redirectEventId,r=await this.tryRedirectSignIn(e),t&&t!==n||null==r||!r.user||(s=r.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return ui(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Li(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;var e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){const t=e?ae(e):null;return t&&ui(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&ui(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0)}setPersistence(e){return this.queue(async()=>{await this.assertedPersistence.setPersistence(fi(e))})}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new x("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(ui(t=e&&fi(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await $i.create(this,[fi(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){var t;return this._isInitialized&&await this.queue(async()=>{}),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=null!==(e=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==e?e:null,this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser)))}registerStateListener(e,t,n,r){if(this._deleted)return()=>{};const i="function"==typeof t?t:t.next.bind(t),s=this._isInitialized?Promise.resolve():this._initializationPromise;return ui(s,this,"internal-error"),s.then(()=>i(this.currentUser)),"function"==typeof t?e.addObserver(t,n,r):e.addObserver(t)}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return ui(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=es(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);var t=await(null===(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getHeartbeatsHeader());return t&&(e["X-Firebase-Client"]=t),e}}function rs(e){return ae(e)}class is{constructor(e){this.auth=e,this.observer=null,this.addObserver=z(e=>this.observer=e)}get next(){return ui(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function ss(e,t,n){const r=rs(e);ui(r._canInitEmulator,r,"emulator-config-failed"),ui(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");var i=!(null==n||!n.disableWarnings);const s=as(t);var{host:a,port:o}=function(e){const t=as(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);{if(i){var s=i[1];return{host:s,port:os(r.substr(s.length+1))}}var[a,s]=r.split(":");return{host:a,port:os(s)}}}(t);r.config.emulator={url:`${s}//${a}${null===o?"":`:${o}`}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})}),i||function(){function e(){const e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}function as(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function os(e){if(!e)return null;var t=Number(e);return isNaN(t)?null:t}class cs{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return hi("not implemented")}_getIdTokenResponse(e){return hi("not implemented")}_linkToIdToken(e,t){return hi("not implemented")}_getReauthenticationResolver(e){return hi("not implemented")}}async function ls(e,t){return Ei(e,"POST","/v1/accounts:resetPassword",Ti(e,t))}async function us(e,t){return Ei(e,"POST","/v1/accounts:update",t)}async function hs(e,t){return Ei(e,"POST","/v1/accounts:sendOobCode",Ti(e,t))}class ds extends cs{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new ds(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new ds(e,t,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(null!=t&&t.email&&null!=t&&t.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return async function(e,t){return Si(e,"POST","/v1/accounts:signInWithPassword",Ti(e,t))}(e,{returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(e,t){return Si(e,"POST","/v1/accounts:signInWithEmailLink",Ti(e,t))}(e,{email:this._email,oobCode:this._password});default:si(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return us(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(e,t){return Si(e,"POST","/v1/accounts:signInWithEmailLink",Ti(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:si(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function ps(e,t){return Si(e,"POST","/v1/accounts:signInWithIdp",Ti(e,t))}class fs extends cs{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new fs(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):si("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:r}=t,t=Yr(t,["providerId","signInMethod"]);if(!n||!r)return null;const i=new fs(n,r);return i.idToken=t.idToken||void 0,i.accessToken=t.accessToken||void 0,i.secret=t.secret,i.nonce=t.nonce,i.pendingToken=t.pendingToken||null,i}_getIdTokenResponse(e){return ps(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,ps(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,ps(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=j(t)}return e}}const gs={USER_NOT_FOUND:"user-not-found"};class ms extends cs{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new ms({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new ms({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return Si(e,"POST","/v1/accounts:signInWithPhoneNumber",Ti(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){var n=await Si(e,"POST","/v1/accounts:signInWithPhoneNumber",Ti(e,t));if(n.temporaryProof)throw Ni(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return Si(e,"POST","/v1/accounts:signInWithPhoneNumber",Ti(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),gs)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:n,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:n,code:r}}toJSON(){const e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return n||t||r||i?new ms({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}):null}}class vs{constructor(e){var t=$(K(e)),n=null!==(r=t.apiKey)&&void 0!==r?r:null,r=null!==(i=t.oobCode)&&void 0!==i?i:null,i=function(e){switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(i=t.mode)&&void 0!==i?i:null);ui(n&&r&&i,"argument-error"),this.apiKey=n,this.operation=i,this.code=r,this.continueUrl=null!==(r=t.continueUrl)&&void 0!==r?r:null,this.languageCode=null!==(r=t.languageCode)&&void 0!==r?r:null,this.tenantId=null!==(t=t.tenantId)&&void 0!==t?t:null}static parseLink(e){var t,n,r,t=(t=$(K(e=e)).link,n=t?$(K(t)).deep_link_id:null,((r=$(K(e)).deep_link_id)?$(K(r)).link:null)||r||n||t||e);try{return new vs(t)}catch(e){return null}}}class ys{constructor(){this.providerId=ys.PROVIDER_ID}static credential(e,t){return ds._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var n=vs.parseLink(t);return ui(n,"argument-error"),ds._fromEmailAndCode(e,n.code,n.tenantId)}}ys.PROVIDER_ID="password",ys.EMAIL_PASSWORD_SIGN_IN_METHOD="password",ys.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class _s{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class ws extends _s{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class bs extends ws{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return ui("providerId"in t&&"signInMethod"in t,"argument-error"),fs._fromParams(t)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return ui(e.idToken||e.accessToken,"argument-error"),fs._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return bs.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return bs.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:n,oauthTokenSecret:r,pendingToken:i,nonce:s,providerId:a}=e;if(!(n||r||t||i))return null;if(!a)return null;try{return new bs(a)._credential({idToken:t,accessToken:n,nonce:s,pendingToken:i})}catch(e){return null}}}class Is extends ws{constructor(){super("facebook.com")}static credential(e){return fs._fromParams({providerId:Is.PROVIDER_ID,signInMethod:Is.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Is.credentialFromTaggedObject(e)}static credentialFromError(e){return Is.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Is.credential(e.oauthAccessToken)}catch(e){return null}}}Is.FACEBOOK_SIGN_IN_METHOD="facebook.com",Is.PROVIDER_ID="facebook.com";class Ts extends ws{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return fs._fromParams({providerId:Ts.PROVIDER_ID,signInMethod:Ts.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Ts.credentialFromTaggedObject(e)}static credentialFromError(e){return Ts.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return Ts.credential(t,n)}catch(e){return null}}}Ts.GOOGLE_SIGN_IN_METHOD="google.com",Ts.PROVIDER_ID="google.com";class Es extends ws{constructor(){super("github.com")}static credential(e){return fs._fromParams({providerId:Es.PROVIDER_ID,signInMethod:Es.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Es.credentialFromTaggedObject(e)}static credentialFromError(e){return Es.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Es.credential(e.oauthAccessToken)}catch(e){return null}}}Es.GITHUB_SIGN_IN_METHOD="github.com",Es.PROVIDER_ID="github.com";class ks extends cs{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return ps(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,ps(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,ps(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:n,pendingToken:r}="string"==typeof e?JSON.parse(e):e;return t&&n&&r&&t===n?new ks(t,r):null}static _create(e,t){return new ks(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class Ss extends _s{constructor(e){ui(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return Ss.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return Ss.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=ks.fromJSON(e);return ui(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:n}=e;if(!t||!n)return null;try{return ks._create(n,t)}catch(e){return null}}}class Cs extends ws{constructor(){super("twitter.com")}static credential(e,t){return fs._fromParams({providerId:Cs.PROVIDER_ID,signInMethod:Cs.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Cs.credentialFromTaggedObject(e)}static credentialFromError(e){return Cs.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return Cs.credential(t,n)}catch(e){return null}}}async function As(e,t){return Si(e,"POST","/v1/accounts:signUp",Ti(e,t))}Cs.TWITTER_SIGN_IN_METHOD="twitter.com",Cs.PROVIDER_ID="twitter.com";class Ns{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n,r=!1){var i=await qi._fromIdTokenResponse(e,n,r),s=Rs(n);return new Ns({user:i,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);var r=Rs(n);return new Ns({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function Rs(e){return e.providerId||("phoneNumber"in e?"phone":null)}class xs extends R{constructor(e,t,n,r){var i;super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,xs.prototype),this.customData={appName:e.name,tenantId:null!==(i=e.tenantId)&&void 0!==i?i:void 0,_serverResponse:t.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(e,t,n,r){return new xs(e,t,n,r)}}function Ds(t,n,e,r){const i="reauthenticate"===n?e._getReauthenticationResolver(t):e._getIdTokenResponse(t);return i.catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw xs._fromErrorAndOperation(t,e,n,r);throw e})}function Ps(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Os(e,t){const n=ae(e);await Ls(!0,n,t);var r=(e=n.auth,t={idToken:await n.getIdToken(),deleteProvider:[t]},await Ei(e,"POST","/v1/accounts:update",t))["providerUserInfo"];const i=Ps(r||[]);return n.providerData=n.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(n.phoneNumber=null),await n.auth._persistUserIfCurrent(n),n}async function Ms(e,t,n=!1){var r=await Pi(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return Ns._forOperation(e,"link",r)}async function Ls(e,t,n){await Li(t);const r=Ps(t.providerData);var i=!1===e?"provider-already-linked":"no-such-provider";ui(r.has(n)===e,t.auth,i)}async function Fs(e,t,n=!1){var r=e["auth"],i="reauthenticate";try{var s=await Pi(e,Ds(r,i,t,e),n);ui(s.idToken,r,"internal-error");var a=Di(s.idToken);ui(a,r,"internal-error");var o=a["sub"];return ui(e.uid===o,r,"user-mismatch"),Ns._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&si(r,"user-mismatch"),e}}async function Us(e,t,n=!1){var r=await Ds(e,"signIn",t),r=await Ns._fromIdTokenResponse(e,"signIn",r);return n||await e._updateCurrentUser(r.user),r}async function qs(e,t){return Us(rs(e),t)}async function Vs(e,t){var n=ae(e);return await Ls(!1,n,t.providerId),Ms(n,t)}async function Bs(e,t){return Fs(ae(e),t)}async function js(e,t){const n=rs(e);var r=await Si(n,"POST","/v1/accounts:signInWithCustomToken",Ti(n,{token:t,returnSecureToken:!0})),r=await Ns._fromIdTokenResponse(n,"signIn",r);return await n._updateCurrentUser(r.user),r}class $s{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?Ks._fromServerResponse(e,t):si(e,"internal-error")}}class Ks extends $s{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new Ks(t)}}function Ws(e,t,n){var r;ui(0<(null===(r=n.url)||void 0===r?void 0:r.length),e,"invalid-continue-uri"),ui(void 0===n.dynamicLinkDomain||0<n.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),t.continueUrl=n.url,t.dynamicLinkDomain=n.dynamicLinkDomain,t.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(ui(0<n.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=n.iOS.bundleId),n.android&&(ui(0<n.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=n.android.installApp,t.androidMinimumVersionCode=n.android.minimumVersion,t.androidPackageName=n.android.packageName)}async function zs(e,t,n){var r=ae(e),i={requestType:"PASSWORD_RESET",email:t};n&&Ws(r,i,n),await hs(r,i)}async function Gs(e,t){await Ei(e=ae(e),"POST","/v1/accounts:update",Ti(e,{oobCode:t}))}async function Hs(e,t){var n=ae(e),r=await ls(n,{oobCode:t}),i=r.requestType;switch(ui(i,n,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":ui(r.newEmail,n,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":ui(r.mfaInfo,n,"internal-error");default:ui(r.email,n,"internal-error")}let s=null;return r.mfaInfo&&(s=$s._fromServerResponse(rs(n),r.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===r.requestType?r.newEmail:r.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===r.requestType?r.email:r.newEmail)||null,multiFactorInfo:s},operation:i}}async function Qs(e,t,n){var r=ae(e),i={requestType:"EMAIL_SIGNIN",email:t};ui(n.handleCodeInApp,r,"argument-error"),n&&Ws(r,i,n),await hs(r,i)}async function Ys(e,t){var n=mi()?gi():"http://localhost",n=(await Ei(e=ae(e),"POST","/v1/accounts:createAuthUri",Ti(e,{identifier:t,continueUri:n})))["signinMethods"];return n||[]}async function Js(e,t){var n=ae(e),r={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()};t&&Ws(n.auth,r,t);var r=(await hs(n.auth,r))["email"];r!==e.email&&await e.reload()}async function Xs(e,t,n){var r=ae(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t};n&&Ws(r.auth,i,n);var i=(await hs(r.auth,i))["email"];i!==e.email&&await e.reload()}async function Zs(e,{displayName:t,photoURL:n}){if(void 0!==t||void 0!==n){const i=ae(e);var r=await i.getIdToken(),r=await Pi(i,async function(e,t){return Ei(e,"POST","/v1/accounts:update",t)}(i.auth,{idToken:r,displayName:t,photoUrl:n,returnSecureToken:!0}));i.displayName=r.displayName||null,i.photoURL=r.photoUrl||null;const s=i.providerData.find(({providerId:e})=>"password"===e);s&&(s.displayName=i.displayName,s.photoURL=i.photoURL),await i._updateTokensIfNecessary(r)}}async function ea(e,t,n){var r=e["auth"];const i={idToken:await e.getIdToken(),returnSecureToken:!0};t&&(i.email=t),n&&(i.password=n);r=await Pi(e,us(r,i));await e._updateTokensIfNecessary(r,!0)}class ta{constructor(e,t,n={}){this.isNewUser=e,this.providerId=t,this.profile=n}}class na extends ta{constructor(e,t,n,r){super(e,t,n),this.username=r}}class ra extends ta{constructor(e,t){super(e,"facebook.com",t)}}class ia extends na{constructor(e,t){super(e,"github.com",t,"string"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class sa extends ta{constructor(e,t){super(e,"google.com",t)}}class aa extends na{constructor(e,t,n){super(e,"twitter.com",t,n)}}function oa(e){var{user:t,_tokenResponse:n}=e;return t.isAnonymous&&!n?{providerId:null,isNewUser:!1,profile:null}:function(e){if(!e)return null;var t=e["providerId"],n=e.rawUserInfo?JSON.parse(e.rawUserInfo):{},r=e.isNewUser||"identitytoolkit#SignupNewUserResponse"===e.kind;if(!t&&null!=e&&e.idToken){var i=null===(i=null===(i=Di(e.idToken))||void 0===i?void 0:i.firebase)||void 0===i?void 0:i.sign_in_provider;if(i){i="anonymous"!==i&&"custom"!==i?i:null;return new ta(r,i)}}if(!t)return null;switch(t){case"facebook.com":return new ra(r,n);case"github.com":return new ia(r,n);case"google.com":return new sa(r,n);case"twitter.com":return new aa(r,n,e.screenName||null);case"custom":case"anonymous":return new ta(r,null);default:return new ta(r,t,n)}}(n)}class ca{constructor(e,t,n){this.type=e,this.credential=t,this.auth=n}static _fromIdtoken(e,t){return new ca("enroll",e,t)}static _fromMfaPendingCredential(e){return new ca("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){var t;if(null!=e&&e.multiFactorSession){if(null!==(t=e.multiFactorSession)&&void 0!==t&&t.pendingCredential)return ca._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null!==(t=e.multiFactorSession)&&void 0!==t&&t.idToken)return ca._fromIdtoken(e.multiFactorSession.idToken)}return null}}class la{constructor(e,t,n){this.session=e,this.hints=t,this.signInResolver=n}static _fromError(e,i){const s=rs(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>$s._fromServerResponse(s,e));ui(a.mfaPendingCredential,s,"internal-error");const o=ca._fromMfaPendingCredential(a.mfaPendingCredential);return new la(o,t,async e=>{var t=await e._process(s,o);delete a.mfaInfo,delete a.mfaPendingCredential;var n=Object.assign(Object.assign({},a),{idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var r=await Ns._fromIdTokenResponse(s,i.operationType,n);return await s._updateCurrentUser(r.user),r;case"reauthenticate":return ui(i.user,s,"internal-error"),Ns._forOperation(i.user,i.operationType,n);default:si(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}class ua{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>$s._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new ua(e)}async getSession(){return ca._fromIdtoken(await this.user.getIdToken(),this.user.auth)}async enroll(e,t){const n=e;var r=await this.getSession(),r=await Pi(this.user,n._process(this.user.auth,r,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){const t="string"==typeof e?e:e.uid;var n,r=await this.user.getIdToken(),r=await Pi(this.user,(n=this.user.auth,e={idToken:r,mfaEnrollmentId:t},Ei(n,"POST","/v2/accounts/mfaEnrollment:withdraw",Ti(n,e))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(r);try{await this.user.reload()}catch(e){if("auth/user-token-expired"!==(null==e?void 0:e.code))throw e}}}const ha=new WeakMap;const da="__sak";class pa{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(da,"1"),this.storage.removeItem(da),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class fa extends pa{constructor(){var e;super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.safariLocalStorageNotSynced=(zi(e=w())||Xi(e))&&function(){try{return!(!window||window===window.top)}catch(e){return!1}}(),this.fallbackToPolling=Zi(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const r of Object.keys(this.listeners)){var t=this.storage.getItem(r),n=this.localCache[r];t!==n&&e(r,n,t)}}onStorageEvent(e,t=!1){if(e.key){const r=e.key;if(t?this.detachListener():this.stopPolling(),this.safariLocalStorageNotSynced){const i=this.storage.getItem(r);if(e.newValue!==i)null!==e.newValue?this.storage.setItem(r,e.newValue):this.storage.removeItem(r);else if(this.localCache[r]===e.newValue&&!t)return}var n=()=>{var e=this.storage.getItem(r);!t&&this.localCache[r]===e||this.notifyListeners(r,e)};const i=this.storage.getItem(r);k()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,n)=>{this.notifyListeners(e,n)})}notifyListeners(e,t){this.localCache[e]=t;var n=this.listeners[e];if(n)for(const r of Array.from(n))r(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:n}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}fa.type="LOCAL";const ga=fa;class ma extends pa{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}ma.type="SESSION";const va=ma;class ya{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));if(e)return e;e=new ya(t);return this.receivers.push(e),e}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:r,data:i}=t.data;var s=this.handlersMap[r];null!=s&&s.size&&(t.ports[0].postMessage({status:"ack",eventId:n,eventType:r}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function _a(e="",t=10){let n="";for(let r=0;r<t;r++)n+=Math.floor(10*Math.random());return e+n}ya.receivers=[];class wa{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){const o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let c,l;return new Promise((n,r)=>{const i=_a("",20);o.port1.start();const s=setTimeout(()=>{r(new Error("unsupported_event"))},a);l={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),c=setTimeout(()=>{r(new Error("timeout"))},3e3);break;case"done":clearTimeout(c),n(t.data.response);break;default:clearTimeout(s),clearTimeout(c),r(new Error("invalid_response"))}}},this.handlers.add(l),o.port1.addEventListener("message",l.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{l&&this.removeMessageHandler(l)})}}function ba(){return window}function Ia(){return void 0!==ba().WorkerGlobalScope&&"function"==typeof ba().importScripts}const Ta="firebaseLocalStorageDb",Ea="firebaseLocalStorage",ka="fbase_key";class Sa{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Ca(e,t){return e.transaction([Ea],t?"readwrite":"readonly").objectStore(Ea)}function Aa(){const r=indexedDB.open(Ta,1);return new Promise((n,t)=>{r.addEventListener("error",()=>{t(r.error)}),r.addEventListener("upgradeneeded",()=>{const e=r.result;try{e.createObjectStore(Ea,{keyPath:ka})}catch(e){t(e)}}),r.addEventListener("success",async()=>{const e=r.result;var t;e.objectStoreNames.contains(Ea)?n(e):(e.close(),t=indexedDB.deleteDatabase(Ta),await new Sa(t).toPromise(),n(await Aa()))})})}async function Na(e,t,n){var r=Ca(e,!0).put({fbase_key:t,value:n});return new Sa(r).toPromise()}function Ra(e,t){var n=Ca(e,!0).delete(t);return new Sa(n).toPromise()}class xa{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await Aa(),this.db)}async _withRetries(e){let t=0;for(;;)try{return e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Ia()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=ya._getInstance(Ia()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>{const n=await this._poll();return{keyProcessed:n.includes(t.key)}}),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e,t,n;this.activeServiceWorker=await async function(){if(null===navigator||void 0===navigator||!navigator.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),this.activeServiceWorker&&(this.sender=new wa(this.activeServiceWorker),(n=await this.sender._send("ping",{},800))&&null!==(e=n[0])&&void 0!==e&&e.fulfilled&&null!==(t=n[0])&&void 0!==t&&t.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0))}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{if(!indexedDB)return!1;var e=await Aa();return await Na(e,da,"1"),await Ra(e,da),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,n){return this._withPendingWrite(async()=>(await this._withRetries(e=>Na(e,t,n)),this.localCache[t]=n,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>async function(e,t){var n=Ca(e,!1).get(t);return void 0===(n=await new Sa(n).toPromise())?null:n.value}(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Ra(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e,t,n=await this._withRetries(e=>{var t=Ca(e,!1).getAll();return new Sa(t).toPromise()});if(!n)return[];if(0!==this.pendingWrites)return[];const r=[],i=new Set;for({fbase_key:e,value:t}of n)i.add(e),JSON.stringify(this.localCache[e])!==JSON.stringify(t)&&(this.notifyListeners(e,t),r.push(e));for(const s of Object.keys(this.localCache))this.localCache[s]&&!i.has(s)&&(this.notifyListeners(s,null),r.push(s));return r}notifyListeners(e,t){this.localCache[e]=t;var n=this.listeners[e];if(n)for(const r of Array.from(n))r(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}xa.type="LOCAL";const Da=xa;function Pa(i){return new Promise((e,n)=>{const t=document.createElement("script");var r;t.setAttribute("src",i),t.onload=e,t.onerror=e=>{const t=ai("internal-error");t.customData=e,n(t)},t.type="text/javascript",t.charset="UTF-8",(null!==(r=null===(r=document.getElementsByTagName("head"))||void 0===r?void 0:r[0])&&void 0!==r?r:document).appendChild(t)})}function Oa(e){return`__${e}${Math.floor(1e6*Math.random())}`}class Ma{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var n=this.counter;return this._widgets.set(n,new La(e,this.auth.name,t||{})),this.counter++,n}reset(e){var t,n=e||1e12;null===(t=this._widgets.get(n))||void 0===t||t.delete(),this._widgets.delete(n)}getResponse(e){var t;return(null===(t=this._widgets.get(e||1e12))||void 0===t?void 0:t.getResponse())||""}async execute(e){var t;return null===(t=this._widgets.get(e||1e12))||void 0===t||t.execute(),""}}class La{constructor(e,t,n){this.params=n,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var r="string"==typeof e?document.getElementById(e):e;ui(r,"argument-error",{appName:t}),this.container=r,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=function(e){const t=[],n="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let r=0;r<e;r++)t.push(n.charAt(Math.floor(Math.random()*n.length)));return t.join("")}(50);const{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}const Fa=Oa("rcb"),Ua=new yi(3e4,6e4);class qa{constructor(){var e;this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!(null===(e=ba().grecaptcha)||void 0===e||!e.render)}load(s,a=""){var e;return ui((e=a).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),s,"argument-error"),this.shouldResolveImmediately(a)?Promise.resolve(ba().grecaptcha):new Promise((t,n)=>{const i=ba().setTimeout(()=>{n(ai(s,"network-request-failed"))},Ua.get());ba()[Fa]=()=>{ba().clearTimeout(i),delete ba()[Fa];const e=ba().grecaptcha;if(e){const r=e.render;e.render=(e,t)=>{var n=r(e,t);return this.counter++,n},this.hostLanguage=a,t(e)}else n(ai(s,"internal-error"))},Pa(`https://www.google.com/recaptcha/api.js??${j({onload:Fa,render:"explicit",hl:a})}`).catch(()=>{clearTimeout(i),n(ai(s,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!(null===(t=ba().grecaptcha)||void 0===t||!t.render)&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class Va{async load(e){return new Ma(e)}clearedOneInstance(){}}const Ba="recaptcha",ja={theme:"light",type:"image"};class $a{constructor(e,t=Object.assign({},ja),n){this.parameters=t,this.type=Ba,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=rs(n),this.isInvisible="invisible"===this.parameters.size,ui("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var r="string"==typeof e?document.getElementById(e):e;ui(r,this.auth,"argument-error"),this.container=r,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?Va:qa),this.validateStartingState()}async verify(){this.assertNotDestroyed();const e=await this.render(),r=this.getAssertedRecaptcha();var t=r.getResponse(e);return t||new Promise(t=>{const n=e=>{e&&(this.tokenChangeListeners.delete(n),t(e))};this.tokenChangeListeners.add(n),this.isInvisible&&r.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e}),this.renderPromise)}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){ui(!this.parameters.sitekey,this.auth,"argument-error"),ui(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),ui("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(n){return t=>{if(this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof n)n(t);else if("string"==typeof n){const e=ba()[n];"function"==typeof e&&e(t)}}}assertNotDestroyed(){ui(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){ui(mi()&&!Ia(),this.auth,"internal-error"),await function(){let t=null;return new Promise(e=>{"complete"!==document.readyState?(t=()=>e(),window.addEventListener("load",t)):e()}).catch(e=>{throw t&&window.removeEventListener("load",t),e})}(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await Ei(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");ui(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return ui(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class Ka{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=ms._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function Wa(t,n,r){var i,s,a,o,c,l,u=await r.verify();try{ui("string"==typeof u,t,"argument-error"),ui(r.type===Ba,t,"argument-error");let e;if(e="string"==typeof n?{phoneNumber:n}:n,"session"in e){var h=e.session;if("phoneNumber"in e)return ui("enroll"===h.type,t,"internal-error"),(c=t,l={idToken:h.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,recaptchaToken:u}},await Ei(c,"POST","/v2/accounts/mfaEnrollment:start",Ti(c,l))).phoneSessionInfo.sessionInfo;ui("signin"===h.type,t,"internal-error");var d=(null===(i=e.multiFactorHint)||void 0===i?void 0:i.uid)||e.multiFactorUid;return ui(d,t,"missing-multi-factor-info"),(o={mfaPendingCredential:h.credential,mfaEnrollmentId:d,phoneSignInInfo:{recaptchaToken:u}},await Ei(t,"POST","/v2/accounts/mfaSignIn:start",Ti(t,o))).phoneResponseInfo.sessionInfo}var p=(s=t,a={phoneNumber:e.phoneNumber,recaptchaToken:u},await Ei(s,"POST","/v1/accounts:sendVerificationCode",Ti(s,a)))["sessionInfo"];return p}finally{r._reset()}}class za{constructor(e){this.providerId=za.PROVIDER_ID,this.auth=rs(e)}verifyPhoneNumber(e,t){return Wa(this.auth,e,ae(t))}static credential(e,t){return ms._fromVerification(e,t)}static credentialFromResult(e){var t=e;return za.credentialFromTaggedObject(t)}static credentialFromError(e){return za.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{phoneNumber:t,temporaryProof:n}=e;return t&&n?ms._fromTokenResponse(t,n):null}}function Ga(e,t){return t?fi(t):(ui(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}za.PROVIDER_ID="phone",za.PHONE_SIGN_IN_METHOD="phone";class Ha extends cs{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return ps(e,this._buildIdpRequest())}_linkToIdToken(e,t){return ps(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return ps(e,this._buildIdpRequest())}_buildIdpRequest(e){const t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function Qa(e){return Us(e.auth,new Ha(e),e.bypassAuthState)}function Ya(e){var{auth:t,user:n}=e;return ui(n,t,"internal-error"),Fs(n,new Ha(e),e.bypassAuthState)}async function Ja(e){var{auth:t,user:n}=e;return ui(n,t,"internal-error"),Ms(n,new Ha(e),e.bypassAuthState)}class Xa{constructor(e,t,n,r,i=!1){this.auth=e,this.resolver=n,this.user=r,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:n,postBody:r,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{r={auth:this.auth,requestUri:t,sessionId:n,tenantId:i||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(r))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Qa;case"linkViaPopup":case"linkViaRedirect":return Ja;case"reauthViaPopup":case"reauthViaRedirect":return Ya;default:si(this.auth,"internal-error")}}resolve(e){di(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){di(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const Za=new yi(2e3,1e4);class eo extends Xa{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,eo.currentPopupAction&&eo.currentPopupAction.cancel(),eo.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return ui(e,this.auth,"internal-error"),e}async onExecution(){di(1===this.filter.length,"Popup operations only handle one event");var e=_a();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(ai(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(ai(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,eo.currentPopupAction=null}pollUserCancellation(){const t=()=>{var e;null!==(e=null===(e=this.authWindow)||void 0===e?void 0:e.window)&&void 0!==e&&e.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(ai(this.auth,"popup-closed-by-user"))},2e3):this.pollId=window.setTimeout(t,Za.get())};t()}}eo.currentPopupAction=null;const to="pendingRedirect",no=new Map;class ro extends Xa{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let t=no.get(this.auth._key());if(!t){try{const e=await async function(e,t){const n=oo(t),r=ao(e);if(!await r._isAvailable())return!1;var i="true"===await r._get(n);return await r._remove(n),i}(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}no.set(this.auth._key(),t)}return this.bypassAuthState||no.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"!==e.type){if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function io(e,t){return ao(e)._set(oo(t),"true")}function so(e,t){no.set(e._key(),t)}function ao(e){return fi(e._redirectPersistence)}function oo(e){return ji(to,e.config.apiKey,e.name)}function co(e,t,n){return async function(e,t,n){var r=rs(e);ci(e,t,_s),await r._initializationPromise;const i=Ga(r,n);return await io(i,r),i._openRedirect(r,t,"signInViaRedirect")}(e,t,n)}function lo(e,t,n){return async function(e,t,n){var r=ae(e);ci(r.auth,t,_s),await r.auth._initializationPromise;const i=Ga(r.auth,n);await io(i,r.auth);var s=await po(r);return i._openRedirect(r.auth,t,"reauthViaRedirect",s)}(e,t,n)}function uo(e,t,n){return async function(e,t,n){var r=ae(e);ci(r.auth,t,_s),await r.auth._initializationPromise;const i=Ga(r.auth,n);await Ls(!1,r,t.providerId),await io(i,r.auth);var s=await po(r);return i._openRedirect(r.auth,t,"linkViaRedirect",s)}(e,t,n)}async function ho(e,t,n=!1){const r=rs(e);var i=Ga(r,t);const s=new ro(r,i,n),a=await s.execute();return a&&!n&&(delete a.user._redirectEventId,await r._persistUserIfCurrent(a.user),await r._setRedirectUser(null,t)),a}async function po(e){var t=_a(`${e.uid}:::`);return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class fo{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let n=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(n=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return mo(e);default:return!1}}(t)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=t,n=!0)),n}sendToConsumer(e,t){var n;e.error&&!mo(e)?(n=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error",t.onError(ai(this.auth,n))):t.onAuthEvent(e)}isEventForConsumer(e,t){var n=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&n}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(go(e))}saveEventToCache(e){this.cachedEventUids.add(go(e)),this.lastProcessedEventTime=Date.now()}}function go(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function mo({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}async function vo(e,t={}){return Ei(e,"GET","/v1/projects",t)}const yo=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,_o=/^https?/;async function wo(e){if(!e.config.emulator){var t=(await vo(e))["authorizedDomains"];for(const n of t)try{if(function(e){const t=gi(),{protocol:n,hostname:r}=new URL(t);if(e.startsWith("chrome-extension://")){var i=new URL(e);return""===i.hostname&&""===r?"chrome-extension:"===n&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===n&&i.hostname===r}if(!_o.test(n))return!1;if(yo.test(e))return r===e;const s=e.replace(/\./g,"\\."),a=new RegExp("^(.+\\."+s+"|"+s+")$","i");return a.test(r)}(n))return}catch(e){}si(e,"unauthorized-domain")}}const bo=new yi(3e4,6e4);function Io(){const t=ba().___jsl;if(null!==t&&void 0!==t&&t.H)for(const n of Object.keys(t.H))if(t.H[n].r=t.H[n].r||[],t.H[n].L=t.H[n].L||[],t.H[n].r=[...t.H[n].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}let To=null;function Eo(e){var i;return To=To||(i=e,new Promise((e,t)=>{function n(){Io(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Io(),t(ai(i,"network-request-failed"))},timeout:bo.get()})}if(null!==(r=null===(r=ba().gapi)||void 0===r?void 0:r.iframes)&&void 0!==r&&r.Iframe)e(gapi.iframes.getContext());else{if(null===(r=ba().gapi)||void 0===r||!r.load){var r=Oa("iframefcb");return ba()[r]=()=>{gapi.load?n():t(ai(i,"network-request-failed"))},Pa(`https://apis.google.com/js/api.js?onload=${r}`).catch(e=>t(e))}n()}}).catch(e=>{throw To=null,e})),To}const ko=new yi(5e3,15e3),So="__/auth/iframe",Co="emulator/auth/iframe",Ao={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},No=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Ro(a){const e=await Eo(a);var t=ba().gapi;return ui(t,a,"internal-error"),e.open({where:document.body,url:function(e){var t=e.config;ui(t.authDomain,e,"auth-domain-config-required");var n=t.emulator?_i(t,Co):`https://${e.config.authDomain}/${So}`;const r={apiKey:t.apiKey,appName:e.name,v:Ye};(t=No.get(e.config.apiHost))&&(r.eid=t);const i=e._getFrameworks();return i.length&&(r.fw=i.join(",")),`${n}?${j(r).slice(1)}`}(a),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Ao,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});const n=ai(a,"network-request-failed"),r=ba().setTimeout(()=>{t(n)},ko.get());function i(){ba().clearTimeout(r),e(s)}s.ping(i).then(i,()=>{t(n)})}))}const xo={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Do{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Po(e,t,n,r=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-r)/2,0).toString();let o="";const c=Object.assign(Object.assign({},xo),{width:r.toString(),height:i.toString(),top:s,left:a});s=w().toLowerCase();n&&(o=Gi(s)?"_blank":n),Wi(s)&&(t=t||"http://localhost",c.scrollbars="yes");var l,a=Object.entries(c).reduce((e,[t,n])=>`${e}${t}=${n},`,"");if([n=w()]=[s],Xi(n)&&null!==(l=window.navigator)&&void 0!==l&&l.standalone&&"_self"!==o)return function(e,t){const n=document.createElement("a");n.href=e,n.target=t;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}(t||"",o),new Do(null);const u=window.open(t||"",o,a);ui(u,e,"popup-blocked");try{u.focus()}catch(e){}return new Do(u)}const Oo="__/auth/handler",Mo="emulator/auth/handler";function Lo(e,t,n,r,i,s){ui(e.config.authDomain,e,"auth-domain-config-required"),ui(e.config.apiKey,e,"invalid-api-key");const a={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:r,v:Ye,eventId:i};if(t instanceof _s){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",U(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,c]of Object.entries(s||{}))a[o]=c}if(t instanceof ws){const u=t.getScopes().filter(e=>""!==e);0<u.length&&(a.scopes=u.join(","))}e.tenantId&&(a.tid=e.tenantId);const l=a;for(const h of Object.keys(l))void 0===l[h]&&delete l[h];return`${e=[e["config"]][0],e.emulator?_i(e,Mo):`https://${e.authDomain}/${Oo}`}?${j(l).slice(1)}`}const Fo="webStorageSupport";const Uo=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=va,this._completeRedirectFn=ho,this._overrideRedirectResult=so}async _openPopup(e,t,n,r){var i;return di(null===(i=this.eventManagers[e._key()])||void 0===i?void 0:i.manager,"_initialize() not called before _openPopup()"),Po(e,Lo(e,t,n,gi(),r),_a())}async _openRedirect(e,t,n,r){return await this._originValidation(e),r=Lo(e,t,n,gi(),r),ba().location.href=r,new Promise(()=>{})}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:r,promise:n}=this.eventManagers[t];return r?Promise.resolve(r):(di(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch(()=>{delete this.eventManagers[t]}),n}async initAndGetManager(t){const e=await Ro(t),n=new fo(t);return e.register("authEvent",e=>{return ui(null==e?void 0:e.authEvent,t,"invalid-auth-event"),{status:n.onEvent(e.authEvent)?"ACK":"ERROR"}},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:n},this.iframes[t._key()]=e,n}_isIframeWebStorageSupported(n,r){const e=this.iframes[n._key()];e.send(Fo,{type:Fo},e=>{var t=null===(t=null==e?void 0:e[0])||void 0===t?void 0:t[Fo];void 0!==t&&r(!!t),si(n,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=wo(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return Zi()||zi()||Xi()}};class qo extends class{constructor(e){this.factorId=e}_process(e,t,n){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,n);case"signin":return this._finalizeSignIn(e,t.credential);default:return hi("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new qo(e)}_finalizeEnroll(e,t,n){return e=e,n={idToken:t,displayName:n,phoneVerificationInfo:this.credential._makeVerificationRequest()},Ei(e,"POST","/v2/accounts/mfaEnrollment:finalize",Ti(e,n))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},Ei(e,"POST","/v2/accounts/mfaSignIn:finalize",Ti(e,t))}}class Vo{constructor(){}static assertion(e){return qo._fromCredential(e)}}Vo.FACTOR_ID="phone";var Bo="@firebase/auth";class jo{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){ui(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var $o,Ko,Wo;function zo(){return window}$o="authIdTokenMaxAge",null===(Ko=d())||void 0===Ko||Ko[`_${$o}`],Wo="Browser",ze(new oe("auth",(e,{options:r})=>{var t=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");const{apiKey:i,authDomain:s}=t.options;return((e,t)=>{ui(i&&!i.includes(":"),"invalid-api-key",{appName:e.name}),ui(!(null!==s&&void 0!==s&&s.includes(":")),"argument-error",{appName:e.name});var n={apiKey:i,authDomain:s,clientPlatform:Wo,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:es(Wo)},n=new ns(e,t,n);return function(e,t){const n=(null==t?void 0:t.persistence)||[];var r=(Array.isArray(n)?n:[n]).map(fi);null!=t&&t.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(n,r),n})(t,n)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,n)=>{const r=e.getProvider("auth-internal");r.initialize()})),ze(new oe("auth-internal",e=>{var t=rs(e.getProvider("auth").getImmediate());return e=t,new jo(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),et(Bo,"0.21.1",function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";default:return}}(Wo)),et(Bo,"0.21.1","esm2017");async function Go(e,t,n){var r=zo()["BuildInfo"];di(t.sessionId,"AuthEvent did not contain a session ID");var i=await async function(e){const t=function(e){if(di(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);const t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}(e),n=await crypto.subtle.digest("SHA-256",t),r=Array.from(new Uint8Array(n));return r.map(e=>e.toString(16).padStart(2,"0")).join("")}(t.sessionId);const s={};return Xi()?s.ibi=r.packageName:Qi()?s.apn=r.packageName:si(e,"operation-not-supported-in-this-environment"),r.displayName&&(s.appDisplayName=r.displayName),s.sessionId=i,Lo(e,n,t.type,void 0,null!==(i=t.eventId)&&void 0!==i?i:void 0,s)}function Ho(r){const i=zo()["cordova"];return new Promise(n=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(r):t=i.InAppBrowser.open(r,(e=w(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),n(t)})})}const Qo=20;class Yo extends fo{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function Jo(e,t,n=null){return{type:t,eventId:n,urlResponse:null,sessionId:function(){const e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let r=0;r<Qo;r++){var n=Math.floor(Math.random()*t.length);e.push(t.charAt(n))}return e.join("")}(),postBody:null,tenantId:e.tenantId,error:ai(e,"no-auth-event")}}async function Xo(e){var t=await ec()._get(tc(e));return t&&await ec()._remove(tc(e)),t}function Zo(e,t){var n,r,i;const s=(n=nc(t=t),a=n.link?decodeURIComponent(n.link):void 0,r=nc(a).link,i=n.deep_link_id?decodeURIComponent(n.deep_link_id):void 0,(n=nc(i).link)||i||r||a||t);if(s.includes("/__/auth/callback")){var a=nc(s),a=a.firebaseError?function(e){try{return JSON.parse(e)}catch(e){return null}}(decodeURIComponent(a.firebaseError)):null,a=null===(a=null===(a=null==a?void 0:a.code)||void 0===a?void 0:a.split("auth/"))||void 0===a?void 0:a[1],a=a?ai(a):null;return a?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:a,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:s,postBody:null}}return null}function ec(){return fi(ga)}function tc(e){return ji("authEvent",e.config.apiKey,e.name)}function nc(e){if(null==e||!e.includes("?"))return{};const[,...t]=e.split("?");return $(t.join("?"))}const rc=class{constructor(){this._redirectPersistence=va,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=ho,this._overrideRedirectResult=so}async _initialize(e){var t=e._key();let n=this.eventManagers.get(t);return n||(n=new Yo(e),this.eventManagers.set(t,n),this.attachCallbackListeners(e,n)),n}_openPopup(e){si(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,n,r){var i,s;i=e,o=zo(),ui("function"==typeof(null===(s=null==o?void 0:o.universalLinks)||void 0===s?void 0:s.subscribe),i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),ui(void 0!==(null===(s=null==o?void 0:o.BuildInfo)||void 0===s?void 0:s.packageName),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),ui("function"==typeof(null===(s=null===(s=null===(s=null==o?void 0:o.cordova)||void 0===s?void 0:s.plugins)||void 0===s?void 0:s.browsertab)||void 0===s?void 0:s.openUrl),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),ui("function"==typeof(null===(s=null===(s=null===(s=null==o?void 0:o.cordova)||void 0===s?void 0:s.plugins)||void 0===s?void 0:s.browsertab)||void 0===s?void 0:s.isAvailable),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),ui("function"==typeof(null===(o=null===(o=null==o?void 0:o.cordova)||void 0===o?void 0:o.InAppBrowser)||void 0===o?void 0:o.open),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});const a=await this._initialize(e);await a.initialized(),a.resetRedirect(),no.clear(),await this._originValidation(e);var o=Jo(e,n,r);n=e,r=o,await ec()._set(tc(n),r);o=await Ho(await Go(e,o,t));return async function(a,o,c){const l=zo()["cordova"];let u=()=>{};try{await new Promise((n,e)=>{let t=null;function r(){var e;n();const t=null===(e=l.plugins.browsertab)||void 0===e?void 0:e.close;"function"==typeof t&&t(),"function"==typeof(null==c?void 0:c.close)&&c.close()}function i(){t=t||window.setTimeout(()=>{e(ai(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===(null===document||void 0===document?void 0:document.visibilityState)&&i()}o.addPassiveListener(r),document.addEventListener("resume",i,!1),Qi()&&document.addEventListener("visibilitychange",s,!1),u=()=>{o.removePassiveListener(r),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),t&&window.clearTimeout(t)}})}finally{u()}}(e,a,o)}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){var t=zo()["BuildInfo"];const n={};Xi()?n.iosBundleId=t.packageName:Qi()?n.androidPackageName=t.packageName:si(e,"operation-not-supported-in-this-environment"),await vo(e,n)}(e)),this.originValidationPromises[t]}attachCallbackListeners(r,i){const{universalLinks:e,handleOpenURL:t,BuildInfo:n}=zo(),s=setTimeout(async()=>{await Xo(r),i.onEvent(ic())},500),a=async e=>{clearTimeout(s);var t=await Xo(r);let n=null;t&&null!=e&&e.url&&(n=Zo(t,e.url)),i.onEvent(n||ic())};void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a);const o=t,c=`${n.packageName.toLowerCase()}://`;zo().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(c)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}};function ic(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:ai("no-auth-event")}}var sc;function ac(){var e;return(null===(e=null===self||void 0===self?void 0:self.location)||void 0===e?void 0:e.protocol)||null}function oc(e=w()){return!("file:"!==ac()&&"ionic:"!==ac()&&"capacitor:"!==ac()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function cc(e=w()){return k()&&11===(null===document||void 0===document?void 0:document.documentMode)||([e=w()]=[e],/Edge\/\d+/.test(e))}function lc(){try{const t=self.localStorage;var e=_a();if(t)return t.setItem(e,"1"),t.removeItem(e),!cc()||C()}catch(e){return uc()&&C()}return!1}function uc(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function hc(){return("http:"===ac()||"https:"===ac()||T()||oc())&&!(E()||I())&&lc()&&!uc()}function dc(){return oc()&&"undefined"!=typeof document}const pc={LOCAL:"local",NONE:"none",SESSION:"session"},fc=ui,gc="persistence";async function mc(e){await e._initializationPromise;const t=vc();var n=ji(gc,e.config.apiKey,e.name);t&&t.setItem(n,e._getPersistence())}function vc(){var e;try{return(null===(e="undefined"!=typeof window?window:null)?void 0:e.sessionStorage)||null}catch(e){return null}}const yc=ui;class _c{constructor(){this.browserResolver=fi(Uo),this.cordovaResolver=fi(rc),this.underlyingResolver=null,this._redirectPersistence=va,this._completeRedirectFn=ho,this._overrideRedirectResult=so}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,n,r){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,n,r)}async _openRedirect(e,t,n,r){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,n,r)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return dc()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return yc(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!dc()&&new Promise(e=>{const t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function wc(e){return e.unwrap()}function bc(e,t){var n,r,i,s=null===(r=t.customData)||void 0===r?void 0:r._tokenResponse;if("auth/multi-factor-auth-required"===(null==t?void 0:t.code)){const o=t;o.resolver=new kc(e,(n=t,i=ae(e),ui((a=n).customData.operationType,i,"argument-error"),ui(null===(r=a.customData._serverResponse)||void 0===r?void 0:r.mfaPendingCredential,i,"argument-error"),la._fromError(i,a)))}else if(s){var a=Ic(t);const c=t;a&&(c.credential=a,c.tenantId=s.tenantId||void 0,c.email=s.email||void 0,c.phoneNumber=s.phoneNumber||void 0)}}function Ic(e){var t=(e instanceof R?e.customData:e)["_tokenResponse"];if(!t)return null;if(!(e instanceof R)&&"temporaryProof"in t&&"phoneNumber"in t)return za.credentialFromResult(e);const n=t.providerId;if(!n||n===Jr.PASSWORD)return null;let r;switch(n){case Jr.GOOGLE:r=Ts;break;case Jr.FACEBOOK:r=Is;break;case Jr.GITHUB:r=Es;break;case Jr.TWITTER:r=Cs;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:c}=t;return s||a||i||o?o?n.startsWith("saml.")?ks._create(n,o):fs._fromParams({providerId:n,signInMethod:n,pendingToken:o,idToken:i,accessToken:s}):new bs(n).credential({idToken:i,accessToken:s,rawNonce:c}):null}return e instanceof R?r.credentialFromError(e):r.credentialFromResult(e)}function Tc(t,e){return e.catch(e=>{throw e instanceof R&&bc(t,e),e}).then(e=>{var t=e.operationType,n=e.user;return{operationType:t,credential:Ic(e),additionalUserInfo:oa(e),user:Sc.getOrCreate(n)}})}async function Ec(t,e){const n=await e;return{verificationId:n.verificationId,confirm:e=>Tc(t,n.confirm(e))}}class kc{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Tc(wc(this.auth),this.resolver.resolveSignIn(e))}}class Sc{constructor(e){var t;this._delegate=e,this.multiFactor=(t=ae(e),ha.has(t)||ha.set(t,ua._fromUser(t)),ha.get(t))}static getOrCreate(e){return Sc.USER_MAP.has(e)||Sc.USER_MAP.set(e,new Sc(e)),Sc.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Tc(this.auth,Vs(this._delegate,e))}async linkWithPhoneNumber(e,t){return Ec(this.auth,async function(e,t,n){const r=ae(e);await Ls(!1,r,"phone");var i=await Wa(r.auth,t,ae(n));return new Ka(i,e=>Vs(r,e))}(this._delegate,e,t))}async linkWithPopup(e){return Tc(this.auth,async function(e,t,n){var r=ae(e);ci(r.auth,t,_s);var i=Ga(r.auth,n);const s=new eo(r.auth,"linkViaPopup",t,i,r);return s.executeNotNull()}(this._delegate,e,_c))}async linkWithRedirect(e){return await mc(rs(this.auth)),uo(this._delegate,e,_c)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Tc(this.auth,Bs(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return Ec(this.auth,async function(e,t,n){const r=ae(e);var i=await Wa(r.auth,t,ae(n));return new Ka(i,e=>Bs(r,e))}(this._delegate,e,t))}reauthenticateWithPopup(e){return Tc(this.auth,async function(e,t,n){var r=ae(e);ci(r.auth,t,_s);var i=Ga(r.auth,n);const s=new eo(r.auth,"reauthViaPopup",t,i,r);return s.executeNotNull()}(this._delegate,e,_c))}async reauthenticateWithRedirect(e){return await mc(rs(this.auth)),lo(this._delegate,e,_c)}sendEmailVerification(e){return Js(this._delegate,e)}async unlink(e){return await Os(this._delegate,e),this}updateEmail(e){return ea(ae(this._delegate),e,null)}updatePassword(e){return ea(ae(this._delegate),null,e)}updatePhoneNumber(e){return async function(e,t){await Ms(ae(e),t)}(this._delegate,e)}updateProfile(e){return Zs(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return Xs(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}Sc.USER_MAP=new WeakMap;const Cc=ui;class Ac{constructor(e,t){if(this.app=e,t.isInitialized())return this._delegate=t.getImmediate(),void this.linkUnderlyingAuth();var n=e.options["apiKey"];Cc(n,"invalid-api-key",{appName:e.name}),Cc(n,"invalid-api-key",{appName:e.name});var r="undefined"!=typeof window?_c:void 0;this._delegate=t.initialize({options:{persistence:function(e,t){const n=function(e,t){const n=vc();if(!n)return[];var r=ji(gc,e,t);switch(n.getItem(r)){case pc.NONE:return[Bi];case pc.LOCAL:return[Da,va];case pc.SESSION:return[va];default:return[]}}(e,t);"undefined"==typeof self||n.includes(Da)||n.push(Da);if("undefined"!=typeof window)for(const r of[ga,va])n.includes(r)||n.push(r);n.includes(Bi)||n.push(Bi);return n}(n,e.name),popupRedirectResolver:r}}),this._delegate._updateErrorMap(ei),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?Sc.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){ss(this._delegate,e,t)}applyActionCode(e){return Gs(this._delegate,e)}checkActionCode(e){return Hs(this._delegate,e)}confirmPasswordReset(e,t){return async function(e,t,n){await ls(ae(e),{oobCode:t,newPassword:n})}(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Tc(this._delegate,async function(e,t,n){const r=rs(e);var i=await As(r,{returnSecureToken:!0,email:t,password:n}),i=await Ns._fromIdTokenResponse(r,"signIn",i);return await r._updateCurrentUser(i.user),i}(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return Ys(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===(null==(t=vs.parseLink(e))?void 0:t.operation);var t}async getRedirectResult(){Cc(hc(),this._delegate,"operation-not-supported-in-this-environment");var e,t,n=(e=this._delegate,t=_c,await rs(e)._initializationPromise,await ho(e,t,!1));return n?Tc(this._delegate,Promise.resolve(n)):{credential:null,user:null}}addFrameworkForLogging(e){rs(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,n){var{next:r,error:i,complete:s}=Nc(e,t,n);return this._delegate.onAuthStateChanged(r,i,s)}onIdTokenChanged(e,t,n){var{next:r,error:i,complete:s}=Nc(e,t,n);return this._delegate.onIdTokenChanged(r,i,s)}sendSignInLinkToEmail(e,t){return Qs(this._delegate,e,t)}sendPasswordResetEmail(e,t){return zs(this._delegate,e,t||void 0)}async setPersistence(e){var t,n;t=this._delegate,n=e,fc(Object.values(pc).includes(n),t,"invalid-persistence-type"),E()?fc(n!==pc.SESSION,t,"unsupported-persistence-type"):I()?fc(n===pc.NONE,t,"unsupported-persistence-type"):uc()?fc(n===pc.NONE||n===pc.LOCAL&&C(),t,"unsupported-persistence-type"):fc(n===pc.NONE||lc(),t,"unsupported-persistence-type");let r;switch(e){case pc.SESSION:r=va;break;case pc.LOCAL:var i=await fi(Da)._isAvailable();r=i?Da:ga;break;case pc.NONE:r=Bi;break;default:return si("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(r)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Tc(this._delegate,async function(e){const t=rs(e);if(await t._initializationPromise,null!==(n=t.currentUser)&&void 0!==n&&n.isAnonymous)return new Ns({user:t.currentUser,providerId:null,operationType:"signIn"});var n=await As(t,{returnSecureToken:!0}),n=await Ns._fromIdTokenResponse(t,"signIn",n,!0);return await t._updateCurrentUser(n.user),n}(this._delegate))}signInWithCredential(e){return Tc(this._delegate,qs(this._delegate,e))}signInWithCustomToken(e){return Tc(this._delegate,js(this._delegate,e))}signInWithEmailAndPassword(e,t){return Tc(this._delegate,(n=this._delegate,e=e,t=t,qs(ae(n),ys.credential(e,t))));var n}signInWithEmailLink(e,t){return Tc(this._delegate,async function(e,t,n){var r=ae(e),i=ys.credentialWithLink(t,n||gi());return ui(i._tenantId===(r.tenantId||null),r,"tenant-id-mismatch"),qs(r,i)}(this._delegate,e,t))}signInWithPhoneNumber(e,t){return Ec(this._delegate,async function(e,t,n){const r=rs(e);var i=await Wa(r,t,ae(n));return new Ka(i,e=>qs(r,e))}(this._delegate,e,t))}async signInWithPopup(e){return Cc(hc(),this._delegate,"operation-not-supported-in-this-environment"),Tc(this._delegate,async function(e,t,n){var r=rs(e);ci(e,t,_s);var i=Ga(r,n);const s=new eo(r,"signInViaPopup",t,i);return s.executeNotNull()}(this._delegate,e,_c))}async signInWithRedirect(e){return Cc(hc(),this._delegate,"operation-not-supported-in-this-environment"),await mc(this._delegate),co(this._delegate,e,_c)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return async function(e,t){var n=(await Hs(ae(e),t))["data"];return n.email}(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Nc(e,t,n){let r=e;"function"!=typeof e&&({next:r,error:t,complete:n}=e);const i=r;return{next:e=>i(e&&Sc.getOrCreate(e)),error:t,complete:n}}Ac.Persistence=pc;class Rc{constructor(){this.providerId="phone",this._delegate=new za(wc(wt.auth()))}static credential(e,t){return za.credential(e,t)}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Rc.PHONE_SIGN_IN_METHOD=za.PHONE_SIGN_IN_METHOD,Rc.PROVIDER_ID=za.PROVIDER_ID;const xc=ui;class Dc{constructor(e,t,n=wt.app()){var r;xc(null===(r=n.options)||void 0===r?void 0:r.apiKey,"invalid-api-key",{appName:n.name}),this._delegate=new $a(e,t,n.auth()),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(sc=wt).INTERNAL.registerComponent(new oe("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("auth");return new Ac(t,n)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Xr.EMAIL_SIGNIN,PASSWORD_RESET:Xr.PASSWORD_RESET,RECOVER_EMAIL:Xr.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Xr.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Xr.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Xr.VERIFY_EMAIL}},EmailAuthProvider:ys,FacebookAuthProvider:Is,GithubAuthProvider:Es,GoogleAuthProvider:Ts,OAuthProvider:bs,SAMLAuthProvider:Ss,PhoneAuthProvider:Rc,PhoneMultiFactorGenerator:Vo,RecaptchaVerifier:Dc,TwitterAuthProvider:Cs,Auth:Ac,AuthCredential:cs,Error:R}).setInstantiationMode("LAZY").setMultipleInstances(!1)),sc.registerVersion("@firebase/auth-compat","0.3.1");const Pc="@firebase/database";let Oc="";function Mc(e){Oc=e}class Lc{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),O(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:P(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Fc{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return L(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}var Uc,qc,Vc,Bc,jc,$c,Kc=function(e){try{if("undefined"!=typeof window&&void 0!==window[e]){const t=window[e];return t.setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Lc(t)}}catch(e){}return new Fc};function Wc(e){var t=function(t){const n=[];let r=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);var i,s;55296<=e&&e<=56319&&(i=e-55296,a++,f(a<t.length,"Surrogate pair missing trail surrogate."),s=t.charCodeAt(a)-56320,e=65536+(i<<10)+s),e<128?n[r++]=e:(e<2048?n[r++]=e>>6|192:(e<65536?n[r++]=e>>12|224:(n[r++]=e>>18|240,n[r++]=e>>12&63|128),n[r++]=e>>6&63|128),n[r++]=63&e|128)}return n}(e);const n=new W;return n.update(t),t=n.digest(),r.encodeByteArray(t)}const zc=Kc("localStorage"),Gc=Kc("sessionStorage"),Hc=new me("@firebase/database"),Qc=function(){let e=1;return function(){return e++}}(),Yc=function(...e){let t="";for(let r=0;r<e.length;r++){var n=e[r];Array.isArray(n)||n&&"object"==typeof n&&"number"==typeof n.length?t+=Yc.apply(null,n):t+="object"==typeof n?O(n):n,t+=" "}return t};let Jc=null,Xc=!0;function Zc(t){return function(...e){al(t,...e)}}function el(...e){var t="FIREBASE INTERNAL ERROR: "+Yc(...e);Hc.error(t)}function tl(e,t){return e===t?0:e<t?-1:1}function nl(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+O(t))}function rl(e){if("object"!=typeof e||null===e)return O(e);const t=[];for(const r in e)t.push(r);t.sort();let n="{";for(let i=0;i<t.length;i++)0!==i&&(n+=","),n+=O(t[i]),n+=":",n+=rl(e[t[i]]);return n+="}",n}function il(e,t){var n=e.length;if(n<=t)return[e];const r=[];for(let i=0;i<n;i+=t)i+t>n?r.push(e.substring(i,n)):r.push(e.substring(i,i+t));return r}const sl=function(e,t){f(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(Hc.logLevel=g.VERBOSE,Jc=Hc.log.bind(Hc),t&&Gc.set("logging_enabled",!0)):"function"==typeof e?Jc=e:(Jc=null,Gc.remove("logging_enabled"))},al=function(...e){var t;!0===Xc&&(Xc=!1,null===Jc&&!0===Gc.get("logging_enabled")&&sl(!0)),Jc&&(t=Yc.apply(null,e),Jc(t))},ol=function(...e){var t=`FIREBASE FATAL ERROR: ${Yc(...e)}`;throw Hc.error(t),new Error(t)},cl=function(...e){var t="FIREBASE WARNING: "+Yc(...e);Hc.warn(t)},ll=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&cl("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},ul=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},hl="[MIN_NAME]",dl="[MAX_NAME]",pl=function(e,t){if(e===t)return 0;if(e===hl||t===dl)return-1;if(t===hl||e===dl)return 1;var n=ml(e),r=ml(t);return null!==n?null!==r?n-r==0?e.length-t.length:n-r:-1:null===r&&e<t?-1:1};function fl(e,t){for(const n in e)e.hasOwnProperty(n)&&t(n,e[n])}function gl(e){f(!ul(e),"Invalid JSON number");let t,n,r,i,s;0===e?(n=0,r=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),r=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),n=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(n=0,Math.round(e/Math.pow(2,-1074))));const a=[];for(s=52;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);for(s=11;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);a.push(t?1:0),a.reverse();const o=a.join("");let c="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),c+=e}return c.toLowerCase()}function ml(e){if(yl.test(e)){var t=Number(e);if(t>=_l&&t<=wl)return t}return null}function vl(e,t){const n=setTimeout(e,t);return"number"==typeof n&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(n):"object"==typeof n&&n.unref&&n.unref(),n}const yl=new RegExp("^-?(0*)\\d{1,10}$"),_l=-2147483648,wl=2147483647,bl=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw cl("Exception was thrown by user callback.",e),t},Math.floor(0))}};class Il{constructor(e,t){this.appName_=e,this.appCheckProvider=t,this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null!=t&&t.get().then(e=>this.appCheck=e)}getToken(n){return this.appCheck?this.appCheck.getToken(n):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(n).then(e,t):e(null)},0)})}addTokenChangeListener(t){var e;null!==(e=this.appCheckProvider)&&void 0!==e&&e.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){cl(`Provided AppCheck credentials for the app named "${this.appName_}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Tl{constructor(e,t,n){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=n,this.auth_=null,this.auth_=n.getImmediate({optional:!0}),this.auth_||n.onInit(e=>this.auth_=e)}getToken(n){return this.auth_?this.auth_.getToken(n).catch(e=>e&&"auth/token-not-initialized"===e.code?(al("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(n).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',cl(e)}}class El{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}El.OWNER="owner";const kl=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Sl="websocket",Cl="long_polling";class Al{constructor(e,t,n,r,i=!1,s="",a=!1){this.secure=t,this.namespace=n,this.webSocketOnly=r,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=zc.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&zc.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${t}`}}function Nl(e,t,n){f("string"==typeof t,"typeof type must == string"),f("object"==typeof n,"typeof params must == object");let r;if(t===Sl)r=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Cl)throw new Error("Unknown connection type: "+t);r=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(n.ns=e.namespace);const i=[];return fl(n,(e,t)=>{i.push(e+"="+t)}),r+i.join("&")}class Rl{constructor(){this.counters_={}}incrementCounter(e,t=1){L(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return c(void 0,this.counters_)}}const xl={},Dl={};function Pl(e){var t=e.toString();return xl[t]||(xl[t]=new Rl),xl[t]}class Ol{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){const n=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let e=0;e<n.length;++e)n[e]&&bl(()=>{this.onMessage_(n[e])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Ml{constructor(e,t,n,r,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=n,this.appCheckToken=r,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=Zc(e),this.stats_=Pl(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),Nl(t,Cl,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Ol(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4)),function(t){if("complete"===document.readyState)t();else{let e=!1;const n=function(){document.body?e||(e=!0,t()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&n()}),window.attachEvent("onload",n))}}(()=>{if(!this.isClosed_){this.scriptTagHolder=new Ll((...e)=>{var[t,n,r]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=n,this.password=r;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);n?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(n,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,n]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,n)},()=>{this.onClosed_()},this.urlFn);const t={start:"t"};t.ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(t.cb=this.scriptTagHolder.uniqueCallbackIdentifier),t.v="5",this.transportSessionId&&(t.s=this.transportSessionId),this.lastSessionId&&(t.ls=this.lastSessionId),this.applicationId&&(t.p=this.applicationId),this.appCheckToken&&(t.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&kl.test(location.hostname)&&(t.r="f");var e=this.urlFn(t);this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{})}})}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Ml.forceAllow_=!0}static forceDisallow(){Ml.forceDisallow_=!0}static isAvailable(){return!!Ml.forceAllow_||!(Ml.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=O(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);var t=i(t),n=il(t,1840);for(let r=0;r<n.length;r++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,n.length,n[r]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");const n={dframe:"t"};n.id=e,n.pw=t,this.myDisconnFrame.src=this.urlFn(n),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=O(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Ll{constructor(t,n,e,r){this.onDisconnect=e,this.urlFn=r,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=Qc(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=n,this.myIFrame=Ll.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){al("frame writing exception"),e.stack&&al(e.stack),al(e)}}}static createIFrame_(){const t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||al("No IE domain setting required")}catch(e){var n=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+n+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));const e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;const i={};i.id=this.myID,i.pw=this.myPW,i.ser=this.currentSerial;var n=this.urlFn(i);let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var r=this.pendingSegs.shift();e=e+"&seg"+t+"="+r.seg+"&ts"+t+"="+r.ts+"&d"+t+"="+r.d,t++}return n+=e,this.addLongPollTag_(n,this.currentSerial),!0}return!1}enqueueSegment(e,t,n){this.pendingSegs.push({seg:e,ts:t,d:n}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);const n=()=>{this.outstandingRequests.delete(t),this.newRequest_()},r=setTimeout(n,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(r),n()})}addTag(e,n){setTimeout(()=>{try{if(!this.sendNewPolls)return;const t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),n())},t.onerror=()=>{al("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}catch(e){}},Math.floor(1))}}let Fl=null;"undefined"!=typeof MozWebSocket?Fl=MozWebSocket:"undefined"!=typeof WebSocket&&(Fl=WebSocket);class Ul{constructor(e,t,n,r,i,s,a){this.connId=e,this.applicationId=n,this.appCheckToken=r,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=Zc(this.connId),this.stats_=Pl(t),this.connURL=Ul.connectionURL_(t,s,a,r,n),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,n,r,i){const s={v:"5"};return"undefined"!=typeof location&&location.hostname&&kl.test(location.hostname)&&(s.r="f"),t&&(s.s=t),n&&(s.ls=n),r&&(s.ac=r),i&&(s.p=i),Nl(e,Sl,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,zc.set("previous_websocket_failure",!0);try{S(),this.mySock=new Fl(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var n=e.message||e.data;return n&&this.log_(n),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){Ul.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return"undefined"==typeof navigator||!navigator.userAgent||(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4&&(e=!0),!e&&null!==Fl&&!Ul.forceDisallow_}static previouslyFailed(){return zc.isInMemoryStorage||!0===zc.get("previous_websocket_failure")}markConnectionHealthy(){zc.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=P(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(f(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=O(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);var n=il(t,16384);1<n.length&&this.sendString_(String(n.length));for(let r=0;r<n.length;r++)this.sendString_(n[r])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}Ul.responsesRequiredToBeHealthy=2,Ul.healthyTimeout=3e4;class ql{constructor(e){this.initTransports_(e)}static get ALL_TRANSPORTS(){return[Ml,Ul]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}initTransports_(e){var t=Ul&&Ul.isAvailable();let n=t&&!Ul.previouslyFailed();if(e.webSocketOnly&&(t||cl("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),n=!0),n)this.transports_=[Ul];else{const r=this.transports_=[];for(const i of ql.ALL_TRANSPORTS)i&&i.isAvailable()&&r.push(i);ql.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}ql.globalTransportInitialized_=!1;class Vl{constructor(e,t,n,r,i,s,a,o,c,l){this.id=e,this.repoInfo_=t,this.applicationId_=n,this.appCheckToken_=r,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=c,this.lastSessionId=l,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=Zc("c:"+this.id+":"),this.transportManager_=new ql(t),this.log_("Connection created"),this.start_()}start_(){const e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;const t=this.connReceiver_(this.conn_),n=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,n)},Math.floor(0));var r=e.healthyTimeout||0;0<r&&(this.healthyTimeout_=vl(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(r)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=nl("t",e),n=nl("d",e);if("c"===t)this.onSecondaryControl_(n);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(n)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=nl("t",e),n=nl("d",e);"c"===t?this.onControl_(n):"d"===t&&this.onDataMessage_(n)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=nl("t",e);if("d"in e){var n=e.d;if("h"===t)this.onHandshake_(n);else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(n):"r"===t?this.onReset_(n):"e"===t?el("Server Error: "+n):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):el("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,n=e.v,r=e.h;this.sessionId=e.s,this.repoInfo_.host=r,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==n&&cl("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),n=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,n),vl(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):vl(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(zc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Bl{put(e,t,n,r){}merge(e,t,n,r){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,n){}onDisconnectMerge(e,t,n){}onDisconnectCancel(e,t){}reportStats(e){}}class jl{constructor(e){this.allowedEvents_=e,this.listeners_={},f(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...n){if(Array.isArray(this.listeners_[t])){const r=[...this.listeners_[t]];for(let e=0;e<r.length;e++)r[e].callback.apply(r[e].context,n)}}on(e,t,n){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:n});var r=this.getInitialEvent(e);r&&t.apply(n,r)}off(e,t,n){this.validateEventType_(e);const r=this.listeners_[e]||[];for(let i=0;i<r.length;i++)if(r[i].callback===t&&(!n||n===r[i].context))return void r.splice(i,1)}validateEventType_(t){f(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class $l extends jl{constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||b()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}static getInstance(){return new $l}getInitialEvent(e){return f("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}class Kl{constructor(n,e){if(void 0===e){this.pieces_=n.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=n,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function Wl(){return new Kl("")}function zl(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function Gl(e){return e.pieces_.length-e.pieceNum_}function Hl(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new Kl(e.pieces_,t)}function Ql(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function Yl(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function Jl(e){if(e.pieceNum_>=e.pieces_.length)return null;const t=[];for(let n=e.pieceNum_;n<e.pieces_.length-1;n++)t.push(e.pieces_[n]);return new Kl(t,0)}function Xl(e,t){const n=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)n.push(e.pieces_[i]);if(t instanceof Kl)for(let e=t.pieceNum_;e<t.pieces_.length;e++)n.push(t.pieces_[e]);else{var r=t.split("/");for(let e=0;e<r.length;e++)0<r[e].length&&n.push(r[e])}return new Kl(n,0)}function Zl(e){return e.pieceNum_>=e.pieces_.length}function eu(e,t){var n=zl(e),r=zl(t);if(null===n)return t;if(n===r)return eu(Hl(e),Hl(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function tu(e,t){var n=Yl(e,0),r=Yl(t,0);for(let s=0;s<n.length&&s<r.length;s++){var i=pl(n[s],r[s]);if(0!==i)return i}return n.length===r.length?0:n.length<r.length?-1:1}function nu(e,t){if(Gl(e)!==Gl(t))return!1;for(let n=e.pieceNum_,r=t.pieceNum_;n<=e.pieces_.length;n++,r++)if(e.pieces_[n]!==t.pieces_[r])return!1;return!0}function ru(e,t){let n=e.pieceNum_,r=t.pieceNum_;if(Gl(e)>Gl(t))return!1;for(;n<e.pieces_.length;){if(e.pieces_[n]!==t.pieces_[r])return!1;++n,++r}return!0}class iu{constructor(e,t){this.errorPrefix_=t,this.parts_=Yl(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let n=0;n<this.parts_.length;n++)this.byteLength_+=ee(this.parts_[n]);su(this)}}function su(e){if(768<e.byteLength_)throw new Error(e.errorPrefix_+"has a key path longer than 768 bytes ("+e.byteLength_+").");if(32<e.parts_.length)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written (32) or object contains a cycle "+au(e))}function au(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class ou extends jl{constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}static getInstance(){return new ou}getInitialEvent(e){return f("visible"===e,"Unknown event type: "+e),[this.visible_]}}class cu extends Bl{constructor(e,t,n,r,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=n,this.onConnectStatus_=r,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=cu.nextPersistentConnectionId_++,this.log_=Zc("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!S())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");ou.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&$l.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,n){var r=++this.requestNumber_,i={r:r,a:e,b:t};this.log_(O(i)),f(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),n&&(this.requestCBHash_[r]=n)}get(e){this.initConnection_();const n=new y;var t={p:e._path.toString(),q:e._queryObject};this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?n.resolve(t):n.reject(t)}}),this.outstandingGetCount_++;t=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(t),n.promise}listen(e,t,n,r){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString();this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),f(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),f(!this.listens.get(s).has(i),"listen() called twice for same path/queryId.");var a={onComplete:r,hashFn:t,query:e,tag:n};this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){const n=this.outstandingGets_[t];this.sendRequest("g",n.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),n.onComplete&&n.onComplete(e)})}sendListen_(r){const i=r.query,s=i._path.toString(),a=i._queryIdentifier;this.log_("Listen on "+s+" for "+a);const e={p:s};r.tag&&(e.q=i._queryObject,e.t=r.tag),e.h=r.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,n=e.s;cu.warnOnListenWarnings_(t,i),(this.listens.get(s)&&this.listens.get(s).get(a))===r&&(this.log_("listen response",e),"ok"!==n&&this.removeListen_(s,a),r.onComplete&&r.onComplete(n,t))})}static warnOnListenWarnings_(e,t){if(e&&"object"==typeof e&&L(e,"w")){const i=F(e,"w");var n,r;Array.isArray(i)&&~i.indexOf("no_index")&&(n='".indexOn": "'+t._queryParams.getIndex().toString()+'"',r=t._path.toString(),cl("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${n} at `+`${r} to your security rules for better performance.`))}}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=M(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){const r=this.authToken_;var e=function(e){const t=M(e),n=t.claims;return!!n&&"object"==typeof n&&n.hasOwnProperty("iat")}(r)?"auth":"gauth";const t={cred:r};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,n=e.d||"error";this.authToken_===r&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,n))})}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,n=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,n)})}unlisten(e,t){var n=e._path.toString(),r=e._queryIdentifier;this.log_("Unlisten called for "+n+" "+r),f(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(n,r)&&this.connected_&&this.sendUnlisten_(n,r,e._queryObject,t)}sendUnlisten_(e,t,n,r){this.log_("Unlisten on "+e+" for "+t);const i={p:e};r&&(i.q=n,i.t=r),this.sendRequest("n",i)}onDisconnectPut(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:n})}onDisconnectMerge(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:n})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,n,r){var i={p:t,d:n};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{r&&setTimeout(()=>{r(e.s,e.d)},Math.floor(0))})}put(e,t,n,r){this.putInternal("p",e,t,n,r)}merge(e,t,n,r){this.putInternal("m",e,t,n,r)}putInternal(e,t,n,r,i){this.initConnection_();const s={p:t,d:n};void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:r}),this.outstandingPutCount_++;var a=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(a):this.log_("Buffering put: "+t)}sendPut_(t){const n=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;const r=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(n,e,e=>{this.log_(n+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),r&&r(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+O(e));var t=e.r;const n=this.requestCBHash_[t];n&&(delete this.requestCBHash_[t],n(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):el("Unrecognized action received from server: "+O(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){f(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=(new Date).getTime()-this.lastConnectionAttemptTime_,e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var e=this.onDataMessage_.bind(this),r=this.onReady_.bind(this);const u=this.onRealtimeDisconnect_.bind(this);var i=this.id+":"+cu.nextConnectionId_++,s=this.lastSessionId;let t=!1,n=null;var a=function(){n?n.close():(t=!0,u())};this.realtime_={close:a,sendRequest:function(e){f(n,"sendRequest call when we're not connected not allowed."),n.sendRequest(e)}};var o=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{var[c,l]=await Promise.all([this.authTokenProvider_.getToken(o),this.appCheckTokenProvider_.getToken(o)]);t?al("getToken() completed but was canceled"):(al("getToken() completed. Creating connection."),this.authToken_=c&&c.accessToken,this.appCheckToken_=l&&l.token,n=new Vl(i,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,e,r,u,e=>{cl(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},s))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&cl(e),a())}}}interrupt(e){al("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){al("Resuming connection for reason: "+e),delete this.interruptReasons_[e],U(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let e=0;e<this.outstandingPuts_.length;e++){const t=this.outstandingPuts_[e];t&&"h"in t.request&&t.queued&&(t.onComplete&&t.onComplete("disconnect"),delete this.outstandingPuts_[e],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let n;n=t?t.map(e=>rl(e)).join("$"):"default";const r=this.removeListen_(e,n);r&&r.onComplete&&r.onComplete("permission_denied")}removeListen_(e,t){var n=new Kl(e).toString();let r;if(this.listens.has(n)){const i=this.listens.get(n);r=i.get(t),i.delete(t),0===i.size&&this.listens.delete(n)}else r=void 0;return r}onAuthRevoked_(e,t){al("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){al("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(const t of this.listens.values())for(const n of t.values())this.sendListen_(n);for(let r=0;r<this.outstandingPuts_.length;r++)this.outstandingPuts_[r]&&this.sendPut_(r);for(;this.onDisconnectRequestQueue_.length;){var e=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(e.action,e.pathString,e.data,e.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){const e={};e["sdk.js."+Oc.replace(/\./g,"-")]=1,b()?e["framework.cordova"]=1:E()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=$l.getInstance().currentlyOnline();return U(this.interruptReasons_)&&e}}cu.nextPersistentConnectionId_=0,cu.nextConnectionId_=0;class lu{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new lu(e,t)}}class uu{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var n=new lu(hl,e),r=new lu(hl,t);return 0!==this.compare(n,r)}minPost(){return lu.MIN}}let hu;class du extends uu{static get __EMPTY_NODE(){return hu}static set __EMPTY_NODE(e){hu=e}compare(e,t){return pl(e.name,t.name)}isDefinedOn(e){throw u("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return lu.MIN}maxPost(){return new lu(dl,hu)}makePost(e,t){return f("string"==typeof e,"KeyIndex indexValue must always be a string."),new lu(e,hu)}toString(){return".key"}}const pu=new du;class fu{constructor(e,t,n,r,i=null){this.isReverse_=r,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?n(e.key,t):1,r&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){if(0===this.nodeStack_.length)return null;var e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}}class gu{constructor(e,t,n,r,i){this.key=e,this.value=t,this.color=null!=n?n:gu.RED,this.left=null!=r?r:mu.EMPTY_NODE,this.right=null!=i?i:mu.EMPTY_NODE}copy(e,t,n,r,i){return new gu(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,n){let r=this;var i=n(e,r.key);return r=i<0?r.copy(null,null,null,r.left.insert(e,t,n),null):0===i?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,n)),r.fixUp_()}removeMin_(){if(this.left.isEmpty())return mu.EMPTY_NODE;let e=this;return e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_()),e=e.copy(null,null,null,e.left.removeMin_(),null),e.fixUp_()}remove(e,t){let n,r;if(n=this,t(e,n.key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===t(e,n.key)){if(n.right.isEmpty())return mu.EMPTY_NODE;r=n.right.min_(),n=n.copy(r.key,r.value,null,null,n.right.removeMin_())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e.right.isRed_()&&!e.left.isRed_()&&(e=e.rotateLeft_()),e.left.isRed_()&&e.left.left.isRed_()&&(e=e.rotateRight_()),e.left.isRed_()&&e.right.isRed_()&&(e=e.colorFlip_()),e}moveRedLeft_(){let e=this.colorFlip_();return e.right.left.isRed_()&&(e=e.copy(null,null,null,null,e.right.rotateRight_()),e=e.rotateLeft_(),e=e.colorFlip_()),e}moveRedRight_(){let e=this.colorFlip_();return e.left.left.isRed_()&&(e=e.rotateRight_(),e=e.colorFlip_()),e}rotateLeft_(){var e=this.copy(null,null,gu.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,gu.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}gu.RED=!0,gu.BLACK=!1;class mu{constructor(e,t=mu.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new mu(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,gu.BLACK,null,null))}remove(e){return new mu(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,gu.BLACK,null,null))}get(e){var t;let n=this.root_;for(;!n.isEmpty();){if(0===(t=this.comparator_(e,n.key)))return n.value;t<0?n=n.left:0<t&&(n=n.right)}return null}getPredecessorKey(e){let t,n=this.root_,r=null;for(;!n.isEmpty();){if(0===(t=this.comparator_(e,n.key))){if(n.left.isEmpty())return r?r.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}t<0?n=n.left:0<t&&(r=n,n=n.right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new fu(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new fu(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new fu(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new fu(this.root_,null,this.comparator_,!0,e)}}function vu(e,t){return pl(e.name,t.name)}function yu(e,t){return pl(e,t)}mu.EMPTY_NODE=new class{copy(e,t,n,r,i){return this}insert(e,t,n){return new gu(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}};let _u;function wu(e){return"number"==typeof e?"number:"+gl(e):"string:"+e}function bu(e){var t;e.isLeafNode()?(t=e.val(),f("string"==typeof t||"number"==typeof t||"object"==typeof t&&L(t,".sv"),"Priority must be a string or number.")):f(e===_u||e.isEmpty(),"priority of unexpected type."),f(e===_u||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Iu;class Tu{constructor(e,t=Tu.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,f(void 0!==this.value_&&null!==this.value_,"LeafNode shouldn't be created with null/undefined value."),bu(this.priorityNode_)}static set __childrenNodeConstructor(e){Iu=e}static get __childrenNodeConstructor(){return Iu}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Tu(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Tu.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return Zl(e)?this:".priority"===zl(e)?this.priorityNode_:Tu.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Tu.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var n=zl(e);return null===n?t:t.isEmpty()&&".priority"!==n?this:(f(".priority"!==n||1===Gl(e),".priority must be the last token in a path"),this.updateImmediateChild(n,Tu.__childrenNodeConstructor.EMPTY_NODE.updateChild(Hl(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+wu(this.priorityNode_.val())+":");var t=typeof this.value_;e+=t+":",e+="number"==t?gl(this.value_):this.value_,this.lazyHash_=Wc(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Tu.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Tu.__childrenNodeConstructor?-1:(f(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,n=typeof this.value_,r=Tu.VALUE_TYPE_ORDER.indexOf(t),i=Tu.VALUE_TYPE_ORDER.indexOf(n);return f(0<=r,"Unknown leaf type: "+t),f(0<=i,"Unknown leaf type: "+n),r===i?"object"==n?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-r}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&(this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_))}}Tu.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Eu,ku;const Su=new class extends uu{compare(e,t){const n=e.node.getPriority();var r=t.node.getPriority(),r=n.compareTo(r);return 0===r?pl(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return lu.MIN}maxPost(){return new lu(dl,new Tu("[PRIORITY-POST]",ku))}makePost(e,t){var n=Eu(e);return new lu(t,new Tu("[PRIORITY-POST]",n))}toString(){return".priority"}},Cu=Math.log(2);class Au{constructor(e){var t;this.count=(t=e+1,parseInt(Math.log(t)/Cu,10)),this.current_=this.count-1;var n,r=(n=this.count,parseInt(Array(n+1).join("1"),2));this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Nu(c,e,l,t){c.sort(e);const u=function(e,t){var n=t-e;let r,i;if(0==n)return null;if(1==n)return r=c[e],i=l?l(r):r,new gu(i,r.node,gu.BLACK,null,null);var s=parseInt(n/2,10)+e,a=u(e,s),n=u(s+1,t);return r=c[s],i=l?l(r):r,new gu(i,r.node,gu.BLACK,a,n)};var n=function(e){let s=null,a=null,o=c.length;function t(e,t){var n=o-e,r=o;o-=e;var i=u(1+n,r),r=c[n],n=l?l(r):r;!function(e){if(s){s.left=e;s=e}else{a=e;s=e}}(new gu(n,r.node,t,null,i))}for(let i=0;i<e.count;++i){var n=e.nextBitIsOne(),r=Math.pow(2,e.count-(i+1));n?t(r,gu.BLACK):(t(r,gu.BLACK),t(r,gu.RED))}return a}(new Au(c.length));return new mu(t||e,n)}let Ru;const xu={};class Du{constructor(e,t){this.indexes_=e,this.indexSet_=t}static get Default(){return f((xu,Su),"ChildrenNode.ts has not been loaded"),Ru=Ru||new Du({".priority":xu},{".priority":Su}),Ru}get(e){var t=F(this.indexes_,e);if(!t)throw new Error("No index defined for "+e);return t instanceof mu?t:null}hasIndex(e){return L(this.indexSet_,e.toString())}addIndex(e,t){f(e!==pu,"KeyIndex always exists and isn't meant to be added to the IndexMap.");const n=[];let r=!1;const i=t.getIterator(lu.Wrap);let s=i.getNext();for(;s;)r=r||e.isDefinedOn(s.node),n.push(s),s=i.getNext();let a;a=r?Nu(n,e.getCompare()):xu;var o=e.toString();const c=Object.assign({},this.indexSet_);c[o]=e;const l=Object.assign({},this.indexes_);return l[o]=a,new Du(l,c)}addToIndexes(a,o){var e=q(this.indexes_,(t,e)=>{const n=F(this.indexSet_,e);if(f(n,"Missing index implementation for "+e),t===xu){if(n.isDefinedOn(a.node)){const i=[],s=o.getIterator(lu.Wrap);let e=s.getNext();for(;e;)e.name!==a.name&&i.push(e),e=s.getNext();return i.push(a),Nu(i,n.getCompare())}return xu}{var r=o.get(a.name);let e=t;return r&&(e=e.remove(new lu(a.name,r))),e.insert(a,a.node)}});return new Du(e,this.indexSet_)}removeFromIndexes(n,r){var e=q(this.indexes_,e=>{if(e===xu)return e;var t=r.get(n.name);return t?e.remove(new lu(n.name,t)):e});return new Du(e,this.indexSet_)}}let Pu;class Ou{constructor(e,t,n){this.children_=e,this.priorityNode_=t,this.indexMap_=n,this.lazyHash_=null,this.priorityNode_&&bu(this.priorityNode_),this.children_.isEmpty()&&f(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}static get EMPTY_NODE(){return Pu=Pu||new Ou(new mu(yu),null,Du.Default)}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Pu}updatePriority(e){return this.children_.isEmpty()?this:new Ou(this.children_,e,this.indexMap_)}getImmediateChild(e){if(".priority"===e)return this.getPriority();var t=this.children_.get(e);return null===t?Pu:t}getChild(e){var t=zl(e);return null===t?this:this.getImmediateChild(t).getChild(Hl(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(n,r){if(f(r,"We should always be passing snapshot nodes"),".priority"===n)return this.updatePriority(r);{var i=new lu(n,r);let e,t;t=r.isEmpty()?(e=this.children_.remove(n),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(n,r),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?Pu:this.priorityNode_;return new Ou(e,i,t)}}updateChild(e,t){var n=zl(e);if(null===n)return t;f(".priority"!==zl(e)||1===Gl(e),".priority must be the last token in a path");var r=this.getImmediateChild(n).updateChild(Hl(e),t);return this.updateImmediateChild(n,r)}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(n){if(this.isEmpty())return null;const r={};let i=0,s=0,a=!0;if(this.forEachChild(Su,(e,t)=>{r[e]=t.val(n),i++,a&&Ou.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!n&&a&&s<2*i){const e=[];for(const t in r)e[t]=r[t];return e}return n&&!this.getPriority().isEmpty()&&(r[".priority"]=this.getPriority().val()),r}hash(){if(null===this.lazyHash_){let r="";this.getPriority().isEmpty()||(r+="priority:"+wu(this.getPriority().val())+":"),this.forEachChild(Su,(e,t)=>{var n=t.hash();""!==n&&(r+=":"+e+":"+n)}),this.lazyHash_=""===r?"":Wc(r)}return this.lazyHash_}getPredecessorChildName(e,t,n){const r=this.resolveIndex_(n);if(r){var i=r.getPredecessorKey(new lu(e,t));return i?i.name:null}return this.children_.getPredecessorKey(e)}getFirstChildName(e){const t=this.resolveIndex_(e);if(t){var n=t.minKey();return n&&n.name}return this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new lu(t,this.children_.get(t)):null}getLastChildName(e){const t=this.resolveIndex_(e);if(t){var n=t.maxKey();return n&&n.name}return this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new lu(t,this.children_.get(t)):null}forEachChild(e,t){const n=this.resolveIndex_(e);return n?n.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,n){const e=this.resolveIndex_(n);if(e)return e.getIteratorFrom(t,e=>e);{const r=this.children_.getIteratorFrom(t.name,lu.Wrap);let e=r.peek();for(;null!=e&&n.compare(e,t)<0;)r.getNext(),e=r.peek();return r}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,n){const e=this.resolveIndex_(n);if(e)return e.getReverseIteratorFrom(t,e=>e);{const r=this.children_.getReverseIteratorFrom(t.name,lu.Wrap);let e=r.peek();for(;null!=e&&0<n.compare(e,t);)r.getNext(),e=r.peek();return r}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===Lu?-1:0}withIndex(e){if(e===pu||this.indexMap_.hasIndex(e))return this;var t=this.indexMap_.addIndex(e,this.children_);return new Ou(this.children_,this.priorityNode_,t)}isIndexed(e){return e===pu||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(e.isLeafNode())return!1;{const n=e;if(this.getPriority().equals(n.getPriority())){if(this.children_.count()!==n.children_.count())return!1;{const r=this.getIterator(Su),i=n.getIterator(Su);let e=r.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=r.getNext(),t=i.getNext()}return null===e&&null===t}}return!1}}resolveIndex_(e){return e===pu?null:this.indexMap_.get(e.toString())}}Ou.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class Mu extends Ou{constructor(){super(new mu(yu),Ou.EMPTY_NODE,Du.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return Ou.EMPTY_NODE}isEmpty(){return!1}}const Lu=new Mu;Object.defineProperties(lu,{MIN:{value:new lu(hl,Ou.EMPTY_NODE)},MAX:{value:new lu(dl,Lu)}}),du.__EMPTY_NODE=Ou.EMPTY_NODE,Tu.__childrenNodeConstructor=Ou,Uc=Lu,_u=Uc,qc=Lu,ku=qc;const Fu=!0;function Uu(i,e=null){if(null===i)return Ou.EMPTY_NODE;if("object"==typeof i&&".priority"in i&&(e=i[".priority"]),f(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(i="object"==typeof i&&".value"in i&&null!==i[".value"]?i[".value"]:i)||".sv"in i){var t=i;return new Tu(t,Uu(e))}if(i instanceof Array||!Fu){let r=Ou.EMPTY_NODE;return fl(i,(e,t)=>{if(L(i,e)&&"."!==e.substring(0,1)){const n=Uu(t);!n.isLeafNode()&&n.isEmpty()||(r=r.updateImmediateChild(e,n))}}),r.updatePriority(Uu(e))}{const s=[];let r=!1;if(fl(i,(e,t)=>{if("."!==e.substring(0,1)){const n=Uu(t);n.isEmpty()||(r=r||!n.getPriority().isEmpty(),s.push(new lu(e,n)))}}),0===s.length)return Ou.EMPTY_NODE;var n=Nu(s,vu,e=>e.name,yu);if(r){t=Nu(s,Su.getCompare());return new Ou(n,Uu(e),new Du({".priority":t},{".priority":Su}))}return new Ou(n,Uu(e),Du.Default)}}Eu=Uu;class qu extends uu{constructor(e){super(),this.indexPath_=e,f(!Zl(e)&&".priority"!==zl(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){const n=this.extractChild(e.node);var r=this.extractChild(t.node),r=n.compareTo(r);return 0===r?pl(e.name,t.name):r}makePost(e,t){var n=Uu(e),n=Ou.EMPTY_NODE.updateChild(this.indexPath_,n);return new lu(t,n)}maxPost(){var e=Ou.EMPTY_NODE.updateChild(this.indexPath_,Lu);return new lu(dl,e)}toString(){return Yl(this.indexPath_,0).join("/")}}const Vu=new class extends uu{compare(e,t){var n=e.node.compareTo(t.node);return 0===n?pl(e.name,t.name):n}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return lu.MIN}maxPost(){return lu.MAX}makePost(e,t){var n=Uu(e);return new lu(t,n)}toString(){return".value"}};function Bu(e){return{type:"value",snapshotNode:e}}function ju(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function $u(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Ku(e,t,n){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:n}}class Wu{constructor(e){this.index_=e}updateChild(e,t,n,r,i,s){f(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");const a=e.getImmediateChild(t);return a.getChild(r).equals(n.getChild(r))&&a.isEmpty()===n.isEmpty()?e:(null!=s&&(n.isEmpty()?e.hasChild(t)?s.trackChildChange($u(t,a)):f(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(ju(t,n)):s.trackChildChange(Ku(t,n,a))),e.isLeafNode()&&n.isEmpty()?e:e.updateImmediateChild(t,n).withIndex(this.index_))}updateFullNode(r,n,i){return null!=i&&(r.isLeafNode()||r.forEachChild(Su,(e,t)=>{n.hasChild(e)||i.trackChildChange($u(e,t))}),n.isLeafNode()||n.forEachChild(Su,(e,t)=>{if(r.hasChild(e)){const n=r.getImmediateChild(e);n.equals(t)||i.trackChildChange(Ku(e,t,n))}else i.trackChildChange(ju(e,t))})),n.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?Ou.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class zu{constructor(e){this.indexedFilter_=new Wu(e.getIndex()),this.index_=e.getIndex(),this.startPost_=zu.getStartPost_(e),this.endPost_=zu.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,n=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&n}updateChild(e,t,n,r,i,s){return this.matches(new lu(t,n))||(n=Ou.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,n,r,i,s)}updateFullNode(e,t,n){let r=(t=t.isLeafNode()?Ou.EMPTY_NODE:t).withIndex(this.index_);r=r.updatePriority(Ou.EMPTY_NODE);const i=this;return t.forEachChild(Su,(e,t)=>{i.matches(new lu(e,t))||(r=r.updateImmediateChild(e,Ou.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,r,n)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){var t=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),t)}return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){var t=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),t)}return e.getIndex().maxPost()}}class Gu{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new zu(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,n,r,i,s){return this.rangedFilter_.matches(new lu(t,n))||(n=Ou.EMPTY_NODE),e.getImmediateChild(t).equals(n)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,n,r,i,s):this.fullLimitUpdateChild_(e,t,n,i,s)}updateFullNode(e,n,t){let r;if(n.isLeafNode()||n.isEmpty())r=Ou.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<n.numChildren()&&n.isIndexed(this.index_)){r=Ou.EMPTY_NODE.withIndex(this.index_);let e;e=this.reverse_?n.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):n.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let t=0;for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;r=r.updateImmediateChild(i.name,i.node),t++}}}else{r=n.withIndex(this.index_),r=r.updatePriority(Ou.EMPTY_NODE);let e;e=this.reverse_?r.getReverseIterator(this.index_):r.getIterator(this.index_);let t=0;for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:r=r.updateImmediateChild(s.name,Ou.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,r,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,n,r,i){let s;if(this.reverse_){const d=this.index_.getCompare();s=(e,t)=>d(t,e)}else s=this.index_.getCompare();const a=e;f(a.numChildren()===this.limit_,"");var o=new lu(t,n),c=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),l=this.rangedFilter_.matches(o);if(a.hasChild(t)){var u=a.getImmediateChild(t);let e=r.getChildAfterChild(this.index_,c,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=r.getChildAfterChild(this.index_,e,this.reverse_);var h=null==e?1:s(e,o);if(l&&!n.isEmpty()&&0<=h)return null!=i&&i.trackChildChange(Ku(t,n,u)),a.updateImmediateChild(t,n);{null!=i&&i.trackChildChange($u(t,u));const p=a.updateImmediateChild(t,Ou.EMPTY_NODE);return null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(ju(e.name,e.node)),p.updateImmediateChild(e.name,e.node)):p}}return!n.isEmpty()&&l&&0<=s(c,o)?(null!=i&&(i.trackChildChange($u(c.name,c.node)),i.trackChildChange(ju(t,n))),a.updateImmediateChild(t,n).updateImmediateChild(c.name,Ou.EMPTY_NODE)):e}}class Hu{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=Su}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return f(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return f(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:hl}hasEnd(){return this.endSet_}getIndexEndValue(){return f(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return f(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:dl}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return f(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===Su}copy(){const e=new Hu;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function Qu(e,t,n){const r=e.copy();return r.startSet_=!0,void 0===t&&(t=null),r.indexStartValue_=t,null!=n?(r.startNameSet_=!0,r.indexStartName_=n):(r.startNameSet_=!1,r.indexStartName_=""),r}function Yu(e,t,n){const r=e.copy();return r.endSet_=!0,void 0===t&&(t=null),r.indexEndValue_=t,void 0!==n?(r.endNameSet_=!0,r.indexEndName_=n):(r.endNameSet_=!1,r.indexEndName_=""),r}function Ju(e,t){const n=e.copy();return n.index_=t,n}function Xu(e){const t={};if(e.isDefault())return t;let n;var r;return n=e.index_===Su?"$priority":e.index_===Vu?"$value":e.index_===pu?"$key":(f(e.index_ instanceof qu,"Unrecognized index type!"),e.index_.toString()),t.orderBy=O(n),e.startSet_&&(r=e.startAfterSet_?"startAfter":"startAt",t[r]=O(e.indexStartValue_),e.startNameSet_&&(t[r]+=","+O(e.indexStartName_))),e.endSet_&&(r=e.endBeforeSet_?"endBefore":"endAt",t[r]=O(e.indexEndValue_),e.endNameSet_&&(t[r]+=","+O(e.indexEndName_))),e.limitSet_&&(e.isViewFromLeft()?t.limitToFirst=e.limit_:t.limitToLast=e.limit_),t}function Zu(t){const n={};if(t.startSet_&&(n.sp=t.indexStartValue_,t.startNameSet_&&(n.sn=t.indexStartName_),n.sin=!t.startAfterSet_),t.endSet_&&(n.ep=t.indexEndValue_,t.endNameSet_&&(n.en=t.indexEndName_),n.ein=!t.endBeforeSet_),t.limitSet_){n.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),n.vf=e}return t.index_!==Su&&(n.i=t.index_.toString()),n}class eh extends Bl{constructor(e,t,n,r){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=n,this.appCheckTokenProvider_=r,this.log_=Zc("p:rest:"),this.listens_={}}reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(f(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}listen(e,t,r,i){const s=e._path.toString();this.log_("Listen called for "+s+" "+e._queryIdentifier);const a=eh.getListenId_(e,r),o={};this.listens_[a]=o;var n=Xu(e._queryParams);this.restRequest_(s+".json",n,(t,e)=>{let n=e;if(null===(t=404===t?n=null:t)&&this.onDataUpdate_(s,n,!1,r),F(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var n=eh.getListenId_(e,t);delete this.listens_[n]}get(e){var t=Xu(e._queryParams);const r=e._path.toString(),i=new y;return this.restRequest_(r+".json",t,(e,t)=>{let n=t;null===(e=404===e?n=null:e)?(this.onDataUpdate_(r,n,!1,null),i.resolve(n)):i.reject(new Error(n))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);const n=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+j(s);this.log_("Sending REST request for "+n);const r=new XMLHttpRequest;r.onreadystatechange=()=>{if(a&&4===r.readyState){this.log_("REST Response for "+n+" received. status:",r.status,"response:",r.responseText);let e=null;if(200<=r.status&&r.status<300){try{e=P(r.responseText)}catch(e){cl("Failed to parse JSON response for "+n+": "+r.responseText)}a(null,e)}else 401!==r.status&&404!==r.status&&cl("Got unsuccessful REST response for "+n+" Status: "+r.status),a(r.status);a=null}},r.open("GET",n,!0),r.send()})}}class th{constructor(){this.rootNode_=Ou.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function nh(){return{value:null,children:new Map}}function rh(e,t,n){var r;Zl(t)?(e.value=n,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,n):(r=zl(t),e.children.has(r)||e.children.set(r,nh()),rh(e.children.get(r),t=Hl(t),n))}function ih(e,n,r){var i;null!==e.value?r(n,e.value):(i=(e,t)=>{ih(t,new Kl(n.toString()+"/"+e),r)},e.children.forEach((e,t)=>{i(t,e)}))}class sh{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();const n=Object.assign({},e);return this.last_&&fl(this.last_,(e,t)=>{n[e]=n[e]-t}),this.last_=e,n}}class ah{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new sh(e);var n=1e4+2e4*Math.random();vl(this.reportStats_.bind(this),Math.floor(n))}reportStats_(){var e=this.statsListener_.get();const n={};let r=!1;fl(e,(e,t)=>{0<t&&L(this.statsToReport_,e)&&(n[e]=t,r=!0)}),r&&this.server_.reportStats(n),vl(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function oh(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function ch(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function lh(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(XS=Vc=Vc||{})[XS.OVERWRITE=0]="OVERWRITE",XS[XS.MERGE=1]="MERGE",XS[XS.ACK_USER_WRITE=2]="ACK_USER_WRITE",XS[XS.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class uh{constructor(e,t,n){this.path=e,this.affectedTree=t,this.revert=n,this.type=Vc.ACK_USER_WRITE,this.source=oh()}operationForChild(e){if(Zl(this.path)){if(null!=this.affectedTree.value)return f(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;var t=this.affectedTree.subtree(new Kl(e));return new uh(Wl(),t,this.revert)}return f(zl(this.path)===e,"operationForChild called for unrelated child."),new uh(Hl(this.path),this.affectedTree,this.revert)}}class hh{constructor(e,t){this.source=e,this.path=t,this.type=Vc.LISTEN_COMPLETE}operationForChild(e){return Zl(this.path)?new hh(this.source,Wl()):new hh(this.source,Hl(this.path))}}class dh{constructor(e,t,n){this.source=e,this.path=t,this.snap=n,this.type=Vc.OVERWRITE}operationForChild(e){return Zl(this.path)?new dh(this.source,Wl(),this.snap.getImmediateChild(e)):new dh(this.source,Hl(this.path),this.snap)}}class ph{constructor(e,t,n){this.source=e,this.path=t,this.children=n,this.type=Vc.MERGE}operationForChild(e){if(Zl(this.path)){const t=this.children.subtree(new Kl(e));return t.isEmpty()?null:t.value?new dh(this.source,Wl(),t.value):new ph(this.source,Wl(),t)}return f(zl(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new ph(this.source,Hl(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class fh{constructor(e,t,n){this.node_=e,this.fullyInitialized_=t,this.filtered_=n}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(Zl(e))return this.isFullyInitialized()&&!this.filtered_;var t=zl(e);return this.isCompleteForChild(t)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class gh{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function mh(n,e,t,r){var i=[];const s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&n.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),vh(n,i,"child_removed",e,r,t),vh(n,i,"child_added",e,r,t),vh(n,i,"child_moved",s,r,t),vh(n,i,"child_changed",e,r,t),vh(n,i,"value",e,r,t),i}function vh(s,a,t,e,o,c){const n=e.filter(e=>e.type===t);n.sort((e,t)=>function(e,t,n){if(null==t.childName||null==n.childName)throw u("Should only compare child_ events.");var r=new lu(t.childName,t.snapshotNode),i=new lu(n.childName,n.snapshotNode);return e.index_.compare(r,i)}(s,e,t)),n.forEach(t=>{const n=(e=s,i=c,"value"===(r=t).type||"child_removed"===r.type||(r.prevName=i.getPredecessorChildName(r.childName,r.snapshotNode,e.index_)),r);var e,r,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(n,s.query_))})})}function yh(e,t){return{eventCache:e,serverCache:t}}function _h(e,t,n,r){return yh(new fh(t,n,r),e.serverCache)}function wh(e,t,n,r){return yh(e.eventCache,new fh(t,n,r))}function bh(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Ih(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Th;class Eh{constructor(e,t=(Th=Th||new mu(tl),Th)){this.value=e,this.children=t}static fromObject(e){let n=new Eh(null);return fl(e,(e,t)=>{n=n.set(new Kl(e),t)}),n}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){if(null!=this.value&&t(this.value))return{path:Wl(),value:this.value};if(Zl(e))return null;{var n=zl(e);const i=this.children.get(n);if(null===i)return null;var r=i.findRootMostMatchingPathAndValue(Hl(e),t);return null==r?null:{path:Xl(new Kl(n),r.path),value:r.value}}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){if(Zl(e))return this;{var t=zl(e);const n=this.children.get(t);return null!==n?n.subtree(Hl(e)):new Eh(null)}}set(e,t){if(Zl(e))return new Eh(t,this.children);{var n=zl(e);const i=this.children.get(n)||new Eh(null);var r=i.set(Hl(e),t),r=this.children.insert(n,r);return new Eh(this.value,r)}}remove(t){if(Zl(t))return this.children.isEmpty()?new Eh(null):new Eh(null,this.children);{var n=zl(t);const r=this.children.get(n);if(r){const i=r.remove(Hl(t));let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),null===this.value&&e.isEmpty()?new Eh(null):new Eh(this.value,e)}return this}}get(e){if(Zl(e))return this.value;{var t=zl(e);const n=this.children.get(t);return n?n.get(Hl(e)):null}}setTree(t,n){if(Zl(t))return n;{var r=zl(t);const i=this.children.get(r)||new Eh(null),s=i.setTree(Hl(t),n);let e;return e=s.isEmpty()?this.children.remove(r):this.children.insert(r,s),new Eh(this.value,e)}}fold(e){return this.fold_(Wl(),e)}fold_(n,r){const i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(Xl(n,e),r)}),r(n,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,Wl(),t)}findOnPath_(e,t,n){var r=!!this.value&&n(t,this.value);if(r)return r;if(Zl(e))return null;{r=zl(e);const i=this.children.get(r);return i?i.findOnPath_(Hl(e),Xl(t,r),n):null}}foreachOnPath(e,t){return this.foreachOnPath_(e,Wl(),t)}foreachOnPath_(e,t,n){if(Zl(e))return this;{this.value&&n(t,this.value);var r=zl(e);const i=this.children.get(r);return i?i.foreachOnPath_(Hl(e),Xl(t,r),n):new Eh(null)}}foreach(e){this.foreach_(Wl(),e)}foreach_(n,r){this.children.inorderTraversal((e,t)=>{t.foreach_(Xl(n,e),r)}),this.value&&r(n,this.value)}foreachChild(n){this.children.inorderTraversal((e,t)=>{t.value&&n(e,t.value)})}}class kh{constructor(e){this.writeTree_=e}static empty(){return new kh(new Eh(null))}}function Sh(t,n,r){if(Zl(n))return new kh(new Eh(r));var i=t.writeTree_.findRootMostValueAndPath(n);if(null!=i){var s=i.path;let e=i.value;i=eu(s,n);return e=e.updateChild(i,r),new kh(t.writeTree_.set(s,e))}s=new Eh(r),s=t.writeTree_.setTree(n,s);return new kh(s)}function Ch(e,n,t){let r=e;return fl(t,(e,t)=>{r=Sh(r,Xl(n,e),t)}),r}function Ah(e,t){if(Zl(t))return kh.empty();var n=e.writeTree_.setTree(t,new Eh(null));return new kh(n)}function Nh(e,t){return null!=Rh(e,t)}function Rh(e,t){var n=e.writeTree_.findRootMostValueAndPath(t);return null!=n?e.writeTree_.get(n.path).getChild(eu(n.path,t)):null}function xh(e){const n=[],t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(Su,(e,t)=>{n.push(new lu(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&n.push(new lu(e,t.value))}),n}function Dh(e,t){if(Zl(t))return e;var n=Rh(e,t);return null!=n?new kh(new Eh(n)):new kh(e.writeTree_.subtree(t))}function Ph(e){return e.writeTree_.isEmpty()}function Oh(e,t){return function r(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let n=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(f(null!==t.value,"Priority writes must always be leaf nodes"),n=t.value):s=r(Xl(i,e),t,s)}),s=!s.getChild(i).isEmpty()&&null!==n?s.updateChild(Xl(i,".priority"),n):s}}}(Wl(),e.writeTree_,t)}function Mh(e,t){return Gh(t,e)}function Lh(t,n){var e,r=t.allWrites.findIndex(e=>e.writeId===n);f(0<=r,"removeWrite called with nonexistent writeId.");const i=t.allWrites[r];t.allWrites.splice(r,1);let s=i.visible,a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var c=t.allWrites[o];c.visible&&(o>=r&&function(e,t){{if(e.snap)return ru(e.path,t);for(const n in e.children)if(e.children.hasOwnProperty(n)&&ru(Xl(e.path,n),t))return!0;return!1}}(c,i.path)?s=!1:ru(i.path,c.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Uh(e.allWrites,Fh,Wl()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Ah(t.visibleWrites,i.path):fl(i.children,e=>{t.visibleWrites=Ah(t.visibleWrites,Xl(i.path,e))}),!0)}function Fh(e){return e.visible}function Uh(e,t,n){let r=kh.empty();for(let s=0;s<e.length;++s){const a=e[s];if(t(a)){var i=a.path;let e;if(a.snap)ru(n,i)?(e=eu(n,i),r=Sh(r,e,a.snap)):ru(i,n)&&(e=eu(i,n),r=Sh(r,Wl(),a.snap.getChild(e)));else{if(!a.children)throw u("WriteRecord should have .snap or .children");if(ru(n,i))e=eu(n,i),r=Ch(r,e,a.children);else if(ru(i,n))if(e=eu(i,n),Zl(e))r=Ch(r,Wl(),a.children);else{const o=F(a.children,zl(e));o&&(i=o.getChild(Hl(e)),r=Sh(r,Wl(),i))}}}}return r}function qh(e,t,n,r,i){if(r||i){var s=Dh(e.visibleWrites,t);if(!i&&Ph(s))return n;if(i||null!=n||Nh(s,Wl()))return Oh(Uh(e.allWrites,function(e){return(e.visible||i)&&(!r||!~r.indexOf(e.writeId))&&(ru(e.path,t)||ru(t,e.path))},t),n||Ou.EMPTY_NODE);return null}s=Rh(e.visibleWrites,t);if(null!=s)return s;s=Dh(e.visibleWrites,t);return Ph(s)?n:null!=n||Nh(s,Wl())?Oh(s,n||Ou.EMPTY_NODE):null}function Vh(e,t,n,r){return qh(e.writeTree,e.treePath,t,n,r)}function Bh(e,t){return function(e,t,n){let r=Ou.EMPTY_NODE;const i=Rh(e.visibleWrites,t);if(i)return i.isLeafNode()||i.forEachChild(Su,(e,t)=>{r=r.updateImmediateChild(e,t)}),r;if(n){const s=Dh(e.visibleWrites,t);return n.forEachChild(Su,(e,t)=>{var n=Oh(Dh(s,new Kl(e)),t);r=r.updateImmediateChild(e,n)}),xh(s).forEach(e=>{r=r.updateImmediateChild(e.name,e.node)}),r}return xh(Dh(e.visibleWrites,t)).forEach(e=>{r=r.updateImmediateChild(e.name,e.node)}),r}(e.writeTree,e.treePath,t)}function jh(e,t,n,r){return function(e,t,n,r,i){f(r||i,"Either existingEventSnap or existingServerSnap must exist");var s=Xl(t,n);return Nh(e.visibleWrites,s)?null:Ph(s=Dh(e.visibleWrites,s))?i.getChild(n):Oh(s,i.getChild(n))}(e.writeTree,e.treePath,t,n,r)}function $h(e,t){return n=e.writeTree,t=Xl(e.treePath,t),Rh(n.visibleWrites,t);var n}function Kh(e,t,n,r,i,s){return function(e,t,n,r,i,s,a){let o;var c=Dh(e.visibleWrites,t),l=Rh(c,Wl());if(null!=l)o=l;else{if(null==n)return[];o=Oh(c,n)}if(o=o.withIndex(a),o.isEmpty()||o.isLeafNode())return[];{const u=[],h=a.getCompare(),d=s?o.getReverseIteratorFrom(r,a):o.getIteratorFrom(r,a);let e=d.getNext();for(;e&&u.length<i;)0!==h(e,r)&&u.push(e),e=d.getNext();return u}}(e.writeTree,e.treePath,t,n,r,i,s)}function Wh(e,t,n){return r=e.writeTree,e=e.treePath,n=n,i=Xl(e,t=t),null!=(s=Rh(r.visibleWrites,i))?s:n.isCompleteForChild(t)?Oh(Dh(r.visibleWrites,i),n.getNode().getImmediateChild(t)):null;var r,i,s}function zh(e,t){return Gh(Xl(e.treePath,t),e.writeTree)}function Gh(e,t){return{treePath:e,writeTree:t}}class Hh{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,n=e.childName;f("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),f(".priority"!==n,"Only non-priority child changes can be tracked.");var r=this.changeMap.get(n);if(r){var i=r.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(n,Ku(n,e.snapshotNode,r.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(n);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(n,$u(n,r.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(n,ju(n,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw u("Illegal combination of changes: "+e+" occurred after "+r);this.changeMap.set(n,Ku(n,e.snapshotNode,r.oldSnap))}}else this.changeMap.set(n,e)}getChanges(){return Array.from(this.changeMap.values())}}const Qh=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,n){return null}};class Yh{constructor(e,t,n=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=n}getCompleteChild(e){const t=this.viewCache_.eventCache;if(t.isCompleteForChild(e))return t.getNode().getImmediateChild(e);var n=null!=this.optCompleteServerCache_?new fh(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return Wh(this.writes_,e,n)}getChildAfterChild(e,t,n){var r=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Ih(this.viewCache_),r=Kh(this.writes_,r,t,1,n,e);return 0===r.length?null:r[0]}}function Jh(e,t,n,r,i){const s=new Hh;let a,o;if(n.type===Vc.OVERWRITE){var c=n;a=c.source.fromUser?ed(e,t,c.path,c.snap,r,i,s):(f(c.source.fromServer,"Unknown source."),o=c.source.tagged||t.serverCache.isFiltered()&&!Zl(c.path),Zh(e,t,c.path,c.snap,r,i,o,s))}else if(n.type===Vc.MERGE){c=n;a=c.source.fromUser?function(r,i,s,e,a,o,c){let l=i;return e.foreach((e,t)=>{var n=Xl(s,e);td(i,zl(n))&&(l=ed(r,l,n,t,a,o,c))}),e.foreach((e,t)=>{var n=Xl(s,e);td(i,zl(n))||(l=ed(r,l,n,t,a,o,c))}),l}(e,t,c.path,c.children,r,i,s):(f(c.source.fromServer,"Unknown source."),o=c.source.tagged||t.serverCache.isFiltered(),rd(e,t,c.path,c.children,r,i,o,s))}else if(n.type===Vc.ACK_USER_WRITE){var l=n;a=l.revert?function(n,r,i,s,e,a){let o;{if(null!=$h(s,i))return r;{var c=new Yh(s,r,e);const u=r.eventCache.getNode();let t;if(Zl(i)||".priority"===zl(i)){let e;e=r.serverCache.isFullyInitialized()?Vh(s,Ih(r)):(l=r.serverCache.getNode(),f(l instanceof Ou,"serverChildren would be complete if leaf node"),Bh(s,l)),e=e,t=n.filter.updateFullNode(u,e,a)}else{var l=zl(i);let e=Wh(s,l,r.serverCache);null==e&&r.serverCache.isCompleteForChild(l)&&(e=u.getImmediateChild(l)),t=null!=e?n.filter.updateChild(u,l,e,Hl(i),c,a):r.eventCache.getNode().hasChild(l)?n.filter.updateChild(u,l,Ou.EMPTY_NODE,Hl(i),c,a):u,t.isEmpty()&&r.serverCache.isFullyInitialized()&&(o=Vh(s,Ih(r)),o.isLeafNode()&&(t=n.filter.updateFullNode(t,o,a)))}return o=r.serverCache.isFullyInitialized()||null!=$h(s,Wl()),_h(r,t,o,n.filter.filtersNodes())}}}(e,t,l.path,r,i,s):function(e,t,i,n,s,a,o){if(null!=$h(s,i))return t;const c=t.serverCache.isFiltered(),l=t.serverCache;{if(null!=n.value){if(Zl(i)&&l.isFullyInitialized()||l.isCompleteForPath(i))return Zh(e,t,i,l.getNode().getChild(i),s,a,c,o);if(Zl(i)){let n=new Eh(null);return l.getNode().forEachChild(pu,(e,t)=>{n=n.set(new Kl(e),t)}),rd(e,t,i,n,s,a,c,o)}return t}{let r=new Eh(null);return n.foreach((e,t)=>{var n=Xl(i,e);l.isCompleteForPath(n)&&(r=r.set(e,l.getNode().getChild(n)))}),rd(e,t,i,r,s,a,c,o)}}}(e,t,l.path,l.affectedTree,r,i,s)}else{if(n.type!==Vc.LISTEN_COMPLETE)throw u("Unknown operation type: "+n.type);a=function(e,t,n,r,i){const s=t.serverCache,a=wh(t,s.getNode(),s.isFullyInitialized()||Zl(n),s.isFiltered());return Xh(e,a,n,r,Qh,i)}(e,t,n.path,r,s)}l=s.getChanges();return function(e,t,n){const r=t.eventCache;if(r.isFullyInitialized()){var i=r.getNode().isLeafNode()||r.getNode().isEmpty();const s=bh(e);(0<n.length||!e.eventCache.isFullyInitialized()||i&&!r.getNode().equals(s)||!r.getNode().getPriority().equals(s.getPriority()))&&n.push(Bu(bh(t)))}}(t,a,l),{viewCache:a,changes:l}}function Xh(r,i,s,a,o,c){const l=i.eventCache;if(null!=$h(a,s))return i;{let t,n;if(Zl(s)){var e;f(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(e=Bh(a,(e=Ih(i))instanceof Ou?e:Ou.EMPTY_NODE),r.filter.updateFullNode(i.eventCache.getNode(),e,c)):(u=Vh(a,Ih(i)),r.filter.updateFullNode(i.eventCache.getNode(),u,c))}else{var u=zl(s);if(".priority"===u){f(1===Gl(s),"Can't have a priority with additional path components");var h=l.getNode();n=i.serverCache.getNode();var d=jh(a,s,h,n);t=null!=d?r.filter.updatePriority(h,d):l.getNode()}else{h=Hl(s);let e;e=l.isCompleteForChild(u)?(n=i.serverCache.getNode(),null!=(d=jh(a,s,l.getNode(),n))?l.getNode().getImmediateChild(u).updateChild(h,d):l.getNode().getImmediateChild(u)):Wh(a,u,i.serverCache),t=null!=e?r.filter.updateChild(l.getNode(),u,e,h,o,c):l.getNode()}}return _h(i,t,l.isFullyInitialized()||Zl(s),r.filter.filtersNodes())}}function Zh(e,t,n,r,i,s,a,o){const c=t.serverCache;let l;const u=a?e.filter:e.filter.getIndexedFilter();if(Zl(n))l=u.updateFullNode(c.getNode(),r,null);else if(u.filtersNodes()&&!c.isFiltered()){var h=c.getNode().updateChild(n,r);l=u.updateFullNode(c.getNode(),h,null)}else{var d=zl(n);if(!c.isCompleteForPath(n)&&1<Gl(n))return t;var p=Hl(n);const f=c.getNode().getImmediateChild(d);h=f.updateChild(p,r);l=".priority"===d?u.updatePriority(c.getNode(),h):u.updateChild(c.getNode(),d,h,p,Qh,null)}p=wh(t,l,c.isFullyInitialized()||Zl(n),u.filtersNodes());return Xh(e,p,n,i,new Yh(i,p,s),o)}function ed(t,n,r,i,e,s,a){const o=n.eventCache;let c,l;const u=new Yh(e,n,s);if(Zl(r))l=t.filter.updateFullNode(n.eventCache.getNode(),i,a),c=_h(n,l,!0,t.filter.filtersNodes());else{var h=zl(r);if(".priority"===h)l=t.filter.updatePriority(n.eventCache.getNode(),i),c=_h(n,l,o.isFullyInitialized(),o.isFiltered());else{var d=Hl(r);const p=o.getNode().getImmediateChild(h);let e;if(Zl(d))e=i;else{const f=u.getCompleteChild(h);e=null!=f?".priority"===Ql(d)&&f.getChild(Jl(d)).isEmpty()?f:f.updateChild(d,i):Ou.EMPTY_NODE}c=p.equals(e)?n:_h(n,t.filter.updateChild(o.getNode(),h,e,d,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return c}function td(e,t){return e.eventCache.isCompleteForChild(t)}function nd(e,n,t){return t.foreach((e,t)=>{n=n.updateChild(e,t)}),n}function rd(r,i,e,t,s,a,o,c){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let l=i,n;n=Zl(e)?t:new Eh(null).setTree(e,t);const u=i.serverCache.getNode();return n.children.inorderTraversal((e,t)=>{var n;u.hasChild(e)&&(n=nd(0,i.serverCache.getNode().getImmediateChild(e),t),l=Zh(r,l,new Kl(e),n,s,a,o,c))}),n.children.inorderTraversal((e,t)=>{var n=!i.serverCache.isCompleteForChild(e)&&null===t.value;u.hasChild(e)||n||(n=nd(0,i.serverCache.getNode().getImmediateChild(e),t),l=Zh(r,l,new Kl(e),n,s,a,o,c))}),l}class id{constructor(e,t){this.query_=e,this.eventRegistrations_=[];const n=this.query_._queryParams,r=new Wu(n.getIndex()),i=(e=n).loadsAllData()?new Wu(e.getIndex()):new(e.hasLimit()?Gu:zu)(e);this.processor_={filter:i};const s=t.serverCache,a=t.eventCache;var o=r.updateFullNode(Ou.EMPTY_NODE,s.getNode(),null),c=i.updateFullNode(Ou.EMPTY_NODE,a.getNode(),null),o=new fh(o,s.isFullyInitialized(),r.filtersNodes()),c=new fh(c,a.isFullyInitialized(),i.filtersNodes());this.viewCache_=yh(c,o),this.eventGenerator_=new gh(this.query_)}get query(){return this.query_}}function sd(e){return 0===e.eventRegistrations_.length}function ad(n,r,i){const s=[];if(i){f(null==r,"A cancel should cancel all event registrations.");const a=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(i,a);t&&s.push(t)})}if(r){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){const o=n.eventRegistrations_[t];if(o.matches(r)){if(r.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(o)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return s}function od(e,t,n,r){t.type===Vc.MERGE&&null!==t.source.queryId&&(f(Ih(e.viewCache_),"We should always have a full cache before handling merges"),f(bh(e.viewCache_),"Missing event cache, even though we have a server cache"));const i=e.viewCache_,s=Jh(e.processor_,i,t,n,r);return n=e.processor_,r=s.viewCache,f(r.eventCache.getNode().isIndexed(n.filter.getIndex()),"Event snap not indexed"),f(r.serverCache.getNode().isIndexed(n.filter.getIndex()),"Server snap not indexed"),f(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,cd(e,s.changes,s.viewCache.eventCache.getNode(),null)}function cd(e,t,n,r){var i=r?[r]:e.eventRegistrations_;return mh(e.eventGenerator_,t,n,i)}let ld;class ud{constructor(){this.views=new Map}}function hd(t,n,r,i){var e=n.source.queryId;if(null!==e){e=t.views.get(e);return f(null!=e,"SyncTree gave us an op for an invalid query."),od(e,n,r,i)}{let e=[];for(const s of t.views.values())e=e.concat(od(s,n,r,i));return e}}function dd(e,n,r,i,s){var a=n._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=Vh(r,s?i:null),t=!1;t=!!e||(e=i instanceof Ou?Bh(r,i):Ou.EMPTY_NODE,!1);a=yh(new fh(e,t,!1),new fh(i,s,!1));return new id(n,a)}}function pd(e,t,n,r,i,s){var a=dd(e,t,r,i,s);return e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n),function(e,t){const n=e.viewCache_.eventCache,r=[];if(!n.getNode().isLeafNode()){const i=n.getNode();i.forEachChild(Su,(e,t)=>{r.push(ju(e,t))})}return n.isFullyInitialized()&&r.push(Bu(n.getNode())),cd(e,r,n.getNode(),t)}(a,n)}function fd(e,t,n,r){var i=t._queryIdentifier;const s=[];let a=[];var o=_d(e);if("default"===i)for(var[c,l]of e.views.entries())a=a.concat(ad(l,n,r)),sd(l)&&(e.views.delete(c),l.query._queryParams.loadsAllData()||s.push(l.query));else{const u=e.views.get(i);u&&(a=a.concat(ad(u,n,r)),sd(u)&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query)))}return o&&!_d(e)&&s.push((f(ld,"Reference.ts has not been loaded"),new ld(t._repo,t._path))),{removed:s,events:a}}function gd(e){const t=[];for(const n of e.views.values())n.query._queryParams.loadsAllData()||t.push(n);return t}function md(e,t){let n=null;for(const r of e.views.values())n=n||function(e,t){const n=Ih(e.viewCache_);return n&&(e.query._queryParams.loadsAllData()||!Zl(t)&&!n.getImmediateChild(zl(t)).isEmpty())?n.getChild(t):null}(r,t);return n}function vd(e,t){const n=t._queryParams;if(n.loadsAllData())return wd(e);var r=t._queryIdentifier;return e.views.get(r)}function yd(e,t){return null!=vd(e,t)}function _d(e){return null!=wd(e)}function wd(e){for(const t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let bd;let Id=1;class Td{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Eh(null),this.pendingWriteTree_={visibleWrites:kh.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Ed(e,t,n,r,i){var s,a,o,c;return s=e.pendingWriteTree_,a=t,o=n,c=r,r=i,f(c>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:c,visible:r=void 0===r?!0:r}),r&&(s.visibleWrites=Sh(s.visibleWrites,a,o)),s.lastWriteId=c,i?Pd(e,new dh(oh(),t,n)):[]}function kd(e,t,n,r){var i,s,a;i=e.pendingWriteTree_,s=t,a=n,r=r,f(r>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:r,visible:!0}),i.visibleWrites=Ch(i.visibleWrites,s,a),i.lastWriteId=r;var o=Eh.fromObject(n);return Pd(e,new ph(oh(),t,o))}function Sd(e,t,n=!1){var r=function(e,t){for(let r=0;r<e.allWrites.length;r++){var n=e.allWrites[r];if(n.writeId===t)return n}return null}(e.pendingWriteTree_,t);if(Lh(e.pendingWriteTree_,t)){let t=new Eh(null);return null!=r.snap?t=t.set(Wl(),!0):fl(r.children,e=>{t=t.set(new Kl(e),!0)}),Pd(e,new uh(r.path,t,n))}return[]}function Cd(e,t,n){return Pd(e,new dh(ch(),t,n))}function Ad(n,e,t,r,i=!1){var s=e._path,a=n.syncPointTree_.get(s);let o=[];if(a&&("default"===e._queryIdentifier||yd(a,e))){var c=fd(a,e,t,r);0===a.views.size&&(n.syncPointTree_=n.syncPointTree_.remove(s));const d=c.removed;if(o=c.events,!i){a=-1!==d.findIndex(e=>e._queryParams.loadsAllData()),c=n.syncPointTree_.findOnPath(s,(e,t)=>_d(t));if(a&&!c){const p=n.syncPointTree_.subtree(s);if(!p.isEmpty()){var l=p.fold((e,t,r)=>{if(t&&_d(t))return[wd(t)];{let n=[];return t&&(n=gd(t)),fl(r,(e,t)=>{n=n.concat(t)}),n}});for(let e=0;e<l.length;++e){var u=l[e],h=u.query,u=Md(n,u);n.listenProvider_.startListening(Bd(h),Ld(n,h),u.hashFn,u.onComplete)}}}!c&&0<d.length&&!r&&(a?n.listenProvider_.stopListening(Bd(e),null):d.forEach(e=>{var t=n.queryToTagMap.get(Fd(e));n.listenProvider_.stopListening(Bd(e),t)}))}!function(e,t){for(let i=0;i<t.length;++i){const s=t[i];var n,r;s._queryParams.loadsAllData()||(n=Fd(s),r=e.queryToTagMap.get(n),e.queryToTagMap.delete(n),e.tagToQueryMap.delete(r))}}(n,d)}return o}function Nd(e,t,n,r){var i=Ud(e,r);if(null==i)return[];var s=qd(i),a=s.path,i=s.queryId,s=eu(a,t);return Vd(e,a,new dh(lh(i),s,n))}function Rd(e,t,n,r=!1){const i=t._path;let s=null,a=!1;e.syncPointTree_.foreachOnPath(i,(e,t)=>{var n=eu(e,i);s=s||md(t,n),a=a||_d(t)});let o=e.syncPointTree_.get(i);o?(a=a||_d(o),s=s||md(o,Wl())):(o=new ud,e.syncPointTree_=e.syncPointTree_.set(i,o));let c;if(null!=s)c=!0;else{c=!1,s=Ou.EMPTY_NODE;const p=e.syncPointTree_.subtree(i);p.foreachChild((e,t)=>{var n=md(t,Wl());n&&(s=s.updateImmediateChild(e,n))})}var l,u=yd(o,t);u||t._queryParams.loadsAllData()||(h=Fd(t),f(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),l=Id++,e.queryToTagMap.set(h,l),e.tagToQueryMap.set(l,h));var h=Mh(e.pendingWriteTree_,i);let d=pd(o,t,n,h,s,c);return u||a||r||(u=vd(o,t),d=d.concat(function(t,e,n){const r=e._path,i=Ld(t,e),s=Md(t,n),a=t.listenProvider_.startListening(Bd(e),i,s.hashFn,s.onComplete),o=t.syncPointTree_.subtree(r);if(i)f(!_d(o.value),"If we're adding a query, it shouldn't be shadowed");else{var c=o.fold((e,t,r)=>{if(!Zl(e)&&t&&_d(t))return[wd(t).query];{let n=[];return t&&(n=n.concat(gd(t).map(e=>e.query))),fl(r,(e,t)=>{n=n.concat(t)}),n}});for(let e=0;e<c.length;++e){var l=c[e];t.listenProvider_.stopListening(Bd(l),Ld(t,l))}}return a}(e,t,u))),d}function xd(e,r,t){var n=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(r,(e,t)=>{var n=md(t,eu(e,r));if(n)return n});return qh(n,r,i,t,!0)}function Dd(e,t){const r=t._path;let i=null;e.syncPointTree_.foreachOnPath(r,(e,t)=>{var n=eu(e,r);i=i||md(t,n)});let n=e.syncPointTree_.get(r);n?i=i||md(n,Wl()):(n=new ud,e.syncPointTree_=e.syncPointTree_.set(r,n));var s=null!=i;const a=s?new fh(i,!0,!1):null;var o=Mh(e.pendingWriteTree_,t._path);return bh(dd(n,t,o,s?a.getNode():Ou.EMPTY_NODE,s).viewCache_)}function Pd(e,t){return function t(n,r,i,s){{if(Zl(n.path))return Od(n,r,i,s);{const a=r.get(Wl());null==i&&null!=a&&(i=md(a,Wl()));let e=[];const o=zl(n.path),c=n.operationForChild(o),l=r.children.get(o);if(l&&c){const u=i?i.getImmediateChild(o):null,h=zh(s,o);e=e.concat(t(c,l,u,h))}return a&&(e=e.concat(hd(a,n,s,i))),e}}}(t,e.syncPointTree_,null,Mh(e.pendingWriteTree_,Wl()))}function Od(s,e,a,o){var t=e.get(Wl());null==a&&null!=t&&(a=md(t,Wl()));let c=[];return e.children.inorderTraversal((e,t)=>{var n=a?a.getImmediateChild(e):null,r=zh(o,e),i=s.operationForChild(e);i&&(c=c.concat(Od(i,t,n,r)))}),t&&(c=c.concat(hd(t,s,o,a))),c}function Md(i,t){const s=t.query,a=Ld(i,s);return{hashFn:()=>{const e=t.viewCache_.serverCache.getNode()||Ou.EMPTY_NODE;return e.hash()},onComplete:e=>{if("ok"===e)return a?function(e,t,n){if(s=Ud(e,n)){var r=qd(s),i=r.path,s=r.queryId,r=eu(i,t);return Vd(e,i,new hh(lh(s),r))}return[]}(i,s._path,a):(t=i,n=s._path,Pd(t,new hh(ch(),n)));var t,n,r=function(e,t){let n="Unknown Error";"too_big"===e?n="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?n="Client doesn't have permission to access the desired data.":"unavailable"===e&&(n="The service is unavailable");const r=new Error(e+" at "+t._path.toString()+": "+n);return r.code=e.toUpperCase(),r}(e,s);return Ad(i,s,null,r)}}}function Ld(e,t){var n=Fd(t);return e.queryToTagMap.get(n)}function Fd(e){return e._path.toString()+"$"+e._queryIdentifier}function Ud(e,t){return e.tagToQueryMap.get(t)}function qd(e){var t=e.indexOf("$");return f(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new Kl(e.substr(0,t))}}function Vd(e,t,n){var r=e.syncPointTree_.get(t);return f(r,"Missing sync point for query tag that we're tracking"),hd(r,n,Mh(e.pendingWriteTree_,t),null)}function Bd(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(f(bd,"Reference.ts has not been loaded"),new bd(e._repo,e._path)):e}class jd{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new jd(t)}node(){return this.node_}}class $d{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=Xl(this.path_,e);return new $d(this.syncTree_,t)}node(){return xd(this.syncTree_,this.path_)}}function Kd(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e}function Wd(e,t,n){return e&&"object"==typeof e?(f(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?zd(e[".sv"],t,n):"object"==typeof e[".sv"]?Gd(e[".sv"],t):void f(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e}const zd=function(e,t,n){if("timestamp"===e)return n.timestamp;f(!1,"Unexpected server value: "+e)},Gd=function(e,t,n){e.hasOwnProperty("increment")||f(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var r=e.increment;"number"!=typeof r&&f(!1,"Unexpected increment value: "+r);const i=t.node();if(f(null!==i&&void 0!==i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode())return r;const s=i;var a=s.getValue();return"number"!=typeof a?r:a+r},Hd=function(e,t,n,r){return Yd(t,new $d(n,e),r)},Qd=function(e,t,n){return Yd(e,new jd(t),n)};function Yd(e,r,i){var t=e.getPriority().val(),n=Wd(t,r.getImmediateChild(".priority"),i);let s;if(e.isLeafNode()){const a=e;t=Wd(a.getValue(),r,i);return t!==a.getValue()||n!==a.getPriority().val()?new Tu(t,Uu(n)):e}{const o=e;return s=o,n!==o.getPriority().val()&&(s=s.updatePriority(new Tu(n))),o.forEachChild(Su,(e,t)=>{var n=Yd(t,r.getImmediateChild(e),i);n!==t&&(s=s.updateImmediateChild(e,n))}),s}}class Jd{constructor(e="",t=null,n={children:{},childCount:0}){this.name=e,this.parent=t,this.node=n}}function Xd(e,t){let n=t instanceof Kl?t:new Kl(t),r=e,i=zl(n);for(;null!==i;){var s=F(r.node.children,i)||{children:{},childCount:0};r=new Jd(i,r,s),n=Hl(n),i=zl(n)}return r}function Zd(e){return e.node.value}function ep(e,t){e.node.value=t,ip(e)}function tp(e){return 0<e.node.childCount}function np(n,r){fl(n.node.children,(e,t)=>{r(new Jd(e,n,t))})}function rp(e){return new Kl(null===e.parent?e.name:rp(e.parent)+"/"+e.name)}function ip(e){var t,n,r,i;null!==e.parent&&(t=e.parent,n=e.name,r=function(e){return void 0===Zd(e)&&!tp(e)}(e=e),i=L(t.node.children,n),r&&i?(delete t.node.children[n],t.node.childCount--,ip(t)):r||i||(t.node.children[n]=e.node,t.node.childCount++,ip(t)))}function sp(e,t,n,r){r&&void 0===t||yp(Y(e,"value"),t,n)}function ap(e,t,r,n){if(!n||void 0!==t){const i=Y(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(i+" must be an object containing the children to replace.");const s=[];fl(t,(e,t)=>{const n=new Kl(e);if(yp(i,t,Xl(r,n)),".priority"===Ql(n)&&!vp(t))throw new Error(i+"contains an invalid value for '"+n.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");s.push(n)}),function(t,n){let r,i;for(r=0;r<n.length;r++){i=n[r];var s=Yl(i);for(let e=0;e<s.length;e++)if((".priority"!==s[e]||e!==s.length-1)&&!fp(s[e]))throw new Error(t+"contains an invalid key ("+s[e]+") in path "+i.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}n.sort(tu);let e=null;for(r=0;r<n.length;r++){if(i=n[r],null!==e&&ru(e,i))throw new Error(t+"contains a path "+e.toString()+" that is ancestor of another path "+i.toString());e=i}}(i,s)}}function op(e,t,n){if(!n||void 0!==t){if(ul(t))throw new Error(Y(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!vp(t))throw new Error(Y(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function cp(e,t,n,r){if(!(r&&void 0===n||fp(n)))throw new Error(Y(e,t)+'was an invalid key = "'+n+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function lp(e,t,n,r){n=n&&n.replace(/^\/*\.info(\/|$)/,"/"),_p(e,t,n,r)}function up(e,t){if(".info"===zl(t))throw new Error(e+" failed = Can't modify data under /.info/")}const hp=/[\[\].#$\/\u0000-\u001F\u007F]/,dp=/[\[\].#$\u0000-\u001F\u007F]/,pp=10485760,fp=function(e){return"string"==typeof e&&0!==e.length&&!hp.test(e)},gp=function(e){return"string"==typeof e&&0!==e.length&&!dp.test(e)},mp=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),gp(e)},vp=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!ul(e)||e&&"object"==typeof e&&L(e,".sv")},yp=function(a,e,t){const o=t instanceof Kl?new iu(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+au(o));if("function"==typeof e)throw new Error(a+"contains a function "+au(o)+" with contents = "+e.toString());if(ul(e))throw new Error(a+"contains "+e.toString()+" "+au(o));if("string"==typeof e&&e.length>pp/3&&ee(e)>pp)throw new Error(a+"contains a string greater than "+pp+" utf8 bytes "+au(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(fl(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!fp(e)))throw new Error(a+" contains an invalid key ("+e+") "+au(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var n,r;n=o,e=e,0<n.parts_.length&&(n.byteLength_+=1),n.parts_.push(e),n.byteLength_+=ee(e),su(n),yp(a,t,o),t=o,r=t.parts_.pop(),t.byteLength_-=ee(r),0<t.parts_.length&&--t.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+au(o)+" in addition to actual children.")}},_p=function(e,t,n,r){if(!(r&&void 0===n||gp(n)))throw new Error(Y(e,t)+'was an invalid path = "'+n+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},wp=function(e,t){var n=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!fp(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==n.length&&!mp(n))throw new Error(Y(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class bp{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Ip(e,t){let n=null;for(let i=0;i<t.length;i++){const s=t[i];var r=s.getPath();null===n||nu(r,n.path)||(e.eventLists_.push(n),n=null),null===n&&(n={events:[],path:r}),n.events.push(s)}n&&e.eventLists_.push(n)}function Tp(e,t,n){Ip(e,n),kp(e,e=>nu(e,t))}function Ep(e,t,n){Ip(e,n),kp(e,e=>ru(e,t)||ru(t,e))}function kp(e,t){e.recursionDepth_++;let n=!0;for(let i=0;i<e.eventLists_.length;i++){var r=e.eventLists_[i];r&&(t(r.path)?(function(e){for(let n=0;n<e.events.length;n++){const r=e.events[n];var t;null!==r&&(e.events[n]=null,t=r.getEventRunner(),Jc&&al("event: "+r.toString()),bl(t))}}(e.eventLists_[i]),e.eventLists_[i]=null):n=!1)}n&&(e.eventLists_=[]),e.recursionDepth_--}const Sp="repo_interrupt",Cp=25;class Ap{constructor(e,t,n,r){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=n,this.appCheckProvider_=r,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new bp,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=nh(),this.transactionQueueTree_=new Jd,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Np(a,e,t){if(a.stats_=Pl(a.repoInfo_),a.forceRestClient_||function(){const e="object"==typeof window&&window.navigator&&window.navigator.userAgent||"";return 0<=e.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)}())a.server_=new eh(a.repoInfo_,(e,t,n,r)=>{Dp(a,e,t,n,r)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>Pp(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{O(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new cu(a.repoInfo_,e,(e,t,n,r)=>{Dp(a,e,t,n,r)},e=>{Pp(a,e)},e=>{var n;n=a,fl(e,(e,t)=>{Op(n,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var n;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=a.repoInfo_,t=()=>new ah(a.stats_,a.server_),n=e.toString(),Dl[n]||(Dl[n]=t()),Dl[n]),a.infoData_=new th,a.infoSyncTree_=new Td({startListening:(e,t,n,r)=>{let i=[];const s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Cd(a.infoSyncTree_,e._path,s),setTimeout(()=>{r("ok")},0)),i},stopListening:()=>{}}),Op(a,"connected",!1),a.serverSyncTree_=new Td({startListening:(r,e,t,i)=>(a.server_.listen(r,t,e,(e,t)=>{var n=i(e,t);Ep(a.eventQueue_,r._path,n)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Rp(e){const t=e.infoData_.getNode(new Kl(".info/serverTimeOffset"));var n=t.val()||0;return(new Date).getTime()+n}function xp(e){return Kd({timestamp:Rp(e)})}function Dp(e,t,n,r,i){e.dataUpdateCount++;var s,a,o=new Kl(t);n=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,n):n;let c=[];c=i?r?(s=q(n,e=>Uu(e)),function(e,t,n,r){if(o=Ud(e,r)){var i=qd(o),s=i.path,a=i.queryId,o=eu(s,t),i=Eh.fromObject(n);return Vd(e,s,new ph(lh(a),o,i))}return[]}(e.serverSyncTree_,o,s,i)):(s=Uu(n),Nd(e.serverSyncTree_,o,s,i)):r?(a=q(n,e=>Uu(e)),t=e.serverSyncTree_,i=o,r=a,a=Eh.fromObject(r),Pd(t,new ph(ch(),i,a))):(a=Uu(n),Cd(e.serverSyncTree_,o,a));let l=o;0<c.length&&(l=Wp(e,o)),Ep(e.eventQueue_,l,c)}function Pp(e,t){Op(e,"connected",t),!1===t&&function(r){Bp(r,"onDisconnectEvents");const i=xp(r),s=nh();ih(r.onDisconnect_,Wl(),(e,t)=>{var n=Hd(e,t,r.serverSyncTree_,i);rh(s,e,n)});let a=[];ih(s,Wl(),(e,t)=>{a=a.concat(Cd(r.serverSyncTree_,e,t));var n=Qp(r,e);Wp(r,n)}),r.onDisconnect_=nh(),Ep(r.eventQueue_,Wl(),a)}(e)}function Op(e,t,n){var r=new Kl("/.info/"+t),i=Uu(n);e.infoData_.updateSnapshot(r,i);i=Cd(e.infoSyncTree_,r,i);Ep(e.eventQueue_,r,i)}function Mp(e){return e.nextWriteId_++}function Lp(r,i,e,t,s){Bp(r,"set",{path:i.toString(),value:e,priority:t});var n=xp(r);const a=Uu(e,t);var o=xd(r.serverSyncTree_,i),n=Qd(a,o,n);const c=Mp(r);n=Ed(r.serverSyncTree_,i,n,c,!0);Ip(r.eventQueue_,n),r.server_.put(i.toString(),a.val(!0),(e,t)=>{var n="ok"===e;n||cl("set at "+i+" failed: "+e);n=Sd(r.serverSyncTree_,c,!n);Ep(r.eventQueue_,i,n),jp(0,s,e,t)});n=Qp(r,i);Wp(r,n),Ep(r.eventQueue_,n,[])}function Fp(n,r,i){n.server_.onDisconnectCancel(r.toString(),(e,t)=>{"ok"===e&&!function e(n,t){if(Zl(t))return n.value=null,n.children.clear(),!0;if(null!==n.value){if(n.value.isLeafNode())return!1;{const i=n.value;return n.value=null,i.forEachChild(Su,(e,t)=>{rh(n,new Kl(e),t)}),e(n,t)}}if(0<n.children.size){var r=zl(t);return t=Hl(t),n.children.has(r)&&e(n.children.get(r),t)&&n.children.delete(r),0===n.children.size}return!0}(n.onDisconnect_,r),jp(0,i,e,t)})}function Up(n,r,e,i){const s=Uu(e);n.server_.onDisconnectPut(r.toString(),s.val(!0),(e,t)=>{"ok"===e&&rh(n.onDisconnect_,r,s),jp(0,i,e,t)})}function qp(e,t,n){let r;r=".info"===zl(t._path)?Ad(e.infoSyncTree_,t,n):Ad(e.serverSyncTree_,t,n),Tp(e.eventQueue_,t._path,r)}function Vp(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Sp)}function Bp(e,...t){let n="";e.persistentConnection_&&(n=e.persistentConnection_.id+":"),al(n,...t)}function jp(e,r,i,s){r&&bl(()=>{if("ok"===i)r(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);const n=new Error(e);n.code=t,r(n)}})}function $p(e,t,n){return xd(e.serverSyncTree_,t,n)||Ou.EMPTY_NODE}function Kp(t,e=t.transactionQueueTree_){if(e||Hp(t,e),Zd(e)){const n=Gp(t,e);f(0<n.length,"Sending zero length transaction queue"),n.every(e=>0===e.status)&&function(i,s,a){const e=a.map(e=>e.currentWriteId),t=$p(i,s,e);let n=t;var r=t.hash();for(let u=0;u<a.length;u++){const h=a[u];f(0===h.status,"tryToSendTransactionQueue_: items in queue should all be run."),h.status=1,h.retryCount++;var o=eu(s,h.path);n=n.updateChild(o,h.currentOutputSnapshotRaw)}const c=n.val(!0),l=s;i.server_.put(l.toString(),c,t=>{Bp(i,"transaction put response",{path:l.toString(),status:t});let n=[];if("ok"===t){const r=[];for(let e=0;e<a.length;e++)a[e].status=2,n=n.concat(Sd(i.serverSyncTree_,a[e].currentWriteId)),a[e].onComplete&&r.push(()=>a[e].onComplete(null,!0,a[e].currentOutputSnapshotResolved)),a[e].unwatcher();Hp(i,Xd(i.transactionQueueTree_,s)),Kp(i,i.transactionQueueTree_),Ep(i.eventQueue_,s,n);for(let t=0;t<r.length;t++)bl(r[t])}else{if("datastale"===t)for(let e=0;e<a.length;e++)3===a[e].status?a[e].status=4:a[e].status=0;else{cl("transaction at "+l.toString()+" failed: "+t);for(let e=0;e<a.length;e++)a[e].status=4,a[e].abortReason=t}Wp(i,s)}},r)}(t,rp(e),n)}else tp(e)&&np(e,e=>{Kp(t,e)})}function Wp(e,t){var n=zp(e,t),r=rp(n);return function(i,s,a){if(0!==s.length){const l=[];let n=[];const t=s.filter(e=>0===e.status),u=t.map(e=>e.currentWriteId);for(let r=0;r<s.length;r++){const h=s[r];var o=eu(a,h.path);let e=!1,t;if(f(null!==o,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,n=n.concat(Sd(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Cp)e=!0,t="maxretry",n=n.concat(Sd(i.serverSyncTree_,h.currentWriteId,!0));else{const d=$p(i,h.path,u);h.currentInputSnapshot=d;var c=s[r].update(d.val());if(void 0!==c){yp("transaction failed: Data returned ",c,h.path);let e=Uu(c);"object"==typeof c&&null!=c&&L(c,".priority")||(e=e.updatePriority(d.getPriority()));o=h.currentWriteId,c=xp(i),c=Qd(e,d,c);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=c,h.currentWriteId=Mp(i),u.splice(u.indexOf(o),1),n=n.concat(Ed(i.serverSyncTree_,h.path,c,h.currentWriteId,h.applyLocally)),n=n.concat(Sd(i.serverSyncTree_,o,!0))}else e=!0,t="nodata",n=n.concat(Sd(i.serverSyncTree_,h.currentWriteId,!0))}Ep(i.eventQueue_,a,n),n=[],e&&(s[r].status=2,function(e){setTimeout(e,Math.floor(0))}(s[r].unwatcher),s[r].onComplete&&("nodata"===t?l.push(()=>s[r].onComplete(null,!1,s[r].currentInputSnapshot)):l.push(()=>s[r].onComplete(new Error(t),!1,null))))}Hp(i,i.transactionQueueTree_);for(let e=0;e<l.length;e++)bl(l[e]);Kp(i,i.transactionQueueTree_)}}(e,Gp(e,n),r),r}function zp(e,t){let n,r=e.transactionQueueTree_;for(n=zl(t);null!==n&&void 0===Zd(r);)r=Xd(r,n),t=Hl(t),n=zl(t);return r}function Gp(e,t){const n=[];return function t(n,e,r){const i=Zd(e);if(i)for(let e=0;e<i.length;e++)r.push(i[e]);np(e,e=>{t(n,e,r)})}(e,t,n),n.sort((e,t)=>e.order-t.order),n}function Hp(t,n){const r=Zd(n);if(r){let e=0;for(let t=0;t<r.length;t++)2!==r[t].status&&(r[e]=r[t],e++);r.length=e,ep(n,0<r.length?r:void 0)}np(n,e=>{Hp(t,e)})}function Qp(t,e){var n=rp(zp(t,e)),r=Xd(t.transactionQueueTree_,e);return function(e,t,n){let r=n?e:e.parent;for(;null!==r;){if(t(r))return;r=r.parent}}(r,e=>{Yp(t,e)}),Yp(t,r),function t(e,n,r,i){r&&!i&&n(e),np(e,e=>{t(e,n,!0,i)}),r&&i&&n(e)}(r,e=>{Yp(t,e)}),n}function Yp(i,s){const a=Zd(s);if(a){const o=[];let e=[],t=-1;for(let n=0;n<a.length;n++)3===a[n].status||(1===a[n].status?(f(t===n-1,"All SENT items should be at beginning of queue."),t=n,a[n].status=3,a[n].abortReason="set"):(f(0===a[n].status,"Unexpected transaction status in abort"),a[n].unwatcher(),e=e.concat(Sd(i.serverSyncTree_,a[n].currentWriteId,!0)),a[n].onComplete&&o.push(a[n].onComplete.bind(null,new Error("set"),!1,null))));-1===t?ep(s,void 0):a.length=t+1,Ep(i.eventQueue_,rp(s),e);for(let r=0;r<o.length;r++)bl(o[r])}}const Jp=function(e,t){var n=Xp(e),r=n.namespace;"firebase.com"===n.domain&&ol(n.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),r&&"undefined"!==r||"localhost"===n.domain||ol("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),n.secure||ll();var i="ws"===n.scheme||"wss"===n.scheme;return{repoInfo:new Al(n.host,n.secure,r,i,t,"",r!==n.subdomain),path:new Kl(n.pathString)}},Xp=function(r){let i="",s="",a="",o="",c="",l=!0,u="https",h=443;if("string"==typeof r){let e=r.indexOf("//");0<=e&&(u=r.substring(0,e-1),r=r.substring(e+2));let t=r.indexOf("/");-1===t&&(t=r.length);let n=r.indexOf("?");-1===n&&(n=r.length),i=r.substring(0,Math.min(t,n)),t<n&&(o=function(e){let t="";var n=e.split("/");for(let r=0;r<n.length;r++)if(0<n[r].length){let e=n[r];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t}(r.substring(t,n)));var d,p=function(e){const t={};for(const r of(e="?"===e.charAt(0)?e.substring(1):e).split("&")){var n;0!==r.length&&(2===(n=r.split("=")).length?t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]):cl(`Invalid query segment '${r}' in query '${e}'`))}return t}(r.substring(Math.min(r.length,n)));e=i.indexOf(":"),0<=e?(l="https"===u||"wss"===u,h=parseInt(i.substring(e+1),10)):e=i.length;const f=i.slice(0,e);"localhost"===f.toLowerCase()?s="localhost":f.split(".").length<=2?s=f:(d=i.indexOf("."),a=i.substring(0,d).toLowerCase(),s=i.substring(d+1),c=a),"ns"in p&&(c=p.ns)}return{host:i,port:h,domain:s,subdomain:a,secure:l,scheme:u,pathString:o,namespace:c}},Zp="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",ef=function(){let s=0;const a=[];return function(e){var t=e===s;s=e;let n;const r=new Array(8);for(n=7;0<=n;n--)r[n]=Zp.charAt(e%64),e=Math.floor(e/64);f(0===e,"Cannot push at time == 0");let i=r.join("");if(t){for(n=11;0<=n&&63===a[n];n--)a[n]=0;a[n]++}else for(n=0;n<12;n++)a[n]=Math.floor(64*Math.random());for(n=0;n<12;n++)i+=Zp.charAt(a[n]);return f(20===i.length,"nextPushId: Length should be 20."),i}}();class tf{constructor(e,t,n,r){this.eventType=e,this.eventRegistration=t,this.snapshot=n,this.prevName=r}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+O(this.snapshot.exportVal())}}class nf{constructor(e,t,n){this.eventRegistration=e,this.error=t,this.path=n}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class rf{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return f(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class sf{constructor(e,t){this._repo=e,this._path=t}cancel(){const e=new y;return Fp(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){up("OnDisconnect.remove",this._path);const e=new y;return Up(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){up("OnDisconnect.set",this._path),sp("OnDisconnect.set",e,this._path,!1);const t=new y;return Up(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){up("OnDisconnect.setWithPriority",this._path),sp("OnDisconnect.setWithPriority",e,this._path,!1),op("OnDisconnect.setWithPriority",t,!1);const n=new y;return function(n,r,e,t,i){const s=Uu(e,t);n.server_.onDisconnectPut(r.toString(),s.val(!0),(e,t)=>{"ok"===e&&rh(n.onDisconnect_,r,s),jp(0,i,e,t)})}(this._repo,this._path,e,t,n.wrapCallback(()=>{})),n.promise}update(e){up("OnDisconnect.update",this._path),ap("OnDisconnect.update",e,this._path,!1);const t=new y;return function(r,i,n,s){if(U(n))return al("onDisconnect().update() called with empty data. Don't do anything."),jp(0,s,"ok",void 0);r.server_.onDisconnectMerge(i.toString(),n,(e,t)=>{"ok"===e&&fl(n,(e,t)=>{var n=Uu(t);rh(r.onDisconnect_,Xl(i,e),n)}),jp(0,s,e,t)})}(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}}class af{constructor(e,t,n,r){this._repo=e,this._path=t,this._queryParams=n,this._orderByCalled=r}get key(){return Zl(this._path)?null:Ql(this._path)}get ref(){return new uf(this._repo,this._path)}get _queryIdentifier(){var e=Zu(this._queryParams),e=rl(e);return"{}"===e?"default":e}get _queryObject(){return Zu(this._queryParams)}isEqual(e){if(!((e=ae(e))instanceof af))return!1;var t=this._repo===e._repo,n=nu(this._path,e._path),r=this._queryIdentifier===e._queryIdentifier;return t&&n&&r}toJSON(){return this.toString()}toString(){return this._repo.toString()+function(e){let t="";for(let n=e.pieceNum_;n<e.pieces_.length;n++)""!==e.pieces_[n]&&(t+="/"+encodeURIComponent(String(e.pieces_[n])));return t||"/"}(this._path)}}function of(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function cf(e){let t=null,n=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(n=e.getIndexEndValue()),e.getIndex()===pu){var r="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==hl)throw new Error(r);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==dl)throw new Error(r);if("string"!=typeof n)throw new Error(i)}}else if(e.getIndex()===Su){if(null!=t&&!vp(t)||null!=n&&!vp(n))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(f(e.getIndex()instanceof qu||e.getIndex()===Vu,"unknown index type."),null!=t&&"object"==typeof t||null!=n&&"object"==typeof n)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function lf(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class uf extends af{constructor(e,t){super(e,t,new Hu,!1)}get parent(){var e=Jl(this._path);return null===e?null:new uf(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class hf{constructor(e,t,n){this._node=e,this.ref=t,this._index=n}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new Kl(e),n=ff(this.ref,e);return new hf(this._node.getChild(t),n,Su)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(n){if(this._node.isLeafNode())return!1;const e=this._node;return!!e.forEachChild(this._index,(e,t)=>n(new hf(t,ff(this.ref,e),Su)))}hasChild(e){var t=new Kl(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function df(e,t){return(e=ae(e))._checkNotDeleted("ref"),void 0!==t?ff(e._root,t):e._root}function pf(e,t){(e=ae(e))._checkNotDeleted("refFromURL");const n=Jp(t,e._repo.repoInfo_.nodeAdmin);wp("refFromURL",n);var r=n.repoInfo;return e._repo.repoInfo_.isCustomHost()||r.host===e._repo.repoInfo_.host||ol("refFromURL: Host name does not match the current database: (found "+r.host+" but expected "+e._repo.repoInfo_.host+")"),df(e,n.path.toString())}function ff(e,t){return(null===zl((e=ae(e))._path)?lp:_p)("child","path",t,!1),new uf(e._repo,Xl(e._path,t))}function gf(e,t){e=ae(e),up("set",e._path),sp("set",t,e._path,!1);const n=new y;return Lp(e._repo,e._path,t,null,n.wrapCallback(()=>{})),n.promise}function mf(e,t){ap("update",t,e._path,!1);const n=new y;return function(i,s,e,a){Bp(i,"update",{path:s.toString(),value:e});let n=!0;const r=xp(i),o={};if(fl(e,(e,t)=>{n=!1,o[e]=Hd(Xl(s,e),Uu(t),i.serverSyncTree_,r)}),n)al("update() called with empty data. Don't do anything."),jp(0,a,"ok",void 0);else{const c=Mp(i);var t=kd(i.serverSyncTree_,s,o,c);Ip(i.eventQueue_,t),i.server_.merge(s.toString(),e,(e,t)=>{var n="ok"===e;n||cl("update at "+s+" failed: "+e);var r=Sd(i.serverSyncTree_,c,!n),n=0<r.length?Wp(i,s):s;Ep(i.eventQueue_,n,r),jp(0,a,e,t)}),fl(e,e=>{var t=Qp(i,Xl(s,e));Wp(i,t)}),Ep(i.eventQueue_,s,[])}}(e._repo,e._path,t,n.wrapCallback(()=>{})),n.promise}function vf(t){t=ae(t);var i,s,a,e=new rf(()=>{}),e=new yf(e);return i=t._repo,s=t,a=e,(null!=(e=Dd(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,n=Uu(e).withIndex(s._queryParams.getIndex());Rd(i.serverSyncTree_,s,a,!0);let r;return r=s._queryParams.loadsAllData()?Cd(i.serverSyncTree_,s._path,n):(t=Ld(i.serverSyncTree_,s),Nd(i.serverSyncTree_,s._path,n,t)),Ep(i.eventQueue_,s._path,r),Ad(i.serverSyncTree_,s,a,null,!0),n},e=>(Bp(i,"get for query "+O(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new hf(e,new uf(t._repo,t._path),t._queryParams.getIndex()))}class yf{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var n=t._queryParams.getIndex();return new tf("value",this,new hf(e.snapshotNode,new uf(t._repo,t._path),n))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new nf(this,e,t):null}matches(e){return e instanceof yf&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class _f{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){let t="children_added"===e?"child_added":e;return t="children_removed"===t?"child_removed":t,this.eventType===t}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new nf(this,e,t):null}createEvent(e,t){f(null!=e.childName,"Child events should have a childName.");var n=ff(new uf(t._repo,t._path),e.childName),r=t._queryParams.getIndex();return new tf(e.type,this,new hf(e.snapshotNode,n,r),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof _f&&(this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)))}hasAnyCallback(){return!!this.callbackContext}}function wf(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){const c=t;var a=(e,t)=>{qp(n._repo,n,o),c(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new rf(t,s||void 0);const o="value"===e?new yf(a):new _f(e,a);return function(e,t,n){let r;r=".info"===zl(t._path)?Rd(e.infoSyncTree_,t,n):Rd(e.serverSyncTree_,t,n),Tp(e.eventQueue_,t._path,r)}(n._repo,n,o),()=>qp(n._repo,n,o)}function bf(e,t,n,r){return wf(e,"value",t,n,r)}function If(e,t,n,r){return wf(e,"child_added",t,n,r)}function Tf(e,t,n,r){return wf(e,"child_changed",t,n,r)}function Ef(e,t,n,r){return wf(e,"child_moved",t,n,r)}function kf(e,t,n,r){return wf(e,"child_removed",t,n,r)}function Sf(e,t,n){let r=null;var i=n?new rf(n):null;"value"===t?r=new yf(i):t&&(r=new _f(t,i)),qp(e._repo,e,r)}class Cf{}class Af extends Cf{constructor(e,t){super(),this._value=e,this._key=t}_apply(e){sp("endAt",this._value,e._path,!0);var t=Yu(e._queryParams,this._value,this._key);if(lf(t),cf(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new af(e._repo,e._path,t,e._orderByCalled)}}class Nf extends Cf{constructor(e,t){super(),this._value=e,this._key=t}_apply(e){sp("endBefore",this._value,e._path,!1);var t=function(e,t,n){let r;return r=e.index_===pu||n?Yu(e,t,n):Yu(e,t,hl),r.endBeforeSet_=!0,r}(e._queryParams,this._value,this._key);if(lf(t),cf(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new af(e._repo,e._path,t,e._orderByCalled)}}class Rf extends Cf{constructor(e,t){super(),this._value=e,this._key=t}_apply(e){sp("startAt",this._value,e._path,!0);var t=Qu(e._queryParams,this._value,this._key);if(lf(t),cf(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new af(e._repo,e._path,t,e._orderByCalled)}}class xf extends Cf{constructor(e,t){super(),this._value=e,this._key=t}_apply(e){sp("startAfter",this._value,e._path,!1);var t=function(e,t,n){let r;return r=e.index_===pu||n?Qu(e,t,n):Qu(e,t,dl),r.startAfterSet_=!0,r}(e._queryParams,this._value,this._key);if(lf(t),cf(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new af(e._repo,e._path,t,e._orderByCalled)}}class Df extends Cf{constructor(e){super(),this._limit=e}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new af(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="l",n}(e._queryParams,this._limit),e._orderByCalled)}}class Pf extends Cf{constructor(e){super(),this._limit=e}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new af(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="r",n}(e._queryParams,this._limit),e._orderByCalled)}}class Of extends Cf{constructor(e){super(),this._path=e}_apply(e){of(e,"orderByChild");var t=new Kl(this._path);if(Zl(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new qu(t),t=Ju(e._queryParams,t);return cf(t),new af(e._repo,e._path,t,!0)}}class Mf extends Cf{_apply(e){of(e,"orderByKey");var t=Ju(e._queryParams,pu);return cf(t),new af(e._repo,e._path,t,!0)}}class Lf extends Cf{_apply(e){of(e,"orderByPriority");var t=Ju(e._queryParams,Su);return cf(t),new af(e._repo,e._path,t,!0)}}class Ff extends Cf{_apply(e){of(e,"orderByValue");var t=Ju(e._queryParams,Vu);return cf(t),new af(e._repo,e._path,t,!0)}}class Uf extends Cf{constructor(e,t){super(),this._value=e,this._key=t}_apply(e){if(sp("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Af(this._value,this._key)._apply(new Rf(this._value,this._key)._apply(e))}}function qf(e,...t){let n=ae(e);for(const r of t)n=r._apply(n);return n}Bc=uf,f(!ld,"__referenceConstructor has already been defined"),ld=Bc,jc=uf,f(!bd,"__referenceConstructor has already been defined"),bd=jc;const Vf="FIREBASE_DATABASE_EMULATOR_HOST",Bf={};let jf=!1;function $f(e,t,n,r,i){let s=r||e.options.databaseURL;void 0===s&&(e.options.projectId||ol("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),al("Using default host for project ",e.options.projectId),s=`${e.options.projectId}-default-rtdb.firebaseio.com`);let a=Jp(s,i),o=a.repoInfo,c,l=void 0;"undefined"!=typeof process&&process.env&&(l=process.env[Vf]),l?(c=!0,s=`http://${l}?ns=${o.namespace}`,a=Jp(s,i),o=a.repoInfo):c=!a.repoInfo.secure;var u=i&&c?new El(El.OWNER):new Tl(e.name,e.options,t);wp("Invalid Firebase Database URL",a),Zl(a.path)||ol("Database URL must point to the root of a Firebase Database (not including a child path).");u=function(e,t,n,r){let i=Bf[t.name];i||(i={},Bf[t.name]=i);var s=i[e.toURLString()];s&&ol("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.");return s=new Ap(e,jf,n,r),i[e.toURLString()]=s}(o,e,u,new Il(e.name,n));return new Kf(u,e)}class Kf{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Np(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new uf(this._repo,Wl())),this._rootInternal}_delete(){return null!==this._rootInternal&&(function(e,t){const n=Bf[t];n&&n[e.key]===e||ol(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Vp(e),delete n[e.key]}(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&ol("Cannot call "+e+" on a deleted database.")}}function Wf(){ql.IS_TRANSPORT_INITIALIZED&&cl("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function zf(){Wf(),Ml.forceDisallow()}function Gf(){Wf(),Ul.forceDisallow(),Ml.forceAllow()}function Hf(e,t,n,r={}){(e=ae(e))._checkNotDeleted("useEmulator"),e._instanceStarted&&ol("Cannot call useEmulator() after instance has already been initialized.");var i,s=e._repoInternal;let a=void 0;s.repoInfo_.nodeAdmin?(r.mockUserToken&&ol('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),a=new El(El.OWNER)):r.mockUserToken&&(i="string"==typeof r.mockUserToken?r.mockUserToken:_(r.mockUserToken,e.app.options.projectId),a=new El(i)),r=s,e=t,t=n,n=a,r.repoInfo_=new Al(`${e}:${t}`,!1,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams),n&&(r.authTokenProvider_=n)}function Qf(e){(e=ae(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Sp)}function Yf(e,t){sl(e,t)}const Jf={".sv":"timestamp"};class Xf{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function Zf(i,e,t){if(i=ae(i),up("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var n=null===(r=null==t?void 0:t.applyLocally)||void 0===r||r;const s=new y;var r=bf(i,()=>{});return function(t,n,e,r,i,s){Bp(t,"transaction on "+n);const a={path:n,update:e,onComplete:r,status:null,order:Qc(),applyLocally:s,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},o=$p(t,n,void 0);a.currentInputSnapshot=o;var c=a.update(o.val());if(void 0===c)a.unwatcher(),a.currentOutputSnapshotRaw=null,a.currentOutputSnapshotResolved=null,a.onComplete&&a.onComplete(null,!1,a.currentInputSnapshot);else{yp("transaction failed: Data returned ",c,a.path),a.status=0;var l=Xd(t.transactionQueueTree_,n);const u=Zd(l)||[];u.push(a),ep(l,u);let e;if("object"==typeof c&&null!==c&&L(c,".priority"))e=F(c,".priority"),f(vp(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.");else{const h=xd(t.serverSyncTree_,n)||Ou.EMPTY_NODE;e=h.getPriority().val()}l=xp(t),c=Uu(c,e),l=Qd(c,o,l);a.currentOutputSnapshotRaw=c,a.currentOutputSnapshotResolved=l,a.currentWriteId=Mp(t);l=Ed(t.serverSyncTree_,n,l,a.currentWriteId,a.applyLocally);Ep(t.eventQueue_,n,l),Kp(t,t.transactionQueueTree_)}}(i._repo,i._path,e,(e,t,n)=>{var r;e?s.reject(e):(r=new hf(n,new uf(i._repo,i._path),Su),s.resolve(new Xf(t,r)))},r,n),s.promise}cu.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},cu.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Mc(Ye),ze(new oe("database",(e,{instanceIdentifier:t})=>{return $f(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)},"PUBLIC").setMultipleInstances(!0)),et(Pc,"0.14.1",$c),et(Pc,"0.14.1","esm2017");function eg(e){var t="FIREBASE WARNING: "+e;tg.warn(t)}const tg=new me("@firebase/database-compat");class ng{constructor(e){this._delegate=e}cancel(t){Q("OnDisconnect.cancel",0,1,arguments.length),J("OnDisconnect.cancel","onComplete",t,!0);const e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){Q("OnDisconnect.remove",0,1,arguments.length),J("OnDisconnect.remove","onComplete",t,!0);const e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){Q("OnDisconnect.set",1,2,arguments.length),J("OnDisconnect.set","onComplete",t,!0);const n=this._delegate.set(e);return t&&n.then(()=>t(null),e=>t(e)),n}setWithPriority(e,t,n){Q("OnDisconnect.setWithPriority",2,3,arguments.length),J("OnDisconnect.setWithPriority","onComplete",n,!0);const r=this._delegate.setWithPriority(e,t);return n&&r.then(()=>n(null),e=>n(e)),r}update(t,n){if(Q("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){const r={};for(let e=0;e<t.length;++e)r[""+e]=t[e];t=r,eg("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}J("OnDisconnect.update","onComplete",n,!0);const e=this._delegate.update(t);return n&&e.then(()=>n(null),e=>n(e)),e}}class rg{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return Q("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class ig{constructor(e,t){this._database=e,this._delegate=t}val(){return Q("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return Q("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return Q("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return Q("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return Q("DataSnapshot.child",0,1,arguments.length),e=String(e),_p("DataSnapshot.child","path",e,!1),new ig(this._database,this._delegate.child(e))}hasChild(e){return Q("DataSnapshot.hasChild",1,1,arguments.length),_p("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return Q("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return Q("DataSnapshot.forEach",1,1,arguments.length),J("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new ig(this._database,e)))}hasChildren(){return Q("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return Q("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return Q("DataSnapshot.ref",0,0,arguments.length),new ag(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class sg{constructor(e,t){this.database=e,this._delegate=t}on(e,n,t,r){var i;Q("Query.on",2,4,arguments.length),J("Query.on","callback",n,!1);const s=sg.getCancelAndContextArgs_("Query.on",t,r);var a=(e,t)=>{n.call(s.context,new ig(this.database,e),t)};a.userCallback=n,a.context=s.context;var o=null===(i=s.cancel)||void 0===i?void 0:i.bind(s.context);switch(e){case"value":return bf(this._delegate,a,o),n;case"child_added":return If(this._delegate,a,o),n;case"child_removed":return kf(this._delegate,a,o),n;case"child_changed":return Tf(this._delegate,a,o),n;case"child_moved":return Ef(this._delegate,a,o),n;default:throw new Error(Y("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,n){var r;Q("Query.off",0,3,arguments.length),function(e,t,n){if(!n||void 0!==t)switch(t){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Y(e,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}("Query.off",e,!0),J("Query.off","callback",t,!0),X("Query.off","context",n,!0),t?((r=()=>{}).userCallback=t,r.context=n,Sf(this._delegate,e,r)):Sf(this._delegate,e)}get(){return vf(this._delegate).then(e=>new ig(this.database,e))}once(e,r,t,n){Q("Query.once",1,4,arguments.length),J("Query.once","callback",r,!0);const i=sg.getCancelAndContextArgs_("Query.once",t,n),s=new y;var a=(e,t)=>{var n=new ig(this.database,e);r&&r.call(i.context,n,t),s.resolve(n)};a.userCallback=r,a.context=i.context;var o=e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)};switch(e){case"value":bf(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":If(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":kf(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Tf(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Ef(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Y("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return Q("Query.limitToFirst",1,1,arguments.length),new sg(this.database,qf(this._delegate,function(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new Df(e)}(e)))}limitToLast(e){return Q("Query.limitToLast",1,1,arguments.length),new sg(this.database,qf(this._delegate,function(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Pf(e)}(e)))}orderByChild(e){return Q("Query.orderByChild",1,1,arguments.length),new sg(this.database,qf(this._delegate,function(e){if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return _p("orderByChild","path",e,!1),new Of(e)}(e)))}orderByKey(){return Q("Query.orderByKey",0,0,arguments.length),new sg(this.database,qf(this._delegate,new Mf))}orderByPriority(){return Q("Query.orderByPriority",0,0,arguments.length),new sg(this.database,qf(this._delegate,new Lf))}orderByValue(){return Q("Query.orderByValue",0,0,arguments.length),new sg(this.database,qf(this._delegate,new Ff))}startAt(e=null,t){return Q("Query.startAt",0,2,arguments.length),new sg(this.database,qf(this._delegate,([e=null,t]=[e,t],cp("startAt","key",t,!0),new Rf(e,t))))}startAfter(e=null,t){return Q("Query.startAfter",0,2,arguments.length),new sg(this.database,qf(this._delegate,(e=e,t=t,cp("startAfter","key",t,!0),new xf(e,t))))}endAt(e=null,t){return Q("Query.endAt",0,2,arguments.length),new sg(this.database,qf(this._delegate,(e=e,t=t,cp("endAt","key",t,!0),new Af(e,t))))}endBefore(e=null,t){return Q("Query.endBefore",0,2,arguments.length),new sg(this.database,qf(this._delegate,(e=e,t=t,cp("endBefore","key",t,!0),new Nf(e,t))))}equalTo(e,t){return Q("Query.equalTo",1,2,arguments.length),new sg(this.database,qf(this._delegate,(e=e,t=t,cp("equalTo","key",t,!0),new Uf(e,t))))}toString(){return Q("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return Q("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(Q("Query.isEqual",1,1,arguments.length),e instanceof sg)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,n){const r={cancel:void 0,context:void 0};if(t&&n)r.cancel=t,J(e,"cancel",r.cancel,!0),r.context=n,X(e,"context",r.context,!0);else if(t)if("object"==typeof t&&null!==t)r.context=t;else{if("function"!=typeof t)throw new Error(Y(e,"cancelOrContext")+" must either be a cancel callback or a context object.");r.cancel=t}return r}get ref(){return new ag(this.database,new uf(this._delegate._repo,this._delegate._path))}}class ag extends sg{constructor(e,t){super(e,new af(t._repo,t._path,new Hu,!1)),this.database=e,this._delegate=t}getKey(){return Q("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return Q("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new ag(this.database,ff(this._delegate,e))}getParent(){Q("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new ag(this.database,e):null}getRoot(){return Q("Reference.root",0,0,arguments.length),new ag(this.database,this._delegate.root)}set(e,t){Q("Reference.set",1,2,arguments.length),J("Reference.set","onComplete",t,!0);const n=gf(this._delegate,e);return t&&n.then(()=>t(null),e=>t(e)),n}update(t,n){if(Q("Reference.update",1,2,arguments.length),Array.isArray(t)){const r={};for(let e=0;e<t.length;++e)r[""+e]=t[e];t=r,eg("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}up("Reference.update",this._delegate._path),J("Reference.update","onComplete",n,!0);const e=mf(this._delegate,t);return n&&e.then(()=>n(null),e=>n(e)),e}setWithPriority(e,t,n){Q("Reference.setWithPriority",2,3,arguments.length),J("Reference.setWithPriority","onComplete",n,!0);const r=function(e,t,n){if(up("setWithPriority",e._path),sp("setWithPriority",t,e._path,!1),op("setWithPriority",n,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";const r=new y;return Lp(e._repo,e._path,t,n,r.wrapCallback(()=>{})),r.promise}(this._delegate,e,t);return n&&r.then(()=>n(null),e=>n(e)),r}remove(t){Q("Reference.remove",0,1,arguments.length),J("Reference.remove","onComplete",t,!0);const e=(n=this._delegate,up("remove",n._path),gf(n,null));var n;return t&&e.then(()=>t(null),e=>t(e)),e}transaction(e,t,n){Q("Reference.transaction",1,3,arguments.length),J("Reference.transaction","transactionUpdate",e,!1),J("Reference.transaction","onComplete",t,!0),function(e,t,n,r){if((!r||void 0!==n)&&"boolean"!=typeof n)throw new Error(Y(e,t)+"must be a boolean.")}("Reference.transaction","applyLocally",n,!0);const r=Zf(this._delegate,e,{applyLocally:n}).then(e=>new rg(e.committed,new ig(this.database,e.snapshot)));return t&&r.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),r}setPriority(e,t){Q("Reference.setPriority",1,2,arguments.length),J("Reference.setPriority","onComplete",t,!0);const n=function(e,t){e=ae(e),up("setPriority",e._path),op("setPriority",t,!1);const n=new y;return Lp(e._repo,Xl(e._path,".priority"),t,null,n.wrapCallback(()=>{})),n.promise}(this._delegate,e);return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){Q("Reference.push",0,2,arguments.length),J("Reference.push","onComplete",t,!0);const n=function(e,t){e=ae(e),up("push",e._path),sp("push",t,e._path,!0);var n=Rp(e._repo),n=ef(n);const r=ff(e,n),i=ff(e,n);let s;return s=null!=t?gf(i,t).then(()=>i):Promise.resolve(i),r.then=s.then.bind(s),r.catch=s.then.bind(s,void 0),r}(this._delegate,e),r=n.then(e=>new ag(this.database,e));t&&r.then(()=>t(null),e=>t(e));const i=new ag(this.database,n);return i.then=r.then.bind(r),i.catch=r.catch.bind(r,void 0),i}onDisconnect(){return up("Reference.onDisconnect",this._delegate._path),new ng(new sf(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class og{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:zf,forceLongPolling:Gf}}useEmulator(e,t,n={}){Hf(this._delegate,e,t,n)}ref(e){if(Q("database.ref",0,1,arguments.length),e instanceof ag){var t=pf(this._delegate,e.toString());return new ag(this,t)}t=df(this._delegate,e);return new ag(this,t)}refFromURL(e){Q("database.refFromURL",1,1,arguments.length);var t=pf(this._delegate,e);return new ag(this,t)}goOffline(){var e;Q("database.goOffline",0,0,arguments.length),(e=ae(e=this._delegate))._checkNotDeleted("goOffline"),Vp(e._repo)}goOnline(){return Q("database.goOnline",0,0,arguments.length),Qf(this._delegate)}}og.ServerValue={TIMESTAMP:Jf,increment:e=>({".sv":{increment:e}})};var cg,lg=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:n,customAuthImpl:r,namespace:i,nodeAdmin:s=!1}){Mc(n);const a=new le("auth-internal",new ue("database-standalone"));return a.setComponent(new oe("auth-internal",()=>r,"PRIVATE")),{instance:new og($f(e,a,void 0,t,s),e),namespace:i}}});const ug=og.ServerValue;(cg=wt).INTERNAL.registerComponent(new oe("database-compat",(e,{instanceIdentifier:t})=>{var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("database").getImmediate({identifier:t});return new og(r,n)},"PUBLIC").setServiceProps({Reference:ag,Query:sg,Database:og,DataSnapshot:ig,enableLogging:Yf,INTERNAL:lg,ServerValue:ug}).setMultipleInstances(!0)),cg.registerVersion("@firebase/database-compat","0.3.1");var yt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},hg={},dg=yt||self;function pg(){}function fg(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function gg(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}var mg="closure_uid_"+(1e9*Math.random()>>>0),vg=0;function yg(e,t,n){return e.call.apply(e.bind,arguments)}function _g(t,n,e){if(!t)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,r),t.apply(n,e)}}return function(){return t.apply(n,arguments)}}function wg(e,t,n){return(wg=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?yg:_g).apply(null,arguments)}function bg(t){var n=Array.prototype.slice.call(arguments,1);return function(){var e=n.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function Ig(e,s){function t(){}t.prototype=s.prototype,e.X=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Wb=function(e,t,n){for(var r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];return s.prototype[t].apply(e,r)}}function Tg(){this.s=this.s,this.o=this.o}Tg.prototype.s=!1,Tg.prototype.na=function(){var e;!this.s&&(this.s=!0,this.M(),0)&&(e=this,Object.prototype.hasOwnProperty.call(e,mg)&&e[mg]||(e[mg]=++vg))},Tg.prototype.M=function(){if(this.o)for(;this.o.length;)this.o.shift()()};const Eg=Array.prototype.indexOf?function(e,t){return Array.prototype.indexOf.call(e,t,void 0)}:function(e,t){if("string"==typeof e)return"string"!=typeof t||1!=t.length?-1:e.indexOf(t,0);for(let n=0;n<e.length;n++)if(n in e&&e[n]===t)return n;return-1};function kg(t){var n=t.length;if(0<n){const r=Array(n);for(let e=0;e<n;e++)r[e]=t[e];return r}return[]}function Sg(t){for(let e=1;e<arguments.length;e++){var n=arguments[e];if(fg(n)){var r=t.length||0,i=n.length||0;t.length=r+i;for(let e=0;e<i;e++)t[r+e]=n[e]}else t.push(n)}}function Cg(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}Cg.prototype.h=function(){this.defaultPrevented=!0};var Ag=function(){if(!dg.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{dg.addEventListener("test",pg,t),dg.removeEventListener("test",pg,t)}catch(e){}return e}();function Ng(e){return/^[\s\xa0]*$/.test(e)}var Rg=String.prototype.trim?function(e){return e.trim()}:function(e){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(e)[1]};function xg(e,t){return e<t?-1:t<e?1:0}function Dg(){var e=dg.navigator;return(e=e&&e.userAgent)?e:""}function Pg(e){return-1!=Dg().indexOf(e)}function Og(e){return Og[" "](e),e}Og[" "]=pg;var Mg,Lg=Pg("Opera"),Fg=Pg("Trident")||Pg("MSIE"),Ug=Pg("Edge"),qg=Ug||Fg,Vg=Pg("Gecko")&&!(-1!=Dg().toLowerCase().indexOf("webkit")&&!Pg("Edge"))&&!(Pg("Trident")||Pg("MSIE"))&&!Pg("Edge"),Bg=-1!=Dg().toLowerCase().indexOf("webkit")&&!Pg("Edge");function jg(){var e=dg.document;return e?e.documentMode:void 0}e:{var $g="",Kg=(Kg=Dg(),Vg?/rv:([^\);]+)(\)|;)/.exec(Kg):Ug?/Edge\/([\d\.]+)/.exec(Kg):Fg?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(Kg):Bg?/WebKit\/(\S+)/.exec(Kg):Lg?/(?:Version)[ \/]?(\S+)/.exec(Kg):void 0);if(Kg&&($g=Kg?Kg[1]:""),Fg){Kg=jg();if(null!=Kg&&Kg>parseFloat($g)){Mg=String(Kg);break e}}Mg=$g}var Wg={};function zg(){return e=function(){let e=0;var t=Rg(String(Mg)).split("."),n=Rg("9").split("."),r=Math.max(t.length,n.length);for(let a=0;0==e&&a<r;a++)for(var i=t[a]||"",s=n[a]||"";i=/(\d*)(\D*)(.*)/.exec(i)||["","","",""],s=/(\d*)(\D*)(.*)/.exec(s)||["","","",""],(0!=i[0].length||0!=s[0].length)&&(e=xg(0==i[1].length?0:parseInt(i[1],10),0==s[1].length?0:parseInt(s[1],10))||xg(0==i[2].length,0==s[2].length)||xg(i[2],s[2]),i=i[3],s=s[3],0==e););return 0<=e},t=Wg,Object.prototype.hasOwnProperty.call(t,9)?t[9]:t[9]=e(9);var e,t}var Gg=dg.document&&Fg&&(jg()||parseInt(Mg,10))||void 0;function Hg(e,t){if(Cg.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var n=this.type=e.type,r=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(Vg){e:{try{Og(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==n?t=e.fromElement:"mouseout"==n&&(t=e.toElement);this.relatedTarget=t,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:Qg[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&Hg.X.h.call(this)}}Ig(Hg,Cg);var Qg={2:"touch",3:"pen",4:"mouse"};Hg.prototype.h=function(){Hg.X.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var Yg="closure_listenable_"+(1e6*Math.random()|0),Jg=0;function Xg(e,t,n,r,i){this.listener=e,this.proxy=null,this.src=t,this.type=n,this.capture=!!r,this.ha=i,this.key=++Jg,this.ba=this.ea=!1}function Zg(e){e.ba=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function em(e,t,n){for(const r in e)t.call(n,e[r],r,e)}function tm(e){const t={};for(const n in e)t[n]=e[n];return t}const nm="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function rm(t){let n,r;for(let i=1;i<arguments.length;i++){for(n in r=arguments[i])t[n]=r[n];for(let e=0;e<nm.length;e++)n=nm[e],Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}}function im(e){this.src=e,this.g={},this.h=0}function sm(e,t){var n,r,i,s=t.type;s in e.g&&(n=e.g[s],(i=0<=(r=Eg(n,t)))&&Array.prototype.splice.call(n,r,1),i&&(Zg(t),0==e.g[s].length&&(delete e.g[s],e.h--)))}function am(e,t,n,r){for(var i=0;i<e.length;++i){var s=e[i];if(!s.ba&&s.listener==t&&s.capture==!!n&&s.ha==r)return i}return-1}im.prototype.add=function(e,t,n,r,i){var s=e.toString();(e=this.g[s])||(e=this.g[s]=[],this.h++);var a=am(e,t,r,i);return-1<a?(t=e[a],n||(t.ea=!1)):((t=new Xg(t,this.src,s,!!r,i)).ea=n,e.push(t)),t};var om="closure_lm_"+(1e6*Math.random()|0),cm={};function lm(e,t,n,r,i){if(r&&r.once)return function e(t,n,r,i,s){if(Array.isArray(n)){for(var a=0;a<n.length;a++)e(t,n[a],r,i,s);return null}r=mm(r);return t&&t[Yg]?t.O(n,r,gg(i)?!!i.capture:!!i,s):um(t,n,r,!0,i,s)}(e,t,n,r,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)lm(e,t[s],n,r,i);return null}return n=mm(n),e&&e[Yg]?e.N(t,n,gg(r)?!!r.capture:!!r,i):um(e,t,n,!1,r,i)}function um(e,t,n,r,i,s){if(!t)throw Error("Invalid event type");var a=gg(i)?!!i.capture:!!i,o=fm(e);if(o||(e[om]=o=new im(e)),(n=o.add(t,n,r,a,s)).proxy)return n;if(r=function(){const n=pm;return function e(t){return n.call(e.src,e.listener,t)}}(),(n.proxy=r).src=e,r.listener=n,e.addEventListener)void 0===(i=!Ag?a:i)&&(i=!1),e.addEventListener(t.toString(),r,i);else if(e.attachEvent)e.attachEvent(dm(t.toString()),r);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(r)}return n}function hm(e){var t,n,r;"number"!=typeof e&&e&&!e.ba&&((t=e.src)&&t[Yg]?sm(t.i,e):(n=e.type,r=e.proxy,t.removeEventListener?t.removeEventListener(n,r,e.capture):t.detachEvent?t.detachEvent(dm(n),r):t.addListener&&t.removeListener&&t.removeListener(r),(n=fm(t))?(sm(n,e),0==n.h&&(n.src=null,t[om]=null)):Zg(e)))}function dm(e){return e in cm?cm[e]:cm[e]="on"+e}function pm(e,t){var n,r;return e=!!e.ba||(t=new Hg(t,this),n=e.listener,r=e.ha||e.src,e.ea&&hm(e),n.call(r,t))}function fm(e){return(e=e[om])instanceof im?e:null}var gm="__closure_events_fn_"+(1e9*Math.random()>>>0);function mm(t){return"function"==typeof t?t:(t[gm]||(t[gm]=function(e){return t.handleEvent(e)}),t[gm])}function vm(){Tg.call(this),this.i=new im(this),(this.P=this).I=null}function ym(e,t){var n,r=e.I;if(r)for(n=[];r;r=r.I)n.push(r);if(e=e.P,r=t.type||t,"string"==typeof t?t=new Cg(t,e):t instanceof Cg?t.target=t.target||e:(a=t,rm(t=new Cg(r,e),a)),a=!0,n)for(var i=n.length-1;0<=i;i--)var s=t.g=n[i],a=_m(s,r,!0,t)&&a;if(a=_m(s=t.g=e,r,!0,t)&&a,a=_m(s,r,!1,t)&&a,n)for(i=0;i<n.length;i++)a=_m(s=t.g=n[i],r,!1,t)&&a}function _m(e,t,n,r){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,c=t[s];c&&!c.ba&&c.capture==n&&(a=c.listener,o=c.ha||c.src,c.ea&&sm(e.i,c),i=!1!==a.call(o,r)&&i)}return i&&!r.defaultPrevented}Ig(vm,Tg),vm.prototype[Yg]=!0,vm.prototype.removeEventListener=function(e,t,n,r){!function e(t,n,r,i,s){if(Array.isArray(n))for(var a=0;a<n.length;a++)e(t,n[a],r,i,s);else i=gg(i)?!!i.capture:!!i,r=mm(r),t&&t[Yg]?(t=t.i,(n=String(n).toString())in t.g&&-1<(r=am(a=t.g[n],r,i,s))&&(Zg(a[r]),Array.prototype.splice.call(a,r,1),0==a.length&&(delete t.g[n],t.h--))):(t=t&&fm(t))&&(n=t.g[n.toString()],(r=(t=-1)<(t=n?am(n,r,i,s):t)?n[t]:null)&&hm(r))}(this,e,t,n,r)},vm.prototype.M=function(){if(vm.X.M.call(this),this.i){var e,t=this.i;for(e in t.g){for(var n=t.g[e],r=0;r<n.length;r++)Zg(n[r]);delete t.g[e],t.h--}}this.I=null},vm.prototype.N=function(e,t,n,r){return this.i.add(String(e),t,!1,n,r)},vm.prototype.O=function(e,t,n,r){return this.i.add(String(e),t,!0,n,r)};var wm=dg.JSON.stringify;var bm,Im=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Tm,e=>e.reset());class Tm{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}function Em(e,t){var n;bm||(n=dg.Promise.resolve(void 0),bm=function(){n.then(Cm)}),km||(bm(),km=!0),Sm.add(e,t)}var km=!1,Sm=new class{constructor(){this.h=this.g=null}add(e,t){const n=Im.get();n.set(e,t),this.h?this.h.next=n:this.g=n,this.h=n}};function Cm(){for(var e;e=function(){var e=Sm;let t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t}();){try{e.h.call(e.g)}catch(e){!function(e){dg.setTimeout(()=>{throw e},0)}(e)}var t=Im;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}km=!1}function Am(e,t){vm.call(this),this.h=e||1,this.g=t||dg,this.j=wg(this.lb,this),this.l=Date.now()}function Nm(e){e.ca=!1,e.R&&(e.g.clearTimeout(e.R),e.R=null)}function Rm(e,t,n){if("function"==typeof e)n&&(e=wg(e,n));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=wg(e.handleEvent,e)}return 2147483647<Number(t)?-1:dg.setTimeout(e,t||0)}Ig(Am,vm),(bt=Am.prototype).ca=!1,bt.R=null,bt.lb=function(){var e;this.ca&&(0<(e=Date.now()-this.l)&&e<.8*this.h?this.R=this.g.setTimeout(this.j,this.h-e):(this.R&&(this.g.clearTimeout(this.R),this.R=null),ym(this,"tick"),this.ca&&(Nm(this),this.start())))},bt.start=function(){this.ca=!0,this.R||(this.R=this.g.setTimeout(this.j,this.h),this.l=Date.now())},bt.M=function(){Am.X.M.call(this),Nm(this),delete this.g};class xm extends Tg{constructor(e,t){super(),this.m=e,this.j=t,this.h=null,this.i=!1,this.g=null}l(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Rm(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.j);var n=t.h;t.h=null,t.m.apply(null,n)}(this)}M(){super.M(),this.g&&(dg.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function Dm(e){Tg.call(this),this.h=e,this.g={}}Ig(Dm,Tg);var Pm=[];function Om(e,t,n,r){Array.isArray(n)||(n&&(Pm[0]=n.toString()),n=Pm);for(var i=0;i<n.length;i++){var s=lm(t,n[i],r||e.handleEvent,!1,e.h||e);if(!s)break;e.g[s.key]=s}}function Mm(e){em(e.g,function(e,t){this.g.hasOwnProperty(t)&&hm(e)},e),e.g={}}function Lm(){this.g=!0}function Fm(e,t,n,r){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+function(e,t){if(!e.g)return t;if(!t)return null;try{var n=JSON.parse(t);if(n)for(e=0;e<n.length;e++)if(Array.isArray(n[e])){var r=n[e];if(!(r.length<2)){var i=r[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return wm(n)}catch(e){return t}}(e,n)+(r?" "+r:"")})}Dm.prototype.M=function(){Dm.X.M.call(this),Mm(this)},Dm.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")},Lm.prototype.Aa=function(){this.g=!1},Lm.prototype.info=function(){};var Um={},qm=null;function Vm(){return qm=qm||new vm}function Bm(e){Cg.call(this,Um.Pa,e)}function jm(){var e=Vm();ym(e,new Bm(e))}function $m(e,t){Cg.call(this,Um.STAT_EVENT,e),this.stat=t}function Km(e){var t=Vm();ym(t,new $m(t,e))}function Wm(e,t){Cg.call(this,Um.Qa,e),this.size=t}function zm(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return dg.setTimeout(function(){e()},t)}Um.Pa="serverreachability",Ig(Bm,Cg),Um.STAT_EVENT="statevent",Ig($m,Cg),Um.Qa="timingevent",Ig(Wm,Cg);It={NO_ERROR:0,mb:1,zb:2,yb:3,tb:4,xb:5,Ab:6,Ma:7,TIMEOUT:8,Db:9},Kc={rb:"complete",Nb:"success",Na:"error",Ma:"abort",Fb:"ready",Gb:"readystatechange",TIMEOUT:"timeout",Bb:"incrementaldata",Eb:"progress",ub:"downloadprogress",Vb:"uploadprogress"};function Gm(){}function Hm(e){return e.h||(e.h=e.i())}function Qm(){}Gm.prototype.h=null;yt={OPEN:"a",qb:"b",Na:"c",Cb:"d"};function Ym(){Cg.call(this,"d")}function Jm(){Cg.call(this,"c")}function Xm(){}function Zm(e,t,n,r){this.l=e,this.j=t,this.m=n,this.U=r||1,this.S=new Dm(this),this.O=nv,this.T=new Am(e=qg?125:void 0),this.H=null,this.i=!1,this.s=this.A=this.v=this.K=this.F=this.V=this.B=null,this.D=[],this.g=null,this.C=0,this.o=this.u=null,this.Y=-1,this.I=!1,this.N=0,this.L=null,this.$=this.J=this.Z=this.P=!1,this.h=new ev}function ev(){this.i=null,this.g="",this.h=!1}Ig(Ym,Cg),Ig(Jm,Cg),Ig(Xm,Gm),Xm.prototype.g=function(){return new XMLHttpRequest},Xm.prototype.i=function(){return{}};var tv=new Xm,nv=45e3,rv={},iv={};function sv(e,t,n){e.K=1,e.v=Tv(yv(t)),e.s=n,e.P=!0,av(e,null)}function av(e,t){e.F=Date.now(),lv(e),e.A=yv(e.v);var a,o,c,l,u,h,n=e.A,r=e.U;Array.isArray(r)||(r=[String(r)]),Lv(n.i,"t",r),e.C=0,n=e.l.H,e.h=new ev,e.g=My(e.l,n?t:null,!e.s),0<e.N&&(e.L=new xm(wg(e.La,e,e.g),e.N)),Om(e.S,e.g,"readystatechange",e.ib),t=e.H?tm(e.H):{},e.s?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.da(e.A,e.u,e.s,t)):(e.u="GET",e.g.da(e.A,e.u,null,t)),jm(),a=e.j,o=e.u,c=e.A,l=e.m,u=e.U,h=e.s,a.info(function(){if(a.g)if(h)for(var e="",t=h.split("&"),n=0;n<t.length;n++){var r,i,s=t[n].split("=");1<s.length&&(r=s[0],s=s[1],e=2<=(i=r.split("_")).length&&"type"==i[1]?e+(r+"=")+s+"&":e+(r+"=redacted&"))}else e=null;else e=h;return"XMLHTTP REQ ("+l+") [attempt "+u+"]: "+o+"\n"+c+"\n"+e})}function ov(e){return e.g&&("GET"==e.u&&2!=e.K&&e.l.Da)}function cv(e,t,n){let r=!0,i;for(;!e.I&&e.C<n.length;){if(i=(a=n,c=o=void 0,o=(s=e).C,-1==(c=a.indexOf("\n",o))?iv:(o=Number(a.substring(o,c)),isNaN(o)?rv:(c+=1)+o>a.length?iv:(a=a.substr(c,o),s.C=c+o,a))),i==iv){4==t&&(e.o=4,Km(14),r=!1),Fm(e.j,e.m,null,"[Incomplete Response]");break}if(i==rv){e.o=4,Km(15),Fm(e.j,e.m,n,"[Invalid Chunk]"),r=!1;break}Fm(e.j,e.m,i,null),fv(e,i)}var s,a,o,c;ov(e)&&i!=iv&&i!=rv&&(e.h.g="",e.C=0),4!=t||0!=n.length||e.h.h||(e.o=1,Km(16),r=!1),e.i=e.i&&r,r?0<n.length&&!e.$&&(e.$=!0,(t=e.l).g==e&&t.$&&!t.K&&(t.j.info("Great, no buffering proxy detected. Bytes received: "+n.length),Cy(t),t.K=!0,Km(11))):(Fm(e.j,e.m,n,"[Invalid Chunked Response]"),pv(e),dv(e))}function lv(e){e.V=Date.now()+e.O,uv(e,e.O)}function uv(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=zm(wg(e.gb,e),t)}function hv(e){e.B&&(dg.clearTimeout(e.B),e.B=null)}function dv(e){0==e.l.G||e.I||Ry(e.l,e)}function pv(e){hv(e);var t=e.L;t&&"function"==typeof t.na&&t.na(),e.L=null,Nm(e.T),Mm(e.S),e.g&&(t=e.g,e.g=null,t.abort(),t.na())}function fv(e,t){try{var n=e.l;if(0!=n.G&&(n.g==e||$v(n.h,e)))if(!e.J&&$v(n.h,e)&&3==n.G){try{var r=n.Fa.g.parse(t)}catch(e){r=null}if(Array.isArray(r)&&3==r.length){var i=r;if(0==i[0]){e:if(!n.u){if(n.g){if(!(n.g.F+3e3<e.F))break e;Ny(n),_y(n)}Sy(n),Km(18)}}else n.Ba=i[1],0<n.Ba-n.T&&i[2]<37500&&n.L&&0==n.A&&!n.v&&(n.v=zm(wg(n.cb,n),6e3));if(jv(n.h)<=1&&n.ja){try{n.ja()}catch(e){}n.ja=void 0}}else Dy(n,11)}else if(!e.J&&n.g!=e||Ny(n),!Ng(t))for(i=n.Fa.g.parse(t),t=0;t<i.length;t++){var s=i[t];if(n.T=s[0],s=s[1],2==n.G)if("c"==s[0]){n.I=s[1],n.ka=s[2];var a=s[3];null!=a&&(n.ma=a,n.j.info("VER="+n.ma));var o=s[4];null!=o&&(n.Ca=o,n.j.info("SVER="+n.Ca));var c,l,u=s[5];null!=u&&"number"==typeof u&&0<u&&(r=1.5*u,n.J=r,n.j.info("backChannelRequestTimeoutMs_="+r)),r=n;const f=e.g;if(f){const g=f.g?f.g.getResponseHeader("X-Client-Wire-Protocol"):null;g&&((c=r.h).g||-1==g.indexOf("spdy")&&-1==g.indexOf("quic")&&-1==g.indexOf("h2")||(c.j=c.l,c.g=new Set,c.h&&(Kv(c,c.h),c.h=null))),!r.D||(l=f.g?f.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(r.za=l,Iv(r.F,r.D,l))}n.G=3,n.l&&n.l.xa(),n.$&&(n.P=Date.now()-e.F,n.j.info("Handshake RTT: "+n.P+"ms"));var h,d,p=e;(r=n).sa=Oy(r,r.H?r.ka:null,r.V),p.J?(Wv(r.h,p),h=p,(d=r.J)&&h.setTimeout(d),h.B&&(hv(h),lv(h)),r.g=p):ky(r),0<n.i.length&&by(n)}else"stop"!=s[0]&&"close"!=s[0]||Dy(n,7);else 3==n.G&&("stop"==s[0]||"close"==s[0]?"stop"==s[0]?Dy(n,7):yy(n):"noop"!=s[0]&&n.l&&n.l.wa(s),n.A=0)}jm()}catch(e){}}function gv(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(fg(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var n=function(e){if(e.oa&&"function"==typeof e.oa)return e.oa();if(!e.W||"function"!=typeof e.W){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(fg(e)||"string"==typeof e){var t=[];e=e.length;for(var n=0;n<e;n++)t.push(n);return t}t=[],n=0;for(const r in e)t[n++]=r;return t}}}(e),r=function(e){if(e.W&&"function"==typeof e.W)return e.W();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(fg(e)){for(var t=[],n=e.length,r=0;r<n;r++)t.push(e[r]);return t}for(r in t=[],n=0,e)t[n++]=e[r];return t}(e),i=r.length,s=0;s<i;s++)t.call(void 0,r[s],n&&n[s],e)}(bt=Zm.prototype).setTimeout=function(e){this.O=e},bt.ib=function(e){e=e.target;const t=this.L;t&&3==dy(e)?t.l():this.La(e)},bt.La=function(e){try{if(e==this.g)e:{var t=dy(this.g),n=this.g.Ea();this.g.aa();if(!(t<3)&&(3!=t||qg||this.g&&(this.h.h||this.g.fa()||py(this.g)))){this.I||4!=t||7==n||jm(),hv(this);var r=this.g.aa();this.Y=r;t:if(ov(this)){var i=py(this.g);e="";var s=i.length,a=4==dy(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){pv(this),dv(this);var o="";break t}this.h.i=new dg.TextDecoder}for(n=0;n<s;n++)this.h.h=!0,e+=this.h.i.decode(i[n],{stream:a&&n==s-1});i.splice(0,s),this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.fa();if(this.i=200==r,h=this.j,d=this.u,p=this.A,f=this.m,g=this.U,m=t,v=r,h.info(function(){return"XMLHTTP RESP ("+f+") [ attempt "+g+"]: "+d+"\n"+p+"\n"+m+" "+v}),this.i){if(this.Z&&!this.J){t:{if(this.g){var c,l=this.g;if((c=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!Ng(c)){var u=c;break t}}u=null}if(!(r=u)){this.i=!1,this.o=3,Km(12),pv(this),dv(this);break e}Fm(this.j,this.m,r,"Initial handshake response via X-HTTP-Initial-Response"),this.J=!0,fv(this,r)}this.P?(cv(this,t,o),qg&&this.i&&3==t&&(Om(this.S,this.T,"tick",this.hb),this.T.start())):(Fm(this.j,this.m,o,null),fv(this,o)),4==t&&pv(this),this.i&&!this.I&&(4==t?Ry(this.l,this):(this.i=!1,lv(this)))}else 400==r&&0<o.indexOf("Unknown SID")?(this.o=3,Km(12)):(this.o=0,Km(13)),pv(this),dv(this)}}}catch(e){}var h,d,p,f,g,m,v},bt.hb=function(){var e,t;this.g&&(e=dy(this.g),t=this.g.fa(),this.C<t.length&&(hv(this),cv(this,e,t),this.i&&4!=e&&lv(this)))},bt.cancel=function(){this.I=!0,pv(this)},bt.gb=function(){this.B=null;var e,t,n=Date.now();0<=n-this.V?(e=this.j,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.K&&(jm(),Km(17)),pv(this),this.o=2,dv(this)):uv(this,this.V-n)};var mv=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function vv(e,t){var n;this.g=this.s=this.j="",this.m=null,this.o=this.l="",this.h=!1,e instanceof vv?(this.h=void 0!==t?t:e.h,_v(this,e.j),this.s=e.s,this.g=e.g,wv(this,e.m),this.l=e.l,t=e.i,(n=new Dv).i=t.i,t.g&&(n.g=new Map(t.g),n.h=t.h),bv(this,n),this.o=e.o):e&&(n=String(e).match(mv))?(this.h=!!t,_v(this,n[1]||"",!0),this.s=Ev(n[2]||""),this.g=Ev(n[3]||"",!0),wv(this,n[4]),this.l=Ev(n[5]||"",!0),bv(this,n[6]||"",!0),this.o=Ev(n[7]||"")):(this.h=!!t,this.i=new Dv(null,this.h))}function yv(e){return new vv(e)}function _v(e,t,n){e.j=n?Ev(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function wv(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.m=t}else e.m=null}function bv(e,t,n){var r,i;t instanceof Dv?(e.i=t,r=e.i,(i=e.h)&&!r.j&&(Pv(r),r.i=null,r.g.forEach(function(e,t){var n=t.toLowerCase();t!=n&&(Ov(this,t),Lv(this,n,e))},r)),r.j=i):(n||(t=kv(t,Rv)),e.i=new Dv(t,e.h))}function Iv(e,t,n){e.i.set(t,n)}function Tv(e){return Iv(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function Ev(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function kv(e,t,n){return"string"==typeof e?(e=encodeURI(e).replace(t,Sv),e=n?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function Sv(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}vv.prototype.toString=function(){var e=[],t=this.j;t&&e.push(kv(t,Cv,!0),":");var n=this.g;return!n&&"file"!=t||(e.push("//"),(t=this.s)&&e.push(kv(t,Cv,!0),"@"),e.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&e.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&e.push("/"),e.push(kv(n,"/"==n.charAt(0)?Nv:Av,!0))),(n=this.i.toString())&&e.push("?",n),(n=this.o)&&e.push("#",kv(n,xv)),e.join("")};var Cv=/[#\/\?@]/g,Av=/[#\?:]/g,Nv=/[#\?]/g,Rv=/[#\?@]/g,xv=/#/g;function Dv(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function Pv(n){n.g||(n.g=new Map,n.h=0,n.i&&function(e,t){if(e){e=e.split("&");for(var n=0;n<e.length;n++){var r,i=e[n].indexOf("="),s=null;0<=i?(r=e[n].substring(0,i),s=e[n].substring(i+1)):r=e[n],t(r,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(n.i,function(e,t){n.add(decodeURIComponent(e.replace(/\+/g," ")),t)}))}function Ov(e,t){Pv(e),t=Fv(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Mv(e,t){return Pv(e),t=Fv(e,t),e.g.has(t)}function Lv(e,t,n){Ov(e,t),0<n.length&&(e.i=null,e.g.set(Fv(e,t),kg(n)),e.h+=n.length)}function Fv(e,t){return t=String(t),t=e.j?t.toLowerCase():t}(bt=Dv.prototype).add=function(e,t){Pv(this),this.i=null,e=Fv(this,e);var n=this.g.get(e);return n||this.g.set(e,n=[]),n.push(t),this.h+=1,this},bt.forEach=function(n,r){Pv(this),this.g.forEach(function(e,t){e.forEach(function(e){n.call(r,e,t,this)},this)},this)},bt.oa=function(){Pv(this);const t=Array.from(this.g.values()),n=Array.from(this.g.keys()),r=[];for(let s=0;s<n.length;s++){var i=t[s];for(let e=0;e<i.length;e++)r.push(n[s])}return r},bt.W=function(t){Pv(this);let n=[];if("string"==typeof t)Mv(this,t)&&(n=n.concat(this.g.get(Fv(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)n=n.concat(t[e])}return n},bt.set=function(e,t){return Pv(this),this.i=null,Mv(this,e=Fv(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},bt.get=function(e,t){return e&&0<(e=this.W(e)).length?String(e[0]):t},bt.toString=function(){if(this.i)return this.i;if(!this.g)return"";const e=[],t=Array.from(this.g.keys());for(var n=0;n<t.length;n++)for(var r=t[n],i=encodeURIComponent(String(r)),s=this.W(r),r=0;r<s.length;r++){var a=i;""!==s[r]&&(a+="="+encodeURIComponent(String(s[r]))),e.push(a)}return this.i=e.join("&")};var Uv=class{constructor(e,t){this.h=e,this.g=t}};function qv(e){this.l=e||10,e=dg.PerformanceNavigationTiming?0<(e=dg.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(dg.g&&dg.g.Ga&&dg.g.Ga()&&dg.g.Ga().$b),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}var Vv;function Bv(e){return e.h||e.g&&e.g.size>=e.j}function jv(e){return e.h?1:e.g?e.g.size:0}function $v(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function Kv(e,t){e.g?e.g.add(t):e.h=t}function Wv(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function zv(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return kg(t.i);{let e=t.i;for(const n of t.g.values())e=e.concat(n.D);return e}}function Gv(){}function Hv(){this.g=new Gv}function Qv(e,t,n,r,i){try{t.onload=null,t.onerror=null,t.onabort=null,t.ontimeout=null,i(r)}catch(e){}}function Yv(e){this.l=e.ac||null,this.j=e.jb||!1}function Jv(e,t){vm.call(this),this.D=e,this.u=t,this.m=void 0,this.readyState=Xv,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}qv.prototype.cancel=function(){if(this.i=zv(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const e of this.g.values())e.cancel();this.g.clear()}},Gv.prototype.stringify=function(e){return dg.JSON.stringify(e,void 0)},Gv.prototype.parse=function(e){return dg.JSON.parse(e,void 0)},Ig(Yv,Gm),Yv.prototype.g=function(){return new Jv(this.l,this.j)},Yv.prototype.i=(Vv={},function(){return Vv}),Ig(Jv,vm);var Xv=0;function Zv(e){e.j.read().then(e.Ta.bind(e)).catch(e.ga.bind(e))}function ey(e){e.readyState=4,e.l=null,e.j=null,e.A=null,ty(e)}function ty(e){e.onreadystatechange&&e.onreadystatechange.call(e)}(bt=Jv.prototype).open=function(e,t){if(this.readyState!=Xv)throw this.abort(),Error("Error reopening a connection");this.C=e,this.B=t,this.readyState=1,ty(this)},bt.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const t={headers:this.v,method:this.C,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||dg).fetch(new Request(this.B,t)).then(this.Wa.bind(this),this.ga.bind(this))},bt.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,ey(this)),this.readyState=Xv},bt.Wa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,ty(this)),this.g&&(this.readyState=3,ty(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Ua.bind(this),this.ga.bind(this));else if(void 0!==dg.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;Zv(this)}else e.text().then(this.Va.bind(this),this.ga.bind(this))},bt.Ta=function(e){var t;this.g&&(this.u&&e.value?this.response.push(e.value):this.u||(t=e.value||new Uint8Array(0),(t=this.A.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t)),(e.done?ey:ty)(this),3==this.readyState&&Zv(this))},bt.Va=function(e){this.g&&(this.response=this.responseText=e,ey(this))},bt.Ua=function(e){this.g&&(this.response=e,ey(this))},bt.ga=function(){this.g&&ey(this)},bt.setRequestHeader=function(e,t){this.v.append(e,t)},bt.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},bt.getAllResponseHeaders=function(){if(!this.h)return"";const e=[],t=this.h.entries();for(var n=t.next();!n.done;)n=n.value,e.push(n[0]+": "+n[1]),n=t.next();return e.join("\r\n")},Object.defineProperty(Jv.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}});var ny=dg.JSON.parse;function ry(e){vm.call(this),this.headers=new Map,this.u=e||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=iy,this.K=this.L=!1}Ig(ry,vm);var iy="",sy=/^https?$/i,ay=["POST","PUT"];function oy(e,t){e.h=!1,e.g&&(e.l=!0,e.g.abort(),e.l=!1),e.j=t,e.m=5,cy(e),uy(e)}function cy(e){e.D||(e.D=!0,ym(e,"complete"),ym(e,"error"))}function ly(e){if(e.h&&void 0!==hg&&(!e.C[1]||4!=dy(e)||2!=e.aa()))if(e.v&&4==dy(e))Rm(e.Ha,0,e);else if(ym(e,"readystatechange"),4==dy(e)){e.h=!1;try{var t,n,r,i,s=e.aa();e:switch(s){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var a=!0;break e;default:a=!1}if((t=a)||((n=0===s)&&(!(i=String(e.H).match(mv)[1]||null)&&dg.self&&dg.self.location&&(i=(r=dg.self.location.protocol).substr(0,r.length-1)),n=!sy.test(i?i.toLowerCase():"")),t=n),t)ym(e,"complete"),ym(e,"success");else{e.m=6;try{var o=2<dy(e)?e.g.statusText:""}catch(e){o=""}e.j=o+" ["+e.aa()+"]",cy(e)}}finally{uy(e)}}}function uy(e,t){if(e.g){hy(e);const n=e.g,r=e.C[0]?pg:null;e.g=null,e.C=null,t||ym(e,"ready");try{n.onreadystatechange=r}catch(e){}}}function hy(e){e.g&&e.K&&(e.g.ontimeout=null),e.A&&(dg.clearTimeout(e.A),e.A=null)}function dy(e){return e.g?e.g.readyState:0}function py(e){try{if(!e.g)return null;if("response"in e.g)return e.g.response;switch(e.J){case iy:case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}return null}catch(e){return null}}function fy(e){let n="";return em(e,function(e,t){n+=t,n+=":",n+=e,n+="\r\n"}),n}function gy(e,t,n){e:{for(r in n){var r=!1;break e}r=!0}r||(n=fy(n),"string"==typeof e?null!=n&&encodeURIComponent(String(n)):Iv(e,t,n))}function my(e,t,n){return n&&n.internalChannelParams&&n.internalChannelParams[e]||t}function vy(e){this.Ca=0,this.i=[],this.j=new Lm,this.ka=this.sa=this.F=this.V=this.g=this.za=this.D=this.ia=this.o=this.S=this.s=null,this.ab=this.U=0,this.Za=my("failFast",!1,e),this.L=this.v=this.u=this.m=this.l=null,this.Y=!0,this.pa=this.Ba=this.T=-1,this.Z=this.A=this.C=0,this.Xa=my("baseRetryDelayMs",5e3,e),this.bb=my("retryDelaySeedMs",1e4,e),this.$a=my("forwardChannelMaxRetries",2,e),this.ta=my("forwardChannelRequestTimeoutMs",2e4,e),this.ra=e&&e.xmlHttpFactory||void 0,this.Da=e&&e.Zb||!1,this.J=void 0,this.H=e&&e.supportsCrossDomainXhr||!1,this.I="",this.h=new qv(e&&e.concurrentRequestLimit),this.Fa=new Hv,this.O=e&&e.fastHandshake||!1,this.N=e&&e.encodeInitMessageHeaders||!1,this.O&&this.N&&(this.N=!1),this.Ya=e&&e.Xb||!1,e&&e.Aa&&this.j.Aa(),e&&e.forceLongPolling&&(this.Y=!1),this.$=!this.O&&this.Y&&e&&e.detectBufferingProxy||!1,this.ja=void 0,this.P=0,this.K=!1,this.la=this.B=null}function yy(e){var t,n;wy(e),3==e.G&&(t=e.U++,Iv(n=yv(e.F),"SID",e.I),Iv(n,"RID",t),Iv(n,"TYPE","terminate"),Ty(e,n),(t=new Zm(e,e.j,t,void 0)).K=2,t.v=Tv(yv(n)),n=!1,!(n=dg.navigator&&dg.navigator.sendBeacon?dg.navigator.sendBeacon(t.v.toString(),""):n)&&dg.Image&&((new Image).src=t.v,n=!0),n||(t.g=My(t.l,null),t.g.da(t.v)),t.F=Date.now(),lv(t)),Py(e)}function _y(e){e.g&&(Cy(e),e.g.cancel(),e.g=null)}function wy(e){_y(e),e.u&&(dg.clearTimeout(e.u),e.u=null),Ny(e),e.h.cancel(),e.m&&("number"==typeof e.m&&dg.clearTimeout(e.m),e.m=null)}function by(e){Bv(e.h)||e.m||(e.m=!0,Em(e.Ja,e),e.C=0)}function Iy(e,t){var n=t?t.m:e.U++,r=yv(e.F);Iv(r,"SID",e.I),Iv(r,"RID",n),Iv(r,"AID",e.T),Ty(e,r),e.o&&e.s&&gy(r,e.o,e.s),n=new Zm(e,e.j,n,e.C+1),null===e.o&&(n.H=e.s),t&&(e.i=t.D.concat(e.i)),t=Ey(e,n,1e3),n.setTimeout(Math.round(.5*e.ta)+Math.round(.5*e.ta*Math.random())),Kv(e.h,n),sv(n,r,t)}function Ty(e,n){e.ia&&em(e.ia,function(e,t){Iv(n,t,e)}),e.l&&gv({},function(e,t){Iv(n,t,e)})}function Ey(e,t,r){r=Math.min(e.i.length,r);var i=e.l?wg(e.l.Ra,e.l,e):null;e:{var s=e.i;let n=-1;for(;;){const c=["count="+r];-1==n?0<r?(n=s[0].h,c.push("ofs="+n)):n=0:c.push("ofs="+n);let e=!0;for(let t=0;t<r;t++){var a=s[t].h,o=s[t].g;if((a-=n)<0)n=Math.max(0,s[t].h-100),e=!1;else try{!function(e,r,t){const i=t||"";try{gv(e,function(e,t){let n=e;gg(e)&&(n=wm(e)),r.push(i+t+"="+encodeURIComponent(n))})}catch(e){throw r.push(i+"type="+encodeURIComponent("_badmap")),e}}(o,c,"req"+a+"_")}catch(e){i&&i(o)}}if(e){i=c.join("&");break e}}}return e=e.i.splice(0,r),t.D=e,i}function ky(e){e.g||e.u||(e.Z=1,Em(e.Ia,e),e.A=0)}function Sy(e){return!(e.g||e.u||3<=e.A)&&(e.Z++,e.u=zm(wg(e.Ia,e),xy(e,e.A)),e.A++,1)}function Cy(e){null!=e.B&&(dg.clearTimeout(e.B),e.B=null)}function Ay(e){e.g=new Zm(e,e.j,"rpc",e.Z),null===e.o&&(e.g.H=e.s),e.g.N=0;var t=yv(e.sa);Iv(t,"RID","rpc"),Iv(t,"SID",e.I),Iv(t,"CI",e.L?"0":"1"),Iv(t,"AID",e.T),Iv(t,"TYPE","xmlhttp"),Ty(e,t),e.o&&e.s&&gy(t,e.o,e.s),e.J&&e.g.setTimeout(e.J);var n=e.g;e=e.ka,n.K=1,n.v=Tv(yv(t)),n.s=null,n.P=!0,av(n,e)}function Ny(e){null!=e.v&&(dg.clearTimeout(e.v),e.v=null)}function Ry(e,t){var n,r,i,s=null;if(e.g==t){Ny(e),Cy(e),e.g=null;var a=2}else{if(!$v(e.h,t))return;s=t.D,Wv(e.h,t),a=1}if(0!=e.G)if(e.pa=t.Y,t.i)1==a?(s=t.s?t.s.length:0,t=Date.now()-t.F,n=e.C,ym(a=Vm(),new Wm(a,s)),by(e)):ky(e);else if(3==(n=t.o)||0==n&&0<e.pa||(1!=a||(i=t,jv((r=e).h)>=r.h.j-(r.m?1:0)||(r.m?(r.i=i.D.concat(r.i),0):1==r.G||2==r.G||r.C>=(r.Za?0:r.$a)||(r.m=zm(wg(r.Ja,r,i),xy(r,r.C)),r.C++,0))))&&(2!=a||!Sy(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),n){case 1:Dy(e,5);break;case 4:Dy(e,10);break;case 3:Dy(e,6);break;default:Dy(e,2)}}function xy(e,t){let n=e.Xa+Math.floor(Math.random()*e.bb);return e.l||(n*=2),n*t}function Dy(e,t){var n,r;e.j.info("Error code "+t),2==t?(n=null,e.l&&(n=null),r=wg(e.kb,e),n||(n=new vv("//www.google.com/images/cleardot.gif"),dg.location&&"http"==dg.location.protocol||_v(n,"https"),Tv(n)),function(e,t){var n=new Lm;if(dg.Image){const r=new Image;r.onload=bg(Qv,n,r,"TestLoadImage: loaded",!0,t),r.onerror=bg(Qv,n,r,"TestLoadImage: error",!1,t),r.onabort=bg(Qv,n,r,"TestLoadImage: abort",!1,t),r.ontimeout=bg(Qv,n,r,"TestLoadImage: timeout",!1,t),dg.setTimeout(function(){r.ontimeout&&r.ontimeout()},1e4),r.src=e}else t(!1)}(n.toString(),r)):Km(2),e.G=0,e.l&&e.l.va(t),Py(e),wy(e)}function Py(e){var t;e.G=0,e.la=[],e.l&&(0==(t=zv(e.h)).length&&0==e.i.length||(Sg(e.la,t),Sg(e.la,e.i),e.h.i.length=0,kg(e.i),e.i.length=0),e.l.ua())}function Oy(e,t,n){var r,i,s=n instanceof vv?yv(n):new vv(n,void 0);return""!=s.g?(t&&(s.g=t+"."+s.g),wv(s,s.m)):(s=(r=dg.location).protocol,t=t?t+"."+r.hostname:r.hostname,r=+r.port,i=new vv(null,void 0),s&&_v(i,s),t&&(i.g=t),r&&wv(i,r),n&&(i.l=n),s=i),n=e.D,t=e.za,n&&t&&Iv(s,n,t),Iv(s,"VER",e.ma),Ty(e,s),s}function My(e,t,n){if(t&&!e.H)throw Error("Can't create secondary domain capable XhrIo object.");return(t=n&&e.Da&&!e.ra?new ry(new Yv({jb:!0})):new ry(e.ra)).Ka(e.H),t}function Ly(){}function Fy(){if(Fg&&!(10<=Number(Gg)))throw Error("Environmental error: no available transport.")}function Uy(e,t){vm.call(this),this.g=new vy(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.s=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.ya&&(e?e["X-WebChannel-Client-Profile"]=t.ya:e={"X-WebChannel-Client-Profile":t.ya}),this.g.S=e,(e=t&&t.Yb)&&!Ng(e)&&(this.g.o=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!Ng(t)&&(this.g.D=t,null!==(e=this.h)&&t in e&&(t in(e=this.h)&&delete e[t])),this.j=new By(this)}function qy(e){Ym.call(this);var t=e.__sm__;if(t){e:{for(const n in t){e=n;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function Vy(){Jm.call(this),this.status=1}function By(e){this.g=e}(bt=ry.prototype).Ka=function(e){this.L=e},bt.da=function(e,t,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.H+"; newUri="+e);t=t?t.toUpperCase():"GET",this.H=e,this.j="",this.m=0,this.D=!1,this.h=!0,this.g=(this.u||tv).g(),this.C=this.u?Hm(this.u):Hm(tv),this.g.onreadystatechange=wg(this.Ha,this);try{this.F=!0,this.g.open(t,String(e),!0),this.F=!1}catch(e){return void oy(this,e)}if(e=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var i in r)n.set(i,r[i]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const c of r.keys())n.set(c,r.get(c))}r=Array.from(n.keys()).find(e=>"content-type"==e.toLowerCase()),i=dg.FormData&&e instanceof dg.FormData,0<=Eg(ay,t)&&!r&&!i&&n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[s,a]of n)this.g.setRequestHeader(s,a);this.J&&(this.g.responseType=this.J),"withCredentials"in this.g&&this.g.withCredentials!==this.L&&(this.g.withCredentials=this.L);try{hy(this),0<this.B&&((this.K=(o=this.g,Fg&&zg()&&"number"==typeof o.timeout&&void 0!==o.ontimeout))?(this.g.timeout=this.B,this.g.ontimeout=wg(this.qa,this)):this.A=Rm(this.qa,this.B,this)),this.v=!0,this.g.send(e),this.v=!1}catch(e){oy(this,e)}var o},bt.qa=function(){void 0!==hg&&this.g&&(this.j="Timed out after "+this.B+"ms, aborting",this.m=8,ym(this,"timeout"),this.abort(8))},bt.abort=function(e){this.g&&this.h&&(this.h=!1,this.l=!0,this.g.abort(),this.l=!1,this.m=e||7,ym(this,"complete"),ym(this,"abort"),uy(this))},bt.M=function(){this.g&&(this.h&&(this.h=!1,this.l=!0,this.g.abort(),this.l=!1),uy(this,!0)),ry.X.M.call(this)},bt.Ha=function(){this.s||(this.F||this.v||this.l?ly(this):this.fb())},bt.fb=function(){ly(this)},bt.aa=function(){try{return 2<dy(this)?this.g.status:-1}catch(e){return-1}},bt.fa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},bt.Sa=function(e){if(this.g){var t=this.g.responseText;return e&&0==t.indexOf(e)&&(t=t.substring(e.length)),ny(t)}},bt.Ea=function(){return this.m},bt.Oa=function(){return"string"==typeof this.j?this.j:String(this.j)},(bt=vy.prototype).ma=8,bt.G=1,bt.Ja=function(t){if(this.m)if(this.m=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;const s=new Zm(this,this.j,t,void 0);let e=this.s;if(this.S&&(e?(e=tm(e),rm(e,this.S)):e=this.S),null!==this.o||this.N||(s.H=e,e=null),this.O)e:{for(var n=0,r=0;r<this.i.length;r++){var i=this.i[r];if("__data__"in i.g&&"string"==typeof(i=i.g.__data__)?i=i.length:i=void 0,void 0===i)break;if(4096<(n+=i)){n=r;break e}if(4096===n||r===this.i.length-1){n=r+1;break e}}n=1e3}else n=1e3;n=Ey(this,s,n),Iv(r=yv(this.F),"RID",t),Iv(r,"CVER",22),this.D&&Iv(r,"X-HTTP-Session-Id",this.D),Ty(this,r),e&&(this.N?n="headers="+encodeURIComponent(String(fy(e)))+"&"+n:this.o&&gy(r,this.o,e)),Kv(this.h,s),this.Ya&&Iv(r,"TYPE","init"),this.O?(Iv(r,"$req",n),Iv(r,"SID","null"),s.Z=!0,sv(s,r,null)):sv(s,r,n),this.G=2}}else 3==this.G&&(t?Iy(this,t):0==this.i.length||Bv(this.h)||Iy(this))},bt.Ia=function(){var e;this.u=null,Ay(this),this.$&&!(this.K||null==this.g||this.P<=0)&&(e=2*this.P,this.j.info("BP detection timer enabled: "+e),this.B=zm(wg(this.eb,this),e))},bt.eb=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.L=!1,this.K=!0,Km(10),_y(this),Ay(this))},bt.cb=function(){null!=this.v&&(this.v=null,_y(this),Sy(this),Km(19))},bt.kb=function(e){e?(this.j.info("Successfully pinged google.com"),Km(2)):(this.j.info("Failed to ping google.com"),Km(1))},(bt=Ly.prototype).xa=function(){},bt.wa=function(){},bt.va=function(){},bt.ua=function(){},bt.Ra=function(){},Fy.prototype.g=function(e,t){return new Uy(e,t)},Ig(Uy,vm),Uy.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.H=!0);var e=this.g,t=this.l,n=this.h||void 0;Km(0),e.V=t,e.ia=n||{},e.L=e.Y,e.F=Oy(e,null,e.V),by(e)},Uy.prototype.close=function(){yy(this.g)},Uy.prototype.u=function(e){var t,n=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.v&&((t={}).__data__=wm(e),e=t),n.i.push(new Uv(n.ab++,e)),3==n.G&&by(n)},Uy.prototype.M=function(){this.g.l=null,delete this.j,yy(this.g),delete this.g,Uy.X.M.call(this)},Ig(qy,Ym),Ig(Vy,Jm),Ig(By,Ly),By.prototype.xa=function(){ym(this.g,"a")},By.prototype.wa=function(e){ym(this.g,new qy(e))},By.prototype.va=function(e){ym(this.g,new Vy)},By.prototype.ua=function(){ym(this.g,"b")},Fy.prototype.createWebChannel=Fy.prototype.g,Uy.prototype.send=Uy.prototype.u,Uy.prototype.open=Uy.prototype.m,It.NO_ERROR=0,It.TIMEOUT=8,It.HTTP_ERROR=6,Kc.COMPLETE="complete",(Qm.EventType=yt).OPEN="a",yt.CLOSE="b",yt.ERROR="c",yt.MESSAGE="d",vm.prototype.listen=vm.prototype.N,ry.prototype.listenOnce=ry.prototype.O,ry.prototype.getLastError=ry.prototype.Oa,ry.prototype.getLastErrorCode=ry.prototype.Ea,ry.prototype.getStatus=ry.prototype.aa,ry.prototype.getResponseJson=ry.prototype.Sa,ry.prototype.getResponseText=ry.prototype.fa,ry.prototype.send=ry.prototype.da,ry.prototype.setWithCredentials=ry.prototype.Ka;var jy,$y=Vm,Ky=It,Wy=Kc,zy=Um,Gy=10,Hy=11,Qy=Yv,Yy=Qm,Jy=ry;const Xy="@firebase/firestore";class Zy{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}Zy.UNAUTHENTICATED=new Zy(null),Zy.GOOGLE_CREDENTIALS=new Zy("google-credentials-uid"),Zy.FIRST_PARTY=new Zy("first-party-uid"),Zy.MOCK_USER=new Zy("mock-user");let e_="9.16.0";const t_=new me("@firebase/firestore");function n_(){return t_.logLevel}function r_(e,...t){var n;t_.logLevel<=g.DEBUG&&(n=t.map(a_),t_.debug(`Firestore (${e_}): ${e}`,...n))}function i_(e,...t){var n;t_.logLevel<=g.ERROR&&(n=t.map(a_),t_.error(`Firestore (${e_}): ${e}`,...n))}function s_(e,...t){var n;t_.logLevel<=g.WARN&&(n=t.map(a_),t_.warn(`Firestore (${e_}): ${e}`,...n))}function a_(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function o_(e="Unexpected state"){var t=`FIRESTORE (${e_}) INTERNAL ASSERTION FAILED: `+e;throw i_(t),new Error(t)}function c_(e){e||o_()}const l_={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class u_ extends R{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class h_{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class d_{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class p_{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(Zy.UNAUTHENTICATED))}shutdown(){}}class f_{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class g_{constructor(e){this.t=e,this.currentUser=Zy.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,n){let r=this.i;const i=e=>this.i!==r?(r=this.i,n(e)):Promise.resolve();let s=new h_;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new h_,t.enqueueRetryable(()=>i(this.currentUser))};const a=()=>{const e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})},o=e=>{r_("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.auth.addAuthTokenListener(this.o),a()};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(r_("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new h_))},0),a()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(r_("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(c_("string"==typeof e.accessToken),new d_(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){var e=this.auth&&this.auth.getUid();return c_(null===e||"string"==typeof e),new Zy(e)}}class m_{constructor(e,t,n,r){this.h=e,this.l=t,this.m=n,this.g=r,this.type="FirstParty",this.user=Zy.FIRST_PARTY,this.p=new Map}I(){return this.g?this.g():(c_(!("object"!=typeof this.h||null===this.h||!this.h.auth||!this.h.auth.getAuthHeaderValueForFirstParty)),this.h.auth.getAuthHeaderValueForFirstParty([]))}get headers(){this.p.set("X-Goog-AuthUser",this.l);var e=this.I();return e&&this.p.set("Authorization",e),this.m&&this.p.set("X-Goog-Iam-Authorization-Token",this.m),this.p}}class v_{constructor(e,t,n,r){this.h=e,this.l=t,this.m=n,this.g=r}getToken(){return Promise.resolve(new m_(this.h,this.l,this.m,this.g))}start(e,t){e.enqueueRetryable(()=>t(Zy.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class y_{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class __{constructor(e){this.T=e,this.forceRefresh=!1,this.appCheck=null,this.A=null}start(t,n){const r=e=>{null!=e.error&&r_("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);var t=e.token!==this.A;return this.A=e.token,r_("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?n(e.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable(()=>r(e))};const i=e=>{r_("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.appCheck.addTokenListener(this.o)};this.T.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.T.getImmediate({optional:!0}))?i(e):r_("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(c_("string"==typeof e.token),this.A=e.token,new y_(e.token)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}class w_{static R(){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=Math.floor(256/t.length)*t.length;let r="";for(;r.length<20;){var i=function(t){const n="undefined"!=typeof self&&(self.crypto||self.msCrypto),r=new Uint8Array(t);if(n&&"function"==typeof n.getRandomValues)n.getRandomValues(r);else for(let e=0;e<t;e++)r[e]=Math.floor(256*Math.random());return r}(40);for(let e=0;e<i.length;++e)r.length<20&&i[e]<n&&(r+=t.charAt(i[e]%t.length))}return r}}function b_(e,t){return e<t?-1:t<e?1:0}function I_(e,n,r){return e.length===n.length&&e.every((e,t)=>r(e,n[t]))}function T_(e){return e+"\0"}class E_{constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new u_(l_.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new u_(l_.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-62135596800)throw new u_(l_.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new u_(l_.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}static now(){return E_.fromMillis(Date.now())}static fromDate(e){return E_.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),n=Math.floor(1e6*(e-1e3*t));return new E_(t,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?b_(this.nanoseconds,e.nanoseconds):b_(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds- -62135596800;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class k_{constructor(e){this.timestamp=e}static fromTimestamp(e){return new k_(e)}static min(){return new k_(new E_(0,0))}static max(){return new k_(new E_(253402300799,999999999))}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class S_{constructor(e,t,n){void 0===t?t=0:t>e.length&&o_(),void 0===n?n=e.length-t:n>e.length-t&&o_(),this.segments=e,this.offset=t,this.len=n}get length(){return this.len}isEqual(e){return 0===S_.comparator(this,e)}child(e){const t=this.segments.slice(this.offset,this.limit());return e instanceof S_?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,n=this.limit();t<n;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,t){const n=Math.min(e.length,t.length);for(let r=0;r<n;r++){const n=e.get(r),i=t.get(r);if(n<i)return-1;if(n>i)return 1}return e.length<t.length?-1:e.length>t.length?1:0}}class C_ extends S_{construct(e,t,n){return new C_(e,t,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}static fromString(...e){const t=[];for(const n of e){if(0<=n.indexOf("//"))throw new u_(l_.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);t.push(...n.split("/").filter(e=>0<e.length))}return new C_(t)}static emptyPath(){return new C_([])}}const A_=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class N_ extends S_{construct(e,t,n){return new N_(e,t,n)}static isValidIdentifier(e){return A_.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=!N_.isValidIdentifier(e)?"`"+e+"`":e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new N_(["__name__"])}static fromServerFormat(e){const t=[];let n="",r=0;var i=()=>{if(0===n.length)throw new u_(l_.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(n),n=""};let s=!1;for(;r<e.length;){const t=e[r];if("\\"===t){if(r+1===e.length)throw new u_(l_.INVALID_ARGUMENT,"Path has trailing escape character: "+e);const t=e[r+1];if("\\"!==t&&"."!==t&&"`"!==t)throw new u_(l_.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);n+=t,r+=2}else"`"===t?s=!s:"."!==t||s?n+=t:i(),r++}if(i(),s)throw new u_(l_.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new N_(t)}static emptyPath(){return new N_([])}}class R_{constructor(e){this.path=e}static fromPath(e){return new R_(C_.fromString(e))}static fromName(e){return new R_(C_.fromString(e).popFirst(5))}static empty(){return new R_(C_.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===C_.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return C_.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new R_(new C_(e.slice()))}}class x_{constructor(e,t,n,r){this.indexId=e,this.collectionGroup=t,this.fields=n,this.indexState=r}}function D_(e){return e.fields.find(e=>2===e.kind)}function P_(e){return e.fields.filter(e=>2!==e.kind)}x_.UNKNOWN_ID=-1;class O_{constructor(e,t){this.fieldPath=e,this.kind=t}}class M_{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new M_(0,U_.min())}}function L_(e,t){var n=e.toTimestamp().seconds,r=e.toTimestamp().nanoseconds+1,r=k_.fromTimestamp(1e9===r?new E_(n+1,0):new E_(n,r));return new U_(r,R_.empty(),t)}function F_(e){return new U_(e.readTime,e.key,-1)}class U_{constructor(e,t,n){this.readTime=e,this.documentKey=t,this.largestBatchId=n}static min(){return new U_(k_.min(),R_.empty(),-1)}static max(){return new U_(k_.max(),R_.empty(),-1)}}function q_(e,t){let n=e.readTime.compareTo(t.readTime);return 0!==n?n:(n=R_.comparator(e.documentKey,t.documentKey),0!==n?n:b_(e.largestBatchId,t.largestBatchId))}const V_="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class B_{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function j_(e){if(e.code!==l_.FAILED_PRECONDITION||e.message!==V_)throw e;r_("LocalStore","Unexpectedly lost primary lease")}class $_{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(r,i){return this.callbackAttached&&o_(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(r,this.result):new $_((t,n)=>{this.nextCallback=e=>{this.wrapSuccess(r,e).next(t,n)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,n)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof $_?t:$_.resolve(t)}catch(e){return $_.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):$_.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):$_.reject(t)}static resolve(n){return new $_((e,t)=>{e(n)})}static reject(n){return new $_((e,t)=>{t(n)})}static waitFor(e){return new $_((t,n)=>{let r=0,i=0,s=!1;e.forEach(e=>{++r,e.next(()=>{++i,s&&i===r&&t()},e=>n(e))}),s=!0,i===r&&t()})}static or(e){let t=$_.resolve(!1);for(const n of e)t=t.next(e=>e?$_.resolve(e):n());return t}static forEach(e,n){const r=[];return e.forEach((e,t)=>{r.push(n.call(this,e,t))}),this.waitFor(r)}static mapArray(o,c){return new $_((t,n)=>{const r=o.length,i=new Array(r);let s=0;for(let e=0;e<r;e++){const a=e;c(o[a]).next(e=>{i[a]=e,++s,s===r&&t(i)},e=>n(e))}})}static doWhile(r,i){return new $_((e,t)=>{const n=()=>{!0===r()?i().next(()=>{n()},t):e()};n()})}}class K_{constructor(n,e){this.action=n,this.transaction=e,this.aborted=!1,this.P=new h_,this.transaction.oncomplete=()=>{this.P.resolve()},this.transaction.onabort=()=>{e.error?this.P.reject(new G_(n,e.error)):this.P.resolve()},this.transaction.onerror=e=>{var t=X_(e.target.error);this.P.reject(new G_(n,t))}}static open(e,t,n,r){try{return new K_(t,e.transaction(r,n))}catch(e){throw new G_(t,e)}}get v(){return this.P.promise}abort(e){e&&this.P.reject(e),this.aborted||(r_("SimpleDb","Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}V(){const e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Q_(t)}}class W_{constructor(e,t,n){this.name=e,this.version=t,this.S=n,12.2===W_.D(w())&&i_("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}static delete(e){return r_("SimpleDb","Removing database:",e),Y_(window.indexedDB.deleteDatabase(e)).toPromise()}static C(){if(!C())return!1;if(W_.N())return!0;const e=w(),t=W_.D(e),n=0<t&&t<10,r=W_.k(e),i=0<r&&r<4.5;return!(0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||n||i)}static N(){var e;return"undefined"!=typeof process&&"YES"===(null===(e=process.env)||void 0===e?void 0:e.O)}static M(e,t){return e.store(t)}static D(e){const t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(n)}static k(e){const t=e.match(/Android ([\d.]+)/i),n=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async F(s){return this.db||(r_("SimpleDb","Opening database:",this.name),this.db=await new Promise((n,r)=>{const i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;n(t)},i.onblocked=()=>{r(new G_(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?r(new u_(l_.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?r(new u_(l_.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):r(new G_(s,t))},i.onupgradeneeded=e=>{r_("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.S.$(t,i.transaction,e.oldVersion,this.version).next(()=>{r_("SimpleDb","Database upgrade to version "+this.version+" complete")})}})),this.B&&(this.db.onversionchange=e=>this.B(e)),this.db}L(t){this.B=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(e,t,n,r){var i="readonly"===t;let s=0;for(;;){++s;try{this.db=await this.F(e);const t=K_.open(this.db,e,i?"readonly":"readwrite",n),s=r(t).next(e=>(t.V(),e)).catch(e=>(t.abort(e),$_.reject(e))).toPromise();return s.catch(()=>{}),await t.v,s}catch(e){const t=e,n="FirebaseError"!==t.name&&s<3;if(r_("SimpleDb","Transaction failed with error:",t.message,"Retrying:",n),this.close(),!n)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}class z_{constructor(e){this.q=e,this.U=!1,this.K=null}get isDone(){return this.U}get G(){return this.K}set cursor(e){this.q=e}done(){this.U=!0}j(e){this.K=e}delete(){return Y_(this.q.delete())}}class G_ extends u_{constructor(e,t){super(l_.UNAVAILABLE,`IndexedDB transaction '${e}' failed: ${t}`),this.name="IndexedDbTransactionError"}}function H_(e){return"IndexedDbTransactionError"===e.name}class Q_{constructor(e){this.store=e}put(e,t){let n;return n=void 0!==t?(r_("SimpleDb","PUT",this.store.name,e,t),this.store.put(t,e)):(r_("SimpleDb","PUT",this.store.name,"<auto-key>",e),this.store.put(e)),Y_(n)}add(e){return r_("SimpleDb","ADD",this.store.name,e,e),Y_(this.store.add(e))}get(t){return Y_(this.store.get(t)).next(e=>(r_("SimpleDb","GET",this.store.name,t,e=void 0===e?null:e),e))}delete(e){return r_("SimpleDb","DELETE",this.store.name,e),Y_(this.store.delete(e))}count(){return r_("SimpleDb","COUNT",this.store.name),Y_(this.store.count())}W(e,n){var t=this.options(e,n);if(t.index||"function"!=typeof this.store.getAll){const e=this.cursor(t),n=[];return this.H(e,(e,t)=>{n.push(t)}).next(()=>n)}{const e=this.store.getAll(t.range);return new $_((t,n)=>{e.onerror=e=>{n(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}}J(e,t){const r=this.store.getAll(e,null===t?void 0:t);return new $_((t,n)=>{r.onerror=e=>{n(e.target.error)},r.onsuccess=e=>{t(e.target.result)}})}Y(e,t){r_("SimpleDb","DELETE ALL",this.store.name);const n=this.options(e,t);n.X=!1;var r=this.cursor(n);return this.H(r,(e,t,n)=>n.delete())}Z(e,t){let n;t?n=e:(n={},t=e);var r=this.cursor(n);return this.H(r,t)}tt(i){const e=this.cursor({});return new $_((n,r)=>{e.onerror=e=>{var t=X_(e.target.error);r(t)},e.onsuccess=e=>{const t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():n()}):n()}})}H(e,s){const a=[];return new $_((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{const t=e.target.result;if(t){const n=new z_(t),r=s(t.primaryKey,t.value,n);if(r instanceof $_){const e=r.catch(e=>(n.done(),$_.reject(e)));a.push(e)}n.isDone?i():null===n.G?t.continue():t.continue(n.G)}else i()}}).next(()=>$_.waitFor(a))}options(e,t){let n;return void 0!==e&&("string"==typeof e?n=e:t=e),{index:n,range:t}}cursor(e){let t="next";if(e.reverse&&(t="prev"),e.index){const n=this.store.index(e.index);return e.X?n.openKeyCursor(e.range,t):n.openCursor(e.range,t)}return this.store.openCursor(e.range,t)}}function Y_(e){return new $_((n,r)=>{e.onsuccess=e=>{var t=e.target.result;n(t)},e.onerror=e=>{var t=X_(e.target.error);r(t)}})}let J_=!1;function X_(e){const t=W_.D(w());if(12.2<=t&&t<13){const t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){const e=new u_("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return J_||(J_=!0,setTimeout(()=>{throw e},0)),e}}return e}class Z_{constructor(e,t){this.asyncQueue=e,this.et=t,this.task=null}start(){this.nt(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}nt(e){r_("IndexBackiller",`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{r_("IndexBackiller",`Documents written: ${await this.et.st()}`)}catch(e){H_(e)?r_("IndexBackiller","Ignoring IndexedDB error during index backfill: ",e):await j_(e)}await this.nt(6e4)})}}class ew{constructor(e,t){this.localStore=e,this.persistence=t}async st(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.it(e,t))}it(e,t){const n=new Set;let r=t,i=!0;return $_.doWhile(()=>!0===i&&0<r,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>null===t||n.has(t)?void(i=!1):(r_("IndexBackiller",`Processing collection: ${t}`),this.rt(e,t,r).next(e=>{r-=e,n.add(t)})))).next(()=>t-r)}rt(r,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(r,i).next(n=>this.localStore.localDocuments.getNextDocuments(r,i,n,e).next(e=>{const t=e.changes;return this.localStore.indexManager.updateIndexEntries(r,t).next(()=>this.ot(n,e)).next(e=>(r_("IndexBackiller",`Updating offset: ${e}`),this.localStore.indexManager.updateCollectionGroup(r,i,e))).next(()=>t.size)}))}ot(e,t){let r=e;return t.changes.forEach((e,t)=>{var n=F_(t);0<q_(n,r)&&(r=n)}),new U_(r.readTime,r.documentKey,Math.max(t.batchId,e.largestBatchId))}}class tw{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ut(e),this.ct=e=>t.writeSequenceNumber(e))}ut(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ct&&this.ct(e),e}}tw.at=-1;class nw{constructor(e,t,n,r,i,s,a,o){this.databaseId=e,this.appId=t,this.persistenceKey=n,this.host=r,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.useFetchStreams=o}}class rw{constructor(e,t){this.projectId=e,this.database=t||"(default)"}static empty(){return new rw("","")}get isDefaultDatabase(){return"(default)"===this.database}isEqual(e){return e instanceof rw&&e.projectId===this.projectId&&e.database===this.database}}function iw(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function sw(e,t){for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t(n,e[n])}function aw(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function ow(e){return null==e}function cw(e){return 0===e&&1/e==-1/0}function lw(e){return"number"==typeof e&&Number.isInteger(e)&&!cw(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}class uw{constructor(e){this.binaryString=e}static fromBase64String(e){var t=atob(e);return new uw(t)}static fromUint8Array(e){var t=function(e){let t="";for(let n=0;n<e.length;++n)t+=String.fromCharCode(e[n]);return t}(e);return new uw(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){return function(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return b_(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}uw.EMPTY_BYTE_STRING=new uw("");const hw=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function dw(t){if(c_(!!t),"string"!=typeof t)return{seconds:pw(t.seconds),nanos:pw(t.nanos)};{let e=0;var n=hw.exec(t);c_(!!n),n[1]&&(n=((n=n[1])+"000000000").substr(0,9),e=Number(n));const r=new Date(t);return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function pw(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function fw(e){return"string"==typeof e?uw.fromBase64String(e):uw.fromUint8Array(e)}function gw(e){var t;return"server_timestamp"===(null===(t=((null===(t=null==e?void 0:e.mapValue)||void 0===t?void 0:t.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function mw(e){var t=dw(e.mapValue.fields.__local_write_time__.timestampValue);return new E_(t.seconds,t.nanos)}const vw={mapValue:{fields:{__type__:{stringValue:"__max__"}}}},yw={nullValue:"NULL_VALUE"};function _w(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?gw(e)?4:Dw(e)?9007199254740991:10:o_()}function ww(r,i){if(r===i)return!0;var e,t,n=_w(r);if(n!==_w(i))return!1;switch(n){case 0:case 9007199254740991:return!0;case 1:return r.booleanValue===i.booleanValue;case 4:return mw(r).isEqual(mw(i));case 3:return function(e){if("string"==typeof r.timestampValue&&"string"==typeof e.timestampValue&&r.timestampValue.length===e.timestampValue.length)return r.timestampValue===e.timestampValue;var t=dw(r.timestampValue),n=dw(e.timestampValue);return t.seconds===n.seconds&&t.nanos===n.nanos}(i);case 5:return r.stringValue===i.stringValue;case 6:return t=i,fw(r.bytesValue).isEqual(fw(t.bytesValue));case 7:return r.referenceValue===i.referenceValue;case 8:return e=i,pw((t=r).geoPointValue.latitude)===pw(e.geoPointValue.latitude)&&pw(t.geoPointValue.longitude)===pw(e.geoPointValue.longitude);case 2:return function(e,t){if("integerValue"in e&&"integerValue"in t)return pw(e.integerValue)===pw(t.integerValue);if("doubleValue"in e&&"doubleValue"in t){var n=pw(e.doubleValue),r=pw(t.doubleValue);return n===r?cw(n)===cw(r):isNaN(n)&&isNaN(r)}return!1}(r,i);case 9:return I_(r.arrayValue.values||[],i.arrayValue.values||[],ww);case 10:return function(e){const t=e.mapValue.fields||{},n=i.mapValue.fields||{};if(iw(t)!==iw(n))return!1;for(const e in t)if(t.hasOwnProperty(e)&&(void 0===n[e]||!ww(t[e],n[e])))return!1;return!0}(r);default:return o_()}}function bw(e,t){return void 0!==(e.values||[]).find(e=>ww(e,t))}function Iw(e,t){if(e===t)return 0;var n,r,i,s,a=_w(e),o=_w(t);if(a!==o)return b_(a,o);switch(a){case 0:case 9007199254740991:return 0;case 1:return b_(e.booleanValue,t.booleanValue);case 2:return r=t,i=pw(e.integerValue||e.doubleValue),s=pw(r.integerValue||r.doubleValue),i<s?-1:s<i?1:i===s?0:isNaN(i)?isNaN(s)?0:-1:1;case 3:return Tw(e.timestampValue,t.timestampValue);case 4:return Tw(mw(e),mw(t));case 5:return b_(e.stringValue,t.stringValue);case 6:return function(e,t){const n=fw(e),r=fw(t);return n.compareTo(r)}(e.bytesValue,t.bytesValue);case 7:return function(e,t){var n=e.split("/"),r=t.split("/");for(let i=0;i<n.length&&i<r.length;i++){const t=b_(n[i],r[i]);if(0!==t)return t}return b_(n.length,r.length)}(e.referenceValue,t.referenceValue);case 8:return n=e.geoPointValue,r=t.geoPointValue,0!==(s=b_(pw(n.latitude),pw(r.latitude)))?s:b_(pw(n.longitude),pw(r.longitude));case 9:return function(e,t){var n=e.values||[],r=t.values||[];for(let i=0;i<n.length&&i<r.length;++i){const t=Iw(n[i],r[i]);if(t)return t}return b_(n.length,r.length)}(e.arrayValue,t.arrayValue);case 10:return function(e,t){if(e===vw.mapValue&&t===vw.mapValue)return 0;if(e===vw.mapValue)return 1;if(t===vw.mapValue)return-1;const n=e.fields||{},r=Object.keys(n),i=t.fields||{},s=Object.keys(i);r.sort(),s.sort();for(let o=0;o<r.length&&o<s.length;++o){const t=b_(r[o],s[o]);if(0!==t)return t;var a=Iw(n[r[o]],i[s[o]]);if(0!==a)return a}return b_(r.length,s.length)}(e.mapValue,t.mapValue);default:throw o_()}}function Tw(e,t){if("string"==typeof e&&"string"==typeof t&&e.length===t.length)return b_(e,t);var n=dw(e),r=dw(t),i=b_(n.seconds,r.seconds);return 0!==i?i:b_(n.nanos,r.nanos)}function Ew(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?function(e){const t=dw(e);return`time(${t.seconds},${t.nanos})`}(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?fw(e.bytesValue).toBase64():"referenceValue"in e?(t=e.referenceValue,R_.fromName(t).toString()):"geoPointValue"in e?`geo(${(t=e.geoPointValue).latitude},${t.longitude})`:"arrayValue"in e?function(e){let t="[",n=!0;for(const r of e.values||[])n?n=!1:t+=",",t+=s(r);return t+"]"}(e.arrayValue):"mapValue"in e?function(e){const t=Object.keys(e.fields||{}).sort();let n="{",r=!0;for(const i of t)r?r=!1:n+=",",n+=`${i}:${s(e.fields[i])}`;return n+"}"}(e.mapValue):o_();var t}(e)}function kw(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/${t.path.canonicalString()}`}}function Sw(e){return e&&"integerValue"in e}function Cw(e){return!!e&&"arrayValue"in e}function Aw(e){return e&&"nullValue"in e}function Nw(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Rw(e){return e&&"mapValue"in e}function xw(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const n={mapValue:{fields:{}}};return sw(t.mapValue.fields,(e,t)=>n.mapValue.fields[e]=xw(t)),n}if(t.arrayValue){const r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=xw(t.arrayValue.values[e]);return r}return Object.assign({},t)}function Dw(e){return"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}function Pw(e,t){var n=Iw(e.value,t.value);return 0!==n?n:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Ow(e,t){var n=Iw(e.value,t.value);return 0!==n?n:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class Mw{constructor(e,t){this.position=e,this.inclusive=t}}function Lw(e,t,n){let r=0;for(let i=0;i<e.position.length;i++){const s=t[i],a=e.position[i];if(r=s.field.isKeyField()?R_.comparator(R_.fromName(a.referenceValue),n.key):Iw(a,n.data.field(s.field)),"desc"===s.dir&&(r*=-1),0!==r)break}return r}function Fw(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let n=0;n<e.position.length;n++)if(!ww(e.position[n],t.position[n]))return!1;return!0}class Uw{}class qw extends Uw{constructor(e,t,n){super(),this.field=e,this.op=t,this.value=n}static create(e,t,n){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,n):new Gw(e,t,n):"array-contains"===t?new Jw(e,n):"in"===t?new Xw(e,n):"not-in"===t?new Zw(e,n):"array-contains-any"===t?new eb(e,n):new qw(e,t,n)}static createKeyFieldInFilter(e,t,n){return new("in"===t?Hw:Qw)(e,n)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(Iw(t,this.value)):null!==t&&_w(this.value)===_w(t)&&this.matchesComparison(Iw(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return o_()}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}getFirstInequalityField(){return this.isInequality()?this.field:null}}class Vw extends Uw{constructor(e,t){super(),this.filters=e,this.op=t,this.ht=null}static create(e,t){return new Vw(e,t)}matches(t){return Bw(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null!==this.ht||(this.ht=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.ht}getFilters(){return Object.assign([],this.filters)}getFirstInequalityField(){var e=this.lt(e=>e.isInequality());return null!==e?e.field:null}lt(e){for(const t of this.getFlattenedFilters())if(e(t))return t;return null}}function Bw(e){return"and"===e.op}function jw(e){return"or"===e.op}function $w(e){return Kw(e)&&Bw(e)}function Kw(e){for(const t of e.filters)if(t instanceof Vw)return!1;return!0}function Ww(e,t){var n=e.filters.concat(t);return Vw.create(n,e.op)}function zw(e){return e instanceof qw?`${(t=e).field.canonicalString()} ${t.op} ${Ew(t.value)}`:e instanceof Vw?(e=e).op.toString()+" {"+e.getFilters().map(zw).join(" ,")+"}":"Filter";var t}class Gw extends qw{constructor(e,t,n){super(e,t,n),this.key=R_.fromName(n.referenceValue)}matches(e){var t=R_.comparator(e.key,this.key);return this.matchesComparison(t)}}class Hw extends qw{constructor(e,t){super(e,"in",t),this.keys=Yw(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class Qw extends qw{constructor(e,t){super(e,"not-in",t),this.keys=Yw(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function Yw(e,t){var n;return((null===(n=t.arrayValue)||void 0===n?void 0:n.values)||[]).map(e=>R_.fromName(e.referenceValue))}class Jw extends qw{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Cw(t)&&bw(t.arrayValue,this.value)}}class Xw extends qw{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&bw(this.value.arrayValue,t)}}class Zw extends qw{constructor(e,t){super(e,"not-in",t)}matches(e){if(bw(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;var t=e.data.field(this.field);return null!==t&&!bw(this.value.arrayValue,t)}}class eb extends qw{constructor(e,t){super(e,"array-contains-any",t)}matches(e){const t=e.data.field(this.field);return!(!Cw(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>bw(this.value.arrayValue,e))}}class tb{constructor(e,t="asc"){this.field=e,this.dir=t}}class nb{constructor(e,t){this.comparator=e,this.root=t||ib.EMPTY}insert(e,t){return new nb(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,ib.BLACK,null,null))}remove(e){return new nb(this.comparator,this.root.remove(e,this.comparator).copy(null,null,ib.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var n=this.comparator(e,t.key);if(0===n)return t.value;n<0?t=t.left:0<n&&(t=t.right)}return null}indexOf(e){let t=0,n=this.root;for(;!n.isEmpty();){var r=this.comparator(e,n.key);if(0===r)return t+n.left.size;n=r<0?n.left:(t+=n.left.size+1,n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(n){this.inorderTraversal((e,t)=>(n(e,t),!1))}toString(){const n=[];return this.inorderTraversal((e,t)=>(n.push(`${e}:${t}`),!1)),`{${n.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new rb(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new rb(this.root,e,this.comparator,!1)}getReverseIterator(){return new rb(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new rb(this.root,e,this.comparator,!0)}}class rb{constructor(e,t,n,r){this.isReverse=r,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?n(e.key,t):1,t&&r&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){if(0===this.nodeStack.length)return null;var e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class ib{constructor(e,t,n,r,i){this.key=e,this.value=t,this.color=null!=n?n:ib.RED,this.left=null!=r?r:ib.EMPTY,this.right=null!=i?i:ib.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,n,r,i){return new ib(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,n){let r=this;var i=n(e,r.key);return r=i<0?r.copy(null,null,null,r.left.insert(e,t,n),null):0===i?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return ib.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),e=e.copy(null,null,null,e.left.removeMin(),null),e.fixUp()}remove(e,t){let n,r=this;if(t(e,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(e,t),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===t(e,r.key)){if(r.right.isEmpty())return ib.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(e,t))}return r.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e}rotateLeft(){var e=this.copy(null,null,ib.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,ib.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw o_();if(this.right.isRed())throw o_();var e=this.left.check();if(e!==this.right.check())throw o_();return e+(this.isRed()?0:1)}}ib.EMPTY=null,ib.RED=!0,ib.BLACK=!1,ib.EMPTY=new class{constructor(){this.size=0}get key(){throw o_()}get value(){throw o_()}get color(){throw o_()}get left(){throw o_()}get right(){throw o_()}copy(e,t,n,r,i){return this}insert(e,t,n){return new ib(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class sb{constructor(e){this.comparator=e,this.data=new nb(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(n){this.data.inorderTraversal((e,t)=>(n(e),!1))}forEachInRange(e,t){const n=this.data.getIteratorFrom(e[0]);for(;n.hasNext();){var r=n.getNext();if(0<=this.comparator(r.key,e[1]))return;t(r.key)}}forEachWhile(e,t){let n;for(n=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();n.hasNext();)if(!e(n.getNext().key))return}firstAfterOrEqual(e){const t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new ab(this.data.getIterator())}getIteratorFrom(e){return new ab(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof sb))return!1;if(this.size!==e.size)return!1;const t=this.data.getIterator(),n=e.data.getIterator();for(;t.hasNext();){const e=t.getNext().key,r=n.getNext().key;if(0!==this.comparator(e,r))return!1}return!0}toArray(){const t=[];return this.forEach(e=>{t.push(e)}),t}toString(){const t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){const t=new sb(this.comparator);return t.data=e,t}}class ab{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function ob(e){return e.hasNext()?e.getNext():void 0}class cb{constructor(e){(this.fields=e).sort(N_.comparator)}static empty(){return new cb([])}unionWith(e){let t=new sb(N_.comparator);for(const e of this.fields)t=t.add(e);for(const n of e)t=t.add(n);return new cb(t.toArray())}covers(e){for(const t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return I_(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class lb{constructor(e){this.value=e}static empty(){return new lb({mapValue:{}})}field(n){if(n.isEmpty())return this.value;{let e=this.value;for(let t=0;t<n.length-1;++t)if(e=(e.mapValue.fields||{})[n.get(t)],!Rw(e))return null;return e=(e.mapValue.fields||{})[n.lastSegment()],e||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=xw(t)}setAll(e){let n=N_.emptyPath(),r={},i=[];e.forEach((e,t)=>{if(!n.isImmediateParentOf(t)){const e=this.getFieldsMap(n);this.applyChanges(e,r,i),r={},i=[],n=t.popLast()}e?r[t.lastSegment()]=xw(e):i.push(t.lastSegment())});var t=this.getFieldsMap(n);this.applyChanges(t,r,i)}delete(e){const t=this.field(e.popLast());Rw(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return ww(this.value,e.value)}getFieldsMap(t){let n=this.value;n.mapValue.fields||(n.mapValue={fields:{}});for(let r=0;r<t.length;++r){let e=n.mapValue.fields[t.get(r)];Rw(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},n.mapValue.fields[t.get(r)]=e),n=e}return n.mapValue.fields}applyChanges(n,e,t){sw(e,(e,t)=>n[e]=t);for(const e of t)delete n[e]}clone(){return new lb(xw(this.value))}}class ub{constructor(e,t,n,r,i,s,a){this.key=e,this.documentType=t,this.version=n,this.readTime=r,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new ub(e,0,k_.min(),k_.min(),k_.min(),lb.empty(),0)}static newFoundDocument(e,t,n,r){return new ub(e,1,t,k_.min(),n,r,0)}static newNoDocument(e,t){return new ub(e,2,t,k_.min(),k_.min(),lb.empty(),0)}static newUnknownDocument(e,t){return new ub(e,3,t,k_.min(),k_.min(),lb.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(k_.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=lb.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=lb.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=k_.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof ub&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new ub(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class hb{constructor(e,t=null,n=[],r=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=n,this.filters=r,this.limit=i,this.startAt=s,this.endAt=a,this.ft=null}}function db(e,t=null,n=[],r=[],i=null,s=null,a=null){return new hb(e,t,n,r,i,s,a)}function pb(e){const t=e;if(null===t.ft){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e+="|f:",e+=t.filters.map(e=>function t(e){if(e instanceof qw)return e.field.canonicalString()+e.op.toString()+Ew(e.value);if($w(e))return e.filters.map(e=>t(e)).join(",");var n=e.filters.map(e=>t(e)).join(",");return`${e.op}(${n})`}(e)).join(","),e+="|ob:",e+=t.orderBy.map(e=>function(e){return e.field.canonicalString()+e.dir}(e)).join(","),ow(t.limit)||(e+="|l:",e+=t.limit),t.startAt&&(e+="|lb:",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map(e=>Ew(e)).join(",")),t.endAt&&(e+="|ub:",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map(e=>Ew(e)).join(",")),t.ft=e}return t.ft}function fb(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(n=e.orderBy[i],r=t.orderBy[i],n.dir!==r.dir||!n.field.isEqual(r.field))return!1;var n,r;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function r(e,t){return e instanceof qw?(n=e,(s=t)instanceof qw&&n.op===s.op&&n.field.isEqual(s.field)&&ww(n.value,s.value)):e instanceof Vw?(i=t)instanceof Vw&&e.op===i.op&&e.filters.length===i.filters.length&&e.filters.reduce((e,t,n)=>e&&r(t,i.filters[n]),!0):void o_();var i,n,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Fw(e.startAt,t.startAt)&&Fw(e.endAt,t.endAt)}function gb(e){return R_.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function mb(e,t){return e.filters.filter(e=>e instanceof qw&&e.field.isEqual(t))}function vb(t,n,r){let i=yw,s=!0;for(const r of mb(t,n)){let e=yw,t=!0;switch(r.op){case"<":case"<=":e="nullValue"in(a=r.value)?yw:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?kw(rw.empty(),R_.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?{mapValue:{}}:o_();break;case"==":case"in":case">=":e=r.value;break;case">":e=r.value,t=!1;break;case"!=":case"not-in":e=yw}Pw({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==r)for(let e=0;e<t.orderBy.length;++e)if(t.orderBy[e].field.isEqual(n)){const t=r.position[e];Pw({value:i,inclusive:s},{value:t,inclusive:r.inclusive})<0&&(i=t,s=r.inclusive);break}return{value:i,inclusive:s}}function yb(t,n,r){let i=vw,s=!0;for(const r of mb(t,n)){let e=vw,t=!0;switch(r.op){case">=":case">":e="nullValue"in(a=r.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?kw(rw.empty(),R_.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?{mapValue:{}}:"mapValue"in a?vw:o_(),t=!1;break;case"==":case"in":case"<=":e=r.value;break;case"<":e=r.value,t=!1;break;case"!=":case"not-in":e=vw}0<Ow({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==r)for(let e=0;e<t.orderBy.length;++e)if(t.orderBy[e].field.isEqual(n)){const t=r.position[e];0<Ow({value:i,inclusive:s},{value:t,inclusive:r.inclusive})&&(i=t,s=r.inclusive);break}return{value:i,inclusive:s}}class _b{constructor(e,t=null,n=[],r=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=n,this.filters=r,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.dt=null,this._t=null,this.startAt,this.endAt}}function wb(e,t,n,r,i,s,a,o){return new _b(e,t,n,r,i,s,a,o)}function bb(e){return new _b(e)}function Ib(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function Tb(e){return 0<e.explicitOrderBy.length?e.explicitOrderBy[0].field:null}function Eb(e){for(const t of e.filters){const e=t.getFirstInequalityField();if(null!==e)return e}return null}function kb(e){return null!==e.collectionGroup}function Sb(t){const n=t;if(null===n.dt){n.dt=[];const t=Eb(n),e=Tb(n);if(null!==t&&null===e)t.isKeyField()||n.dt.push(new tb(t)),n.dt.push(new tb(N_.keyField(),"asc"));else{let e=!1;for(const r of n.explicitOrderBy)n.dt.push(r),r.field.isKeyField()&&(e=!0);if(!e){const t=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc";n.dt.push(new tb(N_.keyField(),t))}}}return n.dt}function Cb(e){const t=e;if(!t._t)if("F"===t.limitType)t._t=db(t.path,t.collectionGroup,Sb(t),t.filters,t.limit,t.startAt,t.endAt);else{const e=[];for(const i of Sb(t)){const t="desc"===i.dir?"asc":"desc";e.push(new tb(i.field,t))}var n=t.endAt?new Mw(t.endAt.position,t.endAt.inclusive):null,r=t.startAt?new Mw(t.startAt.position,t.startAt.inclusive):null;t._t=db(t.path,t.collectionGroup,e,t.filters,t.limit,n,r)}return t._t}function Ab(e,t){t.getFirstInequalityField(),Eb(e);var n=e.filters.concat([t]);return new _b(e.path,e.collectionGroup,e.explicitOrderBy.slice(),n,e.limit,e.limitType,e.startAt,e.endAt)}function Nb(e,t,n){return new _b(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,n,e.startAt,e.endAt)}function Rb(e,t){return fb(Cb(e),Cb(t))&&e.limitType===t.limitType}function xb(e){return`${pb(Cb(e))}|lt:${e.limitType}`}function Db(e){return`Query(target=${function(e){let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>zw(e)).join(", ")}]`),ow(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>function(e){return`${e.field.canonicalString()} (${e.dir})`}(e)).join(", ")}]`),e.startAt&&(t+=", startAt: ",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map(e=>Ew(e)).join(",")),e.endAt&&(t+=", endAt: ",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map(e=>Ew(e)).join(",")),`Target(${t})`}(Cb(e))}; limitType=${e.limitType})`}function Pb(n,e){return e.isFoundDocument()&&(i=n,a=(s=e).key.path,null!==i.collectionGroup?s.key.hasCollectionId(i.collectionGroup)&&i.path.isPrefixOf(a):R_.isDocumentKey(i.path)?i.path.isEqual(a):i.path.isImmediateParentOf(a))&&function(e){for(const t of Sb(n))if(!t.field.isKeyField()&&null===e.data.field(t.field))return;return 1}(e)&&function(e){for(const t of n.filters)if(!t.matches(e))return;return 1}(e)&&(i=e,(!(e=n).startAt||(t=e.startAt,r=Lw(t,Sb(e),i),t.inclusive?r<=0:r<0))&&(!e.endAt||(t=e.endAt,r=Lw(t,Sb(e),i),t.inclusive?0<=r:0<r)));var t,r,i,s,a}function Ob(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Mb(i){return(e,t)=>{let n=!1;for(const r of Sb(i)){const i=function(e,i,t){var n=e.field.isKeyField()?R_.comparator(i.key,t.key):function(e,t){var n=i.data.field(e),r=t.data.field(e);return null!==n&&null!==r?Iw(n,r):o_()}(e.field,t);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return o_()}}(r,e,t);if(0!==i)return i;n=n||r.field.isKeyField()}return 0}}function Lb(e,t){if(e.wt){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:cw(t)?"-0":t}}function Fb(e){return{integerValue:""+e}}function Ub(e,t){return lw(t)?Fb(t):Lb(e,t)}class qb{constructor(){this._=void 0}}function Vb(e,t){return e instanceof zb?Sw(n=t)||n&&"doubleValue"in n?t:{integerValue:0}:null;var n}class Bb extends qb{}class jb extends qb{constructor(e){super(),this.elements=e}}function $b(e,t){const n=Hb(t);for(const t of e.elements)n.some(e=>ww(e,t))||n.push(t);return{arrayValue:{values:n}}}class Kb extends qb{constructor(e){super(),this.elements=e}}function Wb(e,t){let n=Hb(t);for(const t of e.elements)n=n.filter(e=>!ww(e,t));return{arrayValue:{values:n}}}class zb extends qb{constructor(e,t){super(),this.yt=e,this.gt=t}}function Gb(e){return pw(e.integerValue||e.doubleValue)}function Hb(e){return Cw(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class Qb{constructor(e,t){this.field=e,this.transform=t}}class Yb{constructor(e,t){this.version=e,this.transformResults=t}}class Jb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new Jb}static exists(e){return new Jb(void 0,e)}static updateTime(e){return new Jb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function Xb(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class Zb{}function eI(e,n){if(!e.hasLocalMutations||n&&0===n.fields.length)return null;if(null===n)return e.isNoDocument()?new lI(e.key,Jb.none()):new iI(e.key,e.data,Jb.none());{const i=e.data,s=lb.empty();let t=new sb(N_.comparator);for(var r of n.fields)if(!t.has(r)){let e=i.field(r);null===e&&1<r.length&&(r=r.popLast(),e=i.field(r)),null===e?s.delete(r):s.set(r,e),t=t.add(r)}return new sI(e.key,s,new cb(t.toArray()),Jb.none())}}function tI(e,t,n){e instanceof iI?function(e,t,n){const r=e.value.clone(),i=oI(e.fieldTransforms,t,n.transformResults);r.setAll(i),t.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(e,t,n):e instanceof sI?function(e,t,n){if(!Xb(e.precondition,t))return t.convertToUnknownDocument(n.version);const r=oI(e.fieldTransforms,t,n.transformResults),i=t.data;i.setAll(aI(e)),i.setAll(r),t.convertToFoundDocument(n.version,i).setHasCommittedMutations()}(e,t,n):t.convertToNoDocument(n.version).setHasCommittedMutations()}function nI(e,t,n,r){return e instanceof iI?function(e,t,n,r){if(!Xb(e.precondition,t))return n;const i=e.value.clone(),s=cI(e.fieldTransforms,r,t);return i.setAll(s),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null}(e,t,n,r):e instanceof sI?function(e,t,n,r){if(!Xb(e.precondition,t))return n;const i=cI(e.fieldTransforms,r,t),s=t.data;return s.setAll(aI(e)),s.setAll(i),t.convertToFoundDocument(t.version,s).setHasLocalMutations(),null===n?null:n.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,t,n,r):(t=t,n=n,Xb(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):n)}function rI(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(n=e.fieldTransforms,r=t.fieldTransforms,!!(void 0===n&&void 0===r||n&&r&&I_(n,r,(e,t)=>function(e,t){return e.field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof jb&&t instanceof jb||e instanceof Kb&&t instanceof Kb?I_(e.elements,t.elements,ww):e instanceof zb&&t instanceof zb?ww(e.gt,t.gt):e instanceof Bb&&t instanceof Bb)}(e,t)))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask)));var n,r}class iI extends Zb{constructor(e,t,n,r=[]){super(),this.key=e,this.value=t,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class sI extends Zb{constructor(e,t,n,r,i=[]){super(),this.key=e,this.data=t,this.fieldMask=n,this.precondition=r,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function aI(n){const r=new Map;return n.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=n.data.field(e),r.set(e,t))}),r}function oI(e,t,n){const r=new Map;c_(e.length===n.length);for(let u=0;u<n.length;u++){var i=e[u],s=i.transform,a=t.data.field(i.field);r.set(i.field,(o=s,c=a,l=n[u],o instanceof jb?$b(o,c):o instanceof Kb?Wb(o,c):l))}var o,c,l;return r}function cI(e,t,n){const r=new Map;for(const l of e){const e=l.transform,u=n.data.field(l.field);r.set(l.field,(i=e,s=u,a=t,c=o=void 0,i instanceof Bb?function(){const e={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:a.seconds,nanos:a.nanoseconds}}}};return s&&(e.fields.__previous_value__=s),{mapValue:e}}():i instanceof jb?$b(i,s):i instanceof Kb?Wb(i,s):(o=Vb(i=i,s),c=Gb(o)+Gb(i.gt),Sw(o)&&Sw(i.gt)?Fb(c):Lb(i.yt,c))))}var i,s,a,o,c;return r}class lI extends Zb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class uI extends Zb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class hI{constructor(e){this.count=e}}function dI(e){switch(e){default:return o_(),0;case l_.CANCELLED:case l_.UNKNOWN:case l_.DEADLINE_EXCEEDED:case l_.RESOURCE_EXHAUSTED:case l_.INTERNAL:case l_.UNAVAILABLE:case l_.UNAUTHENTICATED:return;case l_.INVALID_ARGUMENT:case l_.NOT_FOUND:case l_.ALREADY_EXISTS:case l_.PERMISSION_DENIED:case l_.FAILED_PRECONDITION:case l_.ABORTED:case l_.OUT_OF_RANGE:case l_.UNIMPLEMENTED:case l_.DATA_LOSS:return 1}}function pI(e){if(void 0===e)return i_("GRPC error has no .code"),l_.UNKNOWN;switch(e){case jy.OK:return l_.OK;case jy.CANCELLED:return l_.CANCELLED;case jy.UNKNOWN:return l_.UNKNOWN;case jy.DEADLINE_EXCEEDED:return l_.DEADLINE_EXCEEDED;case jy.RESOURCE_EXHAUSTED:return l_.RESOURCE_EXHAUSTED;case jy.INTERNAL:return l_.INTERNAL;case jy.UNAVAILABLE:return l_.UNAVAILABLE;case jy.UNAUTHENTICATED:return l_.UNAUTHENTICATED;case jy.INVALID_ARGUMENT:return l_.INVALID_ARGUMENT;case jy.NOT_FOUND:return l_.NOT_FOUND;case jy.ALREADY_EXISTS:return l_.ALREADY_EXISTS;case jy.PERMISSION_DENIED:return l_.PERMISSION_DENIED;case jy.FAILED_PRECONDITION:return l_.FAILED_PRECONDITION;case jy.ABORTED:return l_.ABORTED;case jy.OUT_OF_RANGE:return l_.OUT_OF_RANGE;case jy.UNIMPLEMENTED:return l_.UNIMPLEMENTED;case jy.DATA_LOSS:return l_.DATA_LOSS;default:return o_()}}(It=jy=jy||{})[It.OK=0]="OK",It[It.CANCELLED=1]="CANCELLED",It[It.UNKNOWN=2]="UNKNOWN",It[It.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",It[It.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",It[It.NOT_FOUND=5]="NOT_FOUND",It[It.ALREADY_EXISTS=6]="ALREADY_EXISTS",It[It.PERMISSION_DENIED=7]="PERMISSION_DENIED",It[It.UNAUTHENTICATED=16]="UNAUTHENTICATED",It[It.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",It[It.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",It[It.ABORTED=10]="ABORTED",It[It.OUT_OF_RANGE=11]="OUT_OF_RANGE",It[It.UNIMPLEMENTED=12]="UNIMPLEMENTED",It[It.INTERNAL=13]="INTERNAL",It[It.UNAVAILABLE=14]="UNAVAILABLE",It[It.DATA_LOSS=15]="DATA_LOSS";class fI{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(e){const t=this.mapKeyFn(e),n=this.inner[t];if(void 0!==n)for(const[t,r]of n)if(this.equalsFn(t,e))return r}has(e){return void 0!==this.get(e)}set(e,t){const n=this.mapKeyFn(e),r=this.inner[n];if(void 0===r)return this.inner[n]=[[e,t]],void this.innerSize++;for(let i=0;i<r.length;i++)if(this.equalsFn(r[i][0],e))return void(r[i]=[e,t]);r.push([e,t]),this.innerSize++}delete(e){const t=this.mapKeyFn(e),n=this.inner[t];if(void 0===n)return!1;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],e))return 1===n.length?delete this.inner[t]:n.splice(r,1),this.innerSize--,!0;return!1}forEach(r){sw(this.inner,(e,t)=>{for(const[e,n]of t)r(e,n)})}isEmpty(){return aw(this.inner)}size(){return this.innerSize}}const gI=new nb(R_.comparator);const mI=new nb(R_.comparator);function vI(...e){let t=mI;for(const n of e)t=t.insert(n.key,n);return t}function yI(e){let n=mI;return e.forEach((e,t)=>n=n.insert(e,t.overlayedDocument)),n}function _I(){return new fI(e=>e.toString(),(e,t)=>e.isEqual(t))}const wI=new nb(R_.comparator),bI=new sb(R_.comparator);function II(...e){let t=bI;for(const n of e)t=t.add(n);return t}const TI=new sb(b_);class EI{constructor(e,t,n,r,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=n,this.documentUpdates=r,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,n){const r=new Map;return r.set(e,kI.createSynthesizedTargetChangeForCurrentChange(e,t,n)),new EI(k_.min(),r,TI,gI,II())}}class kI{constructor(e,t,n,r,i){this.resumeToken=e,this.current=t,this.addedDocuments=n,this.modifiedDocuments=r,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,n){return new kI(n,t,II(),II(),II())}}class SI{constructor(e,t,n,r){this.It=e,this.removedTargetIds=t,this.key=n,this.Tt=r}}class CI{constructor(e,t){this.targetId=e,this.Et=t}}class AI{constructor(e,t,n=uw.EMPTY_BYTE_STRING,r=null){this.state=e,this.targetIds=t,this.resumeToken=n,this.cause=r}}class NI{constructor(){this.At=0,this.Rt=DI(),this.bt=uw.EMPTY_BYTE_STRING,this.Pt=!1,this.vt=!0}get current(){return this.Pt}get resumeToken(){return this.bt}get Vt(){return 0!==this.At}get St(){return this.vt}Dt(e){0<e.approximateByteSize()&&(this.vt=!0,this.bt=e)}Ct(){let n=II(),r=II(),i=II();return this.Rt.forEach((e,t)=>{switch(t){case 0:n=n.add(e);break;case 2:r=r.add(e);break;case 1:i=i.add(e);break;default:o_()}}),new kI(this.bt,this.Pt,n,r,i)}xt(){this.vt=!1,this.Rt=DI()}Nt(e,t){this.vt=!0,this.Rt=this.Rt.insert(e,t)}kt(e){this.vt=!0,this.Rt=this.Rt.remove(e)}Ot(){this.At+=1}Mt(){--this.At}Ft(){this.vt=!0,this.Pt=!0}}class RI{constructor(e){this.$t=e,this.Bt=new Map,this.Lt=gI,this.qt=xI(),this.Ut=new sb(b_)}Kt(e){for(const t of e.It)e.Tt&&e.Tt.isFoundDocument()?this.Gt(t,e.Tt):this.Qt(t,e.key,e.Tt);for(const n of e.removedTargetIds)this.Qt(n,e.key,e.Tt)}jt(n){this.forEachTarget(n,e=>{const t=this.Wt(e);switch(n.state){case 0:this.zt(e)&&t.Dt(n.resumeToken);break;case 1:t.Mt(),t.Vt||t.xt(),t.Dt(n.resumeToken);break;case 2:t.Mt(),t.Vt||this.removeTarget(e);break;case 3:this.zt(e)&&(t.Ft(),t.Dt(n.resumeToken));break;case 4:this.zt(e)&&(this.Ht(e),t.Dt(n.resumeToken));break;default:o_()}})}forEachTarget(e,n){0<e.targetIds.length?e.targetIds.forEach(n):this.Bt.forEach((e,t)=>{this.zt(t)&&n(t)})}Jt(e){const t=e.targetId,n=e.Et.count,r=this.Yt(t);if(r){const e=r.target;if(gb(e))if(0===n){const n=new R_(e.path);this.Qt(t,n,ub.newNoDocument(n,k_.min()))}else c_(1===n);else this.Xt(t)!==n&&(this.Ht(t),this.Ut=this.Ut.add(t))}}Zt(r){const i=new Map;this.Bt.forEach((e,t)=>{var n=this.Yt(t);if(n){if(e.current&&gb(n.target)){const i=new R_(n.target.path);null!==this.Lt.get(i)||this.te(t,i)||this.Qt(t,i,ub.newNoDocument(i,r))}e.St&&(i.set(t,e.Ct()),e.xt())}});let s=II();this.qt.forEach((e,t)=>{let n=!0;t.forEachWhile(e=>{var t=this.Yt(e);return!t||2===t.purpose||(n=!1)}),n&&(s=s.add(e))}),this.Lt.forEach((e,t)=>t.setReadTime(r));var e=new EI(r,i,this.Ut,this.Lt,s);return this.Lt=gI,this.qt=xI(),this.Ut=new sb(b_),e}Gt(e,t){var n;this.zt(e)&&(n=this.te(e,t.key)?2:0,this.Wt(e).Nt(t.key,n),this.Lt=this.Lt.insert(t.key,t),this.qt=this.qt.insert(t.key,this.ee(t.key).add(e)))}Qt(e,t,n){if(this.zt(e)){const r=this.Wt(e);this.te(e,t)?r.Nt(t,1):r.kt(t),this.qt=this.qt.insert(t,this.ee(t).delete(e)),n&&(this.Lt=this.Lt.insert(t,n))}}removeTarget(e){this.Bt.delete(e)}Xt(e){var t=this.Wt(e).Ct();return this.$t.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ot(e){this.Wt(e).Ot()}Wt(e){let t=this.Bt.get(e);return t||(t=new NI,this.Bt.set(e,t)),t}ee(e){let t=this.qt.get(e);return t||(t=new sb(b_),this.qt=this.qt.insert(e,t)),t}zt(e){var t=null!==this.Yt(e);return t||r_("WatchChangeAggregator","Detected inactive target",e),t}Yt(e){var t=this.Bt.get(e);return t&&t.Vt?null:this.$t.ne(e)}Ht(t){this.Bt.set(t,new NI),this.$t.getRemoteKeysForTarget(t).forEach(e=>{this.Qt(t,e,null)})}te(e,t){return this.$t.getRemoteKeysForTarget(e).has(t)}}function xI(){return new nb(R_.comparator)}function DI(){return new nb(R_.comparator)}const PI={asc:"ASCENDING",desc:"DESCENDING"},OI={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},MI={and:"AND",or:"OR"};class LI{constructor(e,t){this.databaseId=e,this.wt=t}}function FI(e,t){return e.wt?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function UI(e,t){return e.wt?t.toBase64():t.toUint8Array()}function qI(e){return c_(!!e),k_.fromTimestamp((t=dw(e),new E_(t.seconds,t.nanos)));var t}function VI(e,t){return e=e,new C_(["projects",e.projectId,"databases",e.database]).child("documents").child(t).canonicalString()}function BI(e){var t=C_.fromString(e);return c_(sT(t)),t}function jI(e,t){return VI(e.databaseId,t.path)}function $I(e,t){const n=BI(t);if(n.get(1)!==e.databaseId.projectId)throw new u_(l_.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+e.databaseId.projectId);if(n.get(3)!==e.databaseId.database)throw new u_(l_.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+e.databaseId.database);return new R_(GI(n))}function KI(e,t){return VI(e.databaseId,t)}function WI(e){var t=BI(e);return 4===t.length?C_.emptyPath():GI(t)}function zI(e){return new C_(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function GI(e){return c_(4<e.length&&"documents"===e.get(4)),e.popFirst(5)}function HI(e,t,n){return{name:jI(e,t),fields:n.value.mapValue.fields}}function QI(e,t,n){const r=$I(e,t.name),i=qI(t.updateTime),s=t.createTime?qI(t.createTime):k_.min(),a=new lb({mapValue:{fields:t.fields}}),o=ub.newFoundDocument(r,i,s,a);return n&&o.setHasCommittedMutations(),n?o.setHasCommittedMutations():o}function YI(e,t){let n;if(t instanceof iI)n={update:HI(e,t.key,t.value)};else if(t instanceof lI)n={delete:jI(e,t.key)};else if(t instanceof sI)n={update:HI(e,t.key,t.data),updateMask:function(e){const t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}}(t.fieldMask)};else{if(!(t instanceof uI))return o_();n={verify:jI(e,t.key)}}return 0<t.fieldTransforms.length&&(n.updateTransforms=t.fieldTransforms.map(e=>function(e){var t=e.transform;if(t instanceof Bb)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof jb)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Kb)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof zb)return{fieldPath:e.field.canonicalString(),increment:t.gt};throw o_()}(e))),t.precondition.isNone||(n.currentDocument=void 0!==(r=t.precondition).updateTime?{updateTime:(t=r.updateTime,FI(e,t.toTimestamp()))}:void 0!==r.exists?{exists:r.exists}:o_()),n;var r}function JI(t,n){const e=n.currentDocument?void 0!==(i=n.currentDocument).updateTime?Jb.updateTime(qI(i.updateTime)):void 0!==i.exists?Jb.exists(i.exists):Jb.none():Jb.none(),r=n.updateTransforms?n.updateTransforms.map(e=>function(e,t){let n=null;if("setToServerValue"in t)c_("REQUEST_TIME"===t.setToServerValue),n=new Bb;else if("appendMissingElements"in t){const e=t.appendMissingElements.values||[];n=new jb(e)}else if("removeAllFromArray"in t){const e=t.removeAllFromArray.values||[];n=new Kb(e)}else"increment"in t?n=new zb(e,t.increment):o_();var r=N_.fromServerFormat(t.fieldPath);return new Qb(r,n)}(t,e)):[];var i;if(n.update){n.update.name;var s=$I(t,n.update.name),a=new lb({mapValue:{fields:n.update.fields}});if(n.updateMask){const t=function(){const e=n.updateMask.fieldPaths||[];return new cb(e.map(e=>N_.fromServerFormat(e)))}();return new sI(s,a,t,e,r)}return new iI(s,a,e,r)}if(n.delete){const r=$I(t,n.delete);return new lI(r,e)}if(n.verify){const r=$I(t,n.verify);return new uI(r,e)}return o_()}function XI(e,t){return{documents:[KI(e,t.path)]}}function ZI(e,t){const n={structuredQuery:{}},r=t.path;null!==t.collectionGroup?(n.parent=KI(e,r),n.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(n.parent=KI(e,r.popLast()),n.structuredQuery.from=[{collectionId:r.lastSegment()}]);var i=function(e){if(0!==e.length)return function n(e){return e instanceof qw?function(e){if("=="===e.op){if(Nw(e.value))return{unaryFilter:{field:rT(e.field),op:"IS_NAN"}};if(Aw(e.value))return{unaryFilter:{field:rT(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Nw(e.value))return{unaryFilter:{field:rT(e.field),op:"IS_NOT_NAN"}};if(Aw(e.value))return{unaryFilter:{field:rT(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:rT(e.field),op:tT(e.op),value:e.value}}}(e):e instanceof Vw?function(e){const t=e.getFilters().map(e=>n(e));return 1===t.length?t[0]:{compositeFilter:{op:nT(e.op),filters:t}}}(e):o_()}(Vw.create(e,"and"))}(t.filters);i&&(n.structuredQuery.where=i);i=function(e){if(0!==e.length)return e.map(e=>function(e){return{field:rT(e.field),direction:(e=e.dir,PI[e])}}(e))}(t.orderBy);i&&(n.structuredQuery.orderBy=i);var s,i=(s=t.limit,e.wt||ow(s)?s:{value:s});return null!==i&&(n.structuredQuery.limit=i),t.startAt&&(n.structuredQuery.startAt={before:(i=t.startAt).inclusive,values:i.position}),t.endAt&&(n.structuredQuery.endAt={before:!(t=t.endAt).inclusive,values:t.position}),n}function eT(e){let t=WI(e.parent);const n=e.structuredQuery,r=n.from?n.from.length:0;let i=null;if(0<r){c_(1===r);const f=n.from[0];f.allDescendants?i=f.collectionId:t=t.child(f.collectionId)}let s=[];n.where&&(s=function(){const e=function t(e){return void 0!==e.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":const t=iT(e.unaryFilter.field);return qw.create(t,"==",{doubleValue:NaN});case"IS_NULL":const n=iT(e.unaryFilter.field);return qw.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=iT(e.unaryFilter.field);return qw.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const i=iT(e.unaryFilter.field);return qw.create(i,"!=",{nullValue:"NULL_VALUE"});default:return o_()}}(e):void 0!==e.fieldFilter?function(e){return qw.create(iT(e.fieldFilter.field),function(e){switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return o_()}}(e.fieldFilter.op),e.fieldFilter.value)}(e):void 0!==e.compositeFilter?function(e){return Vw.create(e.compositeFilter.filters.map(e=>t(e)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return o_()}}(e.compositeFilter.op))}(e):o_()}(n.where);return e instanceof Vw&&$w(e)?e.getFilters():[e]}());let a=[];n.orderBy&&(a=n.orderBy.map(e=>function(e){return new tb(iT(e.field),function(){switch(e.direction){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}())}(e)));let o=null;var c,l,u,h;n.limit&&(o=(e=n.limit,ow(c="object"==typeof e?e.value:e)?null:c));let d=null;n.startAt&&(d=(l=n.startAt,h=!!l.before,u=l.values||[],new Mw(u,h)));let p=null;return n.endAt&&(p=(l=n.endAt,u=!l.before,h=l.values||[],new Mw(h,u))),wb(t,i,a,s,o,"F",d,p)}function tT(e){return OI[e]}function nT(e){return MI[e]}function rT(e){return{fieldPath:e.canonicalString()}}function iT(e){return N_.fromServerFormat(e.fieldPath)}function sT(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}function aT(e){let t="";for(let n=0;n<e.length;n++)0<t.length&&(t=oT(t)),t=function(e,t){let n=t;const r=e.length;for(let i=0;i<r;i++){const r=e.charAt(i);switch(r){case"\0":n+="";break;case"":n+="";break;default:n+=r}}return n}(e.get(n),t);return oT(t)}function oT(e){return e+""}function cT(t){const n=t.length;if(c_(2<=n),2===n)return c_(""===t.charAt(0)&&""===t.charAt(1)),C_.emptyPath();const r=n-2,i=[];let s="";for(let a=0;a<n;){const n=t.indexOf("",a);switch((n<0||n>r)&&o_(),t.charAt(n+1)){case"":const r=t.substring(a,n);let e;0===s.length?e=r:(s+=r,e=s,s=""),i.push(e);break;case"":s+=t.substring(a,n),s+="\0";break;case"":s+=t.substring(a,n+1);break;default:o_()}a=n+2}return new C_(i)}const lT=["userId","batchId"];function uT(e,t){return[e,aT(t)]}function hT(e,t,n){return[e,aT(t),n]}const dT={},pT=["prefixPath","collectionGroup","readTime","documentId"],fT=["prefixPath","collectionGroup","documentId"],gT=["collectionGroup","readTime","prefixPath","documentId"],mT=["canonicalId","targetId"],vT=["targetId","path"],yT=["path","targetId"],_T=["collectionId","parent"],wT=["indexId","uid"],bT=["uid","sequenceNumber"],IT=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],TT=["indexId","uid","orderedDocumentKey"],ET=["userId","collectionPath","documentId"],kT=["userId","collectionPath","largestBatchId"],ST=["userId","collectionGroup","largestBatchId"],CT=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],AT=[...CT,"documentOverlays"],NT=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],RT=NT,xT=[...RT,"indexConfiguration","indexState","indexEntries"];class DT extends B_{constructor(e,t){super(),this.se=e,this.currentSequenceNumber=t}}function PT(e,t){var n=e;return W_.M(n.se,t)}class OT{constructor(e,t,n,r){this.batchId=e,this.localWriteTime=t,this.baseMutations=n,this.mutations=r}applyToRemoteDocument(e,t){var n=t.mutationResults;for(let r=0;r<this.mutations.length;r++){const i=this.mutations[r];i.key.isEqual(e.key)&&tI(i,e,n[r])}}applyToLocalView(e,t){for(const n of this.baseMutations)n.key.isEqual(e.key)&&(t=nI(n,e,t,this.localWriteTime));for(const r of this.mutations)r.key.isEqual(e.key)&&(t=nI(r,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(s,a){const o=_I();return this.mutations.forEach(e=>{const t=s.get(e.key),n=t.overlayedDocument;let r=this.applyToLocalView(n,t.mutatedFields);r=a.has(e.key)?null:r;var i=eI(n,r);null!==i&&o.set(e.key,i),n.isValidDocument()||n.convertToNoDocument(k_.min())}),o}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),II())}isEqual(e){return this.batchId===e.batchId&&I_(this.mutations,e.mutations,(e,t)=>rI(e,t))&&I_(this.baseMutations,e.baseMutations,(e,t)=>rI(e,t))}}class MT{constructor(e,t,n,r){this.batch=e,this.commitVersion=t,this.mutationResults=n,this.docVersions=r}static from(e,t,n){c_(e.mutations.length===n.length);let r=wI;var i=e.mutations;for(let s=0;s<i.length;s++)r=r.insert(i[s].key,n[s].version);return new MT(e,t,n,r)}}class LT{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}class FT{constructor(e,t,n,r,i=k_.min(),s=k_.min(),a=uw.EMPTY_BYTE_STRING){this.target=e,this.targetId=t,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a}withSequenceNumber(e){return new FT(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken)}withResumeToken(e,t){return new FT(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e)}withLastLimboFreeSnapshotVersion(e){return new FT(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken)}}class UT{constructor(e){this.ie=e}}function qT(e,t){const n=t.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:VT(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())r.document={name:jI(i=e.ie,(e=t).key),fields:e.data.value.mapValue.fields,updateTime:FI(i,e.version.toTimestamp()),createTime:FI(i,e.createTime.toTimestamp())};else if(t.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:BT(t.version)};else{if(!t.isUnknownDocument())return o_();r.unknownDocument={path:n.path.toArray(),version:BT(t.version)}}var i;return r}function VT(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function BT(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function jT(e){var t=new E_(e.seconds,e.nanoseconds);return k_.fromTimestamp(t)}function $T(t,e){const n=(e.baseMutations||[]).map(e=>JI(t.ie,e));for(let s=0;s<e.mutations.length-1;++s){const n=e.mutations[s];if(s+1<e.mutations.length&&void 0!==e.mutations[s+1].transform){const r=e.mutations[s+1];n.updateTransforms=r.transform.fieldTransforms,e.mutations.splice(s+1,1),++s}}const r=e.mutations.map(e=>JI(t.ie,e)),i=E_.fromMillis(e.localWriteTimeMs);return new OT(e.batchId,i,n,r)}function KT(e){var t,n=jT(e.readTime),r=void 0!==e.lastLimboFreeSnapshotVersion?jT(e.lastLimboFreeSnapshotVersion):k_.min();let i;return i=void 0!==e.query.documents?(c_(1===(t=e.query).documents.length),Cb(bb(WI(t.documents[0])))):Cb(eT(e.query)),new FT(i,e.targetId,0,e.lastListenSequenceNumber,n,r,uw.fromBase64String(e.resumeToken))}function WT(e,t){var n=BT(t.snapshotVersion),r=BT(t.lastLimboFreeSnapshotVersion),i=(gb(t.target)?XI:ZI)(e.ie,t.target),s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:pb(t.target),readTime:n,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:i}}function zT(e){var t=eT({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Nb(t,t.limit,"L"):t}function GT(e,t){return new LT(t.largestBatchId,JI(e.ie,t.overlayMutation))}function HT(e,t){var n=t.path.lastSegment();return[e,aT(t.path.popLast()),n]}function QT(e,t,n,r){return{indexId:e,uid:t.uid||"",sequenceNumber:n,readTime:BT(r.readTime),documentKey:aT(r.documentKey.path),largestBatchId:r.largestBatchId}}class YT{getBundleMetadata(e,t){return JT(e).get(t).next(e=>{if(e)return{id:(t=e).bundleId,createTime:jT(t.createTime),version:t.version};var t})}saveBundleMetadata(e,t){return JT(e).put({bundleId:(n=t).id,createTime:BT(qI(n.createTime)),version:n.version});var n}getNamedQuery(e,t){return XT(e).get(t).next(e=>{if(e)return{name:(t=e).name,query:zT(t.bundledQuery),readTime:jT(t.readTime)};var t})}saveNamedQuery(e,t){return XT(e).put({name:(t=t).name,readTime:BT(qI(t.readTime)),bundledQuery:t.bundledQuery})}}function JT(e){return PT(e,"bundles")}function XT(e){return PT(e,"namedQueries")}class ZT{constructor(e,t){this.yt=e,this.userId=t}static re(e,t){var n=t.uid||"";return new ZT(e,n)}getOverlay(e,t){return e0(e).get(HT(this.userId,t)).next(e=>e?GT(this.yt,e):null)}getOverlays(e,t){const n=_I();return $_.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&n.set(t,e)})).next(()=>n)}saveOverlays(r,i,e){const s=[];return e.forEach((e,t)=>{var n=new LT(i,t);s.push(this.oe(r,n))}),$_.waitFor(s)}removeOverlaysForBatchId(n,e,r){const t=new Set;e.forEach(e=>t.add(aT(e.getCollectionPath())));const i=[];return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,r],[this.userId,e,r+1],!1,!0);i.push(e0(n).Y("collectionPathOverlayIndex",t))}),$_.waitFor(i)}getOverlaysForCollection(e,t,n){const r=_I(),i=aT(t),s=IDBKeyRange.bound([this.userId,i,n],[this.userId,i,Number.POSITIVE_INFINITY],!0);return e0(e).W("collectionPathOverlayIndex",s).next(e=>{for(const t of e){const e=GT(this.yt,t);r.set(e.getKey(),e)}return r})}getOverlaysForCollectionGroup(e,t,n,i){const s=_I();let a;var r=IDBKeyRange.bound([this.userId,t,n],[this.userId,t,Number.POSITIVE_INFINITY],!0);return e0(e).Z({index:"collectionGroupOverlayIndex",range:r},(e,t,n)=>{const r=GT(this.yt,t);s.size()<i||r.largestBatchId===a?(s.set(r.getKey(),r),a=r.largestBatchId):n.done()}).next(()=>s)}oe(e,t){return e0(e).put(function(e,t,n){var[,r,i]=HT(t,n.mutation.key);return{userId:t,collectionPath:r,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:YI(e.ie,n.mutation)}}(this.yt,this.userId,t))}}function e0(e){return PT(e,"documentOverlays")}class t0{constructor(){}ue(e,t){this.ce(e,t),t.ae()}ce(e,t){var n,r;"nullValue"in e?this.he(t,5):"booleanValue"in e?(this.he(t,10),t.le(e.booleanValue?1:0)):"integerValue"in e?(this.he(t,15),t.le(pw(e.integerValue))):"doubleValue"in e?(n=pw(e.doubleValue),isNaN(n)?this.he(t,13):(this.he(t,15),cw(n)?t.le(0):t.le(n))):"timestampValue"in e?(r=e.timestampValue,this.he(t,20),"string"==typeof r?t.fe(r):(t.fe(`${r.seconds||""}`),t.le(r.nanos||0))):"stringValue"in e?(this.de(e.stringValue,t),this._e(t)):"bytesValue"in e?(this.he(t,30),t.we(fw(e.bytesValue)),this._e(t)):"referenceValue"in e?this.me(e.referenceValue,t):"geoPointValue"in e?(r=e.geoPointValue,this.he(t,45),t.le(r.latitude||0),t.le(r.longitude||0)):"mapValue"in e?Dw(e)?this.he(t,Number.MAX_SAFE_INTEGER):(this.ge(e.mapValue,t),this._e(t)):"arrayValue"in e?(this.ye(e.arrayValue,t),this._e(t)):o_()}de(e,t){this.he(t,25),this.pe(e,t)}pe(e,t){t.fe(e)}ge(e,t){var n=e.fields||{};this.he(t,55);for(const e of Object.keys(n))this.de(e,t),this.ce(n[e],t)}ye(e,t){var n=e.values||[];this.he(t,50);for(const e of n)this.ce(e,t)}me(e,t){this.he(t,37),R_.fromName(e).path.forEach(e=>{this.he(t,60),this.pe(e,t)})}he(e,t){e.le(t)}_e(e){e.le(2)}}function n0(e){var t=64-function(e){let t=0;for(let r=0;r<8;++r){var n=function(e){if(0===e)return 8;let t=0;return e>>4==0&&(t+=4,e<<=4),e>>6==0&&(t+=2,e<<=2),e>>7==0&&(t+=1),t}(255&e[r]);if(t+=n,8!==n)break}return t}(e);return Math.ceil(t/8)}t0.Ie=new t0;class r0{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Te(e){const t=e[Symbol.iterator]();let n=t.next();for(;!n.done;)this.Ee(n.value),n=t.next();this.Ae()}Re(e){const t=e[Symbol.iterator]();let n=t.next();for(;!n.done;)this.be(n.value),n=t.next();this.Pe()}ve(e){for(const t of e){const e=t.charCodeAt(0);if(e<128)this.Ee(e);else if(e<2048)this.Ee(960|e>>>6),this.Ee(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Ee(480|e>>>12),this.Ee(128|63&e>>>6),this.Ee(128|63&e);else{const e=t.codePointAt(0);this.Ee(240|e>>>18),this.Ee(128|63&e>>>12),this.Ee(128|63&e>>>6),this.Ee(128|63&e)}}this.Ae()}Ve(e){for(const t of e){const e=t.charCodeAt(0);if(e<128)this.be(e);else if(e<2048)this.be(960|e>>>6),this.be(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.be(480|e>>>12),this.be(128|63&e>>>6),this.be(128|63&e);else{const e=t.codePointAt(0);this.be(240|e>>>18),this.be(128|63&e>>>12),this.be(128|63&e>>>6),this.be(128|63&e)}}this.Pe()}Se(e){var t=this.De(e),n=n0(t);this.Ce(1+n),this.buffer[this.position++]=255&n;for(let r=t.length-n;r<t.length;++r)this.buffer[this.position++]=255&t[r]}xe(e){var t=this.De(e),n=n0(t);this.Ce(1+n),this.buffer[this.position++]=~(255&n);for(let r=t.length-n;r<t.length;++r)this.buffer[this.position++]=~(255&t[r])}Ne(){this.ke(255),this.ke(255)}Oe(){this.Me(255),this.Me(255)}reset(){this.position=0}seed(e){this.Ce(e.length),this.buffer.set(e,this.position),this.position+=e.length}Fe(){return this.buffer.slice(0,this.position)}De(e){const t=function(e){const t=new DataView(new ArrayBuffer(8));return t.setFloat64(0,e,!1),new Uint8Array(t.buffer)}(e),n=0!=(128&t[0]);t[0]^=n?255:128;for(let r=1;r<t.length;++r)t[r]^=n?255:0;return t}Ee(e){var t=255&e;0==t?(this.ke(0),this.ke(255)):255==t?(this.ke(255),this.ke(0)):this.ke(t)}be(e){var t=255&e;0==t?(this.Me(0),this.Me(255)):255==t?(this.Me(255),this.Me(0)):this.Me(e)}Ae(){this.ke(0),this.ke(1)}Pe(){this.Me(0),this.Me(1)}ke(e){this.Ce(1),this.buffer[this.position++]=e}Me(e){this.Ce(1),this.buffer[this.position++]=~e}Ce(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);const n=new Uint8Array(e);n.set(this.buffer),this.buffer=n}}}class i0{constructor(e){this.$e=e}we(e){this.$e.Te(e)}fe(e){this.$e.ve(e)}le(e){this.$e.Se(e)}ae(){this.$e.Ne()}}class s0{constructor(e){this.$e=e}we(e){this.$e.Re(e)}fe(e){this.$e.Ve(e)}le(e){this.$e.xe(e)}ae(){this.$e.Oe()}}class a0{constructor(){this.$e=new r0,this.Be=new i0(this.$e),this.Le=new s0(this.$e)}seed(e){this.$e.seed(e)}qe(e){return 0===e?this.Be:this.Le}Fe(){return this.$e.Fe()}reset(){this.$e.reset()}}class o0{constructor(e,t,n,r){this.indexId=e,this.documentKey=t,this.arrayValue=n,this.directionalValue=r}Ue(){const e=this.directionalValue.length,t=0===e||255===this.directionalValue[e-1]?e+1:e,n=new Uint8Array(t);return n.set(this.directionalValue,0),t!==e?n.set([0],this.directionalValue.length):++n[n.length-1],new o0(this.indexId,this.documentKey,this.arrayValue,n)}}function c0(e,t){let n=e.indexId-t.indexId;return 0!==n?n:(n=l0(e.arrayValue,t.arrayValue),0!==n?n:(n=l0(e.directionalValue,t.directionalValue),0!==n?n:R_.comparator(e.documentKey,t.documentKey)))}function l0(e,t){for(let r=0;r<e.length&&r<t.length;++r){var n=e[r]-t[r];if(0!=n)return n}return e.length-t.length}class u0{constructor(e){this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.Ke=e.orderBy,this.Ge=[];for(const t of e.filters){const e=t;e.isInequality()?this.Qe=e:this.Ge.push(e)}}je(e){c_(e.collectionGroup===this.collectionId);var t=D_(e);if(void 0!==t&&!this.We(t))return!1;var n=P_(e);let r=0,i=0;for(;r<n.length&&this.We(n[r]);++r);if(r===n.length)return!0;if(void 0!==this.Qe){const e=n[r];if(!this.ze(this.Qe,e)||!this.He(this.Ke[i++],e))return!1;++r}for(;r<n.length;++r){const e=n[r];if(i>=this.Ke.length||!this.He(this.Ke[i++],e))return!1}return!0}We(e){for(const t of this.Ge)if(this.ze(t,e))return!0;return!1}ze(e,t){if(void 0===e||!e.field.isEqual(t.fieldPath))return!1;var n="array-contains"===e.op||"array-contains-any"===e.op;return 2===t.kind==n}He(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function h0(e){if(0===e.getFilters().length)return[];const t=function t(e){if(c_(e instanceof qw||e instanceof Vw),e instanceof qw)return e;if(1===e.filters.length)return t(e.filters[0]);const n=e.filters.map(e=>t(e));let r=Vw.create(n,e.op);return r=v0(r),f0(r)?r:(c_(r instanceof Vw),c_(Bw(r)),c_(1<r.filters.length),r.filters.reduce((e,t)=>g0(e,t)))}(function t(n){var e;if(c_(n instanceof qw||n instanceof Vw),n instanceof qw){if(n instanceof Xw){const r=(null===(e=null===(e=n.value.arrayValue)||void 0===e?void 0:e.values)||void 0===e?void 0:e.map(e=>qw.create(n.field,"==",e)))||[];return Vw.create(r,"or")}return n}const r=n.filters.map(e=>t(e));return Vw.create(r,n.op)}(e));return c_(f0(t)),d0(t)||p0(t)?[t]:t.getFilters()}function d0(e){return e instanceof qw}function p0(e){return e instanceof Vw&&$w(e)}function f0(e){return d0(e)||p0(e)||function(e){if(e instanceof Vw&&jw(e)){for(const t of e.getFilters())if(!d0(t)&&!p0(t))return!1;return!0}return!1}(e)}function g0(e,t){var n,r;return c_(e instanceof qw||e instanceof Vw),c_(t instanceof qw||t instanceof Vw),v0(e instanceof qw?t instanceof qw?(n=e,r=t,Vw.create([n,r],"and")):m0(e,t):t instanceof qw?m0(t,e):function(e,t){if(c_(0<e.filters.length&&0<t.filters.length),Bw(e)&&Bw(t))return Ww(e,t.getFilters());const n=jw(e)?e:t,r=jw(e)?t:e,i=n.filters.map(e=>g0(e,r));return Vw.create(i,"or")}(e,t))}function m0(t,e){if(Bw(e))return Ww(e,t.getFilters());var n=e.filters.map(e=>g0(t,e));return Vw.create(n,"or")}function v0(t){if(c_(t instanceof qw||t instanceof Vw),t instanceof qw)return t;const e=t.getFilters();if(1===e.length)return v0(e[0]);if(Kw(t))return t;const n=e.map(e=>v0(e)),r=[];return n.forEach(e=>{e instanceof qw?r.push(e):e instanceof Vw&&(e.op===t.op?r.push(...e.filters):r.push(e))}),1===r.length?r[0]:Vw.create(r,t.op)}class y0{constructor(){this.Je=new _0}addToCollectionParentIndex(e,t){return this.Je.add(t),$_.resolve()}getCollectionParents(e,t){return $_.resolve(this.Je.getEntries(t))}addFieldIndex(e,t){return $_.resolve()}deleteFieldIndex(e,t){return $_.resolve()}getDocumentsMatchingTarget(e,t){return $_.resolve(null)}getIndexType(e,t){return $_.resolve(0)}getFieldIndexes(e,t){return $_.resolve([])}getNextCollectionGroupToUpdate(e){return $_.resolve(null)}getMinOffset(e,t){return $_.resolve(U_.min())}getMinOffsetFromCollectionGroup(e,t){return $_.resolve(U_.min())}updateCollectionGroup(e,t,n){return $_.resolve()}updateIndexEntries(e,t){return $_.resolve()}}class _0{constructor(){this.index={}}add(e){const t=e.lastSegment(),n=e.popLast(),r=this.index[t]||new sb(C_.comparator),i=!r.has(n);return this.index[t]=r.add(n),i}has(e){const t=e.lastSegment(),n=e.popLast(),r=this.index[t];return r&&r.has(n)}getEntries(e){return(this.index[e]||new sb(C_.comparator)).toArray()}}const w0=new Uint8Array(0);class b0{constructor(e,t){this.user=e,this.databaseId=t,this.Ye=new _0,this.Xe=new fI(e=>pb(e),(e,t)=>fb(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){if(this.Ye.has(t))return $_.resolve();var n=t.lastSegment(),r=t.popLast();e.addOnCommittedListener(()=>{this.Ye.add(t)});r={collectionId:n,parent:aT(r)};return I0(e).put(r)}getCollectionParents(e,n){const r=[],t=IDBKeyRange.bound([n,""],[T_(n),""],!1,!0);return I0(e).W(t).next(e=>{for(const t of e){if(t.collectionId!==n)break;r.push(cT(t.parent))}return r})}addFieldIndex(e,t){const n=E0(e),r={indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete r.indexId;const i=n.add(r);if(t.indexState){const n=k0(e);return i.next(e=>{n.put(QT(e,this.user,t.indexState.sequenceNumber,t.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){const n=E0(e),r=k0(e),i=T0(e);return n.delete(t.indexId).next(()=>r.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}getDocumentsMatchingTarget(e,l){const u=T0(e);let h=!0;const n=new Map;return $_.forEach(this.Ze(l),t=>this.tn(e,t).next(e=>{h=h&&!!e,n.set(t,e)})).next(()=>{if(h){let c=II();const h=[];return $_.forEach(n,(e,t)=>{r_("IndexedDbIndexManager",`Using index ${o=e,`id=${o.indexId}|cg=${o.collectionGroup}|f=${o.fields.map(e=>`${e.fieldPath}:${e.kind}`).join(",")}`} to execute ${pb(l)}`);var n=function(e,t){var n=D_(t);if(void 0===n)return null;for(const t of mb(e,n.fieldPath))switch(t.op){case"array-contains-any":return t.value.arrayValue.values||[];case"array-contains":return[t.value]}return null}(t,e),r=function(e,t){const n=new Map;for(const r of P_(t))for(const t of mb(e,r.fieldPath))switch(t.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),t.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),t.value),Array.from(n.values())}return null}(t,e),i=function(e,t){const n=[];let r=!0;for(const i of P_(t)){const t=(0===i.kind?vb:yb)(e,i.fieldPath,e.startAt);n.push(t.value),r=r&&t.inclusive}return new Mw(n,r)}(t,e),s=function(e,t){const n=[];let r=!0;for(const i of P_(t)){const t=(0===i.kind?yb:vb)(e,i.fieldPath,e.endAt);n.push(t.value),r=r&&t.inclusive}return new Mw(n,r)}(t,e),a=this.en(e,t,i),o=this.en(e,t,s),r=this.nn(e,t,r),r=this.sn(e.indexId,n,a,i.inclusive,o,s.inclusive,r);return $_.forEach(r,e=>u.J(e,l.limit).next(e=>{e.forEach(e=>{var t=R_.fromSegments(e.documentKey);c.has(t)||(c=c.add(t),h.push(t))})}))}).next(()=>h)}return $_.resolve(null)})}Ze(t){let e=this.Xe.get(t);return e||(e=0===t.filters.length?[t]:h0(Vw.create(t.filters,"and")).map(e=>db(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Xe.set(t,e),e)}sn(t,e,n,r,i,s,a){const o=(null!=e?e.length:1)*Math.max(n.length,i.length),c=o/(null!=e?e.length:1),l=[];for(let u=0;u<o;++u){const o=e?this.rn(e[u/c]):w0,h=this.on(t,o,n[u%c],r),d=this.un(t,o,i[u%c],s),p=a.map(e=>this.on(t,o,e,!0));l.push(...this.createRange(h,d,p))}return l}on(e,t,n,r){const i=new o0(e,R_.empty(),t,n);return r?i:i.Ue()}un(e,t,n,r){const i=new o0(e,R_.empty(),t,n);return r?i.Ue():i}tn(e,t){const r=new u0(t),n=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,n).next(e=>{let t=null;for(const n of e)r.je(n)&&(!t||n.fields.length>t.fields.length)&&(t=n);return t})}getIndexType(e,t){let n=2;const r=this.Ze(t);return $_.forEach(r,t=>this.tn(e,t).next(e=>{e?0!==n&&e.fields.length<function(e){let t=new sb(N_.comparator),n=!1;for(const r of e.filters)for(const e of r.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:t=t.add(e.field));for(const n of e.orderBy)n.field.isKeyField()||(t=t.add(n.field));return t.size+(n?1:0)}(t)&&(n=1):n=0})).next(()=>null!==t.limit&&1<r.length&&2===n?1:n)}cn(e,t){const n=new a0;for(const i of P_(e)){const e=t.data.field(i.fieldPath);if(null==e)return null;var r=n.qe(i.kind);t0.Ie.ue(e,r)}return n.Fe()}rn(e){const t=new a0;return t0.Ie.ue(e,t.qe(0)),t.Fe()}an(e,t){const n=new a0;return t0.Ie.ue(kw(this.databaseId,t),n.qe(0===(r=P_(e)).length?0:r[r.length-1].kind)),n.Fe();var r}nn(e,t,n){if(null===n)return[];let r=[];r.push(new a0);let i=0;for(const s of P_(e)){const e=n[i++];for(const n of r)if(this.hn(t,s.fieldPath)&&Cw(e))r=this.ln(r,s,e);else{const t=n.qe(s.kind);t0.Ie.ue(e,t)}}return this.fn(r)}en(e,t,n){return this.nn(e,t,n.position)}fn(e){const t=[];for(let n=0;n<e.length;++n)t[n]=e[n].Fe();return t}ln(e,t,n){const r=[...e],i=[];for(const e of n.arrayValue.values||[])for(const n of r){const r=new a0;r.seed(n.Fe()),t0.Ie.ue(e,r.qe(t.kind)),i.push(r)}return i}hn(e,t){return!!e.filters.find(e=>e instanceof qw&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){const n=E0(e),r=k0(e);return(t?n.W("collectionGroupIndex",IDBKeyRange.bound(t,t)):n.W()).next(e=>{const s=[];return $_.forEach(e,i=>r.get([i.indexId,this.uid]).next(e=>{var t,n,r;s.push((t=i,n=(e=e)?new M_(e.sequenceNumber,new U_(jT(e.readTime),new R_(cT(e.documentKey)),e.largestBatchId)):M_.empty(),r=t.fields.map(([e,t])=>new O_(N_.fromServerFormat(e),t)),new x_(t.indexId,t.collectionGroup,r,n)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var n=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=n?n:b_(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,n,r){const i=E0(e),s=k0(e);return this.dn(e).next(t=>i.W("collectionGroupIndex",IDBKeyRange.bound(n,n)).next(e=>$_.forEach(e,e=>s.put(QT(e.indexId,this.user,t,r)))))}updateIndexEntries(i,e){const n=new Map;return $_.forEach(e,(t,r)=>{var e=n.get(t.collectionGroup);return(e?$_.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(n.set(t.collectionGroup,e),$_.forEach(e,n=>this._n(i,t,n).next(e=>{var t=this.wn(r,n);return e.isEqual(t)?$_.resolve():this.mn(i,r,n,e,t)}))))})}gn(e,t,n,r){return T0(e).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.an(n,t.key),documentKey:t.key.path.toArray()})}yn(e,t,n,r){return T0(e).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.an(n,t.key),t.key.path.toArray()])}_n(e,n,r){const t=T0(e);let i=new sb(c0);return t.Z({index:"documentKeyIndex",range:IDBKeyRange.only([r.indexId,this.uid,this.an(r,n)])},(e,t)=>{i=i.add(new o0(r.indexId,n,t.arrayValue,t.directionalValue))}).next(()=>i)}wn(e,t){let n=new sb(c0);var r=this.cn(t,e);if(null==r)return n;const i=D_(t);if(null!=i){var s=e.data.field(i.fieldPath);if(Cw(s))for(const i of s.arrayValue.values||[])n=n.add(new o0(t.indexId,e.key,this.rn(i),r))}else n=n.add(new o0(t.indexId,e.key,w0,r));return n}mn(t,n,r,l,e){r_("IndexedDbIndexManager","Updating index entries for document '%s'",n.key);const i=[];return function(e,n,r,i){var s=l.getIterator(),a=e.getIterator();let o=ob(s),c=ob(a);for(;o||c;){let e=!1,t=!1;if(o&&c){const r=n(o,c);r<0?t=!0:0<r&&(e=!0)}else null!=o?t=!0:e=!0;e?(r(c),c=ob(a)):t?(i(o),o=ob(s)):(o=ob(s),c=ob(a))}}(e,c0,e=>{i.push(this.gn(t,n,r,e))},e=>{i.push(this.yn(t,n,r,e))}),$_.waitFor(i)}dn(e){let r=1;return k0(e).Z({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,n)=>{n.done(),r=t.sequenceNumber+1}).next(()=>r)}createRange(e,t,n){n=n.sort((e,t)=>c0(e,t)).filter((e,t,n)=>!t||0!==c0(e,n[t-1]));const r=[];r.push(e);for(const i of n){const n=c0(i,e),s=c0(i,t);if(0===n)r[0]=e.Ue();else if(0<n&&s<0)r.push(i),r.push(i.Ue());else if(0<s)break}r.push(t);const i=[];for(let a=0;a<r.length;a+=2){if(this.pn(r[a],r[a+1]))return[];const t=[r[a].indexId,this.uid,r[a].arrayValue,r[a].directionalValue,w0,[]],n=[r[a+1].indexId,this.uid,r[a+1].arrayValue,r[a+1].directionalValue,w0,[]];i.push(IDBKeyRange.bound(t,n))}return i}pn(e,t){return 0<c0(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(S0)}getMinOffset(t,e){return $_.mapArray(this.Ze(e),e=>this.tn(t,e).next(e=>e||o_())).next(S0)}}function I0(e){return PT(e,"collectionParents")}function T0(e){return PT(e,"indexEntries")}function E0(e){return PT(e,"indexConfiguration")}function k0(e){return PT(e,"indexState")}function S0(e){c_(0!==e.length);let t=e[0].indexState.offset,n=t.largestBatchId;for(let i=1;i<e.length;i++){var r=e[i].indexState.offset;q_(r,t)<0&&(t=r),n<r.largestBatchId&&(n=r.largestBatchId)}return new U_(t.readTime,t.documentKey,n)}const C0={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class A0{constructor(e,t,n){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=n}static withCacheSize(e){return new A0(e,A0.DEFAULT_COLLECTION_PERCENTILE,A0.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}}function N0(e,t,n){const r=e.store("mutations"),i=e.store("documentMutations"),s=[],a=IDBKeyRange.only(n.batchId);let o=0;const c=r.Z({range:a},(e,t,n)=>(o++,n.delete()));s.push(c.next(()=>{c_(1===o)}));const l=[];for(const e of n.mutations){const r=hT(t,e.key.path,n.batchId);s.push(i.delete(r)),l.push(e.key)}return $_.waitFor(s).next(()=>l)}function R0(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw o_();t=e.noDocument}return JSON.stringify(t).length}A0.DEFAULT_COLLECTION_PERCENTILE=10,A0.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,A0.DEFAULT=new A0(41943040,A0.DEFAULT_COLLECTION_PERCENTILE,A0.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),A0.DISABLED=new A0(-1,0,0);class x0{constructor(e,t,n,r){this.userId=e,this.yt=t,this.indexManager=n,this.referenceDelegate=r,this.In={}}static re(e,t,n,r){c_(""!==e.uid);var i=e.isAuthenticated()?e.uid:"";return new x0(i,t,n,r)}checkEmpty(e){let r=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return P0(e).Z({index:"userMutationsIndex",range:t},(e,t,n)=>{r=!1,n.done()}).next(()=>r)}addMutationBatch(u,h,d,p){const f=O0(u),g=P0(u);return g.add({}).next(e=>{c_("number"==typeof e);const t=new OT(e,h,d,p),n=(i=this.yt,s=this.userId,a=t,o=a.baseMutations.map(e=>YI(i.ie,e)),c=a.mutations.map(e=>YI(i.ie,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:c}),r=[];var i,s,a,o,c;let l=new sb((e,t)=>b_(e.canonicalString(),t.canonicalString()));for(const u of p){const h=hT(this.userId,u.key.path,e);l=l.add(u.key.path.popLast()),r.push(g.put(n)),r.push(f.put(h,dT))}return l.forEach(e=>{r.push(this.indexManager.addToCollectionParentIndex(u,e))}),u.addOnCommittedListener(()=>{this.In[e]=t.keys()}),$_.waitFor(r).next(()=>t)})}lookupMutationBatch(e,t){return P0(e).get(t).next(e=>e?(c_(e.userId===this.userId),$T(this.yt,e)):null)}Tn(e,n){return this.In[n]?$_.resolve(this.In[n]):this.lookupMutationBatch(e,n).next(e=>{if(e){var t=e.keys();return this.In[n]=t}return null})}getNextMutationBatchAfterBatchId(e,t){const r=t+1,n=IDBKeyRange.lowerBound([this.userId,r]);let i=null;return P0(e).Z({index:"userMutationsIndex",range:n},(e,t,n)=>{t.userId===this.userId&&(c_(t.batchId>=r),i=$T(this.yt,t)),n.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let r=-1;return P0(e).Z({index:"userMutationsIndex",range:t,reverse:!0},(e,t,n)=>{r=t.batchId,n.done()}).next(()=>r)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return P0(e).W("userMutationsIndex",t).next(e=>e.map(e=>$T(this.yt,e)))}getAllMutationBatchesAffectingDocumentKey(a,o){const e=uT(this.userId,o.path),t=IDBKeyRange.lowerBound(e),c=[];return O0(a).Z({range:t},(e,t,n)=>{var[r,i,s]=e,i=cT(i);if(r===this.userId&&o.path.isEqual(i))return P0(a).get(s).next(e=>{if(!e)throw o_();c_(e.userId===this.userId),c.push($T(this.yt,e))});n.done()}).next(()=>c)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new sb(b_);const n=[];return e.forEach(a=>{var e=uT(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=O0(t).Z({range:e},(e,t,n)=>{var[r,i,s]=e,i=cT(i);r===this.userId&&a.path.isEqual(i)?o=o.add(s):n.done()});n.push(e)}),$_.waitFor(n).next(()=>this.En(t,o))}getAllMutationBatchesAffectingQuery(e,t){const a=t.path,o=a.length+1,n=uT(this.userId,a),r=IDBKeyRange.lowerBound(n);let c=new sb(b_);return O0(e).Z({range:r},(e,t,n)=>{var[r,i,s]=e,i=cT(i);r===this.userId&&a.isPrefixOf(i)?i.length===o&&(c=c.add(s)):n.done()}).next(()=>this.En(e,c))}En(t,e){const n=[],r=[];return e.forEach(e=>{r.push(P0(t).get(e).next(e=>{if(null===e)throw o_();c_(e.userId===this.userId),n.push($T(this.yt,e))}))}),$_.waitFor(r).next(()=>n)}removeMutationBatch(t,n){return N0(t.se,this.userId,n).next(e=>(t.addOnCommittedListener(()=>{this.An(n.batchId)}),$_.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}An(e){delete this.In[e]}performConsistencyCheck(n){return this.checkEmpty(n).next(e=>{if(!e)return $_.resolve();var t=IDBKeyRange.lowerBound([this.userId]);const r=[];return O0(n).Z({range:t},(e,t,n)=>{if(e[0]===this.userId){const t=cT(e[1]);r.push(t)}else n.done()}).next(()=>{c_(0===r.length)})})}containsKey(e,t){return D0(e,this.userId,t)}Rn(e){return M0(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""})}}function D0(e,s,t){const n=uT(s,t.path),a=n[1],r=IDBKeyRange.lowerBound(n);let o=!1;return O0(e).Z({range:r,X:!0},(e,t,n)=>{var[r,i]=e;r===s&&i===a&&(o=!0),n.done()}).next(()=>o)}function P0(e){return PT(e,"mutations")}function O0(e){return PT(e,"documentMutations")}function M0(e){return PT(e,"mutationQueues")}class L0{constructor(e){this.bn=e}next(){return this.bn+=2,this.bn}static Pn(){return new L0(0)}static vn(){return new L0(-1)}}class F0{constructor(e,t){this.referenceDelegate=e,this.yt=t}allocateTargetId(n){return this.Vn(n).next(e=>{const t=new L0(e.highestTargetId);return e.highestTargetId=t.next(),this.Sn(n,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.Vn(e).next(e=>k_.fromTimestamp(new E_(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.Vn(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,n,r){return this.Vn(t).next(e=>(e.highestListenSequenceNumber=n,r&&(e.lastRemoteSnapshotVersion=r.toTimestamp()),n>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=n),this.Sn(t,e)))}addTargetData(t,n){return this.Dn(t,n).next(()=>this.Vn(t).next(e=>(e.targetCount+=1,this.Cn(n,e),this.Sn(t,e))))}updateTargetData(e,t){return this.Dn(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>U0(t).delete(e.targetId)).next(()=>this.Vn(t)).next(e=>(c_(0<e.targetCount),--e.targetCount,this.Sn(t,e)))}removeTargets(r,i,s){let a=0;const o=[];return U0(r).Z((e,t)=>{var n=KT(t);n.sequenceNumber<=i&&null===s.get(n.targetId)&&(a++,o.push(this.removeTargetData(r,n)))}).next(()=>$_.waitFor(o)).next(()=>a)}forEachTarget(e,r){return U0(e).Z((e,t)=>{var n=KT(t);r(n)})}Vn(e){return q0(e).get("targetGlobalKey").next(e=>(c_(null!==e),e))}Sn(e,t){return q0(e).put("targetGlobalKey",t)}Dn(e,t){return U0(e).put(WT(this.yt,t))}Cn(e,t){let n=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,n=!0),e.sequenceNumber>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,n=!0),n}getTargetCount(e){return this.Vn(e).next(e=>e.targetCount)}getTargetData(e,i){var t=pb(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return U0(e).Z({range:t,index:"queryTargetsIndex"},(e,t,n)=>{var r=KT(t);fb(i,r.target)&&(s=r,n.done())}).next(()=>s)}addMatchingKeys(n,e,r){const i=[],s=V0(n);return e.forEach(e=>{var t=aT(e.path);i.push(s.put({targetId:r,path:t})),i.push(this.referenceDelegate.addReference(n,r,e))}),$_.waitFor(i)}removeMatchingKeys(n,e,r){const i=V0(n);return $_.forEach(e,e=>{var t=aT(e.path);return $_.waitFor([i.delete([r,t]),this.referenceDelegate.removeReference(n,r,e)])})}removeMatchingKeysForTargetId(e,t){const n=V0(e),r=IDBKeyRange.bound([t],[t+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(e,t){const n=IDBKeyRange.bound([t],[t+1],!1,!0),r=V0(e);let i=II();return r.Z({range:n,X:!0},(e,t,n)=>{var r=cT(e[1]),r=new R_(r);i=i.add(r)}).next(()=>i)}containsKey(e,t){var n=aT(t.path),n=IDBKeyRange.bound([n],[T_(n)],!1,!0);let r=0;return V0(e).Z({index:"documentTargetsIndex",X:!0,range:n},([e],t,n)=>{0!==e&&(r++,n.done())}).next(()=>0<r)}ne(e,t){return U0(e).get(t).next(e=>e?KT(e):null)}}function U0(e){return PT(e,"targets")}function q0(e){return PT(e,"targetGlobal")}function V0(e){return PT(e,"targetDocuments")}function B0([e,t],[n,r]){var i=b_(e,n);return 0===i?b_(t,r):i}class j0{constructor(e){this.xn=e,this.buffer=new sb(B0),this.Nn=0}kn(){return++this.Nn}On(e){var t=[e,this.kn()];if(this.buffer.size<this.xn)this.buffer=this.buffer.add(t);else{const e=this.buffer.last();B0(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class $0{constructor(e,t,n){this.garbageCollector=e,this.asyncQueue=t,this.localStore=n,this.Mn=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Fn(6e4)}stop(){this.Mn&&(this.Mn.cancel(),this.Mn=null)}get started(){return null!==this.Mn}Fn(e){r_("LruGarbageCollector",`Garbage collection scheduled in ${e}ms`),this.Mn=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Mn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){H_(e)?r_("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",e):await j_(e)}await this.Fn(3e5)})}}class K0{constructor(e,t){this.$n=e,this.params=t}calculateTargetCount(e,t){return this.$n.Bn(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return $_.resolve(tw.at);const n=new j0(t);return this.$n.forEachTarget(e,e=>n.On(e.sequenceNumber)).next(()=>this.$n.Ln(e,e=>n.On(e))).next(()=>n.maxValue)}removeTargets(e,t,n){return this.$n.removeTargets(e,t,n)}removeOrphanedDocuments(e,t){return this.$n.removeOrphanedDocuments(e,t)}collect(t,n){return-1===this.params.cacheSizeCollectionThreshold?(r_("LruGarbageCollector","Garbage collection skipped; disabled"),$_.resolve(C0)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(r_("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),C0):this.qn(t,n))}getCacheSize(e){return this.$n.getCacheSize(e)}qn(t,n){let r,i,s,a,o,c,l;const u=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(r_("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(r=e,o=Date.now(),this.removeTargets(t,r,n))).next(e=>(s=e,c=Date.now(),this.removeOrphanedDocuments(t,r))).next(e=>(l=Date.now(),n_()<=g.DEBUG&&r_("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${a-u}ms\n\tDetermined least recently used ${i} in `+(o-a)+"ms\n"+`\tRemoved ${s} targets in `+(c-o)+"ms\n"+`\tRemoved ${e} documents in `+(l-c)+"ms\n"+`Total Duration: ${l-u}ms`),$_.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}class W0{constructor(e,t){this.db=e,this.garbageCollector=(e=this,t=t,new K0(e,t))}Bn(e){const n=this.Un(e);return this.db.getTargetCache().getTargetCount(e).next(t=>n.next(e=>t+e))}Un(e){let t=0;return this.Ln(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}Ln(e,n){return this.Kn(e,(e,t)=>n(t))}addReference(e,t,n){return z0(e,n)}removeReference(e,t,n){return z0(e,n)}removeTargets(e,t,n){return this.db.getTargetCache().removeTargets(e,t,n)}markPotentiallyOrphaned(e,t){return z0(e,t)}Gn(t,n){let r=!1;return M0(t).tt(e=>D0(t,e,n).next(e=>(e&&(r=!0),$_.resolve(!e)))).next(()=>r)}removeOrphanedDocuments(n,r){const i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[];let a=0;return this.Kn(n,(t,e)=>{if(e<=r){const r=this.Gn(n,t).next(e=>{if(!e)return a++,i.getEntry(n,t).next(()=>(i.removeEntry(t,k_.min()),V0(n).delete([0,aT(t.path)])))});s.push(r)}}).next(()=>$_.waitFor(s)).next(()=>i.apply(n)).next(()=>a)}removeTarget(e,t){var n=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,n)}updateLimboDocument(e,t){return z0(e,t)}Kn(e,r){const t=V0(e);let i,s=tw.at;return t.Z({index:"documentTargetsIndex"},([e],{path:t,sequenceNumber:n})=>{0===e?(s!==tw.at&&r(new R_(cT(i)),s),s=n,i=t):s=tw.at}).next(()=>{s!==tw.at&&r(new R_(cT(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function z0(e,t){return V0(e).put((e=e.currentSequenceNumber,{targetId:0,path:aT(t.path),sequenceNumber:e}))}class G0{constructor(){this.changes=new fI(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,ub.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var n=this.changes.get(t);return void 0!==n?$_.resolve(n):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class H0{constructor(e){this.yt=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,n){return X0(e).put(n)}removeEntry(e,n,t){return X0(e).delete(function(e){const t=n.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],VT(e),t[t.length-1]]}(t))}updateMetadata(t,n){return this.getMetadata(t).next(e=>(e.byteSize+=n,this.Qn(t,e)))}getEntry(e,n){let r=ub.newInvalidDocument(n);return X0(e).Z({index:"documentKeyIndex",range:IDBKeyRange.only(Z0(n))},(e,t)=>{r=this.jn(n,t)}).next(()=>r)}Wn(e,n){let r={size:0,document:ub.newInvalidDocument(n)};return X0(e).Z({index:"documentKeyIndex",range:IDBKeyRange.only(Z0(n))},(e,t)=>{r={document:this.jn(n,t),size:R0(t)}}).next(()=>r)}getEntries(e,t){let r=gI;return this.zn(e,t,(e,t)=>{var n=this.jn(e,t);r=r.insert(e,n)}).next(()=>r)}Hn(e,t){let r=gI,i=new nb(R_.comparator);return this.zn(e,t,(e,t)=>{var n=this.jn(e,t);r=r.insert(e,n),i=i.insert(e,R0(t))}).next(()=>({documents:r,Jn:i}))}zn(e,t,i){if(t.isEmpty())return $_.resolve();let n=new sb(tE);t.forEach(e=>n=n.add(e));const r=IDBKeyRange.bound(Z0(n.first()),Z0(n.last())),s=n.getIterator();let a=s.getNext();return X0(e).Z({index:"documentKeyIndex",range:r},(e,t,n)=>{for(var r=R_.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&tE(a,r)<0;)i(a,null),a=s.getNext();a&&a.isEqual(r)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?n.j(Z0(a)):n.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getAllFromCollection(e,t,n){var r=[t.popLast().toArray(),t.lastSegment(),VT(n.readTime),n.documentKey.path.isEmpty()?"":n.documentKey.path.lastSegment()],i=[t.popLast().toArray(),t.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return X0(e).W(IDBKeyRange.bound(r,i,!0)).next(e=>{let t=gI;for(const n of e){const e=this.jn(R_.fromSegments(n.prefixPath.concat(n.collectionGroup,n.documentId)),n);t=t.insert(e.key,e)}return t})}getAllFromCollectionGroup(e,t,n,i){let s=gI;var r=eE(t,n),a=eE(t,U_.max());return X0(e).Z({index:"collectionGroupIndex",range:IDBKeyRange.bound(r,a,!0)},(e,t,n)=>{var r=this.jn(R_.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);s=s.insert(r.key,r),s.size===i&&n.done()}).next(()=>s)}newChangeBuffer(e){return new Y0(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return J0(e).get("remoteDocumentGlobalKey").next(e=>(c_(!!e),e))}Qn(e,t){return J0(e).put("remoteDocumentGlobalKey",t)}jn(e,t){if(t){const e=function(e,t){let n;if(t.document)n=QI(e.ie,t.document,!!t.hasCommittedMutations);else if(t.noDocument){const e=R_.fromSegments(t.noDocument.path),i=jT(t.noDocument.readTime);n=ub.newNoDocument(e,i),t.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!t.unknownDocument)return o_();{const e=R_.fromSegments(t.unknownDocument.path),s=jT(t.unknownDocument.version);n=ub.newUnknownDocument(e,s)}}return t.readTime&&n.setReadTime((t=t.readTime,r=new E_(t[0],t[1]),k_.fromTimestamp(r))),n;var r}(this.yt,t);if(!e.isNoDocument()||!e.version.isEqual(k_.min()))return e}return ub.newInvalidDocument(e)}}function Q0(e){return new H0(e)}class Y0 extends G0{constructor(e,t){super(),this.Yn=e,this.trackRemovals=t,this.Xn=new fI(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){const a=[];let o=0,c=new sb((e,t)=>b_(e.canonicalString(),t.canonicalString()));return this.changes.forEach((e,t)=>{var n=this.Xn.get(e);if(a.push(this.Yn.removeEntry(s,e,n.readTime)),t.isValidDocument()){var r=qT(this.Yn.yt,t);c=c.add(e.path.popLast());var i=R0(r);o+=i-n.size,a.push(this.Yn.addEntry(s,e,r))}else if(o-=n.size,this.trackRemovals){const o=qT(this.Yn.yt,t.convertToNoDocument(k_.min()));a.push(this.Yn.addEntry(s,e,o))}}),c.forEach(e=>{a.push(this.Yn.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Yn.updateMetadata(s,o)),$_.waitFor(a)}getFromCache(e,t){return this.Yn.Wn(e,t).next(e=>(this.Xn.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Yn.Hn(e,t).next(({documents:n,Jn:e})=>(e.forEach((e,t)=>{this.Xn.set(e,{size:t,readTime:n.get(e).readTime})}),n))}}function J0(e){return PT(e,"remoteDocumentGlobal")}function X0(e){return PT(e,"remoteDocumentsV14")}function Z0(e){const t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function eE(e,t){const n=t.documentKey.path.toArray();return[e,VT(t.readTime),n.slice(0,n.length-2),0<n.length?n[n.length-1]:""]}function tE(e,t){var n=e.path.toArray(),r=t.path.toArray();let i=0;for(let s=0;s<n.length-2&&s<r.length-2;++s)if(i=b_(n[s],r[s]),i)return i;return i=b_(n.length,r.length),i||(i=b_(n[n.length-2],r[r.length-2]),i||b_(n[n.length-1],r[r.length-1]))}class nE{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class rE{constructor(e,t,n,r){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=n,this.indexManager=r}getDocument(t,n){let r=null;return this.documentOverlayCache.getOverlay(t,n).next(e=>(r=e,this.remoteDocumentCache.getEntry(t,n))).next(e=>(null!==r&&nI(r.mutation,e,cb.empty(),E_.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,II()).next(()=>e))}getLocalViewOfDocuments(e,t,n=II()){const r=_I();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,n).next(e=>{let n=vI();return e.forEach((e,t)=>{n=n.insert(e,t.overlayedDocument)}),n}))}getOverlayedDocuments(e,t){const n=_I();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,II()))}populateOverlays(e,n,t){const r=[];return t.forEach(e=>{n.has(e)||r.push(e)}),this.documentOverlayCache.getOverlays(e,r).next(e=>{e.forEach((e,t)=>{n.set(e,t)})})}computeViews(e,t,r,i){let s=gI;const a=_I(),o=_I();return t.forEach((e,t)=>{const n=r.get(t.key);i.has(t.key)&&(void 0===n||n.mutation instanceof sI)?s=s.insert(t.key,t):void 0!==n?(a.set(t.key,n.mutation.getFieldMask()),nI(n.mutation,t,n.mutation.getFieldMask(),E_.now())):a.set(t.key,cb.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var n;return o.set(e,new nE(t,null!==(n=a.get(e))&&void 0!==n?n:null))}),o))}recalculateAndSaveOverlays(s,a){const o=_I();let c=new nb((e,t)=>e-t),l=II();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(s,a).next(e=>{for(const r of e)r.keys().forEach(e=>{var t,n=a.get(e);null!==n&&(t=o.get(e)||cb.empty(),t=r.applyToLocalView(n,t),o.set(e,t),t=(c.get(r.batchId)||II()).add(e),c=c.insert(r.batchId,t))})}).next(()=>{const e=[],t=c.getReverseIterator();for(;t.hasNext();){const c=t.getNext(),n=c.key,r=c.value,i=_I();r.forEach(e=>{var t;l.has(e)||(null!==(t=eI(a.get(e),o.get(e)))&&i.set(e,t),l=l.add(e))}),e.push(this.documentOverlayCache.saveOverlays(s,n,i))}return $_.waitFor(e)}).next(()=>o)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,n){return r=t,R_.isDocumentKey(r.path)&&null===r.collectionGroup&&0===r.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):kb(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,n):this.getDocumentsMatchingCollectionQuery(e,t,n);var r}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(n=>{const e=0<o-n.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-n.size):$_.resolve(_I());let r=-1,i=n;return e.next(e=>$_.forEach(e,(t,e)=>(r<e.largestBatchId&&(r=e.largestBatchId),n.get(t)?$_.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,n)).next(()=>this.computeViews(s,i,e,II())).next(e=>({batchId:r,changes:yI(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new R_(t)).next(e=>{let t=vI();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(r,i,s){const a=i.collectionGroup;let o=vI();return this.indexManager.getCollectionParents(r,a).next(e=>$_.forEach(e,e=>{var t,n=(t=i,e=e.child(a),new _b(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt));return this.getDocumentsMatchingCollectionQuery(r,n,s).next(e=>{e.forEach((e,t)=>{o=o.insert(e,t)})})}).next(()=>o))}getDocumentsMatchingCollectionQuery(t,s,n){let a;return this.remoteDocumentCache.getAllFromCollection(t,s.path,n).next(e=>(a=e,this.documentOverlayCache.getOverlaysForCollection(t,s.path,n.largestBatchId))).next(r=>{r.forEach((e,t)=>{var n=t.getKey();null===a.get(n)&&(a=a.insert(n,ub.newInvalidDocument(n)))});let i=vI();return a.forEach((e,t)=>{var n=r.get(e);void 0!==n&&nI(n.mutation,t,cb.empty(),E_.now()),Pb(s,t)&&(i=i.insert(e,t))}),i})}}class iE{constructor(e){this.yt=e,this.Zn=new Map,this.ts=new Map}getBundleMetadata(e,t){return $_.resolve(this.Zn.get(t))}saveBundleMetadata(e,t){return this.Zn.set(t.id,{id:t.id,version:t.version,createTime:qI(t.createTime)}),$_.resolve()}getNamedQuery(e,t){return $_.resolve(this.ts.get(t))}saveNamedQuery(e,t){return this.ts.set(t.name,{name:(t=t).name,query:zT(t.bundledQuery),readTime:qI(t.readTime)}),$_.resolve()}}class sE{constructor(){this.overlays=new nb(R_.comparator),this.es=new Map}getOverlay(e,t){return $_.resolve(this.overlays.get(t))}getOverlays(e,t){const n=_I();return $_.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&n.set(t,e)})).next(()=>n)}saveOverlays(n,r,e){return e.forEach((e,t)=>{this.oe(n,r,t)}),$_.resolve()}removeOverlaysForBatchId(e,t,n){const r=this.es.get(n);return void 0!==r&&(r.forEach(e=>this.overlays=this.overlays.remove(e)),this.es.delete(n)),$_.resolve()}getOverlaysForCollection(e,t,n){const r=_I(),i=t.length+1,s=new R_(t.child("")),a=this.overlays.getIteratorFrom(s);for(;a.hasNext();){const e=a.getNext().value,s=e.getKey();if(!t.isPrefixOf(s.path))break;s.path.length===i&&e.largestBatchId>n&&r.set(e.getKey(),e)}return $_.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let i=new nb((e,t)=>e-t);const s=this.overlays.getIterator();for(;s.hasNext();){const t=s.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=_I(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const a=_I(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=r)););return $_.resolve(a)}oe(e,t,n){var r=this.overlays.get(n.key);if(null!==r){const e=this.es.get(r.largestBatchId).delete(n.key);this.es.set(r.largestBatchId,e)}this.overlays=this.overlays.insert(n.key,new LT(t,n));let i=this.es.get(t);void 0===i&&(i=II(),this.es.set(t,i)),this.es.set(t,i.add(n.key))}}class aE{constructor(){this.ns=new sb(oE.ss),this.rs=new sb(oE.os)}isEmpty(){return this.ns.isEmpty()}addReference(e,t){var n=new oE(e,t);this.ns=this.ns.add(n),this.rs=this.rs.add(n)}us(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.cs(new oE(e,t))}hs(e,t){e.forEach(e=>this.removeReference(e,t))}ls(e){const t=new R_(new C_([])),n=new oE(t,e),r=new oE(t,e+1),i=[];return this.rs.forEachInRange([n,r],e=>{this.cs(e),i.push(e.key)}),i}fs(){this.ns.forEach(e=>this.cs(e))}cs(e){this.ns=this.ns.delete(e),this.rs=this.rs.delete(e)}ds(e){var t=new R_(new C_([])),n=new oE(t,e),t=new oE(t,e+1);let r=II();return this.rs.forEachInRange([n,t],e=>{r=r.add(e.key)}),r}containsKey(e){var t=new oE(e,0),t=this.ns.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class oE{constructor(e,t){this.key=e,this._s=t}static ss(e,t){return R_.comparator(e.key,t.key)||b_(e._s,t._s)}static os(e,t){return b_(e._s,t._s)||R_.comparator(e.key,t.key)}}class cE{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.ws=1,this.gs=new sb(oE.ss)}checkEmpty(e){return $_.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,n,r){var i=this.ws;this.ws++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1];var s=new OT(i,t,n,r);this.mutationQueue.push(s);for(const t of r)this.gs=this.gs.add(new oE(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return $_.resolve(s)}lookupMutationBatch(e,t){return $_.resolve(this.ys(t))}getNextMutationBatchAfterBatchId(e,t){var n=this.ps(t+1),n=n<0?0:n;return $_.resolve(this.mutationQueue.length>n?this.mutationQueue[n]:null)}getHighestUnacknowledgedBatchId(){return $_.resolve(0===this.mutationQueue.length?-1:this.ws-1)}getAllMutationBatches(e){return $_.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){const n=new oE(t,0),r=new oE(t,Number.POSITIVE_INFINITY),i=[];return this.gs.forEachInRange([n,r],e=>{var t=this.ys(e._s);i.push(t)}),$_.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new sb(b_);return t.forEach(e=>{var t=new oE(e,0),n=new oE(e,Number.POSITIVE_INFINITY);this.gs.forEachInRange([t,n],e=>{r=r.add(e._s)})}),$_.resolve(this.Is(r))}getAllMutationBatchesAffectingQuery(e,t){const n=t.path,r=n.length+1;let i=n;R_.isDocumentKey(i)||(i=i.child(""));var s=new oE(new R_(i),0);let a=new sb(b_);return this.gs.forEachWhile(e=>{var t=e.key.path;return!!n.isPrefixOf(t)&&(t.length===r&&(a=a.add(e._s)),!0)},s),$_.resolve(this.Is(a))}Is(e){const n=[];return e.forEach(e=>{var t=this.ys(e);null!==t&&n.push(t)}),n}removeMutationBatch(n,r){c_(0===this.Ts(r.batchId,"removed")),this.mutationQueue.shift();let i=this.gs;return $_.forEach(r.mutations,e=>{var t=new oE(e.key,r.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(n,e.key)}).next(()=>{this.gs=i})}An(e){}containsKey(e,t){var n=new oE(t,0),n=this.gs.firstAfterOrEqual(n);return $_.resolve(t.isEqual(n&&n.key))}performConsistencyCheck(e){return this.mutationQueue.length,$_.resolve()}Ts(e,t){return this.ps(e)}ps(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}ys(e){var t=this.ps(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class lE{constructor(e){this.Es=e,this.docs=new nb(R_.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){const n=t.key,r=this.docs.get(n),i=r?r.size:0,s=this.Es(t);return this.docs=this.docs.insert(n,{document:t.mutableCopy(),size:s}),this.size+=s-i,this.indexManager.addToCollectionParentIndex(e,n.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){const n=this.docs.get(t);return $_.resolve(n?n.document.mutableCopy():ub.newInvalidDocument(t))}getEntries(e,t){let n=gI;return t.forEach(e=>{const t=this.docs.get(e);n=n.insert(e,t?t.document.mutableCopy():ub.newInvalidDocument(e))}),$_.resolve(n)}getAllFromCollection(e,t,n){let r=gI;const i=new R_(t.child("")),s=this.docs.getIteratorFrom(i);for(;s.hasNext();){const{key:e,value:{document:i}}=s.getNext();if(!t.isPrefixOf(e.path))break;e.path.length>t.length+1||q_(F_(i),n)<=0||(r=r.insert(i.key,i.mutableCopy()))}return $_.resolve(r)}getAllFromCollectionGroup(e,t,n,r){o_()}As(e,t){return $_.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new uE(this)}getSize(e){return $_.resolve(this.size)}}class uE extends G0{constructor(e){super(),this.Yn=e}applyChanges(n){const r=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?r.push(this.Yn.addEntry(n,t)):this.Yn.removeEntry(e)}),$_.waitFor(r)}getFromCache(e,t){return this.Yn.getEntry(e,t)}getAllFromCache(e,t){return this.Yn.getEntries(e,t)}}class hE{constructor(e){this.persistence=e,this.Rs=new fI(e=>pb(e),fb),this.lastRemoteSnapshotVersion=k_.min(),this.highestTargetId=0,this.bs=0,this.Ps=new aE,this.targetCount=0,this.vs=L0.Pn()}forEachTarget(e,n){return this.Rs.forEach((e,t)=>n(t)),$_.resolve()}getLastRemoteSnapshotVersion(e){return $_.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return $_.resolve(this.bs)}allocateTargetId(e){return this.highestTargetId=this.vs.next(),$_.resolve(this.highestTargetId)}setTargetsMetadata(e,t,n){return n&&(this.lastRemoteSnapshotVersion=n),t>this.bs&&(this.bs=t),$_.resolve()}Dn(e){this.Rs.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.vs=new L0(t),this.highestTargetId=t),e.sequenceNumber>this.bs&&(this.bs=e.sequenceNumber)}addTargetData(e,t){return this.Dn(t),this.targetCount+=1,$_.resolve()}updateTargetData(e,t){return this.Dn(t),$_.resolve()}removeTargetData(e,t){return this.Rs.delete(t.target),this.Ps.ls(t.targetId),--this.targetCount,$_.resolve()}removeTargets(n,r,i){let s=0;const a=[];return this.Rs.forEach((e,t)=>{t.sequenceNumber<=r&&null===i.get(t.targetId)&&(this.Rs.delete(e),a.push(this.removeMatchingKeysForTargetId(n,t.targetId)),s++)}),$_.waitFor(a).next(()=>s)}getTargetCount(e){return $_.resolve(this.targetCount)}getTargetData(e,t){var n=this.Rs.get(t)||null;return $_.resolve(n)}addMatchingKeys(e,t,n){return this.Ps.us(t,n),$_.resolve()}removeMatchingKeys(t,e,n){this.Ps.hs(e,n);const r=this.persistence.referenceDelegate,i=[];return r&&e.forEach(e=>{i.push(r.markPotentiallyOrphaned(t,e))}),$_.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Ps.ls(t),$_.resolve()}getMatchingKeysForTargetId(e,t){var n=this.Ps.ds(t);return $_.resolve(n)}containsKey(e,t){return $_.resolve(this.Ps.containsKey(t))}}class dE{constructor(e,t){this.Vs={},this.overlays={},this.Ss=new tw(0),this.Ds=!1,this.Ds=!0,this.referenceDelegate=e(this),this.Cs=new hE(this),this.indexManager=new y0,this.remoteDocumentCache=(e=e=>this.referenceDelegate.xs(e),new lE(e)),this.yt=new UT(t),this.Ns=new iE(this.yt)}start(){return Promise.resolve()}shutdown(){return this.Ds=!1,Promise.resolve()}get started(){return this.Ds}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new sE,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let n=this.Vs[e.toKey()];return n||(n=new cE(t,this.referenceDelegate),this.Vs[e.toKey()]=n),n}getTargetCache(){return this.Cs}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ns}runTransaction(e,t,n){r_("MemoryPersistence","Starting transaction:",e);const r=new pE(this.Ss.next());return this.referenceDelegate.ks(),n(r).next(e=>this.referenceDelegate.Os(r).next(()=>e)).toPromise().then(e=>(r.raiseOnCommittedEvent(),e))}Ms(t,n){return $_.or(Object.values(this.Vs).map(e=>()=>e.containsKey(t,n)))}}class pE extends B_{constructor(e){super(),this.currentSequenceNumber=e}}class fE{constructor(e){this.persistence=e,this.Fs=new aE,this.$s=null}static Bs(e){return new fE(e)}get Ls(){if(this.$s)return this.$s;throw o_()}addReference(e,t,n){return this.Fs.addReference(n,t),this.Ls.delete(n.toString()),$_.resolve()}removeReference(e,t,n){return this.Fs.removeReference(n,t),this.Ls.add(n.toString()),$_.resolve()}markPotentiallyOrphaned(e,t){return this.Ls.add(t.toString()),$_.resolve()}removeTarget(e,t){this.Fs.ls(t.targetId).forEach(e=>this.Ls.add(e.toString()));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.Ls.add(e.toString()))}).next(()=>n.removeTargetData(e,t))}ks(){this.$s=new Set}Os(n){const r=this.persistence.getRemoteDocumentCache().newChangeBuffer();return $_.forEach(this.Ls,e=>{const t=R_.fromPath(e);return this.qs(n,t).next(e=>{e||r.removeEntry(t,k_.min())})}).next(()=>(this.$s=null,r.apply(n)))}updateLimboDocument(e,t){return this.qs(e,t).next(e=>{e?this.Ls.delete(t.toString()):this.Ls.add(t.toString())})}xs(e){return 0}qs(e,t){return $_.or([()=>$_.resolve(this.Fs.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ms(e,t)])}}class gE{constructor(e){this.yt=e}$(t,e,n,r){const i=new K_("createOrUpgrade",e);var s;n<1&&1<=r&&(t.createObjectStore("owner"),(s=t).createObjectStore("mutationQueues",{keyPath:"userId"}),s.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",lT,{unique:!0}),s.createObjectStore("documentMutations"),mE(t),t.createObjectStore("remoteDocuments"));let a=$_.resolve();return n<3&&3<=r&&(0!==n&&((s=t).deleteObjectStore("targetDocuments"),s.deleteObjectStore("targets"),s.deleteObjectStore("targetGlobal"),mE(t)),a=a.next(()=>function(){const e=i.store("targetGlobal"),t={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:k_.min().toTimestamp(),targetCount:0};return e.put("targetGlobalKey",t)}())),n<4&&4<=r&&(0!==n&&(a=a.next(()=>function(r,i){return i.store("mutations").W().next(e=>{r.deleteObjectStore("mutations"),r.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",lT,{unique:!0});const t=i.store("mutations"),n=e.map(e=>t.put(e));return $_.waitFor(n)})}(t,i))),a=a.next(()=>{t.createObjectStore("clientMetadata",{keyPath:"clientId"})})),n<5&&5<=r&&(a=a.next(()=>this.Us(i))),n<6&&6<=r&&(a=a.next(()=>(t.createObjectStore("remoteDocumentGlobal"),this.Ks(i)))),n<7&&7<=r&&(a=a.next(()=>this.Gs(i))),n<8&&8<=r&&(a=a.next(()=>this.Qs(t,i))),n<9&&9<=r&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),n<10&&10<=r&&(a=a.next(()=>this.js(i))),n<11&&11<=r&&(a=a.next(()=>{t.createObjectStore("bundles",{keyPath:"bundleId"}),t.createObjectStore("namedQueries",{keyPath:"name"})})),n<12&&12<=r&&(a=a.next(()=>{!function(){const e=t.createObjectStore("documentOverlays",{keyPath:ET});e.createIndex("collectionPathOverlayIndex",kT,{unique:!1}),e.createIndex("collectionGroupOverlayIndex",ST,{unique:!1})}()})),n<13&&13<=r&&(a=a.next(()=>function(){const e=t.createObjectStore("remoteDocumentsV14",{keyPath:pT});e.createIndex("documentKeyIndex",fT),e.createIndex("collectionGroupIndex",gT)}()).next(()=>this.Ws(t,i)).next(()=>t.deleteObjectStore("remoteDocuments"))),n<14&&14<=r&&(a=a.next(()=>this.zs(t,i))),n<15&&15<=r&&(a=a.next(()=>function(e){e.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),e.createObjectStore("indexState",{keyPath:wT}).createIndex("sequenceNumberIndex",bT,{unique:!1}),e.createObjectStore("indexEntries",{keyPath:IT}).createIndex("documentKeyIndex",TT,{unique:!1})}(t))),a}Ks(t){let n=0;return t.store("remoteDocuments").Z((e,t)=>{n+=R0(t)}).next(()=>{var e={byteSize:n};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",e)})}Us(r){const e=r.store("mutationQueues"),t=r.store("mutations");return e.W().next(e=>$_.forEach(e,n=>{var e=IDBKeyRange.bound([n.userId,-1],[n.userId,n.lastAcknowledgedBatchId]);return t.W("userMutationsIndex",e).next(e=>$_.forEach(e,e=>{c_(e.userId===n.userId);var t=$T(this.yt,e);return N0(r,n.userId,t).next(()=>{})}))}))}Gs(e){const a=e.store("targetDocuments"),t=e.store("remoteDocuments");return e.store("targetGlobal").get("targetGlobalKey").next(i=>{const s=[];return t.Z((e,t)=>{const n=new C_(e),r=[0,aT(n)];s.push(a.get(r).next(e=>e?$_.resolve():(e=>a.put({targetId:0,path:aT(e),sequenceNumber:i.highestListenSequenceNumber}))(n)))}).next(()=>$_.waitFor(s))})}Qs(e,t){e.createObjectStore("collectionParents",{keyPath:_T});const n=t.store("collectionParents"),r=new _0,i=e=>{if(r.add(e)){const t=e.lastSegment(),r=e.popLast();return n.put({collectionId:t,parent:aT(r)})}};return t.store("remoteDocuments").Z({X:!0},(e,t)=>{const n=new C_(e);return i(n.popLast())}).next(()=>t.store("documentMutations").Z({X:!0},([,e],t)=>{const n=cT(e);return i(n.popLast())}))}js(e){const r=e.store("targets");return r.Z((e,t)=>{var n=KT(t),n=WT(this.yt,n);return r.put(n)})}Ws(e,s){const t=s.store("remoteDocuments"),a=[];return t.Z((e,t)=>{const n=s.store("remoteDocumentsV14"),r=((i=t).document?new R_(C_.fromString(i.document.name).popFirst(5)):i.noDocument?R_.fromSegments(i.noDocument.path):i.unknownDocument?R_.fromSegments(i.unknownDocument.path):o_()).path.toArray();var i={prefixPath:r.slice(0,r.length-2),collectionGroup:r[r.length-2],documentId:r[r.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>$_.waitFor(a))}zs(e,s){const t=s.store("mutations"),a=Q0(this.yt),o=new dE(fE.Bs,this.yt.ie);return t.W().next(e=>{const r=new Map;return e.forEach(e=>{var t;let n=null!==(t=r.get(e.userId))&&void 0!==t?t:II();$T(this.yt,e).keys().forEach(e=>n=n.add(e)),r.set(e.userId,n)}),$_.forEach(r,(e,t)=>{var n=new Zy(t),r=ZT.re(this.yt,n),i=o.getIndexManager(n),n=x0.re(n,this.yt,i,o.referenceDelegate);return new rE(a,n,r,i).recalculateAndSaveOverlaysForDocumentKeys(new DT(s,tw.at),e).next()})})}}function mE(e){e.createObjectStore("targetDocuments",{keyPath:vT}).createIndex("documentTargetsIndex",yT,{unique:!0}),e.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",mT,{unique:!0}),e.createObjectStore("targetGlobal")}const vE="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class yE{constructor(e,t,n,r,i,s,a,o,c,l,u=15){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=n,this.Hs=i,this.window=s,this.document=a,this.Js=c,this.Ys=l,this.Xs=u,this.Ss=null,this.Ds=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Zs=null,this.inForeground=!1,this.ti=null,this.ei=null,this.ni=Number.NEGATIVE_INFINITY,this.si=e=>Promise.resolve(),!yE.C())throw new u_(l_.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new W0(this,r),this.ii=t+"main",this.yt=new UT(o),this.ri=new W_(this.ii,this.Xs,new gE(this.yt)),this.Cs=new F0(this.referenceDelegate,this.yt),this.remoteDocumentCache=Q0(this.yt),this.Ns=new YT,this.window&&this.window.localStorage?this.oi=this.window.localStorage:(this.oi=null,!1===l&&i_("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.ui().then(()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new u_(l_.FAILED_PRECONDITION,vE);return this.ci(),this.ai(),this.hi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Cs.getHighestSequenceNumber(e))}).then(e=>{this.Ss=new tw(e,this.Js)}).then(()=>{this.Ds=!0}).catch(e=>(this.ri&&this.ri.close(),Promise.reject(e)))}li(t){return this.si=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.ri.L(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Hs.enqueueAndForget(async()=>{this.started&&await this.ui()}))}ui(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>wE(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.fi(t).next(e=>{e||(this.isPrimary=!1,this.Hs.enqueueRetryable(()=>this.si(!1)))})}).next(()=>this.di(t)).next(e=>this.isPrimary&&!e?this._i(t).next(()=>!1):!!e&&this.wi(t).next(()=>!0))).catch(e=>{if(H_(e))return r_("IndexedDbPersistence","Failed to extend owner lease: ",e),this.isPrimary;if(!this.allowTabSynchronization)throw e;return r_("IndexedDbPersistence","Releasing owner lease after error during lease refresh",e),!1}).then(e=>{this.isPrimary!==e&&this.Hs.enqueueRetryable(()=>this.si(e)),this.isPrimary=e})}fi(e){return _E(e).get("owner").next(e=>$_.resolve(this.mi(e)))}gi(e){return wE(e).delete(this.clientId)}async yi(){if(this.isPrimary&&!this.pi(this.ni,18e5)){this.ni=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{const r=PT(e,"clientMetadata");return r.W().next(e=>{const t=this.Ii(e,18e5),n=e.filter(e=>-1===t.indexOf(e));return $_.forEach(n,e=>r.delete(e.clientId)).next(()=>n)})}).catch(()=>[]);if(this.oi)for(const t of e)this.oi.removeItem(this.Ti(t.clientId))}}hi(){this.ei=this.Hs.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.ui().then(()=>this.yi()).then(()=>this.hi()))}mi(e){return!!e&&e.ownerId===this.clientId}di(t){return this.Ys?$_.resolve(!0):_E(t).get("owner").next(e=>{if(null!==e&&this.pi(e.leaseTimestampMs,5e3)&&!this.Ei(e.ownerId)){if(this.mi(e)&&this.networkEnabled)return!0;if(!this.mi(e)){if(!e.allowTabSynchronization)throw new u_(l_.FAILED_PRECONDITION,vE);return!1}}return!(!this.networkEnabled||!this.inForeground)||wE(t).W().next(e=>void 0===this.Ii(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,n=!this.inForeground&&e.inForeground,r=this.networkEnabled===e.networkEnabled;if(t||n&&r)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&r_("IndexedDbPersistence",`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.Ds=!1,this.Ai(),this.ei&&(this.ei.cancel(),this.ei=null),this.Ri(),this.bi(),await this.ri.runTransaction("shutdown","readwrite",["owner","clientMetadata"],e=>{const t=new DT(e,tw.at);return this._i(t).next(()=>this.gi(t))}),this.ri.close(),this.Pi()}Ii(e,t){return e.filter(e=>this.pi(e.updateTimeMs,t)&&!this.Ei(e.clientId))}vi(){return this.runTransaction("getActiveClients","readonly",e=>wE(e).W().next(e=>this.Ii(e,18e5).map(e=>e.clientId)))}get started(){return this.Ds}getMutationQueue(e,t){return x0.re(e,this.yt,t,this.referenceDelegate)}getTargetCache(){return this.Cs}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new b0(e,this.yt.ie.databaseId)}getDocumentOverlayCache(e){return ZT.re(this.yt,e)}getBundleCache(){return this.Ns}runTransaction(t,n,r){r_("IndexedDbPersistence","Starting transaction:",t);var e,i="readonly"===n?"readonly":"readwrite",e=15===(e=this.Xs)?xT:14===e?RT:13===e?NT:12===e?AT:11===e?CT:void o_();let s;return this.ri.runTransaction(t,i,e,e=>(s=new DT(e,this.Ss?this.Ss.next():tw.at),"readwrite-primary"===n?this.fi(s).next(e=>!!e||this.di(s)).next(e=>{if(!e)throw i_(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Hs.enqueueRetryable(()=>this.si(!1)),new u_(l_.FAILED_PRECONDITION,V_);return r(s)}).next(e=>this.wi(s).next(()=>e)):this.Vi(s).next(()=>r(s)))).then(e=>(s.raiseOnCommittedEvent(),e))}Vi(e){return _E(e).get("owner").next(e=>{if(null!==e&&this.pi(e.leaseTimestampMs,5e3)&&!this.Ei(e.ownerId)&&!this.mi(e)&&!(this.Ys||this.allowTabSynchronization&&e.allowTabSynchronization))throw new u_(l_.FAILED_PRECONDITION,vE)})}wi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return _E(e).put("owner",t)}static C(){return W_.C()}_i(e){const t=_E(e);return t.get("owner").next(e=>this.mi(e)?(r_("IndexedDbPersistence","Releasing primary lease."),t.delete("owner")):$_.resolve())}pi(e,t){var n=Date.now();return!(e<n-t||n<e&&(i_(`Detected an update time that is in the future: ${e} > ${n}`),1))}ci(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.ti=()=>{this.Hs.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.ui()))},this.document.addEventListener("visibilitychange",this.ti),this.inForeground="visible"===this.document.visibilityState)}Ri(){this.ti&&(this.document.removeEventListener("visibilitychange",this.ti),this.ti=null)}ai(){var e;"function"==typeof(null===(e=this.window)||void 0===e?void 0:e.addEventListener)&&(this.Zs=()=>{this.Ai(),!I()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")&&navigator.appVersion.match(/Version\/1[45]/)&&this.Hs.enterRestrictedMode(!0),this.Hs.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Zs))}bi(){this.Zs&&(this.window.removeEventListener("pagehide",this.Zs),this.Zs=null)}Ei(e){var t;try{var n=null!==(null===(t=this.oi)||void 0===t?void 0:t.getItem(this.Ti(e)));return r_("IndexedDbPersistence",`Client '${e}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(e){return i_("IndexedDbPersistence","Failed to get zombied client id.",e),!1}}Ai(){if(this.oi)try{this.oi.setItem(this.Ti(this.clientId),String(Date.now()))}catch(e){i_("Failed to set zombie client id.",e)}}Pi(){if(this.oi)try{this.oi.removeItem(this.Ti(this.clientId))}catch(e){}}Ti(e){return`firestore_zombie_${this.persistenceKey}_${e}`}}function _E(e){return PT(e,"owner")}function wE(e){return PT(e,"clientMetadata")}function bE(e,t){let n=e.projectId;return e.isDefaultDatabase||(n+="."+e.database),"firestore/"+t+"/"+n+"/"}class IE{constructor(e,t,n,r){this.targetId=e,this.fromCache=t,this.Si=n,this.Di=r}static Ci(e,t){let n=II(),r=II();for(const e of t.docChanges)switch(e.type){case 0:n=n.add(e.doc.key);break;case 1:r=r.add(e.doc.key)}return new IE(e,t.fromCache,n,r)}}class TE{constructor(){this.xi=!1}initialize(e,t){this.Ni=e,this.indexManager=t,this.xi=!0}getDocumentsMatchingQuery(t,n,r,i){return this.ki(t,n).next(e=>e||this.Oi(t,n,i,r)).next(e=>e||this.Mi(t,n))}ki(i,s){if(Ib(s))return $_.resolve(null);let t=Cb(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=Nb(s,null,"F"),t=Cb(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{const r=II(...e);return this.Ni.getDocuments(i,r).next(n=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.Fi(s,n);return this.$i(s,t,r,e.readTime)?this.ki(i,Nb(s,null,"F")):this.Bi(i,t,s,e)}))})))}Oi(n,r,i,s){return Ib(r)||s.isEqual(k_.min())?this.Mi(n,r):this.Ni.getDocuments(n,i).next(e=>{var t=this.Fi(r,e);return this.$i(r,t,i,s)?this.Mi(n,r):(n_()<=g.DEBUG&&r_("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),Db(r)),this.Bi(n,t,r,L_(s,-1)))})}Fi(n,e){let r=new sb(Mb(n));return e.forEach((e,t)=>{Pb(n,t)&&(r=r.add(t))}),r}$i(e,t,n,r){if(null===e.limit)return!1;if(n.size!==t.size)return!0;const i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||0<i.version.compareTo(r))}Mi(e,t){return n_()<=g.DEBUG&&r_("QueryEngine","Using full collection scan to execute query:",Db(t)),this.Ni.getDocumentsMatchingQuery(e,t,U_.min())}Bi(e,n,t,r){return this.Ni.getDocumentsMatchingQuery(e,t,r).next(t=>(n.forEach(e=>{t=t.insert(e.key,e)}),t))}}class EE{constructor(e,t,n,r){this.persistence=e,this.Li=t,this.yt=r,this.qi=new nb(b_),this.Ui=new fI(e=>pb(e),fb),this.Ki=new Map,this.Gi=e.getRemoteDocumentCache(),this.Cs=e.getTargetCache(),this.Ns=e.getBundleCache(),this.Qi(n)}Qi(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new rE(this.Gi,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Gi.setIndexManager(this.indexManager),this.Li.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.qi))}}function kE(e,t,n,r){return new EE(e,t,n,r)}async function SE(e,t){const a=e;return a.persistence.runTransaction("Handle user change","readonly",i=>{let s;return a.mutationQueue.getAllMutationBatches(i).next(e=>(s=e,a.Qi(t),a.mutationQueue.getAllMutationBatches(i))).next(e=>{const t=[],n=[];let r=II();for(const i of s){t.push(i.batchId);for(const e of i.mutations)r=r.add(e.key)}for(const i of e){n.push(i.batchId);for(const e of i.mutations)r=r.add(e.key)}return a.localDocuments.getDocuments(i,r).next(e=>({ji:e,removedBatchIds:t,addedBatchIds:n}))})})}function CE(e){const t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Cs.getLastRemoteSnapshotVersion(e))}function AE(e,l){const u=e,h=l.snapshotVersion;let d=u.qi;return u.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{const e=u.Gi.newChangeBuffer({trackRemovals:!0});d=u.qi;const c=[];l.targetChanges.forEach((t,n)=>{const r=d.get(n);if(r){c.push(u.Cs.removeMatchingKeys(o,t.removedDocuments,n).next(()=>u.Cs.addMatchingKeys(o,t.addedDocuments,n)));let e=r.withSequenceNumber(o.currentSequenceNumber);var i,s,a;l.targetMismatches.has(n)?e=e.withResumeToken(uw.EMPTY_BYTE_STRING,k_.min()).withLastLimboFreeSnapshotVersion(k_.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,h)),d=d.insert(n,e),i=r,s=e,a=t,0!==i.resumeToken.approximateByteSize()&&!(3e8<=s.snapshotVersion.toMicroseconds()-i.snapshotVersion.toMicroseconds()||0<a.addedDocuments.size+a.modifiedDocuments.size+a.removedDocuments.size)||c.push(u.Cs.updateTargetData(o,e))}});let t=gI,n=II();if(l.documentUpdates.forEach(e=>{l.resolvedLimboDocuments.has(e)&&c.push(u.persistence.referenceDelegate.updateLimboDocument(o,e))}),c.push(NE(o,e,l.documentUpdates).next(e=>{t=e.Wi,n=e.zi})),!h.isEqual(k_.min())){const l=u.Cs.getLastRemoteSnapshotVersion(o).next(e=>u.Cs.setTargetsMetadata(o,o.currentSequenceNumber,h));c.push(l)}return $_.waitFor(c).next(()=>e.apply(o)).next(()=>u.localDocuments.getLocalViewOfDocuments(o,t,n)).next(()=>t)}).then(e=>(u.qi=d,e))}function NE(e,s,t){let n=II(),a=II();return t.forEach(e=>n=n.add(e)),s.getEntries(e,n).next(r=>{let i=gI;return t.forEach((e,t)=>{const n=r.get(e);t.isFoundDocument()!==n.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(k_.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!n.isValidDocument()||0<t.version.compareTo(n.version)||0===t.version.compareTo(n.version)&&n.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):r_("LocalStore","Ignoring outdated watch update for ",e,". Current version:",n.version," Watch version:",t.version)}),{Wi:i,zi:a}})}function RE(e,r){const i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let n;return i.Cs.getTargetData(t,r).next(e=>e?(n=e,$_.resolve(n)):i.Cs.allocateTargetId(t).next(e=>(n=new FT(r,e,0,t.currentSequenceNumber),i.Cs.addTargetData(t,n).next(()=>n))))}).then(e=>{var t=i.qi.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.qi=i.qi.insert(e.targetId,e),i.Ui.set(r,e.targetId)),e})}async function xE(e,t,n){const r=e,i=r.qi.get(t),s=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",s,e=>r.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!H_(e))throw e;r_("LocalStore",`Failed to update sequence numbers for target ${t}: ${e}`)}r.qi=r.qi.remove(t),r.Ui.delete(i.target)}function DE(e,n,r){const i=e;let s=k_.min(),a=II();return i.persistence.runTransaction("Execute query","readonly",t=>function(e,t,n){const r=e,i=r.Ui.get(n);return void 0!==i?$_.resolve(r.qi.get(i)):r.Cs.getTargetData(t,n)}(i,t,Cb(n)).next(e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,i.Cs.getMatchingKeysForTargetId(t,e.targetId).next(e=>{a=e})}).next(()=>i.Li.getDocumentsMatchingQuery(t,n,r?s:k_.min(),r?a:II())).next(e=>(ME(i,Ob(n),e),{documents:e,Hi:a})))}function PE(e,t){const n=e,r=n.Cs,i=n.qi.get(t);return i?Promise.resolve(i.target):n.persistence.runTransaction("Get target data","readonly",e=>r.ne(e,t).next(e=>e?e.target:null))}function OE(e,t){const n=e,r=n.Ki.get(t)||k_.min();return n.persistence.runTransaction("Get new document changes","readonly",e=>n.Gi.getAllFromCollectionGroup(e,t,L_(r,-1),Number.MAX_SAFE_INTEGER)).then(e=>(ME(n,t,e),e))}function ME(e,t,n){let r=e.Ki.get(t)||k_.min();n.forEach((e,t)=>{0<t.readTime.compareTo(r)&&(r=t.readTime)}),e.Ki.set(t,r)}function LE(e,t){return`firestore_clients_${e}_${t}`}function FE(e,t,n){let r=`firestore_mutations_${e}_${n}`;return t.isAuthenticated()&&(r+=`_${t.uid}`),r}function UE(e,t){return`firestore_targets_${e}_${t}`}class qE{constructor(e,t,n,r){this.user=e,this.batchId=t,this.state=n,this.error=r}static Zi(e,t,n){var r=JSON.parse(n);let i,s="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return s&&r.error&&(s="string"==typeof r.error.message&&"string"==typeof r.error.code,s&&(i=new u_(r.error.code,r.error.message))),s?new qE(e,t,r.state,i):(i_("SharedClientState",`Failed to parse mutation state for ID '${t}': ${n}`),null)}tr(){const e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class VE{constructor(e,t,n){this.targetId=e,this.state=t,this.error=n}static Zi(e,t){var n=JSON.parse(t);let r,i="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return i&&n.error&&(i="string"==typeof n.error.message&&"string"==typeof n.error.code,i&&(r=new u_(n.error.code,n.error.message))),i?new VE(e,n.state,r):(i_("SharedClientState",`Failed to parse target state for ID '${e}': ${t}`),null)}tr(){const e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class BE{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Zi(e,t){var n=JSON.parse(t);let r="object"==typeof n&&n.activeTargetIds instanceof Array,i=TI;for(let s=0;r&&s<n.activeTargetIds.length;++s)r=lw(n.activeTargetIds[s]),i=i.add(n.activeTargetIds[s]);return r?new BE(e,i):(i_("SharedClientState",`Failed to parse client data for instance '${e}': ${t}`),null)}}class jE{constructor(e,t){this.clientId=e,this.onlineState=t}static Zi(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new jE(t.clientId,t.onlineState):(i_("SharedClientState",`Failed to parse online state: ${e}`),null)}}class $E{constructor(){this.activeTargetIds=TI}er(e){this.activeTargetIds=this.activeTargetIds.add(e)}nr(e){this.activeTargetIds=this.activeTargetIds.delete(e)}tr(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class KE{constructor(e,t,n,r,i){this.window=e,this.Hs=t,this.persistenceKey=n,this.sr=r,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.ir=this.rr.bind(this),this.ur=new nb(b_),this.started=!1,this.cr=[];var s=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.ar=LE(this.persistenceKey,this.sr),this.hr=`firestore_sequence_number_${this.persistenceKey}`,this.ur=this.ur.insert(this.sr,new $E),this.lr=new RegExp(`^firestore_clients_${s}_([^_]*)$`),this.dr=new RegExp(`^firestore_mutations_${s}_(\\d+)(?:_(.*))?$`),this._r=new RegExp(`^firestore_targets_${s}_(\\d+)$`),this.wr=`firestore_online_state_${this.persistenceKey}`,this.mr=`firestore_bundle_loaded_v2_${this.persistenceKey}`,this.window.addEventListener("storage",this.ir)}static C(e){return!(!e||!e.localStorage)}async start(){const e=await this.syncEngine.vi();for(const n of e)if(n!==this.sr){const e=this.getItem(LE(this.persistenceKey,n));var t;!e||(t=BE.Zi(n,e))&&(this.ur=this.ur.insert(t.clientId,t))}this.gr();const n=this.storage.getItem(this.wr);if(n){const e=this.yr(n);e&&this.pr(e)}for(const e of this.cr)this.rr(e);this.cr=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.hr,JSON.stringify(e))}getAllActiveQueryTargets(){return this.Ir(this.ur)}isActiveQueryTarget(n){let r=!1;return this.ur.forEach((e,t)=>{t.activeTargetIds.has(n)&&(r=!0)}),r}addPendingMutation(e){this.Tr(e,"pending")}updateMutationState(e,t,n){this.Tr(e,t,n),this.Er(e)}addLocalQueryTarget(e){let t="not-current";var n;return this.isActiveQueryTarget(e)&&(!(n=this.storage.getItem(UE(this.persistenceKey,e)))||(n=VE.Zi(e,n))&&(t=n.state)),this.Ar.er(e),this.gr(),t}removeLocalQueryTarget(e){this.Ar.nr(e),this.gr()}isLocalQueryTarget(e){return this.Ar.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(UE(this.persistenceKey,e))}updateQueryState(e,t,n){this.Rr(e,t,n)}handleUserChange(e,t,n){t.forEach(e=>{this.Er(e)}),this.currentUser=e,n.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.br(e)}notifyBundleLoaded(e){this.Pr(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.ir),this.removeItem(this.ar),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return r_("SharedClientState","READ",e,t),t}setItem(e,t){r_("SharedClientState","SET",e,t),this.storage.setItem(e,t)}removeItem(e){r_("SharedClientState","REMOVE",e),this.storage.removeItem(e)}rr(e){const i=e;i.storageArea===this.storage&&(r_("SharedClientState","EVENT",i.key,i.newValue),i.key!==this.ar?this.Hs.enqueueRetryable(async()=>{if(this.started){if(null!==i.key)if(this.lr.test(i.key)){if(null==i.newValue){var e=this.vr(i.key);return this.Vr(e,null)}e=this.Sr(i.key,i.newValue);if(e)return this.Vr(e.clientId,e)}else if(this.dr.test(i.key)){if(null!==i.newValue){var t=this.Dr(i.key,i.newValue);if(t)return this.Cr(t)}}else if(this._r.test(i.key)){if(null!==i.newValue){t=this.Nr(i.key,i.newValue);if(t)return this.kr(t)}}else if(i.key===this.wr){if(null!==i.newValue){var n=this.yr(i.newValue);if(n)return this.pr(n)}}else if(i.key===this.hr){n=function(e){let t=tw.at;if(null!=e)try{var n=JSON.parse(e);c_("number"==typeof n),t=n}catch(e){i_("SharedClientState","Failed to read sequence number from WebStorage",e)}return t}(i.newValue);n!==tw.at&&this.sequenceNumberHandler(n)}else if(i.key===this.mr){const r=this.Or(i.newValue);await Promise.all(r.map(e=>this.syncEngine.Mr(e)))}}else this.cr.push(i)}):i_("Received WebStorage notification for local change. Another client might have garbage-collected our state"))}get Ar(){return this.ur.get(this.sr)}gr(){this.setItem(this.ar,this.Ar.tr())}Tr(e,t,n){const r=new qE(this.currentUser,e,t,n),i=FE(this.persistenceKey,this.currentUser,e);this.setItem(i,r.tr())}Er(e){var t=FE(this.persistenceKey,this.currentUser,e);this.removeItem(t)}br(e){var t={clientId:this.sr,onlineState:e};this.storage.setItem(this.wr,JSON.stringify(t))}Rr(e,t,n){const r=UE(this.persistenceKey,e),i=new VE(e,t,n);this.setItem(r,i.tr())}Pr(e){var t=JSON.stringify(Array.from(e));this.setItem(this.mr,t)}vr(e){var t=this.lr.exec(e);return t?t[1]:null}Sr(e,t){var n=this.vr(e);return BE.Zi(n,t)}Dr(e,t){var n=this.dr.exec(e),r=Number(n[1]),n=void 0!==n[2]?n[2]:null;return qE.Zi(new Zy(n),r,t)}Nr(e,t){var n=this._r.exec(e),n=Number(n[1]);return VE.Zi(n,t)}yr(e){return jE.Zi(e)}Or(e){return JSON.parse(e)}async Cr(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Fr(e.batchId,e.state,e.error);r_("SharedClientState",`Ignoring mutation for non-active user ${e.user.uid}`)}kr(e){return this.syncEngine.$r(e.targetId,e.state,e.error)}Vr(e,t){const n=t?this.ur.insert(e,t):this.ur.remove(e),r=this.Ir(this.ur),i=this.Ir(n),s=[],a=[];return i.forEach(e=>{r.has(e)||s.push(e)}),r.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Br(s,a).then(()=>{this.ur=n})}pr(e){this.ur.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}Ir(e){let n=TI;return e.forEach((e,t)=>{n=n.unionWith(t.activeTargetIds)}),n}}class WE{constructor(){this.Lr=new $E,this.qr={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,n){}addLocalQueryTarget(e){return this.Lr.er(e),this.qr[e]||"not-current"}updateQueryState(e,t,n){this.qr[e]=t}removeLocalQueryTarget(e){this.Lr.nr(e)}isLocalQueryTarget(e){return this.Lr.activeTargetIds.has(e)}clearQueryState(e){delete this.qr[e]}getAllActiveQueryTargets(){return this.Lr.activeTargetIds}isActiveQueryTarget(e){return this.Lr.activeTargetIds.has(e)}start(){return this.Lr=new $E,Promise.resolve()}handleUserChange(e,t,n){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class zE{Ur(e){}shutdown(){}}class GE{constructor(){this.Kr=()=>this.Gr(),this.Qr=()=>this.jr(),this.Wr=[],this.zr()}Ur(e){this.Wr.push(e)}shutdown(){window.removeEventListener("online",this.Kr),window.removeEventListener("offline",this.Qr)}zr(){window.addEventListener("online",this.Kr),window.addEventListener("offline",this.Qr)}Gr(){r_("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const e of this.Wr)e(0)}jr(){r_("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const e of this.Wr)e(1)}static C(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}const HE={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class QE{constructor(e){this.Hr=e.Hr,this.Jr=e.Jr}Yr(e){this.Xr=e}Zr(e){this.eo=e}onMessage(e){this.no=e}close(){this.Jr()}send(e){this.Hr(e)}so(){this.Xr()}io(e){this.eo(e)}ro(e){this.no(e)}}class YE extends class{constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http";this.oo=t+"://"+e.host,this.uo="projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database+"/documents"}get co(){return!1}ao(t,e,n,r,i){const s=this.ho(t,e);r_("RestConnection","Sending: ",s,n);var a={};return this.lo(a,r,i),this.fo(t,s,a,n).then(e=>(r_("RestConnection","Received: ",e),e),e=>{throw s_("RestConnection",`${t} failed with error: `,e,"url: ",s,"request:",n),e})}_o(e,t,n,r,i,s){return this.ao(e,t,n,r,i)}lo(n,e,t){n["X-Goog-Api-Client"]="gl-js/ fire/"+e_,n["Content-Type"]="text/plain",this.databaseInfo.appId&&(n["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>n[t]=e),t&&t.headers.forEach((e,t)=>n[t]=e)}ho(e,t){var n=HE[e];return`${this.oo}/v1/${t}:${n}`}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams}fo(o,t,n,r){return new Promise((i,s)=>{const a=new Jy;a.setWithCredentials(!0),a.listenOnce(Wy.COMPLETE,()=>{try{switch(a.getLastErrorCode()){case Ky.NO_ERROR:var e=a.getResponseJson();r_("Connection","XHR received:",JSON.stringify(e)),i(e);break;case Ky.TIMEOUT:r_("Connection",'RPC "'+o+'" timed out'),s(new u_(l_.DEADLINE_EXCEEDED,"Request time out"));break;case Ky.HTTP_ERROR:var t=a.getStatus();if(r_("Connection",'RPC "'+o+'" failed with status:',t,"response text:",a.getResponseText()),0<t){let e=a.getResponseJson();Array.isArray(e)&&(e=e[0]);var n=null==e?void 0:e.error;if(n&&n.status&&n.message){const o=(r=n.status.toLowerCase().replace(/_/g,"-"),0<=Object.values(l_).indexOf(r)?r:l_.UNKNOWN);s(new u_(o,n.message))}else s(new u_(l_.UNKNOWN,"Server responded with status "+a.getStatus()))}else s(new u_(l_.UNAVAILABLE,"Connection failed."));break;default:o_()}}finally{r_("Connection",'RPC "'+o+'" completed.')}var r});var e=JSON.stringify(r);a.send(t,"POST",e,n,15)})}wo(e,t,n){const r=[this.oo,"/","google.firestore.v1.Firestore","/",e,"/channel"],i=new Fy,s=$y(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling};this.useFetchStreams&&(a.xmlHttpFactory=new Qy({})),this.lo(a.initMessageHeaders,t,n),a.encodeInitMessageHeaders=!0;var o=r.join("");r_("Connection","Creating WebChannel: "+o,a);const c=i.createWebChannel(o,a);let l=!1,u=!1;const h=new QE({Hr:e=>{u?r_("Connection","Not sending because WebChannel is closed:",e):(l||(r_("Connection","Opening WebChannel transport."),c.open(),l=!0),r_("Connection","WebChannel sending:",e),c.send(e))},Jr:()=>c.close()}),d=(e,t,n)=>{e.listen(t,e=>{try{n(e)}catch(e){setTimeout(()=>{throw e},0)}})};return d(c,Yy.EventType.OPEN,()=>{u||r_("Connection","WebChannel transport opened.")}),d(c,Yy.EventType.CLOSE,()=>{u||(u=!0,r_("Connection","WebChannel transport closed"),h.io())}),d(c,Yy.EventType.ERROR,e=>{u||(u=!0,s_("Connection","WebChannel transport errored:",e),h.io(new u_(l_.UNAVAILABLE,"The operation could not be completed")))}),d(c,Yy.EventType.MESSAGE,n=>{if(!u){var e=n.data[0];c_(!!e);var r=e.error||(null===(r=e[0])||void 0===r?void 0:r.error);if(r){r_("Connection","WebChannel received error:",r);const n=r.status;let e=function(e){var t=jy[e];if(void 0!==t)return pI(t)}(n),t=r.message;void 0===e&&(e=l_.INTERNAL,t="Unknown error status: "+n+" with message "+r.message),u=!0,h.io(new u_(e,t)),c.close()}else r_("Connection","WebChannel received:",e),h.ro(e)}}),d(s,zy.STAT_EVENT,e=>{e.stat===Gy?r_("Connection","Detected buffering proxy"):e.stat===Hy&&r_("Connection","Detected no buffering proxy")}),setTimeout(()=>{h.so()},0),h}}function JE(){return"undefined"!=typeof window?window:null}function XE(){return"undefined"!=typeof document?document:null}function ZE(e){return new LI(e,!0)}class ek{constructor(e,t,n=1e3,r=1.5,i=6e4){this.Hs=e,this.timerId=t,this.mo=n,this.yo=r,this.po=i,this.Io=0,this.To=null,this.Eo=Date.now(),this.reset()}reset(){this.Io=0}Ao(){this.Io=this.po}Ro(e){this.cancel();var t=Math.floor(this.Io+this.bo()),n=Math.max(0,Date.now()-this.Eo),r=Math.max(0,t-n);0<r&&r_("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.Io} ms, delay with jitter: ${t} ms, last attempt: ${n} ms ago)`),this.To=this.Hs.enqueueAfterDelay(this.timerId,r,()=>(this.Eo=Date.now(),e())),this.Io*=this.yo,this.Io<this.mo&&(this.Io=this.mo),this.Io>this.po&&(this.Io=this.po)}Po(){null!==this.To&&(this.To.skipDelay(),this.To=null)}cancel(){null!==this.To&&(this.To.cancel(),this.To=null)}bo(){return(Math.random()-.5)*this.Io}}class tk{constructor(e,t,n,r,i,s,a,o){this.Hs=e,this.vo=n,this.Vo=r,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.So=0,this.Do=null,this.Co=null,this.stream=null,this.xo=new ek(e,t)}No(){return 1===this.state||5===this.state||this.ko()}ko(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Oo()}async stop(){this.No()&&await this.close(0)}Mo(){this.state=0,this.xo.reset()}Fo(){this.ko()&&null===this.Do&&(this.Do=this.Hs.enqueueAfterDelay(this.vo,6e4,()=>this.$o()))}Bo(e){this.Lo(),this.stream.send(e)}async $o(){if(this.ko())return this.close(0)}Lo(){this.Do&&(this.Do.cancel(),this.Do=null)}qo(){this.Co&&(this.Co.cancel(),this.Co=null)}async close(e,t){this.Lo(),this.qo(),this.xo.cancel(),this.So++,4!==e?this.xo.reset():t&&t.code===l_.RESOURCE_EXHAUSTED?(i_(t.toString()),i_("Using maximum backoff delay to prevent overloading the backend."),this.xo.Ao()):t&&t.code===l_.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.Uo(),this.stream.close(),this.stream=null),this.state=e,await this.listener.Zr(t)}Uo(){}auth(){this.state=1;const e=this.Ko(this.So),n=this.So;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.So===n&&this.Go(e,t)},t=>{e(()=>{var e=new u_(l_.UNKNOWN,"Fetching auth token failed: "+t.message);return this.Qo(e)})})}Go(e,t){const n=this.Ko(this.So);this.stream=this.jo(e,t),this.stream.Yr(()=>{n(()=>(this.state=2,this.Co=this.Hs.enqueueAfterDelay(this.Vo,1e4,()=>(this.ko()&&(this.state=3),Promise.resolve())),this.listener.Yr()))}),this.stream.Zr(e=>{n(()=>this.Qo(e))}),this.stream.onMessage(e=>{n(()=>this.onMessage(e))})}Oo(){this.state=5,this.xo.Ro(async()=>{this.state=0,this.start()})}Qo(e){return r_("PersistentStream",`close with error: ${e}`),this.stream=null,this.close(4,e)}Ko(t){return e=>{this.Hs.enqueueAndForget(()=>this.So===t?e():(r_("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class nk extends tk{constructor(e,t,n,r,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,n,r,s),this.yt=i}jo(e,t){return this.connection.wo("Listen",e,t)}onMessage(e){this.xo.reset();var t=function(e,t){let n;if("targetChange"in t){t.targetChange;var r="NO_CHANGE"===(p=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===p?1:"REMOVE"===p?2:"CURRENT"===p?3:"RESET"===p?4:o_(),i=t.targetChange.targetIds||[],s=(p=t.targetChange.resumeToken,e.wt?(c_(void 0===p||"string"==typeof p),uw.fromBase64String(p||"")):(c_(void 0===p||p instanceof Uint8Array),uw.fromUint8Array(p||new Uint8Array))),a=t.targetChange.cause,o=a&&(o=void 0===(p=a).code?l_.UNKNOWN:pI(p.code),new u_(o,p.message||""));n=new AI(r,i,s,o||null)}else if("documentChange"in t){t.documentChange;var c=t.documentChange;c.document,c.document.name,c.document.updateTime;var s=$I(e,c.document.name),o=qI(c.document.updateTime),l=c.document.createTime?qI(c.document.createTime):k_.min(),u=new lb({mapValue:{fields:c.document.fields}}),l=ub.newFoundDocument(s,o,l,u),u=c.targetIds||[],c=c.removedTargetIds||[];n=new SI(u,c,l.key,l)}else if("documentDelete"in t){t.documentDelete;u=t.documentDelete;u.document;c=$I(e,u.document),l=u.readTime?qI(u.readTime):k_.min(),l=ub.newNoDocument(c,l),u=u.removedTargetIds||[];n=new SI([],u,l.key,l)}else if("documentRemove"in t){t.documentRemove;var h=t.documentRemove;h.document;var d=$I(e,h.document),h=h.removedTargetIds||[];n=new SI([],h,d,null)}else{if(!("filter"in t))return o_();{t.filter;const e=t.filter;e.targetId;h=e.count||0,d=new hI(h),h=e.targetId;n=new CI(h,d)}}var o,p;return n}(this.yt,e),n=function(e){if(!("targetChange"in e))return k_.min();var t=e.targetChange;return(!t.targetIds||!t.targetIds.length)&&t.readTime?qI(t.readTime):k_.min()}(e);return this.listener.Wo(t,n)}zo(e){const t={};t.database=zI(this.yt),t.addTarget=function(e,t){let n;var r=t.target;return n=gb(r)?{documents:XI(e,r)}:{query:ZI(e,r)},n.targetId=t.targetId,0<t.resumeToken.approximateByteSize()?n.resumeToken=UI(e,t.resumeToken):0<t.snapshotVersion.compareTo(k_.min())&&(n.readTime=FI(e,t.snapshotVersion.toTimestamp())),n}(this.yt,e);var n,r,r=(this.yt,n=e,null==(r=function(){switch(n.purpose){case 0:return null;case 1:return"existence-filter-mismatch";case 2:return"limbo-document";default:return o_()}}())?null:{"goog-listen-tags":r});r&&(t.labels=r),this.Bo(t)}Ho(e){const t={};t.database=zI(this.yt),t.removeTarget=e,this.Bo(t)}}class rk extends tk{constructor(e,t,n,r,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,n,r,s),this.yt=i,this.Jo=!1}get Yo(){return this.Jo}start(){this.Jo=!1,this.lastStreamToken=void 0,super.start()}Uo(){this.Jo&&this.Xo([])}jo(e,t){return this.connection.wo("Write",e,t)}onMessage(e){if(c_(!!e.streamToken),this.lastStreamToken=e.streamToken,this.Jo){this.xo.reset();var t=(r=e.writeResults,i=e.commitTime,r&&0<r.length?(c_(void 0!==i),r.map(e=>function(e,t){let n=e.updateTime?qI(e.updateTime):qI(t);return n.isEqual(k_.min())&&(n=qI(t)),new Yb(n,e.transformResults||[])}(e,i))):[]),n=qI(e.commitTime);return this.listener.Zo(n,t)}var r,i;return c_(!e.writeResults||0===e.writeResults.length),this.Jo=!0,this.listener.tu()}eu(){const e={};e.database=zI(this.yt),this.Bo(e)}Xo(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>YI(this.yt,e))};this.Bo(t)}}class ik extends class{}{constructor(e,t,n,r){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=n,this.yt=r,this.nu=!1}su(){if(this.nu)throw new u_(l_.FAILED_PRECONDITION,"The client has already been terminated.")}ao(n,r,i){return this.su(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.ao(n,r,i,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===l_.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new u_(l_.UNKNOWN,e.toString())})}_o(n,r,i,s){return this.su(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection._o(n,r,i,e,t,s)).catch(e=>{throw"FirebaseError"===e.name?(e.code===l_.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new u_(l_.UNKNOWN,e.toString())})}terminate(){this.nu=!0}}class sk{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.iu=0,this.ru=null,this.ou=!0}uu(){0===this.iu&&(this.cu("Unknown"),this.ru=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.ru=null,this.au("Backend didn't respond within 10 seconds."),this.cu("Offline"),Promise.resolve())))}hu(e){"Online"===this.state?this.cu("Unknown"):(this.iu++,1<=this.iu&&(this.lu(),this.au(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.cu("Offline")))}set(e){this.lu(),this.iu=0,"Online"===e&&(this.ou=!1),this.cu(e)}cu(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}au(e){var t=`Could not reach Cloud Firestore backend. ${e}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.ou?(i_(t),this.ou=!1):r_("OnlineStateTracker",t)}lu(){null!==this.ru&&(this.ru.cancel(),this.ru=null)}}class ak{constructor(e,t,n,r,i){this.localStore=e,this.datastore=t,this.asyncQueue=n,this.remoteSyncer={},this.fu=[],this.du=new Map,this._u=new Set,this.wu=[],this.mu=i,this.mu.Ur(e=>{n.enqueueAndForget(async()=>{gk(this)&&(r_("RemoteStore","Restarting streams for network reachability change."),await async function(e){const t=e;t._u.add(4),await ck(t),t.gu.set("Unknown"),t._u.delete(4),await ok(t)}(this))})}),this.gu=new sk(n,r)}}async function ok(e){if(gk(e))for(const t of e.wu)await t(!0)}async function ck(e){for(const t of e.wu)await t(!1)}function lk(e,t){const n=e;n.du.has(t.targetId)||(n.du.set(t.targetId,t),fk(n)?pk(n):Ek(n).ko()&&hk(n,t))}function uk(e,t){const n=e,r=Ek(n);n.du.delete(t),r.ko()&&dk(n,t),0===n.du.size&&(r.ko()?r.Fo():gk(n)&&n.gu.set("Unknown"))}function hk(e,t){e.yu.Ot(t.targetId),Ek(e).zo(t)}function dk(e,t){e.yu.Ot(t),Ek(e).Ho(t)}function pk(t){t.yu=new RI({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),ne:e=>t.du.get(e)||null}),Ek(t).start(),t.gu.uu()}function fk(e){return gk(e)&&!Ek(e).No()&&0<e.du.size}function gk(e){return 0===e._u.size}function mk(e){e.yu=void 0}async function vk(e,t,n){if(!H_(t))throw t;e._u.add(1),await ck(e),e.gu.set("Offline"),n=n||(()=>CE(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{r_("RemoteStore","Retrying IndexedDB access"),await n(),e._u.delete(1),await ok(e)})}function yk(t,n){return n().catch(e=>vk(t,e,n))}async function _k(e){const t=e,n=kk(t);let r=0<t.fu.length?t.fu[t.fu.length-1].batchId:-1;for(;gk(i=t)&&i.fu.length<10;)try{const e=await function(e,t){const n=e;return n.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))}(t.localStore,r);if(null===e){0===t.fu.length&&n.Fo();break}r=e.batchId,function(e,t){e.fu.push(t);const n=kk(e);n.ko()&&n.Yo&&n.Xo(t.mutations)}(t,e)}catch(e){await vk(t,e)}var i;wk(t)&&bk(t)}function wk(e){return gk(e)&&!kk(e).No()&&0<e.fu.length}function bk(e){kk(e).start()}async function Ik(e,t){const n=e;n.asyncQueue.verifyOperationInProgress(),r_("RemoteStore","RemoteStore received new credentials");var r=gk(n);n._u.add(3),await ck(n),r&&n.gu.set("Unknown"),await n.remoteSyncer.handleCredentialChange(t),n._u.delete(3),await ok(n)}async function Tk(e,t){const n=e;t?(n._u.delete(2),await ok(n)):(n._u.add(2),await ck(n),n.gu.set("Unknown"))}function Ek(t){return t.pu||(t.pu=function(e,t,n){const r=e;return r.su(),new nk(t,r.connection,r.authCredentials,r.appCheckCredentials,r.yt,n)}(t.datastore,t.asyncQueue,{Yr:(async function(n){n.du.forEach((e,t)=>{hk(n,e)})}).bind(null,t),Zr:(async function(e,t){mk(e),fk(e)?(e.gu.hu(t),pk(e)):e.gu.set("Unknown")}).bind(null,t),Wo:(async function(e,r,t){if(e.gu.set("Online"),r instanceof AI&&2===r.state&&r.cause)try{await async function(e){var t=r.cause;for(const n of r.targetIds)e.du.has(n)&&(await e.remoteSyncer.rejectListen(n,t),e.du.delete(n),e.yu.removeTarget(n))}(e)}catch(t){r_("RemoteStore","Failed to remove targets %s: %s ",r.targetIds.join(","),t),await vk(e,t)}else if(r instanceof SI?e.yu.Kt(r):r instanceof CI?e.yu.Jt(r):e.yu.jt(r),!t.isEqual(k_.min()))try{const r=await CE(e.localStore);0<=t.compareTo(r)&&await function(r,i){const e=r.yu.Zt(i);return e.targetChanges.forEach((e,t)=>{if(0<e.resumeToken.approximateByteSize()){const n=r.du.get(t);n&&r.du.set(t,n.withResumeToken(e.resumeToken,i))}}),e.targetMismatches.forEach(e=>{const t=r.du.get(e);var n;t&&(r.du.set(e,t.withResumeToken(uw.EMPTY_BYTE_STRING,t.snapshotVersion)),dk(r,e),n=new FT(t.target,e,1,t.sequenceNumber),hk(r,n))}),r.remoteSyncer.applyRemoteEvent(e)}(e,t)}catch(r){r_("RemoteStore","Failed to raise snapshot:",r),await vk(e,r)}}).bind(null,t)}),t.wu.push(async e=>{e?(t.pu.Mo(),fk(t)?pk(t):t.gu.set("Unknown")):(await t.pu.stop(),mk(t))})),t.pu}function kk(t){return t.Iu||(t.Iu=function(e,t,n){const r=e;return r.su(),new rk(t,r.connection,r.authCredentials,r.appCheckCredentials,r.yt,n)}(t.datastore,t.asyncQueue,{Yr:(async function(e){kk(e).eu()}).bind(null,t),Zr:(async function(e,t){t&&kk(e).Yo&&await async function(e,t){if(dI(n=t.code)&&n!==l_.ABORTED){const n=e.fu.shift();kk(e).Mo(),await yk(e,()=>e.remoteSyncer.rejectFailedWrite(n.batchId,t)),await _k(e)}var n}(e,t),wk(e)&&bk(e)}).bind(null,t),tu:(async function(e){const t=kk(e);for(const n of e.fu)t.Xo(n.mutations)}).bind(null,t),Zo:(async function(e,t,n){const r=e.fu.shift(),i=MT.from(r,t,n);await yk(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await _k(e)}).bind(null,t)}),t.wu.push(async e=>{e?(t.Iu.Mo(),await _k(t)):(await t.Iu.stop(),0<t.fu.length&&(r_("RemoteStore",`Stopping write stream with ${t.fu.length} pending writes`),t.fu=[]))})),t.Iu}class Sk{constructor(e,t,n,r,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=n,this.op=r,this.removalCallback=i,this.deferred=new h_,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}static createAndSchedule(e,t,n,r,i){const s=Date.now()+n,a=new Sk(e,t,s,r,i);return a.start(n),a}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new u_(l_.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Ck(e,t){if(i_("AsyncQueue",`${t}: ${e}`),H_(e))return new u_(l_.UNAVAILABLE,`${t}: ${e}`);throw e}class Ak{constructor(n){this.comparator=n?(e,t)=>n(e,t)||R_.comparator(e.key,t.key):(e,t)=>R_.comparator(e.key,t.key),this.keyedMap=vI(),this.sortedSet=new nb(this.comparator)}static emptySet(e){return new Ak(e.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(n){this.sortedSet.inorderTraversal((e,t)=>(n(e),!1))}add(e){const t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof Ak))return!1;if(this.size!==e.size)return!1;const t=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();for(;t.hasNext();){const e=t.getNext().key,r=n.getNext().key;if(!e.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){const n=new Ak;return n.comparator=this.comparator,n.keyedMap=e,n.sortedSet=t,n}}class Nk{constructor(){this.Tu=new nb(R_.comparator)}track(e){var t=e.doc.key,n=this.Tu.get(t);!n||0!==e.type&&3===n.type?this.Tu=this.Tu.insert(t,e):3===e.type&&1!==n.type?this.Tu=this.Tu.insert(t,{type:n.type,doc:e.doc}):2===e.type&&2===n.type?this.Tu=this.Tu.insert(t,{type:2,doc:e.doc}):2===e.type&&0===n.type?this.Tu=this.Tu.insert(t,{type:0,doc:e.doc}):1===e.type&&0===n.type?this.Tu=this.Tu.remove(t):1===e.type&&2===n.type?this.Tu=this.Tu.insert(t,{type:1,doc:n.doc}):0===e.type&&1===n.type?this.Tu=this.Tu.insert(t,{type:2,doc:e.doc}):o_()}Eu(){const n=[];return this.Tu.inorderTraversal((e,t)=>{n.push(t)}),n}}class Rk{constructor(e,t,n,r,i,s,a,o,c){this.query=e,this.docs=t,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=c}static fromInitialDocuments(e,t,n,r,i){const s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new Rk(e,t,Ak.emptySet(t),s,n,r,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&Rb(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;const t=this.docChanges,n=e.docChanges;if(t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(t[r].type!==n[r].type||!t[r].doc.isEqual(n[r].doc))return!1;return!0}}class xk{constructor(){this.Au=void 0,this.listeners=[]}}class Dk{constructor(){this.queries=new fI(e=>xb(e),Rb),this.onlineState="Unknown",this.Ru=new Set}}async function Pk(e,t){const n=e,r=t.query;let i=!1,s=n.queries.get(r);if(s||(i=!0,s=new xk),i)try{s.Au=await n.onListen(r)}catch(e){const n=Ck(e,`Initialization of query '${Db(t.query)}' failed`);return void t.onError(n)}n.queries.set(r,s),s.listeners.push(t),t.bu(n.onlineState),!s.Au||t.Pu(s.Au)&&Mk(n)}async function Ok(e,t){const n=e,r=t.query;let i=!1;const s=n.queries.get(r);if(s){const e=s.listeners.indexOf(t);0<=e&&(s.listeners.splice(e,1),i=0===s.listeners.length)}if(i)return n.queries.delete(r),n.onUnlisten(r)}function Mk(e){e.Ru.forEach(e=>{e.next()})}class Lk{constructor(e,t,n){this.query=e,this.vu=t,this.Vu=!1,this.Su=null,this.onlineState="Unknown",this.options=n||{}}Pu(e){if(!this.options.includeMetadataChanges){const t=[];for(const n of e.docChanges)3!==n.type&&t.push(n);e=new Rk(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.Vu?this.Du(e)&&(this.vu.next(e),t=!0):this.Cu(e,this.onlineState)&&(this.xu(e),t=!0),this.Su=e,t}onError(e){this.vu.error(e)}bu(e){this.onlineState=e;let t=!1;return this.Su&&!this.Vu&&this.Cu(this.Su,e)&&(this.xu(this.Su),t=!0),t}Cu(e,t){return!e.fromCache||(!this.options.Nu||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Du(e){if(0<e.docChanges.length)return!0;var t=this.Su&&this.Su.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}xu(e){e=Rk.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Vu=!0,this.vu.next(e)}}class Fk{constructor(e,t){this.ku=e,this.byteLength=t}Ou(){return"metadata"in this.ku}}class Uk{constructor(e){this.yt=e}Ji(e){return $I(this.yt,e)}Yi(e){return e.metadata.exists?QI(this.yt,e.document,!1):ub.newNoDocument(this.Ji(e.metadata.name),this.Xi(e.metadata.readTime))}Xi(e){return qI(e)}}class qk{constructor(e,t,n){this.Mu=e,this.localStore=t,this.yt=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=Vk(e)}Fu(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;if(e.ku.namedQuery)this.queries.push(e.ku.namedQuery);else if(e.ku.documentMetadata){this.documents.push({metadata:e.ku.documentMetadata}),e.ku.documentMetadata.exists||++t;const n=C_.fromString(e.ku.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else e.ku.document&&(this.documents[this.documents.length-1].document=e.ku.document,++t);return t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}$u(e){const t=new Map,n=new Uk(this.yt);for(const i of e)if(i.metadata.queries){const e=n.Ji(i.metadata.name);for(const n of i.metadata.queries){var r=(t.get(n)||II()).add(e);t.set(n,r)}}return t}async complete(){const e=await async function(e,t,n,r){const i=e;let s=II(),a=gI;for(const e of n){const n=t.Ji(e.metadata.name);e.document&&(s=s.add(n));const l=t.Yi(e);l.setReadTime(t.Xi(e.metadata.readTime)),a=a.insert(n,l)}const o=i.Gi.newChangeBuffer({trackRemovals:!0}),c=await RE(i,(r=r,Cb(bb(C_.fromString(`__bundle__/docs/${r}`)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>NE(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Cs.removeMatchingKeysForTargetId(t,c.targetId).next(()=>i.Cs.addMatchingKeys(t,s,c.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Wi,e.zi)).next(()=>e.Wi)))}(this.localStore,new Uk(this.yt),this.documents,this.Mu.id),t=this.$u(this.documents);for(const e of this.queries)await async function(e,n,r=II()){const i=await RE(e,Cb(zT(n.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=qI(n.readTime);if(0<=i.snapshotVersion.compareTo(t))return s.Ns.saveNamedQuery(e,n);t=i.withResumeToken(uw.EMPTY_BYTE_STRING,t);return s.qi=s.qi.insert(t.targetId,t),s.Cs.updateTargetData(e,t).next(()=>s.Cs.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Cs.addMatchingKeys(e,r,i.targetId)).next(()=>s.Ns.saveNamedQuery(e,n))})}(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,Bu:this.collectionGroups,Lu:e}}}function Vk(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class Bk{constructor(e){this.key=e}}class jk{constructor(e){this.key=e}}class $k{constructor(e,t){this.query=e,this.qu=t,this.Uu=null,this.hasCachedResults=!1,this.current=!1,this.Ku=II(),this.mutatedKeys=II(),this.Gu=Mb(e),this.Qu=new Ak(this.Gu)}get ju(){return this.qu}Wu(e,t){const o=t?t.zu:new Nk,c=(t||this).Qu;let l=(t||this).mutatedKeys,u=c,h=!1;const d="F"===this.query.limitType&&c.size===this.query.limit?c.last():null,p="L"===this.query.limitType&&c.size===this.query.limit?c.first():null;if(e.inorderTraversal((e,t)=>{const n=c.get(e),r=Pb(this.query,t)?t:null,i=!!n&&this.mutatedKeys.has(n.key),s=!!r&&(r.hasLocalMutations||this.mutatedKeys.has(r.key)&&r.hasCommittedMutations);let a=!1;n&&r?n.data.isEqual(r.data)?i!==s&&(o.track({type:3,doc:r}),a=!0):this.Hu(n,r)||(o.track({type:2,doc:r}),a=!0,(d&&0<this.Gu(r,d)||p&&this.Gu(r,p)<0)&&(h=!0)):!n&&r?(o.track({type:0,doc:r}),a=!0):n&&!r&&(o.track({type:1,doc:n}),a=!0,(d||p)&&(h=!0)),a&&(l=r?(u=u.add(r),s?l.add(e):l.delete(e)):(u=u.delete(e),l.delete(e)))}),null!==this.query.limit)for(;u.size>this.query.limit;){const e="F"===this.query.limitType?u.last():u.first();u=u.delete(e.key),l=l.delete(e.key),o.track({type:1,doc:e})}return{Qu:u,zu:o,$i:h,mutatedKeys:l}}Hu(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,n){var r=this.Qu;this.Qu=e.Qu,this.mutatedKeys=e.mutatedKeys;const i=e.zu.Eu();i.sort((e,t)=>function(e,t){var n=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return o_()}};return n(e)-n(t)}(e.type,t.type)||this.Gu(e.doc,t.doc)),this.Ju(n);var s=t?this.Yu():[],a=0===this.Ku.size&&this.current?1:0,o=a!==this.Uu;return this.Uu=a,0!==i.length||o?{snapshot:new Rk(this.query,e.Qu,r,i,e.mutatedKeys,0==a,o,!1,!!n&&0<n.resumeToken.approximateByteSize()),Xu:s}:{Xu:s}}bu(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Qu:this.Qu,zu:new Nk,mutatedKeys:this.mutatedKeys,$i:!1},!1)):{Xu:[]}}Zu(e){return!this.qu.has(e)&&!!this.Qu.has(e)&&!this.Qu.get(e).hasLocalMutations}Ju(e){e&&(e.addedDocuments.forEach(e=>this.qu=this.qu.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.qu=this.qu.delete(e)),this.current=e.current)}Yu(){if(!this.current)return[];const t=this.Ku;this.Ku=II(),this.Qu.forEach(e=>{this.Zu(e.key)&&(this.Ku=this.Ku.add(e.key))});const n=[];return t.forEach(e=>{this.Ku.has(e)||n.push(new jk(e))}),this.Ku.forEach(e=>{t.has(e)||n.push(new Bk(e))}),n}tc(e){this.qu=e.Hi,this.Ku=II();var t=this.Wu(e.documents);return this.applyChanges(t,!0)}ec(){return Rk.fromInitialDocuments(this.query,this.Qu,this.mutatedKeys,0===this.Uu,this.hasCachedResults)}}class Kk{constructor(e,t,n){this.query=e,this.targetId=t,this.view=n}}class Wk{constructor(e){this.key=e,this.nc=!1}}class zk{constructor(e,t,n,r,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=n,this.sharedClientState=r,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.sc={},this.ic=new fI(e=>xb(e),Rb),this.rc=new Map,this.oc=new Set,this.uc=new nb(R_.comparator),this.cc=new Map,this.ac=new aE,this.hc={},this.lc=new Map,this.fc=L0.vn(),this.onlineState="Unknown",this.dc=void 0}get isPrimaryClient(){return!0===this.dc}}async function Gk(n,e,t,r,i){n._c=(e,s,t)=>async function(e,t,n){let r=t.view.Wu(s);r.$i&&(r=await DE(e.localStore,t.query,!1).then(({documents:e})=>t.view.Wu(e,r)));var i=n&&n.targetChanges.get(t.targetId),i=t.view.applyChanges(r,e.isPrimaryClient,i);return nS(e,t.targetId,i.Xu),i.snapshot}(n,e,t);const s=await DE(n.localStore,e,!0),a=new $k(e,s.Hi),o=a.Wu(s.documents),c=kI.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),l=a.applyChanges(o,n.isPrimaryClient,c);nS(n,t,l.Xu);var u=new Kk(e,t,a);return n.ic.set(e,u),n.rc.has(t)?n.rc.get(t).push(e):n.rc.set(t,[e]),l.snapshot}async function Hk(e,t,n){const r=lS(e);try{const e=await function(e,i){const s=e,a=E_.now(),o=i.reduce((e,t)=>e.add(t.key),II());let c,l;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=gI,r=II();return s.Gi.getEntries(n,o).next(e=>{t=e,t.forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{c=e;const t=[];for(const n of i){const i=function(e,t){let n=null;for(const r of e.fieldTransforms){const e=t.data.field(r.field),i=Vb(r.transform,e||null);null!=i&&(null===n&&(n=lb.empty()),n.set(r.field,i))}return n||null}(n,c.get(n.key).overlayedDocument);null!=i&&t.push(new sI(n.key,i,function r(e){const i=[];return sw(e.fields,(e,t)=>{const n=new N_([e]);if(Rw(t)){const e=r(t.mapValue).fields;if(0===e.length)i.push(n);else for(const t of e)i.push(n.child(t))}else i.push(n)}),new cb(i)}(i.value.mapValue),Jb.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(l=e).applyToLocalDocumentSet(c,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:l.batchId,changes:yI(c)}))}(r.localStore,t);r.sharedClientState.addPendingMutation(e.batchId),function(e,t,n){let r=e.hc[e.currentUser.toKey()];r=r||new nb(b_),r=r.insert(t,n),e.hc[e.currentUser.toKey()]=r}(r,e.batchId,n),await iS(r,e.changes),await _k(r.remoteStore)}catch(e){const t=Ck(e,"Failed to persist write");n.reject(t)}}async function Qk(e,t){const r=e;try{const e=await AE(r.localStore,t);t.targetChanges.forEach((e,t)=>{const n=r.cc.get(t);n&&(c_(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),0<e.addedDocuments.size?n.nc=!0:0<e.modifiedDocuments.size?c_(n.nc):0<e.removedDocuments.size&&(c_(n.nc),n.nc=!1))}),await iS(r,e,t)}catch(e){await j_(e)}}function Yk(r,i,e){const t=r;if(t.isPrimaryClient&&0===e||!t.isPrimaryClient&&1===e){const r=[];t.ic.forEach((e,t)=>{var n=t.view.bu(i);n.snapshot&&r.push(n.snapshot)}),function(e,n){const t=e;t.onlineState=n;let r=!1;t.queries.forEach((e,t)=>{for(const e of t.listeners)e.bu(n)&&(r=!0)}),r&&Mk(t)}(t.eventManager,i),r.length&&t.sc.Wo(r),t.onlineState=i,t.isPrimaryClient&&t.sharedClientState.setOnlineState(i)}}async function Jk(e,t){const n=e,r=t.batch.batchId;try{const e=await function(e,r){const i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{const t=r.batch.keys(),n=i.Gi.newChangeBuffer({trackRemovals:!0});return function(e,t,r,i){const s=r.batch,n=s.keys();let a=$_.resolve();return n.forEach(n=>{a=a.next(()=>i.getEntry(t,n)).next(e=>{var t=r.docVersions.get(n);c_(null!==t),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,r),e.isValidDocument()&&(e.setReadTime(r.commitVersion),i.addEntry(e)))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))}(i,e,r,n).next(()=>n.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,r.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=II();for(let n=0;n<e.mutationResults.length;++n)0<e.mutationResults[n].transformResults.length&&(t=t.add(e.batch.mutations[n].key));return t}(r))).next(()=>i.localDocuments.getDocuments(e,t))})}(n.localStore,t);Zk(n,r,null),Xk(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await iS(n,e)}catch(e){await j_(e)}}function Xk(e,t){(e.lc.get(t)||[]).forEach(e=>{e.resolve()}),e.lc.delete(t)}function Zk(e,t,n){const r=e;let i=r.hc[r.currentUser.toKey()];if(i){const e=i.get(t);e&&(n?e.reject(n):e.resolve(),i=i.remove(t)),r.hc[r.currentUser.toKey()]=i}}function eS(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.rc.get(e))t.ic.delete(r),n&&t.sc.wc(r,n);t.rc.delete(e),t.isPrimaryClient&&t.ac.ls(e).forEach(e=>{t.ac.containsKey(e)||tS(t,e)})}function tS(e,t){e.oc.delete(t.path.canonicalString());var n=e.uc.get(t);null!==n&&(uk(e.remoteStore,n),e.uc=e.uc.remove(t),e.cc.delete(n),rS(e))}function nS(e,t,n){for(const r of n)r instanceof Bk?(e.ac.addReference(r.key,t),function(e,t){const n=t.key,r=n.path.canonicalString();e.uc.get(n)||e.oc.has(r)||(r_("SyncEngine","New document in limbo: "+n),e.oc.add(r),rS(e))}(e,r)):r instanceof jk?(r_("SyncEngine","Document no longer in limbo: "+r.key),e.ac.removeReference(r.key,t),e.ac.containsKey(r.key)||tS(e,r.key)):o_()}function rS(e){for(;0<e.oc.size&&e.uc.size<e.maxConcurrentLimboResolutions;){var t=e.oc.values().next().value;e.oc.delete(t);var n=new R_(C_.fromString(t)),t=e.fc.next();e.cc.set(t,new Wk(n)),e.uc=e.uc.insert(n,t),lk(e.remoteStore,new FT(Cb(bb(n.path)),t,2,tw.at))}}async function iS(e,t,r){const i=e,s=[],a=[],o=[];i.ic.isEmpty()||(i.ic.forEach((e,n)=>{o.push(i._c(n,t,r).then(e=>{var t;(e||r)&&i.isPrimaryClient&&i.sharedClientState.updateQueryState(n.targetId,null!=e&&e.fromCache?"not-current":"current"),e&&(s.push(e),t=IE.Ci(n.targetId,e),a.push(t))}))}),await Promise.all(o),i.sc.Wo(s),await async function(e,t){const r=e;try{await r.persistence.runTransaction("notifyLocalViewChanges","readwrite",n=>$_.forEach(t,t=>$_.forEach(t.Si,e=>r.persistence.referenceDelegate.addReference(n,t.targetId,e)).next(()=>$_.forEach(t.Di,e=>r.persistence.referenceDelegate.removeReference(n,t.targetId,e)))))}catch(e){if(!H_(e))throw e;r_("LocalStore","Failed to update sequence numbers: "+e)}for(const e of t){const t=e.targetId;if(!e.fromCache){const e=r.qi.get(t),n=e.snapshotVersion,i=e.withLastLimboFreeSnapshotVersion(n);r.qi=r.qi.insert(t,i)}}}(i.localStore,a))}async function sS(r,e){const i=r;if(cS(i),lS(i),!0===e&&!0!==i.dc){const r=i.sharedClientState.getAllActiveQueryTargets(),e=await aS(i,r.toArray());i.dc=!0,await Tk(i.remoteStore,!0);for(const r of e)lk(i.remoteStore,r)}else if(!1===e&&!1!==i.dc){const r=[];let n=Promise.resolve();i.rc.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(eS(i,t),xE(i.localStore,t,!0))),uk(i.remoteStore,t)}),await n,await aS(i,r),function(){const n=i;n.cc.forEach((e,t)=>{uk(n.remoteStore,t)}),n.ac.fs(),n.cc=new Map,n.uc=new nb(R_.comparator)}(),i.dc=!1,await Tk(i.remoteStore,!1)}}async function aS(t,n){const r=t,i=[],s=[];for(const t of n){let e;const u=r.rc.get(t);if(u&&0!==u.length){e=await RE(r.localStore,Cb(u[0]));for(const t of u){const n=r.ic.get(t),u=(a=r,o=n,l=c=void 0,l=await DE((c=a).localStore,o.query,!0),l=o.view.tc(l),c.isPrimaryClient&&nS(c,o.targetId,l.Xu),await l);u.snapshot&&s.push(u.snapshot)}}else{const u=await PE(r.localStore,t);e=await RE(r.localStore,u),await Gk(r,oS(u),t,!1,e.resumeToken)}i.push(e)}var a,o,c,l;return r.sc.Wo(s),i}function oS(e){return wb(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function cS(e){const t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=Qk.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){const n=e,r=n.cc.get(t);if(r&&r.nc)return II().add(r.key);{let e=II();const r=n.rc.get(t);if(!r)return e;for(const t of r){const r=n.ic.get(t);e=e.unionWith(r.view.ju)}return e}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,t,n){const r=e;r.sharedClientState.updateQueryState(t,"rejected",n);const i=r.cc.get(t),s=i&&i.key;if(s){let e=new nb(R_.comparator);e=e.insert(s,ub.newNoDocument(s,k_.min()));const n=II().add(s),i=new EI(k_.min(),new Map,new sb(b_),e,n);await Qk(r,i),r.uc=r.uc.remove(s),r.cc.delete(t),rS(r)}else await xE(r.localStore,t,!1).then(()=>eS(r,t,n)).catch(j_)}).bind(null,t),t.sc.Wo=(function(e,t){const n=e;let r=!1;for(const e of t){const t=e.query,i=n.queries.get(t);if(i){for(const t of i.listeners)t.Pu(e)&&(r=!0);i.Au=e}}r&&Mk(n)}).bind(null,t.eventManager),t.sc.wc=(function(e,t,n){const r=e,i=r.queries.get(t);if(i)for(const e of i.listeners)e.onError(n);r.queries.delete(t)}).bind(null,t.eventManager),t}function lS(e){const t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=Jk.bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=(async function(e,t,n){const r=e;try{const e=await function(e,r){const i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let n;return i.mutationQueue.lookupMutationBatch(t,r).next(e=>(c_(null!==e),n=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,n,r)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,n)).next(()=>i.localDocuments.getDocuments(t,n))})}(r.localStore,t);Zk(r,t,n),Xk(r,t),r.sharedClientState.updateMutationState(t,"rejected",n),await iS(r,e)}catch(n){await j_(n)}}).bind(null,t),t}class uS{constructor(){this.synchronizeTabs=!1}async initialize(e){this.yt=ZE(e.databaseInfo.databaseId),this.sharedClientState=this.gc(e),this.persistence=this.yc(e),await this.persistence.start(),this.localStore=this.Ic(e),this.gcScheduler=this.Tc(e,this.localStore),this.indexBackfillerScheduler=this.Ec(e,this.localStore)}Tc(e,t){return null}Ec(e,t){return null}Ic(e){return kE(this.persistence,new TE,e.initialUser,this.yt)}yc(e){return new dE(fE.Bs,this.yt)}gc(e){return new WE}async terminate(){this.gcScheduler&&this.gcScheduler.stop(),await this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class hS extends uS{constructor(e,t,n){super(),this.Ac=e,this.cacheSizeBytes=t,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.Ac.initialize(this,e),await lS(this.Ac.syncEngine),await _k(this.Ac.remoteStore),await this.persistence.li(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}Ic(e){return kE(this.persistence,new TE,e.initialUser,this.yt)}Tc(e,t){var n=this.persistence.referenceDelegate.garbageCollector;return new $0(n,e.asyncQueue,t)}Ec(e,t){var n=new ew(t,this.persistence);return new Z_(e.asyncQueue,n)}yc(e){var t=bE(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?A0.withCacheSize(this.cacheSizeBytes):A0.DEFAULT;return new yE(this.synchronizeTabs,t,e.clientId,n,e.asyncQueue,JE(),XE(),this.yt,this.sharedClientState,!!this.forceOwnership)}gc(e){return new WE}}class dS extends hS{constructor(e,t){super(e,t,!1),this.Ac=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.Ac.syncEngine;this.sharedClientState instanceof KE&&(this.sharedClientState.syncEngine={Fr:(async function(e,t,n,r){var i=e,s=await function(e,n){const r=e,i=r.mutationQueue;return r.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.Tn(t,n).next(e=>e?r.localDocuments.getDocuments(t,e):$_.resolve(null)))}(i.localStore,t);null!==s?("pending"===n?await _k(i.remoteStore):"acknowledged"===n||"rejected"===n?(Zk(i,t,r||null),Xk(i,t),i.localStore.mutationQueue.An(t)):o_(),await iS(i,s)):r_("SyncEngine","Cannot apply mutation batch with id: "+t)}).bind(null,t),$r:(async function(e,t,n,r){const i=e;if(i.dc)r_("SyncEngine","Ignoring unexpected query state notification.");else{var s=i.rc.get(t);if(s&&0<s.length)switch(n){case"current":case"not-current":{const e=await OE(i.localStore,Ob(s[0])),r=EI.createSynthesizedRemoteEventForCurrentChange(t,"current"===n,uw.EMPTY_BYTE_STRING);await iS(i,e,r);break}case"rejected":await xE(i.localStore,t,!0),eS(i,t,r);break;default:o_()}}}).bind(null,t),Br:(async function(e,t,n){const r=cS(e);if(r.dc){for(const e of t)if(r.rc.has(e))r_("SyncEngine","Adding an already active target "+e);else{const t=await PE(r.localStore,e),n=await RE(r.localStore,t);await Gk(r,oS(t),n.targetId,!1,n.resumeToken),lk(r.remoteStore,n)}for(const e of n)r.rc.has(e)&&await xE(r.localStore,e,!1).then(()=>{uk(r.remoteStore,e),eS(r,e)}).catch(j_)}}).bind(null,t),vi:(function(e){return e.localStore.persistence.vi()}).bind(null,t),Mr:(async function(e,t){const n=e;return OE(n.localStore,t).then(e=>iS(n,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.li(async e=>{await sS(this.Ac.syncEngine,e),this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}gc(e){var t=JE();if(!KE.C(t))throw new u_(l_.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");var n=bE(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new KE(t,e.asyncQueue,n,e.clientId,e.initialUser)}}class pS{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>Yk(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){const n=e;if(!n.currentUser.isEqual(t)){r_("SyncEngine","User change. New user:",t.toKey());const r=await SE(n.localStore,t);n.currentUser=t,(e=n).lc.forEach(e=>{e.forEach(e=>{e.reject(new u_(l_.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))})}),e.lc.clear(),n.sharedClientState.handleUserChange(t,r.removedBatchIds,r.addedBatchIds),await iS(n,r.ji)}}).bind(null,this.syncEngine),await Tk(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new Dk}createDatastore(e){var t,n,r,i,s=ZE(e.databaseInfo.databaseId),t=(t=e.databaseInfo,new YE(t));return n=e.authCredentials,r=e.appCheckCredentials,i=t,e=s,new ik(n,r,i,e)}createRemoteStore(e){return t=this.localStore,n=this.datastore,r=e.asyncQueue,i=e=>Yk(this.syncEngine,e,0),s=new(GE.C()?GE:zE),new ak(t,n,r,i,s);var t,n,r,i,s}createSyncEngine(e,t){return function(e,t,n,r,i,s,a){const o=new zk(e,t,n,r,i,s);return a&&(o.dc=!0),o}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,e.initialUser,e.maxConcurrentLimboResolutions,t)}terminate(){return async function(e){const t=e;r_("RemoteStore","RemoteStore shutting down."),t._u.add(5),await ck(t),t.mu.shutdown(),t.gu.set("Unknown")}(this.remoteStore)}}function fS(e,t,n){if(!n)throw new u_(l_.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function gS(e,t,n,r){if(!0===t&&!0===r)throw new u_(l_.INVALID_ARGUMENT,`${e} and ${n} cannot be used together.`)}function mS(e){if(!R_.isDocumentKey(e))throw new u_(l_.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function vS(e){if(R_.isDocumentKey(e))throw new u_(l_.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function yS(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return 20<e.length&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"!=typeof e)return"function"==typeof e?"a function":o_();if(e instanceof Array)return"an array";var t=(e=e).constructor?e.constructor.name:null;return t?`a custom ${t} object`:"an object"}function _S(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new u_(l_.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var n=yS(e);throw new u_(l_.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${n}`)}function wS(e,t){if(t<=0)throw new u_(l_.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}const bS=new Map;class IS{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new u_(l_.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=e.host,this.ssl=null===(t=e.ssl)||void 0===t||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new u_(l_.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.useFetchStreams=!!e.useFetchStreams,gS("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling)}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}}class TS{constructor(e,t,n,r){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new IS({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new u_(l_.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new u_(l_.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new IS(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new p_;switch(e.type){case"gapi":var t=e.client;return new v_(t,e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new u_(l_.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(e){const t=bS.get(e);t&&(r_("ComponentProvider","Removing Datastore"),bS.delete(e),t.terminate())}(this),Promise.resolve()}}class ES{constructor(e,t,n){this.converter=t,this._key=n,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new SS(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new ES(this.firestore,e,this._key)}}class kS{constructor(e,t,n){this.converter=t,this._query=n,this.type="query",this.firestore=e}withConverter(e){return new kS(this.firestore,e,this._query)}}class SS extends kS{constructor(e,t,n){super(e,t,bb(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const e=this._path.popLast();return e.isEmpty()?null:new ES(this.firestore,null,new R_(e))}withConverter(e){return new SS(this.firestore,e,this._path)}}function CS(e,t,...n){if(e=ae(e),fS("collection","path",t),e instanceof TS){var r=C_.fromString(t,...n);return vS(r),new SS(e,null,r)}if(!(e instanceof ES||e instanceof SS))throw new u_(l_.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");r=e._path.child(C_.fromString(t,...n));return vS(r),new SS(e.firestore,null,r)}function AS(e,t,...n){if(e=ae(e),fS("doc","path",t=1===arguments.length?w_.R():t),e instanceof TS){var r=C_.fromString(t,...n);return mS(r),new ES(e,null,new R_(r))}if(!(e instanceof ES||e instanceof SS))throw new u_(l_.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");r=e._path.child(C_.fromString(t,...n));return mS(r),new ES(e.firestore,e instanceof SS?e.converter:null,new R_(r))}function NS(e,t){return e=ae(e),t=ae(t),(e instanceof ES||e instanceof SS)&&(t instanceof ES||t instanceof SS)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function RS(e,t){return e=ae(e),t=ae(t),e instanceof kS&&t instanceof kS&&e.firestore===t.firestore&&Rb(e._query,t._query)&&e.converter===t.converter}function xS(t,n=10240){let r=0;return{async read(){if(r<t.byteLength){var e={value:t.slice(r,r+n),done:!1};return r+=n,e}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.reject("unimplemented")}}class DS{constructor(e){this.observer=e,this.muted=!1}next(e){this.observer.next&&this.Rc(this.observer.next,e)}error(e){this.observer.error?this.Rc(this.observer.error,e):i_("Uncaught Error in snapshot listener:",e.toString())}bc(){this.muted=!0}Rc(e,t){this.muted||setTimeout(()=>{this.muted||e(t)},0)}}class PS{constructor(e,t){this.Pc=e,this.yt=t,this.metadata=new h_,this.buffer=new Uint8Array,this.vc=new TextDecoder("utf-8"),this.Vc().then(e=>{e&&e.Ou()?this.metadata.resolve(e.ku.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(null==e?void 0:e.ku)}`))},e=>this.metadata.reject(e))}close(){return this.Pc.cancel()}async getMetadata(){return this.metadata.promise}async mc(){return await this.getMetadata(),this.Vc()}async Vc(){var e=await this.Sc();if(null===e)return null;var t=this.vc.decode(e),n=Number(t);isNaN(n)&&this.Dc(`length string (${t}) is not valid number`);t=await this.Cc(n);return new Fk(JSON.parse(t),e.length+n)}xc(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async Sc(){for(;this.xc()<0&&!await this.Nc(););if(0===this.buffer.length)return null;var e=this.xc();e<0&&this.Dc("Reached the end of bundle when a length string is expected.");var t=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),t}async Cc(e){for(;this.buffer.length<e;)await this.Nc()&&this.Dc("Reached the end of bundle when more is expected.");var t=this.vc.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}Dc(e){throw this.Pc.cancel(),new Error(`Invalid bundle format: ${e}`)}async Nc(){var e=await this.Pc.read();if(!e.done){const t=new Uint8Array(this.buffer.length+e.value.length);t.set(this.buffer),t.set(e.value,this.buffer.length),this.buffer=t}return e.done}}class OS{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastWriteError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw new u_(l_.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes.");const t=await async function(e,t){const r=e,n=zI(r.yt)+"/documents",i={documents:t.map(e=>jI(r.yt,e))},s=await r._o("BatchGetDocuments",n,i,t.length),a=new Map;s.forEach(e=>{const t=(n=r.yt,"found"in(e=e)?function(e,t){c_(!!t.found),t.found.name,t.found.updateTime;var n=$I(e,t.found.name),r=qI(t.found.updateTime),i=t.found.createTime?qI(t.found.createTime):k_.min(),s=new lb({mapValue:{fields:t.found.fields}});return ub.newFoundDocument(n,r,i,s)}(n,e):"missing"in e?function(e,t){c_(!!t.missing),c_(!!t.readTime);var n=$I(e,t.missing),r=qI(t.readTime);return ub.newNoDocument(n,r)}(n,e):o_());var n;a.set(t.key.toString(),t)});const o=[];return t.forEach(e=>{var t=a.get(e.toString());c_(!!t),o.push(t)}),o}(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastWriteError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new lI(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastWriteError)throw this.lastWriteError;const t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var n=R_.fromPath(t);this.mutations.push(new uI(n,this.precondition(n)))}),await async function(e,t){const n=e,r=zI(n.yt)+"/documents",i={writes:t.map(e=>YI(n.yt,e))};await n.ao("Commit",r,i)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw o_();t=k_.min()}var n=this.readVersions.get(e.key.toString());if(n){if(!t.isEqual(n))throw new u_(l_.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){const t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(k_.min())?Jb.exists(!1):Jb.updateTime(t):Jb.none()}preconditionForUpdate(e){const t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return Jb.exists(!0);if(t.isEqual(k_.min()))throw new u_(l_.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Jb.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class MS{constructor(e,t,n,r,i){this.asyncQueue=e,this.datastore=t,this.options=n,this.updateFunction=r,this.deferred=i,this.kc=n.maxAttempts,this.xo=new ek(this.asyncQueue,"transaction_retry")}run(){--this.kc,this.Oc()}Oc(){this.xo.Ro(async()=>{const t=new OS(this.datastore),e=this.Mc(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Fc(e)}))}).catch(e=>{this.Fc(e)})})}Mc(e){try{var t=this.updateFunction(e);return!ow(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Fc(e){0<this.kc&&this.$c(e)?(--this.kc,this.asyncQueue.enqueueAndForget(()=>(this.Oc(),Promise.resolve()))):this.deferred.reject(e)}$c(e){if("FirebaseError"!==e.name)return!1;var t=e.code;return"aborted"===t||"failed-precondition"===t||"already-exists"===t||!dI(t)}}class LS{constructor(e,t,n,r){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=n,this.databaseInfo=r,this.user=Zy.UNAUTHENTICATED,this.clientId=w_.R(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,async e=>{r_("FirestoreClient","Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(n,e=>(r_("FirestoreClient","Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}async getConfiguration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new u_(l_.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const n=new h_;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this.onlineComponents&&await this.onlineComponents.terminate(),this.offlineComponents&&await this.offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),n.resolve()}catch(e){var t=Ck(e,"Failed to shutdown persistence");n.reject(t)}}),n.promise}}async function FS(e,t){e.asyncQueue.verifyOperationInProgress(),r_("FirestoreClient","Initializing OfflineComponentProvider");var n=await e.getConfiguration();await t.initialize(n);let r=n.initialUser;e.setCredentialChangeListener(async e=>{r.isEqual(e)||(await SE(t.localStore,e),r=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e.offlineComponents=t}async function US(e,n){e.asyncQueue.verifyOperationInProgress();var t=await qS(e);r_("FirestoreClient","Initializing OnlineComponentProvider");var r=await e.getConfiguration();await n.initialize(t,r),e.setCredentialChangeListener(e=>Ik(n.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>Ik(n.remoteStore,t)),e.onlineComponents=n}async function qS(e){return e.offlineComponents||(r_("FirestoreClient","Using default OfflineComponentProvider"),await FS(e,new uS)),e.offlineComponents}async function VS(e){return e.onlineComponents||(r_("FirestoreClient","Using default OnlineComponentProvider"),await US(e,new pS)),e.onlineComponents}function BS(e){return qS(e).then(e=>e.persistence)}function jS(e){return qS(e).then(e=>e.localStore)}function $S(e){return VS(e).then(e=>e.remoteStore)}function KS(e){return VS(e).then(e=>e.syncEngine)}async function WS(e){const t=await VS(e),n=t.eventManager;return n.onListen=(async function(e,t){const n=cS(e);let r,i;const s=n.ic.get(t);if(s)r=s.targetId,n.sharedClientState.addLocalQueryTarget(r),i=s.view.ec();else{const e=await RE(n.localStore,Cb(t));n.isPrimaryClient&&lk(n.remoteStore,e);const s=n.sharedClientState.addLocalQueryTarget(e.targetId);r=e.targetId,i=await Gk(n,t,r,"current"===s,e.resumeToken)}return i}).bind(null,t.syncEngine),n.onUnlisten=(async function(e,t){const n=e,r=n.ic.get(t),i=n.rc.get(r.targetId);if(1<i.length)return n.rc.set(r.targetId,i.filter(e=>!Rb(e,t))),void n.ic.delete(t);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await xE(n.localStore,r.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(r.targetId),uk(n.remoteStore,r.targetId),eS(n,r.targetId)}).catch(j_)):(eS(n,r.targetId),await xE(n.localStore,r.targetId,!0))}).bind(null,t.syncEngine),n}function zS(e,t,n={}){const r=new h_;return e.asyncQueue.enqueueAndForget(async()=>function(n,r,i,s,a){const e=new DS({next:e=>{r.enqueueAndForget(()=>Ok(n,o));var t=e.docs.has(i);!t&&e.fromCache?a.reject(new u_(l_.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&s&&"server"===s.source?a.reject(new u_(l_.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):a.resolve(e)},error:e=>a.reject(e)}),o=new Lk(bb(i.path),e,{includeMetadataChanges:!0,Nu:!0});return Pk(n,o)}(await WS(e),e.asyncQueue,t,n,r)),r.promise}function GS(e,t,n={}){const r=new h_;return e.asyncQueue.enqueueAndForget(async()=>function(t,n,e,r,i){const s=new DS({next:e=>{n.enqueueAndForget(()=>Ok(t,a)),e.fromCache&&"server"===r.source?i.reject(new u_(l_.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):i.resolve(e)},error:e=>i.reject(e)}),a=new Lk(e,s,{includeMetadataChanges:!0,Nu:!0});return Pk(t,a)}(await WS(e),e.asyncQueue,t,n,r)),r.promise}function HS(e,t,n,r){const i=(n=n,t=ZE(t),s="string"==typeof n?(new TextEncoder).encode(n):n,n=function(e){if(e instanceof Uint8Array)return xS(e,void 0);if(e instanceof ArrayBuffer)return xS(new Uint8Array(e),void 0);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(s),t=t,new PS(n,t));var s;e.asyncQueue.enqueueAndForget(async()=>{!function(e,t,n){const r=e;!async function(t,n,r){try{var i=await n.getMetadata();if(await function(e,t){const n=e,r=qI(t.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",e=>n.Ns.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(r))}(t.localStore,i))return await n.close(),r._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);r._updateProgress(Vk(i));const a=new qk(i,t.localStore,n.yt);let e=await n.mc();for(;e;){const t=await a.Fu(e);t&&r._updateProgress(t),e=await n.mc()}var s=await a.complete();return await iS(t,s.Lu,void 0),await function(e,t){const n=e;return n.persistence.runTransaction("Save bundle","readwrite",e=>n.Ns.saveBundleMetadata(e,t))}(t.localStore,i),r._completeWith(s.progress),Promise.resolve(s.Bu)}catch(t){return s_("SyncEngine",`Loading bundle failed with ${t}`),r._failWith(t),Promise.resolve(new Set)}}(r,t,n).then(e=>{r.sharedClientState.notifyBundleLoaded(e)})}(await KS(e),i,r)})}class QS{constructor(){this.Bc=Promise.resolve(),this.Lc=[],this.qc=!1,this.Uc=[],this.Kc=null,this.Gc=!1,this.Qc=!1,this.jc=[],this.xo=new ek(this,"async_queue_retry"),this.Wc=()=>{var e=XE();e&&r_("AsyncQueue","Visibility state changed to "+e.visibilityState),this.xo.Po()};const e=XE();e&&"function"==typeof e.addEventListener&&e.addEventListener("visibilitychange",this.Wc)}get isShuttingDown(){return this.qc}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.zc(),this.Hc(e)}enterRestrictedMode(e){if(!this.qc){this.qc=!0,this.Qc=e||!1;const t=XE();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Wc)}}enqueue(e){if(this.zc(),this.qc)return new Promise(()=>{});const t=new h_;return this.Hc(()=>this.qc&&this.Qc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Lc.push(e),this.Jc()))}async Jc(){if(0!==this.Lc.length){try{await this.Lc[0](),this.Lc.shift(),this.xo.reset()}catch(e){if(!H_(e))throw e;r_("AsyncQueue","Operation failed with retryable error: "+e)}0<this.Lc.length&&this.xo.Ro(()=>this.Jc())}}Hc(e){var t=this.Bc.then(()=>(this.Gc=!0,e().catch(e=>{throw this.Kc=e,this.Gc=!1,i_("INTERNAL UNHANDLED ERROR: ",function(e){let t=e.message||"";return e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t}(e)),e}).then(e=>(this.Gc=!1,e))));return this.Bc=t}enqueueAfterDelay(e,t,n){this.zc(),-1<this.jc.indexOf(e)&&(t=0);var r=Sk.createAndSchedule(this,e,t,n,e=>this.Yc(e));return this.Uc.push(r),r}zc(){this.Kc&&o_()}verifyOperationInProgress(){}async Xc(){for(var e;await(e=this.Bc),e!==this.Bc;);}Zc(e){for(const t of this.Uc)if(t.timerId===e)return!0;return!1}ta(t){return this.Xc().then(()=>{this.Uc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(const e of this.Uc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Xc()})}ea(e){this.jc.push(e)}Yc(e){var t=this.Uc.indexOf(e);this.Uc.splice(t,1)}}function YS(e){return function(e){if("object"==typeof e&&null!==e){var t=e;for(const e of["next","error","complete"])if(e in t&&"function"==typeof t[e])return 1}}(e)}class JS{constructor(){this._progressObserver={},this._taskCompletionResolver=new h_,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,n){this._progressObserver={next:e,error:t,complete:n}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var XS,ZS,eC,tC,nC;class rC extends TS{constructor(e,t,n,r){super(e,t,n,r),this.type="firestore",this._queue=new QS,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||sC(this),this._firestoreClient.terminate()}}function iC(e){return e._firestoreClient||sC(e),e._firestoreClient.verifyNotTerminated(),e._firestoreClient}function sC(e){var t,n,r,i,s,a=e._freezeSettings(),a=(n=e._databaseId,r=(null===(t=e._app)||void 0===t?void 0:t.options.appId)||"",i=e._persistenceKey,s=a,new nw(n,r,i,s.host,s.ssl,s.experimentalForceLongPolling,s.experimentalAutoDetectLongPolling,s.useFetchStreams));e._firestoreClient=new LS(e._authCredentials,e._appCheckCredentials,e._queue,a)}function aC(e,n,r){const i=new h_;return e.asyncQueue.enqueue(async()=>{try{await FS(e,r),await US(e,n),i.resolve()}catch(e){const n=e;if(!("FirebaseError"===(t=n).name?t.code===l_.FAILED_PRECONDITION||t.code===l_.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||(22===t.code||20===t.code||11===t.code)))throw n;s_("Error enabling offline persistence. Falling back to persistence disabled: "+n),i.reject(n)}var t}).then(()=>i.promise)}function oC(e){return function(e){const t=new h_;return e.asyncQueue.enqueueAndForget(async()=>async function(e,t){const n=e;gk(n.remoteStore)||r_("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const e=await function(){const t=n.localStore;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))}();if(-1===e)return void t.resolve();const r=n.lc.get(e)||[];r.push(t),n.lc.set(e,r)}catch(e){const n=Ck(e,"Initialization of waitForPendingWrites() operation failed");t.reject(n)}}(await KS(e),t)),t.promise}(iC(e=_S(e,rC)))}function cC(e){return(n=iC(e=_S(e,rC))).asyncQueue.enqueue(async()=>{const e=await BS(n),t=await $S(n);return e.setNetworkEnabled(!0),function(){const e=t;return e._u.delete(0),ok(e)}()});var n}function lC(e){return(n=iC(e=_S(e,rC))).asyncQueue.enqueue(async()=>{const e=await BS(n),t=await $S(n);return e.setNetworkEnabled(!1),async function(){const e=t;e._u.add(0),await ck(e),e.gu.set("Offline")}()});var n}function uC(t,e){return n=iC(t=_S(t,rC)),r=e,n.asyncQueue.enqueue(async()=>function(e,t){const n=e;return n.persistence.runTransaction("Get named query","readonly",e=>n.Ns.getNamedQuery(e,t))}(await jS(n),r)).then(e=>e?new kS(t,null,e.query):null);var n,r}function hC(e){if(e._initialized||e._terminated)throw new u_(l_.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.")}class dC{constructor(e){this._byteString=e}static fromBase64String(e){try{return new dC(uw.fromBase64String(e))}catch(e){throw new u_(l_.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new dC(uw.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class pC{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new u_(l_.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new N_(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class fC{constructor(e){this._methodName=e}}class gC{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new u_(l_.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new u_(l_.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return b_(this._lat,e._lat)||b_(this._long,e._long)}}const mC=/^__.*__$/;class vC{constructor(e,t,n){this.data=e,this.fieldMask=t,this.fieldTransforms=n}toMutation(e,t){return null!==this.fieldMask?new sI(e,this.data,this.fieldMask,t,this.fieldTransforms):new iI(e,this.data,t,this.fieldTransforms)}}class yC{constructor(e,t,n){this.data=e,this.fieldMask=t,this.fieldTransforms=n}toMutation(e,t){return new sI(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function _C(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw o_()}}class wC{constructor(e,t,n,r,i,s){this.settings=e,this.databaseId=t,this.yt=n,this.ignoreUndefinedProperties=r,void 0===i&&this.na(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get sa(){return this.settings.sa}ia(e){return new wC(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.yt,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}ra(e){var t;const n=null===(t=this.path)||void 0===t?void 0:t.child(e),r=this.ia({path:n,oa:!1});return r.ua(e),r}ca(e){var t;const n=null===(t=this.path)||void 0===t?void 0:t.child(e),r=this.ia({path:n,oa:!1});return r.na(),r}aa(e){return this.ia({path:void 0,oa:!0})}ha(e){return VC(e,this.settings.methodName,this.settings.la||!1,this.path,this.settings.fa)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}na(){if(this.path)for(let e=0;e<this.path.length;e++)this.ua(this.path.get(e))}ua(e){if(0===e.length)throw this.ha("Document fields must not be empty");if(_C(this.sa)&&mC.test(e))throw this.ha('Document fields cannot begin and end with "__"')}}class bC{constructor(e,t,n){this.databaseId=e,this.ignoreUndefinedProperties=t,this.yt=n||ZE(e)}da(e,t,n,r=!1){return new wC({sa:e,methodName:t,fa:n,path:N_.emptyPath(),oa:!1,la:r},this.databaseId,this.yt,this.ignoreUndefinedProperties)}}function IC(e){var t=e._freezeSettings(),n=ZE(e._databaseId);return new bC(e._databaseId,!!t.ignoreUndefinedProperties,n)}function TC(e,t,n,r,i,s={}){const a=e.da(s.merge||s.mergeFields?2:0,t,n,i);LC("Data must be an object, but it was:",a,r);var o=OC(r,a);let c,l;if(s.merge)c=new cb(a.fieldMask),l=a.fieldTransforms;else if(s.mergeFields){const e=[];for(const r of s.mergeFields){const i=FC(t,r,n);if(!a.contains(i))throw new u_(l_.INVALID_ARGUMENT,`Field '${i}' is specified in your field mask but missing from your input data.`);BC(e,i)||e.push(i)}c=new cb(e),l=a.fieldTransforms.filter(e=>c.covers(e.field))}else c=null,l=a.fieldTransforms;return new vC(new lb(o),c,l)}class EC extends fC{_toFieldTransform(e){if(2!==e.sa)throw 1===e.sa?e.ha(`${this._methodName}() can only appear at the top level of your update data`):e.ha(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof EC}}function kC(e,t,n){return new wC({sa:3,fa:t.settings.fa,methodName:e._methodName,oa:n},t.databaseId,t.yt,t.ignoreUndefinedProperties)}class SC extends fC{_toFieldTransform(e){return new Qb(e.path,new Bb)}isEqual(e){return e instanceof SC}}class CC extends fC{constructor(e,t){super(e),this._a=t}_toFieldTransform(e){const t=kC(this,e,!0),n=this._a.map(e=>PC(e,t)),r=new jb(n);return new Qb(e.path,r)}isEqual(e){return this===e}}class AC extends fC{constructor(e,t){super(e),this._a=t}_toFieldTransform(e){const t=kC(this,e,!0),n=this._a.map(e=>PC(e,t)),r=new Kb(n);return new Qb(e.path,r)}isEqual(e){return this===e}}class NC extends fC{constructor(e,t){super(e),this.wa=t}_toFieldTransform(e){var t=new zb(e.yt,Ub(e.yt,this.wa));return new Qb(e.path,t)}isEqual(e){return this===e}}function RC(e,i,s,t){const a=e.da(1,i,s);LC("Data must be an object, but it was:",a,t);const o=[],c=lb.empty();sw(t,(e,t)=>{var n=qC(i,e,s);t=ae(t);var r=a.ca(n);if(t instanceof EC)o.push(n);else{const e=PC(t,r);null!=e&&(o.push(n),c.set(n,e))}});var n=new cb(o);return new yC(c,n,a.fieldTransforms)}function xC(e,t,n,r,i,s){const a=e.da(1,t,n),o=[FC(t,r,n)],c=[i];if(s.length%2!=0)throw new u_(l_.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let p=0;p<s.length;p+=2)o.push(FC(t,s[p])),c.push(s[p+1]);const l=[],u=lb.empty();for(let f=o.length-1;0<=f;--f)if(!BC(l,o[f])){const t=o[f];var h=ae(h=c[f]);const r=a.ca(t);if(h instanceof EC)l.push(t);else{const e=PC(h,r);null!=e&&(l.push(t),u.set(t,e))}}var d=new cb(l);return new yC(u,d,a.fieldTransforms)}function DC(e,t,n,r=!1){return PC(n,e.da(r?4:3,t))}function PC(s,e){if(MC(s=ae(s)))return LC("Unsupported field value:",e,s),OC(s,e);if(s instanceof fC)return function(e,t){if(!_C(t.sa))throw t.ha(`${e._methodName}() can only be used with update() and set()`);if(!t.path)throw t.ha(`${e._methodName}() is not currently supported inside arrays`);var n=e._toFieldTransform(t);n&&t.fieldTransforms.push(n)}(s,e),null;if(void 0===s&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),s instanceof Array){if(e.settings.oa&&4!==e.sa)throw e.ha("Nested arrays are not supported");return function(t){const n=[];let r=0;for(const i of s){let e=PC(i,t.aa(r));null==e&&(e={nullValue:"NULL_VALUE"}),n.push(e),r++}return{arrayValue:{values:n}}}(e)}return function(e,t){if(null===(e=ae(s)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return Ub(t.yt,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){var n=E_.fromDate(e);return{timestampValue:FI(t.yt,n)}}if(e instanceof E_){n=new E_(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:FI(t.yt,n)}}if(e instanceof gC)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof dC)return{bytesValue:UI(t.yt,e._byteString)};if(e instanceof ES){const r=t.databaseId,i=e.firestore._databaseId;if(!i.isEqual(r))throw t.ha(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${r.projectId}/${r.database}`);return{referenceValue:VI(e.firestore._databaseId||t.databaseId,e._key.path)}}throw t.ha(`Unsupported field value: ${yS(e)}`)}(0,e)}function OC(e,r){const i={};return aw(e)?r.path&&0<r.path.length&&r.fieldMask.push(r.path):sw(e,(e,t)=>{var n=PC(t,r.ra(e));null!=n&&(i[e]=n)}),{mapValue:{fields:i}}}function MC(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof E_||e instanceof gC||e instanceof dC||e instanceof ES||e instanceof fC)}function LC(e,t,n){if(!MC(n)||("object"!=typeof(i=n)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))){var r=yS(n);throw"an object"===r?t.ha(e+" a custom object"):t.ha(e+" "+r)}var i}function FC(e,t,n){if((t=ae(t))instanceof pC)return t._internalPath;if("string"==typeof t)return qC(e,t);throw VC("Field path arguments must be of type string or ",e,!1,void 0,n)}const UC=new RegExp("[~\\*/\\[\\]]");function qC(t,n,r){if(0<=n.search(UC))throw VC(`Invalid field path (${n}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,r);try{return new pC(...n.split("."))._internalPath}catch(e){throw VC(`Invalid field path (${n}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,r)}}function VC(e,t,n,r,i){var s=r&&!r.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`;n&&(o+=" (via `toFirestore()`)"),o+=". ";let c="";return(s||a)&&(c+=" (found",s&&(c+=` in field ${r}`),a&&(c+=` in document ${i}`),c+=")"),new u_(l_.INVALID_ARGUMENT,o+e+c)}function BC(e,t){return e.some(e=>e.isEqual(t))}class jC{constructor(e,t,n,r,i){this._firestore=e,this._userDataWriter=t,this._key=n,this._document=r,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new ES(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){var e=new $C(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){var t=this._document.data.field(KC("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class $C extends jC{data(){return super.data()}}function KC(e,t){return"string"==typeof t?qC(e,t):(t instanceof pC?t:t._delegate)._internalPath}function WC(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new u_(l_.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class zC{}class GC extends zC{}function HC(e,t,...n){let r=[];t instanceof zC&&r.push(t),r=r.concat(n),function(e){var t=e.filter(e=>e instanceof YC).length,n=e.filter(e=>e instanceof QC).length;if(1<t||0<t&&0<n)throw new u_(l_.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const t of r)e=t._apply(e);return e}class QC extends GC{constructor(e,t,n){super(),this._field=e,this._op=t,this._value=n,this.type="where"}static _create(e,t,n){return new QC(e,t,n)}_apply(e){var t=this._parse(e);return iA(e._query,t),new kS(e.firestore,e.converter,Ab(e._query,t))}_parse(e){var t=IC(e.firestore);return function(e,t,n,r,i,s,a){let o;if(i.isKeyField()){if("array-contains"===s||"array-contains-any"===s)throw new u_(l_.INVALID_ARGUMENT,`Invalid Query. You can't perform '${s}' queries on documentId().`);if("in"===s||"not-in"===s){rA(a,s);const t=[];for(const n of a)t.push(nA(r,e,n));o={arrayValue:{values:t}}}else o=nA(r,e,a)}else"in"!==s&&"not-in"!==s&&"array-contains-any"!==s||rA(a,s),o=DC(n,t,a,"in"===s||"not-in"===s);return qw.create(i,s,o)}(e._query,"where",t,e.firestore._databaseId,this._field,this._op,this._value)}}class YC extends zC{constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new YC(e,t)}_parse(t){var e=this._queryConstraints.map(e=>e._parse(t)).filter(e=>0<e.getFilters().length);return 1===e.length?e[0]:Vw.create(e,this._getOperator())}_apply(e){const n=this._parse(e);return 0===n.getFilters().length?e:(function(e){let t=e;for(const e of n.getFlattenedFilters())iA(t,e),t=Ab(t,e)}(e._query),new kS(e.firestore,e.converter,Ab(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}class JC extends GC{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new JC(e,t)}_apply(e){var t=function(e,t,n){if(null!==e.startAt)throw new u_(l_.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new u_(l_.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");var r,i=new tb(t,n);return n=i,null!==Tb(e=e)||null!==(r=Eb(e))&&sA(0,r,n.field),i}(e._query,this._field,this._direction);return new kS(e.firestore,e.converter,(e=e._query,t=e.explicitOrderBy.concat([t]),new _b(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class XC extends GC{constructor(e,t,n){super(),this.type=e,this._limit=t,this._limitType=n}static _create(e,t,n){return new XC(e,t,n)}_apply(e){return new kS(e.firestore,e.converter,Nb(e._query,this._limit,this._limitType))}}class ZC extends GC{constructor(e,t,n){super(),this.type=e,this._docOrFields=t,this._inclusive=n}static _create(e,t,n){return new ZC(e,t,n)}_apply(e){var t,n=tA(e,this.type,this._docOrFields,this._inclusive);return new kS(e.firestore,e.converter,(t=e._query,e=n,new _b(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)))}}class eA extends GC{constructor(e,t,n){super(),this.type=e,this._docOrFields=t,this._inclusive=n}static _create(e,t,n){return new eA(e,t,n)}_apply(e){var t,n=tA(e,this.type,this._docOrFields,this._inclusive);return new kS(e.firestore,e.converter,(t=e._query,e=n,new _b(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)))}}function tA(e,t,n,r){if(n[0]=ae(n[0]),n[0]instanceof jC)return function(e,t,n,r,i){if(!r)throw new u_(l_.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const s=[];for(const n of Sb(e))if(n.field.isKeyField())s.push(kw(t,r.key));else{const e=r.data.field(n.field);if(gw(e))throw new u_(l_.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){const e=n.field.canonicalString();throw new u_(l_.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}s.push(e)}return new Mw(s,i)}(e._query,e.firestore._databaseId,t,n[0]._document,r);var i=IC(e.firestore);return function(e,t,n,r,i,s){const a=e.explicitOrderBy;if(i.length>a.length)throw new u_(l_.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const o=[];for(let c=0;c<i.length;c++){const l=i[c];if(a[c].field.isKeyField()){if("string"!=typeof l)throw new u_(l_.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${r}(), but got a ${typeof l}`);if(!kb(e)&&-1!==l.indexOf("/"))throw new u_(l_.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${r}() must be a plain document ID, but '${l}' contains a slash.`);const n=e.path.child(C_.fromString(l));if(!R_.isDocumentKey(n))throw new u_(l_.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${r}() must result in a valid document path, but '${n}' is not because it contains an odd number of segments.`);const i=new R_(n);o.push(kw(t,i))}else{const e=DC(n,r,l);o.push(e)}}return new Mw(o,s)}(e._query,e.firestore._databaseId,i,t,n,r)}function nA(e,t,n){if("string"==typeof(n=ae(n))){if(""===n)throw new u_(l_.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!kb(t)&&-1!==n.indexOf("/"))throw new u_(l_.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);var r=t.path.child(C_.fromString(n));if(!R_.isDocumentKey(r))throw new u_(l_.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return kw(e,new R_(r))}if(n instanceof ES)return kw(e,n._key);throw new u_(l_.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${yS(n)}.`)}function rA(e,t){if(!Array.isArray(e)||0===e.length)throw new u_(l_.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`);if(10<e.length)throw new u_(l_.INVALID_ARGUMENT,`Invalid Query. '${t.toString()}' filters support a maximum of 10 elements in the value array.`)}function iA(e,t){if(t.isInequality()){const r=Eb(e),i=t.field;if(null!==r&&!r.isEqual(i))throw new u_(l_.INVALID_ARGUMENT,`Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${r.toString()}' and '${i.toString()}'`);var n=Tb(e);null!==n&&sA(0,i,n)}const r=function(e,t){for(const n of e)for(const e of n.getFlattenedFilters())if(0<=t.indexOf(e.op))return e.op;return null}(e.filters,function(){switch(t.op){case"!=":return["!=","not-in"];case"array-contains":return["array-contains","array-contains-any","not-in"];case"in":return["array-contains-any","in","not-in"];case"array-contains-any":return["array-contains","array-contains-any","in","not-in"];case"not-in":return["array-contains","array-contains-any","in","not-in","!="];default:return[]}}());if(null!==r)throw r===t.op?new u_(l_.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new u_(l_.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}function sA(e,t,n){if(!n.isEqual(t))throw new u_(l_.INVALID_ARGUMENT,`Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${t.toString()}' and so you must also use '${t.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`)}class aA{convertValue(e,t="none"){switch(_w(e)){case 0:return null;case 1:return e.booleanValue;case 2:return pw(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(fw(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 10:return this.convertObject(e.mapValue,t);default:throw o_()}}convertObject(e,n){const r={};return sw(e.fields,(e,t)=>{r[e]=this.convertValue(t,n)}),r}convertGeoPoint(e){return new gC(pw(e.latitude),pw(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var n=function e(t){var n=t.mapValue.fields.__previous_value__;return gw(n)?e(n):n}(e);return null==n?null:this.convertValue(n,t);case"estimate":return this.convertTimestamp(mw(e));default:return null}}convertTimestamp(e){var t=dw(e);return new E_(t.seconds,t.nanos)}convertDocumentKey(e,t){const n=C_.fromString(e);c_(sT(n));const r=new rw(n.get(1),n.get(3)),i=new R_(n.popFirst(5));return r.isEqual(t)||i_(`Document ${i} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),i}}function oA(e,t,n){return e?n&&(n.merge||n.mergeFields)?e.toFirestore(t,n):e.toFirestore(t):t}class cA extends aA{constructor(e){super(),this.firestore=e}convertBytes(e){return new dC(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new ES(this.firestore,null,t)}}class lA{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class uA extends jC{constructor(e,t,n,r,i,s){super(e,t,n,r,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){var t=new hA(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(t,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,t={}){if(this._document){var n=this._document.data.field(KC("DocumentSnapshot.get",e));if(null!==n)return this._userDataWriter.convertValue(n,t.serverTimestamps)}}}class hA extends uA{data(e={}){return super.data(e)}}class dA{constructor(e,t,n,r){this._firestore=e,this._userDataWriter=t,this._snapshot=r,this.metadata=new lA(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,n){this._snapshot.docs.forEach(e=>{t.call(n,new hA(this._firestore,this._userDataWriter,e.key,e,new lA(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new u_(l_.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=function(s,t){if(s._snapshot.oldDocs.isEmpty()){let n=0;return s._snapshot.docChanges.map(e=>{var t=new hA(s._firestore,s._userDataWriter,e.doc.key,e.doc,new lA(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:n++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new hA(s._firestore,s._userDataWriter,e.doc.key,e.doc,new lA(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let n=-1,r=-1;return 0!==e.type&&(n=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),r=i.indexOf(e.doc.key)),{type:function(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return o_()}}(e.type),doc:t,oldIndex:n,newIndex:r}})}}(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function pA(e,t){return e instanceof uA&&t instanceof uA?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof dA&&t instanceof dA&&e._firestore===t._firestore&&RS(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class fA extends aA{constructor(e){super(),this.firestore=e}convertBytes(e){return new dC(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new ES(this.firestore,null,t)}}function gA(t){t=_S(t,ES);const n=_S(t.firestore,rC),e=iC(n),r=new fA(n);return function(e,t){const n=new h_;return e.asyncQueue.enqueueAndForget(async()=>async function(e,t,n){try{const i=await function(t){const n=e;return n.persistence.runTransaction("read document","readonly",e=>n.localDocuments.getDocument(e,t))}(t);i.isFoundDocument()?n.resolve(i):i.isNoDocument()?n.resolve(null):n.reject(new u_(l_.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){var r=Ck(e,`Failed to get document '${t} from cache`);n.reject(r)}}(await jS(e),t,n)),n.promise}(e,t._key).then(e=>new uA(n,r,t._key,e,new lA(null!==e&&e.hasLocalMutations,!0),t.converter))}function mA(t){t=_S(t,kS);const n=_S(t.firestore,rC),e=iC(n),r=new fA(n);return function(e,t){const n=new h_;return e.asyncQueue.enqueueAndForget(async()=>async function(e,t,n){try{const i=await DE(e,t,!0),s=new $k(t,i.Hi),a=s.Wu(i.documents),o=s.applyChanges(a,!1);n.resolve(o.snapshot)}catch(e){var r=Ck(e,`Failed to execute query '${t} against cache`);n.reject(r)}}(await jS(e),t,n)),n.promise}(e,t._query).then(e=>new dA(n,r,t,e))}function vA(e,t,n){e=_S(e,ES);var r=_S(e.firestore,rC),i=oA(e.converter,t,n);return bA(r,[TC(IC(r),"setDoc",e._key,i,null!==e.converter,n).toMutation(e._key,Jb.none())])}function yA(e,t,n,...r){e=_S(e,ES);var i=_S(e.firestore,rC),s=IC(i);let a;return a="string"==typeof(t=ae(t))||t instanceof pC?xC(s,"updateDoc",e._key,t,n,r):RC(s,"updateDoc",e._key,t),bA(i,[a.toMutation(e._key,Jb.exists(!0))])}function _A(t,...n){var e;t=ae(t);let r={includeMetadataChanges:!1},i=0;"object"!=typeof n[i]||YS(n[i])||(r=n[i],i++);var s={includeMetadataChanges:r.includeMetadataChanges};if(YS(n[i])){const t=n[i];n[i]=null===(e=t.next)||void 0===e?void 0:e.bind(t),n[i+1]=null===(e=t.error)||void 0===e?void 0:e.bind(t),n[i+2]=null===(e=t.complete)||void 0===e?void 0:e.bind(t)}let a,o,c;if(t instanceof ES)o=_S(t.firestore,rC),c=bb(t._key.path),a={next:e=>{n[i]&&n[i](IA(o,t,e))},error:n[i+1],complete:n[i+2]};else{const l=_S(t,kS);o=_S(l.firestore,rC),c=l._query;const u=new fA(o);a={next:e=>{n[i]&&n[i](new dA(o,u,l,e))},error:n[i+1],complete:n[i+2]},WC(t._query)}return function(e,t,n,r){const i=new DS(r),s=new Lk(t,i,n);return e.asyncQueue.enqueueAndForget(async()=>Pk(await WS(e),s)),()=>{i.bc(),e.asyncQueue.enqueueAndForget(async()=>Ok(await WS(e),s))}}(iC(o),c,s,a)}function wA(e,t){return function(e,t){const n=new DS(t);return e.asyncQueue.enqueueAndForget(async()=>function(e,t){e.Ru.add(t),t.next()}(await WS(e),n)),()=>{n.bc(),e.asyncQueue.enqueueAndForget(async()=>function(e,t){e.Ru.delete(t)}(await WS(e),n))}}(iC(e=_S(e,rC)),YS(t)?t:{next:t})}function bA(e,t){return function(e,t){const n=new h_;return e.asyncQueue.enqueueAndForget(async()=>Hk(await KS(e),t,n)),n.promise}(iC(e),t)}function IA(e,t,n){var r=n.docs.get(t._key),i=new fA(e);return new uA(e,i,t._key,r,new lA(n.hasPendingWrites,n.fromCache),t.converter)}const TA={maxAttempts:5};class EA{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=IC(e)}set(e,t,n){this._verifyNotCommitted();const r=kA(e,this._firestore),i=oA(r.converter,t,n),s=TC(this._dataReader,"WriteBatch.set",r._key,i,null!==r.converter,n);return this._mutations.push(s.toMutation(r._key,Jb.none())),this}update(e,t,n,...r){this._verifyNotCommitted();var i=kA(e,this._firestore);let s;return s="string"==typeof(t=ae(t))||t instanceof pC?xC(this._dataReader,"WriteBatch.update",i._key,t,n,r):RC(this._dataReader,"WriteBatch.update",i._key,t),this._mutations.push(s.toMutation(i._key,Jb.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=kA(e,this._firestore);return this._mutations=this._mutations.concat(new lI(t._key,Jb.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new u_(l_.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function kA(e,t){if((e=ae(e)).firestore!==t)throw new u_(l_.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class SA extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=IC(e)}get(e){const n=kA(e,this._firestore),r=new cA(this._firestore);return this._transaction.lookup([n._key]).then(e=>{if(!e||1!==e.length)return o_();const t=e[0];if(t.isFoundDocument())return new jC(this._firestore,r,t.key,t,n.converter);if(t.isNoDocument())return new jC(this._firestore,r,n._key,null,n.converter);throw o_()})}set(e,t,n){var r=kA(e,this._firestore),i=oA(r.converter,t,n),i=TC(this._dataReader,"Transaction.set",r._key,i,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(e,t,n,...r){var i=kA(e,this._firestore),s="string"==typeof(t=ae(t))||t instanceof pC?xC(this._dataReader,"Transaction.update",i._key,t,n,r):RC(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=kA(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){const t=kA(e,this._firestore),n=new fA(this._firestore);return super.get(e).then(e=>new uA(this._firestore,n,t._key,e._document,new lA(!1,!1),t.converter))}}function CA(t,n,e){t=_S(t,rC);var r=Object.assign(Object.assign({},TA),e);return function(){if(r.maxAttempts<1)throw new u_(l_.INVALID_ARGUMENT,"Max attempts must be at least 1")}(),function(t,n,r){const i=new h_;return t.asyncQueue.enqueueAndForget(async()=>{var e=await VS(t).then(e=>e.datastore);new MS(t.asyncQueue,e,r,n,i).run()}),i.promise}(iC(t),e=>n(new SA(t,e)),r)}XS=Ye,e_=XS,ze(new oe("firestore",(e,{instanceIdentifier:t,options:n})=>{const r=e.getProvider("app").getImmediate(),i=new rC(new g_(e.getProvider("auth-internal")),new __(e.getProvider("app-check-internal")),function(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new u_(l_.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new rw(e.options.projectId,t)}(r,t),r);return n=Object.assign({useFetchStreams:!0},n),i._setSettings(n),i},"PUBLIC").setMultipleInstances(!0)),et(Xy,"3.8.1",void 0),et(Xy,"3.8.1","esm2017");function AA(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new u_("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function NA(){if("undefined"==typeof Uint8Array)throw new u_("unimplemented","Uint8Arrays are not available in this environment.")}function RA(){if("undefined"==typeof atob)throw new u_("unimplemented","Blobs are unavailable in Firestore in this environment.")}class xA{constructor(e){this._delegate=e}static fromBase64String(e){return RA(),new xA(dC.fromBase64String(e))}static fromUint8Array(e){return NA(),new xA(dC.fromUint8Array(e))}toBase64(){return RA(),this._delegate.toBase64()}toUint8Array(){return NA(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function DA(e){return function(e,t){if("object"!=typeof e||null===e)return;var n=e;for(const r of t)if(r in n&&"function"==typeof n[r])return 1;return}(e,["next","error","complete"])}class PA{enableIndexedDbPersistence(e,t){return function(e,t){hC(e=_S(e,rC));var n=iC(e),r=e._freezeSettings(),i=new pS;return aC(n,i,new hS(i,r.cacheSizeBytes,null==t?void 0:t.forceOwnership))}(e._delegate,{forceOwnership:t})}enableMultiTabIndexedDbPersistence(e){return function(e){hC(e=_S(e,rC));var t=iC(e),n=e._freezeSettings(),r=new pS;return aC(t,r,new dS(r,n.cacheSizeBytes))}(e._delegate)}clearIndexedDbPersistence(e){return function(e){if(e._initialized&&!e._terminated)throw new u_(l_.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const t=new h_;return e._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{await async function(e){if(!W_.C())return Promise.resolve();var t=e+"main";await W_.delete(t)}(bE(e._databaseId,e._persistenceKey)),t.resolve()}catch(e){t.reject(e)}}),t.promise}(e._delegate)}}class OA{constructor(e,t,n){this._delegate=t,this._persistenceProvider=n,this.INTERNAL={delete:()=>this.terminate()},e instanceof rw||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||s_("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(e,t,n={}){!function(n,e,t,r={}){var i;const s=(n=_S(n,TS))._getSettings();if("firestore.googleapis.com"!==s.host&&s.host!==e&&s_("Host has been set in both settings() and useEmulator(), emulator host will be used"),n._setSettings(Object.assign(Object.assign({},s),{host:`${e}:${t}`,ssl:!1})),r.mockUserToken){let e,t;if("string"==typeof r.mockUserToken)e=r.mockUserToken,t=Zy.MOCK_USER;else{e=_(r.mockUserToken,null===(i=n._app)||void 0===i?void 0:i.options.projectId);const s=r.mockUserToken.sub||r.mockUserToken.user_id;if(!s)throw new u_(l_.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");t=new Zy(s)}n._authCredentials=new f_(new d_(e,t))}}(this._delegate,e,t,n)}enableNetwork(){return cC(this._delegate)}disableNetwork(){return lC(this._delegate)}enablePersistence(e){let t=!1,n=!1;return e&&(t=!!e.synchronizeTabs,n=!!e.experimentalForceOwningTab,gS("synchronizeTabs",t,"experimentalForceOwningTab",n)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,n)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){return oC(this._delegate)}onSnapshotsInSync(e){return wA(this._delegate,e)}get app(){if(!this._appCompat)throw new u_("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._appCompat}collection(e){try{return new HA(this,CS(this._delegate,e))}catch(e){throw VA(e,"collection()","Firestore.collection()")}}doc(e){try{return new qA(this,AS(this._delegate,e))}catch(e){throw VA(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new WA(this,function(e,t){if(e=_S(e,TS),fS("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new u_(l_.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new kS(e,null,(t=t,new _b(C_.emptyPath(),t)))}(this._delegate,e))}catch(e){throw VA(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return CA(this._delegate,e=>t(new LA(this,e)))}batch(){return iC(this._delegate),new FA(new EA(this._delegate,e=>bA(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,n=iC(t=_S(t,rC)),r=new JS,HS(n,t._databaseId,e,r),r;var t,n,r}namedQuery(e){return uC(this._delegate,e).then(e=>e?new WA(this,e):null)}}class MA extends aA{constructor(e){super(),this.firestore=e}convertBytes(e){return new xA(new dC(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return qA.forKey(t,this.firestore,null)}}class LA{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new MA(e)}get(e){const t=QA(e);return this._delegate.get(t).then(e=>new $A(this._firestore,new uA(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,n){var r=QA(e);return n?(AA("Transaction.set",n),this._delegate.set(r,t,n)):this._delegate.set(r,t),this}update(e,t,n,...r){var i=QA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,n,...r),this}delete(e){var t=QA(e);return this._delegate.delete(t),this}}class FA{constructor(e){this._delegate=e}set(e,t,n){var r=QA(e);return n?(AA("WriteBatch.set",n),this._delegate.set(r,t,n)):this._delegate.set(r,t),this}update(e,t,n,...r){var i=QA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,n,...r),this}delete(e){var t=QA(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class UA{constructor(e,t,n){this._firestore=e,this._userDataWriter=t,this._delegate=n}fromFirestore(e,t){var n=new hA(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new KA(this._firestore,n),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){const n=UA.INSTANCES;let r=n.get(e);r||(r=new WeakMap,n.set(e,r));let i=r.get(t);return i||(i=new UA(e,new MA(e),t),r.set(t,i)),i}}UA.INSTANCES=new WeakMap;class qA{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new MA(e)}static forPath(e,t,n){if(e.length%2!=0)throw new u_("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+`${e.canonicalString()} has ${e.length}`);return new qA(t,new ES(t._delegate,n,new R_(e)))}static forKey(e,t,n){return new qA(t,new ES(t._delegate,n,e))}get id(){return this._delegate.id}get parent(){return new HA(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new HA(this.firestore,CS(this._delegate,e))}catch(e){throw VA(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=ae(e))instanceof ES&&NS(this._delegate,e)}set(e,t){t=AA("DocumentReference.set",t);try{return t?vA(this._delegate,e,t):vA(this._delegate,e)}catch(e){throw VA(e,"setDoc()","DocumentReference.set()")}}update(e,t,...n){try{return 1===arguments.length?yA(this._delegate,e):yA(this._delegate,e,t,...n)}catch(e){throw VA(e,"updateDoc()","DocumentReference.update()")}}delete(){return bA(_S((e=this._delegate).firestore,rC),[new lI(e._key,Jb.none())]);var e}onSnapshot(...e){var t=BA(e),n=jA(e,e=>new $A(this.firestore,new uA(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return _A(this._delegate,t,n)}get(e){let t;return t=("cache"===(null==e?void 0:e.source)?gA:"server"===(null==e?void 0:e.source)?function(t){t=_S(t,ES);const n=_S(t.firestore,rC);return zS(iC(n),t._key,{source:"server"}).then(e=>IA(n,t,e))}:function(t){t=_S(t,ES);const n=_S(t.firestore,rC);return zS(iC(n),t._key).then(e=>IA(n,t,e))})(this._delegate),t.then(e=>new $A(this.firestore,new uA(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new qA(this.firestore,e?this._delegate.withConverter(UA.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function VA(e,t,n){return e.message=e.message.replace(t,n),e}function BA(e){for(const t of e)if("object"==typeof t&&!DA(t))return t;return{}}function jA(e,t){var n;let r;return r=DA(e[0])?e[0]:DA(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{r.next&&r.next(t(e))},error:null===(n=r.error)||void 0===n?void 0:n.bind(r),complete:null===(n=r.complete)||void 0===n?void 0:n.bind(r)}}class $A{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new qA(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return pA(this._delegate,e._delegate)}}class KA extends $A{data(e){var t=this._delegate.data(e);return void 0!==t||o_(),t}}class WA{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new MA(e)}where(e,t,n){try{return new WA(this.firestore,HC(this._delegate,(r=n,i=t,s=KC("where",e),QC._create(s,i,r))))}catch(e){throw VA(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,i,s}orderBy(e,t){try{return new WA(this.firestore,HC(this._delegate,([n,r="asc"]=[e,t],i=r,s=KC("orderBy",n),JC._create(s,i))))}catch(e){throw VA(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,r,i,s}limit(e){try{return new WA(this.firestore,HC(this._delegate,(wS("limit",t=e),XC._create("limit",t,"F"))))}catch(e){throw VA(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new WA(this.firestore,HC(this._delegate,(wS("limitToLast",t=e),XC._create("limitToLast",t,"L"))))}catch(e){throw VA(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new WA(this.firestore,HC(this._delegate,function(...e){return ZC._create("startAt",e,!0)}(...e)))}catch(e){throw VA(e,"startAt()","Query.startAt()")}}startAfter(...e){try{return new WA(this.firestore,HC(this._delegate,function(...e){return ZC._create("startAfter",e,!1)}(...e)))}catch(e){throw VA(e,"startAfter()","Query.startAfter()")}}endBefore(...e){try{return new WA(this.firestore,HC(this._delegate,function(...e){return eA._create("endBefore",e,!1)}(...e)))}catch(e){throw VA(e,"endBefore()","Query.endBefore()")}}endAt(...e){try{return new WA(this.firestore,HC(this._delegate,function(...e){return eA._create("endAt",e,!0)}(...e)))}catch(e){throw VA(e,"endAt()","Query.endAt()")}}isEqual(e){return RS(this._delegate,e._delegate)}get(e){let t;return t=("cache"===(null==e?void 0:e.source)?mA:"server"===(null==e?void 0:e.source)?function(t){t=_S(t,kS);const n=_S(t.firestore,rC),e=iC(n),r=new fA(n);return GS(e,t._query,{source:"server"}).then(e=>new dA(n,r,t,e))}:function(t){t=_S(t,kS);const n=_S(t.firestore,rC),e=iC(n),r=new fA(n);return WC(t._query),GS(e,t._query).then(e=>new dA(n,r,t,e))})(this._delegate),t.then(e=>new GA(this.firestore,new dA(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=BA(e),n=jA(e,e=>new GA(this.firestore,new dA(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return _A(this._delegate,t,n)}withConverter(e){return new WA(this.firestore,e?this._delegate.withConverter(UA.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class zA{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new KA(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class GA{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new WA(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new KA(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new zA(this._firestore,e))}forEach(t,n){this._delegate.forEach(e=>{t.call(n,new KA(this._firestore,e))})}isEqual(e){return pA(this._delegate,e._delegate)}}class HA extends WA{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new qA(this.firestore,e):null}doc(e){try{return void 0===e?new qA(this.firestore,AS(this._delegate)):new qA(this.firestore,AS(this._delegate,e))}catch(e){throw VA(e,"doc()","CollectionReference.doc()")}}add(e){return function(e,t){const n=_S(e.firestore,rC),r=AS(e),i=oA(e.converter,t);return bA(n,[TC(IC(e.firestore),"addDoc",r._key,i,null!==e.converter,{}).toMutation(r._key,Jb.exists(!1))]).then(()=>r)}(this._delegate,e).then(e=>new qA(this.firestore,e))}isEqual(e){return NS(this._delegate,e._delegate)}withConverter(e){return new HA(this.firestore,e?this._delegate.withConverter(UA.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function QA(e){return _S(e,ES)}const YA={Firestore:OA,GeoPoint:gC,Timestamp:E_,Blob:xA,Transaction:LA,WriteBatch:FA,DocumentReference:qA,DocumentSnapshot:$A,Query:WA,QueryDocumentSnapshot:KA,QuerySnapshot:GA,CollectionReference:HA,FieldPath:class rO{constructor(...e){this._delegate=new pC(...e)}static documentId(){return new rO(N_.keyField().canonicalString())}isEqual(e){return(e=ae(e))instanceof pC&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:class iO{constructor(e){this._delegate=e}static serverTimestamp(){const e=new SC("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new iO(e)}static delete(){const e=new EC("deleteField");return e._methodName="FieldValue.delete",new iO(e)}static arrayUnion(...e){const t=function(...e){return new CC("arrayUnion",e)}(...e);return t._methodName="FieldValue.arrayUnion",new iO(t)}static arrayRemove(...e){const t=function(...e){return new AC("arrayRemove",e)}(...e);return t._methodName="FieldValue.arrayRemove",new iO(t)}static increment(e){const t=new NC("increment",e);return t._methodName="FieldValue.increment",new iO(t)}isEqual(e){return this._delegate.isEqual(e._delegate)}},setLogLevel:function(e){e=e,t_.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};ZS=wt,eC=(e,t)=>new OA(e,t,new PA),ZS.INTERNAL.registerComponent(new oe("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("firestore").getImmediate();return eC(t,n)},"PUBLIC").setServiceProps(Object.assign({},YA))),ZS.registerVersion("@firebase/firestore-compat","0.3.1");const JA="type.googleapis.com/google.protobuf.Int64Value",XA="type.googleapis.com/google.protobuf.UInt64Value";function ZA(e,t){const n={};for(const r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function eN(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case JA:case XA:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>eN(e)):"function"==typeof e||"object"==typeof e?ZA(e,e=>eN(e)):e}const tN="functions",nN={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class rN extends R{constructor(e,t,n){super(`${tN}/${e}`,t||""),this.details=n}}function iN(e,t){let n=function(e){if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}(e),r=n,i=void 0;try{var s=t&&t.error;if(s){const e=s.status;if("string"==typeof e){if(!nN[e])return new rN("internal","internal");n=nN[e],r=e}var a=s.message;"string"==typeof a&&(r=a),i=s.details,void 0!==i&&(i=eN(i))}}catch(e){}return"ok"===n?null:new rN(n,r,i)}class sN{constructor(e,t,n){this.auth=null,this.messaging=null,this.appCheck=null,this.auth=e.getImmediate({optional:!0}),this.messaging=t.getImmediate({optional:!0}),this.auth||e.get().then(e=>this.auth=e,()=>{}),this.messaging||t.get().then(e=>this.messaging=e,()=>{}),this.appCheck||n.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{var e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){return}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return this.messaging.getToken()}catch(e){return}}async getAppCheckToken(){if(this.appCheck){var e=await this.appCheck.getToken();return e.error?null:e.token}return null}async getContext(){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken()}}}const aN="us-central1";class oN{constructor(e,t,n,r,i=aN,s){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new sN(t,n,r),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var a=new URL(i);this.customDomain=a.origin,this.region=aN}catch(e){this.customDomain=null,this.region=i}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null===this.emulatorOrigin?null!==this.customDomain?`${this.customDomain}/${e}`:`https://${this.region}-${t}.cloudfunctions.net/${e}`:`${this.emulatorOrigin}/${t}/${this.region}/${e}`}}function cN(i,s,a){return e=>{return t=e,n=a||{},r=(e=i)._url(s),lN(e,r,t,n);var t,n,r}}async function lN(e,t,n,r){var i={data:n=function t(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>t(e));if("function"==typeof e||"object"==typeof e)return ZA(e,e=>t(e));throw new Error("Data cannot be encoded in JSON: "+e)}(n)};const s={};var a=await e.contextProvider.getContext();a.authToken&&(s.Authorization="Bearer "+a.authToken),a.messagingToken&&(s["Firebase-Instance-ID-Token"]=a.messagingToken),null!==a.appCheckToken&&(s["X-Firebase-AppCheck"]=a.appCheckToken);const o=function(n){let r=null;return{promise:new Promise((e,t)=>{r=setTimeout(()=>{t(new rN("deadline-exceeded","deadline-exceeded"))},n)}),cancel:()=>{r&&clearTimeout(r)}}}(r.timeout||7e4);a=await Promise.race([async function(e,t,n,r){n["Content-Type"]="application/json";let i;try{i=await r(e,{method:"POST",body:JSON.stringify(t),headers:n})}catch(e){return{status:0,json:null}}let s=null;try{s=await i.json()}catch(e){}return{status:i.status,json:s}}(t,i,s,e.fetchImpl),o.promise,e.cancelAllRequests]);if(o.cancel(),!a)throw new rN("cancelled","Firebase Functions instance was deleted.");i=iN(a.status,a.json);if(i)throw i;if(!a.json)throw new rN("internal","Response is not valid JSON object.");let c=a.json.data;if(void 0===c&&(c=a.json.result),void 0===c)throw new rN("internal","Response is missing data field.");return{data:eN(c)}}const uN="@firebase/functions";function hN(e,t,n){ae(e).emulatorOrigin=`http://${t}:${n}`}function dN(e,t,n){return r=ae(e),i=t,s=n,e=>lN(r,i,e,s||{});var r,i,s}tC=fetch.bind(self),ze(new oe(tN,(e,{instanceIdentifier:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),i=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new oN(n,r,i,s,t,tC)},"PUBLIC").setMultipleInstances(!0)),et(uN,"0.9.1",nC),et(uN,"0.9.1","esm2017");var pN,fN,gN,mN;class vN{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return cN(ae(this._delegate),e,t)}httpsCallableFromURL(e,t){return dN(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new R("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new R("functions","Port missing in origin provided to useFunctionsEmulator()");return hN(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return hN(this._delegate,e,t)}}const yN="us-central1",_N=(e,{instanceIdentifier:t})=>{var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("functions").getImmediate({identifier:null!=t?t:yN});return new vN(n,r)};pN={Functions:vN},wt.INTERNAL.registerComponent(new oe("functions-compat",_N,"PUBLIC").setServiceProps(pN).setMultipleInstances(!0)),wt.registerVersion("@firebase/functions-compat","0.3.1");const wN="/firebase-messaging-sw.js",bN="/firebase-cloud-messaging-push-scope",IN="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",TN="https://fcmregistrations.googleapis.com/v1",EN="google.c.a.c_id",kN="google.c.a.e";function SN(e){var t=new Uint8Array(e);const n=btoa(String.fromCharCode(...t));return n.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(Kc=qD=qD||{})[Kc.DATA_MESSAGE=1]="DATA_MESSAGE",Kc[Kc.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(Kc=fN=fN||{}).PUSH_RECEIVED="push-received",Kc.NOTIFICATION_CLICKED="notification-clicked";const CN="fcm_token_details_db",AN="fcm_token_object_Store";async function NN(c){if("databases"in indexedDB){const t=await indexedDB.databases(),n=t.map(e=>e.name);if(!n.includes(CN))return null}let l=null;const e=await Re(CN,5,{upgrade:async(e,t,n,r)=>{var i;if(!(t<2)&&e.objectStoreNames.contains(AN)){const o=r.objectStore(AN);var s,a=await o.index("fcmSenderId").get(c);await o.clear(),a&&(2===t?(s=a).auth&&s.p256dh&&s.endpoint&&(l={token:s.fcmToken,createTime:null!==(i=s.createTime)&&void 0!==i?i:Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:SN(s.vapidKey)}}):3===t?(s=a,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:SN(s.auth),p256dh:SN(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:SN(s.vapidKey)}}):4===t&&(a=a,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:SN(a.auth),p256dh:SN(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:SN(a.vapidKey)}}))}}});return e.close(),await xe(CN),await xe("fcm_vapid_details_db"),await xe("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;var t=e["subscriptionOptions"];return"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length}(l)?l:null}const RN="firebase-messaging-database",xN=1,DN="firebase-messaging-store";let PN=null;function ON(){return PN=PN||Re(RN,xN,{upgrade:(e,t)=>{0===t&&e.createObjectStore(DN)}}),PN}async function MN(e){var t=FN(e);const n=await ON();t=await n.transaction(DN).objectStore(DN).get(t);if(t)return t;t=await NN(e.appConfig.senderId);return t?(await LN(e,t),t):void 0}async function LN(e,t){var n=FN(e);const r=await ON(),i=r.transaction(DN,"readwrite");return await i.objectStore(DN).put(t,n),await i.done,t}function FN({appConfig:e}){return e.appId}const UN=new x("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function qN(e,t){var n={method:"DELETE",headers:await BN(e)};try{const s=await fetch(`${VN(e.appConfig)}/${t}`,n);var r=await s.json();if(r.error){var i=r.error.message;throw UN.create("token-unsubscribe-failed",{errorInfo:i})}}catch(e){throw UN.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function VN({projectId:e}){return`${TN}/projects/${e}/registrations`}async function BN({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function jN({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const i={web:{endpoint:n,auth:t,p256dh:e}};return r!==IN&&(i.web.applicationPubKey=r),i}const $N=6048e5;async function KN(e){const t=await async function(e,t){var n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const n=atob(t),r=new Uint8Array(n.length);for(let i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r}(t)})}(e.swRegistration,e.vapidKey);var n,r,i,s,a,o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:SN(t.getKey("auth")),p256dh:SN(t.getKey("p256dh"))},c=await MN(e.firebaseDependencies);if(c){if(n=c.subscriptionOptions,r=o.vapidKey===n.vapidKey,i=o.endpoint===n.endpoint,s=o.auth===n.auth,a=o.p256dh===n.p256dh,r&&i&&s&&a)return Date.now()>=c.createTime+$N?async function(t,e){try{var n=await async function(e,t){var n=await BN(e),r=jN(t.subscriptionOptions),r={method:"PATCH",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(`${VN(e.appConfig)}/${t.token}`,r);i=await s.json()}catch(e){throw UN.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw UN.create("token-update-failed",{errorInfo:r})}if(!i.token)throw UN.create("token-update-no-token");return i.token}(t.firebaseDependencies,e),r=Object.assign(Object.assign({},e),{token:n,createTime:Date.now()});return await LN(t.firebaseDependencies,r),n}catch(e){throw await WN(t),e}}(e,{token:c.token,createTime:Date.now(),subscriptionOptions:o}):c.token;try{await qN(e.firebaseDependencies,c.token)}catch(e){console.warn(e)}return zN(e.firebaseDependencies,o)}return zN(e.firebaseDependencies,o)}async function WN(e){var t=await MN(e.firebaseDependencies);t&&(await qN(e.firebaseDependencies,t.token),await async function(e){var t=FN(e);const n=await ON(),r=n.transaction(DN,"readwrite");await r.objectStore(DN).delete(t),await r.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function zN(e,t){var n={token:await async function(e,t){var n=await BN(e),r=jN(t),r={method:"POST",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(VN(e.appConfig),r);i=await s.json()}catch(e){throw UN.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw UN.create("token-subscribe-failed",{errorInfo:r})}if(!i.token)throw UN.create("token-subscribe-no-token");return i.token}(e,t),createTime:Date.now(),subscriptionOptions:t};return await LN(e,n),n.token}function GN(e){var t,n,r,i,s,a={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return r=a,(n=e).notification&&(r.notification={},(t=n.notification.title)&&(r.notification.title=t),(t=n.notification.body)&&(r.notification.body=t),(t=n.notification.image)&&(r.notification.image=t),(t=n.notification.icon)&&(r.notification.icon=t)),n=a,(r=e).data&&(n.data=r.data),r=a,((e=e).fcmOptions||null!==(i=e.notification)&&void 0!==i&&i.click_action)&&(r.fcmOptions={},(s=null!==(i=null===(i=e.fcmOptions)||void 0===i?void 0:i.link)&&void 0!==i?i:null===(s=e.notification)||void 0===s?void 0:s.click_action)&&(r.fcmOptions.link=s),(s=null===(s=e.fcmOptions)||void 0===s?void 0:s.analytics_label)&&(r.fcmOptions.analyticsLabel=s)),a}function HN(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));return n.join("")}function QN(e){return UN.create("missing-app-config-values",{valueName:e})}HN("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),HN("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class YN{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var r=function(e){if(!e||!e.options)throw QN("App Configuration Object");if(!e.name)throw QN("App Name");var t=e["options"];for(const n of["projectId","apiKey","appId","messagingSenderId"])if(!t[n])throw QN(n);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}async function JN(e){try{e.swRegistration=await navigator.serviceWorker.register(wN,{scope:bN}),e.swRegistration.update().catch(()=>{})}catch(e){throw UN.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function XN(e,t){if(!navigator)throw UN.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw UN.create("permission-blocked");var n,r;return n=e,await((r=null==t?void 0:t.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=IN)),await async function(e,t){if(t||e.swRegistration||await JN(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw UN.create("invalid-sw-registration");e.swRegistration=t}}(e,null==t?void 0:t.serviceWorkerRegistration),KN(e)}async function ZN(e,t,n){var r=function(e){switch(e){case fN.NOTIFICATION_CLICKED:return"notification_open";case fN.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(t);const i=await e.firebaseDependencies.analyticsProvider.get();i.logEvent(r,{message_id:n[EN],message_name:n["google.c.a.c_l"],message_time:n["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function eR(e,t){var n,r=t.data;r.isFirebaseMessaging&&(e.onMessageHandler&&r.messageType===fN.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(GN(r)):e.onMessageHandler.next(GN(r))),n=r.data,"object"==typeof(t=n)&&t&&EN in t&&"1"===n[kN]&&await ZN(e,r.messageType,n))}const tR="@firebase/messaging",nR=e=>{const t=new YN(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>eR(t,e)),t},rR=e=>{const t=e.getProvider("messaging").getImmediate();return{getToken:e=>XN(t,e)}};function iR(e){return async function(e){if(!navigator)throw UN.create("only-available-in-window");return e.swRegistration||await JN(e),WN(e)}(e=ae(e))}function sR(e,t){return function(e,t){if(!navigator)throw UN.create("only-available-in-window");return e.onMessageHandler=t,()=>{e.onMessageHandler=null}}(e=ae(e),t)}ze(new oe("messaging",nR,"PUBLIC")),ze(new oe("messaging-internal",rR,"PRIVATE")),et(tR,"0.12.1"),et(tR,"0.12.1","esm2017");const aR="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",oR="https://fcmregistrations.googleapis.com/v1",cR="FCM_MSG",lR="google.c.a.c_id",uR=3,hR=1;function dR(e){var t=new Uint8Array(e);const n=btoa(String.fromCharCode(...t));return n.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(Kc=gN=gN||{})[Kc.DATA_MESSAGE=1]="DATA_MESSAGE",Kc[Kc.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(It=mN=mN||{}).PUSH_RECEIVED="push-received",It.NOTIFICATION_CLICKED="notification-clicked";const pR="fcm_token_details_db",fR="fcm_token_object_Store";async function gR(c){if("databases"in indexedDB){const t=await indexedDB.databases(),n=t.map(e=>e.name);if(!n.includes(pR))return null}let l=null;const e=await Re(pR,5,{upgrade:async(e,t,n,r)=>{var i;if(!(t<2)&&e.objectStoreNames.contains(fR)){const o=r.objectStore(fR);var s,a=await o.index("fcmSenderId").get(c);await o.clear(),a&&(2===t?(s=a).auth&&s.p256dh&&s.endpoint&&(l={token:s.fcmToken,createTime:null!==(i=s.createTime)&&void 0!==i?i:Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:dR(s.vapidKey)}}):3===t?(s=a,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:dR(s.auth),p256dh:dR(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:dR(s.vapidKey)}}):4===t&&(a=a,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:dR(a.auth),p256dh:dR(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:dR(a.vapidKey)}}))}}});return e.close(),await xe(pR),await xe("fcm_vapid_details_db"),await xe("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;var t=e["subscriptionOptions"];return"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length}(l)?l:null}const mR="firebase-messaging-database",vR=1,yR="firebase-messaging-store";let _R=null;function wR(){return _R=_R||Re(mR,vR,{upgrade:(e,t)=>{0===t&&e.createObjectStore(yR)}}),_R}async function bR(e){var t=TR(e);const n=await wR();t=await n.transaction(yR).objectStore(yR).get(t);if(t)return t;t=await gR(e.appConfig.senderId);return t?(await IR(e,t),t):void 0}async function IR(e,t){var n=TR(e);const r=await wR(),i=r.transaction(yR,"readwrite");return await i.objectStore(yR).put(t,n),await i.done,t}function TR({appConfig:e}){return e.appId}const ER=new x("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function kR(e,t){var n={method:"DELETE",headers:await CR(e)};try{const s=await fetch(`${SR(e.appConfig)}/${t}`,n);var r=await s.json();if(r.error){var i=r.error.message;throw ER.create("token-unsubscribe-failed",{errorInfo:i})}}catch(e){throw ER.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function SR({projectId:e}){return`${oR}/projects/${e}/registrations`}async function CR({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function AR({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const i={web:{endpoint:n,auth:t,p256dh:e}};return r!==aR&&(i.web.applicationPubKey=r),i}async function NR(e){const t=await async function(e,t){var n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const n=atob(t),r=new Uint8Array(n.length);for(let i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r}(t)})}(e.swRegistration,e.vapidKey);var n,r,i,s,a,o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:dR(t.getKey("auth")),p256dh:dR(t.getKey("p256dh"))},c=await bR(e.firebaseDependencies);if(c){if(n=c.subscriptionOptions,r=o.vapidKey===n.vapidKey,i=o.endpoint===n.endpoint,s=o.auth===n.auth,a=o.p256dh===n.p256dh,r&&i&&s&&a)return Date.now()>=c.createTime+6048e5?async function(t,e){try{var n=await async function(e,t){var n=await CR(e),r=AR(t.subscriptionOptions),r={method:"PATCH",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(`${SR(e.appConfig)}/${t.token}`,r);i=await s.json()}catch(e){throw ER.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw ER.create("token-update-failed",{errorInfo:r})}if(!i.token)throw ER.create("token-update-no-token");return i.token}(t.firebaseDependencies,e),r=Object.assign(Object.assign({},e),{token:n,createTime:Date.now()});return await IR(t.firebaseDependencies,r),n}catch(e){throw await RR(t),e}}(e,{token:c.token,createTime:Date.now(),subscriptionOptions:o}):c.token;try{await kR(e.firebaseDependencies,c.token)}catch(e){console.warn(e)}return xR(e.firebaseDependencies,o)}return xR(e.firebaseDependencies,o)}async function RR(e){var t=await bR(e.firebaseDependencies);t&&(await kR(e.firebaseDependencies,t.token),await async function(e){var t=TR(e);const n=await wR(),r=n.transaction(yR,"readwrite");await r.objectStore(yR).delete(t),await r.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function xR(e,t){var n={token:await async function(e,t){var n=await CR(e),r=AR(t),r={method:"POST",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(SR(e.appConfig),r);i=await s.json()}catch(e){throw ER.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw ER.create("token-subscribe-failed",{errorInfo:r})}if(!i.token)throw ER.create("token-subscribe-no-token");return i.token}(e,t),createTime:Date.now(),subscriptionOptions:t};return await IR(e,n),n.token}async function DR(e,t){var n=function(e,t){var n;const r={};e.from&&(r.project_number=e.from);e.fcmMessageId&&(r.message_id=e.fcmMessageId);r.instance_id=t,e.notification?r.message_type=gN.DISPLAY_NOTIFICATION.toString():r.message_type=gN.DATA_MESSAGE.toString();r.sdk_platform=uR.toString(),r.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(r.collapse_key=e.collapse_key);r.event=hR.toString(),null!==(n=e.fcmOptions)&&void 0!==n&&n.analytics_label&&(r.analytics_label=null===(n=e.fcmOptions)||void 0===n?void 0:n.analytics_label);return r}(t,await e.firebaseDependencies.installations.getId());!function(e,t){const n={};n.event_time_ms=Math.floor(Date.now()).toString(),n.source_extension_json_proto3=JSON.stringify(t),e.logEvents.push(n)}(e,n)}function PR(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));return n.join("")}async function OR(e,t){var n=function({data:e}){if(!e)return null;try{return e.json()}catch(e){return null}}(e);if(n){t.deliveryMetricsExportedToBigQueryEnabled&&await DR(t,n);var r,i,s,a,o=await LR();if(o.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://")))return function(e,t){t.isFirebaseMessaging=!0,t.messageType=mN.PUSH_RECEIVED;for(const n of e)n.postMessage(t)}(o,n);n.notification&&await function(e){var t=e["actions"],n=Notification["maxActions"];t&&n&&t.length>n&&console.warn(`This browser only supports ${n} actions. The remaining actions will not be displayed.`);return self.registration.showNotification(null!==(n=e.title)&&void 0!==n?n:"",e)}(function(e){const t=Object.assign({},e.notification);return t.data={[cR]:e},t}(n)),t&&t.onBackgroundMessageHandler&&(a={from:(r=n).from,collapseKey:r.collapse_key,messageId:r.fcmMessageId},o=a,(e=r).notification&&(o.notification={},(n=e.notification.title)&&(o.notification.title=n),(n=e.notification.body)&&(o.notification.body=n),(n=e.notification.image)&&(o.notification.image=n),(n=e.notification.icon)&&(o.notification.icon=n)),e=a,(o=r).data&&(e.data=o.data),o=a,((r=r).fcmOptions||null!==(i=r.notification)&&void 0!==i&&i.click_action)&&(o.fcmOptions={},(s=null!==(i=null===(i=r.fcmOptions)||void 0===i?void 0:i.link)&&void 0!==i?i:null===(s=r.notification)||void 0===s?void 0:s.click_action)&&(o.fcmOptions.link=s),(s=null===(s=r.fcmOptions)||void 0===s?void 0:s.analytics_label)&&(o.fcmOptions.analyticsLabel=s)),a=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(a):t.onBackgroundMessageHandler.next(a))}}async function MR(e){const t=null===(s=null===(i=e.notification)||void 0===i?void 0:i.data)||void 0===s?void 0:s[cR];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var n=function(e){var t;var n=null!==(t=null===(t=e.fcmOptions)||void 0===t?void 0:t.link)&&void 0!==t?t:null===(n=e.notification)||void 0===n?void 0:n.click_action;if(n)return n;return function(e){return"object"==typeof e&&e&&lR in e}(e.data)?self.location.origin:null}(t);if(n){var r,i=new URL(n,self.location.href),s=new URL(self.location.origin);if(i.host===s.host){let e=await async function(e){var t=await LR();for(const r of t){var n=new URL(r.url,self.location.href);if(e.host===n.host)return r}return null}(i);if(e?e=await e.focus():(e=await self.clients.openWindow(n),r=3e3,await new Promise(e=>{setTimeout(e,r)})),e)return t.messageType=mN.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function LR(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function FR(e){return ER.create("missing-app-config-values",{valueName:e})}PR("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),PR("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class UR{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var r=function(e){if(!e||!e.options)throw FR("App Configuration Object");if(!e.name)throw FR("App Name");var t=e["options"];for(const n of["projectId","apiKey","appId","messagingSenderId"])if(!t[n])throw FR(n);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}const qR=e=>{const t=new UR(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(OR(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil(async function(e,t){var n;(n=e["newSubscription"])?(n=await bR(t.firebaseDependencies),await RR(t),t.vapidKey=null!==(n=null===(n=null==n?void 0:n.subscriptionOptions)||void 0===n?void 0:n.vapidKey)&&void 0!==n?n:aR,await NR(t)):await RR(t)}(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(MR(e))}),t};function VR(e,t){return function(e,t){if(void 0!==self.document)throw ER.create("only-available-in-sw");return e.onBackgroundMessageHandler=t,()=>{e.onBackgroundMessageHandler=null}}(e=ae(e),t)}ze(new oe("messaging-sw",qR,"PUBLIC"));var BR,jR,$R;class KR{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return async function(e,t){return XN(e=ae(e),t)}(this._delegate,e)}async deleteToken(){return iR(this._delegate)}onMessage(e){return sR(this._delegate,e)}onBackgroundMessage(e){return VR(this._delegate,e)}}const WR=e=>self&&"ServiceWorkerGlobalScope"in self?new KR(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new KR(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),zR={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?C()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&C()&&N()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};wt.INTERNAL.registerComponent(new oe("messaging-compat",WR,"PUBLIC").setServiceProps(zR)),wt.registerVersion("@firebase/messaging-compat","0.2.1");const GR="firebasestorage.googleapis.com",HR="storageBucket";class QR extends R{constructor(e,t,n=0){super(YR(e),`Firebase Storage: ${t} (${YR(e)})`),this.status_=n,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,QR.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return YR(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage}\n${this.customData.serverResponse}`:this.message=this._baseMessage}}function YR(e){return"storage/"+e}function JR(){return new QR("unknown","An unknown error occurred, please check the error payload for server response.")}function XR(){return new QR("retry-limit-exceeded","Max retry time for operation exceeded, please try again.")}function ZR(){return new QR("canceled","User canceled the upload/download.")}function ex(){return new QR("cannot-slice-blob","Cannot slice blob for upload. Please retry the upload.")}function tx(e){return new QR("invalid-argument",e)}function nx(){return new QR("app-deleted","The Firebase app was deleted.")}function rx(e){return new QR("invalid-root-operation","The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function ix(e,t){return new QR("invalid-format","String does not match format '"+e+"': "+t)}function sx(e){throw new QR("internal-error","Internal error: "+e)}class ax{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){const e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){const e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let n;try{n=ax.makeFromUrl(t,e)}catch(e){return new ax(t,"")}if(""===n.path)return n;throw t=t,new QR("invalid-default-bucket","Invalid default bucket '"+t+"'.")}static makeFromUrl(e,t){let n=null;var r="([A-Za-z0-9.\\-_]+)";var i=new RegExp("^gs://"+r+"(/(.*))?$","i");function s(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),o=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${r}/o(/([^?#]*).*)?$`,"i"),a=t===GR?"(?:storage.googleapis.com|storage.cloud.google.com)":t,c=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:o,indices:{bucket:1,path:3},postModify:s},{regex:new RegExp(`^https?://${a}/${r}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:s}];for(let h=0;h<c.length;h++){const d=c[h];var l=d.regex.exec(e);if(l){var u=l[d.indices.bucket];let e=l[d.indices.path];e=e||"",n=new ax(u,e),d.postModify(n);break}}if(null==n)throw t=e,new QR("invalid-url","Invalid URL '"+t+"'.");return n}}class ox{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function cx(e){return"string"==typeof e||e instanceof String}function lx(e){return ux()&&e instanceof Blob}function ux(){return"undefined"!=typeof Blob&&!I()}function hx(e,t,n,r){if(r<t)throw tx(`Invalid value for '${e}'. Expected ${t} or greater.`);if(n<r)throw tx(`Invalid value for '${e}'. Expected ${n} or less.`)}function dx(e,t,n){let r=null==n?`https://${t}`:t;return`${n}://${r}/v0${e}`}function px(e){const t=encodeURIComponent;let n="?";for(const i in e){var r;e.hasOwnProperty(i)&&(r=t(i)+"="+t(e[i]),n=n+r+"&")}return n=n.slice(0,-1),n}function fx(e,t){var n=500<=e&&e<600,r=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return n||r||i}(It=BR=BR||{})[It.NO_ERROR=0]="NO_ERROR",It[It.NETWORK_ERROR=1]="NETWORK_ERROR",It[It.ABORT=2]="ABORT";class gx{constructor(e,t,n,r,i,s,a,o,c,l,u,h=!0){this.url_=e,this.method_=t,this.headers_=n,this.body_=r,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=c,this.progressCallback_=l,this.connectionFactory_=u,this.retry=h,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(n,e)=>{if(e)n(!1,new mx(!1,null,!0));else{const r=this.connectionFactory_();this.pendingConnection_=r;const i=e=>{var t=e.loaded,n=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,n)};null!==this.progressCallback_&&r.addUploadProgressListener(i),r.send(this.url_,this.method_,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(i),this.pendingConnection_=null;var e=r.getErrorCode()===BR.NO_ERROR,t=r.getStatus();!e||fx(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===BR.ABORT,n(!1,new mx(!1,null,e))):(t=-1!==this.successCodes_.indexOf(t),n(!0,new mx(t,r)))})}},t=(e,t)=>{const n=this.resolve_,r=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var s=this.callback_(i,i.getResponse());void 0!==s?n(s):n()}catch(e){r(e)}else if(null!==i){const o=JR();o.serverResponse=i.getErrorText(),this.errorCallback_?r(this.errorCallback_(i,o)):r(o)}else{var a;t.canceled?(a=(this.appDelete_?nx:ZR)(),r(a)):(a=XR(),r(a))}};this.canceled_?t(0,new mx(!1,null,!0)):this.backoffId_=function(t,n,e){let r=1,i=null,s=null,a=!1,o=0;function c(){return 2===o}let l=!1;function u(...e){l||(l=!0,n.apply(null,e))}function h(e){i=setTimeout(()=>{i=null,t(p,c())},e)}function d(){s&&clearTimeout(s)}function p(t,...n){if(l)d();else{if(t)return d(),void u.call(null,t,...n);if(c()||a)return d(),void u.call(null,t,...n);r<64&&(r*=2);let e;e=1===o?(o=2,0):1e3*(r+Math.random()),h(e)}}let f=!1;function g(e){f||(f=!0,d(),l||(null!==i?(e||(o=2),clearTimeout(i),h(0)):e||(o=1)))}return h(0),s=setTimeout(()=>{g(a=!0)},e),g}(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class mx{constructor(e,t,n){this.wasSuccessCode=e,this.connection=t,this.canceled=!!n}}function vx(...t){const n="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==n){const r=new n;for(let e=0;e<t.length;e++)r.append(t[e]);return r.getBlob()}if(ux())return new Blob(t);throw new QR("unsupported-environment","This browser doesn't seem to support creating Blobs")}function yx(e){if("undefined"==typeof atob)throw new QR("unsupported-environment","base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}const _x={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class wx{constructor(e,t){this.data=e,this.contentType=t||null}}function bx(e,t){switch(e){case _x.RAW:return new wx(Ix(t));case _x.BASE64:case _x.BASE64URL:return new wx(Tx(e,t));case _x.DATA_URL:return new wx((n=t,(r=new Ex(n)).base64?Tx(_x.BASE64,r.rest):function(e){let t;try{t=decodeURIComponent(e)}catch(e){throw ix(_x.DATA_URL,"Malformed data URL.")}return Ix(t)}(r.rest)),(n=t,new Ex(n).contentType))}var n,r;throw JR()}function Ix(t){const n=[];for(let s=0;s<t.length;s++){let e=t.charCodeAt(s);var r,i;e<=127?n.push(e):e<=2047?n.push(192|e>>6,128|63&e):55296==(64512&e)?s<t.length-1&&56320==(64512&t.charCodeAt(s+1))?(r=e,i=t.charCodeAt(++s),e=65536|(1023&r)<<10|1023&i,n.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):n.push(239,191,189):56320==(64512&e)?n.push(239,191,189):n.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(n)}function Tx(t,e){switch(t){case _x.BASE64:var n=-1!==e.indexOf("-"),r=-1!==e.indexOf("_");if(n||r)throw ix(t,"Invalid character '"+(n?"-":"_")+"' found: is it base64url encoded?");break;case _x.BASE64URL:r=-1!==e.indexOf("+"),n=-1!==e.indexOf("/");if(r||n)throw ix(t,"Invalid character '"+(r?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=yx(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw ix(t,"Invalid character found")}const s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);return s}class Ex{constructor(e){this.base64=!1,this.contentType=null;var t,n,r=e.match(/^data:([^,]+)?,/);if(null===r)throw ix(_x.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");const i=r[1]||null;null!=i&&(this.base64=(t=i,n=";base64",t.length>=n.length&&t.substring(t.length-n.length)===n),this.contentType=this.base64?i.substring(0,i.length-";base64".length):i),this.rest=e.substring(e.indexOf(",")+1)}}class kx{constructor(e,t){let n=0,r="";lx(e)?(this.data_=e,n=e.size,r=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),n=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),n=e.length),this.size_=n,this.type_=r}size(){return this.size_}type(){return this.type_}slice(e,t){if(lx(this.data_)){var n=this.data_,n=(i=e,s=t,(r=n).webkitSlice?r.webkitSlice(i,s):r.mozSlice?r.mozSlice(i,s):r.slice?r.slice(i,s):null);return null===n?null:new kx(n)}var r,i,s,n=new Uint8Array(this.data_.buffer,e,t-e);return new kx(n,!0)}static getBlob(...e){if(ux()){var t=e.map(e=>e instanceof kx?e.data_:e);return new kx(vx.apply(null,t))}{const r=e.map(e=>cx(e)?bx(_x.RAW,e).data:e.data_);let t=0;r.forEach(e=>{t+=e.byteLength});const i=new Uint8Array(t);let n=0;return r.forEach(e=>{for(let t=0;t<e.length;t++)i[n++]=e[t]}),new kx(i,!0)}}uploadData(){return this.data_}}function Sx(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function Cx(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function Ax(e,t){return t}class Nx{constructor(e,t,n,r){this.server=e,this.local=t||e,this.writable=!!n,this.xform=r||Ax}}let Rx=null;function xx(){if(Rx)return Rx;const e=[];e.push(new Nx("bucket")),e.push(new Nx("generation")),e.push(new Nx("metageneration")),e.push(new Nx("name","fullPath",!0));const t=new Nx("name");t.xform=function(e,t){return!cx(t=t)||t.length<2?t:Cx(t)},e.push(t);const n=new Nx("size");return n.xform=function(e,t){return void 0!==t?Number(t):t},e.push(n),e.push(new Nx("timeCreated")),e.push(new Nx("updated")),e.push(new Nx("md5Hash",null,!0)),e.push(new Nx("cacheControl",null,!0)),e.push(new Nx("contentDisposition",null,!0)),e.push(new Nx("contentEncoding",null,!0)),e.push(new Nx("contentLanguage",null,!0)),e.push(new Nx("contentType",null,!0)),e.push(new Nx("metadata","customMetadata",!0)),Rx=e,Rx}function Dx(n,r){Object.defineProperty(n,"ref",{get:function(){var e=n.bucket,t=n.fullPath,t=new ax(e,t);return r._makeStorageReference(t)}})}function Px(e,t,n){var r=Sx(t);return null===r?null:function(e,t,n){const r={type:"file"};var i=n.length;for(let s=0;s<i;s++){const a=n[s];r[a.local]=a.xform(r,t[a.server])}return Dx(r,e),r}(e,r,n)}function Ox(e,t){const n={};var r=t.length;for(let s=0;s<r;s++){var i=t[s];i.writable&&(n[i.server]=e[i.local])}return JSON.stringify(n)}const Mx="prefixes";function Lx(e,t,n){var r=Sx(n);return null===r?null:function(e,t,n){const r={prefixes:[],items:[],nextPageToken:n.nextPageToken};if(n[Mx])for(const a of n[Mx]){var i=a.replace(/\/$/,""),i=e._makeStorageReference(new ax(t,i));r.prefixes.push(i)}if(n.items)for(const o of n.items){var s=e._makeStorageReference(new ax(t,o.name));r.items.push(s)}return r}(e,t,r)}class Fx{constructor(e,t,n,r){this.url=e,this.method=t,this.handler=n,this.timeout=r,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function Ux(e){if(!e)throw JR()}function qx(r,i){return function(e,t){var n=Px(r,t,i);return Ux(null!==n),n}}function Vx(r,i){return function(e,t){var n=Lx(r,i,t);return Ux(null!==n),n}}function Bx(r,i){return function(e,t){var n=Px(r,t,i);return Ux(null!==n),function(r,e,i,s){var t=Sx(e);if(null===t)return null;if(!cx(t.downloadTokens))return null;const n=t.downloadTokens;if(0===n.length)return null;const a=encodeURIComponent,o=n.split(",");return o.map(e=>{var t=r.bucket,n=r.fullPath;return dx("/b/"+a(t)+"/o/"+a(n),i,s)+px({alt:"media",token:e})})[0]}(n,t,r.host,r._protocol)}}function jx(i){return function(e,t){let n;var r;return n=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new QR("unauthorized-app","This app does not have permission to access Firebase Storage on this project."):new QR("unauthenticated","User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(r=i.bucket,new QR("quota-exceeded","Quota for bucket '"+r+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(r=i.path,new QR("unauthorized","User does not have permission to access '"+r+"'.")):t,n.status=e.getStatus(),n.serverResponse=t.serverResponse,n}}function $x(r){const i=jx(r);return function(e,t){let n=i(e,t);return 404===e.getStatus()&&(n=(e=r.path,new QR("object-not-found","Object '"+e+"' does not exist."))),n.serverResponse=t.serverResponse,n}}function Kx(e,t,n){var r=dx(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime;const s=new Fx(r,"GET",qx(e,n),i);return s.errorHandler=$x(t),s}function Wx(e,t,n){const r=Object.assign({},n);return r.fullPath=e.path,r.size=t.size(),r.contentType||(r.contentType=(e=t,(t=null)&&t.contentType||e&&e.type()||"application/octet-stream")),r}function zx(e,t,n,r,i){var s=t.bucketOnlyServerUrl();const a={"X-Goog-Upload-Protocol":"multipart"};var o=function(){let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e}();a["Content-Type"]="multipart/related; boundary="+o;var c=Wx(t,r,i),l="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+Ox(c,n)+"\r\n--"+o+"\r\nContent-Type: "+c.contentType+"\r\n\r\n",o="\r\n--"+o+"--";const u=kx.getBlob(l,r,o);if(null===u)throw ex();o={name:c.fullPath},c=dx(s,e.host,e._protocol),s=e.maxUploadRetryTime;const h=new Fx(c,"POST",qx(e,n),s);return h.urlParams=o,h.headers=a,h.body=u.uploadData(),h.errorHandler=jx(t),h}class Gx{constructor(e,t,n,r){this.current=e,this.total=t,this.finalized=!!n,this.metadata=r||null}}function Hx(e,t){let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){Ux(!1)}const r=t||["active"];return Ux(!!n&&-1!==r.indexOf(n)),n}function Qx(e,t,n,r,i){var s=t.bucketOnlyServerUrl(),a=Wx(t,r,i),o={name:a.fullPath},c=dx(s,e.host,e._protocol),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${r.size()}`,"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},s=Ox(a,n),a=e.maxUploadRetryTime;const u=new Fx(c,"POST",function(e){Hx(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){Ux(!1)}return Ux(cx(t)),t},a);return u.urlParams=o,u.headers=l,u.body=s,u.errorHandler=jx(t),u}function Yx(e,t,n,i){var r=e.maxUploadRetryTime;const s=new Fx(n,"POST",function(e){var t=Hx(e,["active","final"]);let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){Ux(!1)}n||Ux(!1);var r=Number(n);return Ux(!isNaN(r)),new Gx(r,i.size(),"final"===t)},r);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=jx(t),s}function Jx(e,a,t,o,n,c,r,i){const l=new Gx(0,0);if(r?(l.current=r.current,l.total=r.total):(l.current=0,l.total=o.size()),o.size()!==l.total)throw new QR("server-file-wrong-size","Server recorded incorrect upload file size, please retry the upload.");var s=l.total-l.current;let u=s;0<n&&(u=Math.min(u,n));var h=l.current,d=h+u;let p="";p=0===u?"finalize":s===u?"upload, finalize":"upload";s={"X-Goog-Upload-Command":p,"X-Goog-Upload-Offset":`${l.current}`};const f=o.slice(h,d);if(null===f)throw ex();d=a.maxUploadRetryTime;const g=new Fx(t,"POST",function(e,t){var n=Hx(e,["active","final"]),r=l.current+u,i=o.size();let s;return s="final"===n?qx(a,c)(e,t):null,new Gx(r,i,"final"===n,s)},d);return g.headers=s,g.body=f.uploadData(),g.progressCallback=i||null,g.errorHandler=jx(e),g}const Xx={STATE_CHANGED:"state_changed"},Zx={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function eD(e){switch(e){case"running":case"pausing":case"canceling":return Zx.RUNNING;case"paused":return Zx.PAUSED;case"success":return Zx.SUCCESS;case"canceled":return Zx.CANCELED;default:return Zx.ERROR}}class tD{constructor(e,t,n){var r;"function"==typeof e||null!=t||null!=n?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=n?n:void 0):(this.next=(r=e).next,this.error=r.error,this.complete=r.complete)}}function nD(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class rD extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=BR.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=BR.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=BR.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,n,r){if(this.sent_)throw sx("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==r)for(const i in r)r.hasOwnProperty(i)&&this.xhr_.setRequestHeader(i,r[i].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw sx("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw sx("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(!this.sent_)throw sx("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw sx("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function iD(){return new rD}class sD{constructor(e,t,n=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=n,this._mappings=xx(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals("canceled"))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(fx(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=XR()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals("canceled")?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}_makeProgressCallback(){const t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(n){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":n(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var n=Qx(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata);const r=this._ref.storage._makeRequest(n,iD,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){const i=this._uploadUrl;this._resolveToken((e,t)=>{var n=Yx(this._ref.storage,this._ref._location,i,this._blob);const r=this._ref.storage._makeRequest(n,iD,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){const i=262144*this._chunkMultiplier,s=new Gx(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let n;try{n=Jx(this._ref._location,this._ref.storage,a,this._blob,i,this._mappings,s,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}const r=this._ref.storage._makeRequest(n,iD,e,t,!1);this._request=r,r.getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var n=Kx(this._ref.storage,this._ref._location,this._mappings);const r=this._ref.storage._makeRequest(n,iD,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var n=zx(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata);const r=this._ref.storage._makeRequest(n,iD,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=ZR(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=eD(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,n,r){const i=new tD(t||void 0,n||void 0,r||void 0);return this._addObserver(i),()=>{this._removeObserver(i)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise();const e=this._observers.slice();e.forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(eD(this._state)){case Zx.SUCCESS:nD(this._resolve.bind(null,this.snapshot))();break;case Zx.CANCELED:case Zx.ERROR:const t=this._reject;nD(t.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(eD(this._state)){case Zx.RUNNING:case Zx.PAUSED:e.next&&nD(e.next.bind(e,this.snapshot))();break;case Zx.SUCCESS:e.complete&&nD(e.complete.bind(e))();break;case Zx.CANCELED:case Zx.ERROR:default:e.error&&nD(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class aD{constructor(e,t){this._service=e,t instanceof ax?this._location=t:this._location=ax.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new aD(e,t)}get root(){var e=new ax(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return Cx(this._location.path)}get storage(){return this._service}get parent(){var e=function(e){if(0===e.length)return null;var t=e.lastIndexOf("/");return-1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;e=new ax(this._location.bucket,e);return new aD(this._service,e)}_throwIfRoot(e){if(""===this._location.path)throw rx(e)}}function oD(e){const t={prefixes:[],items:[]};return async function e(t,n,r){const i={pageToken:r};const s=await cD(t,i);n.prefixes.push(...s.prefixes);n.items.push(...s.items);null!=s.nextPageToken&&await e(t,n,s.nextPageToken)}(e,t).then(()=>t)}function cD(e,t){null!=t&&"number"==typeof t.maxResults&&hx("options.maxResults",1,1e3,t.maxResults);var n=t||{},n=function(e,t,n,r,i){const s={};t.isRoot?s.prefix="":s.prefix=t.path+"/",n&&0<n.length&&(s.delimiter=n),r&&(s.pageToken=r),i&&(s.maxResults=i);var a=dx(t.bucketOnlyServerUrl(),e.host,e._protocol),o=e.maxOperationRetryTime;const c=new Fx(a,"GET",Vx(e,t.bucket),o);return c.urlParams=s,c.errorHandler=jx(t),c}(e.storage,e._location,"/",n.pageToken,n.maxResults);return e.storage.makeRequestWithTokens(n,iD)}function lD(e,t){e._throwIfRoot("updateMetadata");var n=function(e,t,n,r){var i=dx(t.fullServerUrl(),e.host,e._protocol),s=Ox(n,r),a=e.maxOperationRetryTime;const o=new Fx(i,"PATCH",qx(e,r),a);return o.headers={"Content-Type":"application/json; charset=utf-8"},o.body=s,o.errorHandler=$x(t),o}(e.storage,e._location,t,xx());return e.storage.makeRequestWithTokens(n,iD)}function uD(e){e._throwIfRoot("getDownloadURL");var t=function(e,t,n){var r=dx(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime;const s=new Fx(r,"GET",Bx(e,n),i);return s.errorHandler=$x(t),s}(e.storage,e._location,xx());return e.storage.makeRequestWithTokens(t,iD).then(e=>{if(null===e)throw new QR("no-download-url","The given file does not have any download URLs.");return e})}function hD(e){e._throwIfRoot("deleteObject");var t=function(e,t){var n=dx(t.fullServerUrl(),e.host,e._protocol),r=e.maxOperationRetryTime;const i=new Fx(n,"DELETE",function(e,t){},r);return i.successCodes=[200,204],i.errorHandler=$x(t),i}(e.storage,e._location);return e.storage.makeRequestWithTokens(t,iD)}function dD(e,t){var n,r=(n=e._location.path,r=t.split("/").filter(e=>0<e.length).join("/"),0===n.length?r:n+"/"+r),r=new ax(e._location.bucket,r);return new aD(e.storage,r)}function pD(e,t){if(e instanceof mD){var n=e;if(null==n._bucket)throw new QR("no-default-bucket","No default bucket found. Did you set the '"+HR+"' property when initializing the app?");n=new aD(n,n._bucket);return null!=t?pD(n,t):n}return void 0!==t?dD(e,t):e}function fD(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof mD)return n=e,r=t,new aD(n,r);throw tx("To use ref(service, url), the first argument must be a Storage instance.")}return pD(e,t);var n,r}function gD(e,t){var n=null==t?void 0:t[HR];return null==n?null:ax.makeFromBucketSpec(n,e)}class mD{constructor(e,t,n,r,i){this.app=e,this._authProvider=t,this._appCheckProvider=n,this._url=r,this._firebaseVersion=i,this._bucket=null,this._host=GR,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=r?ax.makeFromBucketSpec(r,this._host):gD(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=ax.makeFromBucketSpec(this._url,e):this._bucket=gD(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){hx("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){hx("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;const e=this._authProvider.getImmediate({optional:!0});if(e){var t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){const e=this._appCheckProvider.getImmediate({optional:!0});return e?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new aD(this,e)}_makeRequest(e,t,n,r,i=!0){if(this._deleted)return new ox(nx());{const u=([s,a,o,e,n,r,t=!0]=[e,this._appId,n,r,t,this._firebaseVersion,i],c=px(s.urlParams),l=s.url+c,c=Object.assign({},s.headers),i=c,(a=a)&&(i["X-Firebase-GMPID"]=a),a=c,null!==(o=o)&&0<o.length&&(a.Authorization="Firebase "+o),r=r,c["X-Firebase-Storage-Version"]="webjs/"+(null!=r?r:"AppManager"),r=c,null!==(e=e)&&(r["X-Firebase-AppCheck"]=e),new gx(l,s.method,c,s.body,s.successCodes,s.additionalRetryCodes,s.handler,s.errorHandler,s.timeout,s.progressCallback,n,t));return this._requests.add(u),u.getPromise().then(()=>this._requests.delete(u),()=>this._requests.delete(u)),u}var s,a,o,c,l}async makeRequestWithTokens(e,t){var[n,r]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,n,r).getPromise()}}const vD="@firebase/storage";function yD(e,t,n){return e=ae(e),t=t,n=n,(e=e)._throwIfRoot("uploadBytesResumable"),new sD(e,new kx(t),n)}function _D(e){return function(e){e._throwIfRoot("getMetadata");var t=Kx(e.storage,e._location,xx());return e.storage.makeRequestWithTokens(t,iD)}(e=ae(e))}function wD(e,t){return fD(e=ae(e),t)}function bD(e,t,n,r={}){!function(e,t,n,r={}){e.host=`${t}:${n}`,e._protocol="http";var i=r["mockUserToken"];i&&(e._overrideAuthToken="string"==typeof i?i:_(i,e.app.options.projectId))}(e,t,n,r)}function ID(e,{instanceIdentifier:t}){var n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new mD(n,r,i,t,Ye)}ze(new oe("storage",ID,"PUBLIC").setMultipleInstances(!0)),et(vD,"0.10.1",""),et(vD,"0.10.1","esm2017");class TD{constructor(e,t,n){this._delegate=e,this.task=t,this.ref=n}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class ED{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new TD(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new TD(e,this,this._ref))},e)}on(e,t,n,r){let i=void 0;return t&&(i="function"==typeof t?e=>t(new TD(e,this,this._ref)):{next:t.next?e=>t.next(new TD(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,i,n||void 0,r||void 0)}}class kD{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new SD(e,this._service))}get items(){return this._delegate.items.map(e=>new SD(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class SD{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=dD(this._delegate,e);return new SD(t,this.storage)}get root(){return new SD(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new SD(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new ED(yD(this._delegate,e,t),this)}putString(e,t=_x.RAW,n){this._throwIfRoot("putString");var r=bx(t,e);const i=Object.assign({},n);return null==i.contentType&&null!=r.contentType&&(i.contentType=r.contentType),new ED(new sD(this._delegate,new kx(r.data,!0),i),this)}listAll(){return oD(ae(this._delegate)).then(e=>new kD(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,cD(t=ae(t),e).then(e=>new kD(e,this.storage));var t}getMetadata(){return _D(this._delegate)}updateMetadata(e){return lD(ae(this._delegate),e)}getDownloadURL(){return uD(ae(this._delegate))}delete(){return this._throwIfRoot("delete"),hD(ae(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw rx(e)}}class CD{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(AD(e))throw tx("ref() expected a child path but got a URL, use refFromURL instead.");return new SD(wD(this._delegate,e),this)}refFromURL(e){if(!AD(e))throw tx("refFromURL() expected a full URL but got a child path, use ref() instead.");try{ax.makeFromUrl(e,this._delegate.host)}catch(e){throw tx("refFromUrl() expected a valid full URL but got an invalid one.")}return new SD(wD(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,n={}){bD(this._delegate,e,t,n)}}function AD(e){return/^[A-Za-z]+:\/\//.test(e)}function ND(e,{instanceIdentifier:t}){var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("storage").getImmediate({identifier:t});return new CD(n,r)}jR=wt,$R={TaskState:Zx,TaskEvent:Xx,StringFormat:_x,Storage:CD,Reference:SD},jR.INTERNAL.registerComponent(new oe("storage-compat",ND,"PUBLIC").setServiceProps($R).setMultipleInstances(!0)),jR.registerVersion("@firebase/storage-compat","0.2.1");const RD="@firebase/performance",xD="0.6.1",DD=xD,PD="FB-PERF-TRACE-MEASURE",OD="@firebase/performance/config",MD="@firebase/performance/configexpire";var LD,FD,UD,qD="Performance";const VD=new x("performance",qD,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),BD=new me(qD);BD.logLevel=g.INFO;let jD,$D;class KD{constructor(e){if(!(this.window=e))throw VD.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay)}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,n){this.performance&&this.performance.measure&&this.performance.measure(e,t,n)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&N()?!!C()||(BD.info("IndexedDB is not supported by current browswer"),!1):(BD.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,n){if(this.PerformanceObserver){const t=new this.PerformanceObserver(e=>{for(const t of e.getEntries())n(t)});t.observe({entryTypes:[e]})}}static getInstance(){return void 0===jD&&(jD=new KD($D)),jD}}let WD;function zD(e,t){var n=e.length-t.length;if(n<0||1<n)throw VD.create("invalid String merger input");const r=[];for(let i=0;i<e.length;i++)r.push(e.charAt(i)),t.length>i&&r.push(t.charAt(i));return r.join("")}let GD;class HD{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=zD("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=zD("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return void 0===GD&&(GD=new HD),GD}}(It=LD=LD||{})[It.UNKNOWN=0]="UNKNOWN",It[It.VISIBLE=1]="VISIBLE",It[It.HIDDEN=2]="HIDDEN";const QD=["firebase_","google_","ga_"],YD=new RegExp("^[a-zA-Z]\\w*$");function JD(){switch(KD.getInstance().document.visibilityState){case"visible":return LD.VISIBLE;case"hidden":return LD.HIDDEN;default:return LD.UNKNOWN}}function XD(e){var t=null===(t=e.options)||void 0===t?void 0:t.appId;if(!t)throw VD.create("no app id");return t}const ZD="0.0.1",eP={loggingEnabled:!0},tP="FIREBASE_INSTALLATIONS_AUTH";function nP(e,t){var r,i,n=function(){const e=KD.getInstance().localStorage;if(e){var t=e.getItem(MD);if(t&&function(e){return Number(e)>Date.now()}(t)){t=e.getItem(OD);if(t)try{return JSON.parse(t)}catch(e){return}}}}();return n?(iP(n),Promise.resolve()):(i=t,function(e){const t=e.getToken();return t.then(e=>{}),t}((r=e).installations).then(e=>{var t=function(e){var t=null===(t=e.options)||void 0===t?void 0:t.projectId;if(!t)throw VD.create("no project id");return t}(r.app),n=function(e){var t=null===(t=e.options)||void 0===t?void 0:t.apiKey;if(!t)throw VD.create("no api key");return t}(r.app),n=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=${n}`,{method:"POST",headers:{Authorization:`${tP} ${e}`},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:XD(r.app),app_version:DD,sdk_version:ZD})});return fetch(n).then(e=>{if(e.ok)return e.json();throw VD.create("RC response not ok")})}).catch(()=>{BD.info(rP)}).then(iP).then(e=>function(e){const t=KD.getInstance().localStorage;e&&t&&(t.setItem(OD,JSON.stringify(e)),t.setItem(MD,String(Date.now()+60*HD.getInstance().configTimeToLive*60*1e3)))}(e),()=>{}))}const rP="Could not fetch config, will use default configs";function iP(e){if(!e)return e;const t=HD.getInstance();var n=e.entries||{};return void 0!==n.fpr_enabled?t.loggingEnabled="true"===String(n.fpr_enabled):t.loggingEnabled=eP.loggingEnabled,n.fpr_log_source?t.logSource=Number(n.fpr_log_source):eP.logSource&&(t.logSource=eP.logSource),n.fpr_log_endpoint_url?t.logEndPointUrl=n.fpr_log_endpoint_url:eP.logEndPointUrl&&(t.logEndPointUrl=eP.logEndPointUrl),n.fpr_log_transport_key?t.transportKey=n.fpr_log_transport_key:eP.transportKey&&(t.transportKey=eP.transportKey),void 0!==n.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(n.fpr_vc_network_request_sampling_rate):void 0!==eP.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=eP.networkRequestsSamplingRate),void 0!==n.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(n.fpr_vc_trace_sampling_rate):void 0!==eP.tracesSamplingRate&&(t.tracesSamplingRate=eP.tracesSamplingRate),t.logTraceAfterSampling=sP(t.tracesSamplingRate),t.logNetworkAfterSampling=sP(t.networkRequestsSamplingRate),e}function sP(e){return Math.random()<=e}let aP=1,oP;function cP(e){var t;return aP=2,oP=oP||(t=e,function(){const n=KD.getInstance().document;return new Promise(e=>{if(n&&"complete"!==n.readyState){const t=()=>{"complete"===n.readyState&&(n.removeEventListener("readystatechange",t),e())};n.addEventListener("readystatechange",t)}else e()})}().then(()=>function(e){const t=e.getId();return t.then(e=>{WD=e}),t}(t.installations)).then(e=>nP(t,e)).then(()=>lP(),()=>lP())),oP}function lP(){aP=3}const uP=1e4,hP=3,dP=1e3;let pP=hP,fP=[],gP=!1;function mP(e){setTimeout(()=>{if(0!==pP)return fP.length?void function(){const e=fP.splice(0,dP),t=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),n={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:HD.getInstance().logSource,log_event:t};!function(e,r){return function(e){var t=HD.getInstance().getFlTransportFullUrl();return fetch(t,{method:"POST",body:JSON.stringify(e)})}(e).then(e=>(e.ok||BD.info("Call to Firebase backend failed."),e.json())).then(e=>{var t=Number(e.nextRequestWaitMillis);let n=uP;isNaN(t)||(n=Math.max(t,n));t=e.logResponseDetails;Array.isArray(t)&&0<t.length&&"RETRY_REQUEST_LATER"===t[0].responseAction&&(fP=[...r,...fP],BD.info("Retry transport request later.")),pP=hP,mP(n)})}(n,e).catch(()=>{fP=[...e,...fP],pP--,BD.info(`Tries left: ${pP}.`),mP(uP)})}():mP(uP)},e)}function vP(t){return(...e)=>{!function(e){if(!e.eventTime||!e.message)throw VD.create("invalid cc log");fP=[...fP,e]}({message:t(...e),eventTime:Date.now()})}}let yP;function _P(e,t){yP=yP||vP(IP),yP(e,t)}function wP(e){var t=HD.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&KD.getInstance().requiredApisAvailable()&&(e.isAuto&&JD()!==LD.VISIBLE||(3===aP?bP(e):cP(e.performanceController).then(()=>bP(e),()=>bP(e))))}function bP(e){var t;!WD||(t=HD.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&setTimeout(()=>_P(e,1),0)}function IP(e,t){return 0===t?(n={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},n={application_info:TP(e.performanceController.app),network_request_metric:n},JSON.stringify(n)):function(e){const t={name:e.name,is_auto:e.isAuto,client_start_time_us:e.startTimeUs,duration_us:e.durationUs};0!==Object.keys(e.counters).length&&(t.counters=e.counters);var n=e.getAttributes();0!==Object.keys(n).length&&(t.custom_attributes=n);n={application_info:TP(e.performanceController.app),trace_metric:t};return JSON.stringify(n)}(e);var n}function TP(e){return{google_app_id:XD(e),app_instance_id:WD,web_app_info:{sdk_version:DD,page_url:KD.getInstance().getUrl(),service_worker_status:null!=(t=KD.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:JD(),effective_connection_type:function(){var e=KD.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}}()},application_process_state:0};var t}const EP=["_fp","_fcp","_fid"];class kP{constructor(e,t,n=!1,r){this.performanceController=e,this.name=t,this.isAuto=n,this.state=1,this.customAttributes={},this.counters={},this.api=KD.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-${this.name}`,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-${this.name}`,this.traceMeasure=r||`${PD}-${this.randomId}-${this.name}`,r&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw VD.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw VD.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),wP(this)}record(e,t,n){if(e<=0)throw VD.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw VD.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),n&&n.attributes&&(this.customAttributes=Object.assign({},n.attributes)),n&&n.metrics)for(const r of Object.keys(n.metrics))isNaN(Number(n.metrics[r]))||(this.counters[r]=Math.floor(Number(n.metrics[r])));wP(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(r=e,i=this.name,0===r.length||100<r.length||!(i&&i.startsWith("_wt_")&&-1<EP.indexOf(r))&&r.startsWith("_"))throw VD.create("invalid custom metric name",{customMetricName:e});var n,r,i;this.counters[e]=(t=null!=t?t:0,(n=Math.floor(t))<t&&BD.info(`Metric value should be an Integer, setting the value as : ${n}.`),n)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var n,r,i=!(0===(n=e).length||40<n.length)&&(!QD.some(e=>n.startsWith(e))&&!!n.match(YD)),s=0!==(r=t).length&&r.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw VD.create("invalid attribute name",{attributeName:e});if(!s)throw VD.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,n,r){var i=KD.getInstance().getUrl();if(i){const s=new kP(e,"_wt_"+i,!0);i=Math.floor(1e3*KD.getInstance().getTimeOrigin());s.setStartTime(i),t&&t[0]&&(s.setDuration(Math.floor(1e3*t[0].duration)),s.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),s.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),s.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));n&&((i=n.find(e=>"first-paint"===e.name))&&i.startTime&&s.putMetric("_fp",Math.floor(1e3*i.startTime)),(i=n.find(e=>"first-contentful-paint"===e.name))&&i.startTime&&s.putMetric("_fcp",Math.floor(1e3*i.startTime)),r&&s.putMetric("_fid",Math.floor(1e3*r))),wP(s)}}static createUserTimingTrace(e,t){wP(new kP(e,t,!1,t))}}function SP(e,t){const n=t;var r,i,s;n&&void 0!==n.responseStart&&(s=KD.getInstance().getTimeOrigin(),r=Math.floor(1e3*(n.startTime+s)),i=n.responseStart?Math.floor(1e3*(n.responseStart-n.startTime)):void 0,s=Math.floor(1e3*(n.responseEnd-n.startTime)),function(e){const t=HD.getInstance();var n,r,i;t.instrumentationEnabled&&(n=e.url,r=t.logEndPointUrl.split("?")[0],i=t.flTransportEndpointUrl.split("?")[0],n!==r&&n!==i&&t.loggingEnabled&&t.logNetworkAfterSampling&&setTimeout(()=>_P(e,0),0))}({performanceController:e,url:n.name&&n.name.split("?")[0],responsePayloadBytes:n.transferSize,startTimeUs:r,timeToResponseInitiatedUs:i,timeToResponseCompletedUs:s}))}const CP=5e3;function AP(e){WD&&(setTimeout(()=>function(n){const e=KD.getInstance(),r=e.getEntriesByType("navigation"),i=e.getEntriesByType("paint");if(e.onFirstInputDelay){let t=setTimeout(()=>{kP.createOobTrace(n,r,i),t=void 0},CP);e.onFirstInputDelay(e=>{t&&(clearTimeout(t),kP.createOobTrace(n,r,i,e))})}else kP.createOobTrace(n,r,i)}(e),0),setTimeout(()=>function(t){const e=KD.getInstance(),n=e.getEntriesByType("resource");for(const r of n)SP(t,r);e.setupObserver("resource",e=>SP(t,e))}(e),0),setTimeout(()=>function(t){const e=KD.getInstance(),n=e.getEntriesByType("measure");for(const r of n)NP(t,r);e.setupObserver("measure",e=>NP(t,e))}(e),0))}function NP(e,t){const n=t.name;n.substring(0,PD.length)!==PD&&kP.createUserTimingTrace(e,n)}class RP{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),KD.getInstance().requiredApisAvailable()?A().then(e=>{e&&(gP||(mP(5500),gP=!0),cP(this).then(()=>AP(this),()=>AP(this)),this.initialized=!0)}).catch(e=>{BD.info(`Environment doesn't support IndexedDB: ${e}`)}):BD.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){HD.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return HD.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){HD.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return HD.getInstance().dataCollectionEnabled}}const xP="[DEFAULT]";const DP=(e,{options:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate();if(n.name!==xP)throw VD.create("FB not default");if("undefined"==typeof window)throw VD.create("no window");e=window,$D=e;const i=new RP(n,r);return i._init(t),i};ze(new oe("performance",DP,"PUBLIC")),et(RD,xD),et(RD,xD,"esm2017");class PP{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=ae(t),new kP(t,e);var t}}function OP(e){var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("performance").getImmediate();return new PP(t,n)}(FD=wt).INTERNAL.registerComponent(new oe("performance-compat",OP,"PUBLIC")),FD.registerVersion("@firebase/performance-compat","0.2.1");const MP="@firebase/remote-config";class LP{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}const FP=new x("remoteconfig","Remote Config",{"registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out. Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser"});const UP=["1","true","t","yes","y","on"];class qP{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=UP.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return isNaN(e)&&(e=0),e}getSource(){return this._source}}async function VP(e){const t=ae(e);var[n,r]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(n&&n.config&&n.eTag&&n.eTag!==r)&&(await Promise.all([t._storageCache.setActiveConfig(n.config),t._storage.setActiveConfigEtag(n.eTag)]),!0)}function BP(e){const t=ae(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function jP(t){const n=ae(t),e=new LP;setTimeout(async()=>{e.abort()},n.settings.fetchTimeoutMillis);try{await n._client.fetch({cacheMaxAgeMillis:n.settings.minimumFetchIntervalMillis,signal:e}),await n._storageCache.setLastFetchStatus("success")}catch(e){var r=(i="fetch-throttle",(t=e)instanceof R&&-1!==t.code.indexOf(i)?"throttle":"failure");throw await n._storageCache.setLastFetchStatus(r),e}var i}function $P(n){const e=ae(n);return[t={},r={}]=[e._storageCache.getActiveConfig(),e.defaultConfig],Object.keys(Object.assign(Object.assign({},t),r)).reduce((e,t)=>(e[t]=KP(n,t),e),{});var t,r}function KP(e,t){const n=ae(e);n._isInitializationComplete||n._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value.");var r=n._storageCache.getActiveConfig();return r&&void 0!==r[t]?new qP("remote",r[t]):n.defaultConfig&&void 0!==n.defaultConfig[t]?new qP("default",String(n.defaultConfig[t])):(n._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new qP("static"))}class WP{constructor(e,t,n,r){this.client=e,this.storage=t,this.storageCache=n,this.logger=r}isCachedDataFresh(e,t){if(!t)return this.logger.debug("Config fetch cache check. Cache unpopulated."),!1;var n=Date.now()-t,r=n<=e;return this.logger.debug("Config fetch cache check."+` Cache age millis: ${n}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${r}.`),r}async fetch(e){var[t,n]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(n&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return n;e.eTag=n&&n.eTag;n=await this.client.fetch(e);const r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===n.status&&r.push(this.storage.setLastSuccessfulFetchResponse(n)),await Promise.all(r),n}}class zP{constructor(e,t,n,r,i,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=n,this.projectId=r,this.apiKey=i,this.appId=s}async fetch(n){var e,[t,r]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),i=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=${this.apiKey}`,s={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":n.eTag||"*"},r={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:r,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language},r={method:"POST",headers:s,body:JSON.stringify(r)},i=fetch(i,r),r=new Promise((e,t)=>{n.signal.addEventListener(()=>{const e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let a;try{await Promise.race([i,r]),a=await i}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),FP.create(t,{originalErrorMessage:null==e?void 0:e.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let c,l;if(200===a.status){let e;try{e=await a.json()}catch(e){throw FP.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}c=e.entries,l=e.state}if("INSTANCE_STATE_UNSPECIFIED"===l?o=500:"NO_CHANGE"===l?o=304:"NO_TEMPLATE"!==l&&"EMPTY_CONFIG"!==l||(c={}),304!==o&&200!==o)throw FP.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:c}}}class GP{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:e,backoffCount:n}){var i,s;i=t.signal,s=e,await new Promise((e,t)=>{var n=Math.max(s-Date.now(),0);const r=setTimeout(e,n);i.addEventListener(()=>{clearTimeout(r),t(FP.create("fetch-throttle",{throttleEndTimeMillis:s}))})});try{var r=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),r}catch(e){if(!function(e){if(e instanceof R&&e.customData){var t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}}(e))throw e;r={throttleEndTimeMillis:Date.now()+se(n),backoffCount:n+1};return await this.storage.setThrottleMetadata(r),this.attemptFetch(t,r)}}}class HP{constructor(e,t,n,r,i){this.app=e,this._client=t,this._storageCache=n,this._storage=r,this._logger=i,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}}function QP(e,t){var n=e.target.error||void 0;return FP.create(t,{originalErrorMessage:n&&(null==n?void 0:n.message)})}const YP="app_namespace_store";class JP{constructor(e,t,n,r=function(){return new Promise((t,n)=>{try{const e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{n(QP(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{const t=e.target.result;0===e.oldVersion&&t.createObjectStore(YP,{keyPath:"compositeKey"})}}catch(e){n(FP.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})}()){this.appId=e,this.appName=t,this.namespace=n,this.openDbPromise=r}getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}async get(a){const o=await this.openDbPromise;return new Promise((n,t)=>{const e=o.transaction([YP],"readonly"),r=e.objectStore(YP);var i=this.createCompositeKey(a);try{const s=r.get(i);s.onerror=e=>{t(QP(e,"storage-get"))},s.onsuccess=e=>{var t=e.target.result;n(t?t.value:void 0)}}catch(e){t(FP.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async set(a,o){const c=await this.openDbPromise;return new Promise((e,t)=>{const n=c.transaction([YP],"readwrite"),r=n.objectStore(YP);var i=this.createCompositeKey(a);try{const s=r.put({compositeKey:i,value:o});s.onerror=e=>{t(QP(e,"storage-set"))},s.onsuccess=()=>{e()}}catch(e){t(FP.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async delete(a){const o=await this.openDbPromise;return new Promise((e,t)=>{const n=o.transaction([YP],"readwrite"),r=n.objectStore(YP);var i=this.createCompositeKey(a);try{const s=r.delete(i);s.onerror=e=>{t(QP(e,"storage-delete"))},s.onsuccess=()=>{e()}}catch(e){t(FP.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class XP{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),n=this.storage.getActiveConfig(),e=await e;e&&(this.lastFetchStatus=e);t=await t;t&&(this.lastSuccessfulFetchTimestampMillis=t);n=await n;n&&(this.activeConfig=n)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}}async function ZP(){if(!C())return!1;try{return await A()}catch(e){return!1}}ze(new oe("remote-config",function(e,{instanceIdentifier:t}){var n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate();if("undefined"==typeof window)throw FP.create("registration-window");if(!C())throw FP.create("indexed-db-unavailable");var{projectId:i,apiKey:s,appId:a}=n.options;if(!i)throw FP.create("registration-project-id");if(!s)throw FP.create("registration-api-key");if(!a)throw FP.create("registration-app-id");t=t||"firebase";const o=new JP(a,n.name,t),c=new XP(o),l=new me(MP);l.logLevel=g.ERROR;a=new zP(r,Ye,t,i,s,a),a=new GP(a,o),a=new WP(a,o,c,l),a=new HP(n,a,c,o,l);return BP(a),a},"PUBLIC").setMultipleInstances(!0)),et(MP,"0.4.1"),et(MP,"0.4.1","esm2017");class eO{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return VP(this._delegate)}ensureInitialized(){return BP(this._delegate)}fetch(){return jP(this._delegate)}fetchAndActivate(){return async function(e){return await jP(e=ae(e)),VP(e)}(this._delegate)}getAll(){return $P(this._delegate)}getBoolean(e){return KP(ae(this._delegate),e).asBoolean()}getNumber(e){return KP(ae(this._delegate),e).asNumber()}getString(e){return KP(ae(this._delegate),e).asString()}getValue(e){return KP(this._delegate,e)}setLogLevel(e){!function(e,t){const n=ae(e);switch(t){case"debug":n._logger.logLevel=g.DEBUG;break;case"silent":n._logger.logLevel=g.SILENT;break;default:n._logger.logLevel=g.ERROR}}(this._delegate,e)}}function tO(e,{instanceIdentifier:t}){var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("remote-config").getImmediate({identifier:t});return new eO(n,r)}return(UD=wt).INTERNAL.registerComponent(new oe("remoteConfig-compat",tO,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:ZP})),UD.registerVersion("@firebase/remote-config-compat","0.2.1"),console.warn("\nIt looks like you're using the development build of the Firebase JS SDK.\nWhen deploying Firebase apps to production, it is advisable to only import\nthe individual SDK components you intend to use.\n\nFor the CDN builds, these are available in the following manner\n(replace <PACKAGE> with the name of a component - i.e. auth, database, etc):\n\nhttps://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js\n"),wt.registerVersion("firebase","9.16.0","compat-cdn"),wt});
  10. //# sourceMappingURL=firebase-compat.js.map