1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,92953,97427,8070,83877,e=>{"use strict";var t,r;let n,i,s;e.i(47167);let a=function(e){let t=[],r=0;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:((64512&i)==55296&&n+1<e.length&&(64512&e.charCodeAt(n+1))==56320?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n)),t[r++]=i>>18|240,t[r++]=i>>12&63|128):t[r++]=i>>12|224,t[r++]=i>>6&63|128),t[r++]=63&i|128)}return t},o=function(e){let t=[],r=0,n=0;for(;r<e.length;){let i=e[r++];if(i<128)t[n++]=String.fromCharCode(i);else if(i>191&&i<224){let s=e[r++];t[n++]=String.fromCharCode((31&i)<<6|63&s)}else if(i>239&&i<365){let s=((7&i)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(s>>10)),t[n++]=String.fromCharCode(56320+(1023&s))}else{let s=e[r++],a=e[r++];t[n++]=String.fromCharCode((15&i)<<12|(63&s)<<6|63&a)}}return t.join("")},l={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(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();let r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){let i=e[t],s=t+1<e.length,a=s?e[t+1]:0,o=t+2<e.length,l=o?e[t+2]:0,u=i>>2,h=(3&i)<<4|a>>4,c=(15&a)<<2|l>>6,d=63&l;!o&&(d=64,s||(c=64)),n.push(r[u],r[h],r[c],r[d])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(a(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):o(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();let r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){let i=r[e.charAt(t++)],s=t<e.length?r[e.charAt(t)]:0,a=++t<e.length?r[e.charAt(t)]:64,o=++t<e.length?r[e.charAt(t)]:64;if(++t,null==i||null==s||null==a||null==o)throw new u;let l=i<<2|s>>4;if(n.push(l),64!==a){let e=s<<4&240|a>>2;if(n.push(e),64!==o){let e=a<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class u extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let h=function(e){let t=a(e);return l.encodeByteArray(t,!0)},c=function(e){return h(e).replace(/\./g,"")},d=function(e){try{return l.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function f(){return"u">typeof self?self:"u">typeof window?window:e.g}let p=()=>{try{return{config:{apiKey:"AIzaSyA-EaVcRVsizyDVkV1fjdQObu_1Sm4pGuU",appId:"1:578273208011:web:0a28a7be33f41ea86a1d4e",authDomain:"vernal-centaur-474517-q3.firebaseapp.com",databaseURL:"",messagingSenderId:"578273208011",projectId:"vernal-centaur-474517-q3",storageBucket:"vernal-centaur-474517-q3.firebasestorage.app"},emulatorHosts:{}}}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}},g=e=>p()?.emulatorHosts?.[e],m=e=>{let t=g(e);if(!t)return;let r=t.lastIndexOf(":");if(r<=0||r+1===t.length)throw Error(`Invalid host ${t} with no separate hostname and port!`);let n=parseInt(t.substring(r+1),10);return"["===t[0]?[t.substring(1,r-1),n]:[t.substring(0,r),n]},y=()=>p()?.config,v=e=>p()?.[`_${e}`];class w{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,r))}}}function _(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}async function b(e){return(await fetch(e,{credentials:"include"})).ok}function I(e,t){if(e.uid)throw Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(!i)throw Error("mockUserToken must contain 'sub' or 'user_id' field!");let s={iss:`https://securetoken.google.com/${r}`,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}},...e};return[c(JSON.stringify({alg:"none",type:"JWT"})),c(JSON.stringify(s)),""].join(".")}let E={},T=!1;function S(e,t){if("u"<typeof window||"u"<typeof document||!_(window.location.host)||E[e]===t||E[e]||T)return;function r(e){return`__firebase__banner__${e}`}E[e]=t;let n="__firebase__banner",i=function(){let e={prod:[],emulator:[]};for(let t of Object.keys(E))E[t]?e.emulator.push(t):e.prod.push(t);return e}().prod.length>0;function s(){let e,t,s=(e=document.getElementById(n),t=!1,e||((e=document.createElement("div")).setAttribute("id",n),t=!0),{created:t,element:e}),a=r("text"),o=document.getElementById(a)||document.createElement("span"),l=r("learnmore"),u=document.getElementById(l)||document.createElement("a"),h=r("preprendIcon"),
1c=document.getElementById(h)||document.createElementNS("http://www.w3.org/2000/svg","svg");if(s.created){let e,t=s.element;t.style.display="flex",t.style.background="#7faaf0",t.style.position="fixed",t.style.bottom="5px",t.style.left="5px",t.style.padding=".5em",t.style.borderRadius="5px",t.style.alignItems="center",u.setAttribute("id",l),u.innerText="Learn more",u.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",u.setAttribute("target","__blank"),u.style.paddingLeft="5px",u.style.textDecoration="underline";let r=((e=document.createElement("span")).style.cursor="pointer",e.style.marginLeft="16px",e.style.fontSize="24px",e.innerHTML=" ×",e.onclick=()=>{let e;T=!0,(e=document.getElementById(n))&&e.remove()},e);c.setAttribute("width","24"),c.setAttribute("id",h),c.setAttribute("height","24"),c.setAttribute("viewBox","0 0 24 24"),c.setAttribute("fill","none"),c.style.marginLeft="-6px",t.append(c,o,u,r),document.body.appendChild(t)}i?(o.innerText="Preview backend disconnected.",c.innerHTML=`<g clip-path="url(#clip0_6013_33858)"> 2<path d="M4.8 17.6L12 5.6L19.2 17.6H4.8ZM6.91667 16.4H17.0833L12 7.93333L6.91667 16.4ZM12 15.6C12.1667 15.6 12.3056 15.5444 12.4167 15.4333C12.5389 15.3111 12.6 15.1667 12.6 15C12.6 14.8333 12.5389 14.6944 12.4167 14.5833C12.3056 14.4611 12.1667 14.4 12 14.4C11.8333 14.4 11.6889 14.4611 11.5667 14.5833C11.4556 14.6944 11.4 14.8333 11.4 15C11.4 15.1667 11.4556 15.3111 11.5667 15.4333C11.6889 15.5444 11.8333 15.6 12 15.6ZM11.4 13.6H12.6V10.4H11.4V13.6Z" fill="#212121"/> 3</g> 4<defs> 5<clipPath id="clip0_6013_33858"> 6<rect width="24" height="24" fill="white"/> 7</clipPath> 8</defs>`):(c.innerHTML=`<g clip-path="url(#clip0_6083_34804)"> 9<path d="M11.4 15.2H12.6V11.2H11.4V15.2ZM12 10C12.1667 10 12.3056 9.94444 12.4167 9.83333C12.5389 9.71111 12.6 9.56667 12.6 9.4C12.6 9.23333 12.5389 9.09444 12.4167 8.98333C12.3056 8.86111 12.1667 8.8 12 8.8C11.8333 8.8 11.6889 8.86111 11.5667 8.98333C11.4556 9.09444 11.4 9.23333 11.4 9.4C11.4 9.56667 11.4556 9.71111 11.5667 9.83333C11.6889 9.94444 11.8333 10 12 10ZM12 18.4C11.1222 18.4 10.2944 18.2333 9.51667 17.9C8.73889 17.5667 8.05556 17.1111 7.46667 16.5333C6.88889 15.9444 6.43333 15.2611 6.1 14.4833C5.76667 13.7056 5.6 12.8778 5.6 12C5.6 11.1111 5.76667 10.2833 6.1 9.51667C6.43333 8.73889 6.88889 8.06111 7.46667 7.48333C8.05556 6.89444 8.73889 6.43333 9.51667 6.1C10.2944 5.76667 11.1222 5.6 12 5.6C12.8889 5.6 13.7167 5.76667 14.4833 6.1C15.2611 6.43333 15.9389 6.89444 16.5167 7.48333C17.1056 8.06111 17.5667 8.73889 17.9 9.51667C18.2333 10.2833 18.4 11.1111 18.4 12C18.4 12.8778 18.2333 13.7056 17.9 14.4833C17.5667 15.2611 17.1056 15.9444 16.5167 16.5333C15.9389 17.1111 15.2611 17.5667 14.4833 17.9C13.7167 18.2333 12.8889 18.4 12 18.4ZM12 17.2C13.4444 17.2 14.6722 16.6944 15.6833 15.6833C16.6944 14.6722 17.2 13.4444 17.2 12C17.2 10.5556 16.6944 9.32778 15.6833 8.31667C14.6722 7.30555 13.4444 6.8 12 6.8C10.5556 6.8 9.32778 7.30555 8.31667 8.31667C7.30556 9.32778 6.8 10.5556 6.8 12C6.8 13.4444 7.30556 14.6722 8.31667 15.6833C9.32778 16.6944 10.5556 17.2 12 17.2Z" fill="#212121"/> 10</g> 11<defs> 12<clipPath id="clip0_6083_34804"> 13<rect width="24" height="24" fill="white"/> 14</clipPath> 15</defs>`,o.innerText="Preview backend running in this workspace."),o.setAttribute("id",a)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",s):s()}function C(){return"u">typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function A(){return"u">typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(C())}function k(){let t=p()?.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(e.g.process)}catch(e){return!1}}function x(){return"u">typeof window||N()}function N(){return"u">typeof WorkerGlobalScope&&"u">typeof self&&self instanceof WorkerGlobalScope}function D(){return"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent}function R(){let e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function O(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function P(){let e=C();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}function L(){return!k()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function M(){return!k()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function F(){try{return"object"==typeof indexedDB}catch(e){return!1}}function U(){return new Promise((e,t)=>
15{try{let r=!0,n="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(n);i.onsuccess=()=>{i.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},i.onupgradeneeded=()=>{r=!1},i.onerror=()=>{t(i.error?.message||"")}}catch(e){t(e)}})}class V extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,V.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,B.prototype.create)}}class B{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r,n;let i=t[0]||{},s=`${this.service}/${e}`,a=this.errors[e],o=a?(r=a,n=i,r.replace(q,(e,t)=>{let r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",l=`${this.serviceName}: ${o} (${s}).`;return new V(s,l,i)}}let q=/\{\$([^}]+)}/g;function j(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function z(e,t){if(e===t)return!0;let r=Object.keys(e),n=Object.keys(t);for(let i of r){if(!n.includes(i))return!1;let r=e[i],s=t[i];if($(r)&&$(s)){if(!z(r,s))return!1}else if(r!==s)return!1}for(let e of n)if(!r.includes(e))return!1;return!0}function $(e){return null!==e&&"object"==typeof e}function K(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function G(e){let t={};return e.replace(/^\?/,"").split("&").forEach(e=>{if(e){let[r,n]=e.split("=");
15t[decodeURIComponent(r)]=decodeURIComponent(n)}}),t}function H(e){let t=e.indexOf("?");if(!t)return"";let r=e.indexOf("#",t);return e.substring(t,r>0?r:void 0)}function W(e,t){let r=new Q(e,t);return r.subscribe.bind(r)}class Q{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(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw Error("Missing Observer.");void 0===(n=!function(e,t){if("object"!=typeof e||null===e)return!1;for(let r of t)if(r in e&&"function"==typeof e[r])return!0;return!1}(e,["next","error","complete"])?{next:e,error:t,complete:r}:e).next&&(n.next=J),void 0===n.error&&(n.error=J),void 0===n.complete&&(n.complete=J);let i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"u">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 J(){}function Y(e){return e&&e._delegate?e._delegate:e}e.s(["Deferred",()=>w,"ErrorFactory",()=>B,"FirebaseError",()=>V,"base64Decode",()=>d,"base64urlEncodeWithoutPadding",()=>c,"createMockUserToken",()=>I,"createSubscribe",()=>W,"deepEqual",()=>z,"extractQuerystring",()=>H,"getDefaultAppConfig",()=>y,"getDefaultEmulatorHost",()=>g,"getDefaultEmulatorHostnameAndPort",()=>m,"getExperimentalSetting",()=>v,"getGlobal",()=>f,"getModularInstance",()=>Y,"getUA",()=>C,"isBrowser",()=>x,"isBrowserExtension",()=>R,"isCloudWorkstation",()=>_,"isCloudflareWorker",()=>D,"isEmpty",()=>j,"isIE",()=>P,"isIndexedDBAvailable",()=>F,"isMobileCordova",()=>A,"isReactNative",()=>O,"isSafari",()=>L,"isSafariOrWebkit",()=>M,"isWebWorker",()=>N,"pingServer",()=>b,"querystring",()=>K,"querystringDecode",()=>G,"updateEmulatorBanner",()=>S,"validateIndexedDBOpenable",()=>U],97427);class X{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let Z="[DEFAULT]";class ee{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){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let e=new w;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{let r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){let t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(t)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}if(r)return null;throw Error(`Service ${this.name} is not available`)}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:Z})}catch(e){}for(let[e,t]of this.instancesDeferred.entries()){let r=this.normalizeInstanceIdentifier(e);try{let e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e=Z){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let 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=Z){return this.instances.has(e)}getOptions(e=Z){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[e,t]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(e)&&t.resolve(n);return n}onInit(e,t){let r=this.normalizeInstanceIdentifier(t),n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);let i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){var r;let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===Z?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{}return n||null}normalizeInstanceIdentifier(e=Z){return this.component?this.component.multipleInstances?e:Z:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class et{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new ee(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}e.s(["Component",()=>X,"ComponentContainer",()=>et],8070);let er=[];(t=r||(r={}))[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT";let en={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},ei=r.INFO,es={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},ea=(e,t,...r)=>{if(t<e.logLevel)return;let n=new Date().toISOString(),i=es[t];if(i)console[i](`[${n}] ${e.name}:`,...r);
15else throw Error(`Attempted to log a message with an invalid logType (value: ${t})`)};class eo{constructor(e){this.name=e,this._logLevel=ei,this._logHandler=ea,this._userLogHandler=null,er.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?en[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw 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,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}function el(e){er.forEach(t=>{t.setLogLevel(e)})}function eu(e,t){for(let n of er){let i=null;t&&t.level&&(i=en[t.level]),null===e?n.userLogHandler=null:n.userLogHandler=(t,n,...s)=>{let a=s.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(" ");n>=(i??t.logLevel)&&e({level:r[n].toLowerCase(),message:a,args:s,type:t.name})}}}e.s(["LogLevel",()=>r,"Logger",()=>eo,"setLogLevel",()=>el,"setUserLogHandler",()=>eu],83877);let eh=new WeakMap,ec=new WeakMap,ed=new WeakMap,ef=new WeakMap,ep=new WeakMap,eg={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return ec.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ed.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return em(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function em(e){if(e instanceof IDBRequest){let t;return(t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{t(em(e.result)),n()},s=()=>{r(e.error),n()};e.addEventListener("success",i),e.addEventListener("error",s)})).then(t=>{t instanceof IDBCursor&&eh.set(t,e)}).catch(()=>{}),ep.set(t,e),t}if(ef.has(e))return ef.get(e);let t=function(e){if("function"==typeof e)return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(ey(this),t),em(eh.get(this))}:function(...t){return em(e.apply(ey(this),t))}:function(t,...r){let n=e.call(ey(this),t,...r);return ed.set(n,t.sort?t.sort():[t]),em(n)};return e instanceof IDBTransaction&&function(e){if(ec.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{t(),n()},s=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});ec.set(e,t)}(e),(n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(t=>e instanceof t)?new Proxy(e,eg):e}(e);return t!==e&&(ef.set(e,t),ep.set(t,e)),t}let ey=e=>ep.get(e),ev=["get","getKey","getAll","getAllKeys","count"],ew=["put","add","delete","clear"],e_=new Map;function eb(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(e_.get(t))return e_.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,i=ew.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(i||ev.includes(r)))return;let s=async function(e,...t){let s=this.transaction(e,i?"readwrite":"readonly"),a=s.store;
15return n&&(a=a.index(t.shift())),(await Promise.all([a[r](...t),i&&s.done]))[0]};return e_.set(t,s),s}eg={...s=eg,get:(e,t,r)=>eb(e,t)||s.get(e,t,r),has:(e,t)=>!!eb(e,t)||s.has(e,t)};class eI{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{let t;if(t=e.getComponent(),t?.type!=="VERSION")return null;{let t=e.getImmediate();return`${t.library}/${t.version}`}}).filter(e=>e).join(" ")}}let eE="@firebase/app",eT="0.14.7",eS=new eo("@firebase/app"),eC="[DEFAULT]",eA={[eE]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},ek=new Map,ex=new Map,eN=new Map;function eD(e,t){try{e.container.addComponent(t)}catch(r){eS.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function eR(e,t){e.container.addOrOverwriteComponent(t)}function eO(e){let t=e.name;if(eN.has(t))return eS.debug(`There were multiple attempts to register component ${t}.`),!1;for(let r of(eN.set(t,e),ek.values()))eD(r,e);for(let t of ex.values())eD(t,e);return!0}function eP(e,t){let r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function eL(e,t,r=eC){eP(e,t).clearInstance(r)}function eM(e){return void 0!==e.options}function eF(e){return!eM(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function eU(e){return null!=e&&void 0!==e.settings}function eV(){eN.clear()}let eB=new B("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invali
15d-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class eq{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new X("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 eB.create("app-deleted",{appName:this._name})}}function ej(e,t){let r=d(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-new Date().getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class ez extends eq{constructor(e,t,r,n){const i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&ej(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&ej(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"u">typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,eQ(eE,eT,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){eW(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw eB.create("server-app-deleted")}}function e$(e,t={}){let r=e;"object"!=typeof t&&(t={name:t});let n={name:eC,automaticDataCollectionEnabled:!0,...t},i=n.name;if("string"!=typeof i||!i)throw eB.create("bad-app-name",{appName:String(i)});if(r||(r=y()),!r)throw eB.create("no-options");let s=ek.get(i);if(s)if(z(r,s.options)&&z(n,s.config))return s;else throw eB.create("duplicate-app",{appName:i});let a=new et(i);for(let e of eN.values())a.addComponent(e);let o=new eq(r,n,a);return ek.set(i,o),o}function eK(e,t={}){let r;if(x()&&!N())throw eB.create("invalid-server-app-environment");let n=t||{};if(e&&(eM(e)?r=e.options:eF(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),r||(r=y()),!r)throw eB.create("no-options");let i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"u"<typeof FinalizationRegistry)throw eB.create("finalization-registry-not-supported",{});let s=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),a=ex.get(s);if(a)return a.incRefCount(n.releaseOnDeref),a;let o=new et(s);for(let e of eN.values())o.addComponent(e);let l=new ez(r,n,s,o);return ex.set(s,l),l}function eG(e=eC){let t=ek.get(e);if(!t&&e===eC&&y())return e$();if(!t)throw eB.create("no-app",{appName:e});return t}function eH(){return Array.from(ek.values())}async function eW(e){let t=!1,r=e.name;ek.has(r)?(t=!0,ek.delete(r)):ex.has(r)&&0>=e.decRefCount()&&(ex.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function eQ(e,t,r){let n=eA[e]??e;r&&(n+=`-${r}`);let i=n.match(/\s|\//),s=t.match(/\s|\//);if(i||s){let e=[`Unable to register library "${n}" with version "${t}":`];i&&e.push(`library name "${n}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),eS.warn(e.join(" "));return}eO(new X(`${n}-version`,()=>({library:n,version:t}),"VERSION"))}function eJ(e,t){if(null!==e&&"function"!=typeof e)throw eB.create("invalid-log-argument");eu(e,t)}function eY(e){el(e)}let eX="firebase-heartbeat-store",eZ=null;function e0(){return eZ||(eZ=(function(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,1),o=em(a);return n&&a.addEventListener("upgradeneeded",e=>{n(em(a.result),e.oldVersion,e.newVersion,em(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o})("firebase-heartbeat-database",0,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(eX)}catch(e){console.warn(e)}}}).catch(e=>{throw eB.create("idb-open",{originalErrorMessage:e.message})})),eZ}async function e1(e){try{let t=(await e0()).transaction(eX),r=await t.objectStore(eX).get(e6(e));return await t.done,r}catch(e){if(e instanceof V)eS.warn(e.message);else{let t=eB.create("idb-get",{originalErrorMessage:e?.message});eS.warn(t.message)}}}async function e2(e,t){try{let r=(await e0()).transaction(eX,"readwrite"),n=r.objectStore(eX);await n.put(t,e6(e)),await r.done}catch(e){if(e instanceof V)eS.warn(e.message);else{let t=eB.create("idb-set",{originalErrorMessage:e?.message});eS.warn(t.message)}}}function e6(e){return`${e.name}!${e.options.appId}`}class e3{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new e4(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){try{let e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=e5();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===t||this._heartbeatsCache.heartbeats.some(e=>e.date===t))return;if(this._heartbeatsCache.heartbeats.push({date:t,agent:e}),this._heartbeatsCache.heartbeats.length>30){let e=function(e){if(0===e.length)return -1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t}(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(e,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){eS.warn(e)}}async getHeartbeatsHeader(){try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||0===this._heartbeatsCache.heartbeats.length)return"";let e=e5(),{heartbeatsToSend:t,unsentEntries:r}=function(e,t=1024){let r=[],n=e.slice();for(let i of e){let e=r.find(e=>e.agent===i.agent);if(e){if(e.dates.push(i.date),e8(r)>t){e.dates.pop();break}}else if(r.push({agent:i.agent,dates:[i.date]}),e8(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),n=c(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n}catch(e){return eS.warn(e),""}}}function e5(){return new Date().toISOString().substring(0,10)}class e4{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!F()&&U().then(()=>!0).catch(()=>!1)}async read(){if(!await this._canUseIndexedDBPromise)return{heartbeats:[]};{let e=await e1(this.app);return e?.heartbeats?e:{heartbeats:[]}}}async overwrite(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return e2(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return e2(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}}function e8(e){return c(JSON.stringify({version:2,heartbeats:e})).length}eO(new X("platform-logger",e=>new eI(e),"PRIVATE")),eO(new X("heartbeat",e=>new e3(e),"PRIVATE")),eQ(eE,eT,""),eQ(eE,eT,"esm2020"),eQ("fire-js",""),e.s(["SDK_VERSION",()=>"12.8.0","_DEFAULT_ENTRY_NAME",()=>eC,"_addComponent",()=>eD,"_addOrOverwriteComponent",()=>eR,"_apps",()=>ek,"_clearComponents",()=>eV,"_components",()=>eN,"_getProvider",()=>eP,"_isFirebaseApp",()=>eM,"_isFirebaseServerApp",()=>eU,"_isFirebaseServerAppSettings",()=>eF,"_registerComponent",()=>eO,"_removeServiceInstance",()=>eL,"_serverApps",()=>ex,"deleteApp",()=>eW,"getApp",()=>eG,"getApps",()=>eH,"initializeApp",()=>e$,"initializeServerApp",()=>eK,"onLog",()=>eJ,"registerVersion",()=>eQ,"setLogLevel",()=>eY],92953)},51718,18357,e=>{"use strict";var t,r=e.i(92953),n=e.i(97427),i=e.i(83877),s=e.i(8070);function a(){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."}}let o=new n.ErrorFactory("auth","Firebase",a()),l=new i.Logger("@firebase/auth");function u(e,...t){l.logLevel<=i.LogLevel.ERROR&&l.error(`Auth (${r.SDK_VERSION}): ${e}`,...t)}function h(e,...t){throw p(e,...t)}function c(e,...t){return p(e,...t)}function d(e,t,r){let i={...a(),[t]:r};return new n.ErrorFactory("auth","Firebase",i).create(t,{appName:e.n
15ame})}function f(e){return d(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function p(e,...t){if("string"!=typeof e){let r=t[0],n=[...t.slice(1)];return n[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)}return o.create(e,...t)}function g(e,t,...r){if(!e)throw p(t,...r)}function m(e){let t="INTERNAL ASSERTION FAILED: "+e;throw u(t),Error(t)}function y(){return"u">typeof self&&self.location?.href||""}function v(){return"u">typeof self&&self.location?.protocol||null}class w{constructor(e,t){var r;this.shortDelay=e,this.longDelay=t,r="Short delay should be less than long delay!",t>e||m(r),this.isMobile=(0,n.isMobileCordova)()||(0,n.isReactNative)()}get(){return!("u">typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===v()||"https:"===v()||(0,n.isBrowserExtension)()||"connection"in navigator))||navigator.onLine?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function _(e,t){var r,n;r=e.emulator,n="Emulator should always be set here",r||m(n);let{url:i}=e.emulator;return t?`${i}${t.startsWith("/")?t.slice(1):t}`:i}class b{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl?this.fetchImpl:"u">typeof self&&"fetch"in self?self.fetch:"u">typeof globalThis&&globalThis.fetch?globalThis.fetch:"u">typeof fetch?fetch:void m("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"u">typeof self&&"Headers"in self?self.Headers:"u">typeof globalThis&&globalThis.Headers?globalThis.Headers:"u">typeof Headers?Headers:void m("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"u">typeof self&&"Response"in self?self.Response:"u">typeof globalThis&&globalThis.Response?globalThis.Response:"u">typeof Response?Response:void m("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}let I={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:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",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",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",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",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-rec
15aptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},E=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],T=new w(3e4,6e4);function S(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function C(e,t,r,i,s={}){return A(e,s,async()=>{let s={},a={};i&&("GET"===t?a=i:s={body:JSON.stringify(i)});let o=(0,n.querystring)({key:e.config.apiKey,...a}).slice(1),l=await e._getAdditionalHeaders();l["Content-Type"]="application/json",e.languageCode&&(l["X-Firebase-Locale"]=e.languageCode);let u={method:t,headers:l,...s};return(0,n.isCloudflareWorker)()||(u.referrerPolicy="no-referrer"),e.emulatorConfig&&(0,n.isCloudWorkstation)(e.emulatorConfig.host)&&(u.credentials="include"),b.fetch()(await x(e,e.config.apiHost,r,o),u)})}async function A(e,t,r){e._canInitEmulator=!1;let i={...I,...t};try{let t=new N(e),n=await Promise.race([r(),t.promise]);t.clearNetworkTimeout();let s=await n.json();if("needConfirmation"in s)throw D(e,"account-exists-with-different-credential",s);if(n.ok&&!("errorMessage"in s))return s;{let[t,r]=(n.ok?s.errorMessage:s.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===t)throw D(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===t)throw D(e,"email-already-in-use",s);if("USER_DISABLED"===t)throw D(e,"user-disabled",s);let a=i[t]||t.toLowerCase().replace(/[_\s]+/g,"-");if(r)throw d(e,a,r);h(e,a)}}catch(t){if(t instanceof n.FirebaseError)throw t;h(e,"network-request-failed",{message:String(t)})}}async function k(e,t,r,n,i={}){let s=await C(e,t,r,n,i);return"mfaPendingCredential"in s&&h(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function x(e,t,r,n){let i=`${t}${r}?${n}`,s=e.config.emulator?_(e.config,i):`${e.config.apiScheme}://${i}`;return E.includes(r)&&(await e._persistenceManagerAvailable,"COOKIE"===e._getPersistenceType())?e._getPersistence()._getFinalTarget(s).toString():s}class N{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(c(this.auth,"network-request-failed")),T.get())})}}function D(e,t,r){let n={appName:e.name};r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber);let i=c(e,t,n);return i.customData._tokenResponse=r,i}function R(e){return void 0!==e&&void 0!==e.enterprise}class O{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)switch(t.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function P(e,t){return C(e,"GET","/v2/recaptchaConfig",S(e,t))}async function L(e,t){return C(e,"POST","/v1/accounts:delete",t)}async function M(e,t){return C(e,"POST","/v1/accounts:lookup",t)}function F(e){if(e)try{let t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}async function U(e,t=!1){let r=(0,n.getModularInstance)(e),i=await r.getIdToken(t),s=B(i);g(s&&s.exp&&s.auth_time&&s.iat,r.auth,"internal-error");let a="object"==typeof s.firebase?s.firebase:void 0,o=a?.sign_in_provider;return{claims:s,token:i,authTime:F(V(s.auth_time)),issuedAtTime:F(V(s.iat)),expirationTime:F(V(s.exp
15)),signInProvider:o||null,signInSecondFactor:a?.sign_in_second_factor||null}}function V(e){return 1e3*Number(e)}function B(e){let[t,r,i]=e.split(".");if(void 0===t||void 0===r||void 0===i)return u("JWT malformed, contained fewer than 3 sections"),null;try{let e=(0,n.base64Decode)(r);if(!e)return u("Failed to decode base64 JWT payload"),null;return JSON.parse(e)}catch(e){return u("Caught error parsing JWT payload as JSON",e?.toString()),null}}function q(e){let t=B(e);return g(t,"internal-error"),g(void 0!==t.exp,"internal-error"),g(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function j(e,t,r=!1){if(r)return t;try{return await t}catch(t){throw t instanceof n.FirebaseError&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class z{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)return this.errorBackoff=3e4,Math.max(0,(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5);{let e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}}class ${constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=F(this.lastLoginAt),this.creationTime=F(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function K(e){var t,r;let n=e.auth,i=await e.getIdToken(),s=await j(e,M(n,{idToken:i}));g(s?.users.length,n,"internal-error");let a=s.users[0];e._notifyReloadListener(a);let o=a.providerUserInfo?.length?H(a.providerUserInfo):[],l=(t=e.providerData,r=o,[...t.filter(e=>!r.some(t=>t.providerId===e.providerId)),...r]),u=e.isAnonymous,h=!(e.email&&a.passwordHash)&&!l?.length;Object.assign(e,{uid:a.localId,displayName:a.displayName||null,photoURL:a.photoUrl||null,email:a.email||null,emailVerified:a.emailVerified||!1,phoneNumber:a.phoneNumber||null,tenantId:a.tenantId||null,providerData:l,metadata:new $(a.createdAt,a.lastLoginAt),isAnonymous:!!u&&h})}async function G(e){let t=(0,n.getModularInstance)(e);await K(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}function H(e){return e.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}async function W(e,t){let r=await A(e,{},async()=>{let r=(0,n.querystring)({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:i,apiKey:s}=e.config,a=await x(e,i,"/v1/token",`key=${s}`),o=await e._getAdditionalHeaders();o["Content-Type"]="application/x-www-form-urlencoded";let l={method:"POST",headers:o,body:r};return e.emulatorConfig&&(0,n.isCloudWorkstation)(e.emulatorConfig.host)&&(l.credentials="include"),b.fetch()(a,l)});return{accessToken:r.access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token}}async function Q(e,t){return C(e,"POST","/v2/accounts:revokeToken",S(e,t))}class J{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){g(e.idToken,"internal-error"),g(void 0!==e.idToken,"internal-error"),g(void 0!==e.refreshToken,"internal-error");let t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):q(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){g(0!==e.length,"internal-error");let t=q(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(g(this.refreshToken,e,"user-token-expired"),this.refreshToken)?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){let{accessToken:r,refreshToken:n,expiresIn:i}=await W(e,t);this.updateTokensAndExpiration(r,n,Number(i))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){let{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new J;return r&&(g("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(g("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(g("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 J,this.toJSON())}_performRefresh(){return m("not implemented")}}function Y(e,t){g("string"==typeof e||void 0===e,"internal-error",{appName:t})}class X{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new z(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new $(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){let t=await j(this,this.stsTokenManager.getToken(this.auth,e));return g(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return U(this,e)}reload(){return G(this)}_assign(e){this!==e&&(g(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.ph
15otoURL,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=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new X({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){g(!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 r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await K(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if((0,r._isFirebaseServerApp)(this.auth.app))return Promise.reject(f(this.auth));let e=await this.getIdToken();return await j(this,L(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return{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=>({...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){let r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,u=t.lastLoginAt??void 0,{uid:h,emailVerified:c,isAnonymous:d,providerData:f,stsTokenManager:p}=t;g(h&&p,e,"internal-error");let m=J.fromJSON(this.name,p);g("string"==typeof h,e,"internal-error"),Y(r,e.name),Y(n,e.name),g("boolean"==typeof c,e,"internal-error"),g("boolean"==typeof d,e,"internal-error"),Y(i,e.name),Y(s,e.name),Y(a,e.name),Y(o,e.name),Y(l,e.name),Y(u,e.name);let y=new X({uid:h,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:m,createdAt:l,lastLoginAt:u});return f&&Array.isArray(f)&&(y.providerData=f.map(e=>({...e}))),o&&(y._redirectEventId=o),y}static async _fromIdTokenResponse(e,t,r=!1){let n=new J;n.updateFromServerResponse(t);let i=new X({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r});return await K(i),i}static async _fromGetAccountInfoResponse(e,t,r){let n=t.users[0];g(void 0!==n.localId,"internal-error");let i=void 0!==n.providerUserInfo?H(n.providerUserInfo):[],s=!(n.email&&n.passwordHash)&&!i?.length,a=new J;a.updateFromIdToken(r);let o=new X({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s});return Object.assign(o,{uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new $(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash)&&!i?.length}),o}}let Z=new Map;function ee(e){var t,r;t="Expected a class definition",e instanceof Function||m(t);let n=Z.get(e);return n?(r="Instance stored in cache mismatched with class",n instanceof e||m(r)):(n=new e,Z.set(e,n)),n}class et{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){let t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}function er(e,t,r){return`firebase:${e}:${t}:${r}`}et.type="NONE";class en{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;const{config:n,name:i}=this.auth;this.fullUserKey=er(this.userKey,n.apiKey,i),this.fullPersistenceKey=er("persistence",n.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(){let e=await this.persistence._get(this.fullUserKey);if(!e)return null;if("string"==typeof e){let t=await M(this.auth,{idToken:e}).catch(()=>void 0);return t?X._fromGetAccountInfoResponse(this.auth,t,e):null}return X._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;let t=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,r="authUser"){if(!t.length)return new en(ee(et),e,r);let n=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e),i=n[0]||ee(et),s=er(r,e.config.apiKey,e.name),a=null;for(let r of t)try{let t=await r._get(s);if(t){let n;if("string"==typeof t){let r=await M(e,{idToken:t}).catch(()=>void 0);if(!r)break;n=await X._fromGetAccountInfoResponse(e,r,t)}else n=X._fromJSON(e,t);r!==i&&(a=n),i=r;break}}catch{}let o=n.filter(e=>e._shouldAllowMigration);return i._shouldAllowMigration&&o.length&&(i=o[0],a&&await i._set(s,a.toJSON()),await Promise.all(t.map(async e=>{if(e!==i)try{await e._remove(s)}catch{}}))),new en(i,e,r)}}function ei(e){let t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";{if(el(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(es(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(eh(t))return"Blackberry";if(ec(t))return"Webos";if(ea(t))return"Safari";if((t.includes("chrome/")||eo(t))&&!t.includes("edge/"))return"Chrome";if(eu(t))return"Android";let r=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);if(r?.length===2)return r[1]}return"Other"}function es(e=(0,n.getUA)()){return/firefox\//i.test(e)}function ea(e=(0,n.getUA)()){let t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function eo(e=(0,n.getUA)()){return/crios\//i.test(e)}function el(e=(0,n.getUA)()){return/iemobile/i.test(e)}function eu(e=(0,n.getUA)()){return/android/i.test(e)}function eh(e=(0,n.getUA)()){return/blackberry/i.test(e)}function ec(e=(0,n.getUA)()){return/webos/i.test(e)}function ed(e=(0,n.getUA)()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ef(e=(0,n.getUA)()){return ed(e)||eu(e)||ec(e)||eh(e)||/windows phone/i.test(e)||el(e)}function ep(e,t=[]){let i;switch(e){case"Browser":i=ei((0,n.getUA)());break;case"Worker":i=`${ei((0,n.getUA)())}-${e}`;break;default:i=e}let s=t.length?t.join(","):"FirebaseCore-web";return`${i}/JsCore/${r.SDK_VERSION}/${s}`}class eg{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let r=t=>new Promise((r,n)=>{try{let n=e(t);r(n)}catch(e){n(e)}});r.onAbort=t,this.queue.push(r);let n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let t=[];try{for(let r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){for(let e of(t.reverse(),t))try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}async function em(e,t={}){return C(e,"GET","/v2/passwordPolicy",S(e,t))}class ey{constructor(e){const t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){let t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&
15(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){let r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){let r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=n)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=i))}}class ev{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new e_(this),this.idTokenSubscription=new e_(this),this.beforeStateQueue=new eg(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=o,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=ee(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted){if(this.persistenceManager=await en.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;let e=await this.assertedPersistence.getCurrentUser();if(this.currentUser||e){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),await this.currentUser.getIdToken();return}await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{let t=await M(this,{idToken:e}),r=await X._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if((0,r._isFirebaseServerApp)(this.app)){let e=this.app.settings.authIdToken;return e?new Promise(t=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(e).then(t,t))}):this.directlySetCurrentUser(null)}let t=await this.assertedPersistence.getCurrentUser(),n=t,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let t=this.redirectUser?._redirectEventId,r=n?._redirectEventId,s=await this.tryRedirectSignIn(e);(!t||t===r)&&s?.user&&(n=s.user,i=!0)}if(!n)return this.directlySetCurrentUser(null);if(!n._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(n)}catch(e){n=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return n?this.reloadAndSetCurrentUserOrClear(n):this.directlySetCurrentUser(null)}return(g(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===n._redirectEventId)?this.directlySetCurrentUser(n):this.reloadAndSetCurrentUserOrClear(n)}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 K(e)}catch(e){if(e?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("u"<typeof navigator)return null;let e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}
15async updateCurrentUser(e){if((0,r._isFirebaseServerApp)(this.app))return Promise.reject(f(this));let t=e?(0,n.getModularInstance)(e):null;return t&&g(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&&g(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(0,r._isFirebaseServerApp)(this.app)?Promise.reject(f(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return(0,r._isFirebaseServerApp)(this.app)?Promise.reject(f(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(ee(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();let t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){let e=new ey(await em(this));null===this.tenantId?this._projectPasswordPolicy=e:this._tenantPasswordPolicies[this.tenantId]=e}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new n.ErrorFactory("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){let t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await Q(this,t)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){let r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&ee(e)||this._popupRedirectResolver;g(t,this,"argument-error"),this.redirectPersistenceManager=await en.create(this,[ee(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){return(this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e)?this._currentUser:this.redirectUser?._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(){if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let e=this.currentUser?.uid??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,r,n){if(this._deleted)return()=>{};let i="function"==typeof t?t:t.next.bind(t),s=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(g(a,this,"internal-error"),a.then(()=>{s||i(this.currentUser)}),"function"==typeof t){let i=e.addObserver(t,r,n);return()=>{s=!0,i()}}{let r=e.addObserver(t);return()=>{s=!0,r()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,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 g(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ep(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let r=await this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e}async _getAppCheckToken(){if((0,r._isFirebaseServerApp)(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&function(e,...t){l.logLevel<=i.LogLevel.WARN&&l.warn(`Auth (${r.SDK_VERSION}): ${e}`,...t)}(`Error while retrieving App Check token: ${e.error}`),e?.token}}function ew(e){return(0,n.getModularInstance)(e)}class e_{constructor(e){this.auth=e,this.observer=null,this.addObserver=(0,n.createSubscribe)(e=>this.observer=e)}get next(){return g(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let eb={async loadJS(){throw Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function eI(e){return`__${e}${Math.floor(1e6*Math.random())}`}class eE{constructor(){this.enterprise=new eT}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class eT{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}let eS="NO_RECAPTCHA";class eC{constructor(e){this.type="recaptcha-enterprise",this.auth=ew(e)}async verify(e="verify",t=!1){async function r(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise(async(t,r)=>
15{P(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(n=>{if(void 0===n.recaptchaKey)r(Error("recaptcha Enterprise site key undefined"));else{let r=new O(n);return null==e.tenantId?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,t(r.siteKey)}}).catch(e=>{r(e)})})}function n(t,r,n){let i=window.grecaptcha;R(i)?i.enterprise.ready(()=>{i.enterprise.execute(t,{action:e}).then(e=>{r(e)}).catch(()=>{r(eS)})}):n(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new eE().execute("siteKey",{action:"verify"}):new Promise((e,i)=>{r(this.auth).then(r=>{if(!t&&R(window.grecaptcha))n(r,e,i);else{var s;if("u"<typeof window)return void i(Error("RecaptchaVerifier is only supported in browser"));let t=eb.recaptchaEnterpriseScript;0!==t.length&&(t+=r),(s=t,eb.loadJS(s)).then(()=>{n(r,e,i)}).catch(e=>{i(e)})}}).catch(e=>{i(e)})})}}async function eA(e,t,r,n=!1,i=!1){let s,a=new eC(e);if(i)s=eS;else try{s=await a.verify(r)}catch(e){s=await a.verify(r,!0)}let o={...t};if("mfaSmsEnrollment"===r||"mfaSmsSignIn"===r){if("phoneEnrollmentInfo"in o){let e=o.phoneEnrollmentInfo.phoneNumber,t=o.phoneEnrollmentInfo.recaptchaToken;Object.assign(o,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:t,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in o){let e=o.phoneSignInInfo.recaptchaToken;Object.assign(o,{phoneSignInInfo:{recaptchaToken:e,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return o}return n?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}async function ek(e,t,r,n,i){if("EMAIL_PASSWORD_PROVIDER"===i)if(!e._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER"))return n(e,t).catch(async i=>{if("auth/missing-recaptcha-token"!==i.code)return Promise.reject(i);{console.log(`${r} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let i=await eA(e,t,r,"getOobCode"===r);return n(e,i)}});else{let i=await eA(e,t,r,"getOobCode"===r);return n(e,i)}if("PHONE_PROVIDER"!==i)return Promise.reject(i+" provider is not supported.");if(e._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let i=await eA(e,t,r);return n(e,i).catch(async i=>{if(e._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&("auth/missing-recaptcha-token"===i.code||"auth/invalid-app-credential"===i.code)){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${r} flow.`);let i=await eA(e,t,r,!1,!0);return n(e,i)}return Promise.reject(i)})}{let i=await eA(e,t,r,!1,!0);return n(e,i)}}async function ex(e){let t=ew(e),r=new O(await P(t,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}));null==t.tenantId?t._agentRecaptchaConfig=r:t._tenantRecaptchaConfigs[t.tenantId]=r,r.isAnyProviderEnabled()&&new eC(t).verify()}function eN(e){let t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function eD(e){if(!e)return null;let t=Number(e);return isNaN(t)?null:t}class eR{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return m("not implemented")}_getIdTokenResponse(e){return m("not implemented")}_linkToIdToken(e,t){return m("not implemented")}_getReauthenticationResolver(e){return m("not implemented")}}async function eO(e,t){return C(e,"POST","/v1/accounts:signUp",t)}async function eP(e,t){return k(e,"POST","/v1/accounts:signInWithPassword",S(e,t))}async function eL(e,t){return k(e,"POST","/v1/accounts:signInWithEmailLink",S(e,t))}async function eM(e,t){return k(e,"POST","/v1/accounts:signInWithEmailLink",S(e,t))}class eF extends eR{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new eF(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new eF(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);else if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return ek(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",eP,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return eL(e,{email:this._email,oobCode:this._password});default:h(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return ek(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"}
15,"signUpPassword",eO,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return eM(e,{idToken:t,email:this._email,oobCode:this._password});default:h(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function eU(e,t){return k(e,"POST","/v1/accounts:signInWithIdp",S(e,t))}class eV extends eR{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new eV(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):h("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){let{providerId:t,signInMethod:r,...n}="string"==typeof e?JSON.parse(e):e;if(!t||!r)return null;let i=new eV(t,r);return i.idToken=n.idToken||void 0,i.accessToken=n.accessToken||void 0,i.secret=n.secret,i.nonce=n.nonce,i.pendingToken=n.pendingToken||null,i}_getIdTokenResponse(e){return eU(e,this.buildRequest())}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,eU(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,eU(e,t)}buildRequest(){let e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let 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=(0,n.querystring)(t)}return e}}async function eB(e,t){return C(e,"POST","/v1/accounts:sendVerificationCode",S(e,t))}async function eq(e,t){return k(e,"POST","/v1/accounts:signInWithPhoneNumber",S(e,t))}async function ej(e,t){let r=await k(e,"POST","/v1/accounts:signInWithPhoneNumber",S(e,t));if(r.temporaryProof)throw D(e,"account-exists-with-different-credential",r);return r}let ez={USER_NOT_FOUND:"user-not-found"};async function e$(e,t){return k(e,"POST","/v1/accounts:signInWithPhoneNumber",S(e,{...t,operation:"REAUTH"}),ez)}class eK extends eR{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new eK({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new eK({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return eq(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return ej(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return e$(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){let 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){"string"==typeof e&&(e=JSON.parse(e));let{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e;return r||t||n||i?new eK({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class eG{constructor(e){const t=(0,n.querystringDecode)((0,n.extractQuerystring)(e)),r=t.apiKey??null,i=t.oobCode??null,s=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}}(t.mode??null);g(r&&i&&s,"argument-error"),this.apiKey=r,this.operation=s,this.code=i,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){let t,r,i,s=(r=(t=(0,n.querystringDecode)((0,n.extractQuerystring)(e)).link)?(0,n.querystringDecode)((0,n.extractQuerystring)(t)).deep_link_id:null,((i=(0,n.querystringDecode)((0,n.extractQuerystring)(e)).deep_link_id)?(0,n.querystringDecode)((0,n.extractQuerystring)(i)).link:null)||i||r||t||e);try{return new eG(s)}catch{return null}}}class eH{constructor(){this.providerId=eH.PROVIDER_ID}static credential(e,t){return eF._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){let r=eG.parseLink(t);return g(r,"argument-error"),eF._fromEmailAndCode(e,r.code,r.tenantId)}}eH.PROVIDER_ID="password",eH.EMAIL_PASSWORD_SIGN_IN_METHOD="password",eH.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class eW{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 eQ extends eW{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class eJ extends eQ{constructor(){super("facebook.com")}static credential(e){return eV._fromParams({providerId:eJ.PROVIDER_ID,signInMethod:eJ.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return eJ.credentialFromTaggedObject(e)}static credentialFromError(e){return eJ.credentialFromTaggedObject(e.customData||{})}
15static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return eJ.credential(e.oauthAccessToken)}catch{return null}}}eJ.FACEBOOK_SIGN_IN_METHOD="facebook.com",eJ.PROVIDER_ID="facebook.com";class eY extends eQ{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return eV._fromParams({providerId:eY.PROVIDER_ID,signInMethod:eY.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return eY.credentialFromTaggedObject(e)}static credentialFromError(e){return eY.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return eY.credential(t,r)}catch{return null}}}eY.GOOGLE_SIGN_IN_METHOD="google.com",eY.PROVIDER_ID="google.com";class eX extends eQ{constructor(){super("github.com")}static credential(e){return eV._fromParams({providerId:eX.PROVIDER_ID,signInMethod:eX.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return eX.credentialFromTaggedObject(e)}static credentialFromError(e){return eX.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return eX.credential(e.oauthAccessToken)}catch{return null}}}eX.GITHUB_SIGN_IN_METHOD="github.com",eX.PROVIDER_ID="github.com";class eZ extends eQ{constructor(){super("twitter.com")}static credential(e,t){return eV._fromParams({providerId:eZ.PROVIDER_ID,signInMethod:eZ.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return eZ.credentialFromTaggedObject(e)}static credentialFromError(e){return eZ.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return eZ.credential(t,r)}catch{return null}}}eZ.TWITTER_SIGN_IN_METHOD="twitter.com",eZ.PROVIDER_ID="twitter.com";class e0{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){return new e0({user:await X._fromIdTokenResponse(e,r,n),providerId:e1(r),_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){return await e._updateTokensIfNecessary(r,!0),new e0({user:e,providerId:e1(r),_tokenResponse:r,operationType:t})}}function e1(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class e2 extends n.FirebaseError{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,e2.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new e2(e,t,r,n)}}function e6(e,t,r,n){return("reauthenticate"===t?r._getReauthenticationResolver(e):r._getIdTokenResponse(e)).catch(r=>{if("auth/multi-factor-auth-required"===r.code)throw e2._fromErrorAndOperation(e,r,t,n);throw r})}async function e3(e,t,r=!1){let n=await j(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return e0._forOperation(e,"link",n)}async function e5(e,t,n=!1){let{auth:i}=e;if((0,r._isFirebaseServerApp)(i.app))return Promise.reject(f(i));let s="reauthenticate";try{let r=await j(e,e6(i,s,t,e),n);g(r.idToken,i,"internal-error");let a=B(r.idToken);g(a,i,"internal-error");let{sub:o}=a;return g(e.uid===o,i,"user-mismatch"),e0._forOperation(e,s,r)}catch(e){throw e?.code==="auth/user-not-found"&&h(i,"user-mismatch"),e}}async function e4(e,t,n=!1){if((0,r._isFirebaseServerApp)(e.app))return Promise.reject(f(e));let i="signIn",s=await e6(e,i,t),a=await e0._fromIdTokenResponse(e,i,s);return n||await e._updateCurrentUser(a.user),a}class e8{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?e7._fromServerResponse(e,t):"totpInfo"in t?e9._fromServerResponse(e,t):h(e,"internal-error")}}class e7 extends e8{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new e7(t)}}class e9 extends e8{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new e9(t)}}
15function te(e,t,r,i){return(0,n.getModularInstance)(e).onAuthStateChanged(t,r,i)}function tt(e){return(0,n.getModularInstance)(e).signOut()}function tr(e,t){return C(e,"POST","/v2/accounts/mfaEnrollment:start",S(e,t))}new WeakMap;let tn="__sak";class ti{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{if(!this.storage)return Promise.resolve(!1);return this.storage.setItem(tn,"1"),this.storage.removeItem(tn),Promise.resolve(!0)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){let 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 ts extends ti{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ef(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let t of Object.keys(this.listeners)){let r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,t=!1){if(!e.key)return void this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)});let r=e.key;t?this.detachListener():this.stopPolling();let i=()=>{let e=this.storage.getItem(r);(t||this.localCache[r]!==e)&&this.notifyListeners(r,e)},s=this.storage.getItem(r);(0,n.isIE)()&&10===document.documentMode&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,10):i()}notifyListeners(e,t){this.localCache[e]=t;let r=this.listeners[e];if(r)for(let e of Array.from(r))e(t?JSON.parse(t):t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!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){let t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}ts.type="LOCAL";class ta extends ti{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}ta.type="SESSION";class to{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let t=this.receivers.find(t=>t.isListeningto(e));if(t)return t;let r=new to(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let{eventId:t,eventType:r,data:n}=e.data,i=this.handlersMap[r];if(!i?.size)return;e.ports[0].postMessage({status:"ack",eventId:t,eventType:r});let s=Array.from(i).map(async t=>t(e.origin,n)),a=await Promise.all(s.map(async e=>{try{let t=await e;return{fulfilled:!0,value:t}}catch(e){return{fulfilled:!1,reason:e}}}));e.ports[0].postMessage({status:"done",eventId:t,eventType:r,response:a})}_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 tl(e="",t=10){let r="";for(let e=0;e<t;e++)r+=Math.floor(10*Math.random());return e+r}to.receivers=[];class tu{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,r=50){let n,i,s="u">typeof MessageChannel?new MessageChannel:null;if(!s)throw Error("connection_unavailable");return new Promise((a,o)=>{let l=tl("",20);s.port1.start();let u=setTimeout(()=>{o(Error("unsupported_event"))},r);i={messageChannel:s,onMessage(e){if(e.data.eventId===l)switch(e.data.status){case"ack":clearTimeout(u),n=setTimeout(()=>{o(Error("timeout"))},3e3);break;case"done":clearTimeout(n),a(e.data.response);break;default:clearTimeout(u),clearTimeout(n),o(Error("invalid_response"))}}},this.handlers.add(i),s.port1.addEventListener("message",i.onMessage),this.target.postMessage({eventType:e,eventId:l,data:t},[s.port2])}).finally(()=>{i&&this.removeMessageHandler(i)})}}function th(){return window}
15function tc(){return void 0!==th().WorkerGlobalScope&&"function"==typeof th().importScripts}async function td(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}let tf="firebaseLocalStorageDb",tp="firebaseLocalStorage",tg="fbase_key";class tm{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 ty(e,t){return e.transaction([tp],t?"readwrite":"readonly").objectStore(tp)}function tv(){let e=indexedDB.open(tf,1);return new Promise((t,r)=>{e.addEventListener("error",()=>{r(e.error)}),e.addEventListener("upgradeneeded",()=>{let t=e.result;try{t.createObjectStore(tp,{keyPath:tg})}catch(e){r(e)}}),e.addEventListener("success",async()=>{let r=e.result;r.objectStoreNames.contains(tp)?t(r):(r.close(),await new tm(indexedDB.deleteDatabase(tf)).toPromise(),t(await tv()))})})}async function tw(e,t,r){return new tm(ty(e,!0).put({[tg]:t,value:r})).toPromise()}async function t_(e,t){let r=ty(e,!1).get(t),n=await new tm(r).toPromise();return void 0===n?null:n.value}function tb(e,t){return new tm(ty(e,!0).delete(t)).toPromise()}class tI{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 tv()),this.db}async _withRetries(e){let t=0;for(;;)try{let t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return tc()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=to._getInstance(tc()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await td(),!this.activeServiceWorker)return;this.sender=new tu(this.activeServiceWorker);let e=await this.sender._send("ping",{},800);e&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;let e=await tv();return await tw(e,tn,"1"),await tb(e,tn),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite(async()=>(await this._withRetries(r=>tw(r,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(t=>t_(t,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>tb(t,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(e=>new tm(ty(e,!1).getAll()).toPromise());if(!e||0!==this.pendingWrites)return[];let t=[],r=new Set;if(0!==e.length)for(let{fbase_key:n,value:i}of e)r.add(n),JSON.stringify(this.localCache[n])!==JSON.stringify(i)&&(this.notifyListeners(n,i),t.push(n));for(let e of Object.keys(this.localCache))this.localCache[e]&&!r.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;let r=this.listeners[e];if(r)for(let e of Array.from(r))e(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()}}function tE(e,t){return C(e,"POST","/v2/accounts/mfaSignIn:start",S(e,t))}tI.type="LOCAL",eI("rcb"),new w(3e4,6e4);let tT="recaptcha";async function tS(e,t,r){if(!e._getRecaptchaConfig())try{await ex(e)}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let n;if(n="string"==typeof t?{phoneNumber:t}
15:t,"session"in n){let t=n.session;if("phoneNumber"in n){g("enroll"===t.type,e,"internal-error");let i={idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:n.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},s=async(e,t)=>{if(t.phoneEnrollmentInfo.captchaResponse===eS){g(r?.type===tT,e,"argument-error");let n=await tC(e,t,r);return tr(e,n)}return tr(e,t)},a=ek(e,i,"mfaSmsEnrollment",s,"PHONE_PROVIDER");return(await a.catch(e=>Promise.reject(e))).phoneSessionInfo.sessionInfo}{g("signin"===t.type,e,"internal-error");let i=n.multiFactorHint?.uid||n.multiFactorUid;g(i,e,"missing-multi-factor-info");let s={mfaPendingCredential:t.credential,mfaEnrollmentId:i,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},a=async(e,t)=>{if(t.phoneSignInInfo.captchaResponse===eS){g(r?.type===tT,e,"argument-error");let n=await tC(e,t,r);return tE(e,n)}return tE(e,t)},o=ek(e,s,"mfaSmsSignIn",a,"PHONE_PROVIDER");return(await o.catch(e=>Promise.reject(e))).phoneResponseInfo.sessionInfo}}{let t={phoneNumber:n.phoneNumber,clientType:"CLIENT_TYPE_WEB"},i=async(e,t)=>{if(t.captchaResponse===eS){g(r?.type===tT,e,"argument-error");let n=await tC(e,t,r);return eB(e,n)}return eB(e,t)},s=ek(e,t,"sendVerificationCode",i,"PHONE_PROVIDER");return(await s.catch(e=>Promise.reject(e))).sessionInfo}}finally{r?._reset()}}async function tC(e,t,r){g(r.type===tT,e,"argument-error");let n=await r.verify();g("string"==typeof n,e,"argument-error");let i={...t};if("phoneEnrollmentInfo"in i){let e=i.phoneEnrollmentInfo.phoneNumber,t=i.phoneEnrollmentInfo.captchaResponse,r=i.phoneEnrollmentInfo.clientType,s=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:n,captchaResponse:t,clientType:r,recaptchaVersion:s}}),i}if(!("phoneSignInInfo"in i))return Object.assign(i,{recaptchaToken:n}),i;{let e=i.phoneSignInInfo.captchaResponse,t=i.phoneSignInInfo.clientType,r=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:n,captchaResponse:e,clientType:t,recaptchaVersion:r}}),i}}class tA{constructor(e){this.providerId=tA.PROVIDER_ID,this.auth=ew(e)}verifyPhoneNumber(e,t){return tS(this.auth,e,(0,n.getModularInstance)(t))}static credential(e,t){return eK._fromVerification(e,t)}static credentialFromResult(e){return tA.credentialFromTaggedObject(e)}static credentialFromError(e){return tA.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:t,temporaryProof:r}=e;return t&&r?eK._fromTokenResponse(t,r):null}}function tk(e,t){return t?ee(t):(g(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}tA.PROVIDER_ID="phone",tA.PHONE_SIGN_IN_METHOD="phone";class tx extends eR{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return eU(e,this._buildIdpRequest())}_linkToIdToken(e,t){return eU(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return eU(e,this._buildIdpRequest())}_buildIdpRequest(e){let 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 tN(e){return e4(e.auth,new tx(e),e.bypassAuthState)}function tD(e){let{auth:t,user:r}=e;return g(r,t,"internal-error"),e5(r,new tx(e),e.bypassAuthState)}async function tR(e){let{auth:t,user:r}=e;return g(r,t,"internal-error"),e3(r,new tx(e),e.bypassAuthState)}class tO{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,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){let{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)return void this.reject(s);let o={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(o))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return tN;case"linkViaPopup":case"linkViaRedirect":return tR;case"reauthViaPopup":case"reauthViaRedirect":return tD;default:h(this.auth,"internal-error")}}resolve(e){var t,r;t=this.pendingPromise,r="Pending promise was never set",t||m(r),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){var t,r;t=this.pendingPromise,r="Pending promise was never set",t||m(r),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let tP=new w(2e3,1e4);async function tL(e,t,n){if((0,r._isFirebaseServerApp)(e.app))return Promise.reject(c(e,"operation-not-supported-in-this-environment"));let i=ew(e);if(!(t instanceof eW))throw eW.name!==t.constructor.name&&h(e,"argument-error"),d(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`);let s=tk(i,n);return new tM(i,"signInViaPopup",t,s).executeNotNull()}
15class tM extends tO{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,tM.currentPopupAction&&tM.currentPopupAction.cancel(),tM.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return g(e,this.auth,"internal-error"),e}async onExecution(){var e,t;e=1===this.filter.length,t="Popup operations only handle one event",e||m(t);let r=tl();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],r),this.authWindow.associatedEvent=r,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(c(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(c(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,tM.currentPopupAction=null}pollUserCancellation(){let e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(c(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,tP.get())};e()}}tM.currentPopupAction=null;let tF=new Map;class tU extends tO{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let e=tF.get(this.auth._key());if(!e){try{let t=await tV(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}tF.set(this.auth._key(),e)}return this.bypassAuthState||tF.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)return void this.resolve(null);if(e.eventId){let t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function tV(e,t){var r;let n=er("pendingRedirect",(r=t).config.apiKey,r.name),i=ee(e._redirectPersistence);if(!await i._isAvailable())return!1;let s=await i._get(n)==="true";return await i._remove(n),s}function tB(e,t){tF.set(e._key(),t)}async function tq(e,t,n=!1){if((0,r._isFirebaseServerApp)(e.app))return Promise.reject(f(e));let i=ew(e),s=tk(i,t),a=new tU(i,s,n),o=await a.execute();return o&&!n&&(delete o.user._redirectEventId,await i._persistUserIfCurrent(o.user),await i._setRedirectUser(null,t)),o}class tj{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(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(t=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return t$(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!t$(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";t.onError(c(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(tz(e))}saveEventToCache(e){this.cachedEventUids.add(tz(e)),this.lastProcessedEventTime=Date.now()}}function tz(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function t$({type:e,error:t}){return"unknown"===e&&t?.code==="auth/no-auth-event"}async function tK(e,t={}){return C(e,"GET","/v1/projects",t)}let tG=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,tH=/^https?/;async function tW(e){if(e.config.emulator)return;let{authorizedDomains:t}=await tK(e);for(let e of t)try{if(function(e){let t=y(),{protocol:r,hostname:n}=new URL(t);if(e.startsWith("chrome-extension://")){let i=new URL(e);return""===i.hostname&&""===n?"chrome-extension:"===r&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===r&&i.hostname===n}if(!tH.test(r))return!1;if(tG.test(e))return n===e;let i=e.replace(/\./g,"\\.");return RegExp("^(.+\\."+i+"|"+i+")$","i").test(n)}(e))return}catch{}h(e,"unauthorized-domain")}let tQ=new w(3e4,6e4);function tJ(){let e=th().___jsl;if(e?.H){for(let t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}}let tY=null,tX=new w(5e3,15e3),tZ={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},t0=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function t1(e){let t,i,s,a,o,l=await (tY=tY||new Promise((t,r)=>{function n(){tJ(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{tJ(),r(c(e,"network-request-failed"))},timeout:tQ.get()})}if(th().gapi?.iframes?.Iframe)t(gapi.iframes.getContext());else if(th().gapi?.load)n();else{var i;let t=eI("iframefcb");return th()[t]=()=>{gapi.load?n():r(c(e,"network-request-failed"))},(i=`${eb.gapiScript}?onload=${t}`,eb.loadJS(i)).catch(e=>r(e))}}).catch(e=>{throw tY=null,e})),u=th().gapi;return g(u,e,"internal-error"),l.open({where:document.body,url:(g((t=e.config).authDomain,e,"auth-domain-config-required"),i=t.emulator?_(t,"emulator/auth/iframe"):`https://${e.config.authDomain}
15/__/auth/iframe`,s={apiKey:t.apiKey,appName:e.name,v:r.SDK_VERSION},(a=t0.get(e.config.apiHost))&&(s.eid=a),(o=e._getFrameworks()).length&&(s.fw=o.join(",")),`${i}?${(0,n.querystring)(s).slice(1)}`),messageHandlersFilter:u.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:tZ,dontclear:!0},t=>new Promise(async(r,n)=>{await t.restyle({setHideOnLeave:!1});let i=c(e,"network-request-failed"),s=th().setTimeout(()=>{n(i)},tX.get());function a(){th().clearTimeout(s),r(t)}t.ping(a).then(a,()=>{n(i)})}))}let t2={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class t6{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}let t3=encodeURIComponent("fac");async function t5(e,t,i,s,a,o){g(e.config.authDomain,e,"auth-domain-config-required"),g(e.config.apiKey,e,"invalid-api-key");let l={apiKey:e.config.apiKey,appName:e.name,authType:i,redirectUrl:s,v:r.SDK_VERSION,eventId:a};if(t instanceof eW)for(let[r,i]of(t.setDefaultLanguage(e.languageCode),l.providerId=t.providerId||"",(0,n.isEmpty)(t.getCustomParameters())||(l.customParameters=JSON.stringify(t.getCustomParameters())),Object.entries(o||{})))l[r]=i;if(t instanceof eQ){let e=t.getScopes().filter(e=>""!==e);e.length>0&&(l.scopes=e.join(","))}for(let t of(e.tenantId&&(l.tid=e.tenantId),Object.keys(l)))void 0===l[t]&&delete l[t];let u=await e._getAppCheckToken(),h=u?`#${t3}=${encodeURIComponent(u)}`:"";return`${function({config:e}){return e.emulator?_(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${(0,n.querystring)(l).slice(1)}${h}`}let t4="webStorageSupport",t8=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=ta,this._completeRedirectFn=tq,this._overrideRedirectResult=tB}async _openPopup(e,t,r,i){var s,a;s=this.eventManagers[e._key()]?.manager,a="_initialize() not called before _openPopup()",s||m(a);let o=await t5(e,t,r,y(),i);return function(e,t,r,i=500,s=600){let a=Math.max((window.screen.availHeight-s)/2,0).toString(),o=Math.max((window.screen.availWidth-i)/2,0).toString(),l="",u={...t2,width:i.toString(),height:s.toString(),top:a,left:o},h=(0,n.getUA)().toLowerCase();r&&(l=eo(h)?"_blank":r),es(h)&&(t=t||"http://localhost",u.scrollbars="yes");let c=Object.entries(u).reduce((e,[t,r])=>`${e}${t}=${r},`,"");if(function(e=(0,n.getUA)()){return ed(e)&&!!window.navigator?.standalone}(h)&&"_self"!==l){var d,f;let e,r;return d=t||"",f=l,(e=document.createElement("a")).href=d,e.target=f,(r=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),e.dispatchEvent(r),new t6(null)}let p=window.open(t||"",l,c);g(p,e,"popup-blocked");try{p.focus()}catch(e){}return new t6(p)}(e,o,tl())}async _openRedirect(e,t,r,n){var i;return await this._originValidation(e),i=await t5(e,t,r,y(),n),th().location.href=i,new Promise(()=>{})}_initialize(e){let t=e._key();if(this.eventManagers[t]){var r;let{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(r="If manager is not set, promise should be",n||m(r),n)}let n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch(()=>{delete this.eventManagers[t]}),n}async initAndGetManager(e){let t=await t1(e),r=new tj(e);return t.register("authEvent",t=>(g(t?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(t.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=t,r}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(t4,{type:t4},r=>{let n=r?.[0]?.[t4];void 0!==n&&t(!!n),h(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=tW(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ef()||ea()||ed()}};var t7="@firebase/auth",t9="1.12.0";class re{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return(this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser)?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(t=>{e(t?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){g(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}let rt=(0,n.getExperimentalSetting)("authIdTokenMaxAge")||300,rr=null;function rn(e=(0,r.getApp)()){let t=(0,r._getProvider)(e,"auth");if(t.isInitialized())return t.getImmediate();let i=function(e,t){let i=(0,r._getProvider)(e,"auth");if(i.isInitialized()){let e=i.getImmediate(),r=i.getOptions();if((0,n.deepEqual)(r,t??{}))return e;h(e,"already-initialized")}return i.initialize({options:t})}(e,{popupRedirectResolver:t8,persistence:[tI,ts,ta]}),s=(0,n.getExperimentalSetting)("authTokenSyncURL");if(s&&"boolean"==typeof isSecureContext&&isSecureContext){let e=new URL(s,location.origin);if(location.origin===e.origin){let t,r=(t=e.toString(),async e=>{let r=e&&await e.getIdTokenResult(),n=r&&(new Date().getTime()-Date.parse(r.issuedAtTime))/1e3;if(n&&n>rt)return;let i=r?.token;rr!==i&&(rr=i,await fetch(t,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});(0,n.getModularInstance)(i).beforeAuthStateChanged(r,()=>r(i.currentUser)),(0,n.getModularInstance)(i).onIdTokenChanged(e=>r(e),void 0,void 0)}}let a=(0,n.getDefaultEmulatorHost)("auth");return a&&function(e,t,r){let i=ew(e);g(/^https?:\/\//.test(t),i,"invalid-emulator-scheme");let s=eN(t),{host:a,port:o}=function(e){let t=eN(e),r=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!r)return{host:"",port:null};let n=r[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(n);if(i){let e=i[1];return{host:e,port:eD(n.substr(e.length+1))}}{let[e,t]=n.split(":");return{host:e,port:eD(t)}}}(t),l=null===o?"":`:${o}`,u={url:`${s}//${a}${l}/`},h=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:!1})});if(!i._canInitEmulator){g(i.config.emulator&&i.emulatorConfig,i,"emulator-config-failed"),g((0,n.deepEqual)(u,i.config.emulator)&&(0,n.deepEqual)(h,i.emulatorConfig),i,"emulator-config-failed");return}i.config.emulator=u,i.emulatorConfig=h,i.settings.appVerificationDisabledForTesting=!0,(0,n.isCloudWorkstation)(a)?((0,n.pingServer)(`${s}//${a}${l}`),(0,n.updateEmulatorBanner)("Auth",!0)):function(){function e(){let 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)}"u">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."),"u">typeof window&&"u">typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(i,`http://${a}`),i}eb={loadJS:e=>
15new Promise((t,r)=>{let n=document.createElement("script");n.setAttribute("src",e),n.onload=t,n.onerror=e=>{let t=c("internal-error");t.customData=e,r(t)},n.type="text/javascript",n.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(n)}),gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},t="Browser",(0,r._registerComponent)(new s.Component("auth",(e,{options:r})=>{let n,i,s=e.getProvider("app").getImmediate(),a=e.getProvider("heartbeat"),o=e.getProvider("app-check-internal"),{apiKey:l,authDomain:u}=s.options;g(l&&!l.includes(":"),"invalid-api-key",{appName:s.name});let h=new ev(s,a,o,{apiKey:l,authDomain:u,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ep(t)});return i=(Array.isArray(n=r?.persistence||[])?n:[n]).map(ee),r?.errorMap&&h._updateErrorMap(r.errorMap),h._initializeWithPersistence(i,r?.popupRedirectResolver),h},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),(0,r._registerComponent)(new s.Component("auth-internal",e=>new re(ew(e.getProvider("auth").getImmediate())),"PRIVATE").setInstantiationMode("EXPLICIT")),(0,r.registerVersion)(t7,t9,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(t)),(0,r.registerVersion)(t7,t9,"esm2020"),e.s([],58556),e.s([],51718),e.i(58556),e.s(["GoogleAuthProvider",()=>eY,"getAuth",()=>rn,"onAuthStateChanged",()=>te,"signInWithPopup",()=>tL,"signOut",()=>tt],18357)},67034,(e,t,r)=>{var n={675:function(e,t){"use strict";t.byteLength=function(e){var t=l(e),r=t[0],n=t[1];return(r+n)*3/4-n},t.toByteArray=function(e){var t,r,s=l(e),a=s[0],o=s[1],u=new i((a+o)*3/4-o),h=0,c=o>0?a-4:a;for(r=0;r<c;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],u[h++]=t>>16&255,u[h++]=t>>8&255,u[h++]=255&t;return 2===o&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,u[h++]=255&t),1===o&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,u[h++]=t>>8&255,u[h++]=255&t),u},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,s=[],a=0,o=n-i;a<o;a+=16383)s.push(function(e,t,n){for(var i,s=[],a=t;a<n;a+=3)i=(e[a]<<16&0xff0000)+(e[a+1]<<8&65280)+(255&e[a+2]),s.push(r[i>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return s.join("")}(e,a,a+16383>o?o:a+16383));return 1===i?s.push(r[(t=e[n-1])>>2]+r[t<<4&63]+"=="):2===i&&s.push(r[(t=(e[n-2]<<8)+e[n-1])>>10]+r[t>>4&63]+r[t<<2&63]+"="),s.join("")};for(var r=[],n=[],i="u">typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,o=s.length;a<o;++a)r[a]=s[a],n[s.charCodeAt(a)]=a;function l(e){var t=e.length;if(t%4>0)throw Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}n[45]=62,n[95]=63},72:function(e,t,r){"use strict";var n=r(675),i=r(783),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function a(e){if(e>0x7fffffff)throw RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,o.prototype),t}function o(e,t,r){if("number"==typeof e){if("string"==typeof t)throw TypeError('The "string" argument must be of type string. Received type number');return h(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e){var n=e,i=t;if(("string"!=typeof i||""===i)&&(i="utf8"),!o.isEncoding(i))throw TypeError("Unknown encoding: "+i);var s=0|f(n,i),l=a(s),u=l.write(n,i);return u!==s&&(l=l.slice(0,u)),l}if(ArrayBuffer.isView(e))return c(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(x(e,ArrayBuffer)||e&&x(e.buffer,ArrayBuffer)||"u">typeof SharedArrayBuffer&&(x(e,SharedArrayBuffer)||e&&x(e.buffer,SharedArrayBuffer)))return function(e,t,r){var n;if(t<0||e.byteLength<t)throw RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw RangeError('"length" is outside of buffer bounds');return Object.setPrototypeOf(n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),o.prototype),n}(e,t,r);if("number"==typeof e)throw TypeError('The "value" argument must not be of type number. Received type number');var h=e.valueOf&&e.valueOf();if(null!=h&&h!==e)return o.from(h,t,r);var p=function(e){if(o.isBuffer(e)){var t=0|d(e.length),r=a(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||function(e){return e!=e}(e.length)?a(0):c(e):"Buffer"===e.type&&Array.isArray(e.data)?c(e.data):void 0}(e);if(p)return p;if("u">typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return o.from(e[Symbol.toPrimitive]("string"),t,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw TypeError('"size" argument must be of type number');
vendor: 16,509 bytes, line 15
15if(e<0)throw RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return u(e),a(e<0?0:0|d(e))}function c(e){for(var t=e.length<0?0:0|d(e.length),r=a(t),n=0;n<t;n+=1)r[n]=255&e[n];return r}t.Buffer=o,t.SlowBuffer=function(e){return+e!=e&&(e=0),o.alloc(+e)},t.INSPECT_MAX_BYTES=50,t.kMaxLength=0x7fffffff,o.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),!o.TYPED_ARRAY_SUPPORT&&"u">typeof console&&"function"==typeof console.error&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}}),o.poolSize=8192,o.from=function(e,t,r){return l(e,t,r)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array),o.alloc=function(e,t,r){return(u(e),e<=0)?a(e):void 0!==t?"string"==typeof r?a(e).fill(t,r):a(e).fill(t):a(e)},o.allocUnsafe=function(e){return h(e)},o.allocUnsafeSlow=function(e){return h(e)};function d(e){if(e>=0x7fffffff)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|e}function f(e,t){if(o.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||x(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return S(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return A(e).length;default:if(i)return n?-1:S(e).length;t=(""+t).toLowerCase(),i=!0}}function p(e,t,r){var i,s,a,o=!1;if((void 0===t||t<0)&&(t=0),t>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(t>>>=0)))return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s<r;++s)i+=N[e[s]];return i}(this,t,r);case"utf8":case"utf-8":return v(this,t,r);case"ascii":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}(this,t,r);case"latin1":case"binary":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}(this,t,r);case"base64":return i=this,s=t,a=r,0===s&&a===i.length?n.fromByteArray(i):n.fromByteArray(i.slice(s,a));case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(e,t,r){for(var n=e.slice(t,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}(this,t,r);default:if(o)throw TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),o=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){var s;if(0===e.length)return -1;if("string"==typeof r?(n=r,r=0):r>0x7fffffff?r=0x7fffffff:r<-0x80000000&&(r=-0x80000000),(s=r*=1)!=s&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length)if(i)return -1;else r=e.length-1;else if(r<0)if(!i)return -1;else r=0;if("string"==typeof t&&(t=o.from(t,n)),o.isBuffer(t))return 0===t.length?-1:y(e,t,r,n,i);if("number"==typeof t){if(t&=255,"function"==typeof Uint8Array.prototype.indexOf)if(i)return Uint8Array.prototype.indexOf.call(e,t,r);else return Uint8Array.prototype.lastIndexOf.call(e,t,r);return y(e,[t],r,n,i)}throw TypeError("val must be string, number or Buffer")}function y(e,t,r,n,i){var s,a=1,o=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;a=2,o/=2,l/=2,r/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var h=-1;for(s=r;s<o;s++)if(u(e,s)===u(t,-1===h?0:s-h)){if(-1===h&&(h=s),s-h+1===l)return h*a}else -1!==h&&(s-=s-h),h=-1}else for(r+l>o&&(r=o-l),s=r;s>=0;s--){for(var c=!0,d=0;d<l;d++)if(u(e,s+d)!==u(t,d)){c=!1;break}if(c)return s}return -1}o.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==o.prototype},o.compare=function(e,t){if(x(e,Uint8Array)&&(e=o.from(e,e.offset,e.byteLength)),x(t,Uint8Array)&&(t=o.from(t,t.offset,t.byteLength)),!o.isBuffer(e)||!o.isBuffer(t))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i<s;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:+(n<r)},o.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(e,t){if(!Array.isArray(e))throw TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return o.alloc(0);if(void 0===t)for(r=0,t=0;r<e.length;++r)t+=e[r].length;var r,n=o.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var s=e[r];if(x(s,Uint8Array)&&(s=o.from(s)),!o.isBuffer(s))throw TypeError('"list" argument must be an Array of Buffers');s.copy(n,i),i+=s.length}return n},o.byteLength=f,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},o.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},o.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},o.prototype.toString=function(){var e=this.length;return 0===e?"":0==arguments.length?v(this,0,e):p.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(e){if(!o.isBuffer(e))throw TypeError("Argument must be a Buffer");return this===e||0===o.compare(this,e)},o.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),"<Buffer "+e+">"},s&&(o.prototype[s]=o.prototype.inspect),o.prototype.compare=function(e,t,r,n,i){if(x(e,Uint8Array)&&(e=o.from(e,e.offset,e.byteLength)),!o.isBuffer(e))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return -1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var s=i-n,a=r-t,l=Math.min(s,a),u=this.slice(n,i),h=e.slice(t,r),c=0;c<l;++c)if(u[c]!==h[c]){s=u[c],a=h[c];break}return s<a?-1:+(a<s)},o.prototype.includes=function(e,t,r){return -1!==this.indexOf(e,t,r)},o.prototype.indexOf=function(e,t,r){return m(this,e,t,r,!0)},o.prototype.lastIndexOf=function(e,t,r){return m(this,e,t,r,!1)};function v(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var s,a,o,l,u=e[i],h=null,c=u>239?4:u>223?3:u>191?2:1;if(i+c<=r)switch(c){case 1:u<128&&(h=u);break;case 2:(192&(s=e[i+1]))==128&&(l=(31&u)<<6|63&s)>127&&(h=l);break;case 3:s=e[i+1],a=e[i+2],(192&s)==128&&(192&a)==128&&(l=(15&u)<<12|(63&s)<<6|63&a)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:s=e[i+1],a=e[i+2],o=e[i+3],(192&s)==128&&(192&a)==128&&(192&o)==128&&(l=(15&u)<<18|(63&s)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(h=l)}null===h?(h=65533,c=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=c}var d=n,f=d.length;if(f<=4096)return String.fromCharCode.apply(String,d);for(var p="",g=0;g<f;)p+=String.fromCharCode.apply(String,d.slice(g,g+=4096));return p}function w(e,t,r){if(e%1!=0||e<0)throw RangeError("offset is not uint");if(e+t>r)throw RangeError("Trying to access beyond buffer length")}function _(e,t,r,n,i,s){if(!o.isBuffer(e))throw TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw RangeError('"value" argument is out of bounds');if(r+n>e.length)throw RangeError("Index out of range")}function b(e,t,r,n,i,s){if(r+n>e.length||r<0)throw RangeError("Index out of range")}function I(e,t,r,n,s){return t*=1,r>>>=0,s||b(e,t,r,4,34028234663852886e22,-34028234663852886e22),i.write(e,t,r,n,23,4),r+4}function E(e,t,r,n,s){return t*=1,r>>>=0,s||b(e,t,r,8,17976931348623157e292,-17976931348623157e292),i.write(e,t,r,n,52,8),r+8}o.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else if(isFinite(t))t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var i,s,a,o,l,u,h,c,d=this.length-t;if((void 0===r||r>d)&&(r=d),e.length>0&&(r<0||t<0)||t>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var f=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var s=t.length;n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o,l=parseInt(t.substr(2*a,2),16);if((o=l)!=o)break;e[r+a]=l}return a}(this,e,t,r);case"utf8":case"utf-8":return i=t,s=r,k(S(e,this.length-i),this,i,s);case"ascii":return a=t,o=r,k(C(e),this,a,o);case"latin1":case"binary":return function(e,t,r,n){return k(C(t),e,r,n)}(this,e,t,r);case"base64":return l=t,u=r,k(A(e),this,l,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return h=t,c=r,k(function(e,t){for(var r,n,i=[],s=0;s<e.length&&!((t-=2)<0);++s)n=(r=e.charCodeAt(s))>>8,i.push(r%256),i.push(n);return i}(e,this.length-h),this,h,c);default:if(f)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),f=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},o.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n=this.subarray(e,t);return Object.setPrototypeOf(n,o.prototype),n},o.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},o.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},o.prototype.readUInt8=function(e,t){return e>>>=0,t||w(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return e>>>=0,t||w(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return e>>>=0,t||w(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return e>>>=0,t||w(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+0x1000000*this[e+3]},o.prototype.readUInt32BE=function(e,t){return e>>>=0,t||w(e,4,this.length),0x1000000*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*t)),n},o.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return s>=(i*=128)&&(s-=Math.pow(2,8*t)),s},o.prototype.readInt8=function(e,t){return(e>>>=0,t||w(e,1,this.length),128&this[e])?-((255-this[e]+1)*1):this[e]},o.prototype.readInt16LE=function(e,t){e>>>=0,t||w(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?0xffff0000|r:r},o.prototype.readInt16BE=function(e,t){e>>>=0,t||w(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?0xffff0000|r:r},o.prototype.readInt32LE=function(e,t){return e>>>=0,t||w(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return e>>>=0,t||w(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return e>>>=0,t||w(e,4,this.length),i.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return e>>>=0,t||w(e,4,this.length),i.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return e>>>=0,t||w(e,8,this.length),i.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return e>>>=0,t||w(e,8,this.length),i.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,r,n){if(e*=1,t>>>=0,r>>>=0,!n){var i=Math.pow(2,8*r)-1;_(this,e,t,r,i,0)}var s=1,a=0;for(this[t]=255&e;++a<r&&(s*=256);)this[t+a]=e/s&255;return t+r},o.prototype.writeUIntBE=function(e,t,r,n){if(e*=1,t>>>=0,r>>>=0,!n){var i=Math.pow(2,8*r)-1;_(this,e,t,r,i,0)}var s=r-1,a=1;for(this[t+s]=255&e;--s>=0&&(a*=256);)this[t+s]=e/a&255;return t+r},o.prototype.writeUInt8=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,1,255,0),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},o.prototype.writeUInt16BE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},o.prototype.writeUInt32LE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,4,0xffffffff,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},o.prototype.writeUInt32BE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,4,0xffffffff,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},o.prototype.writeIntLE=function(e,t,r,n){if(e*=1,t>>>=0,!n){var i=Math.pow(2,8*r-1);_(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s<r&&(a*=256);)e<0&&0===o&&0!==this[t+s-1]&&(o=1),this[t+s]=(e/a|0)-o&255;return t+r},o.prototype.writeIntBE=function(e,t,r,n){if(e*=1,t>>>=0,!n){var i=Math.pow(2,8*r-1);_(this,e,t,r,i-1,-i)}var s=r-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a|0)-o&255;return t+r},o.prototype.writeInt8=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},o.prototype.writeInt16BE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},o.prototype.writeInt32LE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,4,0x7fffffff,-0x80000000),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},o.prototype.writeInt32BE=function(e,t,r){return e*=1,t>>>=0,r||_(this,e,t,4,0x7fffffff,-0x80000000),e<0&&(e=0xffffffff+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},o.prototype.writeFloatLE=function(e,t,r){return I(this,e,t,!0,r)},o.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},o.prototype.writeDoubleLE=function(e,t,r){return E(this,e,t,!0,r)},o.prototype.writeDoubleBE=function(e,t,r){return E(this,e,t,!1,r)},o.prototype.copy=function(e,t,r,n){if(!o.isBuffer(e))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r||0===e.length||0===this.length)return 0;if(t<0)throw RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i=n-r;if(this===e&&"function"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(t,r,n);else if(this===e&&r<t&&t<n)for(var s=i-1;s>=0;--s)e[s+t]=this[s+r];else Uint8Array.prototype.set.call(e,this.subarray(r,n),t);return i},o.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw TypeError("encoding must be a string");if("string"==typeof n&&!o.isEncoding(n))throw TypeError("Unknown encoding: "+n);if(1===e.length){var i,s=e.charCodeAt(0);("utf8"===n&&s<128||"latin1"===n)&&(e=s)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<r)throw RangeError("Out of range index");if(r<=t)return this;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i<r;++i)this[i]=e;else{var a=o.isBuffer(e)?e:o.from(e,n),l=a.length;
15if(0===l)throw TypeError('The value "'+e+'" is invalid for argument "value"');for(i=0;i<r-t;++i)this[i+t]=a[i%l]}return this};var T=/[^+/0-9A-Za-z-_]/g;function S(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319||a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return s}function C(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}function A(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(T,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function k(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length)&&!(i>=e.length);++i)t[i+r]=e[i];return i}function x(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}var N=function(){for(var e="0123456789abcdef",t=Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)t[n+i]=e[r]+e[i];return t}()},783:function(e,t){t.read=function(e,t,r,n,i){var s,a,o=8*i-n-1,l=(1<<o)-1,u=l>>1,h=-7,c=r?i-1:0,d=r?-1:1,f=e[t+c];for(c+=d,s=f&(1<<-h)-1,f>>=-h,h+=o;h>0;s=256*s+e[t+c],c+=d,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=n;h>0;a=256*a+e[t+c],c+=d,h-=8);if(0===s)s=1-u;else{if(s===l)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),s-=u}return(f?-1:1)*a*Math.pow(2,s-n)},t.write=function(e,t,r,n,i,s){var a,o,l,u=8*s-i-1,h=(1<<u)-1,c=h>>1,d=5960464477539062e-23*(23===i),f=n?0:s-1,p=n?1:-1,g=+(t<0||0===t&&1/t<0);for(isNaN(t=Math.abs(t))||t===1/0?(o=+!!isNaN(t),a=h):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+c>=1?t+=d/l:t+=d*Math.pow(2,1-c),t*l>=2&&(a++,l/=2),a+c>=h?(o=0,a=h):a+c>=1?(o=(t*l-1)*Math.pow(2,i),a+=c):(o=t*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&o,f+=p,o/=256,i-=8);for(a=a<<i|o,u+=i;u>0;e[r+f]=255&a,f+=p,a/=256,u-=8);e[r+f-p]|=128*g}}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}},a=!0;try{n[e](r,r.exports,s),a=!1}finally{a&&delete i[e]}return r.exports}s.ab="/ROOT/node_modules/next/dist/compiled/buffer/",t.exports=s(72)},14539,76510,36180,98925,e=>{"use strict";var t,r,n,i,s,a,o,l,u,h,c,d,f,p,g=e.i(92953);(0,g.registerVersion)("firebase","12.8.0","app"),e.s([],14539);var m=e.i(97427);e.s(["getApps",()=>g.getApps,"initializeApp",()=>g.initializeApp],76510);var y=e.i(8070),v=e.i(47167),w=e.i(67034),_=m,b="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,I={};(function(){function e(){this.blockSize=-1,this.blockSize=64,this.g=[,,,,],this.C=Array(this.blockSize),this.o=this.h=0,this.u()}var n=function(){this.blockSize=-1};function i(){}function s(e,t,r){r||(r=0);let n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1],i=e.g[2];let s=e.g[3],a;a=t+(s^r&(i^s))+n[0]+0xd76aa478|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[1]+0xe8c7b756|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[2]+0x242070db|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[3]+0xc1bdceee|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[4]+0xf57c0faf|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[5]+0x4787c62a|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[6]+0xa8304613|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[7]+0xfd469501|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[8]+0x698098d8|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[9]+0x8b44f7af|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[10]+0xffff5bb1|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[11]+0x895cd7be|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[12]+0x6b901122|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[13]+0xfd987193|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[14]+0xa679438e|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[15]+0x49b40821|0,r=i+(a<<22|a>>>10),a=t+(i^s&(r^i))+n[1]+0xf61e2562|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[6]+0xc040b340|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[11]+0x265e5a51|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[0]+0xe9b6c7aa|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[5]+0xd62f105d|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[10]+0x2441453|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[15]+0xd8a1e681|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[4]+0xe7d3fbc8|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[9]+0x21e1cde6|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[14]+0xc33707d6|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[3]+0xf4d50d87|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[8]+0x455a14ed|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[13]+0xa9e3e905|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[2]+0xfcefa3f8|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[7]+0x676f02d9|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[12]+0x8d2a4c8a|0,a=t+((r=i+(a<<20|a>>>
1512))^i^s)+n[5]+0xfffa3942|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[8]+0x8771f681|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[11]+0x6d9d6122|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[14]+0xfde5380c|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[1]+0xa4beea44|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[4]+0x4bdecfa9|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[7]+0xf6bb4b60|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[10]+0xbebfbc70|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[13]+0x289b7ec6|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[0]+0xeaa127fa|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[3]+0xd4ef3085|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[6]+0x4881d05|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[9]+0xd9d4d039|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[12]+0xe6db99e5|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[15]+0x1fa27cf8|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[2]+0xc4ac5665|0,r=i+(a<<23|a>>>9),a=t+(i^(r|~s))+n[0]+0xf4292244|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[7]+0x432aff97|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[14]+0xab9423a7|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[5]+0xfc93a039|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[12]+0x655b59c3|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[3]+0x8f0ccc92|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[10]+0xffeff47d|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[1]+0x85845dd1|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[8]+0x6fa87e4f|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[15]+0xfe2ce6e0|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[6]+0xa3014314|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[13]+0x4e0811a1|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[4]+0xf7537e82|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[11]+0xbd3af235|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[2]+0x2ad7d2bb|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[9]+0xeb86d391|0,e.g[0]=e.g[0]+t|0,e.g[1]=e.g[1]+(i+(a<<21|a>>>11))|0,e.g[2]=e.g[2]+i|0,e.g[3]=e.g[3]+s|0}function a(e,t){this.h=t;let r=[],n=!0;for(let i=e.length-1;i>=0;i--){let s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}i.prototype=n.prototype,e.F=n.prototype,e.prototype=new i,e.prototype.constructor=e,e.D=function(e,t,r){for(var i=Array(arguments.length-2),s=2;s<arguments.length;s++)i[s-2]=arguments[s];return n.prototype[t].apply(e,i)},e.prototype.u=function(){this.g[0]=0x67452301,this.g[1]=0xefcdab89,this.g[2]=0x98badcfe,this.g[3]=0x10325476,this.o=this.h=0},e.prototype.v=function(e,t){void 0===t&&(t=e.length);let r=t-this.blockSize,n=this.C,i=this.h,a=0;for(;a<t;){if(0==i)for(;a<=r;)s(this,e,a),a+=this.blockSize;if("string"==typeof e){for(;a<t;)if(n[i++]=e.charCodeAt(a++),i==this.blockSize){s(this,n),i=0;break}}else for(;a<t;)if(n[i++]=e[a++],i==this.blockSize){s(this,n),i=0;break}}this.h=i,this.o+=t},e.prototype.A=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;t=8*this.o;for(var r=e.length-8;r<e.length;++r)e[r]=255&t,t/=256;for(this.v(e),e=Array(16),t=0,r=0;r<4;++r)for(let n=0;n<32;n+=8)e[t++]=this.g[r]>>>n&255;return e};var o,l={};function u(e){var t;return -128<=e&&e<128?(t=function(e){return new a([0|e],e<0?-1:0)},Object.prototype.hasOwnProperty.call(l,e)?l[e]:l[e]=t(e)):new a([0|e],e<0?-1:0)}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return m(h(-e));let t=[],r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=0x100000000;return new a(t,0)}var c=u(0),d=u(1),f=u(0x1000000);function p(e){if(0!=e.h)return!1;for(let t=0;t<e.g.length;t++)if(0!=e.g[t])return!1;return!0}function g(e){return -1==e.h}function m(e){let t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new a(r,~e.h).add(d)}function y(e,t){return e.add(m(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function w(e,t){this.g=e,this.h=t}function _(e,t){if(p(t))throw Error("division by zero");if(p(e))return new w(c,c);if(g(e))return t=_(m(e),t),new w(m(t.g),m(t.h));if(g(t))return t=_(e,m(t)),new w(m(t.g),t.h);if(e.g.length>30){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=d,n=t;0>=n.l(e);)r=b(r),n=b(n);var i=E(r,1),s=E(n,1);for(n=E(n,2),r=E(r,2);!p(n);){var a=s.add(n);0>=a.l(e)&&(i=i.add(r),s=a),n=E(n,1),r=E(r,1)}return t=y(e,i.j(t)),new w(i,t)}for(i=c;e.l(t)>=0;){for(n=(n=Math.ceil(Math.log(r=Math.max(1,Math.floor(e.m()/t.m())))/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);g(a)||a.l(e)>0;)r-=n,a=(s=h(r)).j(t);p(s)&&(s=d),i=i.add(s),e=y(e,a)}return new w(i,e)}function b(e){let t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new a(r,e.h)}function E(e,t){let r=t>>5;t%=32;let n=e.g.length-r,i=[];for(let s=0;s<n;s++)i[s]=t>0?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new a(i,e.h)}(o=a.prototype).m=function(){if(g(this))return-m(this).m();let e=0,t=1;for(let r=0;r<this.g.length;r++){let n=this.i(r);e+=(n>=0?n:0x100000000+n)*t,t*=0x100000000}return e},o.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(g(this))return"-"+m(this).toString(e);let t=h(Math.pow(e,6));var r=this;let n="";for(;;){let i=_(r,t).g,s=(((r=y(r,i.j(t))).g.length>0?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},o.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},o.l=function(e){return g(e=y(this,e))?-1:+!p(e)},o.abs=function(){return g(this)?m(this):this},o.add=function(e){let t=Math.max(this.g.length,e.g.length),r=[],n=0;for(let i=0;i<=t;i++){let t=n+(65535&this.i(i))+(65535&e.i(i)),s=(t>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16);n=s>>>16,t&=65535,s&=65535,r[i]=s<<16|t}return new a(r,-0x80000000&r[r.length-1]?-1:0)},o.j=function(e){if(p(this)||p(e))return c;if(g(this))return g(e)?m(this).j(m(e)):m(m(this).j(e));if(g(e))return m(this.j(m(e)));if(0>this.l(f)&&0>e.l(f))return h(this.m()*e.m());let t=this.g.length+e.g.length,r=[];for(var n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let t=0;t<e.g.length;t++){let i=this.i(n)>>>16,s=65535&this.i(n),a=e.i(t)>>>16,o=65535&e.i(t);r[2*n+2*t]+=s*o,v(r,2*n+2*t),r[2*n+2*t+1]+=i*o,v(r,2*n+2*t+1),r[2*n+2*t+1]+=s*a,v(r,2*n+2*t+1),r[2*n+2*t+2]+=i*a,v(r,2*n+2*t+2)}for(e=0;e<t;e++)r[e]=r[2*e+1]<<16|r[2*e];for(e=t;e<2*t;e++)r[e]=0;return new a(r,0)},o.B=function(e){return _(this,e).h},o.and=function(e){let t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new a(r,this.h&e.h)},o.or=function(e){let t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new a(r,this.h|e.h)},o.xor=function(e){let t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new a(r,this.h^e.h)},e.prototype.digest=e.prototype.A,e.prototype.reset=e.prototype.u,e.prototype.update=e.prototype.v,r=I.Md5=e,a.prototype.add=a.prototype.add,a.prototype.multiply=a.prototype.j,a.prototype.modulo=a.prototype.B,a.prototype.compare=a.prototype.l,a.prototype.toNumber=a.prototype.m,a.prototype.toString=a.prototype.toString,a.prototype.getBits=a.prototype.i,a.fromNumber=h,a.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return m(e(t.substring(1),r));if(t.indexOf("-")>=0)throw Error('number format error: interior "-" character');let n=h(Math.pow(r,8)),i=c;for(let e=0;e<t.length;e+=8){var s=Math.min(8,t.length-e);let a=parseInt(t.substring(e,e+s),r);s<8?(s=h(Math.pow(r,s)),i=i.j(s).add(h(a))):i=(i=i.j(n)).add(h(a))}return i},t=I.Integer=a}).apply(void 0!==b?b:"u">typeof self?self:"u">typeof window?window:{});var E=e.i(83877),T="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,S={};(function(){var e,t,r=Object.defineProperty,c=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof T&&T];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")}(this);function d(e,t){if(t)e:{var n=c;e=e.split(".");for(var i=0;i<e.length-1;i++){var s=e[i];if(!(s in n))break e;n=n[s]}(t=t(i=n[e=e[e.length-1]]))!=i&&null!=t&&r(n,e,{configurable:!0,writable:!0,value:t})}}d("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),d("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),d("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var f=f||{},p=this||self;function g(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function m(e,t,r){return e.call.apply(e.bind,arguments)}function y(e,t,r){return(y=m).apply(null,arguments)}
15function v(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=r.slice();return t.push.apply(t,arguments),e.apply(this,t)}}function w(e,t){function r(){}r.prototype=t.prototype,e.Z=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.Ob=function(e,r,n){for(var i=Array(arguments.length-2),s=2;s<arguments.length;s++)i[s-2]=arguments[s];return t.prototype[r].apply(e,i)}}var _="u">typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function b(e){let t=e.length;if(t>0){let r=Array(t);for(let n=0;n<t;n++)r[n]=e[n];return r}return[]}function I(e,t){for(let t=1;t<arguments.length;t++){let n=arguments[t];var r=typeof n;if("array"==(r="object"!=r?r:n?Array.isArray(n)?"array":r:"null")||"object"==r&&"number"==typeof n.length){r=e.length||0;let t=n.length||0;e.length=r+t;for(let i=0;i<t;i++)e[r+i]=n[i]}else e.push(n)}}var E=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return this.h>0?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new C,e=>e.reset());class C{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}}let A,k=!1,x=new class{constructor(){this.h=this.g=null}add(e,t){let r=E.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},N=()=>{let e=Promise.resolve(void 0);A=()=>{e.then(D)}};function D(){let e;for(var t;e=null,x.g&&(e=x.g,x.g=x.g.next,x.g||(x.h=null),e.next=null),t=e;){try{t.h.call(t.g)}catch(e){!function(e){p.setTimeout(()=>{throw e},0)}(e)}E.j(t),E.h<100&&(E.h++,t.next=E.g,E.g=t)}k=!1}function R(){this.u=this.u,this.C=this.C}function O(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}R.prototype.u=!1,R.prototype.dispose=function(){this.u||(this.u=!0,this.N())},R.prototype[Symbol.dispose]=function(){this.dispose()},R.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},O.prototype.h=function(){this.defaultPrevented=!0};var P=function(){if(!p.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{let e=()=>{};p.addEventListener("test",e,t),p.removeEventListener("test",e,t)}catch(e){}return e}();function L(e){return/^[\s\xa0]*$/.test(e)}function M(e,t){O.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&&this.init(e,t)}w(M,O),M.prototype.init=function(e,t){let r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.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=e.pointerType,this.state=e.state,this.i=e,e.defaultPrevented&&M.Z.h.call(this)},M.prototype.h=function(){M.Z.h.call(this);let e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var F="closure_listenable_"+(1e6*Math.random()|0),U=0;function V(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++U,this.da=this.fa=!1}function B(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function q(e,t,r){for(let n in e)t.call(r,e[n],n,e)}function j(e){let t={};for(let r in e)t[r]=e[r];return t}let z="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function $(e,t){let r,n;for(let t=1;t<arguments.length;t++){for(r in n=arguments[t])e[r]=n[r];for(let t=0;t<z.length;t++)r=z[t],Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}}function K(e){this.src=e,this.g={},this.h=0}function G(e,t){let r=t.type;if(r in e.g){var n,i=e.g[r],s=Array.prototype.indexOf.call(i,t,void 0);(n=s>=0)&&Array.prototype.splice.call(i,s,1),n&&(B(t),0==e.g[r].length&&(delete e.g[r],e.h--))}}function H(e,t,r,n){for(let i=0;i<e.length;++i){let s=e[i];if(!s.da&&s.listener==t&&!!r==s.capture&&s.ha==n)return i}return -1}K.prototype.add=function(e,t,r,n,i){let s=e.toString();(e=this.g[s])||(e=this.g[s]=[],this.h++);let a=H(e,t,n,i);return a>-1?(t=e[a],r||(t.fa=!1)):((t=new V(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var W="closure_lm_"+(1e6*Math.random()|0),Q={};function J(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");let a=g(i)?!!i.capture:!!i,o=ee(e);
15if(o||(e[W]=o=new K(e)),(r=o.add(t,r,n,a,s)).proxy)return r;if(n=function e(t){return Z.call(e.src,e.listener,t)},r.proxy=n,n.src=e,n.listener=r,e.addEventListener)P||(i=a),void 0===i&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(X(t.toString()),n);else if(e.addListener&&e.removeListener)e.addListener(n);else throw Error("addEventListener and attachEvent are unavailable.");return r}function Y(e){if("number"!=typeof e&&e&&!e.da){var t=e.src;if(t&&t[F])G(t.i,e);else{var r=e.type,n=e.proxy;t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(X(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ee(t))?(G(r,e),0==r.h&&(r.src=null,t[W]=null)):B(e)}}}function X(e){return e in Q?Q[e]:Q[e]="on"+e}function Z(e,t){if(e.da)e=!0;else{t=new M(t,this);let r=e.listener,n=e.ha||e.src;e.fa&&Y(e),e=r.call(n,t)}return e}function ee(e){return(e=e[W])instanceof K?e:null}var et="__closure_events_fn_"+(1e9*Math.random()>>>0);function er(e){return"function"==typeof e?e:(e[et]||(e[et]=function(t){return e.handleEvent(t)}),e[et])}function en(){R.call(this),this.i=new K(this),this.M=this,this.G=null}function ei(e,t){let r,n;var i,s=e.G;if(s)for(i=[];s;s=s.G)i.push(s);if(e=e.M,s=t.type||t,"string"==typeof t)t=new O(t,e);else if(t instanceof O)t.target=t.target||e;else{var a=t;$(t=new O(s,e),a)}if(a=!0,i)for(n=i.length-1;n>=0;n--)a=es(r=t.g=i[n],s,!0,t)&&a;if(a=es(r=t.g=e,s,!0,t)&&a,a=es(r,s,!1,t)&&a,i)for(n=0;n<i.length;n++)a=es(r=t.g=i[n],s,!1,t)&&a}function es(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let s=0;s<t.length;++s){let a=t[s];if(a&&!a.da&&a.capture==r){let t=a.listener,r=a.ha||a.src;a.fa&&G(e.i,a),i=!1!==t.call(r,n)&&i}}return i&&!n.defaultPrevented}w(en,R),en.prototype[F]=!0,en.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else(i=g(i)?!!i.capture:!!i,n=er(n),t&&t[F])?(t=t.i,(a=String(r).toString())in t.g&&(n=H(r=t.g[a],n,i,s))>-1&&(B(r[n]),Array.prototype.splice.call(r,n,1),0==r.length&&(delete t.g[a],t.h--))):t&&(t=ee(t))&&(r=t.g[r.toString()],t=-1,r&&(t=H(r,n,i,s)),(n=t>-1?r[t]:null)&&Y(n))}(this,e,t,r,n)},en.prototype.N=function(){if(en.Z.N.call(this),this.i){var e=this.i;for(let t in e.g){let r=e.g[t];for(let e=0;e<r.length;e++)B(r[e]);delete e.g[t],e.h--}}this.G=null},en.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},en.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class ea extends R{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=function(e,t){if("function"!=typeof e)if(e&&"function"==typeof e.handleEvent)e=y(e.handleEvent,e);else throw Error("Invalid listener argument");return Number(t)>0x7fffffff?-1:p.setTimeout(e,t||0)}(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);let r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(p.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function eo(e){R.call(this),this.h=e,this.g={}}w(eo,R);var el=[];function eu(e){q(e.g,function(e,t){this.g.hasOwnProperty(t)&&Y(e)},e),e.g={}}eo.prototype.N=function(){eo.Z.N.call(this),eu(this)},eo.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var eh=p.JSON.stringify,ec=p.JSON.parse,ed=class{stringify(e){return p.JSON.stringify(e,void 0)}parse(e){return p.JSON.parse(e,void 0)}};function ef(){}function ep(){}var eg={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function em(){O.call(this,"d")}function ey(){O.call(this,"c")}w(em,O),w(ey,O);var ev={},ew=null;function e_(){return ew=ew||new en}function eb(e){O.call(this,ev.Ia,e)}function eI(e){let t=e_();ei(t,new eb(t))}function eE(e,t){O.call(this,ev.STAT_EVENT,e),this.stat=t}function eT(e){let t=e_();ei(t,new eE(t,e))}function eS(e,t){O.call(this,ev.Ja,e),this.size=t}function eC(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return p.setTimeout(function(){e()},t)}function eA(){this.g=!0}function ek(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+function(e,t){if(!e.g)return t;if(!t)return null;try{let s=JSON.parse(t);if(s){for(e=0;e<s.length;e++)if(Array.isArray(s[e])){var r=s[e];if(!(r.length<2)){var n=r[1];if(Array.isArray(n)&&!(n.length<1)){var i=n[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(let e=1;e<n.length;e++)n[e]=""}}}}return eh(s)}catch(e){return t}}(e,r)+(n?" "+n:"")})}ev.Ia="serverreachability",w(eb,O),ev.STAT_EVENT="statevent",w(eE,O),ev.Ja="timingevent",w(eS,O),eA.prototype.ua=function(){this.g=!1},eA.prototype.info=function(){};var ex={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},eN={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function eD(){}function eR(e){return encodeURIComponent(String(e))}function eO(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new eo(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new eP}function eP(){this.i=null,this.g="",this.h=!1}w(eD,ef),eD.prototype.g=function(){return new XMLHttpRequest},e=new eD;var eL={},eM={};function eF(e,t,r){e.M=1,e.A=e8(e2(t)),e.u=r,e.R=!0,eU(e,null)}function eU(e,t){e.F=Date.now(),eB(e),e.B=e2(e.A);var r,n,i,s,a,o,l=e.B,u=e.S;Array.isArray(u)||(u=[String(u)]),tc(l.i,"t",u),e.C=0,l=e.j.L,e.h=new eP,e.g=tY(e.j,l?t:null,!e.u),e.P>0&&(e.O=new ea(y(e.Y,e,e.g),e.P)),t=e.V,l=e.g,u=e.ba;var h="readystatechange";Array.isArray(h)||(h&&(el[0]=h.toString()),h=el);for(let e=0;e<h.length;e++){let r=function e(t,r,n,i,s){if(i&&i.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(let a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}return n=er(n),t&&t[F]?t.K(r,n,g(i)?!!i.capture:!!i,s):J(t,r,n,!0,i,s)}(t,r,n,i,s);if(Array.isArray(r)){for(let a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}return n=er(n),t&&t[F]?t.J(r,n,g(i)?!!i.capture:!!i,s):J(t,r,n,!1,i,s)}(l,h[e],u||t.handleEvent,!1,t.h||t);if(!r)break;t.g[r.key]=r}t=e.J?j(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),eI(),r=e.i,n=e.v,i=e.B,s=e.l,a=e.S,o=e.u,r.info(function(){if(r.g)if(o){var e="",t=o.split("&");for(let r=0;r<t.length;r++){var l=t[r].split("=");if(l.length>1){let t=l[0];l=l[1];let r=t.split("_");e=r.length>=2&&"type"==r[1]?e+(t+"=")+l+"&":e+(t+"=redacted&")}}}else e=null;else e=o;return"XMLHTTP REQ ("+s+") [attempt "+a+"]: "+n+"\n"+i+"\n"+e})}function eV(e){return!!e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function eB(e){e.T=Date.now()+e.H,eq(e,e.H)}function eq(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=eC(y(e.aa,e),t)}function ej(e){e.D&&(p.clearTimeout(e.D),e.D=null)}function ez(e){0==e.j.I||e.K||tG(e.j,e)}function e$(e){ej(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,eu(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dis
15pose())}function eK(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||eJ(r.h,e))){if(!e.L&&eJ(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g)if(r.g.F+3e3<e.F)tK(r),tL(r);else break e;tj(r),eT(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=eC(y(r.Va,r),6e3));1>=eQ(r.h)&&r.ta&&(r.ta=void 0)}else tW(r,11)}else if((e.L||r.g==e)&&tK(r),!L(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){let o=i[t],l=o[0];if(!(l<=r.K))if(r.K=l,o=o[1],2==r.I)if("c"==o[0]){r.M=o[1],r.ba=o[2];let t=o[3];null!=t&&(r.ka=t,r.j.info("VER="+r.ka));let i=o[4];null!=i&&(r.za=i,r.j.info("SVER="+r.za));let l=o[5];null!=l&&"number"==typeof l&&l>0&&(r.O=n=1.5*l,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r;let u=e.g;if(u){let e=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(e){var s=n.h;s.g||-1==e.indexOf("spdy")&&-1==e.indexOf("quic")&&-1==e.indexOf("h2")||(s.j=s.l,s.g=new Set,s.h&&(eY(s,s.h),s.h=null))}if(n.G){let e=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null;e&&(n.wa=e,e4(n.J,n.G,e))}}if(r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),(n=r).na=tJ(n,n.L?n.ba:null,n.W),e.L){eX(n.h,e);var a=n.O;a&&(e.H=a),e.D&&(ej(e),eB(e)),n.g=e}else tq(n);r.i.length>0&&tF(r)}else"stop"!=o[0]&&"close"!=o[0]||tW(r,7);else 3==r.I&&("stop"==o[0]||"close"==o[0]?"stop"==o[0]?tW(r,7):tP(r):"noop"!=o[0]&&r.l&&r.l.qa(o),r.A=0)}}eI(4)}catch(e){}}eO.prototype.ba=function(e){e=e.target;let t=this.O;t&&3==tN(e)?t.j():this.Y(e)},eO.prototype.Y=function(e){try{if(e==this.g)e:{let d=tN(this.g),f=this.g.ya(),g=this.g.ca();if(!(d<3)&&(3!=d||this.g&&(this.h.h||this.g.la()||tD(this.g)))){this.K||4!=d||7==f||(8==f||g<=0?eI(3):eI(2)),ej(this);var t=this.g.ca();this.X=t;var r=function(e){if(!eV(e))return e.g.la();let t=tD(e.g);if(""===t)return"";let r="",n=t.length,i=4==tN(e.g);if(!e.h.i){if("u"<typeof TextDecoder)return e$(e),ez(e),"";e.h.i=new p.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g}(this);if(this.o=200==t,n=this.i,i=this.v,s=this.B,a=this.l,o=this.S,n.info(function(){return"XMLHTTP RESP ("+a+") [ attempt "+o+"]: "+i+"\n"+s+"\n"+d+" "+t}),this.o){if(this.U&&!this.L){t:{if(this.g){var n,i,s,a,o,l,u=this.g;if((l=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!L(l)){var h=l;break t}}h=null}if(e=h)ek(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,eK(this,e);else{this.o=!1,this.m=3,eT(12),e$(this),ez(this);break e}}if(this.R){let t;for(e=!0;!this.K&&this.C<r.length;)if((t=function(e,t){var r=e.C,n=t.indexOf("\n",r);return -1==n?eM:isNaN(r=Number(t.substring(r,n)))?eL:(n+=1)+r>t.length?eM:(t=t.slice(n,n+r),e.C=n+r,t)}(this,r))==eM){4==d&&(this.m=4,eT(14),e=!1),ek(this.i,this.l,null,"[Incomplete Response]");break}else if(t==eL){this.m=4,eT(15),ek(this.i,this.l,r,"[Invalid Chunk]"),e=!1;break}else ek(this.i,this.l,t,null),eK(this,t);if(eV(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=d||0!=r.length||this.h.h||(this.m=1,eT(16),e=!1),this.o=this.o&&e,e){if(r.length>0&&!this.W){this.W=!0;var c=this.j;c.g==this&&c.aa&&!c.P&&(c.j.info("Great, no buffering proxy detected. Bytes received: "+r.length),tz(c),c.P=!0,eT(11))}}else ek(this.i,this.l,r,"[Invalid Chunked Response]"),e$(this),ez(this)}else ek(this.i,this.l,r,null),eK(this,r);4==d&&e$(this),this.o&&!this.K&&(4==d?tG(this.j,this):(this.o=!1,eB(this)))}else(function(e){let t={};e=(e.g&&tN(e)>=2&&e.g.getAllResponseHeaders()||"").split("\r\n");for(let n=0;n<e.length;n++){if(L(e[n]))continue;var r=function(e){var t=1;e=e.split(":");let r=[];for(;t>0&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r}(e[n]);let i=r[0];if("string"!=typeof(r=r[1]))continue;r=r.trim();let s=t[i]||[];t[i]=s,s.push(r)}var n=function(e){return e.join(", ")};for(let e in t)n.call(void 0,t[e],e,t)})(this.g),400==t&&r.indexOf("Unknown SID")>0?(this.m=3,eT(12)):(this.m=0,eT(13)),e$(this),ez(this)}}}catch(e){}finally{}},eO.prototype.cancel=function(){this.K=!0,e$(this)},eO.prototype.aa=function(){var e,t;this.D=null;let r=Date.now();r-this.T>=0?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(eI(),eT(17)),e$(this),this.m=2,ez(this)):eq(this,this.T-r)};var eG=class{constructor(e,t){this.g=e,this.map=t}};function eH(e){this.l=e||10,e=p.PerformanceNavigationTiming?(e=p.performance.getEntriesByType("navigation")).length>0&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(p.chrome&&p.chrome.loadTimes&&p.chrome.loadTimes()&&p.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,this.j>1&&(this.g=new Set),this.h=null,this.i=[]}function eW(e){return!!e.h||!!e.g&&e.g.size>=e.j}function eQ(e){return e.h?1:e.g?e.g.size:0}function eJ(e,t){return e.h?e.h==t:!!e.g&&e.g.has(t)}function eY(e,t){e.g?e.g.add(t):e.h=t}function eX(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function eZ(e){if(null!=e.h)return e.i.concat(e.h.G);if(null!=e.g&&0!==e.g.size){let t=e.i;for(let r of e.g.values())t=t.concat(r.G);return t}return b(e.i)}eH.prototype.cancel=function(){if(this.i=eZ(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(let e of this.g.values())e.cancel();this.g.clear()}};var e0=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function e1(e){let t;this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1,e instanceof e1?(this.l=e.l,e6(this,e.j),this.o=e.o,this.g=e.g,e3(this,e.u),this.h=e.h,e5(this,td(e.i)),this.m=e.m):e&&(t=String(e).match(e0))?(this.l=!1,e6(this,t[1]||"",!0),this.o=e7(t[2]||""),this.g=e7(t[3]||"",!0),e3(this,t[4]),this.h=e7(t[5]||"",!0),e5(this,t[6]||"",!0),this.m=e7(t[7]||"")):(this.l=!1,this.i=new ta(null,this.l))}function e2(e){return new e1(e)}function e6(e,t,r){e.j=r?e7(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function e3(e,t){if(t){if(isNaN(t=Number(t))||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function e5(e,t,r){var n,i;t instanceof ta?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(to(n),n.i=null,n.g.forEach(function(e,t){let r=t.toLowerCase();t!=r&&(tl(this,t),tc(this,r,e))},n)),n.j=i):(r||(t=e9(t,ti)),e.i=new ta(t,e.l))}function e4(e,t,r){e.i.set(t,r)}function e8(e){return e4(e,"zx",Math.floor(0x80000000*Math.random()).toString(36)+Math.abs(Math.floor(0x80000000*Math.random())^Date.now()).toString(36)),e}function e7(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function e9(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,te),r&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function te(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}e1.prototype.toString=function(){let e=[];var t=this.j;t&&e.push(e9(t,tt,!0),":");var r=this.g;return(r||"file"==t)&&(e.push("//"),(t=this.o)&&e.push(e9(t,tt,!0),"@"),e.push(eR(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(r=this.u)&&e.push(":",String(r))),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(e9(r,"/"==r.charAt(0)?tn:tr,!0))
15),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",e9(r,ts)),e.join("")},e1.prototype.resolve=function(e){let t=e2(this),r=!!e.j;r?e6(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)e3(t,e.u);else if(r=!!e.h){if("/"!=n.charAt(0))if(this.g&&!this.h)n="/"+n;else{var i=t.h.lastIndexOf("/");-1!=i&&(n=t.h.slice(0,i+1)+n)}if(".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){n=0==i.lastIndexOf("/",0),i=i.split("/");let e=[];for(let t=0;t<i.length;){let r=i[t++];"."==r?n&&t==i.length&&e.push(""):".."==r?((e.length>1||1==e.length&&""!=e[0])&&e.pop(),n&&t==i.length&&e.push("")):(e.push(r),n=!0)}n=e.join("/")}else n=i}return r?t.h=n:r=""!==e.i.toString(),r?e5(t,td(e.i)):r=!!e.m,r&&(t.m=e.m),t};var tt=/[#\/\?@]/g,tr=/[#\?:]/g,tn=/[#\?]/g,ti=/[#\?@]/g,ts=/#/g;function ta(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function to(e){e.g||(e.g=new Map,e.h=0,e.i&&function(e,t){if(e){e=e.split("&");for(let r=0;r<e.length;r++){let n=e[r].indexOf("="),i,s=null;n>=0?(i=e[r].substring(0,n),s=e[r].substring(n+1)):i=e[r],t(i,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(e.i,function(t,r){e.add(decodeURIComponent(t.replace(/\+/g," ")),r)}))}function tl(e,t){to(e),t=tf(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function tu(e,t){return to(e),t=tf(e,t),e.g.has(t)}function th(e,t){to(e);let r=[];if("string"==typeof t)tu(e,t)&&(r=r.concat(e.g.get(tf(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function tc(e,t,r){tl(e,t),r.length>0&&(e.i=null,e.g.set(tf(e,t),b(r)),e.h+=r.length)}function td(e){let t=new ta;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function tf(e,t){return t=String(t),e.j&&(t=t.toLowerCase()),t}function tp(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function tg(){this.g=new ed}function tm(e){this.i=e.Sb||null,this.h=e.ab||!1}function ty(e,t){en.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function tv(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function tw(e){e.readyState=4,e.l=null,e.j=null,e.B=null,t_(e)}function t_(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function tb(e){let t="";return q(e,function(e,r){t+=r,t+=":",t+=e,t+="\r\n"}),t}function tI(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=tb(r),"string"==typeof e?null!=r&&eR(r):e4(e,t,r))}function tE(e){en.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(t=ta.prototype).add=function(e,t){to(this),this.i=null,e=tf(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},t.forEach=function(e,t){to(this),this.g.forEach(function(r,n){r.forEach(function(r){e.call(t,r,n,this)},this)},this)},t.set=function(e,t){return to(this),this.i=null,tu(this,e=tf(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},t.get=function(e,t){return e&&(e=th(this,e)).length>0?String(e[0]):t},t.toString=function(){if(this.i)return this.i;if(!this.g)return"";let e=[],t=Array.from(this.g.keys());for(let n=0;n<t.length;n++){var r=t[n];let i=eR(r);r=th(this,r);for(let t=0;t<r.length;t++){let n=i;""!==r[t]&&(n+="="+eR(r[t])),e.push(n)}}return this.i=e.join("&")},w(tm,ef),tm.prototype.g=function(){return new ty(this.i,this.h)},w(ty,en),(t=ty.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,t_(this)},t.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;let t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||p).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},t.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),this.readyState>=1&&this.g&&4!=this.readyState&&(this.g=!1,tw(this)),this.readyState=0},t.Pa=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,t_(this)),this.g&&(this.readyState=3,t_(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==p.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;tv(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},t.Ma=function(e){if(this.g){if(this.o&&e.value)this.response.push(e.value);else if(!this.o){var t=e.value?e.value:new Uint8Array(0);(t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t)}e.done?tw(this):t_(this),3==this.readyState&&tv(this)}},t.Oa=function(e){this.g&&(this.response=this.responseText=e,tw(this))},t.Na=function(e){this.g&&(this.response=e,tw(this))},t.ga=function(){this.g&&tw(this)},t.setRequestHeader=function(e,t){this.A.append(e,t)},t.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},t.getAllResponseHeaders=function(){if(!this.h)return"";let e=[],t=this.h.entries();for(var r=t.next();!r.done;)e.push((r=r.value)[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(ty.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),w(tE,en);var tT=/^https?$/i,tS=["POST","PUT"];function tC(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,tA(e),tx(e)}function tA(e){e.A||(e.A=!0,ei(e,"complete"),ei(e,"error"))}function tk(e){if(e.h&&void 0!==f){if(e.v&&4==tN(e))setTimeout(e.Ca.bind(e),0);else if(ei(e,"readystatechange"),4==tN(e)){e.h=!1;try{let s=e.ca();switch(s){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var t,r,n=!0;break;default:n=!1}if(!(t=n)){if(r=0===s){let t=String(e.D).match(e0)[1]||null;!t&&p.self&&p.self.location&&(t=p.self.location.protocol.slice(0,-1)),r=!tT.test(t?t.toLowerCase():"")}t=r}if(t)ei(e,"complete"),ei(e,"success");else{e.o=6;try{var i=tN(e)>2?e.g.statusText:""}catch(e){i=""}e.l=i+" ["+e.ca()+"]",tA(e)}}finally{tx(e)}}}}function tx(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);let r=e.g;e.g=null,t||ei(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function tN(e){return e.g?e.g.readyState:0}function tD(e){try{if(!e.g)return null;if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}return null}catch(e){return null}}
15function tR(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function tO(e){this.za=0,this.i=[],this.j=new eA,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=tR("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=tR("baseRetryDelayMs",5e3,e),this.Za=tR("retryDelaySeedMs",1e4,e),this.Ta=tR("forwardChannelMaxRetries",2,e),this.va=tR("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new eH(e&&e.concurrentRequestLimit),this.Ba=new tg,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&e.longPollingTimeout>0&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function tP(e){if(tM(e),3==e.I){var t=e.V++,r=e2(e.J);if(e4(r,"SID",e.M),e4(r,"RID",t),e4(r,"TYPE","terminate"),tV(e,r),(t=new eO(e,e.j,t)).M=2,t.A=e8(e2(r)),r=!1,p.navigator&&p.navigator.sendBeacon)try{r=p.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&p.Image&&((new Image).src=t.A,r=!0),r||(t.g=tY(t.j,null),t.g.ea(t.A)),t.F=Date.now(),eB(t)}tQ(e)}function tL(e){e.g&&(tz(e),e.g.cancel(),e.g=null)}function tM(e){tL(e),e.v&&(p.clearTimeout(e.v),e.v=null),tK(e),e.h.cancel(),e.m&&("number"==typeof e.m&&p.clearTimeout(e.m),e.m=null)}function tF(e){if(!eW(e.h)&&!e.m){e.m=!0;var t=e.Ea;A||N(),k||(A(),k=!0),x.add(t,e),e.D=0}}function tU(e,t){var r;r=t?t.l:e.V++;let n=e2(e.J);e4(n,"SID",e.M),e4(n,"RID",r),e4(n,"AID",e.K),tV(e,n),e.u&&e.o&&tI(n,e.u,e.o),r=new eO(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=tB(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),eY(e.h,r),eF(r,n,t)}function tV(e,t){e.H&&q(e.H,function(e,r){e4(t,r,e)}),e.l&&q({},function(e,r){e4(t,r,e)})}function tB(e,t,r){r=Math.min(e.i.length,r);let n=e.l?y(e.l.Ka,e.l,e):null;e:{var i=e.i;let t=-1;for(;;){let e=["count="+r];-1==t?r>0?(t=i[0].g,e.push("ofs="+t)):t=0:e.push("ofs="+t);let o=!0;for(let l=0;l<r;l++){var s=i[l].g;let r=i[l].map;if((s-=t)<0)t=Math.max(0,i[l].g-100),o=!1;else try{s="req"+s+"_";try{var a=r instanceof Map?r:Object.entries(r);for(let[t,r]of a){let n=r;g(r)&&(n=eh(r)),e.push(s+t+"="+encodeURIComponent(n))}}catch(t){throw e.push(s+"type="+encodeURIComponent("_badmap")),t}}catch(e){n&&n(r)}}if(o){a=e.join("&");break e}}a=void 0}return t.G=e=e.i.splice(0,r),a}function tq(e){if(!e.g&&!e.v){e.Y=1;var t=e.Da;A||N(),k||(A(),k=!0),x.add(t,e),e.A=0}}function tj(e){return!e.g&&!e.v&&!(e.A>=3)&&(e.Y++,e.v=eC(y(e.Da,e),tH(e,e.A)),e.A++,!0)}function tz(e){null!=e.B&&(p.clearTimeout(e.B),e.B=null)}function t$(e){e.g=new eO(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=e2(e.na);e4(t,"RID","rpc"),e4(t,"SID",e.M),e4(t,"AID",e.K),e4(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&e4(t,"TO",e.ia),e4(t,"TYPE","xmlhttp"),tV(e,t),e.u&&e.o&&tI(t,e.u,e.o),e.O&&(e.g.H=e.O);var r=e.g;e=e.ba,r.M=1,r.A=e8(e2(t)),r.u=null,r.R=!0,eU(r,e)}function tK(e){null!=e.C&&(p.clearTimeout(e.C),e.C=null)}function tG(e,t){var r,n=null;if(e.g==t){tK(e),tz(e),e.g=null;var i=2}else{if(!eJ(e.h,t))return;n=t.G,eX(e.h,t),i=1}if(0!=e.I){if(t.o)if(1==i){n=t.u?t.u.length:0,t=Date.now()-t.F;var s=e.D;ei(i=e_(),new eS(i,n)),tF(e)}else tq(e);else if(3==(s=t.m)||0==s&&t.X>0||!(1==i&&(r=t,!(eQ(e.h)>=e.h.j-!!e.m)&&(e.m?(e.i=r.G.concat(e.i),!0):1!=e.I&&2!=e.I&&!(e.D>=(e.Sa?0:e.Ta))&&(e.m=eC(y(e.Ea,e,r),tH(e,e.D)),e.D++,!0)))||2==i&&tj(e)))switch(n&&n.length>0&&((t=e.h).i=t.i.concat(n)),s){case 1:tW(e,5);break;case 4:tW(e,10);break;case 3:tW(e,6);break;default:tW(e,2)}}}function tH(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function tW(e,t){if(e.j.info("Error code "+t),2==t){let t,s,a;var r,n=y(e.bb,e),i=e.Ua;let o=!i;i=new e1(i||"//www.google.com/images/cleardot.gif"),p.location&&"http"==p.location.protocol||e6(i,"https"),e8(i),o?function(e,t){let r=new eA;if(p.Image){let n=new Image;n.onload=v(tp,r,"TestLoadImage: loaded",!0,t,n),n.onerror=v(tp,r,"TestLoadImage: error",!1,t,n),n.onabort=v(tp,r,"TestLoadImage: abort",!1,t,n),n.ontimeout=v(tp,r,"TestLoadImage: timeout",!1,t,n),p.setTimeout(function(){n.ontimeout&&n.ontimeout()},1e4),n.src=e}else t(!1)}(i.toString(),n):(r=i.toString(),t=new eA,s=new AbortController,a=setTimeout(()=>{s.abort(),tp(t,"TestPingServer: timeout",!1,n)},1e4),fetch(r,{signal:s.signal}).then(e=>{clearTimeout(a),e.ok?tp(t,"TestPingServer: ok",!0,n):tp(t,"TestPingServer: server error",!1,n)}).catch(()=>{clearTimeout(a),tp(t,"TestPingServer: error",!1,n)}))}else eT(2);e.I=0,e.l&&e.l.pa(t),tQ(e),tM(e)}function tQ(e){if(e.I=0,e.ja=[],e.l){let t=eZ(e.h);(0!=t.length||0!=e.i.length)&&(I(e.ja,t),I(e.ja,e.i),e.h.i.length=0,b(e.i),e.i.length=0),e.l.oa()}}
15function tJ(e,t,r){var n=r instanceof e1?e2(r):new e1(r);if(""!=n.g)t&&(n.g=t+"."+n.g),e3(n,n.u);else{var i=p.location;n=i.protocol,t=t?t+"."+i.hostname:i.hostname,i=+i.port;let e=new e1(null);n&&e6(e,n),t&&(e.g=t),i&&e3(e,i),r&&(e.h=r),n=e}return r=e.G,t=e.wa,r&&t&&e4(n,r,t),e4(n,"VER",e.ka),tV(e,n),n}function tY(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=new tE(e.Aa&&!e.ma?new tm({ab:r}):e.ma)).Fa(e.L),t}function tX(){}function tZ(){}function t0(e,t){en.call(this),this.g=new tO(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.o=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.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!L(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!L(t)&&(this.g.G=t,null!==(e=this.h)&&t in e&&t in(e=this.h)&&delete e[t]),this.j=new t6(this)}function t1(e){em.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(let r in t){e=r;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 t2(){ey.call(this),this.status=1}function t6(e){this.g=e}(t=tE.prototype).Fa=function(e){this.H=e},t.ea=function(t,r,n,i){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+t);r=r?r.toUpperCase():"GET",this.D=t,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=this.L?this.L.g():e.g(),this.g.onreadystatechange=_(y(this.Ca,this));try{this.B=!0,this.g.open(r,String(t),!0),this.B=!1}catch(e){tC(this,e);return}if(t=n||"",n=new Map(this.headers),i)if(Object.getPrototypeOf(i)===Object.prototype)for(var s in i)n.set(s,i[s]);else if("function"==typeof i.keys&&"function"==typeof i.get)for(let e of i.keys())n.set(e,i.get(e));else throw Error("Unknown input type for opt_headers: "+String(i));for(let[e,a]of(i=Array.from(n.keys()).find(e=>"content-type"==e.toLowerCase()),s=p.FormData&&t instanceof p.FormData,!(Array.prototype.indexOf.call(tS,r,void 0)>=0)||i||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),n))this.g.setRequestHeader(e,a);this.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(t),this.v=!1}catch(e){tC(this,e)}},t.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,ei(this,"complete"),ei(this,"abort"),tx(this))},t.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),tx(this,!0)),tE.Z.N.call(this)},t.Ca=function(){this.u||(this.B||this.v||this.j?tk(this):this.Xa())},t.Xa=function(){tk(this)},t.isActive=function(){return!!this.g},t.ca=function(){try{return tN(this)>2?this.g.status:-1}catch(e){return -1}},t.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},t.La=function(e){if(this.g){var t=this.g.responseText;return e&&0==t.indexOf(e)&&(t=t.substring(e.length)),ec(t)}},t.ya=function(){return this.o},t.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(t=tO.prototype).ka=8,t.I=1,t.connect=function(e,t,r,n){eT(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=tJ(this,null,this.W),tF(this)},t.Ea=function(e){if(this.m)if(this.m=null,1==this.I){if(!e){this.V=Math.floor(1e5*Math.random()),e=this.V++;let i=new eO(this,this.j,e),s=this.o;if(this.U&&(s?$(s=j(s),this.U):s=this.U),null!==this.u||this.R||(i.J=s,s=null),this.S)e:{for(var t=0,r=0;r<this.i.length;r++){t:{var n=this.i[r];if("__data__"in n.map&&"string"==typeof(n=n.map.__data__)){n=n.length;break t}n=void 0}if(void 0===n)break;if((t+=n)>4096){t=r;break e}if(4096===t||r===this.i.length-1){t=r+1;break e}}t=1e3}else t=1e3;t=tB(this,i,t),e4(r=e2(this.J),"RID",e),e4(r,"CVER",22),this.G&&e4(r,"X-HTTP-Session-Id",this.G),tV(this,r),s&&(this.R?t="headers="+eR(tb(s))+"&"+t:this.u&&tI(r,this.u,s)),eY(this.h,i),this.Ra&&e4(r,"TYPE","init"),this.S?(e4(r,"$req",t),e4(r,"SID","null"),i.U=!0,eF(i,r,null)):eF(i,r,t),this.I=2}}else 3==this.I&&(e?tU(this,e):0==this.i.length||eW(this.h)||tU(this))}
15,t.Da=function(){if(this.v=null,t$(this),this.aa&&!(this.P||null==this.g||this.T<=0)){var e=4*this.T;this.j.info("BP detection timer enabled: "+e),this.B=eC(y(this.Wa,this),e)}},t.Wa=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.F=!1,this.P=!0,eT(10),tL(this),t$(this))},t.Va=function(){null!=this.C&&(this.C=null,tL(this),tj(this),eT(19))},t.bb=function(e){e?(this.j.info("Successfully pinged google.com"),eT(2)):(this.j.info("Failed to ping google.com"),eT(1))},t.isActive=function(){return!!this.l&&this.l.isActive(this)},(t=tX.prototype).ra=function(){},t.qa=function(){},t.pa=function(){},t.oa=function(){},t.isActive=function(){return!0},t.Ka=function(){},tZ.prototype.g=function(e,t){return new t0(e,t)},w(t0,en),t0.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},t0.prototype.close=function(){tP(this.g)},t0.prototype.o=function(e){var t=this.g;if("string"==typeof e){var r={};r.__data__=e,e=r}else this.v&&((r={}).__data__=eh(e),e=r);t.i.push(new eG(t.Ya++,e)),3==t.I&&tF(t)},t0.prototype.N=function(){this.g.l=null,delete this.j,tP(this.g),delete this.g,t0.Z.N.call(this)},w(t1,em),w(t2,ey),w(t6,tX),t6.prototype.ra=function(){ei(this.g,"a")},t6.prototype.qa=function(e){ei(this.g,new t1(e))},t6.prototype.pa=function(e){ei(this.g,new t2)},t6.prototype.oa=function(){ei(this.g,"b")},tZ.prototype.createWebChannel=tZ.prototype.g,t0.prototype.send=t0.prototype.o,t0.prototype.open=t0.prototype.m,t0.prototype.close=t0.prototype.close,h=S.createWebChannelTransport=function(){return new tZ},u=S.getStatEventTarget=function(){return e_()},l=S.Event=ev,o=S.Stat={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},ex.NO_ERROR=0,ex.TIMEOUT=8,ex.HTTP_ERROR=6,a=S.ErrorCode=ex,eN.COMPLETE="complete",s=S.EventType=eN,ep.EventType=eg,eg.OPEN="a",eg.CLOSE="b",eg.ERROR="c",eg.MESSAGE="d",en.prototype.listen=en.prototype.J,i=S.WebChannel=ep,S.FetchXmlHttpFactory=tm,tE.prototype.listenOnce=tE.prototype.K,tE.prototype.getLastError=tE.prototype.Ha,tE.prototype.getLastErrorCode=tE.prototype.ya,tE.prototype.getStatus=tE.prototype.ca,tE.prototype.getResponseJson=tE.prototype.La,tE.prototype.getResponseText=tE.prototype.la,tE.prototype.send=tE.prototype.ea,tE.prototype.setWithCredentials=tE.prototype.Fa,n=S.XhrIo=tE}).apply(void 0!==T?T:"u">typeof self?self:"u">typeof window?window:{});class C{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}}C.UNAUTHENTICATED=new C(null),C.GOOGLE_CREDENTIALS=new C("google-credentials-uid"),C.FIRST_PARTY=new C("first-party-uid"),C.MOCK_USER=new C("mock-user");let A="12.8.0",k=new E.Logger("@firebase/firestore");function x(){return k.logLevel}function N(e,...t){if(k.logLevel<=E.LogLevel.DEBUG){let r=t.map(O);k.debug(`Firestore (${A}): ${e}`,...r)}}function D(e,...t){if(k.logLevel<=E.LogLevel.ERROR){let r=t.map(O);k.error(`Firestore (${A}): ${e}`,...r)}}function R(e,...t){if(k.logLevel<=E.LogLevel.WARN){let r=t.map(O);k.warn(`Firestore (${A}): ${e}`,...r)}}function O(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(t){return e}}function P(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,L(e,n,r)}function L(e,t,r){let n=`FIRESTORE (${A}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw D(n),Error(n)}function M(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||L(t,i,n)}let F={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",UNIMPLEMENT
15ED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class U extends _.FirebaseError{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class V{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class B{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class q{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(C.UNAUTHENTICATED))}shutdown(){}}class j{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 z{constructor(e){this.t=e,this.currentUser=C.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,t){M(void 0===this.o,42304);let r=this.i,n=e=>this.i!==r?(r=this.i,t(e)):Promise.resolve(),i=new V;this.o=()=>{this.i++,this.currentUser=this.u(),i.resolve(),i=new V,e.enqueueRetryable(()=>n(this.currentUser))};let s=()=>{let t=i;e.enqueueRetryable(async()=>{await t.promise,await n(this.currentUser)})},a=e=>{N("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),s())};this.t.onInit(e=>a(e)),setTimeout(()=>{if(!this.auth){let e=this.t.getImmediate({optional:!0});e?a(e):(N("FirebaseAuthCredentialsProvider","Auth not yet detected"),i.resolve(),i=new V)}},0),s()}getToken(){let e=this.i,t=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(t).then(t=>this.i!==e?(N("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):t?(M("string"==typeof t.accessToken,31837,{l:t}),new B(t.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){let e=this.auth&&this.auth.getUid();return M(null===e||"string"==typeof e,2055,{h:e}),new C(e)}}class ${constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=C.FIRST_PARTY,this.R=new Map}A(){return this.I?this.I():null}get headers(){this.R.set("X-Goog-AuthUser",this.P);let e=this.A();return e&&this.R.set("Authorization",e),this.T&&this.R.set("X-Goog-Iam-Authorization-Token",this.T),this.R}}class K{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new $(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(C.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class G{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&e.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class H{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,(0,g._isFirebaseServerApp)(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(e,t){M(void 0===this.o,3512);let r=e=>{null!=e.error&&N("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);let r=e.token!==this.m;return this.m=e.token,N("FirebaseAppCheckTokenProvider",`Received ${r?"new":"existing"} token.`),r?t(e.token):Promise.resolve()};this.o=t=>{e.enqueueRetryable(()=>r(t))};let n=e=>{N("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.V.onInit(e=>n(e)),setTimeout(()=>{if(!this.appCheck){let e=this.V.getImmediate({optional:!0});e?n(e):N("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}},0)}getToken(){if(this.p)return Promise.resolve(new G(this.p));let e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(M("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new G(e.token)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class W{static newId(){let e=62*Math.floor(256/62),t="";for(;t.length<20;){let r=function(e){let t="u">
15typeof self&&(self.crypto||self.msCrypto),r=new Uint8Array(40);if(t&&"function"==typeof t.getRandomValues)t.getRandomValues(r);else for(let e=0;e<40;e++)r[e]=Math.floor(256*Math.random());return r}(0);for(let n=0;n<r.length;++n)t.length<20&&r[n]<e&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(r[n]%62))}return t}}function Q(e,t){return e<t?-1:+(e>t)}function J(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=e.charAt(n),i=t.charAt(n);if(r!==i)return Y(r)===Y(i)?Q(r,i):Y(r)?1:-1}return Q(e.length,t.length)}function Y(e){let t=e.charCodeAt(0);return t>=55296&&t<=57343}function X(e,t,r){return e.length===t.length&&e.every((e,n)=>r(e,t[n]))}let Z="__name__";class ee{constructor(e,t,r){void 0===t?t=0:t>e.length&&P(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&P(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===ee.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof ee?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+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,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=ee.compareSegments(e.get(n),t.get(n));if(0!==r)return r}return Q(e.length,t.length)}static compareSegments(e,t){let r=ee.isNumericId(e),n=ee.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?ee.extractNumericId(e).compare(ee.extractNumericId(t)):J(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return t.fromString(e.substring(4,e.length-2))}}class et extends ee{construct(e,t,r){return new et(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){let t=[];for(let r of e){if(r.indexOf("//")>=0)throw new U(F.INVALID_ARGUMENT,`Invalid segment (${r}). Paths must not contain // in them.`);t.push(...r.split("/").filter(e=>e.length>0))}return new et(t)}static emptyPath(){return new et([])}}let er=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class en extends ee{construct(e,t,r){return new en(e,t,r)}static isValidIdentifier(e){return er.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),en.isValidIdentifier(e)||(e="`"+e+"`"),e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Z}static keyField(){return new en([Z])}static fromServerFormat(e){let t=[],r="",n=0,i=()=>{if(0===r.length)throw new U(F.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(r),r=""},s=!1;for(;n<e.length;){let t=e[n];if("\\"===t){if(n+1===e.length)throw new U(F.INVALID_ARGUMENT,"Path has trailing escape character: "+e);let t=e[n+1];if("\\"!==t&&"."!==t&&"`"!==t)throw new U(F.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);r+=t,n+=2}else"`"===t?s=!s:"."!==t||s?r+=t:i(),n++}if(i(),s)throw new U(F.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new en(t)}static emptyPath(){return new en([])}}class ei{constructor(e){this.path=e}static fromPath(e){return new ei(et.fromString(e))}static fromName(e){return new ei(et.fromString(e).popFirst(5))}static empty(){return new ei(et.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return this.path.length>=2&&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===et.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return et.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new ei(new et(e.slice()))}}function es(e,t,r){if(!r)throw new U(F.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function ea(e){if(!ei.isDocumentKey(e))throw new U(F.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function eo(e){if(ei.isDocumentKey(e))throw new U(F.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function el(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function eu(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{var t;let r=(t=e).constructor?t.constructor.name:null;return r?`a custom ${r} object`:"an object"}}return"function"==typeof e?"a function":P(12329,{type:typeof e})}function eh(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new U(F.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{let r=eu(e);throw new U(F.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${r}`)}}return e}function ec(e,t){if(t<=0)throw new U(F.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function ed(e,t){let r={typeString:e};return t&&(r.value=t),r}function ef(e,t){let r;if(!el(e))throw new U(F.INVALID_ARGUMENT,"JSON must be an object");for(let n in t)if(t[n]){let i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}let a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new U(F.INVALID_ARGUMENT,r);return!0}class ep{static now(){return ep.fromMillis(Date.now())}static fromDate(e){return ep.fromMillis(e.getTime())}static fromMillis(e){let t=Math.floor(e/1e3),r=Math.floor((e-1e3*t)*1e6);return new ep(t,r)}constructor(e,t){if(this.seconds=e,this.nanoseconds=t,t<0||t>=1e9)throw new U(F.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-0xe7791f700||e>=0x3afff44180)throw new U(F.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?Q(this.nanoseconds,e.nanoseconds):Q(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{type:ep._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(ef(e,ep._jsonSchema))return new ep(e.seconds,e.nanoseconds)}valueOf(){return String(this.seconds- -0xe7791f700).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}
15}ep._jsonSchemaVersion="firestore/timestamp/1.0",ep._jsonSchema={type:ed("string",ep._jsonSchemaVersion),seconds:ed("number"),nanoseconds:ed("number")};class eg{static fromTimestamp(e){return new eg(e)}static min(){return new eg(new ep(0,0))}static max(){return new eg(new ep(0x3afff4417f,0x3b9ac9ff))}constructor(e){this.timestamp=e}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 em{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function ey(e){return e.fields.find(e=>2===e.kind)}function ev(e){return e.fields.filter(e=>2!==e.kind)}function ew(e,t){let r=Q(e.collectionGroup,t.collectionGroup);if(0!==r)return r;for(let n=0;n<Math.min(e.fields.length,t.fields.length);++n)if(0!==(r=function(e,t){let r=en.comparator(e.fieldPath,t.fieldPath);return 0!==r?r:Q(e.kind,t.kind)}(e.fields[n],t.fields[n])))return r;return Q(e.fields.length,t.fields.length)}em.UNKNOWN_ID=-1;class e_{constructor(e,t){this.fieldPath=e,this.kind=t}}class eb{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new eb(0,eT.min())}}function eI(e,t){let r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1;return new eT(eg.fromTimestamp(1e9===n?new ep(r+1,0):new ep(r,n)),ei.empty(),t)}function eE(e){return new eT(e.readTime,e.key,-1)}class eT{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new eT(eg.min(),ei.empty(),-1)}static max(){return new eT(eg.max(),ei.empty(),-1)}}function eS(e,t){let r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=ei.comparator(e.documentKey,t.documentKey))?r:Q(e.largestBatchId,t.largestBatchId)}let eC="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class eA{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function ek(e){if(e.code!==F.FAILED_PRECONDITION||e.message!==eC)throw e;N("LocalStore","Unexpectedly lost primary lease")}class ex{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(e,t){return this.callbackAttached&&P(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(t,this.error):this.wrapSuccess(e,this.result):new ex((r,n)=>{this.nextCallback=t=>{this.wrapSuccess(e,t).next(r,n)},this.catchCallback=e=>{this.wrapFailure(t,e).next(r,n)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{let t=e();return t instanceof ex?t:ex.resolve(t)}catch(e){return ex.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):ex.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):ex.reject(t)}static resolve(e){return new ex((t,r)=>{t(e)})}static reject(e){return new ex((t,r)=>{r(e)})}static waitFor(e){return new ex((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=ex.resolve(!1);for(let r of e)t=t.next(e=>e?ex.resolve(e):r());return t}static forEach(e,t){let r=[];return e.forEach((e,n)=>{r.push(t.call(this,e,n))}),this.waitFor(r)}static mapArray(e,t){return new ex((r,n)=>{let i=e.length,s=Array(i),a=0;for(let o=0;o<i;o++){let l=o;t(e[l]).next(e=>{s[l]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(e,t){return new ex((r,n)=>{let i=()=>{!0===e()?t().next(()=>{i()},n):r()};i()})}}let eN="SimpleDb";class eD{static open(e,t,r,n){try{return new eD(t,e.transaction(n,r))}catch(e){throw new eL(t,e)}}constructor(e,t){this.action=e,this.transaction=t,this.aborted=!1,this.S=new V,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{t.error?this.S.reject(new eL(e,t.error)):this.S.resolve()},this.transaction.onerror=t=>{let r=eB(t.target.error);this.S.reject(new eL(e,r))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(N(eN,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){let e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){return new eF(this.transaction.objectStore(e))}}class eR{static delete(e){return N(eN,"Removing database:",e),eU((0,_.getGlobal)().indexedDB.deleteDatabase(e)).toPromise()}static v(){if(!(0,_.isIndexedDBAvailable)())return!1;if(eR.F())return!0;let e=(0,_.getUA)(),t=eR.M(e),r=eO(e);return!(e.indexOf("MSIE ")>0||e.indexOf("Trident/")>0||e.indexOf("Edge/")>0||0<t&&t<10||0<r&&r<4.5)}static F(){return void 0!==v.default&&"YES"===v.default.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){let t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i);return Number(t?t[1].split("_").slice(0,2).join("."):"-1")}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===eR.M((0,_.getUA)())&&D("Firestore persistence suffers from a bug in
15iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(e){return this.db||(N(eN,"Opening database:",this.name),this.db=await new Promise((t,r)=>{let n=indexedDB.open(this.name,this.version);n.onsuccess=e=>{t(e.target.result)},n.onblocked=()=>{r(new eL(e,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},n.onerror=t=>{let n=t.target.error;"VersionError"===n.name?r(new U(F.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"===n.name?r(new U(F.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: "+n)):r(new eL(e,n))},n.onupgradeneeded=e=>{N(eN,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);let t=e.target.result;this.N.k(t,n.transaction,e.oldVersion,this.version).next(()=>{N(eN,"Database upgrade to version "+this.version+" complete")})}})),this.K&&(this.db.onversionchange=e=>this.K(e)),this.db}q(e){this.K=e,this.db&&(this.db.onversionchange=t=>e(t))}async runTransaction(e,t,r,n){let i="readonly"===t,s=0;for(;;){++s;try{this.db=await this.L(e);let t=eD.open(this.db,e,i?"readonly":"readwrite",r),s=n(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),ex.reject(e))).toPromise();return s.catch(()=>{}),await t.D,s}catch(t){let e="FirebaseError"!==t.name&&s<3;if(N(eN,"Transaction failed with error:",t.message,"Retrying:",e),this.close(),!e)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}function eO(e){let t=e.match(/Android ([\d.]+)/i);return Number(t?t[1].split(".").slice(0,2).join("."):"-1")}class eP{constructor(e){this.U=e,this.$=!1,this.W=null}get isDone(){return this.$}get G(){return this.W}set cursor(e){this.U=e}done(){this.$=!0}j(e){this.W=e}delete(){return eU(this.U.delete())}}class eL extends U{constructor(e,t){super(F.UNAVAILABLE,`IndexedDB transaction '${e}' failed: ${t}`),this.name="IndexedDbTransactionError"}}function eM(e){return"IndexedDbTransactionError"===e.name}class eF{constructor(e){this.store=e}put(e,t){let r;return void 0!==t?(N(eN,"PUT",this.store.name,e,t),r=this.store.put(t,e)):(N(eN,"PUT",this.store.name,"<auto-key>",e),r=this.store.put(e)),eU(r)}add(e){return N(eN,"ADD",this.store.name,e,e),eU(this.store.add(e))}get(e){return eU(this.store.get(e)).next(t=>(void 0===t&&(t=null),N(eN,"GET",this.store.name,e,t),t))}
15delete(e){return N(eN,"DELETE",this.store.name,e),eU(this.store.delete(e))}count(){return N(eN,"COUNT",this.store.name),eU(this.store.count())}H(e,t){let r=this.options(e,t),n=r.index?this.store.index(r.index):this.store;if("function"==typeof n.getAll){let e=n.getAll(r.range);return new ex((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(r),t=[];return this.J(e,(e,r)=>{t.push(r)}).next(()=>t)}}Z(e,t){let r=this.store.getAll(e,null===t?void 0:t);return new ex((e,t)=>{r.onerror=e=>{t(e.target.error)},r.onsuccess=t=>{e(t.target.result)}})}X(e,t){N(eN,"DELETE ALL",this.store.name);let r=this.options(e,t);r.Y=!1;let n=this.cursor(r);return this.J(n,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);let n=this.cursor(r);return this.J(n,t)}te(e){let t=this.cursor({});return new ex((r,n)=>{t.onerror=e=>{n(eB(e.target.error))},t.onsuccess=t=>{let n=t.target.result;n?e(n.primaryKey,n.value).next(e=>{e?n.continue():r()}):r()}})}J(e,t){let r=[];return new ex((n,i)=>{e.onerror=e=>{i(e.target.error)},e.onsuccess=e=>{let i=e.target.result;if(!i)return void n();let s=new eP(i),a=t(i.primaryKey,i.value,s);if(a instanceof ex){let e=a.catch(e=>(s.done(),ex.reject(e)));r.push(e)}s.isDone?n():null===s.G?i.continue():i.continue(s.G)}}).next(()=>ex.waitFor(r))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";if(e.reverse&&(t="prev"),e.index){let r=this.store.index(e.index);return e.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)}return this.store.openCursor(e.range,t)}}function eU(e){return new ex((t,r)=>{e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(eB(e.target.error))}})}let eV=!1;function eB(e){let t=eR.M((0,_.getUA)());if(t>=12.2&&t<13){let t="An internal error was encountered in the Indexed Database server";if(e.message.indexOf(t)>=0){let 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 eV||(eV=!0,setTimeout(()=>{throw e},0)),e}}return e}let eq="IndexBackfiller";class ej{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){N(eq,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{let e=await this.ne.ie();N(eq,`Documents written: ${e}`)}catch(e){eM(e)?N(eq,"Ignoring IndexedDB error during index backfill: ",e):await ek(e)}await this.re(6e4)})}}class ez{constructor(e,t){this.localStore=e,this.persistence=t}async ie(e=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",t=>this.se(t,e))}se(e,t){let r=new Set,n=t,i=!0;
15return ex.doWhile(()=>!0===i&&n>0,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return N(eq,`Processing collection: ${t}`),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(e,t,r){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(e,t).next(n=>this.localStore.localDocuments.getNextDocuments(e,t,n,r).next(r=>{let i=r.changes;return this.localStore.indexManager.updateIndexEntries(e,i).next(()=>this._e(n,r)).next(r=>(N(eq,`Updating offset: ${r}`),this.localStore.indexManager.updateCollectionGroup(e,t,r))).next(()=>i.size)}))}_e(e,t){let r=e;return t.changes.forEach((e,t)=>{let n=eE(t);eS(n,r)>0&&(r=n)}),new eT(r.readTime,r.documentKey,Math.max(t.batchId,e.largestBatchId))}}class e${constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){let e=++this.previousValue;return this.ue&&this.ue(e),e}}function eK(e){return null==e}function eG(e){return 0===e&&1/e==-1/0}function eH(e){return"number"==typeof e&&Number.isInteger(e)&&!eG(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}function eW(e){let t="";for(let r=0;r<e.length;r++)t.length>0&&(t+="\x01\x01"),t=function(e,t){let r=t,n=e.length;for(let t=0;t<n;t++){let n=e.charAt(t);switch(n){case"\0":r+="\x01\x10";break;case"\x01":r+="\x01\x11";break;default:r+=n}}return r}(e.get(r),t);return t+"\x01\x01"}e$.ce=-1;function eQ(e){let t=e.length;if(M(t>=2,64408,{path:e}),2===t)return M("\x01"===e.charAt(0)&&"\x01"===e.charAt(1),56145,{path:e}),et.emptyPath();let r=t-2,n=[],i="";for(let s=0;s<t;){let t=e.indexOf("\x01",s);switch((t<0||t>r)&&P(50515,{path:e}),e.charAt(t+1)){case"\x01":let a,o=e.substring(s,t);0===i.length?a=o:(i+=o,a=i,i=""),n.push(a);break;case"\x10":i+=e.substring(s,t),i+="\0";break;case"\x11":i+=e.substring(s,t+1);break;default:P(61167,{path:e})}s=t+2}return new et(n)}let eJ="remoteDocuments",eY="owner",eX="owner",eZ="mutationQueues",e0="mutations",e1="batchId",e2="userMutationsIndex",e6=["userId","batchId"],e3={},e5="documentMutations",e4="remoteDocumentsV14",e8=["prefixPath","collectionGroup","readTime","documentId"],e7="documentKeyIndex",e9=["prefixPath","collectionGroup","documentId"],te="collectionGroupIndex",tt=["collectionGroup","readTime","prefixPath","documentId"],tr="remoteDocumentGlobal",tn="remoteDocumentGlobalKey",ti="targets",ts="queryTargetsIndex",ta=["canonicalId","targetId"],to="targetDocuments",tl=["targetId","path"],tu="documentTargetsIndex",th=["path","targetId"],tc="targetGlobalKey",td="targetGlobal",tf="collectionParents",tp=["collectionId","parent"],tg="clientMetadata",tm="bundles",ty="namedQueries",tv="indexConfiguration",tw="collectionGroupIndex",t_="indexState",tb=["indexId","uid"],tI="sequenceNumberIndex",tE=["uid","sequenceNumber"],tT="indexEntries",tS=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],tC="documentKeyIndex",tA=["indexId","uid","orderedDocumentKey"],tk="documentOverlays",tx=["userId","collectionPath","documentId"],tN="collectionPathOverlayIndex",tD=["userId","collectionPath","largestBatchId"],tR="collectionGroupOverlayIndex",tO=["userId","collectionGroup","largestBatchId"],tP="globals",tL=[eZ,e0,e5,eJ,ti,eY,td,to,tg,tr,tf,tm,ty],tM=[...tL,tk],tF=[eZ,e0,e5,e4,ti,eY,td,to,tg,tr,tf,tm,ty,tk],tU=[...tF,tv,t_,tT],tV=[...tU,tP];class tB extends eA{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function tq(e,t){return eR.O(e.le,t)}function tj(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function tz(e,t){for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function t$(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class tK{constructor(e,t){this.comparator=e,this.root=t||tH.EMPTY}insert(e,t){return new tK(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,tH.BLACK,null,null))}remove(e){return new tK(this.comparator,this.root.remove(e,this.comparator).copy(null,null,tH.BLACK,null,
15null))}get(e){let t=this.root;for(;!t.isEmpty();){let r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:r>0&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){let n=this.comparator(e,r.key);if(0===n)return t+r.left.size;n<0?r=r.left:(t+=r.left.size+1,r=r.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(e){this.inorderTraversal((t,r)=>(e(t,r),!1))}toString(){let e=[];return this.inorderTraversal((t,r)=>(e.push(`${t}:${r}`),!1)),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new tG(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new tG(this.root,e,this.comparator,!1)}getReverseIterator(){return new tG(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new tG(this.root,e,this.comparator,!0)}}class tG{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(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(),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 this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;let e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class tH{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:tH.RED,this.left=null!=n?n:tH.EMPTY,this.right=null!=i?i:tH.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new tH(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n: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,r){let n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return tH.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)).fixUp()}remove(e,t){let r,n=this;if(0>t(e,n.key))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 tH.EMPTY;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=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=(e=e.rotateRight()).colorFlip()),e}rotateLeft(){let e=this.copy(null,null,tH.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){let e=this.copy(null,null,tH.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){let 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(){return Math.pow(2,this.check())<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw P(43730,{key:this.key,value:this.value});if(this.right.isRed())throw P(14113,{key:this.key,value:this.value});let e=this.left.check();if(e!==this.right.check())throw P(27949);return e+ +!this.isRed()}}
15tH.EMPTY=null,tH.RED=!0,tH.BLACK=!1,tH.EMPTY=new class{constructor(){this.size=0}get key(){throw P(57766)}get value(){throw P(16141)}get color(){throw P(16727)}get left(){throw P(29726)}get right(){throw P(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new tH(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 tW{constructor(e){this.comparator=e,this.data=new tK(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(e){this.data.inorderTraversal((t,r)=>(e(t),!1))}forEachInRange(e,t){let r=this.data.getIteratorFrom(e[0]);for(;r.hasNext();){let n=r.getNext();if(this.comparator(n.key,e[1])>=0)return;t(n.key)}}forEachWhile(e,t){let r;for(r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){let t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new tQ(this.data.getIterator())}getIteratorFrom(e){return new tQ(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 tW)||this.size!==e.size)return!1;let t=this.data.getIterator(),r=e.data.getIterator();for(;t.hasNext();){let e=t.getNext().key,n=r.getNext().key;if(0!==this.comparator(e,n))return!1}return!0}toArray(){let e=[];return this.forEach(t=>{e.push(t)}),e}toString(){let e=[];return this.forEach(t=>e.push(t)),"SortedSet("+e.toString()+")"}copy(e){let t=new tW(this.comparator);return t.data=e,t}}class tQ{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function tJ(e){return e.hasNext()?e.getNext():void 0}class tY{constructor(e){this.fields=e,e.sort(en.comparator)}static empty(){return new tY([])}unionWith(e){let t=new tW(en.comparator);for(let e of this.fields)t=t.add(e);for(let r of e)t=t.add(r);return new tY(t.toArray())}covers(e){for(let t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return X(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class tX extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class tZ{constructor(e){this.binaryString=e}static fromBase64String(e){return new tZ(function(e){try{return atob(e)}catch(e){throw"u">typeof DOMException&&e instanceof DOMException?new tX("Invalid base64 string: "+e):e}}(e))}static fromUint8Array(e){return new tZ(function(e){let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t}(e))}[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 btoa(this.binaryString)}toUint8Array(){var e=this.binaryString;let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return Q(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}tZ.EMPTY_BYTE_STRING=new tZ("");let t0=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function t1(e){if(M(!!e,39018),"string"==typeof e){let t=0,r=t0.exec(e);if(M(!!r,46558,{timestamp:e}),r[1]){let e=r[1];t=Number(e=(e+"000000000").substr(0,9))}return{seconds:Math.floor(new Date(e).getTime()/1e3),nanos:t}}return{seconds:t2(e.seconds),nanos:t2(e.nanos)}}function t2(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function t6(e){return"string"==typeof e?tZ.fromBase64String(e):tZ.fromUint8Array(e)}let t3="server_timestamp",t5="__type__",t4="__previous_value__",t8="__local_write_time__";function t7(e){return(e?.mapValue?.fields||{})[t5]?.stringValue===t3}function t9(e){let t=e.mapValue.fields[t4];return t7(t)?t9(t):t}function re(e){let t=t1(e.mapValue.fields[t8].timestampValue);return new ep(t.seconds,t.nanos)}class rt{constructor(e,t,r,n,i,s,a,o,l,u,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=u,this.apiKey=h}}let rr="(default)";class rn{constructor(e,t){this.projectId=e,this.database=t||rr}static empty(){return new rn("","")}get isDefaultDatabase(){return this.database===rr}isEqual(e){return e instanceof rn&&e.projectId===this.projectId&&e.database===this.database}}let ri="__type__",rs="__max__",ra={mapValue:{fields:{__type__:{stringValue:rs}}}},ro="__vector__",rl="value",ru={nullValue:"NULL_VALUE"};function rh(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?t7(e)?4:rS(e)?0x1fffffffffffff:rE(e)?10:11:P(28295,{value:e})}function rc(e,t){if(e===t)return!0;let r=rh(e);if(r!==rh(t))return!1;switch(r){case 0:case 0x1fffffffffffff:return!0;case 1:return e.booleanValue===t.booleanValue;case 4:return re(e).isEqual(re(t));case 3:if("string"==typeof e.timestampValue&&"string"==typeof t.timestampValue&&e.timestampValue.length===t.timestampValue.length)return e.timestampValue===t.timestampValue;let n=t1(e.timestampValue),i=t1(t.timestampValue);return n.seconds===i.seconds&&n.nanos===i.nanos;case 5:return e.stringValue===t.stringValue;case 6:return t6(e.bytesValue).isEqual(t6(t.bytesValue));case 7:return e.referenceValue===t.referenceValue;case 8:return t2(e.geoPointValue.latitude)===t2(t.geoPointValue.latitude)&&t2(e.geoPointValue.longitude)===t2(t.geoPointValue.longitude);case 2:if("integerValue"in e&&"integerValue"in t)return t2(e.integerValue)===t2(t.integerValue);if("doubleValue"in e&&"doubleValue"in t){let r=t2(e.doubleValue),n=t2(t.doubleValue);return r===n?eG(r)===eG(n):isNaN(r)&&isNaN(n)}return!1;case 9:return X(e.arrayValue.values||[],t.arrayValue.values||[],rc);case 10:case 11:let s=e.mapValue.fields||{},a=t.mapValue.fields||{};
15if(tj(s)!==tj(a))return!1;for(let e in s)if(s.hasOwnProperty(e)&&(void 0===a[e]||!rc(s[e],a[e])))return!1;return!0;default:return P(52216,{left:e})}}function rd(e,t){return void 0!==(e.values||[]).find(e=>rc(e,t))}function rf(e,t){var r,n,i,s,a,o;if(e===t)return 0;let l=rh(e),u=rh(t);if(l!==u)return Q(l,u);switch(l){case 0:case 0x1fffffffffffff:return 0;case 1:return Q(e.booleanValue,t.booleanValue);case 2:let h,c;return h=t2(e.integerValue||e.doubleValue),h<(c=t2(t.integerValue||t.doubleValue))?-1:h>c?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return rp(e.timestampValue,t.timestampValue);case 4:return rp(re(e),re(t));case 5:return J(e.stringValue,t.stringValue);case 6:let d,f;return r=e.bytesValue,n=t.bytesValue,d=t6(r),f=t6(n),d.compareTo(f);case 7:return function(e,t){let r=e.split("/"),n=t.split("/");for(let e=0;e<r.length&&e<n.length;e++){let t=Q(r[e],n[e]);if(0!==t)return t}return Q(r.length,n.length)}(e.referenceValue,t.referenceValue);case 8:let p;return i=e.geoPointValue,s=t.geoPointValue,0!==(p=Q(t2(i.latitude),t2(s.latitude)))?p:Q(t2(i.longitude),t2(s.longitude));case 9:return rg(e.arrayValue,t.arrayValue);case 10:let g,m,y,v,w;return a=e.mapValue,o=t.mapValue,g=a.fields||{},m=o.fields||{},y=g[rl]?.arrayValue,v=m[rl]?.arrayValue,0!==(w=Q(y?.values?.length||0,v?.values?.length||0))?w:rg(y,v);case 11:return function(e,t){if(e===ra.mapValue&&t===ra.mapValue)return 0;if(e===ra.mapValue)return 1;if(t===ra.mapValue)return -1;let r=e.fields||{},n=Object.keys(r),i=t.fields||{},s=Object.keys(i);n.sort(),s.sort();for(let e=0;e<n.length&&e<s.length;++e){let t=J(n[e],s[e]);if(0!==t)return t;let a=rf(r[n[e]],i[s[e]]);if(0!==a)return a}return Q(n.length,s.length)}(e.mapValue,t.mapValue);default:throw P(23264,{he:l})}}function rp(e,t){if("string"==typeof e&&"string"==typeof t&&e.length===t.length)return Q(e,t);let r=t1(e),n=t1(t),i=Q(r.seconds,n.seconds);return 0!==i?i:Q(r.nanos,n.nanos)}function rg(e,t){let r=e.values||[],n=t.values||[];for(let e=0;e<r.length&&e<n.length;++e){let t=rf(r[e],n[e]);if(t)return t}return Q(r.length,n.length)}function rm(e){var t,r;let n;return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(n=t1(e.timestampValue),`time(${n.seconds},${n.nanos})`):"stringValue"in e?e.stringValue:"bytesValue"in e?t6(e.bytesValue).toBase64():"referenceValue"in e?(t=e.referenceValue,ei.fromName(t).toString()):"geoPointValue"in e?(r=e.geoPointValue,`geo(${r.latitude},${r.longitude})`):"arrayValue"in e?function(e){let t="[",r=!0;for(let n of e.values||[])r?r=!1:t+=",",t+=rm(n);return t+"]"}(e.arrayValue):"mapValue"in e?function(e){let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(let i of t)n?n=!1:r+=",",r+=`${i}:${rm(e.fields[i])}`;return r+"}"}(e.mapValue):P(61005,{value:e})}function ry(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/${t.path.canonicalString()}`}}function rv(e){return!!e&&"integerValue"in e}function rw(e){return!!e&&"arrayValue"in e}function r_(e){return!!e&&"nullValue"in e}function rb(e){return!!e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function rI(e){return!!e&&"mapValue"in e}function rE(e){return(e?.mapValue?.fields||{})[ri]?.stringValue===ro}function rT(e){if(e.geoPointValue)return{geoPointValue:{...e.geoPointValue}};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:{...e.timestampValue}};if(e.mapValue){let t={mapValue:{fields:{}}};return tz(e.mapValue.fields,(e,r)=>t.mapValue.fields[e]=rT(r)),t}if(e.arrayValue){let t={arrayValue:{values:[]}};for(let r=0;r<(e.arrayValue.values||[]).length;++r)t.arrayValue.values[r]=rT(e.arrayValue.values[r]);return t}return{...e}}function rS(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===rs}let rC={mapValue:{fields:{[ri]:{stringValue:ro},[rl]:{arrayValue:{}}}}};function rA(e,t){let r=rf(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function rk(e,t){let r=rf(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class rx{constructor(e){this.value=e}static empty(){return new rx({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let t=this.value;for(let r=0;r<e.length-1;++r)if(!rI(t=(t.mapValue.fields||{})[e.get(r)]))return null;return(t=(t.mapValue.fields||{})[e.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=rT(t)}setAll(e){let t=en.emptyPath(),r={},n=[];e.forEach((e,i)=>{if(!t.isImmediateParentOf(i)){let e=this.getFieldsMap(t);this.applyChanges(e,r,n),r={},n=[],t=i.popLast()}e?r[i.lastSegment()]=rT(e):n.push(i.lastSegment())});let i=this.getFieldsMap(t);this.applyChanges(i,r,n)}delete(e){let t=this.field(e.popLast());rI(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return rc(this.value,e.value)}getFieldsMap(e){let t=this.value;t.mapValue.fields||(t.mapValue={fields:{}});for(let r=0;r<e.length;++r){let n=t.mapValue.fields[e.get(r)];rI(n)&&n.mapValue.fields||(n={mapValue:{fields:{}}},t.mapValue.fields[e.get(r)]=n),t=n}return t.mapValue.fields}
15applyChanges(e,t,r){for(let n of(tz(t,(t,r)=>e[t]=r),r))delete e[n]}clone(){return new rx(rT(this.value))}}class rN{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new rN(e,0,eg.min(),eg.min(),eg.min(),rx.empty(),0)}static newFoundDocument(e,t,r,n){return new rN(e,1,t,eg.min(),r,n,0)}static newNoDocument(e,t){return new rN(e,2,t,eg.min(),eg.min(),rx.empty(),0)}static newUnknownDocument(e,t){return new rN(e,3,t,eg.min(),eg.min(),rx.empty(),2)}convertToFoundDocument(e,t){return this.createTime.isEqual(eg.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=rx.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=rx.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=eg.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 rN&&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 rN(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 rD{constructor(e,t){this.position=e,this.inclusive=t}}function rR(e,t,r){let n=0;for(let i=0;i<e.position.length;i++){let s=t[i],a=e.position[i];if(n=s.field.isKeyField()?ei.comparator(ei.fromName(a.referenceValue),r.key):rf(a,r.data.field(s.field)),"desc"===s.dir&&(n*=-1),0!==n)break}return n}function rO(e,t){if(null===e)return null===t;if(null===t||e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!rc(e.position[r],t.position[r]))return!1;return!0}class rP{constructor(e,t="asc"){this.field=e,this.dir=t}}class rL{}class rM extends rL{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new rz(e,t,r):"array-contains"===t?new rH(e,r):"in"===t?new rW(e,r):"not-in"===t?new rQ(e,r):"array-contains-any"===t?new rJ(e,r):new rM(e,t,r)}static createKeyFieldInFilter(e,t,r){return"in"===t?new r$(e,r):new rK(e,r)}matches(e){let t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(rf(t,this.value)):null!==t&&rh(this.value)===rh(t)&&this.matchesComparison(rf(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 e>0;case">=":return e>=0;default:return P(47266,{operator:this.op})}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class rF extends rL{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new rF(e,t)}matches(e){return rU(this)?void 0===this.filters.find(t=>!t.matches(e)):void 0!==this.filters.find(t=>t.matches(e))}getFlattenedFilters(){return null!==this.Pe||(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function rU(e){return"and"===e.op}function rV(e){return"or"===e.op}function rB(e){return rq(e)&&rU(e)}function rq(e){for(let t of e.filters)if(t instanceof rF)return!1;return!0}function rj(e,t){let r=e.filters.concat(t);return rF.create(r,e.op)}class rz extends rM{constructor(e,t,r){super(e,t,r),this.key=ei.fromName(r.referenceValue)}matches(e){let t=ei.comparator(e.key,this.key);return this.matchesComparison(t)}}class r$ extends rM{constructor(e,t){super(e,"in",t),this.keys=rG("in",t)}matches(e){return this.keys.some(t=>t.isEqual(e.key))}}class rK extends rM{constructor(e,t){super(e,"not-in",t),this.keys=rG("not-in",t)}matches(e){return!this.keys.some(t=>t.isEqual(e.key))}}function rG(e,t){return(t.arrayValue?.values||[]).map(e=>ei.fromName(e.referenceValue))}class rH extends rM{constructor(e,t){super(e,"array-contains",t)}matches(e){let t=e.data.field(this.field);return rw(t)&&rd(t.arrayValue,this.value)}}class rW extends rM{constructor(e,t){super(e,"in",t)}matches(e){let t=e.data.field(this.field);return null!==t&&rd(this.value.arrayValue,t)}}class rQ extends rM{constructor(e,t){super(e,"not-in",t)}matches(e){if(rd(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;let t=e.data.field(this.field);return null!==t&&void 0===t.nullValue&&!rd(this.value.arrayValue,t)}}class rJ extends rM{constructor(e,t){super(e,"array-contains-any",t)}matches(e){let t=e.data.field(this.field);return!(!rw(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>rd(this.value.arrayValue,e))}}class rY{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function rX(e,t=null,r=[],n=[],i=null,s=null,a=null){return new rY(e,t,r,n,i,s,a)}function rZ(e){if(null===e.Te){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map(e=>(function e(t){if(t instanceof rM)return t.field.canonicalString()+t.op.toString()+rm(t.value);if(rB(t))return t.filters.map(t=>e(t)).join(",");{let r=t.filters.map(t=>e(t)).join(",");return`${t.op}(${r})`}})(e)).join(","),t+="|ob:",t+=e.orderBy.map(e=>e.field.canonicalString()+e.dir).join(","),eK(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map(e=>rm(e)).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map(e=>rm(e)).join(",")),e.Te=t}return e.Te}function r0(e,t){if(e.limit!==t.limit||e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++){var r,n;if(r=e.orderBy[i],n=t.orderBy[i],!(r.dir===n.dir&&r.field.isEqual(n.field)))return!1}if(e.filters.length!==t.filters.length)return!1;for(let r=0;r<e.filters.length;r++)if(!function e(t,r){return t instanceof rM?r instanceof rM&&t.op===r.op&&t.field.isEqual(r.field)&&rc(t.value,r.value):t instanceof rF?r instanceof rF&&t.op===r.op&&t.filters.length===r.filters.length&&t.filters.reduce((t,n,i)=>t&&e(n,r.filters[i]),!0):void P(19439)}(e.filters[r],t.filters[r]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!rO(e.startAt,t.startAt)&&rO(e.endAt,t.endAt)}function r1(e){return ei.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function r2(e,t){return e.filters.filter(e=>e instanceof rM&&e.field.isEqual(t))}function r6(e,t,r){let n=ru,i=!0;for(let r of r2(e,t)){let e=ru,t=!0;switch(r.op){case"<":case"<=":var s;
15e="nullValue"in(s=r.value)?ru:"booleanValue"in s?{booleanValue:!1}:"integerValue"in s||"doubleValue"in s?{doubleValue:NaN}:"timestampValue"in s?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in s?{stringValue:""}:"bytesValue"in s?{bytesValue:""}:"referenceValue"in s?ry(rn.empty(),ei.empty()):"geoPointValue"in s?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in s?{arrayValue:{}}:"mapValue"in s?rE(s)?rC:{mapValue:{}}:P(35942,{value:s});break;case"==":case"in":case">=":e=r.value;break;case">":e=r.value,t=!1;break;case"!=":case"not-in":e=ru}0>rA({value:n,inclusive:i},{value:e,inclusive:t})&&(n=e,i=t)}if(null!==r){for(let s=0;s<e.orderBy.length;++s)if(e.orderBy[s].field.isEqual(t)){let e=r.position[s];0>rA({value:n,inclusive:i},{value:e,inclusive:r.inclusive})&&(n=e,i=r.inclusive);break}}return{value:n,inclusive:i}}function r3(e,t,r){let n=ra,i=!0;for(let r of r2(e,t)){let e=ra,t=!0;switch(r.op){case">=":case">":var s;e="nullValue"in(s=r.value)?{booleanValue:!1}:"booleanValue"in s?{doubleValue:NaN}:"integerValue"in s||"doubleValue"in s?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in s?{stringValue:""}:"stringValue"in s?{bytesValue:""}:"bytesValue"in s?ry(rn.empty(),ei.empty()):"referenceValue"in s?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in s?{arrayValue:{}}:"arrayValue"in s?rC:"mapValue"in s?rE(s)?{mapValue:{}}:ra:P(61959,{value:s}),t=!1;break;case"==":case"in":case"<=":e=r.value;break;case"<":e=r.value,t=!1;break;case"!=":case"not-in":e=ra}rk({value:n,inclusive:i},{value:e,inclusive:t})>0&&(n=e,i=t)}if(null!==r){for(let s=0;s<e.orderBy.length;++s)if(e.orderBy[s].field.isEqual(t)){let e=r.position[s];rk({value:n,inclusive:i},{value:e,inclusive:r.inclusive})>0&&(n=e,i=r.inclusive);break}}return{value:n,inclusive:i}}class r5{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.Re=null,this.startAt,this.endAt}}function r4(e){return new r5(e)}function r8(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 r7(e){return null!==e.collectionGroup}function r9(e){if(null===e.Ie){let t;e.Ie=[];let r=new Set;for(let t of e.explicitOrderBy)e.Ie.push(t),r.add(t.field.canonicalString());let n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";(t=new tW(en.comparator),e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t).forEach(t=>{r.has(t.canonicalString())||t.isKeyField()||e.Ie.push(new rP(t,n))}),r.has(en.keyField().canonicalString())||e.Ie.push(new rP(en.keyField(),n))}return e.Ie}function ne(e){return e.Ee||(e.Ee=nt(e,r9(e))),e.Ee}function nt(e,t){if("F"===e.limitType)return rX(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);{t=t.map(e=>{let t="desc"===e.dir?"asc":"desc";return new rP(e.field,t)});let r=e.endAt?new rD(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new rD(e.startAt.position,e.startAt.inclusive):null;return rX(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)}}function nr(e,t){let r=e.filters.concat([t]);return new r5(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function nn(e,t,r){return new r5(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function ni(e,t){return r0(ne(e),ne(t))&&e.limitType===t.limitType}function ns(e){return`${rZ(ne(e))}|lt:${e.limitType}`}function na(e){var t;let r;return`Query(target=${r=(t=ne(e)).path.canonicalString(),null!==t.collectionGroup&&(r+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(r+=`, filters: [${t.filters.map(e=>(function e(t){return t instanceof rM?`${t.field.canonicalString()} ${t.op} ${rm(t.value)}`:t instanceof rF?t.op.toString()+" {"+t.getFilters().map(e).join(" ,")+"}":"Filter"})(e)).join(", ")}]`),eK(t.limit)||(r+=", limit: "+t.limit),t.orderBy.length>0&&(r+=`, orderBy: [${t.orderBy.map(e=>`${e.field.canonicalString()} (${e.dir})`).join(", ")}]`),t.startAt&&(r+=", startAt: ",r+=t.startAt.inclusive?"b:":"a:",r+=t.startAt.position.map(e=>rm(e)).join(",")),t.endAt&&(r+=", endAt: ",r+=t.endAt.inclusive?"a:":"b:",r+=t.endAt.position.map(e=>rm(e)).join(",")),`Target(${r})`}; limitType=${e.limitType})`}function no(e,t){var r,n,i,s;let a,o,l;
15return t.isFoundDocument()&&(a=t.key.path,null!==e.collectionGroup?t.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(a):ei.isDocumentKey(e.path)?e.path.isEqual(a):e.path.isImmediateParentOf(a))&&function(e,t){for(let r of r9(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return!1;return!0}(e,t)&&function(e,t){for(let r of e.filters)if(!r.matches(t))return!1;return!0}(e,t)&&(r=e,n=t,(!r.startAt||(i=r.startAt,o=rR(i,r9(r),n),i.inclusive?!!(o<=0):!!(o<0)))&&(!r.endAt||(s=r.endAt,l=rR(s,r9(r),n),s.inclusive?!!(l>=0):!!(l>0))))}function nl(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function nu(e){return(t,r)=>{let n=!1;for(let i of r9(e)){let e=function(e,t,r){var n;let i,s,a=e.field.isKeyField()?ei.comparator(t.key,r.key):(n=e.field,i=t.data.field(n),s=r.data.field(n),null!==i&&null!==s?rf(i,s):P(42886));switch(e.dir){case"asc":return a;case"desc":return -1*a;default:return P(19790,{direction:e.dir})}}(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class nh{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(e){let t=this.mapKeyFn(e),r=this.inner[t];if(void 0!==r){for(let[t,n]of r)if(this.equalsFn(t,e))return n}}has(e){return void 0!==this.get(e)}set(e,t){let r=this.mapKeyFn(e),n=this.inner[r];if(void 0===n)return this.inner[r]=[[e,t]],void this.innerSize++;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],e))return void(n[r]=[e,t]);n.push([e,t]),this.innerSize++}delete(e){let t=this.mapKeyFn(e),r=this.inner[t];if(void 0===r)return!1;for(let n=0;n<r.length;n++)if(this.equalsFn(r[n][0],e))return 1===r.length?delete this.inner[t]:r.splice(n,1),this.innerSize--,!0;return!1}forEach(e){tz(this.inner,(t,r)=>{for(let[t,n]of r)e(t,n)})}isEmpty(){return t$(this.inner)}size(){return this.innerSize}}let nc=new tK(ei.comparator),nd=new tK(ei.comparator);function nf(...e){let t=nd;for(let r of e)t=t.insert(r.key,r);return t}function np(e){let t=nd;return e.forEach((e,r)=>t=t.insert(e,r.overlayedDocument)),t}function ng(){return new nh(e=>e.toString(),(e,t)=>e.isEqual(t))}let nm=new tK(ei.comparator),ny=new tW(ei.comparator);function nv(...e){let t=ny;for(let r of e)t=t.add(r);return t}let nw=new tW(Q);function n_(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:eG(t)?"-0":t}}function nb(e){return{integerValue:""+e}}class nI{constructor(){this._=void 0}}function nE(e,t){return e instanceof nx?rv(t)||t&&"doubleValue"in t?t:{integerValue:0}:null}class nT extends nI{}class nS extends nI{constructor(e){super(),this.elements=e}}function nC(e,t){let r=nD(t);for(let t of e.elements)r.some(e=>rc(e,t))||r.push(t);return{arrayValue:{values:r}}}class nA extends nI{constructor(e){super(),this.elements=e}}function nk(e,t){let r=nD(t);for(let t of e.elements)r=r.filter(e=>!rc(e,t));return{arrayValue:{values:r}}}class nx extends nI{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function nN(e){return t2(e.integerValue||e.doubleValue)}function nD(e){return rw(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class nR{constructor(e,t){this.field=e,this.transform=t}}class nO{constructor(e,t){this.version=e,this.transformResults=t}}class nP{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new nP}static exists(e){return new nP(void 0,e)}static updateTime(e){return new nP(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 nL(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class nM{}function nF(e,t){if(!e.hasLocalMutations||t&&0===t.fields.length)return null;if(null===t)return e.isNoDocument()?new nK(e.key,nP.none()):new nB(e.key,e.data,nP.none());{let r=e.data,n=rx.empty(),i=new tW(en.comparator);for(let e of t.fields)if(!i.has(e)){let t=r.field(e);null===t&&e.length>1&&(e=e.popLast(),t=r.field(e)),null===t?n.delete(e):n.set(e,t),i=i.add(e)}return new nq(e.key,n,new tY(i.toArray()),nP.none())}}function nU(e,t,r,n){return e instanceof nB?function(e,t,r,n){if(!nL(e.precondition,t))return r;let i=e.value.clone(),s=n$(e.fieldTransforms,n,t);return i.setAll(s),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null}(e,t,r,n):e instanceof nq?function(e,t,r,n){if(!nL(e.precondition,t))return r;let i=n$(e.fieldTransforms,n,t),s=t.data;return(s.setAll(nj(e)),s.setAll(i),t.convertToFoundDocument(t.version,s).setHasLocalMutations(),null===r)?null:r.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,t,r,n):nL(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):r}function nV(e,t){var r,n;return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||!(!r||!n)&&X(r,n,(e,t)=>{var r,n;return e.field.isEqual(t.field)&&(r=e.transform,n=t.transform,r instanceof nS&&n instanceof nS||r instanceof nA&&n instanceof nA?X(r.elements,n.elements,rc):r instanceof nx&&n instanceof nx?rc(r.Ae,n.Ae):r instanceof nT&&n instanceof nT)})))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask))}class nB extends nM{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.prec
15ondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class nq extends nM{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function nj(e){let t=new Map;return e.fieldMask.fields.forEach(r=>{if(!r.isEmpty()){let n=e.data.field(r);t.set(r,n)}}),t}function nz(e,t,r){let n=new Map;M(e.length===r.length,32656,{Ve:r.length,de:e.length});for(let s=0;s<r.length;s++){var i;let a=e[s],o=a.transform,l=t.data.field(a.field);n.set(a.field,(i=r[s],o instanceof nS?nC(o,l):o instanceof nA?nk(o,l):i))}return n}function n$(e,t,r){let n=new Map;for(let i of e){let e=i.transform,s=r.data.field(i.field);n.set(i.field,function(e,t,r){var n;let i,s,a;return e instanceof nT?(n=t,i={fields:{[t5]:{stringValue:t3},[t8]:{timestampValue:{seconds:r.seconds,nanos:r.nanoseconds}}}},n&&t7(n)&&(n=t9(n)),n&&(i.fields[t4]=n),{mapValue:i}):e instanceof nS?nC(e,t):e instanceof nA?nk(e,t):(a=nN(s=nE(e,t))+nN(e.Ae),rv(s)&&rv(e.Ae)?nb(a):n_(e.serializer,a))}(e,s,t))}return n}class nK extends nM{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class nG extends nM{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class nH{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){let r=t.mutationResults;for(let t=0;t<this.mutations.length;t++){let n=this.mutations[t];n.key.isEqual(e.key)&&function(e,t,r){let n,i;e instanceof nB?(n=e.value.clone(),i=nz(e.fieldTransforms,t,r.transformResults),n.setAll(i),t.convertToFoundDocument(r.version,n).setHasCommittedMutations()):e instanceof nq?function(e,t,r){if(!nL(e.precondition,t))return t.convertToUnknownDocument(r.version);let n=nz(e.fieldTransforms,t,r.transformResults),i=t.data;i.setAll(nj(e)),i.setAll(n),t.convertToFoundDocument(r.version,i).setHasCommittedMutations()}(e,t,r):t.convertToNoDocument(r.version).setHasCommittedMutations()}(n,e,r[t])}}applyToLocalView(e,t){for(let r of this.baseMutations)r.key.isEqual(e.key)&&(t=nU(r,e,t,this.localWriteTime));for(let r of this.mutations)r.key.isEqual(e.key)&&(t=nU(r,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(e,t){let r=ng();return this.mutations.forEach(n=>{let i=e.get(n.key),s=i.overlayedDocument,a=this.applyToLocalView(s,i.mutatedFields),o=nF(s,a=t.has(n.key)?null:a);null!==o&&r.set(n.key,o),s.isValidDocument()||s.convertToNoDocument(eg.min())}),r}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),nv())}isEqual(e){return this.batchId===e.batchId&&X(this.mutations,e.mutations,(e,t)=>nV(e,t))&&X(this.baseMutations,e.baseMutations,(e,t)=>nV(e,t))}}class nW{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){M(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=nm,i=e.mutations;for(let e=0;e<i.length;e++)n=n.insert(i[e].key,r[e].version);return new nW(e,t,r,n)}}class nQ{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{ 16 largestBatchId: ${this.largestBatchId}, 17 mutation: ${this.mutation.toString()} 18 }`}}class nJ{constructor(e,t,r){this.alias=e,this.aggregateType=t,this.fieldPath=r}}class nY{constructor(e,t){this.count=e,this.unchangedNames=t}}function nX(e){switch(e){case F.OK:return P(64938);case F.CANCELLED:case F.UNKNOWN:case F.DEADLINE_EXCEEDED:case F.RESOURCE_EXHAUSTED:case F.INTERNAL:case F.UNAVAILABLE:case F.UNAUTHENTICATED:return!1;case F.INVALID_ARGUMENT:case F.NOT_FOUND:case F.ALREADY_EXISTS:case F.PERMISSION_DENIED:case F.FAILED_PRECONDITION:case F.ABORTED:case F.OUT_OF_RANGE:case F.UNIMPLEMENTED:case F.DATA_LOSS:return!0;default:return P(15467,{code:e})}}function nZ(e){if(void 0===e)return D("GRPC error has no .code"),F.UNKNOWN;switch(e){case c.OK:return F.OK;case c.CANCELLED:return F.CANCELLED;case c.UNKNOWN:return F.UNKNOWN;case c.DEADLINE_EXCEEDED:return F.DEADLINE_EXCEEDED;case c.RESOURCE_EXHAUSTED:return F.RESOURCE_EXHAUSTED;case c.INTERNAL:return F.INTERNAL;case c.UNAVAILABLE:return F.UNAVAILABLE;case c.UNAUTHENTICATED:return F.UNAUTHENTICATED;case c.INVALID_ARGUMENT:return F.INVALID_ARGUMENT;case c.NOT_FOUND:return F.NOT_FOUND;case c.ALREADY_EXISTS:return F.ALREADY_EXISTS;case c.PERMISSION_DENIED:return F.PERMISSION_DENIED;case c.FAILED_PRECONDITION:return F.FAILED_PRECONDITION;case c.ABORTED:return F.ABORTED;case c.OUT_OF_RANGE:return F.OUT_OF_RANGE;
18case c.UNIMPLEMENTED:return F.UNIMPLEMENTED;case c.DATA_LOSS:return F.DATA_LOSS;default:return P(39323,{code:e})}}(d=c||(c={}))[d.OK=0]="OK",d[d.CANCELLED=1]="CANCELLED",d[d.UNKNOWN=2]="UNKNOWN",d[d.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",d[d.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",d[d.NOT_FOUND=5]="NOT_FOUND",d[d.ALREADY_EXISTS=6]="ALREADY_EXISTS",d[d.PERMISSION_DENIED=7]="PERMISSION_DENIED",d[d.UNAUTHENTICATED=16]="UNAUTHENTICATED",d[d.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",d[d.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",d[d.ABORTED=10]="ABORTED",d[d.OUT_OF_RANGE=11]="OUT_OF_RANGE",d[d.UNIMPLEMENTED=12]="UNIMPLEMENTED",d[d.INTERNAL=13]="INTERNAL",d[d.UNAVAILABLE=14]="UNAVAILABLE",d[d.DATA_LOSS=15]="DATA_LOSS";let n0=null;function n1(){return new TextEncoder}let n2=new t([0xffffffff,0xffffffff],0);function n6(e){let t=n1().encode(e),n=new r;return n.update(t),new Uint8Array(n.digest())}function n3(e){let r=new DataView(e.buffer),n=r.getUint32(0,!0),i=r.getUint32(4,!0),s=r.getUint32(8,!0),a=r.getUint32(12,!0);return[new t([n,i],0),new t([s,a],0)]}class n5{constructor(e,r,n){if(this.bitmap=e,this.padding=r,this.hashCount=n,r<0||r>=8)throw new n4(`Invalid padding: ${r}`);if(n<0||e.length>0&&0===this.hashCount)throw new n4(`Invalid hash count: ${n}`);if(0===e.length&&0!==r)throw new n4(`Invalid padding when bitmap length is 0: ${r}`);this.ge=8*e.length-r,this.pe=t.fromNumber(this.ge)}ye(e,r,n){let i=e.add(r.multiply(t.fromNumber(n)));return 1===i.compare(n2)&&(i=new t([i.getBits(0),i.getBits(1)],0)),i.modulo(this.pe).toNumber()}we(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.ge)return!1;let[t,r]=n3(n6(e));for(let e=0;e<this.hashCount;e++){let n=this.ye(t,r,e);if(!this.we(n))return!1}return!0}static create(e,t,r){let n=new n5(new Uint8Array(Math.ceil(e/8)),e%8==0?0:8-e%8,t);return r.forEach(e=>n.insert(e)),n}insert(e){if(0===this.ge)return;let[t,r]=n3(n6(e));for(let e=0;e<this.hashCount;e++){let n=this.ye(t,r,e);this.be(n)}}be(e){let t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class n4 extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class n8{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){let n=new Map;return n.set(e,n7.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new n8(eg.min(),n,new tK(Q),nc,nv())}}class n7{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new n7(r,t,nv(),nv(),nv())}}class n9{constructor(e,t,r,n){this.Se=e,this.removedTargetIds=t,this.key=r,this.De=n}}class ie{constructor(e,t){this.targetId=e,this.Ce=t}}class it{constructor(e,t,r=tZ.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class ir{constructor(){this.ve=0,this.Fe=ia(),this.Me=tZ.EMPTY_BYTE_STRING,this.xe=!1,this.Oe=!0}get current(){return this.xe}get resumeToken(){return this.Me}get Ne(){return 0!==this.ve}get Be(){return this.Oe}Le(e){e.approximateByteSize()>0&&(this.Oe=!0,this.Me=e)}ke(){let e=nv(),t=nv(),r=nv();return this.Fe.forEach((n,i)=>{switch(i){case 0:e=e.add(n);break;case 2:t=t.add(n);break;case 1:r=r.add(n);break;default:P(38017,{changeType:i})}}),new n7(this.Me,this.xe,e,t,r)}Ke(){this.Oe=!1,this.Fe=ia()}qe(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}Ue(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}$e(){this.ve+=1}We(){this.ve-=1,M(this.ve>=0,3241,{ve:this.ve})}Qe(){this.Oe=!0,this.xe=!0}}class ii{constructor(e){this.Ge=e,this.ze=new Map,this.je=nc,this.He=is(),this.Je=is(),this.Ze=new tK(Q)}Xe(e){for(let t of e.Se)e.De&&e.De.isFoundDocument()?this.Ye(t,e.De):this.et(t,e.key,e.De);for(let t of e.removedTargetIds)this.et(t,e.key,e.De)}tt(e){this.forEachTarget(e,t=>{let r=this.nt(t);switch(e.state){case 0:this.rt(t)&&r.Le(e.resumeToken);break;case 1:r.We(),r.Ne||r.Ke(),r.Le(e.resumeToken);break;case 2:r.We(),r.Ne||this.removeTarget(t);break;case 3:this.rt(t)&&(r.Qe(),r.Le(e.resumeToken));break;case 4:this.rt(t)&&(this.it(t),r.Le(e.resumeToken));break;default:P(56790,{state:e.state})}})}forEachTarget(e,t){e.targetIds.length>0?e.targetIds.forEach(t):this.ze.forEach((e,r)=>{this.rt(r)&&t(r)})}st(e){let t=e.targetId,r=e.Ce.count,n=this.ot(t);if(n){let a=n.target;if(r1(a))if(0===r){let e=new ei(a.path);this.et(t,e,rN.newNoDocument(e,eg.min()))}else M(1===r,20013,{expectedCount:r});else{let n=this._t(t);if(n!==r){var i,s;let r,a,o=this.ut(e),l=o?this.ct(o,e,n):1;0!==l&&(this.it(t),this.Ze=this.Ze.insert(t,2===l?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch")),n0?.lt((i=e.Ce,s=this.Ge.ht(),r={localCacheCount:n,existenceFilterCount:i.count,databaseId:s.database,projectId:s.projectId},(a=i.unchangedNames)&&(r.bloomFilter={applied:0===l,hashCount:a?.hashCount??0,bitmapLength:a?.bits?.bitmap?.length??0,padding:a?.bits?.padding??0,mightContain:e=>o?.mightContain(e)??!1}),r))}}}}ut(e){let t,r,n=e.Ce.unchangedNames;if(!n||!n.bits)return null;let{bits:{bitmap:i="",padding:s=0},hashCount:a=0}=n;try{t=t6(i).toUint8Array()}catch(e){if(e instanceof tX)return R("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{r=new n5(t,s,a)}catch(e){return R(e instanceof n4?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===r.ge?null:r}ct(e,t,r){return 2*(t.Ce.count!==r-this.Pt(e,t.targetId))}Pt(e,t){let r=this.Ge.getRemoteKeysForTarget(t),n=0;return r.forEach(r=>{let i=this.Ge.ht(),s=`projects/${i.projectId}/databases/${i.database}/documents/${r.path.canonicalString()}`;e.mightContain(s)||(this.et(t,r,null),n++)}),n}Tt(e){let t=new Map;this.ze.forEach((r,n)=>{let i=this.ot(n);if(i){if(r.current&&r1(i.target)){let t=new ei(i.target.path);this.It(t).has(n)||this.Et(n,t)||this.et(n,t,rN.newNoDocument(t,e))}r.Be&&(t.set(n,r.ke()),r.Ke())}});let r=nv();this.Je.forEach((e,t)=>{let n=!0;t.forEachWhile(e=>{let t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(n=!1,!1)}),n&&(r=r.add(e))}),this.je.forEach((t,r)=>r.setReadTime(e));let n=new n8(e,t,this.Ze,this.je,r);return this.je=nc,this.He=is(),this.Je=is(),this.Ze=new tK(Q),n}Ye(e,t){if(!this.rt(e))return;
18let r=2*!!this.Et(e,t.key);this.nt(e).qe(t.key,r),this.je=this.je.insert(t.key,t),this.He=this.He.insert(t.key,this.It(t.key).add(e)),this.Je=this.Je.insert(t.key,this.Rt(t.key).add(e))}et(e,t,r){if(!this.rt(e))return;let n=this.nt(e);this.Et(e,t)?n.qe(t,1):n.Ue(t),this.Je=this.Je.insert(t,this.Rt(t).delete(e)),this.Je=this.Je.insert(t,this.Rt(t).add(e)),r&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){let t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}$e(e){this.nt(e).$e()}nt(e){let t=this.ze.get(e);return t||(t=new ir,this.ze.set(e,t)),t}Rt(e){let t=this.Je.get(e);return t||(t=new tW(Q),this.Je=this.Je.insert(e,t)),t}It(e){let t=this.He.get(e);return t||(t=new tW(Q),this.He=this.He.insert(e,t)),t}rt(e){let t=null!==this.ot(e);return t||N("WatchChangeAggregator","Detected inactive target",e),t}ot(e){let t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(e){this.ze.set(e,new ir),this.Ge.getRemoteKeysForTarget(e).forEach(t=>{this.et(e,t,null)})}Et(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function is(){return new tK(ei.comparator)}function ia(){return new tK(ei.comparator)}let io={asc:"ASCENDING",desc:"DESCENDING"},il={"<":"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"},iu={and:"AND",or:"OR"};class ih{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function ic(e,t){return e.useProto3Json||eK(t)?t:{value:t}}function id(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function ip(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function ig(e){let t;return M(!!e,49232),eg.fromTimestamp(new ep((t=t1(e)).seconds,t.nanos))}function im(e,t){return iy(e,t).canonicalString()}function iy(e,t){let r=new et(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function iv(e){let t=et.fromString(e);return M(iP(t),10190,{key:t.toString()}),t}function iw(e,t){return im(e.databaseId,t.path)}function i_(e,t){let r=iv(t);if(r.get(1)!==e.databaseId.projectId)throw new U(F.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new U(F.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new ei(iT(r))}function ib(e,t){return im(e.databaseId,t)}function iI(e){let t=iv(e);return 4===t.length?et.emptyPath():iT(t)}function iE(e){return new et(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function iT(e){return M(e.length>4&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function iS(e,t,r){return{name:iw(e,t),fields:r.value.mapValue.fields}}function iC(e,t,r){let n=i_(e,t.name),i=ig(t.updateTime),s=t.createTime?ig(t.createTime):eg.min(),a=new rx({mapValue:{fields:t.fields}}),o=rN.newFoundDocument(n,i,s,a);return r&&o.setHasCommittedMutations(),r?o.setHasCommittedMutations():o}function iA(e,t){var r,n;let i;if(t instanceof nB)i={update:iS(e,t.key,t.value)};else if(t instanceof nK)i={delete:iw(e,t.key)};else if(t instanceof nq){let r;i={update:iS(e,t.key,t.data),updateMask:(n=t.fieldMask,r=[],n.fields.forEach(e=>r.push(e.canonicalString())),{fieldPaths:r})}}else{if(!(t instanceof nG))return P(16599,{dt:t.type});i={verify:iw(e,t.key)}}return t.fieldTransforms.length>0&&(i.updateTransforms=t.fieldTransforms.map(e=>(function(e,t){let r=t.transform;if(r instanceof nT)return{fieldPath:t.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(r instanceof nS)return{fieldPath:t.field.canonicalString(),appendMissingElements:{values:r.elements}};if(r instanceof nA)return{fieldPath:t.field.canonicalString(),removeAllFromArray:{values:r.elements}};if(r instanceof nx)return{fieldPath:t.field.canonicalString(),increment:r.Ae};throw P(20930,{transform:t.transform})})(0,e))),t.precondition.isNone||(i.currentDocument=void 0!==(r=t.precondition).updateTime?{updateTime:id(e,r.updateTime.toTimestamp())}:void 0!==r.exists?{exists:r.exists}:P(27497)),i}function ik(e,t){var r;let n=t.currentDocument?void 0!==(r=t.currentDocument).updateTime?nP.updateTime(ig(r.updateTime)):void 0!==r.exists?nP.exists(r.exists):nP.none():nP.none(),i=t.updateTransforms?t.updateTransforms.map(t=>{let r;return r=null,"setToServerValue"in t?(M("REQUEST_TIME"===t.setToServerValue,16630,{proto:t}),r=new nT):"appendMissingElements"in t?r=new nS(t.appendMissingElements.values||[]):"removeAllFromArray"in t?r=new nA(t.removeAllFromArray.values||[]):"increment"in t?r=new nx(e,t.increment):P(16584,{proto:t}),new nR(en.fromServerFormat(t.fieldPath),r)}):[];if(t.update){t.update.name;let r=i_(e,t.update.name),s=new rx({mapValue:{fields:t.update.fields}});return t.updateMask?new nq(r,s,new tY((t.updateMask.fieldPaths||[]).map(e=>en.fromServerFormat(e))),n,i):new nB(r,s,n,i)}return t.delete?new nK(i_(e,t.delete),n):t.verify?new nG(i_(e,t.verify),n):P(1463,{proto:t})}function ix(e,t){return{documents:[ib(e,t.path)]}}function iN(e,t){var r,n;let i,s={structuredQuery:{}},a=t.path;null!==t.collectionGroup?(i=a,s.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=a.popLast(),s.structuredQuery.from=[{collectionId:a.lastSegment()}]),s.parent=ib(e,i);let o=function(e){if(0!==e.length)return function e(t){var r;let n;return t instanceof rM?function(e){if("=="===e.op){if(rb(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NAN"}};if(r_(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(rb(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NOT_NA
18N"}};if(r_(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:iR(e.field),op:il[e.op],value:e.value}}}(t):t instanceof rF?1===(n=(r=t).getFilters().map(t=>e(t))).length?n[0]:{compositeFilter:{op:iu[r.op],filters:n}}:P(54877,{filter:t})}(rF.create(e,"and"))}(t.filters);o&&(s.structuredQuery.where=o);let l=function(e){if(0!==e.length)return e.map(e=>({field:iR(e.field),direction:io[e.dir]}))}(t.orderBy);l&&(s.structuredQuery.orderBy=l);let u=ic(e,t.limit);return null!==u&&(s.structuredQuery.limit=u),t.startAt&&(s.structuredQuery.startAt={before:(r=t.startAt).inclusive,values:r.position}),t.endAt&&(s.structuredQuery.endAt={before:!(n=t.endAt).inclusive,values:n.position}),{ft:s,parent:i}}function iD(e){var t,r,n;let i,s,a,o,l=iI(e.parent),u=e.structuredQuery,h=u.from?u.from.length:0,c=null;if(h>0){M(1===h,65062);let e=u.from[0];e.allDescendants?c=e.collectionId:l=l.child(e.collectionId)}let d=[];u.where&&(d=(i=function e(t){return void 0!==t.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":let t=iO(e.unaryFilter.field);return rM.create(t,"==",{doubleValue:NaN});case"IS_NULL":let r=iO(e.unaryFilter.field);return rM.create(r,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let n=iO(e.unaryFilter.field);return rM.create(n,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let i=iO(e.unaryFilter.field);return rM.create(i,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return P(61313);default:return P(60726)}}(t):void 0!==t.fieldFilter?rM.create(iO(t.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";case"OPERATOR_UNSPECIFIED":return P(58110);default:return P(50506)}}(t.fieldFilter.op),t.fieldFilter.value):void 0!==t.compositeFilter?rF.create(t.compositeFilter.filters.map(t=>e(t)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return P(1026)}}(t.compositeFilter.op)):P(30097,{filter:t})}(u.where))instanceof rF&&rB(i)?i.getFilters():[i]);let f=[];u.orderBy&&(f=u.orderBy.map(e=>new rP(iO(e.field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(e.direction))));let p=null;u.limit&&(p=eK(s="object"==typeof(t=u.limit)?t.value:t)?null:s);let g=null;u.startAt&&(a=!!(r=u.startAt).before,g=new rD(r.values||[],a));let m=null;return u.endAt&&(o=!(n=u.endAt).before,m=new rD(n.values||[],o)),new r5(l,c,f,d,p,"F",g,m)}function iR(e){return{fieldPath:e.canonicalString()}}function iO(e){return en.fromServerFormat(e.fieldPath)}function iP(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}function iL(e){return!!e&&"function"==typeof e._toProto&&"ProtoValue"===e._protoValueType}class iM{constructor(e,t,r,n,i=eg.min(),s=eg.min(),a=tZ.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new iM(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new iM(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new iM(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new iM(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class iF{constructor(e){this.yt=e}}function iU(e,t){let r=t.key,n={prefixPath:r.getCollectionPath().popLast().toArray(),collectionGroup:r.collectionGroup,documentId:r.path.lastSegment(),readTime:iV(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument()){var i;n.document={name:iw(i=e.yt,t.key),fields:t.data.value.mapValue.fields,updateTime:id(i,t.version.toTimestamp()),createTime:id(i,t.createTime.toTimestamp())}}else if(t.isNoDocument())n.noDocument={path:r.path.toArray(),readTime:iB(t.version)};else{if(!t.isUnknownDocument())return P(57904,{document:t});n.unknownDocument={path:r.path.toArray(),version:iB(t.version)}}return n}function iV(e){let t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function iB(e){let t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function iq(e){let t=new ep(e.seconds,e.nanoseconds);return eg.fromTimestamp(t)}function ij(e,t){let r=(t.baseMutations||[]).map(t=>ik(e.yt,t));for(let e=0;e<t.mutations.length-1;++e){let r=t.mutations[e];e+1<t.mutations.length&&void 0!==t.mutations[e+1].transform&&(r.updateTransforms=t.mutations[e+1].transform.fieldTransforms,t.mutations.splice(e+1,1),++e)}let n=t.mutations.map(t=>ik(e.yt,t)),i=ep.fromMillis(t.localWriteTimeMs);return new nH(t.batchId,i,r,n)}function iz(e){var t;let r,n=iq(e.readTime),i=void 0!==e.lastLimboFreeSnapshotVersion?iq(e.lastLimboFreeSnapshotVersion):eg.min();return new iM(void 0!==e.query.documents?(M(1===(r=(t=e.query).documents.length),1966,{count:r}),ne(r4(iI(t.documents[0])))):ne(iD(e.query)),e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,n,i,tZ.fromBase64String(e.resumeToken))}function i$(e,t){let r,n=iB(t.snapshotVersion),i=iB(t.lastLimboFreeSnapshotVersion);r=r1(t.target)?ix(e.yt,t.target):iN(e.yt,t.target).ft;let s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:rZ(t.target),readTime:n,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:i,query:r}}function iK(e){let t=iD({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?nn(t,t.limit,"L"):t}function iG(e,t){return new nQ(t.largestBatchId,ik(e.yt,t.overlayMutation))}function iH(e,t){let r=t.path.lastSegment();return[e,eW(t.path.popLast()),r]}function iW(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:iB(n.readTime),documentKey:eW(n.documentKey.path),largestBatchId:n.largestBatchId}}class iQ{getBundleMetadata(e,t){return tq(e,tm).get(t).next(e=>{if(e)return{id:e.bundleId,createTime:iq(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return tq(e,tm).put({bundleId:t.id,createTime:iB(ig(t.createTime)),version:t.version})}getNamedQuery(e,t){return tq(e,ty).get(t).next(e=>{if(e)return{name:e.name,query:iK(e.bundledQuery),readTime:iq(e.readTime)}})}saveNamedQuery(e,t){return tq(e,ty).put({name:t.name,readTime:iB(ig(t.readTime)),bundledQuery:t.bundledQuery})}}
18class iJ{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){return new iJ(e,t.uid||"")}getOverlay(e,t){return tq(e,tk).get(iH(this.userId,t)).next(e=>e?iG(this.serializer,e):null)}getOverlays(e,t){let r=ng();return ex.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(e,t,r){let n=[];return r.forEach((r,i)=>{let s=new nQ(t,i);n.push(this.bt(e,s))}),ex.waitFor(n)}removeOverlaysForBatchId(e,t,r){let n=new Set;t.forEach(e=>n.add(eW(e.getCollectionPath())));let i=[];return n.forEach(t=>{let n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,r+1],!1,!0);i.push(tq(e,tk).X(tN,n))}),ex.waitFor(i)}getOverlaysForCollection(e,t,r){let n=ng(),i=eW(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,1/0],!0);return tq(e,tk).H(tN,s).next(e=>{for(let t of e){let e=iG(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,n){let i,s=ng(),a=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,1/0],!0);return tq(e,tk).ee({index:tR,range:a},(e,t,r)=>{let a=iG(this.serializer,t);s.size()<n||a.largestBatchId===i?(s.set(a.getKey(),a),i=a.largestBatchId):r.done()}).next(()=>s)}bt(e,t){return tq(e,tk).put(function(e,t,r){let[n,i,s]=iH(t,r.mutation.key);return{userId:t,collectionPath:i,documentId:s,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:iA(e.yt,r.mutation)}}(this.serializer,this.userId,t))}}class iY{St(e){return tq(e,tP)}getSessionToken(e){return this.St(e).get("sessionToken").next(e=>{let t=e?.value;return t?tZ.fromUint8Array(t):tZ.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.St(e).put({name:"sessionToken",value:t.toUint8Array()})}}class iX{Dt(e,t){this.Ct(e,t),t.vt()}Ct(e,t){if("nullValue"in e)this.Ft(t,5);else if("booleanValue"in e)this.Ft(t,10),t.Mt(+!!e.booleanValue);else if("integerValue"in e)this.Ft(t,15),t.Mt(t2(e.integerValue));else if("doubleValue"in e){let r=t2(e.doubleValue);isNaN(r)?this.Ft(t,13):(this.Ft(t,15),eG(r)?t.Mt(0):t.Mt(r))}else if("timestampValue"in e){let r=e.timestampValue;this.Ft(t,20),"string"==typeof r&&(r=t1(r)),t.xt(`${r.seconds||""}`),t.Mt(r.nanos||0)}else if("stringValue"in e)this.Ot(e.stringValue,t),this.Nt(t);else if("bytesValue"in e)this.Ft(t,30),t.Bt(t6(e.bytesValue)),this.Nt(t);else if("referenceValue"in e)this.Lt(e.referenceValue,t);else if("geoPointValue"in e){let r=e.geoPointValue;this.Ft(t,45),t.Mt(r.latitude||0),t.Mt(r.longitude||0)}else"mapValue"in e?rS(e)?this.Ft(t,Number.MAX_SAFE_INTEGER):rE(e)?this.kt(e.mapValue,t):(this.Kt(e.mapValue,t),this.Nt(t)):"arrayValue"in e?(this.qt(e.arrayValue,t),this.Nt(t)):P(19022,{Ut:e})}Ot(e,t){this.Ft(t,25),this.$t(e,t)}$t(e,t){t.xt(e)}Kt(e,t){let r=e.fields||{};for(let e of(this.Ft(t,55),Object.keys(r)))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){let r=e.fields||{};this.Ft(t,53);let n=r[rl].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(t2(n)),this.Ot(rl,t),this.Ct(r[rl],t)}qt(e,t){let r=e.values||[];for(let e of(this.Ft(t,50),r))this.Ct(e,t)}Lt(e,t){this.Ft(t,37),ei.fromName(e).path.forEach(e=>{this.Ft(t,60),this.$t(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}function iZ(e){return Math.ceil((64-function(e){let t=0;for(let r=0;r<8;++r){let n=function(e){if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t}(255&e[r]);if(t+=n,8!==n)break}return t}(e))/8)}iX.Wt=new iX;class i0{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Qt(e){let t=e[Symbol.iterator](),r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){let t=e[Symbol.iterator](),r=t.next();for(;!r.done;)this.Ht(r.value),r=t.next();this.Jt()}Zt(e){for(let t of e){let e=t.charCodeAt(0);if(e<128)this.Gt(e);else if(e<2048)this.Gt(960|e>>>6),this.Gt(128|63&e);else if(t<"\uD800"||"\uDBFF"<t)this.Gt(480|e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e);else{let e=t.codePointAt(0);this.Gt(240|e>>>18),this.Gt(128|63&e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e)}}this.zt()}Xt(e){for(let t of e){let e=t.charCodeAt(0);if(e<128)this.Ht(e);else if(e<2048)this.Ht(960|e>>>6),this.Ht(128|63&e);else if(t<"\uD800"||"\uDBFF"<t)this.Ht(480|e>>>12),this.Ht(128|63&e>>>6),this.Ht(128|63&e);else{let e=t.codePointAt(0);this.Ht(240|e>>>18),this.Ht(128|63&e>>>12),this.Ht(128|63&e>>>6),this.Ht(128|63&e)}}this.Jt()}Yt(e){let t=this.en(e),r=iZ(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let e=t.length-r;e<t.length;++e)this.buffer[this.position++]=255&t[e]}nn(e){let t=this.en(e),r=iZ(t);this.tn(1+r),this.buffer[this.position++]=~(255&r);for(let e=t.length-r;e<t.length;++e)this.buffer[this.position++]=~(255&t[e])}rn(){this.sn(255),this.sn(255)}_n(){this.an(255),this.an(255)}reset(){this.position=0}seed(e){this.tn(e.length),this.buffer.set(e,this.position),this.position+=e.length}un(){return this.buffer.slice(0,this.position)}en(e){let t,r=((t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1),new Uint8Array(t.buffer)),n=!!(128&r[0]);r[0]^=n?255:128;for(let e=1;e<r.length;++e)r[e]^=255*!!n;return r}Gt(e){let t=255&e;0===t?(this.sn(0),this.sn(255)):255===t?(this.sn(255),this.sn(0)):this.sn(t)}Ht(e){let t=255&e;0===t?(this.an(0),this.an(255)):255===t?(this.an(255),this.an(0)):this.an(e)}zt(){this.sn(0),this.sn(1)}Jt(){this.an(0),this.an(1)}sn(e){this.tn(1),this.buffer[this.position++]=e}an(e){this.tn(1),this.buffer[this.position++]=~e}tn(e){let t=e+this.position;if(t<=this.buffer.length)return;let r=2*this.buffer.length;r<t&&(r=t);let n=new Uint8Array(r);n.set(this.buffer),this.buffer=n}}class i1{constructor(e){this.cn=e}Bt(e){this.cn.Qt(e)}xt(e){this.cn.Zt(e)}Mt(e){this.cn.Yt(e)}vt(){this.cn.rn()}}class i2{constructor(e){this.cn=e}Bt(e){this.cn.jt(e)}xt(e){this.cn.Xt(e)}Mt(e){this.cn.nn(e)}vt(){this.cn._n()}}class i6{constructor(){this.cn=new i0,this.ascending=new i1(this.cn),this.descending=new i2(this.cn)}seed(e){this.cn.seed(e)}ln(e){return 0===e?this.ascending:this.descending}un(){return this.cn.un()}reset(){this.cn.reset()}}class i3{constructor(e,t,r,n){this.hn=e,this.Pn=t,this.Tn=r,this.In=n}En(){let e=this.In.length,t=0===e||255===this.In[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.In,0),t!==e?r.set([0],this.In.length):++r[r.length-1],new i3(this.hn,this.Pn,this.Tn,r)}Rn(e,t,r){return{indexId:this.hn,uid:e,arrayValue:i8(this.Tn),directionalValue:i8(this.In),orderedDocumentKey:i8(t),documentKey:r.path.toArray()}}An(e,t,r){let n=this.Rn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function i5(e,t){let r=e.hn-t.hn;return 0!==r||0!==(r=i4(e.Tn,t.Tn))||0!==(r=i4(e.In,t.In))?r:ei.comparator(e.Pn,t.Pn)}function i4(e,t){for(let r=0;r<e.length&&r<t.length;++r){let n=e[r]-t[r];if(0!==n)return n}return e.length-t.length}function i8(e){return(0,_.isSafariOrWebkit)()?function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}(e):e}function i7(e){return"string"!=typeof e?e:function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(e)}class i9{constructor(e){for(const t of(this.Vn=new tW((e,t)=>
18en.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.dn=e.orderBy,this.mn=[],e.filters))t.isInequality()?this.Vn=this.Vn.add(t):this.mn.push(t)}get fn(){return this.Vn.size>1}gn(e){if(M(e.collectionGroup===this.collectionId,49279),this.fn)return!1;let t=ey(e);if(void 0!==t&&!this.pn(t))return!1;let r=ev(e),n=new Set,i=0,s=0;for(;i<r.length&&this.pn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i===r.length)return!0;if(this.Vn.size>0){let e=this.Vn.getIterator().getNext();if(!n.has(e.field.canonicalString())){let t=r[i];if(!this.yn(e,t)||!this.wn(this.dn[s++],t))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.dn.length||!this.wn(this.dn[s++],e))return!1}return!0}bn(){if(this.fn)return null;let e=new tW(en.comparator),t=[];for(let r of this.mn)if(!r.field.isKeyField())if("array-contains"===r.op||"array-contains-any"===r.op)t.push(new e_(r.field,2));else{if(e.has(r.field))continue;e=e.add(r.field),t.push(new e_(r.field,0))}for(let r of this.dn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),t.push(new e_(r.field,+("asc"!==r.dir))));return new em(em.UNKNOWN_ID,this.collectionId,t,eb.empty())}pn(e){for(let t of this.mn)if(this.yn(t,e))return!0;return!1}yn(e,t){if(void 0===e||!e.field.isEqual(t.fieldPath))return!1;let r="array-contains"===e.op||"array-contains-any"===e.op;return 2===t.kind===r}wn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function se(e){return e instanceof rM}function st(e){return e instanceof rF&&rB(e)}function sr(e){return se(e)||st(e)||function(e){if(e instanceof rF&&rV(e)){for(let t of e.getFilters())if(!se(t)&&!st(t))return!1;return!0}return!1}(e)}function sn(e,t){return M(e instanceof rM||e instanceof rF,38388),M(t instanceof rM||t instanceof rF,25473),ss(e instanceof rM?t instanceof rM?rF.create([e,t],"and"):si(e,t):t instanceof rM?si(t,e):function(e,t){if(M(e.filters.length>0&&t.filters.length>0,48005),rU(e)&&rU(t))return rj(e,t.getFilters());let r=rV(e)?e:t,n=rV(e)?t:e,i=r.filters.map(e=>sn(e,n));return rF.create(i,"or")}(e,t))}function si(e,t){if(rU(t))return rj(t,e.getFilters());{let r=t.filters.map(t=>sn(e,t));return rF.create(r,"or")}}function ss(e){if(M(e instanceof rM||e instanceof rF,11850),e instanceof rM)return e;let t=e.getFilters();if(1===t.length)return ss(t[0]);if(rq(e))return e;let r=t.map(e=>ss(e)),n=[];return r.forEach(t=>{t instanceof rM?n.push(t):t instanceof rF&&(t.op===e.op?n.push(...t.filters):n.push(t))}),1===n.length?n[0]:rF.create(n,e.op)}class sa{constructor(){this.Sn=new so}addToCollectionParentIndex(e,t){return this.Sn.add(t),ex.resolve()}getCollectionParents(e,t){return ex.resolve(this.Sn.getEntries(t))}addFieldIndex(e,t){return ex.resolve()}deleteFieldIndex(e,t){return ex.resolve()}deleteAllFieldIndexes(e){return ex.resolve()}createTargetIndexes(e,t){return ex.resolve()}getDocumentsMatchingTarget(e,t){return ex.resolve(null)}getIndexType(e,t){return ex.resolve(0)}getFieldIndexes(e,t){return ex.resolve([])}getNextCollectionGroupToUpdate(e){return ex.resolve(null)}getMinOffset(e,t){return ex.resolve(eT.min())}getMinOffsetFromCollectionGroup(e,t){return ex.resolve(eT.min())}updateCollectionGroup(e,t,r){return ex.resolve()}updateIndexEntries(e,t){return ex.resolve()}}class so{constructor(){this.index={}}add(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new tW(et.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t];return n&&n.has(r)}getEntries(e){return(this.index[e]||new tW(et.comparator)).toArray()}}let sl="IndexedDbIndexManager",su=new Uint8Array(0);class sh{constructor(e,t){this.databaseId=t,this.Dn=new so,this.Cn=new nh(e=>rZ(e),(e,t)=>r0(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){if(!this.Dn.has(t)){let r=t.lastSegment(),n=t.popLast();e.addOnCommittedListener(()=>{this.Dn.add(t)});let i={collectionId:r,parent:eW(n)};return tq(e,tf).put(i)}return ex.resolve()}getCollectionParents(e,t){let r=[],n=IDBKeyRange.bound([t,""],[t+"\0",""],!1,!0);return tq(e,tf).H(n).next(e=>{for(let n of e){if(n.collectionId!==t)break;r.push(eQ(n.parent))}return r})}addFieldIndex(e,t){let r=tq(e,tv),n={indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;let i=r.add(n);if(t.indexState){let r=tq(e,t_);return i.next(e=>{r.put(iW(e,this.uid,t.indexState.sequenceNumber,t.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=tq(e,tv),n=tq(e,t_),i=tq(e,tT);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=tq(e,tv),r=tq(e,tT),n=tq(e,t_);return t.X().next(()=>r.X()).next(()=>n.X())}createTargetIndexes(e,t){return ex.forEach(this.vn(t),t=>this.getIndexType(e,t).next(r=>{if(0===r||1===r){let r=new i9(t).bn();if(null!=r)return this.addFieldIndex(e,r)}}))}getDocumentsMatchingTarget(e,t){let r=tq(e,tT),n=!0,i=new Map;return ex.forEach(this.vn(t),t=>this.Fn(e,t).next(e=>{n&&(n=!!e),i.set(t,e)})).next(()=>{if(n){let e=nv(),n=[];return ex.forEach(i,(i,s)=>{N(sl,`Using index id=${i.indexId}|cg=${i.collectionGroup}|f=${i.fields.map(e=>`${e.fieldPath}:${e.kind}`).join(",")} to execute ${rZ(t)}`);let a=function(e,t){let r=ey(t);if(void 0===r)return null;for(let t of r2(e,r.fieldPath))switch(t.op){case"array-contains-any":return t.value.arrayValue.values||[];case"array-contains":return[t.value]}return null}(s,i),o=function(e,t){let r=new Map;for(let n of ev(t))for(let t of r2(e,n.fieldPath))switch(t.op){case"==":case"in":r.set(n.fieldPath.canonicalString(),t.value);break;case"not-in":case"!=":return r.set(n.fieldPath.canonicalString(),t.value),Array.from(r.values())}return null}(s,i),l=function(e,t){let r=[],n=!0;for(let i of ev(t)){let t=0===i.kind?r6(e,i.fieldPath,e.startAt):r3(e,i.fieldPath,e.startAt);r.push(t.value),n&&(n=t.inclusive)}return new rD(r,n)}(s,i),u=function(e,t){let r=[],n=!0;for(let i of ev(t)){let t=0===i.kind?r3(e,i.fieldPath,e.endAt):r6(e,i.fieldPath,e.endAt);r.push(t.value),n&&(n=t.inclusive)}return new rD(r,n)}(s,i),h=this.Mn(i,s,l),c=this.Mn(i,s,u),d=this.xn(i,s,o),f=this.On(i.indexId,a,h,l.inclusive,c,u.inclusive,d);return ex.forEach(f,i=>r.Z(i,t.limit).next(t=>{t.forEach(t=>{let r=ei.fromSegments(t.documentKey);e.has(r)||(e=e.add(r),n.push(r))})}))}).next(()=>n)}return ex.resolve(null)})}vn(e){let t=this.Cn.get(e);return t||(t=0===e.filters.length?[e]:(function(e){if(0===e.getFilters().length)return[];let t=function e(t){if(M(t instanceof rM||t instanceof rF,34018),t instanceof rM)return t;if(1===t.filters.length)return e(t.filters[0]);let r=t.filters.map(t=>e(t)),n=rF.create(r,t.op);return sr(n=ss(n))?n:(M(n instanceof rF,64498),M(rU(n),40251),M(n.filters.length>1,57927),n.filters.reduce((e,t)=>
18sn(e,t)))}(function e(t){if(M(t instanceof rM||t instanceof rF,20012),t instanceof rM){if(t instanceof rW){let e=t.value.arrayValue?.values?.map(e=>rM.create(t.field,"==",e))||[];return rF.create(e,"or")}return t}let r=t.filters.map(t=>e(t));return rF.create(r,t.op)}(e));return M(sr(t),7391),se(t)||st(t)?[t]:t.getFilters()})(rF.create(e.filters,"and")).map(t=>rX(e.path,e.collectionGroup,e.orderBy,t.getFilters(),e.limit,e.startAt,e.endAt)),this.Cn.set(e,t)),t}On(e,t,r,n,i,s,a){let o=(null!=t?t.length:1)*Math.max(r.length,i.length),l=o/(null!=t?t.length:1),u=[];for(let h=0;h<o;++h){let o=t?this.Nn(t[h/l]):su,c=this.Bn(e,o,r[h%l],n),d=this.Ln(e,o,i[h%l],s),f=a.map(t=>this.Bn(e,o,t,!0));u.push(...this.createRange(c,d,f))}return u}Bn(e,t,r,n){let i=new i3(e,ei.empty(),t,r);return n?i:i.En()}Ln(e,t,r,n){let i=new i3(e,ei.empty(),t,r);return n?i.En():i}Fn(e,t){let r=new i9(t),n=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,n).next(e=>{let t=null;for(let n of e)r.gn(n)&&(!t||n.fields.length>t.fields.length)&&(t=n);return t})}getIndexType(e,t){let r=2,n=this.vn(t);return ex.forEach(n,t=>this.Fn(e,t).next(e=>{e?0!==r&&e.fields.length<function(e){let t=new tW(en.comparator),r=!1;for(let n of e.filters)for(let e of n.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?r=!0:t=t.add(e.field));for(let r of e.orderBy)r.field.isKeyField()||(t=t.add(r.field));return t.size+ +!!r}(t)&&(r=1):r=0})).next(()=>null!==t.limit&&n.length>1&&2===r?1:r)}kn(e,t){let r=new i6;for(let n of ev(e)){let e=t.data.field(n.fieldPath);if(null==e)return null;let i=r.ln(n.kind);iX.Wt.Dt(e,i)}return r.un()}Nn(e){let t=new i6;return iX.Wt.Dt(e,t.ln(0)),t.un()}Kn(e,t){let r,n=new i6;return iX.Wt.Dt(ry(this.databaseId,t),n.ln(0===(r=ev(e)).length?0:r[r.length-1].kind)),n.un()}xn(e,t,r){if(null===r)return[];let n=[];n.push(new i6);let i=0;for(let s of ev(e)){let e=r[i++];for(let r of n)if(this.qn(t,s.fieldPath)&&rw(e))n=this.Un(n,s,e);else{let t=r.ln(s.kind);iX.Wt.Dt(e,t)}}return this.$n(n)}Mn(e,t,r){return this.xn(e,t,r.position)}$n(e){let t=[];for(let r=0;r<e.length;++r)t[r]=e[r].un();return t}Un(e,t,r){let n=[...e],i=[];for(let e of r.arrayValue.values||[])for(let r of n){let n=new i6;n.seed(r.un()),iX.Wt.Dt(e,n.ln(t.kind)),i.push(n)}return i}qn(e,t){return!!e.filters.find(e=>e instanceof rM&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=tq(e,tv),n=tq(e,t_);return(t?r.H(tw,IDBKeyRange.bound(t,t)):r.H()).next(e=>{let t=[];return ex.forEach(e,e=>n.get([e.indexId,this.uid]).next(r=>{let n,i;t.push((n=r?new eb(r.sequenceNumber,new eT(iq(r.readTime),new ei(eQ(r.documentKey)),r.largestBatchId)):eb.empty(),i=e.fields.map(([e,t])=>new e_(en.fromServerFormat(e),t)),new em(e.indexId,e.collectionGroup,i,n)))})).next(()=>t)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{let r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!==r?r:Q(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,t,r){let n=tq(e,tv),i=tq(e,t_);return this.Wn(e).next(e=>n.H(tw,IDBKeyRange.bound(t,t)).next(t=>ex.forEach(t,t=>i.put(iW(t.indexId,this.uid,e,r)))))}updateIndexEntries(e,t){let r=new Map;return ex.forEach(t,(t,n)=>{let i=r.get(t.collectionGroup);return(i?ex.resolve(i):this.getFieldIndexes(e,t.collectionGroup)).next(i=>(r.set(t.collectionGroup,i),ex.forEach(i,r=>this.Qn(e,t,r).next(t=>{let i=this.Gn(n,r);return t.isEqual(i)?ex.resolve():this.zn(e,n,r,t,i)}))))})}jn(e,t,r,n){return tq(e,tT).put(n.Rn(this.uid,this.Kn(r,t.key),t.key))}Hn(e,t,r,n){return tq(e,tT).delete(n.An(this.uid,this.Kn(r,t.key),t.key))}Qn(e,t,r){let n=tq(e,tT),i=new tW(i5);return n.ee({index:tC,range:IDBKeyRange.only([r.indexId,this.uid,i8(this.Kn(r,t))])},(e,n)=>{i=i.add(new i3(r.indexId,t,i7(n.arrayValue),i7(n.directionalValue)))}).next(()=>i)}Gn(e,t){let r=new tW(i5),n=this.kn(t,e);if(null==n)return r;let i=ey(t);if(null!=i){let s=e.data.field(i.fieldPath);if(rw(s))for(let i of s.arrayValue.values||[])r=r.add(new i3(t.indexId,e.key,this.Nn(i),n))}else r=r.add(new i3(t.indexId,e.key,su,n));return r}zn(e,t,r,n,i){N(sl,"Updating index entries for document '%s'",t.key);let s=[];return function(e,t,r,n,i){let s=e.getIterator(),a=t.getIterator(),o=tJ(s),l=tJ(a);for(;o||l;){let e=!1,t=!1;if(o&&l){let n=r(o,l);n<0?t=!0:n>0&&(e=!0)}else null!=o?t=!0:e=!0;e?(n(l),l=tJ(a)):t?(i(o),o=tJ(s)):(o=tJ(s),l=tJ(a))}}(n,i,i5,n=>{s.push(this.jn(e,t,r,n))},n=>{s.push(this.Hn(e,t,r,n))}),ex.waitFor(s)}Wn(e){let t=1;return tq(e,t_).ee({index:tI,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,r,n)=>{n.done(),t=r.sequenceNumber+1}
18).next(()=>t)}createRange(e,t,r){r=r.sort((e,t)=>i5(e,t)).filter((e,t,r)=>!t||0!==i5(e,r[t-1]));let n=[];for(let i of(n.push(e),r)){let r=i5(i,e),s=i5(i,t);if(0===r)n[0]=e.En();else if(r>0&&s<0)n.push(i),n.push(i.En());else if(s>0)break}n.push(t);let i=[];for(let e=0;e<n.length;e+=2){if(this.Jn(n[e],n[e+1]))return[];let t=n[e].An(this.uid,su,ei.empty()),r=n[e+1].An(this.uid,su,ei.empty());i.push(IDBKeyRange.bound(t,r))}return i}Jn(e,t){return i5(e,t)>0}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(sc)}getMinOffset(e,t){return ex.mapArray(this.vn(t),t=>this.Fn(e,t).next(e=>e||P(44426))).next(sc)}}function sc(e){M(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let n=1;n<e.length;n++){let i=e[n].indexState.offset;0>eS(i,t)&&(t=i),r<i.largestBatchId&&(r=i.largestBatchId)}return new eT(t.readTime,t.documentKey,r)}let sd={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class sf{static withCacheSize(e){return new sf(e,sf.DEFAULT_COLLECTION_PERCENTILE,sf.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function sp(e,t,r){let n=e.store(e0),i=e.store(e5),s=[],a=IDBKeyRange.only(r.batchId),o=0,l=n.ee({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{M(1===o,47070,{batchId:r.batchId})}));let u=[];for(let e of r.mutations){var h,c;let n=(h=e.key.path,c=r.batchId,[t,eW(h),c]);s.push(i.delete(n)),u.push(e.key)}return ex.waitFor(s).next(()=>u)}function sg(e){let t;if(!e)return 0;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw P(14731);t=e.noDocument}return JSON.stringify(t).length}sf.DEFAULT_COLLECTION_PERCENTILE=10,sf.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,sf.DEFAULT=new sf(0x2800000,sf.DEFAULT_COLLECTION_PERCENTILE,sf.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),sf.DISABLED=new sf(-1,0,0);class sm{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Zn={}}static wt(e,t,r,n){return M(""!==e.uid,64387),new sm(e.isAuthenticated()?e.uid:"",t,r,n)}checkEmpty(e){let t=!0,r=IDBKeyRange.bound([this.userId,-1/0],[this.userId,1/0]);return sv(e).ee({index:e2,range:r},(e,r,n)=>{t=!1,n.done()}).next(()=>t)}addMutationBatch(e,t,r,n){let i=tq(e,e5),s=sv(e);return s.add({}).next(a=>{var o,l,u,h;let c,d;M("number"==typeof a,49019);let f=new nH(a,t,r,n),p=(o=this.serializer,l=this.userId,c=f.baseMutations.map(e=>iA(o.yt,e)),d=f.mutations.map(e=>iA(o.yt,e)),{userId:l,batchId:f.batchId,localWriteTimeMs:f.localWriteTime.toMillis(),baseMutations:c,mutations:d}),g=[],m=new tW((e,t)=>Q(e.canonicalString(),t.canonicalString()));for(let e of n){let t=(u=this.userId,h=e.key.path,[u,eW(h),a]);m=m.add(e.key.path.popLast()),g.push(s.put(p)),g.push(i.put(t,e3))}return m.forEach(t=>{g.push(this.indexManager.addToCollectionParentIndex(e,t))}),e.addOnCommittedListener(()=>{this.Zn[a]=f.keys()}),ex.waitFor(g).next(()=>f)})}lookupMutationBatch(e,t){return sv(e).get(t).next(e=>e?(M(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),ij(this.serializer,e)):null)}Xn(e,t){return this.Zn[t]?ex.resolve(this.Zn[t]):this.lookupMutationBatch(e,t).next(e=>{if(e){let r=e.keys();return this.Zn[t]=r,r}return null})}getNextMutationBatchAfterBatchId(e,t){let r=t+1,n=IDBKeyRange.lowerBound([this.userId,r]),i=null;return sv(e).ee({index:e2,range:n},(e,t,n)=>{t.userId===this.userId&&(M(t.batchId>=r,47524,{Yn:r}),i=ij(this.serializer,t)),n.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){let t=IDBKeyRange.upperBound([this.userId,1/0]),r=-1;return sv(e).ee({index:e2,range:t,reverse:!0},(e,t,n)=>{r=t.batchId,n.done()}).next(()=>r)}getAllMutationBatches(e){let t=IDBKeyRange.bound([this.userId,-1],[this.userId,1/0]);return sv(e).H(e2,t).next(e=>e.map(e=>ij(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(e,t){let r=[this.userId,eW(t.path)],n=IDBKeyRange.lowerBound(r),i=[];return tq(e,e5).ee({range:n},(r,n,s)=>{let[a,o,l]=r,u=eQ(o);if(a===this.userId&&t.path.isEqual(u))return sv(e).get(l).next(e=>{if(!e)throw P(61480,{er:r,batchId:l});M(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:l}),i.push(ij(this.serializer,e))});s.done()}).next(()=>i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new tW(Q),n=[];return t.forEach(t=>{let i=[this.userId,eW(t.path)],s=IDBKeyRange.lowerBound(i),a=tq(e,e5).ee({range:s},(e,n,i)=>{let[s,a,o]=e,l=eQ(a);s===this.userId&&t.path.isEqual(l)?r=r.add(o):i.done()});n.push(a)}),ex.waitFor(n).next(()=>this.tr(e,r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=[this.userId,eW(r)],s=IDBKeyRange.lowerBound(i),a=new tW(Q);return tq(e,e5).ee({range:s},(e,t,i)=>{let[s,o,l]=e,u=eQ(o);s===this.userId&&r.isPrefixOf(u)?u.length===n&&(a=a.add(l)):i.done()}).next(()=>this.tr(e,a))}tr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(sv(e).get(t).next(e=>{if(null===e)throw P(35274,{batchId:t});M(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(ij(this.serializer,e))}))}),ex.waitFor(n).next(()=>r)}removeMutationBatch(e,t){return sp(e.le,this.userId,t).next(r=>(e.addOnCommittedListener(()=>{this.nr(t.batchId)}),ex.forEach(r,t=>this.referenceDelegate.markPotentiallyOrphaned(e,t))))}nr(e){delete this.Zn[e]}performConsistencyCheck(e){return this.checkEmpty(e).next(t=>
18{if(!t)return ex.resolve();let r=IDBKeyRange.lowerBound([this.userId]),n=[];return tq(e,e5).ee({range:r},(e,t,r)=>{if(e[0]===this.userId){let t=eQ(e[1]);n.push(t)}else r.done()}).next(()=>{M(0===n.length,56720,{rr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return sy(e,this.userId,t)}ir(e){return tq(e,eZ).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""})}}function sy(e,t,r){let n=[t,eW(r.path)],i=n[1],s=IDBKeyRange.lowerBound(n),a=!1;return tq(e,e5).ee({range:s,Y:!0},(e,r,n)=>{let[s,o,l]=e;s===t&&o===i&&(a=!0),n.done()}).next(()=>a)}function sv(e){return tq(e,e0)}class sw{constructor(e){this.sr=e}next(){return this.sr+=2,this.sr}static _r(){return new sw(0)}static ar(){return new sw(-1)}}class s_{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(e){return this.ur(e).next(t=>{let r=new sw(t.highestTargetId);return t.highestTargetId=r.next(),this.cr(e,t).next(()=>t.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.ur(e).next(e=>eg.fromTimestamp(new ep(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.ur(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(e,t,r){return this.ur(e).next(n=>(n.highestListenSequenceNumber=t,r&&(n.lastRemoteSnapshotVersion=r.toTimestamp()),t>n.highestListenSequenceNumber&&(n.highestListenSequenceNumber=t),this.cr(e,n)))}addTargetData(e,t){return this.lr(e,t).next(()=>this.ur(e).next(r=>(r.targetCount+=1,this.hr(t,r),this.cr(e,r))))}updateTargetData(e,t){return this.lr(e,t)}removeTargetData(e,t){return this.removeMatchingKeysForTargetId(e,t.targetId).next(()=>tq(e,ti).delete(t.targetId)).next(()=>this.ur(e)).next(t=>(M(t.targetCount>0,8065),t.targetCount-=1,this.cr(e,t)))}removeTargets(e,t,r){let n=0,i=[];return tq(e,ti).ee((s,a)=>{let o=iz(a);o.sequenceNumber<=t&&null===r.get(o.targetId)&&(n++,i.push(this.removeTargetData(e,o)))}).next(()=>ex.waitFor(i)).next(()=>n)}forEachTarget(e,t){return tq(e,ti).ee((e,r)=>{t(iz(r))})}ur(e){return tq(e,td).get(tc).next(e=>(M(null!==e,2888),e))}cr(e,t){return tq(e,td).put(tc,t)}lr(e,t){return tq(e,ti).put(i$(this.serializer,t))}hr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),e.sequenceNumber>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.ur(e).next(e=>e.targetCount)}getTargetData(e,t){let r=rZ(t),n=IDBKeyRange.bound([r,-1/0],[r,1/0]),i=null;return tq(e,ti).ee({range:n,index:ts},(e,r,n)=>{let s=iz(r);r0(t,s.target)&&(i=s,n.done())}).next(()=>i)}addMatchingKeys(e,t,r){let n=[],i=sb(e);return t.forEach(t=>{let s=eW(t.path);n.push(i.put({targetId:r,path:s})),n.push(this.referenceDelegate.addReference(e,r,t))}),ex.waitFor(n)}removeMatchingKeys(e,t,r){let n=sb(e);return ex.forEach(t,t=>{let i=eW(t.path);return ex.waitFor([n.delete([r,i]),this.referenceDelegate.removeReference(e,r,t)])})}removeMatchingKeysForTargetId(e,t){let r=sb(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){let r=IDBKeyRange.bound([t],[t+1],!1,!0),n=sb(e),i=nv();return n.ee({range:r,Y:!0},(e,t,r)=>{let n=new ei(eQ(e[1]));i=i.add(n)}).next(()=>i)}containsKey(e,t){let r=eW(t.path),n=IDBKeyRange.bound([r],[r+"\0"],!1,!0),i=0;return sb(e).ee({index:tu,Y:!0,range:n},([e,t],r,n)=>{0!==e&&(i++,n.done())}).next(()=>i>0)}At(e,t){return tq(e,ti).get(t).next(e=>e?iz(e):null)}}function sb(e){return tq(e,to)}let sI="LruGarbageCollector";function sE([e,t],[r,n]){let i=Q(e,r);return 0===i?Q(t,n):i}class sT{constructor(e){this.Pr=e,this.buffer=new tW(sE),this.Tr=0}Ir(){return++this.Tr}Er(e){let t=[e,this.Ir()];if(this.buffer.size<this.Pr)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();0>sE(t,e)&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class sS{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Rr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Ar(6e4)}stop(){this.Rr&&(this.Rr.cancel(),this.Rr=null)}get started(){return null!==this.Rr}Ar(e){N(sI,`Garbage collection scheduled in ${e}ms`),this.Rr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Rr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){eM(e)?N(sI,"Ignoring IndexedDB error during garbage collection: ",e):await ek(e)}await this.Ar(3e5)})}}class sC{constructor(e,t){this.Vr=e,this.params=t}calculateTargetCount(e,t){return this.Vr.dr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return ex.resolve(e$.ce);let r=new sT(t);return this.Vr.forEachTarget(e,e=>r.Er(e.sequenceNumber)).next(()=>this.Vr.mr(e,e=>r.Er(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.Vr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.Vr.removeOrphanedDocuments(e,t)}collect(e,t){return -1===this.params.cacheSizeCollectionThreshold?(N("LruGarbageCollector","Garbage collection skipped; disabled"),ex.resolve(sd)):this.getCacheSize(e).next(r=>r<this.params.cacheSizeCollectionThreshold?(N("LruGarbageCollector",`Garbage collection skipped; Cache size ${r} is lower than threshold ${this.params.cacheSizeCollectionThreshold}
18`),sd):this.gr(e,t))}getCacheSize(e){return this.Vr.getCacheSize(e)}gr(e,t){let r,n,i,s,a,o,l,u=Date.now();return this.calculateTargetCount(e,this.params.percentileToCollect).next(t=>(t>this.params.maximumSequenceNumbersToCollect?(N("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${t}`),n=this.params.maximumSequenceNumbersToCollect):n=t,s=Date.now(),this.nthSequenceNumber(e,n))).next(n=>(r=n,a=Date.now(),this.removeTargets(e,r,t))).next(t=>(i=t,o=Date.now(),this.removeOrphanedDocuments(e,r))).next(e=>(l=Date.now(),x()<=E.LogLevel.DEBUG&&N("LruGarbageCollector",`LRU Garbage Collection 19 Counted targets in ${s-u}ms 20 Determined least recently used ${n} in `+(a-s)+"ms\n"+` Removed ${i} targets in `+(o-a)+"ms\n"+` Removed ${e} documents in `+(l-o)+"ms\n"+`Total Duration: ${l-u}ms`),ex.resolve({didRun:!0,sequenceNumbersCollected:n,targetsRemoved:i,documentsRemoved:e})))}}class sA{constructor(e,t){this.db=e,this.garbageCollector=new sC(this,t)}dr(e){let t=this.pr(e);return this.db.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}mr(e,t){return this.yr(e,(e,r)=>t(r))}addReference(e,t,r){return sk(e,r)}removeReference(e,t,r){return sk(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return sk(e,t)}wr(e,t){let r;return r=!1,tq(e,eZ).te(n=>sy(e,n,t).next(e=>(e&&(r=!0),ex.resolve(!e)))).next(()=>r)}removeOrphanedDocuments(e,t){let r=this.db.getRemoteDocumentCache().newChangeBuffer(),n=[],i=0;return this.yr(e,(s,a)=>{if(a<=t){let t=this.wr(e,s).next(t=>{if(!t)return i++,r.getEntry(e,s).next(()=>(r.removeEntry(s,eg.min()),sb(e).delete([0,eW(s.path)])))});n.push(t)}}).next(()=>ex.waitFor(n)).next(()=>r.apply(e)).next(()=>i)}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return sk(e,t)}yr(e,t){let r=sb(e),n,i=e$.ce;return r.ee({index:tu},([e,r],{path:s,sequenceNumber:a})=>{0===e?(i!==e$.ce&&t(new ei(eQ(n)),i),i=a,n=s):i=e$.ce}).next(()=>{i!==e$.ce&&t(new ei(eQ(n)),i)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function sk(e,t){var r;return sb(e).put((r=e.currentSequenceNumber,{targetId:0,path:eW(t.path),sequenceNumber:r}))}class sx{constructor(){this.changes=new nh(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,rN.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();let r=this.changes.get(t);return void 0!==r?ex.resolve(r):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 sN{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return tq(e,e4).put(r)}removeEntry(e,t,r){let n;return tq(e,e4).delete([(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],iV(r),n[n.length-1]])}updateMetadata(e,t){return this.getMetadata(e).next(r=>(r.byteSize+=t,this.br(e,r)))}getEntry(e,t){let r=rN.newInvalidDocument(t);return tq(e,e4).ee({index:e7,range:IDBKeyRange.only(sR(t))},(e,n)=>{r=this.Sr(t,n)}).next(()=>r)}Dr(e,t){let r={size:0,document:rN.newInvalidDocument(t)};return tq(e,e4).ee({index:e7,range:IDBKeyRange.only(sR(t))},(e,n)=>{r={document:this.Sr(t,n),size:sg(n)}}).next(()=>r)}getEntries(e,t){let r=nc;return this.Cr(e,t,(e,t)=>{let n=this.Sr(e,t);r=r.insert(e,n)}).next(()=>r)}vr(e,t){let r=nc,n=new tK(ei.comparator);return this.Cr(e,t,(e,t)=>{let i=this.Sr(e,t);r=r.insert(e,i),n=n.insert(e,sg(t))}).next(()=>({documents:r,Fr:n}))}Cr(e,t,r){if(t.isEmpty())return ex.resolve();let n=new tW(sP);t.forEach(e=>n=n.add(e));let i=IDBKeyRange.bound(sR(n.first()),sR(n.last())),s=n.getIterator(),a=s.getNext();return tq(e,e4).ee({index:e7,range:i},(e,t,n)=>{let i=ei.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);for(;a&&0>sP(a,i);)r(a,null),a=s.getNext();a&&a.isEqual(i)&&(r(a,t),a=s.hasNext()?s.getNext():null),a?n.j(sR(a)):n.done()}).next(()=>{for(;a;)r(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,t,r,n,i){let s=t.path,a=[s.popLast().toArray(),s.lastSegment(),iV(r.readTime),r.documentKey.path.isEmpty()?"":r.documentKey.path.lastSegment()],o=[s.popLast().toArray(),s.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return tq(e,e4).H(IDBKeyRange.bound(a,o,!0)).next(e=>{i?.incrementDocumentReadCount(e.length);let r=nc;for(let i of e){let e=this.Sr(ei.fromSegments(i.prefixPath.concat(i.collectionGroup,i.documentId)),i);
20e.isFoundDocument()&&(no(t,e)||n.has(e.key))&&(r=r.insert(e.key,e))}return r})}getAllFromCollectionGroup(e,t,r,n){let i=nc,s=sO(t,r),a=sO(t,eT.max());return tq(e,e4).ee({index:te,range:IDBKeyRange.bound(s,a,!0)},(e,t,r)=>{let s=this.Sr(ei.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(i=i.insert(s.key,s)).size===n&&r.done()}).next(()=>i)}newChangeBuffer(e){return new sD(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return tq(e,tr).get(tn).next(e=>(M(!!e,20021),e))}br(e,t){return tq(e,tr).put(tn,t)}Sr(e,t){if(t){let e=function(e,t){var r;let n,i;if(t.document)n=iC(e.yt,t.document,!!t.hasCommittedMutations);else if(t.noDocument){let e=ei.fromSegments(t.noDocument.path),r=iq(t.noDocument.readTime);n=rN.newNoDocument(e,r),t.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!t.unknownDocument)return P(56709);{let e=ei.fromSegments(t.unknownDocument.path),r=iq(t.unknownDocument.version);n=rN.newUnknownDocument(e,r)}}return t.readTime&&n.setReadTime((i=new ep((r=t.readTime)[0],r[1]),eg.fromTimestamp(i))),n}(this.serializer,t);if(!(e.isNoDocument()&&e.version.isEqual(eg.min())))return e}return rN.newInvalidDocument(e)}}class sD extends sx{constructor(e,t){super(),this.Mr=e,this.trackRemovals=t,this.Or=new nh(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(e){let t=[],r=0,n=new tW((e,t)=>Q(e.canonicalString(),t.canonicalString()));
20return this.changes.forEach((i,s)=>{let a=this.Or.get(i);if(t.push(this.Mr.removeEntry(e,i,a.readTime)),s.isValidDocument()){let o=iU(this.Mr.serializer,s);n=n.add(i.path.popLast());let l=sg(o);r+=l-a.size,t.push(this.Mr.addEntry(e,i,o))}else if(r-=a.size,this.trackRemovals){let r=iU(this.Mr.serializer,s.convertToNoDocument(eg.min()));t.push(this.Mr.addEntry(e,i,r))}}),n.forEach(r=>{t.push(this.Mr.indexManager.addToCollectionParentIndex(e,r))}),t.push(this.Mr.updateMetadata(e,r)),ex.waitFor(t)}getFromCache(e,t){return this.Mr.Dr(e,t).next(e=>(this.Or.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Mr.vr(e,t).next(({documents:e,Fr:t})=>(t.forEach((t,r)=>{this.Or.set(t,{size:r,readTime:e.get(t).readTime})}),e))}}function sR(e){let t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function sO(e,t){let r=t.documentKey.path.toArray();return[e,iV(t.readTime),r.slice(0,r.length-2),r.length>0?r[r.length-1]:""]}function sP(e,t){let r=e.path.toArray(),n=t.path.toArray(),i=0;for(let e=0;e<r.length-2&&e<n.length-2;++e)if(i=Q(r[e],n[e]))return i;return(i=Q(r.length,n.length))||(i=Q(r[r.length-2],n[n.length-2]))||Q(r[r.length-1],n[n.length-1])}class sL{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class sM{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(e,t){let r=null;return this.documentOverlayCache.getOverlay(e,t).next(n=>(r=n,this.remoteDocumentCache.getEntry(e,t))).next(e=>(null!==r&&nU(r.mutation,e,tY.empty(),ep.now()),e))}getDocuments(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.getLocalViewOfDocuments(e,t,nv()).next(()=>t))}getLocalViewOfDocuments(e,t,r=nv()){let n=ng();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let t=nf();return e.forEach((e,r)=>{t=t.insert(e,r.overlayedDocument)}),t}))}getOverlayedDocuments(e,t){let r=ng();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,nv()))}populateOverlays(e,t,r){let n=[];return r.forEach(e=>{t.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,r)=>{t.set(e,r)})})}computeViews(e,t,r,n){let i=nc,s=ng(),a=ng();return t.forEach((e,t)=>{let a=r.get(t.key);n.has(t.key)&&(void 0===a||a.mutation instanceof nq)?i=i.insert(t.key,t):void 0!==a?(s.set(t.key,a.mutation.getFieldMask()),nU(a.mutation,t,a.mutation.getFieldMask(),ep.now())):s.set(t.key,tY.empty())}),this.recalculateAndSaveOverlays(e,i).next(e=>(e.forEach((e,t)=>s.set(e,t)),t.forEach((e,t)=>a.set(e,new sL(t,s.get(e)??null))),a))}recalculateAndSaveOverlays(e,t){let r=ng(),n=new tK((e,t)=>e-t),i=nv();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,t).next(e=>{for(let i of e)i.keys().forEach(e=>{let s=t.get(e);if(null===s)return;let a=r.get(e)||tY.empty();a=i.applyToLocalView(s,a),r.set(e,a);let o=(n.get(i.batchId)||nv()).add(e);n=n.insert(i.batchId,o)})}).next(()=>{let s=[],a=n.getReverseIterator();for(;a.hasNext();){let n=a.getNext(),o=n.key,l=n.value,u=ng();l.forEach(e=>{if(!i.has(e)){let n=nF(t.get(e),r.get(e));null!==n&&u.set(e,n),i=i.add(e)}}),s.push(this.documentOverlayCache.saveOverlays(e,o,u))}return ex.waitFor(s)}).next(()=>r)}recalculateAndSaveOverlaysForDocumentKeys(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.recalculateAndSaveOverlays(e,t))}getDocumentsMatchingQuery(e,t,r,n){return ei.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):r7(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n)}getNextDocuments(e,t,r,n){return this.remoteDocumentCache.getAllFromCollectionGroup(e,t,r,n).next(i=>{let s=n-i.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,t,r.largestBatchId,n-i.size):ex.resolve(ng()),a=-1,o=i;return s.next(t=>ex.forEach(t,(t,r)=>(a<r.largestBatchId&&(a=r.largestBatchId),i.get(t)?ex.resolve():this.remoteDocumentCache.getEntry(e,t).next(e=>{o=o.insert(t,e)}))).next(()=>this.populateOverlays(e,t,i)).next(()=>this.computeViews(e,o,t,nv())).next(e=>({batchId:a,changes:np(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new ei(t)).next(e=>{let t=nf();
vendor: 4,143 bytes, line 20
20return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(e,t,r,n){let i=t.collectionGroup,s=nf();return this.indexManager.getCollectionParents(e,i).next(a=>ex.forEach(a,a=>{let o=new r5(a.child(i),null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(e,o,r,n).next(e=>{e.forEach((e,t)=>{s=s.insert(e,t)})})}).next(()=>s))}getDocumentsMatchingCollectionQuery(e,t,r,n){let i;return this.documentOverlayCache.getOverlaysForCollection(e,t.path,r.largestBatchId).next(s=>(i=s,this.remoteDocumentCache.getDocumentsMatchingQuery(e,t,r,i,n))).next(e=>{i.forEach((t,r)=>{let n=r.getKey();null===e.get(n)&&(e=e.insert(n,rN.newInvalidDocument(n)))});let r=nf();return e.forEach((e,n)=>{let s=i.get(e);void 0!==s&&nU(s.mutation,n,tY.empty(),ep.now()),no(t,n)&&(r=r.insert(e,n))}),r})}}class sF{constructor(e){this.serializer=e,this.Nr=new Map,this.Br=new Map}getBundleMetadata(e,t){return ex.resolve(this.Nr.get(t))}saveBundleMetadata(e,t){return this.Nr.set(t.id,{id:t.id,version:t.version,createTime:ig(t.createTime)}),ex.resolve()}getNamedQuery(e,t){return ex.resolve(this.Br.get(t))}saveNamedQuery(e,t){return this.Br.set(t.name,{name:t.name,query:iK(t.bundledQuery),readTime:ig(t.readTime)}),ex.resolve()}}class sU{constructor(){this.overlays=new tK(ei.comparator),this.Lr=new Map}getOverlay(e,t){return ex.resolve(this.overlays.get(t))}getOverlays(e,t){let r=ng();return ex.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(e,t,r){return r.forEach((r,n)=>{this.bt(e,t,n)}),ex.resolve()}removeOverlaysForBatchId(e,t,r){let n=this.Lr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Lr.delete(r)),ex.resolve()}getOverlaysForCollection(e,t,r){let n=ng(),i=t.length+1,s=new ei(t.child("")),a=this.overlays.getIteratorFrom(s);for(;a.hasNext();){let e=a.getNext().value,s=e.getKey();if(!t.isPrefixOf(s.path))break;s.path.length===i&&e.largestBatchId>r&&n.set(e.getKey(),e)}return ex.resolve(n)}getOverlaysForCollectionGroup(e,t,r,n){let i=new tK((e,t)=>e-t),s=this.overlays.getIterator();for(;s.hasNext();){let e=s.getNext().value;if(e.getKey().getCollectionGroup()===t&&e.largestBatchId>r){let t=i.get(e.largestBatchId);null===t&&(t=ng(),i=i.insert(e.largestBatchId,t)),t.set(e.getKey(),e)}}let a=ng(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=n)););return ex.resolve(a)}bt(e,t,r){let n=this.overlays.get(r.key);if(null!==n){let e=this.Lr.get(n.largestBatchId).delete(r.key);this.Lr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new nQ(t,r));let i=this.Lr.get(t);void 0===i&&(i=nv(),this.Lr.set(t,i)),this.Lr.set(t,i.add(r.key))}}class sV{constructor(){this.sessionToken=tZ.EMPTY_BYTE_STRING}getSessionToken(e){return ex.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,ex.resolve()}}class sB{constructor(){this.kr=new tW(sq.Kr),this.qr=new tW(sq.Ur)}isEmpty(){return this.kr.isEmpty()}addReference(e,t){let r=new sq(e,t);this.kr=this.kr.add(r),this.qr=this.qr.add(r)}$r(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Wr(new sq(e,t))}Qr(e,t){e.forEach(e=>this.removeReference(e,t))}Gr(e){let t=new ei(new et([])),r=new sq(t,e),n=new sq(t,e+1),i=[];return this.qr.forEachInRange([r,n],e=>{this.Wr(e),i.push(e.key)}),i}zr(){this.kr.forEach(e=>this.Wr(e))}Wr(e){this.kr=this.kr.delete(e),this.qr=this.qr.delete(e)}jr(e){let t=new ei(new et([])),r=new sq(t,e),n=new sq(t,e+1),i=nv();return this.qr.forEachInRange([r,n],e=>{i=i.add(e.key)}),i}containsKey(e){let t=new sq(e,0),r=this.kr.firstAfterOrEqual(t);return null!==r&&e.isEqual(r.key)}}class sq{constructor(e,t){this.key=e,this.Hr=t}static Kr(e,t){return ei.comparator(e.key,t.key)||Q(e.Hr,t.Hr)}static Ur(e,t){return Q(e.Hr,t.Hr)||ei.comparator(e.key,t.key)}}class sj{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Yn=1,this.Jr=new tW(sq.Kr)}checkEmpty(e){return ex.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){let i=this.Yn;
20this.Yn++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];let s=new nH(i,t,r,n);for(let t of(this.mutationQueue.push(s),n))this.Jr=this.Jr.add(new sq(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return ex.resolve(s)}lookupMutationBatch(e,t){return ex.resolve(this.Zr(t))}getNextMutationBatchAfterBatchId(e,t){let r=this.Xr(t+1),n=r<0?0:r;return ex.resolve(this.mutationQueue.length>n?this.mutationQueue[n]:null)}getHighestUnacknowledgedBatchId(){return ex.resolve(0===this.mutationQueue.length?-1:this.Yn-1)}getAllMutationBatches(e){return ex.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new sq(t,0),n=new sq(t,1/0),i=[];return this.Jr.forEachInRange([r,n],e=>{let t=this.Zr(e.Hr);i.push(t)}),ex.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new tW(Q);return t.forEach(e=>{let t=new sq(e,0),n=new sq(e,1/0);this.Jr.forEachInRange([t,n],e=>{r=r.add(e.Hr)})}),ex.resolve(this.Yr(r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;ei.isDocumentKey(i)||(i=i.child(""));let s=new sq(new ei(i),0),a=new tW(Q);return this.Jr.forEachWhile(e=>{let t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Hr)),!0)},s),ex.resolve(this.Yr(a))}Yr(e){let t=[];return e.forEach(e=>{let r=this.Zr(e);null!==r&&t.push(r)}),t}removeMutationBatch(e,t){M(0===this.ei(t.batchId,"removed"),55003),this.mutationQueue.shift();let r=this.Jr;return ex.forEach(t.mutations,n=>{let i=new sq(n.key,t.batchId);return r=r.delete(i),this.referenceDelegate.markPotentiallyOrphaned(e,n.key)}).next(()=>{this.Jr=r})}nr(e){}containsKey(e,t){let r=new sq(t,0),n=this.Jr.firstAfterOrEqual(r);return ex.resolve(t.isEqual(n&&n.key))}performConsistencyCheck(e){return this.mutationQueue.length,ex.resolve()}ei(e,t){return this.Xr(e)}Xr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Zr(e){let t=this.Xr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class sz{constructor(e){this.ti=e,this.docs=new tK(ei.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){let r=t.key,n=this.docs.get(r),i=n?n.size:0,s=this.ti(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:s}),this.size+=s-i,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){let t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){let r=this.docs.get(t);return ex.resolve(r?r.document.mutableCopy():rN.newInvalidDocument(t))}getEntries(e,t){let r=nc;return t.forEach(e=>{let t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():rN.newInvalidDocument(e))}),ex.resolve(r)}getDocumentsMatchingQuery(e,t,r,n){let i=nc,s=t.path,a=new ei(s.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(a);for(;o.hasNext();){let{key:e,value:{document:a}}=o.getNext();if(!s.isPrefixOf(e.path))break;e.path.length>s.length+1||0>=eS(eE(a),r)||(n.has(a.key)||no(t,a))&&(i=i.insert(a.key,a.mutableCopy()))}return ex.resolve(i)}getAllFromCollectionGroup(e,t,r,n){P(9500)}ni(e,t){return ex.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new s$(this)}getSize(e){return ex.resolve(this.size)}}class s$ extends sx{constructor(e){super(),this.Mr=e}applyChanges(e){let t=[];
vendor: 4,097 bytes, line 20
20return this.changes.forEach((r,n)=>{n.isValidDocument()?t.push(this.Mr.addEntry(e,n)):this.Mr.removeEntry(r)}),ex.waitFor(t)}getFromCache(e,t){return this.Mr.getEntry(e,t)}getAllFromCache(e,t){return this.Mr.getEntries(e,t)}}class sK{constructor(e){this.persistence=e,this.ri=new nh(e=>rZ(e),r0),this.lastRemoteSnapshotVersion=eg.min(),this.highestTargetId=0,this.ii=0,this.si=new sB,this.targetCount=0,this.oi=sw._r()}forEachTarget(e,t){return this.ri.forEach((e,r)=>t(r)),ex.resolve()}getLastRemoteSnapshotVersion(e){return ex.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return ex.resolve(this.ii)}allocateTargetId(e){return this.highestTargetId=this.oi.next(),ex.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.ii&&(this.ii=t),ex.resolve()}lr(e){this.ri.set(e.target,e);let t=e.targetId;t>this.highestTargetId&&(this.oi=new sw(t),this.highestTargetId=t),e.sequenceNumber>this.ii&&(this.ii=e.sequenceNumber)}addTargetData(e,t){return this.lr(t),this.targetCount+=1,ex.resolve()}updateTargetData(e,t){return this.lr(t),ex.resolve()}removeTargetData(e,t){return this.ri.delete(t.target),this.si.Gr(t.targetId),this.targetCount-=1,ex.resolve()}removeTargets(e,t,r){let n=0,i=[];return this.ri.forEach((s,a)=>{a.sequenceNumber<=t&&null===r.get(a.targetId)&&(this.ri.delete(s),i.push(this.removeMatchingKeysForTargetId(e,a.targetId)),n++)}),ex.waitFor(i).next(()=>n)}getTargetCount(e){return ex.resolve(this.targetCount)}getTargetData(e,t){let r=this.ri.get(t)||null;return ex.resolve(r)}addMatchingKeys(e,t,r){return this.si.$r(t,r),ex.resolve()}removeMatchingKeys(e,t,r){this.si.Qr(t,r);let n=this.persistence.referenceDelegate,i=[];return n&&t.forEach(t=>{i.push(n.markPotentiallyOrphaned(e,t))}),ex.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.si.Gr(t),ex.resolve()}getMatchingKeysForTargetId(e,t){let r=this.si.jr(t);return ex.resolve(r)}containsKey(e,t){return ex.resolve(this.si.containsKey(t))}}class sG{constructor(e,t){this._i={},this.overlays={},this.ai=new e$(0),this.ui=!1,this.ui=!0,this.ci=new sV,this.referenceDelegate=e(this),this.li=new sK(this),this.indexManager=new sa,this.remoteDocumentCache=new sz(e=>this.referenceDelegate.hi(e)),this.serializer=new iF(t),this.Pi=new sF(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.ui=!1,Promise.resolve()}get started(){return this.ui}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new sU,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this._i[e.toKey()];return r||(r=new sj(t,this.referenceDelegate),this._i[e.toKey()]=r),r}getGlobalsCache(){return this.ci}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Pi}runTransaction(e,t,r){N("MemoryPersistence","Starting transaction:",e);let n=new sH(this.ai.next());return this.referenceDelegate.Ti(),r(n).next(e=>this.referenceDelegate.Ii(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ei(e,t){return ex.or(Object.values(this._i).map(r=>()=>r.containsKey(e,t)))}}class sH extends eA{constructor(e){super(),this.currentSequenceNumber=e}}class sW{constructor(e){this.persistence=e,this.Ri=new sB,this.Ai=null}static Vi(e){return new sW(e)}get di(){if(this.Ai)return this.Ai;throw P(60996)}addReference(e,t,r){return this.Ri.addReference(r,t),this.di.delete(r.toString()),ex.resolve()}removeReference(e,t,r){return this.Ri.removeReference(r,t),this.di.add(r.toString()),ex.resolve()}markPotentiallyOrphaned(e,t){return this.di.add(t.toString()),ex.resolve()}removeTarget(e,t){this.Ri.Gr(t.targetId).forEach(e=>this.di.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.di.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ti(){this.Ai=new Set}Ii(e){let t=this.persistence.getRemoteDocumentCache().newChangeBuffer();return ex.forEach(this.di,r=>{let n=ei.fromPath(r);
20return this.mi(e,n).next(e=>{e||t.removeEntry(n,eg.min())})}).next(()=>(this.Ai=null,t.apply(e)))}updateLimboDocument(e,t){return this.mi(e,t).next(e=>{e?this.di.delete(t.toString()):this.di.add(t.toString())})}hi(e){return 0}mi(e,t){return ex.or([()=>ex.resolve(this.Ri.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ei(e,t)])}}class sQ{constructor(e,t){this.persistence=e,this.fi=new nh(e=>eW(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=new sC(this,t)}static Vi(e,t){return new sQ(e,t)}Ti(){}Ii(e){return ex.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}dr(e){let t=this.pr(e);return this.persistence.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}mr(e,t){return ex.forEach(this.fi,(r,n)=>this.wr(e,r,n).next(e=>e?ex.resolve():t(n)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,t){let r=0,n=this.persistence.getRemoteDocumentCache(),i=n.newChangeBuffer();return n.ni(e,n=>this.wr(e,n,t).next(e=>{e||(r++,i.removeEntry(n,eg.min()))})).next(()=>i.apply(e)).next(()=>r)}markPotentiallyOrphaned(e,t){return this.fi.set(t,e.currentSequenceNumber),ex.resolve()}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),ex.resolve()}removeReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),ex.resolve()}updateLimboDocument(e,t){return this.fi.set(t,e.currentSequenceNumber),ex.resolve()}hi(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function e(t){switch(rh(t)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:let r=t9(t);return r?16+e(r):16;case 5:return 2*t.stringValue.length;case 6:return t6(t.bytesValue).approximateByteSize();case 7:return t.referenceValue.length;case 9:return(t.arrayValue.values||[]).reduce((t,r)=>t+e(r),0);case 10:case 11:var n;let i;return n=t.mapValue,i=0,tz(n.fields,(t,r)=>{i+=t.length+e(r)}),i;default:throw P(13486,{value:t})}}(e.data.value)),t}wr(e,t,r){return ex.or([()=>this.persistence.Ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{let e=this.fi.get(t);return ex.resolve(void 0!==e&&e>r)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class sJ{constructor(e){this.serializer=e}k(e,t,r,n){let i=new eD("createOrUpgrade",t);r<1&&n>=1&&(e.createObjectStore(eY),e.createObjectStore(eZ,{keyPath:"userId"}),e.createObjectStore(e0,{keyPath:e1,autoIncrement:!0}).createIndex(e2,e6,{unique:!0}),e.createObjectStore(e5),sY(e),e.createObjectStore(eJ));let s=ex.resolve();return r<3&&n>=3&&(0!==r&&(e.deleteObjectStore(to),e.deleteObjectStore(ti),e.deleteObjectStore(td),sY(e)),s=s.next(()=>{let e,t;return e=i.store(td),t={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:eg.min().toTimestamp(),targetCount:0},e.put(tc,t)})),r<4&&n>=4&&(0!==r&&(s=s.next(()=>i.store(e0).H().next(t=>{e.deleteObjectStore(e0),e.createObjectStore(e0,{keyPath:e1,autoIncrement:!0}).createIndex(e2,e6,{unique:!0});let r=i.store(e0),n=t.map(e=>r.put(e));return ex.waitFor(n)}))),s=s.next(()=>{e.createObjectStore(tg,{keyPath:"clientId"})})),r<5&&n>=5&&(s=s.next(()=>this.gi(i))),r<6&&n>=6&&(s=s.next(()=>(e.createObjectStore(tr),this.pi(i)))),r<7&&n>=7&&(s=s.next(()=>this.yi(i))),r<8&&n>=8&&(s=s.next(()=>this.wi(e,i))),r<9&&n>=9&&(s=s.next(()=>{e.objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&n>=10&&(s=s.next(()=>this.bi(i))),r<11&&n>=11&&(s=s.next(()=>{e.createObjectStore(tm,{keyPath:"bundleId"}),e.createObjectStore(ty,{keyPath:"name"})})),r<12&&n>=12&&(s=s.next(()=>{let t;(t=e.createObjectStore(tk,{keyPath:tx})).createIndex(tN,tD,{unique:!1}),t.createIndex(tR,tO,{unique:!1})})),r<13&&n>=13&&(s=s.next(()=>{let t;(t=e.createObjectStore(e4,{keyPath:e8})).createIndex(e7,e9),t.createIndex(te,tt)}).next(()=>this.Si(e,i)).next(()=>e.deleteObjectStore(eJ))),r<14&&n>=14&&(s=s.next(()=>this.Di(e,i))),r<15&&n>=15&&(s=s.next(()=>{e.createObjectStore(tv,{keyPath:"indexId",autoIncrement:!0}).createIndex(tw,"collectionGroup",{unique:!1}),e.createObjectStore(t_,{keyPath:tb}).createIndex(tI,tE,{unique:!1}),e.createObjectStore(tT,{keyPath:tS}).createIndex(tC,tA,{unique:!1})}
20)),r<16&&n>=16&&(s=s.next(()=>{t.objectStore(t_).clear()}).next(()=>{t.objectStore(tT).clear()})),r<17&&n>=17&&(s=s.next(()=>{e.createObjectStore(tP,{keyPath:"name"})})),r<18&&n>=18&&(0,_.isSafariOrWebkit)()&&(s=s.next(()=>{t.objectStore(t_).clear()}).next(()=>{t.objectStore(tT).clear()})),s}pi(e){let t=0;return e.store(eJ).ee((e,r)=>{t+=sg(r)}).next(()=>{let r={byteSize:t};return e.store(tr).put(tn,r)})}gi(e){let t=e.store(eZ),r=e.store(e0);return t.H().next(t=>ex.forEach(t,t=>{let n=IDBKeyRange.bound([t.userId,-1],[t.userId,t.lastAcknowledgedBatchId]);return r.H(e2,n).next(r=>ex.forEach(r,r=>{M(r.userId===t.userId,18650,"Cannot process batch from unexpected user",{batchId:r.batchId});let n=ij(this.serializer,r);return sp(e,t.userId,n).next(()=>{})}))}))}yi(e){let t=e.store(to),r=e.store(eJ);return e.store(td).get(tc).next(e=>{let n=[];return r.ee((r,i)=>{let s=new et(r),a=[0,eW(s)];n.push(t.get(a).next(r=>r?ex.resolve():t.put({targetId:0,path:eW(s),sequenceNumber:e.highestListenSequenceNumber})))}).next(()=>ex.waitFor(n))})}wi(e,t){e.createObjectStore(tf,{keyPath:tp});let r=t.store(tf),n=new so,i=e=>{if(n.add(e)){let t=e.lastSegment(),n=e.popLast();return r.put({collectionId:t,parent:eW(n)})}};return t.store(eJ).ee({Y:!0},(e,t)=>i(new et(e).popLast())).next(()=>t.store(e5).ee({Y:!0},([e,t,r],n)=>i(eQ(t).popLast())))}bi(e){let t=e.store(ti);return t.ee((e,r)=>{let n=iz(r),i=i$(this.serializer,n);return t.put(i)})}Si(e,t){let r=t.store(eJ),n=[];return r.ee((e,r)=>{let i=t.store(e4),s=(r.document?new ei(et.fromString(r.document.name).popFirst(5)):r.noDocument?ei.fromSegments(r.noDocument.path):r.unknownDocument?ei.fromSegments(r.unknownDocument.path):P(36783)).path.toArray(),a={prefixPath:s.slice(0,s.length-2),collectionGroup:s[s.length-2],documentId:s[s.length-1],readTime:r.readTime||[0,0],unknownDocument:r.unknownDocument,noDocument:r.noDocument,document:r.document,hasCommittedMutations:!!r.hasCommittedMutations};n.push(i.put(a))}).next(()=>ex.waitFor(n))}Di(e,t){let r=t.store(e0),n=new sN(this.serializer),i=new sG(sW.Vi,this.serializer.yt);return r.H().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??nv();ij(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),ex.forEach(r,(e,r)=>{let s=new C(r),a=iJ.wt(this.serializer,s),o=i.getIndexManager(s);return new sM(n,sm.wt(s,this.serializer,o,i.referenceDelegate),a,o).recalculateAndSaveOverlaysForDocumentKeys(new tB(t,e$.ce),e).next()})})}}function sY(e){e.createObjectStore(to,{keyPath:tl}).createIndex(tu,th,{unique:!0}),e.createObjectStore(ti,{keyPath:"targetId"}).createIndex(ts,ta,{unique:!0}),e.createObjectStore(td)}let sX="IndexedDbPersistence",sZ="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 s0{constructor(e,t,r,n,i,s,a,o,l,u,h=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ci=i,this.window=s,this.document=a,this.Fi=l,this.Mi=u,this.xi=h,this.ai=null,this.ui=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Oi=null,this.inForeground=!1,this.Ni=null,this.Bi=null,this.Li=-1/0,this.ki=e=>Promise.resolve(),!s0.v())throw new U(F.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new sA(this,n),this.Ki=t+"main",this.serializer=new iF(o),this.qi=new eR(this.Ki,this.xi,new sJ(this.serializer)),this.ci=new iY,this.li=new s_(this.referenceDelegate,this.serializer),this.remoteDocumentCache=new sN(this.serializer),this.Pi=new iQ,this.window&&this.window.localStorage?this.Ui=this.window.localStorage:(this.Ui=null,!1===u&&D(sX,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.$i().then(()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new U(F.FAILED_PRECONDITION,sZ);return this.Wi(),this.Qi(),this.Gi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.li.getHighestSequenceNumber(e))}).then(e=>{this.ai=new e$(e,this.Fi)}).then(()=>{this.ui=!0}).catch(e=>(this.qi&&this.qi.close(),Promise.reject(e)))}zi(e){return this.ki=async t=>{if(this.started)return e(t)},e(this.isPrimary)}setDatabaseDeletedListener(e){this.qi.q(async t=>{null===t.newVersion&&await e()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ci.enqueueAndForget(async()=>{this.started&&await this.$i()}))}$i(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",e=>tq(e,tg).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.ji(e).next(e=>{e||(this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)))})}).next(()=>this.Hi(e)).next(t=>this.isPrimary&&!t?this.Ji(e).next(()=>!1):!!t&&this.Zi(e).next(()=>!0))).catch(e=>{if(eM(e))return N(sX,"Failed to extend owner lease: ",e),this.isPrimary;if(!this.allowTabSynchronization)throw e;return N(sX,"Releasing owner lease after error during lease refresh",e),!1}).then(e=>{this.isPrimary!==e&&this.Ci.enqueueRetryable(()=>this.ki(e)),this.isPrimary=e})}ji(e){return tq(e,eY).get(eX).next(e=>ex.resolve(this.Xi(e)))}Yi(e){return tq(e,tg).delete(this.clientId)}async es(){if(this.isPrimary&&!this.ts(this.Li,18e5)){this.Li=Date.now();let e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let t=tq(e,tg);return t.H().next(e=>{let r=this.ns(e,18e5),n=e.filter(e=>-1===r.indexOf(e));return ex.forEach(n,e=>t.delete(e.clientId)).next(()=>n)})}).catch(()=>[]);if(this.Ui)for(let t of e)this.Ui.removeItem(this.rs(t.clientId))}}Gi(){this.Bi=this.Ci.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.$i().then(()=>this.es()).then(()=>this.Gi()))}Xi(e){return!!e&&e.ownerId===this.clientId}Hi(e){return this.Mi?ex.resolve(!0):tq(e,eY).get(eX).next(t=>
20{if(null!==t&&this.ts(t.leaseTimestampMs,5e3)&&!this.ss(t.ownerId)){if(this.Xi(t)&&this.networkEnabled)return!0;if(!this.Xi(t)){if(!t.allowTabSynchronization)throw new U(F.FAILED_PRECONDITION,sZ);return!1}}return!(!this.networkEnabled||!this.inForeground)||tq(e,tg).H().next(e=>void 0===this.ns(e,5e3).find(e=>{if(this.clientId!==e.clientId){let t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&N(sX,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.ui=!1,this._s(),this.Bi&&(this.Bi.cancel(),this.Bi=null),this.us(),this.cs(),await this.qi.runTransaction("shutdown","readwrite",[eY,tg],e=>{let t=new tB(e,e$.ce);return this.Ji(t).next(()=>this.Yi(t))}),this.qi.close(),this.ls()}ns(e,t){return e.filter(e=>this.ts(e.updateTimeMs,t)&&!this.ss(e.clientId))}hs(){return this.runTransaction("getActiveClients","readonly",e=>tq(e,tg).H().next(e=>this.ns(e,18e5).map(e=>e.clientId)))}get started(){return this.ui}getGlobalsCache(){return this.ci}getMutationQueue(e,t){return sm.wt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new sh(e,this.serializer.yt.databaseId)}getDocumentOverlayCache(e){return iJ.wt(this.serializer,e)}getBundleCache(){return this.Pi}runTransaction(e,t,r){var n;let i;N(sX,"Starting transaction:",e);let s=18===(n=this.xi)||17===n?tV:16===n||15===n?tU:14===n||13===n?tF:12===n?tM:11===n?tL:void P(60245);return this.qi.runTransaction(e,"readonly"===t?"readonly":"readwrite",s,n=>(i=new tB(n,this.ai?this.ai.next():e$.ce),"readwrite-primary"===t?this.ji(i).next(e=>!!e||this.Hi(i)).next(t=>{if(!t)throw D(`Failed to obtain primary lease for action '${e}'.`),this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)),new U(F.FAILED_PRECONDITION,eC);return r(i)}).next(e=>this.Zi(i).next(()=>e)):this.Ps(i).next(()=>r(i)))).then(e=>(i.raiseOnCommittedEvent(),e))}Ps(e){return tq(e,eY).get(eX).next(e=>{if(null!==e&&this.ts(e.leaseTimestampMs,5e3)&&!this.ss(e.ownerId)&&!this.Xi(e)&&!(this.Mi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new U(F.FAILED_PRECONDITION,sZ)})}Zi(e){let t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return tq(e,eY).put(eX,t)}static v(){return eR.v()}Ji(e){let t=tq(e,eY);return t.get(eX).next(e=>
20this.Xi(e)?(N(sX,"Releasing primary lease."),t.delete(eX)):ex.resolve())}ts(e,t){let r=Date.now();return!(e<r-t)&&(!(e>r)||(D(`Detected an update time that is in the future: ${e} > ${r}`),!1))}Wi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ni=()=>{this.Ci.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.$i()))},this.document.addEventListener("visibilitychange",this.Ni),this.inForeground="visible"===this.document.visibilityState)}us(){this.Ni&&(this.document.removeEventListener("visibilitychange",this.Ni),this.Ni=null)}Qi(){"function"==typeof this.window?.addEventListener&&(this.Oi=()=>{this._s();let e=/(?:Version|Mobile)\/1[456]/;(0,_.isSafari)()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ci.enterRestrictedMode(!0),this.Ci.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Oi))}cs(){this.Oi&&(this.window.removeEventListener("pagehide",this.Oi),this.Oi=null)}ss(e){try{let t=null!==this.Ui?.getItem(this.rs(e));return N(sX,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return D(sX,"Failed to get zombied client id.",e),!1}}_s(){if(this.Ui)try{this.Ui.setItem(this.rs(this.clientId),String(Date.now()))}catch(e){D("Failed to set zombie client id.",e)}}ls(){if(this.Ui)try{this.Ui.removeItem(this.rs(this.clientId))}catch(e){}}rs(e){return`firestore_zombie_${this.persistenceKey}_${e}`}}function s1(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class s2{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Ts=r,this.Is=n}static Es(e,t){let r=nv(),n=nv();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new s2(e,t.fromCache,r,n)}}class s6{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class s3{constructor(){this.Rs=!1,this.As=!1,this.Vs=100,this.ds=(0,_.isSafari)()?8:eO((0,_.getUA)())>0?6:4}initialize(e,t){this.fs=e,this.indexManager=t,this.Rs=!0}getDocumentsMatchingQuery(e,t,r,n){let i={result:null};return this.gs(e,t).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ps(e,t,n,r).next(e=>{i.result=e})}).next(()=>{if(i.result)return;let r=new s6;return this.ys(e,t,r).next(n=>{if(i.result=n,this.As)return this.ws(e,t,r,n.size)})}).next(()=>i.result)}ws(e,t,r,n){return r.documentReadCount<this.Vs?(x()<=E.LogLevel.DEBUG&&N("QueryEngine","SDK will not create cache indexes for query:",na(t),"since it only creates cache indexes for collection contains","more than or equal to",this.Vs,"documents"),ex.resolve()):(x()<=E.LogLevel.DEBUG&&N("QueryEngine","Query:",na(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ds*n?(x()<=E.LogLevel.DEBUG&&N("QueryEngine","The SDK decides to create cache indexes for query:",na(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,ne(t))):ex.resolve())}gs(e,t){if(r8(t))return ex.resolve(null);let r=ne(t);return this.indexManager.getIndexType(e,r).next(n=>0===n?null:(null!==t.limit&&1===n&&(r=ne(t=nn(t,null,"F"))),this.indexManager.getDocumentsMatchingTarget(e,r).next(n=>{let i=nv(...n);return this.fs.getDocuments(e,i).next(n=>this.indexManager.getMinOffset(e,r).next(r=>{let s=this.bs(t,n);return this.Ss(t,s,i,r.readTime)?this.gs(e,nn(t,null,"F")):this.Ds(e,s,t,r)}))})))}ps(e,t,r,n){return r8(t)||n.isEqual(eg.min())?ex.resolve(null):this.fs.getDocuments(e,r).next(i=>{let s=this.bs(t,i);return this.Ss(t,s,r,n)?ex.resolve(null):(x()<=E.LogLevel.DEBUG&&N("QueryEngine","Re-using previous result from %s to execute query: %s",n.toString(),na(t)),this.Ds(e,s,t,eI(n,-1)).next(e=>e))})}bs(e,t){let r=new tW(nu(e));return t.forEach((t,n)=>{no(e,n)&&(r=r.add(n))}),r}Ss(e,t,r,n){if(null===e.limit)return!1;if(r.size!==t.size)return!0;let i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||i.version.compareTo(n)>0)}ys(e,t,r){return x()<=E.LogLevel.DEBUG&&N("QueryEngine","Using full collection scan to execute query:",na(t)),this.fs.getDocumentsMatchingQuery(e,t,eT.min(),r)}Ds(e,t,r,n){return this.fs.getDocumentsMatchingQuery(e,r,n).next(e=>(t.forEach(t=>{e=e.insert(t.key,t)}),e))}}let s5="LocalStore";class s4{constructor(e,t,r,n){this.persistence=e,this.Cs=t,this.serializer
20=n,this.vs=new tK(Q),this.Fs=new nh(e=>rZ(e),r0),this.Ms=new Map,this.xs=e.getRemoteDocumentCache(),this.li=e.getTargetCache(),this.Pi=e.getBundleCache(),this.Os(r)}Os(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new sM(this.xs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.xs.setIndexManager(this.indexManager),this.Cs.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",t=>e.collect(t,this.vs))}}async function s8(e,t){return await e.persistence.runTransaction("Handle user change","readonly",r=>{let n;return e.mutationQueue.getAllMutationBatches(r).next(i=>(n=i,e.Os(t),e.mutationQueue.getAllMutationBatches(r))).next(t=>{let i=[],s=[],a=nv();for(let e of n)for(let t of(i.push(e.batchId),e.mutations))a=a.add(t.key);for(let e of t)for(let t of(s.push(e.batchId),e.mutations))a=a.add(t.key);return e.localDocuments.getDocuments(r,a).next(e=>({Ns:e,removedBatchIds:i,addedBatchIds:s}))})})}function s7(e){return e.persistence.runTransaction("Get last remote snapshot version","readonly",t=>e.li.getLastRemoteSnapshotVersion(t))}function s9(e,t,r){let n=nv(),i=nv();return r.forEach(e=>n=n.add(e)),t.getEntries(e,n).next(e=>{let n=nc;return r.forEach((r,s)=>{let a=e.get(r);s.isFoundDocument()!==a.isFoundDocument()&&(i=i.add(r)),s.isNoDocument()&&s.version.isEqual(eg.min())?(t.removeEntry(r,s.readTime),n=n.insert(r,s)):!a.isValidDocument()||s.version.compareTo(a.version)>0||0===s.version.compareTo(a.version)&&a.hasPendingWrites?(t.addEntry(s),n=n.insert(r,s)):N(s5,"Ignoring outdated watch update for ",r,". Current version:",a.version," Watch version:",s.version)}),{Bs:n,Ls:i}})}function ae(e,t){return e.persistence.runTransaction("Allocate target","readwrite",r=>{let n;return e.li.getTargetData(r,t).next(i=>i?(n=i,ex.resolve(n)):e.li.allocateTargetId(r).next(i=>(n=new iM(t,i,"TargetPurposeListen",r.currentSequenceNumber),e.li.addTargetData(r,n).next(()=>n))))}).then(r=>{let n=e.vs.get(r.targetId);return(null===n||r.snapshotVersion.compareTo(n.snapshotVersion)>0)&&(e.vs=e.vs.insert(r.targetId,r),e.Fs.set(t,r.targetId)),r})}async function at(e,t,r){let n=e.vs.get(t);try{r||await e.persistence.runTransaction("Release target",r?"readwrite":"readwrite-primary",t=>e.persistence.referenceDelegate.removeTarget(t,n))}catch(e){if(!eM(e))throw e;N(s5,`Failed to update sequence numbers for target ${t}: ${e}`)}e.vs=e.vs.remove(t),e.Fs.delete(n.target)}function ar(e,t,r){let n=eg.min(),i=nv();return e.persistence.runTransaction("Execute query","readwrite",s=>{var a;let o;return(a=ne(t),void 0!==(o=e.Fs.get(a))?ex.resolve(e.vs.get(o)):e.li.getTargetData(s,a)).next(t=>{if(t)return n=t.lastLimboFreeSnapshotVersion,e.li.getMatchingKeysForTargetId(s,t.targetId).next(e=>{i=e})}).next(()=>e.Cs.getDocumentsMatchingQuery(s,t,r?n:eg.min(),r?i:nv())).next(r=>(as(e,nl(t),r),{documents:r,ks:i}))})}function an(e,t){let r=e.li,n=e.vs.get(t);return n?Promise.resolve(n.target):e.persistence.runTransaction("Get target data","readonly",e=>r.At(e,t).next(e=>e?e.target:null))}function ai(e,t){let r=e.Ms.get(t)||eg.min();return e.persistence.runTransaction("Get new document changes","readonly",n=>e.xs.getAllFromCollectionGroup(n,t,eI(r,-1),Number.MAX_SAFE_INTEGER)).then(r=>(as(e,t,r),r))}function as(e,t,r){let n=e.Ms.get(t)||eg.min();r.forEach((e,t)=>{t.readTime.compareTo(n)>0&&(n=t.readTime)}),e.Ms.set(t,n)}async function aa(e,t,r,n){let i=nv(),s=nc;for(let e of r){let r=t.Ks(e.metadata.name);e.document&&(i=i.add(r));let n=t.qs(e);n.setReadTime(t.Us(e.metadata.readTime)),s=s.insert(r,n)}let a=e.xs.newChangeBuffer({trackRemovals:!0}),o=await ae(e,ne(r4(et.fromString(`__bundle__/docs/${n}`))));return e.persistence.runTransaction("Apply bundle documents","readwrite",t=>s9(t,a,s).next(e=>(a.apply(t),e)).next(r=>e.li.removeMatchingKeysForTargetId(t,o.targetId).next(()=>e.li.addMatchingKeys(t,i,o.targetId)).next(()=>e.localDocuments.getLocalViewOfDocuments(t,r.Bs,r.Ls)).next(()=>r.Bs)))}async function ao(e,t,r=nv()){let n=await ae(e,ne(iK(t.bundledQuery)));return e.persistence.runTransaction("Save named query","readwrite",i=>{let s=ig(t.readTime);if(n.snapshotVersion.compareTo(s)>=0)return e.Pi.saveNamedQuery(i,t);let a=n.withResumeToken(tZ.EMPTY_BYTE_STRING,s);return e.vs=e.vs.insert(a.targetId,a),e.li.updateTargetData(i,a).next(()=>e.li.removeMatchingKeysForTargetId(i,n.targetId)).next(()=>e.li.addMatchingKeys(i,r,n.targetId)).next(()=>e.Pi.saveNamedQuery(i,t))})}let al="firestore_clients";function au(e,t){return`${al}_${e}_${t}`}let ah="firestore_mutations";function ac(e,t,r){let n=`${ah}_${e}_${r}`;return t.isAuthenticated()&&(n+=`_${t.uid}`),n}let ad="firestore_targets";function af(e,t){return`${ad}_${e}_${t}`}
20let ap="SharedClientState";class ag{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static $s(e,t,r){let n=JSON.parse(r),i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new U(n.error.code,n.error.message)),s?new ag(e,t,n.state,i):(D(ap,`Failed to parse mutation state for ID '${t}': ${r}`),null)}Ws(){let e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class am{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static $s(e,t){let r=JSON.parse(t),n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new U(r.error.code,r.error.message)),i?new am(e,r.state,n):(D(ap,`Failed to parse target state for ID '${e}': ${t}`),null)}Ws(){let e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class ay{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static $s(e,t){let r=JSON.parse(t),n="object"==typeof r&&r.activeTargetIds instanceof Array,i=nw;for(let e=0;n&&e<r.activeTargetIds.length;++e)n=eH(r.activeTargetIds[e]),i=i.add(r.activeTargetIds[e]);return n?new ay(e,i):(D(ap,`Failed to parse client data for instance '${e}': ${t}`),null)}}class av{constructor(e,t){this.clientId=e,this.onlineState=t}static $s(e){let t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new av(t.clientId,t.onlineState):(D(ap,`Failed to parse online state: ${e}`),null)}}class aw{constructor(){this.activeTargetIds=nw}Qs(e){this.activeTargetIds=this.activeTargetIds.add(e)}Gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Ws(){return JSON.stringify({activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()})}}class a_{constructor(e,t,r,n,i){var s,a,o;this.window=e,this.Ci=t,this.persistenceKey=r,this.zs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.js=this.Hs.bind(this),this.Js=new tK(Q),this.started=!1,this.Zs=[];const l=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Xs=au(this.persistenceKey,this.zs),this.Ys=(s=this.persistenceKey,`firestore_sequence_number_${s}`),this.Js=this.Js.insert(this.zs,new aw),this.eo=RegExp(`^${al}_${l}_([^_]*)$`),this.no=RegExp(`^${ah}_${l}_(\\d+)(?:_(.*))?$`),this.ro=RegExp(`^${ad}_${l}_(\\d+)$`),this.io=(a=this.persistenceKey,`firestore_online_state_${a}`),this.so=(o=this.persistenceKey,`firestore_bundle_loaded_v2_${o}`),this.window.addEventListener("storage",this.js)}static v(e){return!(!e||!e.localStorage)}async start(){for(let e of(await this.syncEngine.hs())){if(e===this.zs)continue;let t=this.getItem(au(this.persistenceKey,e));if(t){let r=ay.$s(e,t);r&&(this.Js=this.Js.insert(r.clientId,r))}}this.oo();let e=this.storage.getItem(this.io);if(e){let t=this._o(e);t&&this.ao(t)}for(let e of this.Zs)this.Hs(e);this.Zs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Ys,JSON.stringify(e))}getAllActiveQueryTargets(){return this.uo(this.Js)}isActiveQueryTarget(e){let t=!1;
20return this.Js.forEach((r,n)=>{n.activeTargetIds.has(e)&&(t=!0)}),t}addPendingMutation(e){this.co(e,"pending")}updateMutationState(e,t,r){this.co(e,t,r),this.lo(e)}addLocalQueryTarget(e,t=!0){let r="not-current";if(this.isActiveQueryTarget(e)){let t=this.storage.getItem(af(this.persistenceKey,e));if(t){let n=am.$s(e,t);n&&(r=n.state)}}return t&&this.ho.Qs(e),this.oo(),r}removeLocalQueryTarget(e){this.ho.Gs(e),this.oo()}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(af(this.persistenceKey,e))}updateQueryState(e,t,r){this.Po(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.lo(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.To(e)}notifyBundleLoaded(e){this.Io(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.js),this.removeItem(this.Xs),this.started=!1)}getItem(e){let t=this.storage.getItem(e);return N(ap,"READ",e,t),t}setItem(e,t){N(ap,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){N(ap,"REMOVE",e),this.storage.removeItem(e)}Hs(e){if(e.storageArea===this.storage){if(N(ap,"EVENT",e.key,e.newValue),e.key===this.Xs)return void D("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.Ci.enqueueRetryable(async()=>{if(this.started){if(null!==e.key){if(this.eo.test(e.key)){if(null==e.newValue){let t=this.Eo(e.key);return this.Ro(t,null)}{let t=this.Ao(e.key,e.newValue);if(t)return this.Ro(t.clientId,t)}}else if(this.no.test(e.key)){if(null!==e.newValue){let t=this.Vo(e.key,e.newValue);if(t)return this.mo(t)}}else if(this.ro.test(e.key)){if(null!==e.newValue){let t=this.fo(e.key,e.newValue);if(t)return this.po(t)}}else if(e.key===this.io){if(null!==e.newValue){let t=this._o(e.newValue);if(t)return this.ao(t)}}else if(e.key===this.Ys){let t=function(e){let t=e$.ce;if(null!=e)try{let r=JSON.parse(e);M("number"==typeof r,30636,{yo:e}),t=r}catch(e){D(ap,"Failed to read sequence number from WebStorage",e)}return t}(e.newValue);t!==e$.ce&&this.sequenceNumberHandler(t)}else if(e.key===this.so){let t=this.wo(e.newValue);await Promise.all(t.map(e=>this.syncEngine.bo(e)))}}}else this.Zs.push(e)})}}get ho(){return this.Js.get(this.zs)}oo(){this.setItem(this.Xs,this.ho.Ws())}co(e,t,r){let n=new ag(this.currentUser,e,t,r),i=ac(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Ws())}lo(e){let t=ac(this.persistenceKey,this.currentUser,e);this.removeItem(t)}To(e){let t={clientId:this.zs,onlineState:e};this.storage.setItem(this.io,JSON.stringify(t))}Po(e,t,r){let n=af(this.persistenceKey,e),i=new am(e,t,r);this.setItem(n,i.Ws())}Io(e){let t=JSON.stringify(Array.from(e));this.setItem(this.so,t)}Eo(e){let t=this.eo.exec(e);return t?t[1]:null}Ao(e,t){let r=this.Eo(e);return ay.$s(r,t)}Vo(e,t){let r=this.no.exec(e),n=Number(r[1]),i=void 0!==r[2]?r[2]:null;return ag.$s(new C(i),n,t)}fo(e,t){let r=Number(this.ro.exec(e)[1]);return am.$s(r,t)}_o(e){return av.$s(e)}wo(e){return JSON.parse(e)}async mo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.So(e.batchId,e.state,e.error);N(ap,`Ignoring mutation for non-active user ${e.user.uid}`)}po(e){return this.syncEngine.Do(e.targetId,e.state,e.error)}Ro(e,t){let r=t?this.Js.insert(e,t):this.Js.remove(e),n=this.uo(this.Js),i=this.uo(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Co(s,a).then(()=>{this.Js=r})}ao(e){this.Js.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}uo(e){let t=nw;return e.forEach((e,r)=>{t=t.unionWith(r.activeTargetIds)}),t}}class ab{constructor(){this.vo=new aw,this.Fo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.vo.Qs(e),this.Fo[e]||"not-current"}updateQueryState(e,t,r){this.Fo[e]=t}removeLocalQueryTarget(e){this.vo.Gs(e)}isLocalQueryTarget(e){return this.vo.activeTargetIds.has(e)}clearQueryState(e){delete this.Fo[e]}getAllActiveQueryTargets(){return this.vo.activeTargetIds}isActiveQueryTarget(e){return this.vo.activeTargetIds.has(e)}start(){return this.vo=new aw,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class aI{Mo(e){}shutdown(){}}let aE="ConnectivityMonitor";class aT{constructor(){this.xo=()=>this.Oo(),this.No=()=>this.Bo(),this.Lo=[],this.ko()}Mo(e){this.Lo.push(e)}shutdown(){window.removeEventListener("online",this.xo),window.removeEventListener("offline",this.No)}
20ko(){window.addEventListener("online",this.xo),window.addEventListener("offline",this.No)}Oo(){for(let e of(N(aE,"Network connectivity changed: AVAILABLE"),this.Lo))e(0)}Bo(){for(let e of(N(aE,"Network connectivity changed: UNAVAILABLE"),this.Lo))e(1)}static v(){return"u">typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let aS=null;function aC(){return null===aS?aS=0x10000000+Math.round(0x80000000*Math.random()):aS++,"0x"+aS.toString(16)}let aA="RestConnection",ak={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class ax{get Ko(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.qo=t+"://"+e.host,this.Uo=`projects/${r}/databases/${n}`,this.$o=this.databaseId.database===rr?`project_id=${r}`:`project_id=${r}&database_id=${n}`}Wo(e,t,r,n,i){let s=aC(),a=this.Qo(e,t.toUriEncodedString());N(aA,`Sending RPC '${e}' ${s}:`,a,r);let o={"google-cloud-resource-prefix":this.Uo,"x-goog-request-params":this.$o};this.Go(o,n,i);let{host:l}=new URL(a),u=(0,_.isCloudWorkstation)(l);return this.zo(e,a,o,r,u).then(t=>(N(aA,`Received RPC '${e}' ${s}: `,t),t),t=>{throw R(aA,`RPC '${e}' ${s} failed with error: `,t,"url: ",a,"request:",r),t})}jo(e,t,r,n,i,s){return this.Wo(e,t,r,n,i)}Go(e,t,r){e["X-Goog-Api-Client"]="gl-js/ fire/"+A,e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),t&&t.headers.forEach((t,r)=>e[r]=t),r&&r.headers.forEach((t,r)=>e[r]=t)}Qo(e,t){let r=ak[e],n=`${this.qo}/v1/${t}:${r}`;return this.databaseInfo.apiKey&&(n=`${n}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),n}terminate(){}}class aN{constructor(e){this.Ho=e.Ho,this.Jo=e.Jo}Zo(e){this.Xo=e}Yo(e){this.e_=e}t_(e){this.n_=e}onMessage(e){this.r_=e}close(){this.Jo()}send(e){this.Ho(e)}i_(){this.Xo()}s_(){this.e_()}o_(e){this.n_(e)}__(e){this.r_(e)}}let aD="WebChannelConnection",aR=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};class aO extends ax{constructor(e){super(e),this.a_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}static u_(){aO.c_||(aR(u(),l.STAT_EVENT,e=>{e.stat===o.PROXY?N(aD,"STAT_EVENT: detected buffering proxy"):e.stat===o.NOPROXY&&N(aD,"STAT_EVENT: detected no buffering proxy")}),aO.c_=!0)}zo(e,t,r,i,o){let l=aC();return new Promise((o,u)=>{let h=new n;h.setWithCredentials(!0),h.listenOnce(s.COMPLETE,()=>{try{switch(h.getLastErrorCode()){case a.NO_ERROR:let t=h.getResponseJson();N(aD,`XHR for RPC '${e}' ${l} received:`,JSON.stringify(t)),o(t);break;case a.TIMEOUT:N(aD,`RPC '${e}' ${l} timed out`),u(new U(F.DEADLINE_EXCEEDED,"Request time out"));break;case a.HTTP_ERROR:let r=h.getStatus();if(N(aD,`RPC '${e}' ${l} failed with status:`,r,"response text:",h.getResponseText()),r>0){let e=h.getResponseJson();Array.isArray(e)&&(e=e[0]);let t=e?.error;if(t&&t.status&&t.message){let e,r=(e=t.status.toLowerCase().replace(/_/g,"-"),Object.values(F).indexOf(e)>=0?e:F.UNKNOWN);u(new U(r,t.message))}else u(new U(F.UNKNOWN,"Server responded with status "+h.getStatus()))}else u(new U(F.UNAVAILABLE,"Connection failed."));break;default:P(9055,{l_:e,streamId:l,h_:h.getLastErrorCode(),P_:h.getLastError()})}}finally{N(aD,`RPC '${e}' ${l} completed.`)}});let c=JSON.stringify(i);N(aD,`RPC '${e}' ${l} sending request:`,i),h.send(t,"POST",c,r,15)})}T_(e,t,r){let n=aC(),s=[this.qo,"/","google.firestore.v1.Firestore","/",e,"/channel"],a=this.createWebChannelTransport(),o={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},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Go(o.initMessageHeaders,t,r),o.encodeInitMessageHeaders=!0;let u=s.join("");N(aD,`Creating RPC '${e}' stream ${n}: ${u}`,o);let h=a.createWebChannel(u,o);this.I_(h);let d=!1,f=!1,p=new aN({Ho:t=>{f?N(aD,`Not sending because RPC '${e}' stream ${n} is closed:`,t):(d||(N(aD,`Opening RPC '${e}' stream ${n} transport.`),h.open(),d=!0),N(aD,`RPC '${e}' stream ${n} sending:`,t),h.send(t))},Jo:()=>h.close()});return aR(h,i.EventType.OPEN,()=>
20{f||(N(aD,`RPC '${e}' stream ${n} transport opened.`),p.i_())}),aR(h,i.EventType.CLOSE,()=>{f||(f=!0,N(aD,`RPC '${e}' stream ${n} transport closed`),p.o_(),this.E_(h))}),aR(h,i.EventType.ERROR,t=>{f||(f=!0,R(aD,`RPC '${e}' stream ${n} transport errored. Name:`,t.name,"Message:",t.message),p.o_(new U(F.UNAVAILABLE,"The operation could not be completed")))}),aR(h,i.EventType.MESSAGE,t=>{if(!f){let r=t.data[0];M(!!r,16349);let i=r?.error||r[0]?.error;if(i){N(aD,`RPC '${e}' stream ${n} received error:`,i);let t=i.status,r=function(e){let t=c[e];if(void 0!==t)return nZ(t)}(t),s=i.message;void 0===r&&(r=F.INTERNAL,s="Unknown error status: "+t+" with message "+i.message),f=!0,p.o_(new U(r,s)),h.close()}else N(aD,`RPC '${e}' stream ${n} received:`,r),p.__(r)}}),aO.u_(),setTimeout(()=>{p.s_()},0),p}terminate(){this.a_.forEach(e=>e.close()),this.a_=[]}I_(e){this.a_.push(e)}E_(e){this.a_=this.a_.filter(t=>t===e)}Go(e,t,r){super.Go(e,t,r),this.databaseInfo.apiKey&&(e["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return h()}}function aP(){return"u">typeof window?window:null}function aL(){return"u">typeof document?document:null}function aM(e){return new ih(e,!0)}aO.c_=!1;class aF{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ci=e,this.timerId=t,this.R_=r,this.A_=n,this.V_=i,this.d_=0,this.m_=null,this.f_=Date.now(),this.reset()}reset(){this.d_=0}g_(){this.d_=this.V_}p_(e){this.cancel();let t=Math.floor(this.d_+this.y_()),r=Math.max(0,Date.now()-this.f_),n=Math.max(0,t-r);n>0&&N("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.d_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.m_=this.Ci.enqueueAfterDelay(this.timerId,n,()=>(this.f_=Date.now(),e())),this.d_*=this.A_,this.d_<this.R_&&(this.d_=this.R_),this.d_>this.V_&&(this.d_=this.V_)}w_(){null!==this.m_&&(this.m_.skipDelay(),this.m_=null)}cancel(){null!==this.m_&&(this.m_.cancel(),this.m_=null)}y_(){return(Math.random()-.5)*this.d_}}let aU="PersistentStream";class aV{constructor(e,t,r,n,i,s,a,o){this.Ci=e,this.b_=r,this.S_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.D_=0,this.C_=null,this.v_=null,this.stream=null,this.F_=0,this.M_=new aF(e,t)}x_(){return 1===this.state||5===this.state||this.O_()}O_(){return 2===this.state||3===this.state}start(){this.F_=0,4!==this.state?this.auth():this.N_()}async stop(){this.x_()&&await this.close(0)}B_(){this.state=0,this.M_.reset()}L_(){this.O_()&&null===this.C_&&(this.C_=this.Ci.enqueueAfterDelay(this.b_,6e4,()=>this.k_()))}K_(e){this.q_(),this.stream.send(e)}async k_(){if(this.O_())return this.close(0)}q_(){this.C_&&(this.C_.cancel(),this.C_=null)}U_(){this.v_&&(this.v_.cancel(),this.v_=null)}async close(e,t){this.q_(),this.U_(),this.M_.cancel(),this.D_++,4!==e?this.M_.reset():t&&t.code===F.RESOURCE_EXHAUSTED?(D(t.toString()),D("Using maximum backoff delay to prevent overloading the backend."),this.M_.g_()):t&&t.code===F.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.W_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.t_(t)}W_(){}auth(){this.state=1;let e=this.Q_(this.D_),t=this.D_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,r])=>{this.D_===t&&this.G_(e,r)},t=>{e(()=>{let e=new U(F.UNKNOWN,"Fetching auth token failed: "+t.message);return this.z_(e)})})}G_(e,t){let r=this.Q_(this.D_);this.stream=this.j_(e,t),this.stream.Zo(()=>{r(()=>this.listener.Zo())}),this.stream.Yo(()=>{r(()=>(this.state=2,this.v_=this.Ci.enqueueAfterDelay(this.S_,1e4,()=>(this.O_()&&(this.state=3),Promise.resolve())),this.listener.Yo()))}),this.stream.t_(e=>{r(()=>this.z_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.F_?this.H_(e):this.onNext(e))})}N_(){this.state=5,this.M_.p_(async()=>{this.state=0,this.start()})}z_(e){return N(aU,`close with error: ${e}`),this.stream=null,this.close(4,e)}Q_(e){return t=>{this.Ci.enqueueAndForget(()=>this.D_===e?t():(N(aU,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class aB extends aV{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer
20=i}j_(e,t){return this.connection.T_("Listen",e,t)}H_(e){return this.onNext(e)}onNext(e){this.M_.reset();let t=function(e,t){let r;if("targetChange"in t){var n,i;t.targetChange;let s="NO_CHANGE"===(n=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===n?1:"REMOVE"===n?2:"CURRENT"===n?3:"RESET"===n?4:P(39313,{state:n}),a=t.targetChange.targetIds||[],o=(i=t.targetChange.resumeToken,e.useProto3Json?(M(void 0===i||"string"==typeof i,58123),tZ.fromBase64String(i||"")):(M(void 0===i||i instanceof w.Buffer||i instanceof Uint8Array,16193),tZ.fromUint8Array(i||new Uint8Array))),l=t.targetChange.cause;r=new it(s,a,o,l&&new U(void 0===l.code?F.UNKNOWN:nZ(l.code),l.message||"")||null)}else if("documentChange"in t){t.documentChange;let n=t.documentChange;n.document,n.document.name,n.document.updateTime;let i=i_(e,n.document.name),s=ig(n.document.updateTime),a=n.document.createTime?ig(n.document.createTime):eg.min(),o=new rx({mapValue:{fields:n.document.fields}}),l=rN.newFoundDocument(i,s,a,o);r=new n9(n.targetIds||[],n.removedTargetIds||[],l.key,l)}else if("documentDelete"in t){t.documentDelete;let n=t.documentDelete;n.document;let i=i_(e,n.document),s=n.readTime?ig(n.readTime):eg.min(),a=rN.newNoDocument(i,s);r=new n9([],n.removedTargetIds||[],a.key,a)}else if("documentRemove"in t){t.documentRemove;let n=t.documentRemove;n.document;let i=i_(e,n.document);r=new n9([],n.removedTargetIds||[],i,null)}else{if(!("filter"in t))return P(11601,{Vt:t});{t.filter;let e=t.filter;e.targetId;let{count:n=0,unchangedNames:i}=e,s=new nY(n,i);r=new ie(e.targetId,s)}}return r}(this.serializer,e),r=function(e){if(!("targetChange"in e))return eg.min();let t=e.targetChange;return t.targetIds&&t.targetIds.length?eg.min():t.readTime?ig(t.readTime):eg.min()}(e);return this.listener.J_(t,r)}Z_(e){let t,r={};r.database=iE(this.serializer),r.addTarget=function(e,t){let r,n=t.target;if((r=r1(n)?{documents:ix(e,n)}:{query:iN(e,n).ft}).targetId=t.targetId,t.resumeToken.approximateByteSize()>0){r.resumeToken=ip(e,t.resumeToken);let n=ic(e,t.expectedCount);null!==n&&(r.expectedCount=n)}else if(t.snapshotVersion.compareTo(eg.min())>0){r.readTime=id(e,t.snapshotVersion.toTimestamp());let n=ic(e,t.expectedCount);null!==n&&(r.expectedCount=n)}return r}(this.serializer,e);let n=(this.serializer,null==(t=function(e){switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return P(28987,{purpose:e})}}(e.purpose))?null:{"goog-listen-tags":t});n&&(r.labels=n),this.K_(r)}X_(e){let t={};t.database=iE(this.serializer),t.removeTarget=e,this.K_(t)}}class aq extends aV{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get Y_(){return this.F_>0}start(){this.lastStreamToken=void 0,super.start()}W_(){this.Y_&&this.ea([])}j_(e,t){return this.connection.T_("Write",e,t)}H_(e){return M(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,M(!e.writeResults||0===e.writeResults.length,55816),this.listener.ta()}onNext(e){var t,r;M(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.M_.reset();let n=(t=e.writeResults,r=e.commitTime,t&&t.length>0?(M(void 0!==r,14353),t.map(e=>{let t;return(t=e.updateTime?ig(e.updateTime):ig(r)).isEqual(eg.min())&&(t=ig(r)),new nO(t,e.transformResults||[])})):[]),i=ig(e.commitTime);return this.listener.na(i,n)}ra(){let e={};e.database=iE(this.serializer),this.K_(e)}ea(e){let t={streamToken:this.lastStreamToken,writes:e.map(e=>iA(this.serializer,e))};this.K_(t)}}class aj{}class az extends aj{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.ia=!1}sa(){if(this.ia)throw new U(F.FAILED_PRECONDITION,"The client has already been terminated.")}Wo(e,t,r,n){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([i,s])=>this.connection.Wo(e,iy(t,r),n,i,s)).catch(e=>{throw"FirebaseError"===e.name?(e.code===F.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new U(F.UNKNOWN,e.toString())})}jo(e,t,r,n,i){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([s,a])=>this.connection.jo(e,iy(t,r),n,s,a,i)).catch(e=>{throw"FirebaseError"===e.name?(e.code===F.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new U(F.UNKNOWN,e.toString())})}terminate(){this.ia=!0,this.connection.terminate()}}class a${constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.oa=0,this._a=null,this.aa=!0}ua(){0===this.oa&&(this.ca("Unknown"),this._a=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this._a=null,this.la("Backend didn't respond within 10 seconds."),this.ca("Offline"),Promise.resolve())))}ha(e){"Online"===this.state?this.ca("Unknown"):(this.oa++,this.oa>=1&&(this.Pa(),this.la(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.ca("Offline")))}set(e){this.Pa(),this.oa=0,"Online"===e&&(this.aa=!1),this.ca(e)}ca(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}la(e){let t=`Could not reach Cloud Firestore backend. ${e} 21This 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.`;
21this.aa?(D(t),this.aa=!1):N("OnlineStateTracker",t)}Pa(){null!==this._a&&(this._a.cancel(),this._a=null)}}let aK="RemoteStore";class aG{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Ta=[],this.Ia=new Map,this.Ea=new Set,this.Ra=[],this.Aa=i,this.Aa.Mo(e=>{r.enqueueAndForget(async()=>{a1(this)&&(N(aK,"Restarting streams for network reachability change."),await async function(e){e.Ea.add(4),await aW(e),e.Va.set("Unknown"),e.Ea.delete(4),await aH(e)}(this))})}),this.Va=new a$(r,n)}}async function aH(e){if(a1(e))for(let t of e.Ra)await t(!0)}async function aW(e){for(let t of e.Ra)await t(!1)}function aQ(e,t){e.Ia.has(t.targetId)||(e.Ia.set(t.targetId,t),a0(e)?aZ(e):oo(e).O_()&&aY(e,t))}function aJ(e,t){let r=oo(e);e.Ia.delete(t),r.O_()&&aX(e,t),0===e.Ia.size&&(r.O_()?r.L_():a1(e)&&e.Va.set("Unknown"))}function aY(e,t){if(e.da.$e(t.targetId),t.resumeToken.approximateByteSize()>0||t.snapshotVersion.compareTo(eg.min())>0){let r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size;t=t.withExpectedCount(r)}oo(e).Z_(t)}function aX(e,t){e.da.$e(t),oo(e).X_(t)}function aZ(e){e.da=new ii({getRemoteKeysForTarget:t=>e.remoteSyncer.getRemoteKeysForTarget(t),At:t=>e.Ia.get(t)||null,ht:()=>e.datastore.serializer.databaseId}),oo(e).start(),e.Va.ua()}function a0(e){return a1(e)&&!oo(e).x_()&&e.Ia.size>0}function a1(e){return 0===e.Ea.size}async function a2(e){e.Va.set("Online")}async function a6(e){e.Ia.forEach((t,r)=>{aY(e,t)})}async function a3(e,t){e.da=void 0,a0(e)?(e.Va.ha(t),aZ(e)):e.Va.set("Unknown")}async function a5(e,t,r){if(e.Va.set("Online"),t instanceof it&&2===t.state&&t.cause)try{await async function(e,t){let r=t.cause;for(let n of t.targetIds)e.Ia.has(n)&&(await e.remoteSyncer.rejectListen(n,r),e.Ia.delete(n),e.da.removeTarget(n))}(e,t)}catch(r){N(aK,"Failed to remove targets %s: %s ",t.targetIds.join(","),r),await a4(e,r)}else if(t instanceof n9?e.da.Xe(t):t instanceof ie?e.da.st(t):e.da.tt(t),!r.isEqual(eg.min()))try{let t,n=await s7(e.localStore);r.compareTo(n)>
21=0&&await ((t=e.da.Tt(r)).targetChanges.forEach((t,n)=>{if(t.resumeToken.approximateByteSize()>0){let i=e.Ia.get(n);i&&e.Ia.set(n,i.withResumeToken(t.resumeToken,r))}}),t.targetMismatches.forEach((t,r)=>{let n=e.Ia.get(t);if(!n)return;e.Ia.set(t,n.withResumeToken(tZ.EMPTY_BYTE_STRING,n.snapshotVersion)),aX(e,t);let i=new iM(n.target,t,r,n.sequenceNumber);aY(e,i)}),e.remoteSyncer.applyRemoteEvent(t))}catch(t){N(aK,"Failed to raise snapshot:",t),await a4(e,t)}}async function a4(e,t,r){if(!eM(t))throw t;e.Ea.add(1),await aW(e),e.Va.set("Offline"),r||(r=()=>s7(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{N(aK,"Retrying IndexedDB access"),await r(),e.Ea.delete(1),await aH(e)})}function a8(e,t){return t().catch(r=>a4(e,r,t))}async function a7(e){var t;let r=ol(e),n=e.Ta.length>0?e.Ta[e.Ta.length-1].batchId:-1;for(;a1(t=e)&&t.Ta.length<10;)try{let t=await function(e,t){return e.persistence.runTransaction("Get next mutation batch","readonly",r=>(void 0===t&&(t=-1),e.mutationQueue.getNextMutationBatchAfterBatchId(r,t)))}(e.localStore,n);if(null===t){0===e.Ta.length&&r.L_();break}n=t.batchId,function(e,t){e.Ta.push(t);let r=ol(e);r.O_()&&r.Y_&&r.ea(t.mutations)}(e,t)}catch(t){await a4(e,t)}a9(e)&&oe(e)}function a9(e){return a1(e)&&!ol(e).x_()&&e.Ta.length>0}function oe(e){ol(e).start()}async function ot(e){ol(e).ra()}async function or(e){let t=ol(e);for(let r of e.Ta)t.ea(r.mutations)}async function on(e,t,r){let n=e.Ta.shift(),i=nW.from(n,t,r);await a8(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await a7(e)}async function oi(e,t){t&&ol(e).Y_&&await async function(e,t){var r;if(nX(r=t.code)&&r!==F.ABORTED){let r=e.Ta.shift();ol(e).B_(),await a8(e,()=>e.remoteSyncer.rejectFailedWrite(r.batchId,t)),await a7(e)}}(e,t),a9(e)&&oe(e)}async function os(e,t){e.asyncQueue.verifyOperationInProgress(),N(aK,"RemoteStore received new credentials");let r=a1(e);e.Ea.add(3),await aW(e),r&&e.Va.set("Unknown"),await e.remoteSyncer.handleCredentialChange(t),e.Ea.delete(3),await aH(e)}async function oa(e,t){t?(e.Ea.delete(2),await aH(e)):t||(e.Ea.add(2),await aW(e),e.Va.set("Unknown"))}function oo(e){var t,r,n;return e.ma||(t=e.datastore,r=e.asyncQueue,n={Zo:a2.bind(null,e),Yo:a6.bind(null,e),t_:a3.bind(null,e),J_:a5.bind(null,e)},t.sa(),e.ma=new aB(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.Ra.push(async t=>{t?(e.ma.B_(),a0(e)?aZ(e):e.Va.set("Unknown")):(await e.ma.stop(),e.da=void 0)})),e.ma}function ol(e){var t,r,n;return e.fa||(t=e.datastore,r=e.asyncQueue,n={Zo:()=>Promise.resolve(),Yo:ot.bind(null,e),t_:oi.bind(null,e),ta:or.bind(null,e),na:on.bind(null,e)},t.sa(),e.fa=new aq(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.Ra.push(async t=>{t?(e.fa.B_(),await a7(e)):(await e.fa.stop(),e.Ta.length>0&&(N(aK,`Stopping write stream with ${e.Ta.length} pending writes`),e.Ta=[]))})),e.fa}class ou{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new V,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){let s=new ou(e,t,Date.now()+r,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new U(F.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 oh(e,t){if(D("AsyncQueue",`${t}: ${e}`),eM(e))return new U(F.UNAVAILABLE,`${t}: ${e}`);throw e}class oc{static emptySet(e){return new oc(e.comparator)}constructor(e){this.comparator=e?(t,r)=>e(t,r)||ei.comparator(t.key,r.key):(e,t)=>ei.comparator(e.key,t.key),this.keyedMap=nf(),this.sortedSet=new tK(this.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){let t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal((t,r)=>(e(t),!1))}add(e){let t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){let t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof oc)||this.size!==e.size)return!1;let t=this.sortedSet.getIterator(),r=e.sortedSet.getIterator();for(;t.hasNext();){let e=t.getNext().key,n=r.getNext().key;if(!e.isEqual(n))return!1}return!0}toString(){let e=[];return this.forEach(t=>{e.push(t.toString())}),0===e.length?"DocumentSet ()":"DocumentSet (\n "+e.join(" \n")+"\n)"}copy(e,t){let r=new oc;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class od{constructor(){this.ga=new tK(ei.comparator)}track(e){let t=e.doc.key,r=this.ga.get(t);r?0!==e.type&&3===r.type?this.ga=this.ga.insert(t,e):3===e.type&&1!==r.type?this.ga=this.ga.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.ga=this.ga.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.ga=this.ga.remove(t):1===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):P(63341,{Vt:e,pa:r}):this.ga=this.ga.insert(t,e)}ya(){let e=[];return this.ga.inorderTraversal((t,r)=>{e.push(r)}),e}}class of{constructor(e,t,r,n,i,s,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,i){let s=[];
21return t.forEach(e=>{s.push({type:0,doc:e})}),new of(e,t,oc.emptySet(t),s,r,n,!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)&&ni(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;let t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let e=0;e<t.length;e++)if(t[e].type!==r[e].type||!t[e].doc.isEqual(r[e].doc))return!1;return!0}}class op{constructor(){this.wa=void 0,this.ba=[]}Sa(){return this.ba.some(e=>e.Da())}}class og{constructor(){this.queries=om(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e;let t;e=new U(F.ABORTED,"Firestore shutting down"),t=this.queries,this.queries=om(),t.forEach((t,r)=>{for(let t of r.ba)t.onError(e)})}}function om(){return new nh(e=>ns(e),ni)}async function oy(e,t){let r=3,n=t.query,i=e.queries.get(n);i?!i.Sa()&&t.Da()&&(r=2):(i=new op,r=+!t.Da());try{switch(r){case 0:i.wa=await e.onListen(n,!0);break;case 1:i.wa=await e.onListen(n,!1);break;case 2:await e.onFirstRemoteStoreListen(n)}}catch(r){let e=oh(r,`Initialization of query '${na(t.query)}' failed`);return void t.onError(e)}e.queries.set(n,i),i.ba.push(t),t.va(e.onlineState),i.wa&&t.Fa(i.wa)&&ob(e)}async function ov(e,t){let r=t.query,n=3,i=e.queries.get(r);if(i){let e=i.ba.indexOf(t);e>=0&&(i.ba.splice(e,1),0===i.ba.length?n=+!t.Da():!i.Sa()&&t.Da()&&(n=2))}switch(n){case 0:return e.queries.delete(r),e.onUnlisten(r,!0);case 1:return e.queries.delete(r),e.onUnlisten(r,!1);case 2:return e.onLastRemoteStoreUnlisten(r);default:return}}function ow(e,t){let r=!1;for(let n of t){let t=n.query,i=e.queries.get(t);if(i){for(let e of i.ba)e.Fa(n)&&(r=!0);i.wa=n}}r&&ob(e)}function o_(e,t,r){let n=e.queries.get(t);if(n)for(let e of n.ba)e.onError(r);e.queries.delete(t)}function ob(e){e.Ca.forEach(e=>{e.next()})}(p=f||(f={})).Ma="default",p.Cache="cache";class oI{constructor(e,t,r){this.query=e,this.xa=t,this.Oa=!1,this.Na=null,this.onlineState="Unknown",this.options=r||{}}Fa(e){if(!this.options.includeMetadataChanges){let t=[];for(let r of e.docChanges)3!==r.type&&t.push(r);e=new of(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.Oa?this.Ba(e)&&(this.xa.next(e),t=!0):this.La(e,this.onlineState)&&(this.ka(e),t=!0),this.Na=e,t}onError(e){this.xa.error(e)}va(e){this.onlineState=e;let t=!1;return this.Na&&!this.Oa&&this.La(this.Na,e)&&(this.ka(this.Na),t=!0),t}La(e,t){return!(e.fromCache&&this.Da())||(!this.options.Ka||"Offline"===t)&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Ba(e){if(e.docChanges.length>0)return!0;let t=this.Na&&this.Na.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}ka(e){e=of.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Oa=!0,this.xa.next(e)}Da(){return this.options.source!==f.Cache}}class oE{constructor(e,t){this.qa=e,this.byteLength=t}Ua(){return"metadata"in this.qa}}class oT{constructor(e){this.serializer=e}Ks(e){return i_(this.serializer,e)}qs(e){return e.metadata.exists?iC(this.serializer,e.document,!1):rN.newNoDocument(this.Ks(e.metadata.name),this.Us(e.metadata.readTime))}Us(e){return ig(e)}}class oS{constructor(e,t){this.$a=e,this.serializer=t,this.Wa=[],this.Qa=[],this.collectionGroups=new Set,this.progress=oC(e)}get queries(){return this.Wa}get documents(){return this.Qa}Ga(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;if(e.qa.namedQuery)this.Wa.push(e.qa.namedQuery);else if(e.qa.documentMetadata){this.Qa.push({metadata:e.qa.documentMetadata}),e.qa.documentMetadata.exists||++t;let r=et.fromString(e.qa.documentMetadata.name);this.collectionGroups.add(r.get(r.length-2))}else e.qa.document&&(this.Qa[this.Qa.length-1].document=e.qa.document,++t);return t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,{...this.progress}):null}za(e){let t=new Map,r=new oT(this.serializer);for(let n of e)if(n.metadata.queries){let e=r.Ks(n.metadata.name);for(let r of n.metadata.queries){let n=(t.get(r)||nv()).add(e);t.set(r,n)}}return t}async ja(e){let t=await aa(e,new oT(this.serializer),this.Qa,this.$a.id),r=this.za(this.documents);for(let t of this.Wa)await ao(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,Ha:this.collectionGroups,Ja:t}}}function oC(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class oA{constructor(e){this.key=e}}class ok{constructor(e){this.key=e}}class ox{constructor(e,t){this.query=e,this.Za=t,this.Xa=null,this.hasCachedResults=!1,this.current=!1,this.Ya=nv(),this.mutatedKeys=nv(),this.eu=nu(e),this.tu=new oc(this.eu)}get nu(){return this.Za}ru(e,t){let r=t?t.iu:new od,n=t?t.tu:this.tu,i=t?t.mutatedKeys:this.mutatedKeys,s=n,a=!1,o="F"===this.query.limitType&&n.size===this.query.limit?n.last(
21):null,l="L"===this.query.limitType&&n.size===this.query.limit?n.first():null;if(e.inorderTraversal((e,t)=>{let u=n.get(e),h=no(this.query,t)?t:null,c=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations),f=!1;u&&h?u.data.isEqual(h.data)?c!==d&&(r.track({type:3,doc:h}),f=!0):this.su(u,h)||(r.track({type:2,doc:h}),f=!0,(o&&this.eu(h,o)>0||l&&0>this.eu(h,l))&&(a=!0)):!u&&h?(r.track({type:0,doc:h}),f=!0):u&&!h&&(r.track({type:1,doc:u}),f=!0,(o||l)&&(a=!0)),f&&(h?(s=s.add(h),i=d?i.add(e):i.delete(e)):(s=s.delete(e),i=i.delete(e)))}),null!==this.query.limit)for(;s.size>this.query.limit;){let e="F"===this.query.limitType?s.last():s.first();s=s.delete(e.key),i=i.delete(e.key),r.track({type:1,doc:e})}return{tu:s,iu:r,Ss:a,mutatedKeys:i}}su(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){let i=this.tu;this.tu=e.tu,this.mutatedKeys=e.mutatedKeys;let s=e.iu.ya();s.sort((e,t)=>{var r,n;let i;return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return P(20277,{Vt:e})}})(r)-i(n)||this.eu(e.doc,t.doc)}),this.ou(r),n=n??!1;let a=t&&!n?this._u():[],o=0===this.Ya.size&&this.current&&!n?1:0,l=o!==this.Xa;return(this.Xa=o,0!==s.length||l)?{snapshot:new of(this.query,e.tu,i,s,e.mutatedKeys,0===o,l,!1,!!r&&r.resumeToken.approximateByteSize()>0),au:a}:{au:a}}va(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({tu:this.tu,iu:new od,mutatedKeys:this.mutatedKeys,Ss:!1},!1)):{au:[]}}uu(e){return!this.Za.has(e)&&!!this.tu.has(e)&&!this.tu.get(e).hasLocalMutations}ou(e){e&&(e.addedDocuments.forEach(e=>this.Za=this.Za.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Za=this.Za.delete(e)),this.current=e.current)}_u(){if(!this.current)return[];let e=this.Ya;this.Ya=nv(),this.tu.forEach(e=>{this.uu(e.key)&&(this.Ya=this.Ya.add(e.key))});let t=[];return e.forEach(e=>{this.Ya.has(e)||t.push(new ok(e))}),this.Ya.forEach(r=>{e.has(r)||t.push(new oA(r))}),t}cu(e){this.Za=e.ks,this.Ya=nv();let t=this.ru(e.documents);return this.applyChanges(t,!0)}lu(){return of.fromInitialDocuments(this.query,this.tu,this.mutatedKeys,0===this.Xa,this.hasCachedResults)}}let oN="SyncEngine";class oD{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class oR{constructor(e){this.key=e,this.hu=!1}}class oO{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.Pu={},this.Tu=new nh(e=>ns(e),ni),this.Iu=new Map,this.Eu=new Set,this.Ru=new tK(ei.comparator),this.Au=new Map,this.Vu=new sB,this.du={},this.mu=new Map,this.fu=sw.ar(),this.onlineState="Unknown",this.gu=void 0}get isPrimaryClient(){return!0===this.gu}}async function oP(e,t,r=!0){let n,i=le(e),s=i.Tu.get(t);return s?(i.sharedClientState.addLocalQueryTarget(s.targetId),n=s.view.lu()):n=await oM(i,t,r,!0),n}async function oL(e,t){let r=le(e);await oM(r,t,!0,!1)}async function oM(e,t,r,n){let i,s=await ae(e.localStore,ne(t)),a=s.targetId,o=e.sharedCl
21ientState.addLocalQueryTarget(a,r);return n&&(i=await oF(e,t,a,"current"===o,s.resumeToken)),e.isPrimaryClient&&r&&aQ(e.remoteStore,s),i}async function oF(e,t,r,n,i){e.pu=(t,r,n)=>(async function(e,t,r,n){let i=t.view.ru(r);i.Ss&&(i=await ar(e.localStore,t.query,!1).then(({documents:e})=>t.view.ru(e,i)));let s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),o=t.view.applyChanges(i,e.isPrimaryClient,s,a);return oJ(e,t.targetId,o.au),o.snapshot})(e,t,r,n);let s=await ar(e.localStore,t,!0),a=new ox(t,s.ks),o=a.ru(s.documents),l=n7.createSynthesizedTargetChangeForCurrentChange(r,n&&"Offline"!==e.onlineState,i),u=a.applyChanges(o,e.isPrimaryClient,l);oJ(e,r,u.au);let h=new oD(t,r,a);return e.Tu.set(t,h),e.Iu.has(r)?e.Iu.get(r).push(t):e.Iu.set(r,[t]),u.snapshot}async function oU(e,t,r){let n=e.Tu.get(t),i=e.Iu.get(n.targetId);i.length>1?(e.Iu.set(n.targetId,i.filter(e=>!ni(e,t))),e.Tu.delete(t)):e.isPrimaryClient?(e.sharedClientState.removeLocalQueryTarget(n.targetId),e.sharedClientState.isActiveQueryTarget(n.targetId)||await at(e.localStore,n.targetId,!1).then(()=>{e.sharedClientState.clearQueryState(n.targetId),r&&aJ(e.remoteStore,n.targetId),oW(e,n.targetId)}).catch(ek)):(oW(e,n.targetId),await at(e.localStore,n.targetId,!0))}async function oV(e,t){let r=e.Tu.get(t),n=e.Iu.get(r.targetId);e.isPrimaryClient&&1===n.length&&(e.sharedClientState.removeLocalQueryTarget(r.targetId),aJ(e.remoteStore,r.targetId))}async function oB(e,t,r){let n=lt(e);try{var i,s;let e,a,o,l,u,h=await (i=n.localStore,o=ep.now(),l=t.reduce((e,t)=>e.add(t.key),nv()),i.persistence.runTransaction("Locally write mutations","readwrite",r=>{let n=nc,s=nv();return i.xs.getEntries(r,l).next(e=>{(n=e).forEach((e,t)=>{t.isValidDocument()||(s=s.add(e))})}).next(()=>i.localDocuments.getOverlayedDocuments(r,n)).next(n=>{e=n;let s=[];for(let r of t){let t=function(e,t){let r=null;for(let n of e.fieldTransforms){let e=t.data.field(n.field),i=nE(n.transform,e||null);null!=i&&(null===r&&(r=rx.empty()),r.set(n.field,i))}return r||null}(r,e.get(r.key).overlayedDocument);null!=t&&s.push(new nq(r.key,t,function e(t){let r=[];return tz(t.fields,(t,n)=>{let i=new en([t]);if(rI(n)){let t=e(n.mapValue).fields;if(0===t.length)r.push(i);else for(let e of t)r.push(i.child(e))}else r.push(i)}),new tY(r)}(t.value.mapValue),nP.exists(!0)))}
21return i.mutationQueue.addMutationBatch(r,o,s,t)}).next(t=>{a=t;let n=t.applyToLocalDocumentSet(e,s);return i.documentOverlayCache.saveOverlays(r,t.batchId,n)})}).then(()=>({batchId:a.batchId,changes:np(e)})));n.sharedClientState.addPendingMutation(h.batchId),s=h.batchId,(u=n.du[n.currentUser.toKey()])||(u=new tK(Q)),u=u.insert(s,r),n.du[n.currentUser.toKey()]=u,await oX(n,h.changes),await a7(n.remoteStore)}catch(t){let e=oh(t,"Failed to persist write");r.reject(e)}}async function oq(e,t){var r;try{let n,i,s=await (r=e.localStore,n=t.snapshotVersion,i=r.vs,r.persistence.runTransaction("Apply remote event","readwrite-primary",e=>{let s=r.xs.newChangeBuffer({trackRemovals:!0});i=r.vs;let a=[];t.targetChanges.forEach((s,o)=>{var l;let u=i.get(o);if(!u)return;a.push(r.li.removeMatchingKeys(e,s.removedDocuments,o).next(()=>r.li.addMatchingKeys(e,s.addedDocuments,o)));let h=u.withSequenceNumber(e.currentSequenceNumber);null!==t.targetMismatches.get(o)?h=h.withResumeToken(tZ.EMPTY_BYTE_STRING,eg.min()).withLastLimboFreeSnapshotVersion(eg.min()):s.resumeToken.approximateByteSize()>0&&(h=h.withResumeToken(s.resumeToken,n)),i=i.insert(o,h),l=h,(0===u.resumeToken.approximateByteSize()||l.snapshotVersion.toMicroseconds()-u.snapshotVersion.toMicroseconds()>=3e8||s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size>0)&&a.push(r.li.updateTargetData(e,h))});let o=nc,l=nv();if(t.documentUpdates.forEach(n=>{t.resolvedLimboDocuments.has(n)&&a.push(r.persistence.referenceDelegate.updateLimboDocument(e,n))}),a.push(s9(e,s,t.documentUpdates).next(e=>{o=e.Bs,l=e.Ls})),!n.isEqual(eg.min())){let t=r.li.getLastRemoteSnapshotVersion(e).next(t=>r.li.setTargetsMetadata(e,e.currentSequenceNumber,n));a.push(t)}return ex.waitFor(a).next(()=>s.apply(e)).next(()=>r.localDocuments.getLocalViewOfDocuments(e,o,l)).next(()=>o)}).then(e=>(r.vs=i,e)));
21t.targetChanges.forEach((t,r)=>{let n=e.Au.get(r);n&&(M(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1,22616),t.addedDocuments.size>0?n.hu=!0:t.modifiedDocuments.size>0?M(n.hu,14607):t.removedDocuments.size>0&&(M(n.hu,42227),n.hu=!1))}),await oX(e,s,t)}catch(e){await ek(e)}}function oj(e,t,r){var n;if(e.isPrimaryClient&&0===r||!e.isPrimaryClient&&1===r){let r,i=[];e.Tu.forEach((e,r)=>{let n=r.view.va(t);n.snapshot&&i.push(n.snapshot)}),(n=e.eventManager).onlineState=t,r=!1,n.queries.forEach((e,n)=>{for(let e of n.ba)e.va(t)&&(r=!0)}),r&&ob(n),i.length&&e.Pu.J_(i),e.onlineState=t,e.isPrimaryClient&&e.sharedClientState.setOnlineState(t)}}async function oz(e,t,r){e.sharedClientState.updateQueryState(t,"rejected",r);let n=e.Au.get(t),i=n&&n.key;if(i){let r=new tK(ei.comparator);r=r.insert(i,rN.newNoDocument(i,eg.min()));let n=nv().add(i),s=new n8(eg.min(),new Map,new tK(Q),r,n);await oq(e,s),e.Ru=e.Ru.remove(i),e.Au.delete(t),oY(e)}else await at(e.localStore,t,!1).then(()=>oW(e,t,r)).catch(ek)}async function o$(e,t){var r;let n=t.batch.batchId;try{let i=await (r=e.localStore,r.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let n,i,s,a=t.batch.keys(),o=r.xs.newChangeBuffer({trackRemovals:!0});return(i=(n=t.batch).keys(),s=ex.resolve(),i.forEach(r=>{s=s.next(()=>o.getEntry(e,r)).next(e=>{let i=t.docVersions.get(r);M(null!==i,48541),0>e.version.compareTo(i)&&(n.applyToRemoteDocument(e,t),e.isValidDocument()&&(e.setReadTime(t.commitVersion),o.addEntry(e)))})}),s.next(()=>r.mutationQueue.removeMutationBatch(e,n))).next(()=>o.apply(e)).next(()=>r.mutationQueue.performConsistencyCheck(e)).next(()=>r.documentOverlayCache.removeOverlaysForBatchId(e,a,t.batch.batchId)).next(()=>r.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=nv();for(let r=0;r<e.mutationResults.length;++r)e.mutationResults[r].transformResults.length>0&&(t=t.add(e.batch.mutations[r].key));return t}(t))).next(()=>r.localDocuments.getDocuments(e,a))}));oH(e,n,null),oG(e,n),e.sharedClientState.updateMutationState(n,"acknowledged"),await oX(e,i)}catch(e){await ek(e)}}async function oK(e,t,r){var n;try{let i=await (n=e.localStore,n.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let r;
21return n.mutationQueue.lookupMutationBatch(e,t).next(t=>(M(null!==t,37113),r=t.keys(),n.mutationQueue.removeMutationBatch(e,t))).next(()=>n.mutationQueue.performConsistencyCheck(e)).next(()=>n.documentOverlayCache.removeOverlaysForBatchId(e,r,t)).next(()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,r)).next(()=>n.localDocuments.getDocuments(e,r))}));oH(e,t,r),oG(e,t),e.sharedClientState.updateMutationState(t,"rejected",r),await oX(e,i)}catch(e){await ek(e)}}function oG(e,t){(e.mu.get(t)||[]).forEach(e=>{e.resolve()}),e.mu.delete(t)}function oH(e,t,r){let n=e.du[e.currentUser.toKey()];if(n){let i=n.get(t);i&&(r?i.reject(r):i.resolve(),n=n.remove(t)),e.du[e.currentUser.toKey()]=n}}function oW(e,t,r=null){for(let n of(e.sharedClientState.removeLocalQueryTarget(t),e.Iu.get(t)))e.Tu.delete(n),r&&e.Pu.yu(n,r);e.Iu.delete(t),e.isPrimaryClient&&e.Vu.Gr(t).forEach(t=>{e.Vu.containsKey(t)||oQ(e,t)})}function oQ(e,t){e.Eu.delete(t.path.canonicalString());let r=e.Ru.get(t);null!==r&&(aJ(e.remoteStore,r),e.Ru=e.Ru.remove(t),e.Au.delete(r),oY(e))}function oJ(e,t,r){for(let n of r)n instanceof oA?(e.Vu.addReference(n.key,t),function(e,t){let r=t.key,n=r.path.canonicalString();e.Ru.get(r)||e.Eu.has(n)||(N(oN,"New document in limbo: "+r),e.Eu.add(n),oY(e))}(e,n)):n instanceof ok?(N(oN,"Document no longer in limbo: "+n.key),e.Vu.removeReference(n.key,t),e.Vu.containsKey(n.key)||oQ(e,n.key)):P(19791,{wu:n})}function oY(e){for(;e.Eu.size>0&&e.Ru.size<e.maxConcurrentLimboResolutions;){let t=e.Eu.values().next().value;e.Eu.delete(t);let r=new ei(et.fromString(t)),n=e.fu.next();e.Au.set(n,new oR(r)),e.Ru=e.Ru.insert(r,n),aQ(e.remoteStore,new iM(ne(r4(r.path)),n,"TargetPurposeLimboResolution",e$.ce))}}async function oX(e,t,r){let n=[],i=[],s=[];e.Tu.isEmpty()||(e.Tu.forEach((a,o)=>{s.push(e.pu(o,t,r).then(t=>{if((t||r)&&e.isPrimaryClient){let n=t?!t.fromCache:r?.targetChanges.get(o.targetId)?.current;e.sharedClientState.updateQueryState(o.targetId,n?"current":"not-current")}if(t){n.push(t);let e=s2.Es(o.targetId,t);i.push(e)}}))}),await Promise.all(s),e.Pu.J_(n),await async function(e,t){try{await e.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>ex.forEach(t,t=>ex.forEach(t.Ts,n=>e.persistence.referenceDelegate.addReference(r,t.targetId,n)).next(()=>ex.forEach(t.Is,n=>e.persistence.referenceDelegate.removeReference(r,t.targetId,n)))))}catch(e){if(!eM(e))throw e;N(s5,"Failed to update sequence numbers: "+e)}for(let r of t){let t=r.targetId;if(!r.fromCache){let r=e.vs.get(t),n=r.snapshotVersion,i=r.withLastLimboFreeSnapshotVersion(n);e.vs=e.vs.insert(t,i)}}}(e.localStore,i))}async function oZ(e,t){if(!e.currentUser.isEqual(t)){N(oN,"User change. New user:",t.toKey());let r=await s8(e.localStore,t);e.currentUser=t,e.mu.forEach(e=>{e.forEach(e=>{e.reject(new U(F.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))})}),e.mu.clear(),e.sharedClientState.handleUserChange(t,r.removedBatchIds,r.addedBatchIds),await oX(e,r.Ns)}}function o0(e,t){let r=e.Au.get(t);if(r&&r.hu)return nv().add(r.key);{let r=nv(),n=e.Iu.get(t);if(!n)return r;for(let t of n){let n=e.Tu.get(t);r=r.unionWith(n.view.nu)}return r}}async function o1(e,t){let r=await ar(e.localStore,t.query,!0),n=t.view.cu(r);return e.isPrimaryClient&&oJ(e,t.targetId,n.au),n}async function o2(e,t){return ai(e.localStore,t).then(t=>oX(e,t))}async function o6(e,t,r,n){var i,s;let a,o=await (i=e.localStore,a=i.mutationQueue,i.persistence.runTransaction("Lookup mutation documents","readonly",e=>a.Xn(e,t).next(t=>t?i.localDocuments.getDocuments(e,t):ex.resolve(null))));null!==o?("pending"===r?await a7(e.remoteStore):"acknowledged"===r||"rejected"===r?(oH(e,t,n||null),oG(e,t),s=e.localStore,s.mutationQueue.nr(t)):P(6720,"Unknown batchState",{bu:r}),await oX(e,o)):N(oN,"Cannot apply mutation batch with id: "+t)}async function o3(e,t){if(le(e),lt(e),!0===t&&!0!==e.gu){let t=e.sharedClientState.getAllActiveQueryTargets(),r=await o5(e,t.toArray());for(let t of(e.gu=!0,await oa(e.remoteStore,!0),r))aQ(e.remoteStore,t)}else if(!1===t&&!1!==e.gu){let t=[],r=Promise.resolve();e.Iu.forEach((n,i)=>
21{e.sharedClientState.isLocalQueryTarget(i)?t.push(i):r=r.then(()=>(oW(e,i),at(e.localStore,i,!0))),aJ(e.remoteStore,i)}),await r,await o5(e,t),e.Au.forEach((t,r)=>{aJ(e.remoteStore,r)}),e.Vu.zr(),e.Au=new Map,e.Ru=new tK(ei.comparator),e.gu=!1,await oa(e.remoteStore,!1)}}async function o5(e,t,r){let n=[],i=[];for(let r of t){let t,s=e.Iu.get(r);if(s&&0!==s.length)for(let r of(t=await ae(e.localStore,ne(s[0])),s)){let t=e.Tu.get(r),n=await o1(e,t);n.snapshot&&i.push(n.snapshot)}else{let n=await an(e.localStore,r);t=await ae(e.localStore,n),await oF(e,o4(n),r,!1,t.resumeToken)}n.push(t)}return e.Pu.J_(i),n}function o4(e){var t,r,n,i,s;return t=e.path,r=e.collectionGroup,n=e.orderBy,i=e.filters,s=e.limit,new r5(t,r,n,i,s,"F",e.startAt,e.endAt)}function o8(e){return e.localStore.persistence.hs()}async function o7(e,t,r,n){if(e.gu)return void N(oN,"Ignoring unexpected query state notification.");let i=e.Iu.get(t);if(i&&i.length>0)switch(r){case"current":case"not-current":{let n=await ai(e.localStore,nl(i[0])),s=n8.createSynthesizedRemoteEventForCurrentChange(t,"current"===r,tZ.EMPTY_BYTE_STRING);await oX(e,n,s);break}case"rejected":await at(e.localStore,t,!0),oW(e,t,n);break;default:P(64155,r)}}async function o9(e,t,r){let n=le(e);if(n.gu){for(let e of t){if(n.Iu.has(e)&&n.sharedClientState.isActiveQueryTarget(e)){N(oN,"Adding an already active target "+e);continue}let t=await an(n.localStore,e),r=await ae(n.localStore,t);await oF(n,o4(t),r.targetId,!1,r.resumeToken),aQ(n.remoteStore,r)}for(let e of r)n.Iu.has(e)&&await at(n.localStore,e,!1).then(()=>{aJ(n.remoteStore,e),oW(n,e)}).catch(ek)}}function le(e){return e.remoteStore.remoteSyncer.applyRemoteEvent=oq.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=o0.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=oz.bind(null,e),e.Pu.J_=ow.bind(null,e.eventManager),e.Pu.yu=o_.bind(null,e.eventManager),e}function lt(e){return e.remoteStore.remoteSyncer.applySuccessfulWrite=o$.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=oK.bind(null,e),e}class lr{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=aM(e.databaseInfo.databaseId),this.sharedClientState=this.Du(e),this.persistence=this.Cu(e),await this.persistence.start(),this.localStore=this.vu(e),this.gcScheduler=this.Fu(e,this.localStore),this.indexBackfillerScheduler=this.Mu(e,this.localStore)}Fu(e,t){return null}Mu(e,t){return null}vu(e){var t,r;return t=this.persistence,r=new s3,new s4(t,r,e.initialUser,this.serializer)}Cu(e){return new sG(sW.Vi,this.serializer)}Du(e){return new ab}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}lr.provider={build:()=>new lr};class ln extends lr{constructor(e){super(),this.cacheSizeBytes=e}Fu(e,t){return M(this.persistence.referenceDelegate instanceof sQ,46915),new sS(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Cu(e){let t=void 0!==this.cacheSizeBytes?sf.withCacheSize(this.cacheSizeBytes):sf.DEFAULT;return new sG(e=>sQ.Vi(e,t),this.serializer)}}class li extends lr{constructor(e,t,r){super(),this.xu=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.xu.initialize(this,e),await lt(this.xu.syncEngine),await a7(this.xu.remoteStore),await this.persistence.zi(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){var t,r;return t=this.persistence,r=new s3,new s4(t,r,e.initialUser,this.serializer)}Fu(e,t){return new sS(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Mu(e,t){let r=new ez(t,this.persistence);return new ej(e.asyncQueue,r)}Cu(e){let t=s1(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?sf.withCacheSize(this.cacheSizeBytes):sf.DEFAULT;return new s0(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,aP(
21),aL(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Du(e){return new ab}}class ls extends li{constructor(e,t){super(e,t,!1),this.xu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);let t=this.xu.syncEngine;this.sharedClientState instanceof a_&&(this.sharedClientState.syncEngine={So:o6.bind(null,t),Do:o7.bind(null,t),Co:o9.bind(null,t),hs:o8.bind(null,t),bo:o2.bind(null,t)},await this.sharedClientState.start()),await this.persistence.zi(async e=>{await o3(this.xu.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())})}Du(e){let t=aP();if(!a_.v(t))throw new U(F.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");let r=s1(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new a_(t,e.asyncQueue,r,e.clientId,e.initialUser)}}class la{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=>oj(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=oZ.bind(null,this.syncEngine),await oa(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new og}createDatastore(e){var t;let r=aM(e.databaseInfo.databaseId),n=new aO(e.databaseInfo);return t=e.authCredentials,new az(t,e.appCheckCredentials,n,r)}createRemoteStore(e){var t,r;return t=this.localStore,r=this.datastore,new aG(t,r,e.asyncQueue,e=>oj(this.syncEngine,e,0),aT.v()?new aT:new aI)}createSyncEngine(e,t){var r,n,i,s,a,o;let l;return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,o=e.maxConcurrentLimboResolutions,l=new oO(r,n,i,s,a,o),t&&(l.gu=!0),l}async terminate(){await async function(e){N(aK,"RemoteStore shutting down."),e.Ea.add(5),await aW(e),e.Aa.shutdown(),e.Va.set("Unknown")}(this.remoteStore),this.datastore?.terminate(),this.eventManager?.terminate()}}function lo(e,t=10240){let r=0;return{async read(){if(r<e.byteLength){let n={value:e.slice(r,r+t),done:!1};return r+=t,n}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}la.provider={build:()=>new la};class ll{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ou(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ou(this.observer.error,e):D("Uncaught Error in snapshot listener:",e.toString()))}Nu(){this.muted=!0}Ou(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class lu{constructor(e,t){this.Bu=e,this.serializer=t,this.metadata=new V,this.buffer=new Uint8Array,this.Lu=new TextDecoder("utf-8"),this.ku().then(e=>{e&&e.Ua()?this.metadata.resolve(e.qa.metadata):this.metadata.reject(Error(`The first element of the bundle is not a metadata, it is 22 ${JSON.stringify(e?.qa)}`))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async Su(){return await this.getMetadata(),this.ku()}async ku(){let e=await this.Ku();if(null===e)return null;let t=this.Lu.decode(e),r=Number(t);return isNaN(r)&&this.qu(`length string (${t}) is not valid number`),new oE(JSON.parse(await this.Uu(r)),e.length+r)}$u(){return this.buffer.findIndex(e=>123===e)}async Ku(){for(;0>this.$u()&&!await this.Wu(););if(0===this.buffer.length)return null;let e=this.$u();e<0&&this.qu("Reached the end of bundle when a length string is expected.");let t=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),t}async Uu(e){for(;this.buffer.length<e;)await this.Wu()&&this.qu("Reached the end of bundle when more is expected.");let t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}qu(e){throw this.Bu.cancel(),Error(`Invalid bundle format: ${e}`)}async Wu(){let e=await this.Bu.read();if(!e.done){let 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}}
22class lh{constructor(e,t){this.bundleData=e,this.serializer=t,this.cursor=0,this.elements=[];let r=this.Su();if(!r||!r.Ua())throw Error(`The first element of the bundle is not a metadata object, it is 23 ${JSON.stringify(r?.qa)}`);this.metadata=r;do null!==(r=this.Su())&&this.elements.push(r);while(null!==r)}getMetadata(){return this.metadata}Qu(){return this.elements}Su(){if(this.cursor===this.bundleData.length)return null;let e=this.Ku();return new oE(JSON.parse(this.Uu(e)),e)}Uu(e){if(this.cursor+e>this.bundleData.length)throw new U(F.INTERNAL,"Reached the end of bundle when more is expected.");return this.bundleData.slice(this.cursor,this.cursor+=e)}Ku(){let e=this.cursor,t=this.cursor;for(;t<this.bundleData.length;){if("{"===this.bundleData[t]){if(t===e)throw Error("First character is a bracket and not a number");return this.cursor=t,Number(this.bundleData.slice(e,t))}t++}throw Error("Reached the end of bundle when more is expected.")}}class lc{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new U(F.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;let t=await async function(e,t){let r={documents:t.map(t=>iw(e.serializer,t))},n=await e.jo("BatchGetDocuments",e.serializer.databaseId,et.emptyPath(),r,t.length),i=new Map;n.forEach(t=>{var r;let n,s,a,o,l,u,h=(r=e.serializer,"found"in t?(M(!!t.found,43571),t.found.name,t.found.updateTime,n=i_(r,t.found.name),s=ig(t.found.updateTime),a=t.found.createTime?ig(t.found.createTime):eg.min(),o=new rx({mapValue:{fields:t.found.fields}}),rN.newFoundDocument(n,s,a,o)):"missing"in t?(M(!!t.missing,3894),M(!!t.readTime,22933),l=i_(r,t.missing),u=ig(t.readTime),rN.newNoDocument(l,u)):P(7234,{result:t}));i.set(h.key.toString(),h)});let s=[];return t.forEach(e=>{let t=i.get(e.toString());M(!!t,55234,{key:e}),s.push(t)}),s}(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.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new nK(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let e=this.readVersions;this.mutations.forEach(t=>{e.delete(t.key.toString())}),e.forEach((e,t)=>{let r=ei.fromPath(t);this.mutations.push(new nG(r,this.precondition(r)))}),await async function(e,t){let r={writes:t.map(t=>iA(e.serializer,t))};await e.Wo("Commit",e.serializer.databaseId,et.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw P(50498,{Gu:e.constructor.name});t=eg.min()}let r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new U(F.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){let t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(eg.min())?nP.exists(!1):nP.updateTime(t):nP.none()}preconditionForUpdate(e){let t=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&t){if(t.isEqual(eg.min()))throw new U(F.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return nP.updateTime(t)}return nP.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class ld{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.zu=r.maxAttempts,this.M_=new aF(this.asyncQueue,"transaction_retry")}ju(){this.zu-=1,this.Hu()}Hu(){this.M_.p_(async()=>{let e=new lc(this.datastore),t=this.Ju(e);t&&t.then(t=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(t)}).catch(e=>{this.Zu(e)}))}).catch(e=>{this.Zu(e)})})}Ju(e){try{let t=this.updateFunction(e);return!eK(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}}Zu(e){this.zu>0&&this.Xu(e)?(this.zu-=1,this.asyncQueue.enqueueAndForget(()=>(this.Hu(),Promise.resolve()))):this.deferred.reject(e)}Xu(e){if("FirebaseError"===e?.name){let t=e.code;return"aborted"===t||"failed-precondition"===t||"already-exists"===t||!nX(t)}return!1}}let lf="FirestoreClient";class lp{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this._databaseInfo=n,this.user=C.UNAUTHENTICATED,this.clientId=W.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{N(lf,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(N(lf,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){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}terminate(){this.asyncQueue.enterRestrictedMode();let e=new V;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(r){let t=oh(r,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function lg(e,t){e.asyncQueue.verifyOperationInProgress(),N(lf,"Initializing OfflineComponentProvider");let r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await s8(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function lm(e,t){e.asyncQueue.verifyOperationInProgress();let r=await ly(e);N(lf,"Initializing OnlineComponentProvider"),await t.initialize(r,e.configuration),e.setCredentialChangeListener(e=>os(t.remoteStore,e)),e.setAppCheckTokenChangeListener((e,r)=>os(t.remoteStore,r)),e._onlineComponents=t}async function ly(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){N(lf,"Using user provided OfflineComponentProvider");try{await lg(e,e._uninitializedComponentsProvider._offline)}catch(t){if(!("FirebaseError"===t.name?t.code===F.FAILED_PRECONDITION||t.code===F.UNIMPLEMENT
23ED:!("u">typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw t;R("Error using user provided cache. Falling back to memory cache: "+t),await lg(e,new lr)}}else N(lf,"Using default OfflineComponentProvider"),await lg(e,new ln(void 0));return e._offlineComponents}async function lv(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(N(lf,"Using user provided OnlineComponentProvider"),await lm(e,e._uninitializedComponentsProvider._online)):(N(lf,"Using default OnlineComponentProvider"),await lm(e,new la))),e._onlineComponents}function lw(e){return ly(e).then(e=>e.localStore)}function l_(e){return lv(e).then(e=>e.syncEngine)}function lb(e){return lv(e).then(e=>e.datastore)}async function lI(e){let t=await lv(e),r=t.eventManager;return r.onListen=oP.bind(null,t.syncEngine),r.onUnlisten=oU.bind(null,t.syncEngine),r.onFirstRemoteStoreListen=oL.bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=oV.bind(null,t.syncEngine),r}function lE(e,t,r={}){let n=new V;return e.asyncQueue.enqueueAndForget(async()=>{var i,s;let a,o;return i=await lI(e),s=e.asyncQueue,a=new ll({next:e=>{a.Nu(),s.enqueueAndForget(()=>ov(i,o));let l=e.docs.has(t);!l&&e.fromCache?n.reject(new U(F.UNAVAILABLE,"Failed to get document because the client is offline.")):l&&e.fromCache&&r&&"server"===r.source?n.reject(new U(F.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.)')):n.resolve(e)},error:e=>n.reject(e)}),oy(i,o=new oI(r4(t.path),a,{includeMetadataChanges:!0,Ka:!0}))}),n.promise}function lT(e,t,r={}){let n=new V;return e.asyncQueue.enqueueAndForget(async()=>{var i,s;let a,o;return i=await lI(e),s=e.asyncQueue,o=new oI(t,a=new ll({next:e=>{a.Nu(),s.enqueueAndForget(()=>ov(i,o)),e.fromCache&&"server"===r.source?n.reject(new U(F.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.)')):n.resolve(e)},error:e=>n.reject(e)}),{includeMetadataChanges:!0,Ka:!0}),oy(i,o)}),n.promise}function lS(e){let t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let lC=new Map,lA="firestore.googleapis.com";class lk{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new U(F.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=lA,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=0x2800000;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new U(F.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,t,r,n){if(!0===t&&!0===n)throw new U(F.INVALID_ARGUMENT,`${e} and ${r} cannot be used together.`)})("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=lS(e.experimentalLongPollingOptions??{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new U(F.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new U(F.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new U(F.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){var t,r;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&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}}class lx{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new lk({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new U(F.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"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new U(F.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 lk(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new q;switch(e.type){case"firstParty":return new K(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new U(F.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invali
23d credential type")}}(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){let e;return(e=lC.get(this))&&(N("ComponentProvider","Removing Datastore"),lC.delete(this),e.terminate()),Promise.resolve()}}class lN{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new lN(this.firestore,e,this._query)}}class lD{constructor(e,t,r){this.converter=t,this._key=r,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 lR(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new lD(this.firestore,e,this._key)}toJSON(){return{type:lD._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(ef(t,lD._jsonSchema))return new lD(e,r||null,new ei(et.fromString(t.referencePath)))}}lD._jsonSchemaVersion="firestore/documentReference/1.0",lD._jsonSchema={type:ed("string",lD._jsonSchemaVersion),referencePath:ed("string")};class lR extends lN{constructor(e,t,r){super(e,t,r4(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){let e=this._path.popLast();return e.isEmpty()?null:new lD(this.firestore,null,new ei(e))}withConverter(e){return new lR(this.firestore,e,this._path)}}function lO(e,t,...r){if(e=(0,_.getModularInstance)(e),es("collection","path",t),e instanceof lx){let n=et.fromString(t,...r);return eo(n),new lR(e,null,n)}{if(!(e instanceof lD||e instanceof lR))throw new U(F.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(et.fromString(t,...r));return eo(n),new lR(e.firestore,null,n)}}function lP(e,t,...r){if(e=(0,_.getModularInstance)(e),1==arguments.length&&(t=W.newId()),es("doc","path",t),e instanceof lx){let n=et.fromString(t,...r);return ea(n),new lD(e,null,new ei(n))}{if(!(e instanceof lD||e instanceof lR))throw new U(F.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(et.fromString(t,...r));return ea(n),new lD(e.firestore,e instanceof lR?e.converter:null,new ei(n))}}function lL(e,t){return e=(0,_.getModularInstance)(e),t=(0,_.getModularInstance)(t),e instanceof lN&&t instanceof lN&&e.firestore===t.firestore&&ni(e._query,t._query)&&e.converter===t.converter}let lM="AsyncQueue";class lF{constructor(e=Promise.resolve()){this.Yu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new aF(this,"async_queue_retry"),this._c=()=>{let e=aL();e&&N(lM,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;const t=aL();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._c)}get isShuttingDown(){return this.ec}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.uc(),this.cc(e)}enterRestrictedMode(e){if(!this.ec){this.ec=!0,this.sc=e||!1;let t=aL();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c)}}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new V;return this.cc(()=>this.ec&&this.sc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Yu.push(e),this.lc()))}async lc(){if(0!==this.Yu.length){try{await this.Yu[0](),this.Yu.shift(),this.M_.reset()}catch(e){if(!eM(e))throw e;N(lM,"Operation failed with retryable error: "+e)}this.Yu.length>0&&this.M_.p_(()=>this.lc())}}cc(e){let t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,D("INTERNAL UNHANDLED ERROR: ",lU(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t,t}enqueueAfterDelay(e,t,r){this.uc(),this.oc.indexOf(e)>-1&&(t=0);let n=ou.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&P(47125,{Pc:lU(this.nc)})}verifyOperationInProgress(){}async Tc(){let e;do e=this.ac,await e;while(e!==this.ac)}Ic(e){for(let t of this.tc)if(t.timerId===e)return!0;return!1}Ec(e){return this.Tc().then(()=>{for(let t of(this.tc.sort((e,t)=>
23e.targetTimeMs-t.targetTimeMs),this.tc))if(t.skipDelay(),"all"!==e&&t.timerId===e)break;return this.Tc()})}Rc(e){this.oc.push(e)}hc(e){let t=this.tc.indexOf(e);this.tc.splice(t,1)}}function lU(e){let t=e.message||"";return e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t}class lV{constructor(){this._progressObserver={},this._taskCompletionResolver=new V,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}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)}}class lB extends lx{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new lF,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new lF(e),this._firestoreClient=void 0,await e}}}function lq(e,t){let r="object"==typeof e?e:(0,g.getApp)(),n=(0,g._getProvider)(r,"firestore").getImmediate({identifier:"string"==typeof e?e:t||rr});if(!n._initialized){let e=(0,_.getDefaultEmulatorHostnameAndPort)("firestore");e&&function(e,t,r,n={}){e=eh(e,lx);let i=(0,_.isCloudWorkstation)(t),s=e._getSettings(),a={...s,emulatorOptions:e._getEmulatorOptions()},o=`${t}:${r}`;i&&((0,_.pingServer)(`https://${o}`),(0,_.updateEmulatorBanner)("Firestore",!0)),s.host!==lA&&s.host!==o&&R("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");let l={...s,host:o,ssl:i,emulatorOptions:n};if(!(0,_.deepEqual)(l,a)&&(e._setSettings(l),n.mockUserToken)){let t,r;if("string"==typeof n.mockUserToken)t=n.mockUserToken,r=C.MOCK_USER;else{t=(0,_.createMockUserToken)(n.mockUserToken,e._app?.options.projectId);let i=n.mockUserToken.sub||n.mockUserToken.user_id;if(!i)throw new U(F.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new C(i)}e._authCredentials=new j(new B(t,r))}}(n,...e)}return n}function lj(e){if(e._terminated)throw new U(F.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var t,r,n,i,s;let a,o=e._freezeSettings(),l=(t=e._databaseId,r=e._app?.options.appId||"",n=e._persistenceKey,i=e._app?.options.apiKey,new rt(t,r,n,o.host,o.ssl,o.experimentalForceLongPolling,o.experimentalAutoDetectLongPolling,lS(o.experimentalLongPollingOptions),o.useFetchStreams,o.isUsingEmulator,i));e._componentsProvider||o.localCache?._offlineComponentProvider&&o.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:o.localCache._offlineComponentProvider,_online:o.localCache._onlineComponentProvider}),e._firestoreClient=new lp(e._authCredentials,e._appCheckCredentials,e._queue,l,e._componentsProvider&&(s=e._componentsProvider,a=s?._online.build(),{_offline:s?._offline.build(a),_online:a}))}(e),e._firestoreClient}function lz(e,t){let r=lj(e=eh(e,lB)),n=new lV;return function(e,t,r,n){var i;let s=(i=aM(t),new lu(function(e,t){if(e instanceof Uint8Array)return lo(e,void 0);if(e instanceof ArrayBuffer)return lo(new Uint8Array(e),void 0);if(e instanceof ReadableStream)return e.getReader();throw Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}("string"==typeof r?n1().encode(r):r),i));e.asyncQueue.enqueueAndForget(async()=>{var t;(async function(e,t,r){try{var n,i;let s,a=await t.getMetadata();if(await (n=e.localStore,s=ig(a.createTime),n.persistence.runTransaction("hasNewerBundle","readonly",e=>n.Pi.getBundleMetadata(e,a.id)).then(e=>!!e&&e.createTime.compareTo(s)>=0)))return await t.close(),r._completeWith({taskState:"Success",documentsLoaded:a.totalDocuments,bytesLoaded:a.totalBytes,totalDocuments:a.totalDocuments,totalBytes:a.totalBytes}),Promise.resolve(new Set);r._updateProgress(oC(a));let o=new oS(a,t.serializer),l=await t.Su();for(;l;){let e=await o.Ga(l);e&&r._updateProgress(e),l=await t.Su()}let u=await o.ja(e.localStore);return await oX(e,u.Ja,void 0),await (i=e.localStore,i.persistence.runTransaction("Save bundle","readwrite",e=>i.Pi.saveBundleMetadata(e,a))),r._completeWith(u.progress),Promise.resolve(u.Ha)}catch(e){return R(oN,`Loading bundle failed with ${e}`),r._failWith(e),Promise.resolve(new Set)}})(t=await l_(e),s,n).then(e=>
23{t.sharedClientState.notifyBundleLoaded(e)})})}(r,e._databaseId,t,n),n}class l${constructor(e){this._byteString=e}static fromBase64String(e){try{return new l$(tZ.fromBase64String(e))}catch(e){throw new U(F.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new l$(tZ.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)}toJSON(){return{type:l$._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(ef(e,l$._jsonSchema))return l$.fromBase64String(e.bytes)}}l$._jsonSchemaVersion="firestore/bytes/1.0",l$._jsonSchema={type:ed("string",l$._jsonSchemaVersion),bytes:ed("string")};class lK{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new U(F.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new en(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class lG{constructor(e){this._methodName=e}}class lH{constructor(e,t){if(!isFinite(e)||e<-90||e>90)throw new U(F.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||t>180)throw new U(F.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}_compareTo(e){return Q(this._lat,e._lat)||Q(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:lH._jsonSchemaVersion}}static fromJSON(e){if(ef(e,lH._jsonSchema))return new lH(e.latitude,e.longitude)}}lH._jsonSchemaVersion="firestore/geoPoint/1.0",lH._jsonSchema={type:ed("string",lH._jsonSchemaVersion),latitude:ed("number"),longitude:ed("number")};class lW{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}(this._values,e._values)}toJSON(){return{type:lW._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(ef(e,lW._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new lW(e.vectorValues);throw new U(F.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}lW._jsonSchemaVersion="firestore/vectorValue/1.0",lW._jsonSchema={type:ed("string",lW._jsonSchemaVersion),vectorValues:ed("object")};let lQ=/^__.*__$/;class lJ{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new nq(e,this.data,this.fieldMask,t,this.fieldTransforms):new nB(e,this.data,t,this.fieldTransforms)}}class lY{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new nq(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function lX(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw P(40011,{dataSource:e})}}class lZ{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.validatePath(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(e){return new lZ({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(e){let t=this.path?.child(e),r=this.contextWith({path:t,arrayElement:!1});return r.validatePathSegment(e),r}childContextForFieldPath(e){let t=this.path?.child(e),r=this.contextWith({path:t,arrayElement:!1});return r.validatePath(),r}childContextForArray(e){return this.contextWith({path:void 0,arrayElement:!0})}createError(e){return us(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(e){return void 0!==this.fieldMask.find(t=>e.isPrefixOf(t))||void 0!==this.fieldTransforms.find(t=>e.isPrefixOf(t.field))}validatePath(){if(this.path)for(let e=0;e<this.path.length;e++)this.validatePathSegment(this.path.get(e))}validatePathSegment(e){if(0===e.length)throw this.createError("Document fields must not be empty");if(lX(this.dataSource)&&lQ.test(e))throw this.createError('Document fields cannot begin and end with "__"')}}class l0{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer
23=r||aM(e)}createContext(e,t,r,n=!1){return new lZ({dataSource:e,methodName:t,targetDoc:r,path:en.emptyPath(),arrayElement:!1,hasConverter:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function l1(e){let t=e._freezeSettings(),r=aM(e._databaseId);return new l0(e._databaseId,!!t.ignoreUndefinedProperties,r)}function l2(e,t,r,n,i,s={}){let a,o,l=e.createContext(s.merge||s.mergeFields?2:0,t,r,i);ut("Data must be an object, but it was:",l,n);let u=l9(n,l);if(s.merge)a=new tY(l.fieldMask),o=l.fieldTransforms;else if(s.mergeFields){let e=[];for(let n of s.mergeFields){let i=ur(t,n,r);if(!l.contains(i))throw new U(F.INVALID_ARGUMENT,`Field '${i}' is specified in your field mask but missing from your input data.`);ua(e,i)||e.push(i)}a=new tY(e),o=l.fieldTransforms.filter(e=>a.covers(e.field))}else a=null,o=l.fieldTransforms;return new lJ(new rx(u),a,o)}class l6 extends lG{_toFieldTransform(e){if(2!==e.dataSource)throw 1===e.dataSource?e.createError(`${this._methodName}() can only appear at the top level of your update data`):e.createError(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof l6}}class l3 extends lG{_toFieldTransform(e){return new nR(e.path,new nT)}isEqual(e){return e instanceof l3}}function l5(e,t,r,n){let i=e.createContext(1,t,r);ut("Data must be an object, but it was:",i,n);let s=[],a=rx.empty();return tz(n,(e,n)=>{let o=ui(t,e,r);n=(0,_.getModularInstance)(n);let l=i.childContextForFieldPath(o);if(n instanceof l6)s.push(o);else{let e=l7(n,l);null!=e&&(s.push(o),a.set(o,e))}}),new lY(a,new tY(s),i.fieldTransforms)}function l4(e,t,r,n,i,s){let a=e.createContext(1,t,r),o=[ur(t,n,r)],l=[i];if(s.length%2!=0)throw new U(F.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let e=0;e<s.length;e+=2)o.push(ur(t,s[e])),l.push(s[e+1]);let u=[],h=rx.empty();for(let e=o.length-1;e>=0;--e)if(!ua(u,o[e])){let t=o[e],r=l[e];r=(0,_.getModularInstance)(r);let n=a.childContextForFieldPath(t);if(r instanceof l6)u.push(t);else{let e=l7(r,n);null!=e&&(u.push(t),h.set(t,e))}}return new lY(h,new tY(u),a.fieldTransforms)}function l8(e,t,r,n=!1){return l7(r,e.createContext(n?4:3,t))}function l7(e,t){if(ue(e=(0,_.getModularInstance)(e)))return ut("Unsupported field value:",t,e),l9(e,t);if(e instanceof lG)return function(e,t){if(!lX(t.dataSource))throw t.createError(`${e._methodName}() can only be used with update() and set()`);if(!t.path)throw t.createError(`${e._methodName}() is not currently supported inside arrays`);let r=e._toFieldTransform(t);r&&t.fieldTransforms.push(r)}(e,t),null;if(void 0===e&&t.ignoreUndefinedProperties)return null;if(t.path&&t.fieldMask.push(t.path),e instanceof Array){if(t.settings.arrayElement&&4!==t.dataSource)throw t.createError("Nested arrays are not supported");let r=[],n=0;for(let i of e){let e=l7(i,t.childContextForArray(n));null==e&&(e={nullValue:"NULL_VALUE"}),r.push(e),n++}return{arrayValue:{values:r}}}return function(e,t){var r,n,i;if(null===(e=(0,_.getModularInstance)(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return r=t.serializer,eH(n=e)?nb(n):n_(r,n);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){let r=ep.fromDate(e);return{timestampValue:id(t.serializer,r)}}if(e instanceof ep){let r=new ep(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:id(t.serializer,r)}}if(e instanceof lH)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof l$)return{bytesValue:ip(t.serializer,e._byteString)};if(e instanceof lD){let r=t.databaseId,n=e.firestore._databaseId;if(!n.isEqual(r))throw t.createError(`Document reference is for database ${n.projectId}/${n.database} but should be for database ${r.projectId}/${r.database}`);return{referenceValue:im(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof lW)return{mapValue:{fields:{[ri]:{stringValue:ro},[rl]:{arrayValue:{values:((i=e)instanceof lW?i.toArray():i).map(e=>{if("number"!=typeof e)throw t.createError("VectorValues must only contain numeric values.");return n_(t.serializer,e)})}}}}};if(iL(e))return e._toProto(t.serializer);throw t.createError(`Unsupported field value: ${eu(e)}`)}(e,t)}function l9(e,t){let r={};return t$(e)?t.path&&t.path.length>0&&t.fieldMask.push(t.path):tz(e,(e,n)=>{let i=l7(n,t.childContextForField(e));null!=i&&(r[e]=i)}),{mapValue:{fields:r}}}function ue(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof ep||e instanceof lH||e instanceof l$||e instanceof lD||e instanceof lG||e instanceof lW||iL(e))}function ut(e,t,r){if(!ue(r)||!el(r)){let n=eu(r);throw"an object"===n?t.createError(e+" a custom object"):t.createError(e+" "+n)}}function ur(e,t,r){if((t=(0,_.getModularInstance)(t))instanceof lK)return t._internalPath;if("string"==typeof t)return ui(e,t);throw us("Field path arguments must be of type string or ",e,!1,void 0,r)}let un=RegExp("[~\\*/\\[\\]]");function ui(e,t,r){if(t.search(un)>=0)throw us(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,r);try{return new lK(...t.split("."))._internalPath}catch(n){throw us(`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,r)}}function us(e,t,r,n,i){let s=n&&!n.isEmpty(),a=void 0!==i,o=`Function ${t}
23() called with invalid data`;r&&(o+=" (via `toFirestore()`)"),o+=". ";let l="";return(s||a)&&(l+=" (found",s&&(l+=` in field ${n}`),a&&(l+=` in document ${i}`),l+=")"),new U(F.INVALID_ARGUMENT,o+e+l)}function ua(e,t){return e.some(e=>e.isEqual(t))}class uo{convertValue(e,t="none"){switch(rh(e)){case 0:return null;case 1:return e.booleanValue;case 2:return t2(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(t6(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 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw P(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,t="none"){let r={};return tz(e,(e,n)=>{r[e]=this.convertValue(n,t)}),r}convertVectorValue(e){return new lW(e.fields?.[rl].arrayValue?.values?.map(e=>t2(e.doubleValue)))}convertGeoPoint(e){return new lH(t2(e.latitude),t2(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":let r=t9(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(re(e));default:return null}}convertTimestamp(e){let t=t1(e);return new ep(t.seconds,t.nanos)}convertDocumentKey(e,t){let r=et.fromString(e);M(iP(r),9688,{name:e});let n=new rn(r.get(1),r.get(3)),i=new ei(r.popFirst(5));return n.isEqual(t)||D(`Document ${i} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),i}}class ul extends uo{constructor(e){super(),this.firestore=e}convertBytes(e){return new l$(e)}convertReference(e){let t=this.convertDocumentKey(e,this.firestore._databaseId);return new lD(this.firestore,null,t)}}function uu(){return new l3("serverTimestamp")}let uh="@firebase/firestore",uc="4.10.0";function ud(e){if("object"!=typeof e||null===e)return!1;for(let t of["next","error","complete"])if(t in e&&"function"==typeof e[t])return!0;return!1}class uf{constructor(e="count",t){this._internalFieldPath=t,this.type="AggregateField",this.aggregateType=e}}class up{constructor(e,t,r){this._userDataWriter=t,this._data=r,this.type="AggregateQuerySnapshot",this.query=e}data(){return this._userDataWriter.convertObjectMap(this._data)}_fieldsProto(){return new rx({mapValue:{fields:this._data}}).clone().value.mapValue.fields}}class ug{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new lD(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){let e=new um(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){let t=this._document.data.field(ur("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class um extends ug{data(){return super.data()}}function uy(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new U(F.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class uv{}class uw extends uv{}function u_(e,t,...r){let n=[];for(let i of(t instanceof uv&&n.push(t),function(e){let t=e.filter(e=>e instanceof uE).length,r=e.filter(e=>e instanceof ub).length;if(t>1||t>0&&r>0)throw new U(F.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(...)))`.")}(n=n.concat(r)),n))e=i._apply(e);return e}class ub extends uw{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new ub(e,t,r)}_apply(e){let t=this._parse(e);return uB(e._query,t),new lN(e.firestore,e.converter,nr(e._query,t))}_parse(e){let t=l1(e.firestore);return function(e,t,r,n,i,s,a){let o;
23if(i.isKeyField()){if("array-contains"===s||"array-contains-any"===s)throw new U(F.INVALID_ARGUMENT,`Invalid Query. You can't perform '${s}' queries on documentId().`);if("in"===s||"not-in"===s){uV(a,s);let t=[];for(let r of a)t.push(uU(n,e,r));o={arrayValue:{values:t}}}else o=uU(n,e,a)}else"in"!==s&&"not-in"!==s&&"array-contains-any"!==s||uV(a,s),o=l8(r,t,a,"in"===s||"not-in"===s);return rM.create(i,s,o)}(e._query,"where",t,e.firestore._databaseId,this._field,this._op,this._value)}}function uI(e,t,r){let n=ur("where",e);return ub._create(n,t,r)}class uE extends uv{constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new uE(e,t)}_parse(e){let t=this._queryConstraints.map(t=>t._parse(e)).filter(e=>e.getFilters().length>0);return 1===t.length?t[0]:rF.create(t,this._getOperator())}_apply(e){let t=this._parse(e);return 0===t.getFilters().length?e:(function(e,t){let r=e;for(let e of t.getFlattenedFilters())uB(r,e),r=nr(r,e)}(e._query,t),new lN(e.firestore,e.converter,nr(e._query,t)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function uT(...e){return e.forEach(e=>uq("or",e)),uE._create("or",e)}function uS(...e){return e.forEach(e=>uq("and",e)),uE._create("and",e)}class uC extends uw{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new uC(e,t)}_apply(e){var t;let r,n=function(e,t,r){if(null!==e.startAt)throw new U(F.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new U(F.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new rP(t,r)}(e._query,this._field,this._direction);return new lN(e.firestore,e.converter,(t=e._query,r=t.explicitOrderBy.concat([n]),new r5(t.path,t.collectionGroup,r,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)))}}function uA(e,t="asc"){let r=ur("orderBy",e);return uC._create(r,t)}class uk extends uw{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new uk(e,t,r)}_apply(e){return new lN(e.firestore,e.converter,nn(e._query,this._limit,this._limitType))}}function ux(e){return ec("limit",e),uk._create("limit",e,"F")}function uN(e){return ec("limitToLast",e),uk._create("limitToLast",e,"L")}class uD extends uw{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new uD(e,t,r)}_apply(e){var t;let r=uF(e,this.type,this._docOrFields,this._inclusive);return new lN(e.firestore,e.converter,(t=e._query,new r5(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,r,t.endAt)))}}function uR(...e){return uD._create("startAt",e,!0)}function uO(...e){return uD._create("startAfter",e,!1)}class uP extends uw{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new uP(e,t,r)}_apply(e){var t;let r=uF(e,this.type,this._docOrFields,this._inclusive);return new lN(e.firestore,e.converter,(t=e._query,new r5(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,r)))}}function uL(...e){return uP._create("endBefore",e,!1)}function uM(...e){return uP._create("endAt",e,!0)}function uF(e,t,r,n){if(r[0]=(0,m.getModularInstance)(r[0]),r[0]instanceof ug)return function(e,t,r,n,i){if(!n)throw new U(F.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${r}().`);let s=[];for(let r of r9(e))if(r.field.isKeyField())s.push(ry(t,n.key));else{let e=n.data.field(r.field);if(t7(e))throw new U(F.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+r.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){let e=r.field.canonicalString();throw new U(F.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 rD(s,i)}(e._query,e.firestore._databaseId,t,r[0]._document,n);{let i=l1(e.firestore);return function(e,t,r,n,i,s){let a=e.explicitOrderBy;if(i.length>a.length)throw new U(F.INVALID_ARGUMENT,`Too many arguments provided to ${n}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);let o=[];for(let s=0;s<i.length;s++){let l=i[s];
23if(a[s].field.isKeyField()){if("string"!=typeof l)throw new U(F.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${n}(), but got a ${typeof l}`);if(!r7(e)&&-1!==l.indexOf("/"))throw new U(F.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${n}() must be a plain document ID, but '${l}' contains a slash.`);let r=e.path.child(et.fromString(l));if(!ei.isDocumentKey(r))throw new U(F.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${n}() must result in a valid document path, but '${r}' is not because it contains an odd number of segments.`);let i=new ei(r);o.push(ry(t,i))}else{let e=l8(r,n,l);o.push(e)}}return new rD(o,s)}(e._query,e.firestore._databaseId,i,t,r,n)}}function uU(e,t,r){if("string"==typeof(r=(0,m.getModularInstance)(r))){if(""===r)throw new U(F.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!r7(t)&&-1!==r.indexOf("/"))throw new U(F.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);let n=t.path.child(et.fromString(r));if(!ei.isDocumentKey(n))throw new U(F.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`);return ry(e,new ei(n))}if(r instanceof lD)return ry(e,r._key);throw new U(F.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${eu(r)}.`)}function uV(e,t){if(!Array.isArray(e)||0===e.length)throw new U(F.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function uB(e,t){let r=function(e,t){for(let r of e)for(let e of r.getFlattenedFilters())if(t.indexOf(e.op)>=0)return e.op;return null}(e.filters,function(e){switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(t.op));if(null!==r)throw r===t.op?new U(F.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new U(F.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}function uq(e,t){if(!(t instanceof ub||t instanceof uE))throw new U(F.INVALID_ARGUMENT,`Function ${e}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}function uj(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class uz extends uo{constructor(e){super(),this.firestore=e}convertBytes(e){return new l$(e)}convertReference(e){let t=this.convertDocumentKey(e,this.firestore._databaseId);return new lD(this.firestore,null,t)}}function u$(e){return new uf("sum",ur("sum",e))}function uK(e){return new uf("avg",ur("average",e))}function uG(){return new uf("count")}function uH(e,t){return e instanceof uf&&t instanceof uf&&e.aggregateType===t.aggregateType&&e._internalFieldPath?.canonicalString()===t._internalFieldPath?.canonicalString()}function uW(e,t){return lL(e.query,t.query)&&(0,m.deepEqual)(e.data(),t.data())}function uQ(e){return uJ(e,{count:uG()})}function uJ(e,t){var r;let n,i=eh(e.firestore,lB),s=lj(i),a=function(e,t){let r=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.push(t(e[n],n,e));return r}(t,(e,t)=>new nJ(t,e.aggregateType,e._internalFieldPath));return(r=e._query,n=new V,s.asyncQueue.enqueueAndForget(async()=>{try{let e=await lb(s);n.resolve(async function(e,t,r){let{request:n,gt:i,parent:s}=function(e,t,r,n){let{ft:i,parent:s}=iN(e,t),a={},o=[],l=0;return r.forEach(e=>{let t="aggregate_"+l++;a[t]=e.alias,"count"===e.aggregateType?o.push({alias:t,count:{}}):"avg"===e.aggregateType?o.push({alias:t,avg:{field:iR(e.fieldPath)}}):"sum"===e.aggregateType&&o.push({alias:t,sum:{field:iR(e.fieldPath)}})}
23),{request:{structuredAggregationQuery:{aggregations:o,structuredQuery:i.structuredQuery},parent:i.parent},gt:a,parent:s}}(e.serializer,(t.Re||(t.Re=nt(t,t.explicitOrderBy)),t.Re),r);e.connection.Ko||delete n.parent;let a=(await e.jo("RunAggregationQuery",e.serializer.databaseId,s,n,1)).filter(e=>!!e.result);M(1===a.length,64727);let o=a[0].result?.aggregateFields;return Object.keys(o).reduce((e,t)=>(e[i[t]]=o[t],e),{})}(e,r,a))}catch(e){n.reject(e)}}),n.promise).then(t=>new up(e,new ul(i),t))}class uY{constructor(e){this.kind="memory",this._onlineComponentProvider=la.provider,this._offlineComponentProvider=e?.garbageCollector?e.garbageCollector._offlineComponentProvider:{build:()=>new ln(void 0)}}toJSON(){return{kind:this.kind}}}class uX{constructor(e){let t;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),t=e.tabManager):(t=u8(void 0))._initialize(e),this._onlineComponentProvider=t._onlineComponentProvider,this._offlineComponentProvider=t._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class uZ{constructor(){this.kind="memoryEager",this._offlineComponentProvider=lr.provider}toJSON(){return{kind:this.kind}}}class u0{constructor(e){this.kind="memoryLru",this._offlineComponentProvider={build:()=>new ln(e)}}toJSON(){return{kind:this.kind}}}function u1(){return new uZ}function u2(e){return new u0(e?.cacheSizeBytes)}function u6(e){return new uY(e)}function u3(e){return new uX(e)}class u5{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=la.provider,this._offlineComponentProvider={build:t=>new li(t,e?.cacheSizeBytes,this.forceOwnership)}}}class u4{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=la.provider,this._offlineComponentProvider={build:t=>new ls(t,e?.cacheSizeBytes)}}}function u8(e){return new u5(e?.forceOwnership)}function u7(){return new u4}let u9="NOT SUPPORTED";class he{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class ht extends ug{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let t=new hn(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){let r=this._document.data.field(ur("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new U(F.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,t={};return t.type=ht._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),this._firestore,this.ref.path,t.bundle="NOT SUPPORTED"),t}}function hr(e,t,r){if(ef(t,ht._jsonSchema)){var n;if(t.bundle===u9)throw new U(F.INVALID_ARGUMENT,"The provided JSON object was created in a client environment, which is not supported.");let i=aM(e._databaseId),s=(n=t.bundle,new lh(n,i)),a=s.t(),o=new oS(s.getMetadata(),i);for(let e of a)o.o(e);let l=o.documents;if(1!==l.length)throw new U(F.INVALID_ARGUMENT,`Expected bundle data to contain 1 document, but it contains ${l.length} documents.`);let u=iC(i,l[0].document),h=new ei(et.fromString(t.bundleName));return new ht(e,new uz(e),h,u,new he(!1,!1),r||null)}}ht._jsonSchemaVersion="firestore/documentSnapshot/1.0",ht._jsonSchema={type:ed("string",ht._jsonSchemaVersion),bundleSource:ed("string","DocumentSnapshot"),bundleName:ed("string"),bundle:ed("string")};class hn extends ht{data(e={}){return super.data(e)}}class hi{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new he(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let e=[];return this.forEach(t=>e.push(t)),e}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(e,t){this._snapshot.docs.forEach(r=>{e.call(t,new hn(this._firestore,this._userDataWriter,r.key,r,new he(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}
23docChanges(e={}){let t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new U(F.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(e,t){if(e._snapshot.oldDocs.isEmpty()){let t=0;return e._snapshot.docChanges.map(r=>{let n=new hn(e._firestore,e._userDataWriter,r.doc.key,r.doc,new he(e._snapshot.mutatedKeys.has(r.doc.key),e._snapshot.fromCache),e.query.converter);return r.doc,{type:"added",doc:n,oldIndex:-1,newIndex:t++}})}{let r=e._snapshot.oldDocs;return e._snapshot.docChanges.filter(e=>t||3!==e.type).map(t=>{let n=new hn(e._firestore,e._userDataWriter,t.doc.key,t.doc,new he(e._snapshot.mutatedKeys.has(t.doc.key),e._snapshot.fromCache),e.query.converter),i=-1,s=-1;return 0!==t.type&&(i=r.indexOf(t.doc.key),r=r.delete(t.doc.key)),1!==t.type&&(s=(r=r.add(t.doc)).indexOf(t.doc.key)),{type:function(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return P(61501,{type:e})}}(t.type),doc:n,oldIndex:i,newIndex:s}})}}(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new U(F.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=hi._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=W.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),this._firestore,this.query._query,e.bundleName,e.bundle="NOT SUPPORTED",e}}function hs(e,t,r){if(ef(t,hi._jsonSchema)){var n;if(t.bundle===u9)throw new U(F.INVALID_ARGUMENT,"The provided JSON object was created in a client environment, which is not supported.");let i=aM(e._databaseId),s=(n=t.bundle,new lh(n,i)),a=s.t(),o=new oS(s.getMetadata(),i);for(let e of a)o.o(e);if(1!==o.queries.length)throw new U(F.INVALID_ARGUMENT,`Snapshot data expected 1 query but found ${o.queries.length} queries.`);let l=iK(o.queries[0].bundledQuery),u=o.documents,h=new oc;u.map(e=>{let t=iC(i,e.document);h=h.add(t)});let c=of.fromInitialDocuments(l,h,nv(),!1,!1),d=new lN(e,r||null,l);return new hi(e,new uz(e),d,c)}}function ha(e,t){return e instanceof ht&&t instanceof ht?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 hi&&t instanceof hi&&e._firestore===t._firestore&&lL(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}hi._jsonSchemaVersion="firestore/querySnapshot/1.0",hi._jsonSchema={type:ed("string",hi._jsonSchemaVersion),bundleSource:ed("string","QuerySnapshot"),bundleName:ed("string"),bundle:ed("string")};let ho={maxAttempts:5};class hl{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=l1(e)}set(e,t,r){this._verifyNotCommitted();let n=hu(e,this._firestore),i=uj(n.converter,t,r),s=l2(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(s.toMutation(n._key,nP.none())),this}update(e,t,r,...n){let i;this._verifyNotCommitted();let s=hu(e,this._firestore);return i="string"==typeof(t=(0,m.getModularInstance)(t))||t instanceof lK?l4(this._dataReader,"WriteBatch.update",s._key,t,r,n):l5(this._dataReader,"WriteBatch.update",s._key,t),this._mutations.push(i.toMutation(s._key,nP.exists(!0))),this}delete(e){this._verifyNotCommitted();let t=hu(e,this._firestore);return this._mutations=this._mutations.concat(new nK(t._key,nP.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new U(F.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function hu(e,t){if((e=(0,m.getModularInstance)(e)).firestore!==t)throw new U(F.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class hh{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=l1(e)}get(e){let t=hu(e,this._firestore),r=new uz(this._firestore);return this._transaction.lookup([t._key]).then(e=>{if(!e||1!==e.length)return P(24041);let n=e[0];if(n.isFoundDocument())return new ug(this._firestore,r,n.key,n,t.converter);if(n.isNoDocument())return new ug(this._firestore,r,t._key,null,t.converter);throw P(18433,{doc:n})})}set(e,t,r){let n=hu(e,this._firestore),i=uj(n.converter,t,r),s=l2(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,s),this}update(e,t,r,...n){let i,s=hu(e,this._firestore);return i="string"==typeof(t=(0,m.getModularInstance)(t))||t instanceof lK?l4(this._dataReader,"Transaction.update",s._key,t,r,n):l5(this._dataReader,"Transaction.update",s._key,t),this._transaction.update(s._key,i),this}delete(e){let t=hu(e,this._firestore);return this._transaction.delete(t._key),this}}class hc extends hh{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=hu(e,this._firestore),r=new ul(this._firestore);return super.get(e).then(e=>new ht(this._firestore,r,t._key,e._document,new he(!1,!1),t.converter))}}function hd(e,t,r){var n,i;let s;e=eh(e,lB);let a={...ho,...r};if(a.maxAttempts<1)throw new U(F.INVALID_ARGUMENT,"Max attempts must be at least 1");return n=lj(e),i=r=>t(new hc(e,r)),s=new V,n.asyncQueue.enqueueAndForget(async()=>{let e=await lb(n);new ld(n.asyncQueue,e,a,i,s).ju()}),s.promise}function hf(e){e=eh(e,lD);
23let t=eh(e.firestore,lB);return lE(lj(t),e._key).then(r=>hA(t,e,r))}function hp(e){var t;let r;e=eh(e,lD);let n=eh(e.firestore,lB),i=lj(n),s=new ul(n);return(t=e._key,r=new V,i.asyncQueue.enqueueAndForget(async()=>(async function(e,t,r){try{let n=await e.persistence.runTransaction("read document","readonly",r=>e.localDocuments.getDocument(r,t));n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new U(F.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(n){let e=oh(n,`Failed to get document '${t} from cache`);r.reject(e)}})(await lw(i),t,r)),r.promise).then(t=>new ht(n,s,e._key,t,new he(null!==t&&t.hasLocalMutations,!0),e.converter))}function hg(e){e=eh(e,lD);let t=eh(e.firestore,lB);return lE(lj(t),e._key,{source:"server"}).then(r=>hA(t,e,r))}function hm(e){e=eh(e,lN);let t=eh(e.firestore,lB),r=lj(t),n=new ul(t);return uy(e._query),lT(r,e._query).then(r=>new hi(t,n,e,r))}function hy(e){var t;let r;e=eh(e,lN);let n=eh(e.firestore,lB),i=lj(n),s=new ul(n);return(t=e._query,r=new V,i.asyncQueue.enqueueAndForget(async()=>(async function(e,t,r){try{let n=await ar(e,t,!0),i=new ox(t,n.ks),s=i.ru(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(n){let e=oh(n,`Failed to execute query '${t} against cache`);r.reject(e)}})(await lw(i),t,r)),r.promise).then(t=>new hi(n,s,e,t))}function hv(e){e=eh(e,lN);let t=eh(e.firestore,lB),r=lj(t),n=new ul(t);return lT(r,e._query,{source:"server"}).then(r=>new hi(t,n,e,r))}function hw(e,t,r){e=eh(e,lD);let n=eh(e.firestore,lB),i=uj(e.converter,t,r),s=l1(n);return hC(n,[l2(s,"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,nP.none())])}function h_(e,t,r,...n){e=eh(e,lD);let i=eh(e.firestore,lB),s=l1(i);return hC(i,[("string"==typeof(t=(0,m.getModularInstance)(t))||t instanceof lK?l4(s,"updateDoc",e._key,t,r,n):l5(s,"updateDoc",e._key,t)).toMutation(e._key,nP.exists(!0))])}function hb(e){return hC(eh(e.firestore,lB),[new nK(e._key,nP.none())])}function hI(e,t){let r=eh(e.firestore,lB),n=lP(e),i=uj(e.converter,t);return hC(r,[l2(l1(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,nP.exists(!1))]).then(()=>n)}function hE(e,...t){var r;let n,i,s,a,o;e=(0,m.getModularInstance)(e);let l={includeMetadataChanges:!1,source:"default"},u=0;"object"!=typeof t[0]||ud(t[u])||(l=t[u++]);let h={includeMetadataChanges:l.includeMetadataChanges,source:l.source};if(ud(t[u])){let e=t[u];t[u]=e.next?.bind(e),t[u+1]=e.error?.bind(e),t[u+2]=e.complete?.bind(e)}if(e instanceof lD)i=eh(e.firestore,lB),s=r4(e._key.path),n={next:r=>{t[u]&&t[u](hA(i,e,r))},error:t[u+1],complete:t[u+2]};else{let r=eh(e,lN);i=eh(r.firestore,lB),s=r._query;let a=new ul(i);n={next:e=>{t[u]&&t[u](new hi(i,a,r,e))},error:t[u+1],complete:t[u+2]},uy(e._query)}return r=lj(i),o=new oI(s,a=new ll(n),h),r.asyncQueue.enqueueAndForget(async()=>oy(await lI(r),o)),()=>{a.Nu(),r.asyncQueue.enqueueAndForget(async()=>ov(await lI(r),o))}}function hT(e,t,...r){var n,i,s,a,o,l;let u=(0,m.getModularInstance)(e),h=function(e){let t={bundle:"",bundleName:"",bundleSource:""};for(let r of["bundle","bundleName","bundleSource"]){if(!(r in e)){t.error=`snapshotJson missing required field: ${r}`;break}let n=e[r];if("string"!=typeof n){t.error=`snapshotJson field '${r}' must be a string.`;break}if(0===n.length){t.error=`snapshotJson field '${r}' cannot be an empty string.`;break}"bundle"===r?t.bundle=n:"bundleName"===r?t.bundleName=n:"bundleSource"===r&&(t.bundleSource=n)}return t}(t);if(h.error)throw new U(F.INVALID_ARGUMENT,h.error);let c,d=0;if("object"!=typeof r[0]||ud(r[d])||(c=r[d++]),"QuerySnapshot"===h.bundleSource){let e,t,a=null;if("object"==typeof r[d]&&ud(r[d])){let e=r[d++];a={next:e.next,error:e.error,complete:e.complete}}else a={next:r[d++],error:r[d++],complete:r[d++]};return n=c,i=a,s=r[d],t=!1,lz(u,h.bundle).then(()=>{var e,t,r;return e=u,t=h.bundleName,(r=lj(e=eh(e,lB)),r.asyncQueue.enqueue(async()=>{var e;return e=await lw(r),e.persistence.runTransaction("Get named query","readonly",r=>
23e.Pi.getNamedQuery(r,t))})).then(t=>t?new lN(e,null,t.query):null)}).then(r=>{r&&!t&&(s&&r.withConverter(s),e=hE(r,n||{},i))}).catch(e=>(i.error&&i.error(e),()=>{})),()=>{t||(t=!0,e&&e())}}if("DocumentSnapshot"===h.bundleSource){let e,t,n=null;if("object"==typeof r[d]&&ud(r[d])){let e=r[d++];n={next:e.next,error:e.error,complete:e.complete}}else n={next:r[d++],error:r[d++],complete:r[d++]};return a=c,o=n,l=r[d],t=!1,lz(u,h.bundle).then(()=>{t||(e=hE(new lD(u,l||null,ei.fromPath(h.bundleName)),a||{},o))}).catch(e=>(o.error&&o.error(e),()=>{})),()=>{t||(t=!0,e&&e())}}throw new U(F.INVALID_ARGUMENT,`unsupported bundle source: ${h.bundleSource}`)}function hS(e,t){let r,n=lj(e=eh(e,lB));return r=new ll(ud(t)?t:{next:t}),n.asyncQueue.enqueueAndForget(async()=>{var e;return e=await lI(n),void(e.Ca.add(r),r.next())}),()=>{r.Nu(),n.asyncQueue.enqueueAndForget(async()=>{var e;return e=await lI(n),void e.Ca.delete(r)})}}function hC(e,t){var r;let n;return r=lj(e),n=new V,r.asyncQueue.enqueueAndForget(async()=>oB(await l_(r),t,n)),n.promise}function hA(e,t,r){let n=r.docs.get(t._key),i=new ul(e);return new ht(e,i,t._key,n,new he(r.hasPendingWrites,r.fromCache),t.converter)}function hk(e){return lj(e=eh(e,lB)),new hl(e,t=>hC(e,t))}function hx(e,t){let r=lj(e=eh(e,lB));if(!r._uninitializedComponentsProvider||"memory"===r._uninitializedComponentsProvider._offline.kind)return R("Cannot enable indexes when persistence is disabled"),Promise.resolve();let n=function(e){let t="string"==typeof e?function(e){try{return JSON.parse(e)}catch(e){throw new U(F.INVALID_ARGUMENT,"Failed to parse JSON: "+e?.message)}}(e):e,r=[];if(Array.isArray(t.indexes))for(let e of t.indexes){let t=hN(e,"collectionGroup"),n=[];if(Array.isArray(e.fields))for(let t of e.fields){let e=ui("setIndexConfiguration",hN(t,"fieldPath"));"CONTAINS"===t.arrayConfig?n.push(new e_(e,2)):"ASCENDING"===t.order?n.push(new e_(e,0)):"DESCENDING"===t.order&&n.push(new e_(e,1))}r.push(new em(em.UNKNOWN_ID,t,n,eb.empty()))}return r}(t);return r.asyncQueue.enqueue(async()=>(async function(e,t){let r=e.indexManager,n=[];return e.persistence.runTransaction("Configure indexes","readwrite",e=>r.getFieldIndexes(e).next(i=>(function(e,t,r,n,i){t=[...t],(e=[...e]).sort(r),t.sort(r);let s=e.length,a=t.length,o=0,l=0;for(;o<a&&l<s;){let s=r(e[l],t[o]);s<0?i(e[l++]):s>0?n(t[o++]):(o++,l++)}for(;o<a;)n(t[o++]);for(;l<s;)i(e[l++])})(i,t,ew,t=>{n.push(r.addFieldIndex(e,t))},t=>{n.push(r.deleteFieldIndex(e,t))})).next(()=>ex.waitFor(n)))})(await lw(r),n))}function hN(e,t){if("string"!=typeof e[t])throw new U(F.INVALID_ARGUMENT,"Missing string value for: "+t);return e[t]}class hD{constructor(e){this._firestore=e,this.type="PersistentCacheIndexManager"}}function hR(e){e=eh(e,lB);let t=hF.get(e);if(t)return t;let r=lj(e);if("persistent"!==r._uninitializedComponentsProvider?._offline.kind)return null;let n=new hD(e);return hF.set(e,n),n}function hO(e){hM(e,!0)}function hP(e){hM(e,!1)}function hL(e){var t;(t=lj(e._firestore)).asyncQueue.enqueue(async()=>{var e;let r;return r=(e=await lw(t)).indexManager,e.persistence.runTransaction("Delete All Indexes","readwrite",e=>r.deleteAllFieldIndexes(e))}).then(e=>N("deleting all persistent cache indexes succeeded")).catch(e=>R("deleting all persistent cache indexes failed",e))}function hM(e,t){var r;(r=lj(e._firestore),r.asyncQueue.enqueue(async()=>{var e;return e=await lw(r),void(e.Cs.As=t)})).then(e=>N(`setting persistent cache index auto creation isEnabled=${t} succeeded`)).catch(e=>R(`setting persistent cache index auto creation isEnabled=${t} failed`,e))}let hF=new WeakMap;class hU{constructor(){throw Error("instances of this class should not be created")}static onExistenceFilterMismatch(e){return hV.instance.onExistenceFilterMismatch(e)}}class hV{constructor(){this.i=new Map}static get instance(){return hB||function(e){if(n0)throw Error("a TestingHooksSpi instance is already set");n0=e}(hB=new hV),hB}u(e){this.i.forEach(t=>t(e))}onExistenceFilterMismatch(e){let t=Symbol(),r=this.i;return r.set(t,e),()=>r.delete(t)}}let hB=null;!function(e=!0){A=g.SDK_VERSION,(0,g._registerComponent)(new y.Component("firestore",(t,{instanceIdentifier:r,options:n})=>{let i=t.getProvider("app").getImmediate(),s=new lB(new z(t.getProvider("auth-internal")),new H(i,t.getProvider("app-check-internal")),function(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new U(F.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new rn(e.options.projectId,t)}(i,r),i);return n={useFetchStreams:e,...n},s._setSettings(n),s},"PUBLIC").setMultipleInstances(!0)),(0,g.registerVersion)(uh,uc,void 0),(0,g.registerVersion)(uh,uc,"esm2020")}(),e.s(["AggregateField",()=>
23uf,"AggregateQuerySnapshot",()=>up,"DocumentSnapshot",()=>ht,"PersistentCacheIndexManager",()=>hD,"QueryCompositeFilterConstraint",()=>uE,"QueryConstraint",()=>uw,"QueryDocumentSnapshot",()=>hn,"QueryEndAtConstraint",()=>uP,"QueryFieldFilterConstraint",()=>ub,"QueryLimitConstraint",()=>uk,"QueryOrderByConstraint",()=>uC,"QuerySnapshot",()=>hi,"QueryStartAtConstraint",()=>uD,"SnapshotMetadata",()=>he,"Transaction",()=>hc,"WriteBatch",()=>hl,"_TestingHooks",()=>hU,"addDoc",()=>hI,"aggregateFieldEqual",()=>uH,"aggregateQuerySnapshotEqual",()=>uW,"and",()=>uS,"average",()=>uK,"count",()=>uG,"deleteAllPersistentCacheIndexes",()=>hL,"deleteDoc",()=>hb,"disablePersistentCacheIndexAutoCreation",()=>hP,"documentSnapshotFromJSON",()=>hr,"enablePersistentCacheIndexAutoCreation",()=>hO,"endAt",()=>uM,"endBefore",()=>uL,"executeWrite",()=>hC,"getAggregateFromServer",()=>uJ,"getCountFromServer",()=>uQ,"getDoc",()=>hf,"getDocFromCache",()=>hp,"getDocFromServer",()=>hg,"getDocs",()=>hm,"getDocsFromCache",()=>hy,"getDocsFromServer",()=>hv,"getPersistentCacheIndexManager",()=>hR,"limit",()=>ux,"limitToLast",()=>uN,"memoryEagerGarbageCollector",()=>u1,"memoryLocalCache",()=>u6,"memoryLruGarbageCollector",()=>u2,"onSnapshot",()=>hE,"onSnapshotResume",()=>hT,"onSnapshotsInSync",()=>hS,"or",()=>uT,"orderBy",()=>uA,"persistentLocalCache",()=>u3,"persistentMultipleTabManager",()=>u7,"persistentSingleTabManager",()=>u8,"query",()=>u_,"querySnapshotFromJSON",()=>hs,"runTransaction",()=>hd,"setDoc",()=>hw,"setIndexConfiguration",()=>hx,"snapshotEqual",()=>ha,"startAfter",()=>uO,"startAt",()=>uR,"sum",()=>u$,"updateDoc",()=>h_,"where",()=>uI,"writeBatch",()=>
23hk],63802),e.s([],36180),e.i(63802),e.s(["Timestamp",()=>ep,"addDoc",()=>hI,"collection",()=>lO,"deleteDoc",()=>hb,"doc",()=>lP,"getDocs",()=>hm,"getFirestore",()=>lq,"onSnapshot",()=>hE,"orderBy",()=>uA,"query",()=>u_,"runTransaction",()=>hd,"serverTimestamp",()=>uu,"setDoc",()=>hw,"updateDoc",()=>h_,"where",()=>uI],98925)},61086,27215,e=>{"use strict";var t,r,n,i,s=e.i(92953),a=e.i(97427),o=e.i(8070);let l="firebasestorage.googleapis.com",u="storageBucket";class h extends a.FirebaseError{constructor(e,t,r=0){super(c(e),`Firebase Storage: ${t} (${c(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,h.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return c(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage} 24${this.customData.serverResponse}`:this.message=this._baseMessage}}function c(e){return"storage/"+e}function d(){return new h(n.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function f(e){return new h(n.INVALID_ARGUMENT,e)}function p(){return new h(n.APP_DELETED,"The Firebase app was deleted.")}function g(e,t){return new h(n.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function m(e){throw new h(n.INTERNAL_ERROR,"Internal error: "+e)}(t=n||(n={})).UNKNOWN="unknown",t.OBJECT_NOT_FOUND="object-not-found",t.BUCKET_NOT_FOUND="bucket-not-found",t.PROJECT_NOT_FOUND="project-not-found",t.QUOTA_EXCEEDED="quota-exceeded",t.UNAUTHENTICATED="unauthenticated",t.UNAUTHORIZED="unauthorized",t.UNAUTHORIZED_APP="unauthorized-app",t.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",t.INVALID_CHECKSUM="invalid-checksum",t.CANCELED="canceled",t.INVALID_EVENT_NAME="invalid-event-name",t.INVALID_URL="invalid-url",t.INVALID_DEFAULT_BUCKET="invalid-default-bucket",t.NO_DEFAULT_BUCKET="no-default-bucket",t.CANNOT_SLICE_BLOB="cannot-slice-blob",t.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",t.NO_DOWNLOAD_URL="no-download-url",t.INVALID_ARGUMENT="invalid-argument",t.INVALID_ARGUMENT_COUNT="invalid-argument-count",t.APP_DELETED="app-deleted",t.INVALID_ROOT_OPERATION="invalid-root-operation",t.INVALID_FORMAT="invalid-format",t.INTERNAL_ERROR="internal-error",t.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class y{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){let e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(e,t){let r;try{r=y.makeFromUrl(e,t)}catch(t){return new y(e,"")}if(""===r.path)return r;throw new h(n.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null,i="([A-Za-z0-9.\\-_]+)",s=RegExp("^gs://"+i+"(/(.*))?$","i");function a(e){e.path_=decodeURIComponent(e.path)}let o=t.replace(/[.]/g,"\\."),u=RegExp(`^https?://${o}/v[A-Za-z0-9_]+/b/${i}/o(/([^?#]*).*)?$`,"i"),c=t===l?"(?:storage.googleapis.com|storage.cloud.google.com)":t,d=[{regex:s,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:u,indices:{bucket:1,path:3},postModify:a},{regex:RegExp(`^https?://${c}/${i}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:a}];for(let t=0;t<d.length;t++){let n=d[t],i=n.regex.exec(e);if(i){let e=i[n.indices.bucket],t=i[n.indices.path];t||(t=""),r=new y(e,t),n.postModify(r);break}}if(null==r)throw new h(n.INVALID_URL,"Invalid URL '"+e+"'.");return r}}class v{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=!1){}}function w(e){return"string"==typeof e||e instanceof String}function _(e){return b()&&e instanceof Blob}function b(){return"u">typeof Blob}function I(e,t,r,n){if(n<t)throw f(`Invalid value for '${e}'. Expected ${t} or greater.`);if(n>r)throw f(`Invalid value for '${e}'. Expected ${r} or less.`)}function E(e,t,r){let n=t;return null==r&&(n=`https://${t}`),`${r}://${n}/v0${e}`}function T(e){let t=encodeURIComponent,r="?";for(let n in e)e.hasOwnProperty(n)&&(r=r+(t(n)+"=")+t(e[n])+"&");return r.slice(0,-1)}(r=i||(i={}
24))[r.NO_ERROR=0]="NO_ERROR",r[r.NETWORK_ERROR=1]="NETWORK_ERROR",r[r.ABORT=2]="ABORT";class S{constructor(e,t,r,n,i,s,a,o,l,u,h,c=!0,d=!1){this.url_=e,this.method_=t,this.headers_=r,this.body_=n,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=l,this.progressCallback_=u,this.connectionFactory_=h,this.retry=c,this.isUsingEmulator=d,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_(){let e=(e,t)=>{if(t)return void e(!1,new C(!1,null,!0));let r=this.connectionFactory_();this.pendingConnection_=r;let n=e=>{let t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)};null!==this.progressCallback_&&r.addUploadProgressListener(n),r.send(this.url_,this.method_,this.isUsingEmulator,this.body_,this.headers_).then(()=>{var t;let s,a,o;null!==this.progressCallback_&&r.removeUploadProgressListener(n),this.pendingConnection_=null;let l=r.getErrorCode()===i.NO_ERROR,u=r.getStatus();!l||(t=this.additionalRetryCodes_,s=u>=500&&u<600,a=-1!==[408,429].indexOf(u),o=-1!==t.indexOf(u),(s||a||o)&&this.retry)?e(!1,new C(!1,null,r.getErrorCode()===i.ABORT)):e(!0,new C(-1!==this.successCodes_.indexOf(u),r))})},t=(e,t)=>{let r=this.resolve_,i=this.reject_,s=t.connection;if(t.wasSuccessCode)try{let e=this.callback_(s,s.getResponse());void 0!==e?r(e):r()}catch(e){i(e)}else if(null!==s){let e=d();e.serverResponse=s.getErrorText(),i(this.errorCallback_?this.errorCallback_(s,e):e)}else i(t.canceled?this.appDelete_?p():new h(n.CANCELED,"User canceled the upload/download."):new h(n.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again."))};this.canceled_?t(!1,new C(!1,null,!0)):this.backoffId_=function(e,t,r){let n=1,i=null,s=null,a=!1,o=0,l=!1;function u(...e){l||(l=!0,t.apply(null,e))}function h(t){i=setTimeout(()=>{i=null,e(d,2===o)},t)}function c(){s&&clearTimeout(s)}function d(e,...t){let r;if(l)return void c();if(e||2===o||a){c(),u.call(null,e,...t);return}n<64&&(n*=2),1===o?(o=2,r=0):r=(n+Math.random())*1e3,h(r)}let f=!1;function p(e){f||(f=!0,c(),!l&&(null!==i?(e||(o=2),clearTimeout(i),h(0)):e||(o=1)))}return h(0),s=setTimeout(()=>{a=!0,p(!0)},r),p}(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 C{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function A(...e){let t="u">typeof BlobBuilder?BlobBuilder:"u">typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==t){let r=new t;for(let t=0;t<e.length;t++)r.append(e[t]);return r.getBlob()}if(b())return new Blob(e);throw new h(n.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}let k="base64",x="base64url",N="data_url";class D{constructor(e,t){this.data=e,this.contentType=t||null}}function R(e){let t=[];for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);n<=127?t.push(n):n<=2047?t.push(192|n>>6,128|63&n):(64512&n)==55296?r<e.length-1&&(64512&e.charCodeAt(r+1))==56320?(n=65536|(1023&n)<<10|1023&e.charCodeAt(++r),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n)):t.push(239,191,189):(64512&n)==56320?t.push(239,191,189):t.push(224|n>>12,128|n>>6&63,128|63&n)}return new Uint8Array(t)}function O(e,t){let r;switch(e){case k:{let r=-1!==t.indexOf("-"),n=-1!==t.indexOf("_");if(r||n)throw g(e,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break}case x:{let r=-1!==t.indexOf("+"),n=-1!==t.indexOf("/");if(r||n)throw g(e,"Invalid character '"+(r?"+":"/")+"' found: is it base64 encoded?");t=t.replace(/-/g,"+").replace(/_/g,"/")}}try{r=function(e){if("u"<typeof atob)throw new h(n.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)}(t)}
24catch(t){if(t.message.includes("polyfill"))throw t;throw g(e,"Invalid character found")}let i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);return i}class P{constructor(e){this.base64=!1,this.contentType=null;const t=e.match(/^data:([^,]+)?,/);if(null===t)throw g(N,"Must be formatted 'data:[<mediatype>][;base64],<data>");const r=t[1]||null;null!=r&&(this.base64=function(e,t){return e.length>=t.length&&e.substring(e.length-t.length)===t}(r,";base64"),this.contentType=this.base64?r.substring(0,r.length-7):r),this.rest=e.substring(e.indexOf(",")+1)}}class L{constructor(e,t){let r=0,n="";_(e)?(this.data_=e,r=e.size,n=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=n}size(){return this.size_}type(){return this.type_}slice(e,t){if(!_(this.data_))return new L(new Uint8Array(this.data_.buffer,e,t-e),!0);{var r,n,i;let s=(r=this.data_,n=e,i=t,r.webkitSlice?r.webkitSlice(n,i):r.mozSlice?r.mozSlice(n,i):r.slice?r.slice(n,i):null);return null===s?null:new L(s)}}static getBlob(...e){if(b()){let t=e.map(e=>e instanceof L?e.data_:e);return new L(A.apply(null,t))}{let t=e.map(e=>w(e)?function(e,t){return new D(R(t))}("raw",e).data:e.data_),r=0;t.forEach(e=>{r+=e.byteLength});let n=new Uint8Array(r),i=0;return t.forEach(e=>{for(let t=0;t<e.length;t++)n[i++]=e[t]}),new L(n,!0)}}uploadData(){return this.data_}}function M(e){var t;let r;try{r=JSON.parse(e)}catch(e){return null}return"object"!=typeof(t=r)||Array.isArray(t)?null:r}function F(e){let t=e.lastIndexOf("/",e.length-2);return -1===t?e:e.slice(t+1)}function U(e,t){return t}class V{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||U}}let B=null;function q(){if(B)return B;let e=[];e.push(new V("bucket")),e.push(new V("generation")),e.push(new V("metageneration")),e.push(new V("name","fullPath",!0));let t=new V("name");t.xform=function(e,t){return!w(t)||t.length<2?t:F(t)},e.push(t);let r=new V("size");return r.xform=function(e,t){return void 0!==t?Number(t):t},e.push(r),e.push(new V("timeCreated")),e.push(new V("updated")),e.push(new V("md5Hash",null,!0)),e.push(new V("cacheControl",null,!0)),e.push(new V("contentDisposition",null,!0)),e.push(new V("contentEncoding",null,!0)),e.push(new V("contentLanguage",null,!0)),e.push(new V("contentType",null,!0)),e.push(new V("metadata","customMetadata",!0)),B=e}function j(e,t,r){let n=M(t);return null===n?null:function(e,t,r){let n={};n.type="file";let i=r.length;for(let e=0;e<i;e++){let i=r[e];n[i.local]=i.xform(n,t[i.server])}return Object.defineProperty(n,"ref",{get:function(){let t=new y(n.bucket,n.fullPath);return e._makeStorageReference(t)}}),n}(e,n,r)}let z="prefixes",$="items";class K{constructor(e,t,r,n){this.url=e,this.method=t,this.handler=r,this.timeout=n,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function G(e){if(!e)throw d()}function H(e,t){return function(r,n){let i=j(e,n,t);return G(null!==i),i}}function W(e){return function(t,r){var i,s;let a;return 401===t.getStatus()?a=t.getErrorText().includes("Firebase App Check token is invalid")?new h(n.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new h(n.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===t.getStatus()?(i=e.bucket,a=new h(n.QUOTA_EXCEEDED,"Quota for bucket '"+i+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===t.getStatus()?(s=e.path,a=new h(n.UNAUTHORIZED,"User does not have permission to access '"+s+"'.")):a=r,a.status=t.getStatus(),a.serverResponse=r.serverResponse,a}}function Q(e){let t=W(e);return function(r,i){var s;let a=t(r,i);return 404===r.getStatus()&&(s=e.path,a=new h(n.OBJECT_NOT_FOUND,"Object '"+s+"' does not exist.")),a.serverResponse=i.serverResponse,a}}class J{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=i.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=i.ABORT,e()}),this.xhr_.addEventListener("error",()=>
24{this.errorCode_=i.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw m("cannot .send() more than once");if((0,a.isCloudWorkstation)(e)&&r&&(this.xhr_.withCredentials=!0),this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==i)for(let e in i)i.hasOwnProperty(e)&&this.xhr_.setRequestHeader(e,i[e].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw m("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw m("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return -1}}getResponse(){if(!this.sent_)throw m("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw m("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)}}class Y extends J{initXhr(){this.xhr_.responseType="text"}}function X(){return new Y}class Z{constructor(e,t){this._service=e,t instanceof y?this._location=t:this._location=y.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new Z(e,t)}get root(){let e=new y(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return F(this._location.path)}get storage(){return this._service}get parent(){let e=function(e){if(0===e.length)return null;let t=e.lastIndexOf("/");return -1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;let t=new y(this._location.bucket,e);return new Z(this._service,t)}_throwIfRoot(e){if(""===this._location.path)throw new h(n.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').")}}async function ee(e,t,r){let n=await function(e,t){var r,n,i,s,a;let o,l,u,h;null!=t&&"number"==typeof t.maxResults&&I("options.maxResults",1,1e3,t.maxResults);let c=t||{},d=(r=e.storage,n=e._location,i=c.pageToken,s=c.maxResults,o={},n.isRoot?o.prefix="":o.prefix=n.path+"/",o.delimiter="/",i&&(o.pageToken=i),s&&(o.maxResults=s),l=E(n.bucketOnlyServerUrl(),r.host,r._protocol),u=r.maxOperationRetryTime,(h=new K(l,"GET",(a=n.bucket,function(e,t){let n=function(e,t,r){let n=M(r);if(null===n)return null;let i={prefixes:[],items:[],nextPageToken:n.nextPageToken};if(n[z])for(let r of n[z]){let n=r.replace(/\/$/,""),s=e._makeStorageReference(new y(t,n));i.prefixes.push(s)}if(n[$])for(let r of n[$]){let n=e._makeStorageReference(new y(t,r.name));i.items.push(n)}return i}(r,a,t);return G(null!==n),n}),u)).urlParams=o,h.errorHandler=W(n),h);return e.storage.makeRequestWithTokens(d,X)}(e,{pageToken:r});t.prefixes.push(...n.prefixes),t.items.push(...n.items),null!=n.nextPageToken&&await ee(e,t,n.nextPageToken)}function et(e,t){let r=t?.[u];return null==r?null:y.makeFromBucketSpec(r,e)}class er{constructor(e,t,r,n,i,s=!1){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=n,this._firebaseVersion=i,this._isUsingEmulator=s,this._bucket=null,this._host=l,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,null!=n?this._bucket=y.makeFromBucketSpec(n,this._host):this._bucket=et(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=y.makeFromBucketSpec(this._url,e):this._bucket=et(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){I("time",0,1/0,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){I("time",0,1/0,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;let e=this._authProvider.getImmediate({optional:!0});if(e){let t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){if((0,s._isFirebaseServerApp)(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=this._appCheckProvider.getImmediate({optional:!0});
24return 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 Z(this,e)}_makeRequest(e,t,r,n,i=!0){if(this._deleted)return new v(p());{let s=function(e,t,r,n,i,s,a=!0,o=!1){let l=T(e.urlParams),u=e.url+l,h=Object.assign({},e.headers);return t&&(h["X-Firebase-GMPID"]=t),null!==r&&r.length>0&&(h.Authorization="Firebase "+r),h["X-Firebase-Storage-Version"]="webjs/"+(s??"AppManager"),null!==n&&(h["X-Firebase-AppCheck"]=n),new S(u,e.method,h,e.body,e.successCodes,e.additionalRetryCodes,e.handler,e.errorHandler,e.timeout,e.progressCallback,i,a,o)}(e,this._appId,r,n,t,this._firebaseVersion,i,this._isUsingEmulator);return this._requests.add(s),s.getPromise().then(()=>this._requests.delete(s),()=>this._requests.delete(s)),s}}async makeRequestWithTokens(e,t){let[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let en="@firebase/storage",ei="0.14.0",es="storage";function ea(e,t,r){var i;let s;return i=e=(0,a.getModularInstance)(e),i._throwIfRoot("uploadBytes"),s=function(e,t,r,i,s){let a,o=t.bucketOnlyServerUrl(),l={"X-Goog-Upload-Protocol":"multipart"},u=function(){let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e}();l["Content-Type"]="multipart/related; boundary="+u;let c=((a=Object.assign({},s)).fullPath=t.path,a.size=i.size(),a.contentType||(a.contentType=i&&i.type()||"application/octet-stream"),a),d="--"+u+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+function(e,t){let r={},n=t.length;for(let i=0;i<n;i++){let n=t[i];n.writable&&(r[n.server]=e[n.local])}return JSON.stringify(r)}(c,r)+"\r\n--"+u+"\r\nContent-Type: "+c.contentType+"\r\n\r\n",f=L.getBlob(d,i,"\r\n--"+u+"--");if(null===f)throw new h(n.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.");let p={name:c.fullPath},g=E(o,e.host,e._protocol),m=e.maxUploadRetryTime,y=new K(g,"POST",H(e,r),m);return y.urlParams=p,y.headers=l,y.body=f.uploadData(),y.errorHandler=W(t),y}(i.storage,i._location,q(),new L(t,!0),r),i.storage.makeRequestWithTokens(s,X).then(e=>({metadata:e,ref:i}))}function eo(e){var t,r,n,i;let s,o,l,u;return(t=e=(0,a.getModularInstance)(e))._throwIfRoot("getMetadata"),r=t.storage,n=t._location,i=q(),s=E(n.fullServerUrl(),r.host,r._protocol),o=r.maxOperationRetryTime,(l=new K(s,"GET",H(r,i),o)).errorHandler=Q(n),u=l,t.storage.makeRequestWithTokens(u,X)}function el(e){let t;return t={prefixes:[],items:[]},ee(e=(0,a.getModularInstance)(e),t).then(()=>t)}function eu(e){var t,r,i,s;let o,l,u,c;return(t=e=(0,a.getModularInstance)(e))._throwIfRoot("getDownloadURL"),r=t.storage,i=t._location,s=q(),o=E(i.fullServerUrl(),r.host,r._protocol),l=r.maxOperationRetryTime,(u=new K(o,"GET",function(e,t){let n=j(r,t,s);return G(null!==n),function(e,t,r,n){let i=M(t);if(null===i||!w(i.downloadTokens))return null;let s=i.downloadTokens;if(0===s.length)return null;let a=encodeURIComponent;return s.split(",").map(t=>{let i=e.bucket,s=e.fullPath;return E("/b/"+a(i)+"/o/"+a(s),r,n)+T({alt:"media",token:t})})[0]}(n,t,r.host,r._protocol)},l)).errorHandler=Q(i),c=u,t.storage.makeRequestWithTokens(c,X).then(e=>{if(null===e)throw new h(n.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function eh(e){var t,r,n;let i,s;return(t=e=(0,a.getModularInstance)(e))._throwIfRoot("deleteObject"),r=t.storage,(i=new K(E((n=t._location).fullServerUrl(),r.host,r._protocol),"DELETE",function(e,t){},r.maxOperationRetryTime)).successCodes=[200,204],i.errorHandler=Q(n),s=i,t.storage.makeRequestWithTokens(s,X)}function ec(e,t){var r=e=(0,a.getModularInstance)(e);if(!(t&&/^[A-Za-z]+:\/\//.test(t)))return function e(t,r){var i;let s,a,o;if(t instanceof er){if(null==t._bucket)throw new h(n.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+u+"' property when initializing the app?");let i=new Z(t,t._bucket);return null!=r?e(i,r):i}if(void 0===r)return t;return i=t._location.path,s=r.split("/").filter(e=>e.length>0).join("/"),a=0===i.length?s:i+"/"+s,o=new y(t._location.bucket,a),new Z(t.storage,o)}(r,t);if(r instanceof er)return new Z(r,t);throw f("To use ref(service, url), the first argument must be a Storage instance.")}function ed(e=(0,s.getApp)(),t){e=(0,a.getModularInstance)(e);let r=(0,s._getProvider)(e,es).getImmediate({identifier:t}),n=(0,a.getDefaultEmulatorHostnameAndPort)("storage");return n&&function(e,t,r,n={}){!function(e,t,r,n={}){e.host=`${t}:${r}`;let i=(0,a.isCloudWorkstation)(t);i&&((0,a.pingServer)(`https://${e.host}/b`),(0,a.updateEmulatorBanner)("Storage",!0)),e._isUsingEmulator=!0,e._protocol=i?"https":"http";let{mockUserToken:s}=n;s&&(e._overrideAuthToken="string"==typeof s?s:(0,a.createMockUserToken)(s,e.app.options.projectId))}(e,t,r,n)}(r,...n),r}(0,s._registerComponent)(new o.Component(es,function(e,{instanceIdentifier:t}){return new er(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t,s.SDK_VERSION)},"PUBLIC").setMultipleInstances(!0)),(0,s.registerVersion)(en,ei,""),(0,s.registerVersion)(en,ei,"esm2020"),e.s(["deleteObject",()=>eh,"getDownloadURL",()=>eu,"getMetadata",()=>eo,"getStorage",()=>ed,"listAll",()=>el,"ref",()=>ec,"uploadBytes",()=>ea],27215),e.s([],61086)},2594,59141,e=>{"use strict";let t,r,n,i;var s=e.i(43476),a=e.i(71645);e.i(51718);var o=e.i(18357);e.i(47167),e.i(14539);var l=e.i(76510);e.i(36180);var u=e.i(98925);e.i(61086);var h=e.i(27215);let c={apiKey:"AIzaSyBhCGw_G8GhyP2qUs6RovTrQ9hWd7mPTuU",authDomain:"vernal-ce
24ntaur-474517-q3.firebaseapp.com",projectId:"vernal-centaur-474517-q3",storageBucket:"vernal-centaur-474517-q3.firebasestorage.app",messagingSenderId:"578273208011",appId:"1:578273208011:ios:296dde87938933ae6a1d4e"};function d(){return t||(t=0===(0,l.getApps)().length?(0,l.initializeApp)(c):(0,l.getApps)()[0]),t}function f(){return r||(r=(0,u.getFirestore)(d())),r}function p(){return n||(n=(0,h.getStorage)(d())),n}function g(){return i||(i=(0,o.getAuth)(d())),i}let m=new o.GoogleAuthProvider;e.s(["getAuthInstance",()=>g,"getDb",()=>f,"getStorageInstance",()=>p,"googleProvider",0,m],59141);let y=(0,a.createContext)(void 0);function v({children:e}){let t=function(){let[e,t]=(0,a.useState)(null),[r,n]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=g(),r=(0,o.onAuthStateChanged)(e,e=>{t(e),n(!1)});return()=>r()},[]);let i=(0,a.useCallback)(async()=>{try{let e=g();await (0,o.signInWithPopup)(e,m)}catch(e){throw console.error("Error signing in with Google:",e),e}},[]),s=(0,a.useCallback)(async()=>{try{let e=g();await (0,o.signOut)(e)}catch(e){throw console.error("Error signing out:",e),e}},[]),l=(0,a.useCallback)(async(t=!1)=>{if(!e)return null;try{return await e.getIdToken(t)}catch(e){return console.error("Error getting ID token:",e),null}},[e]);return{user:e,loading:r,isAuthenticated:!!e&&!e.isAnonymous,signInWithGoogle:i,signOut:s,getIdToken:l}}();return(0,s.jsx)(y.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(y);if(void 0===e)throw Error("useAuthContext must be used within an AuthProvider");return e}e.s(["AuthProvider",()=>v,"useAuthContext",()=>w],2594)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.