From 8eff962cab608341a6f2fedc640a0e32d96f26e2 Mon Sep 17 00:00:00 2001 From: altaf-creator Date: Sun, 9 Nov 2025 11:15:19 +0800 Subject: pain --- .../firebase/firebase-firestore-compat.js | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 frontend-old/node_modules/firebase/firebase-firestore-compat.js (limited to 'frontend-old/node_modules/firebase/firebase-firestore-compat.js') diff --git a/frontend-old/node_modules/firebase/firebase-firestore-compat.js b/frontend-old/node_modules/firebase/firebase-firestore-compat.js new file mode 100644 index 0000000..4a86616 --- /dev/null +++ b/frontend-old/node_modules/firebase/firebase-firestore-compat.js @@ -0,0 +1,23 @@ +((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Wd,Yd){try{!(function(){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let s=i(Wd),a=()=>{},u=function(t){var r=[];let n=0;for(let i=0;i>6|192:(55296==(64512&e)&&i+1>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},B={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let h=0;h>6,t=63&l;u||(t=64,a)||(e=64),i.push(n[s>>2],n[(3&s)<<4|o>>4],n[e],n[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(u(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e>10)),s[t++]=String.fromCharCode(56320+(1023&a))):(o=i[e++],u=i[e++],s[t++]=String.fromCharCode((15&l)<<12|(63&o)<<6|63&u))}return s.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let u=0;u>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class q extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let j=function(e){var t=u(e);return B.encodeByteArray(t,!0)},z=function(e){return j(e).replace(/\./g,"")},G=function(e){try{return B.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function K(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}let Q=()=>K().__FIREBASE_DEFAULTS__,$=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},H=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&G(e[1]);return t&&JSON.parse(t)}},W=()=>{try{return a()||Q()||$()||H()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}};function Y(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}let J={};let X=!1;function Z(e,t){if("undefined"!=typeof window&&"undefined"!=typeof document&&Y(window.location.host)&&J[e]!==t&&!J[e]&&!X){J[e]=t;let l="__firebase__banner";let h=0<(()=>{var e,t={prod:[],emulator:[]};for(e of Object.keys(J))(J[e]?t.emulator:t.prod).push(e);return t})().prod.length;function c(e){return"__firebase__banner__"+e}function d(){var e=document.createElement("span");return e.style.cursor="pointer",e.style.marginLeft="16px",e.style.fontSize="24px",e.innerHTML=" ×",e.onclick=()=>{var e;X=!0,(e=document.getElementById(l))&&e.remove()},e}function r(){var e,t,r=(e=>{let t=document.getElementById(e),r=!1;return t||((t=document.createElement("div")).setAttribute("id",e),r=!0),{created:r,element:t}})(l),n=c("text"),i=document.getElementById(n)||document.createElement("span"),s=c("learnmore"),a=document.getElementById(s)||document.createElement("a"),o=c("preprendIcon"),u=document.getElementById(o)||document.createElementNS("http://www.w3.org/2000/svg","svg");r.created&&(r=r.element,(t=r).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",(t=a).setAttribute("id",s),t.innerText="Learn more",t.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",t.setAttribute("target","__blank"),t.style.paddingLeft="5px",t.style.textDecoration="underline",s=d(),t=o,(e=u).setAttribute("width","24"),e.setAttribute("id",t),e.setAttribute("height","24"),e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("fill","none"),e.style.marginLeft="-6px",r.append(u,i,a,s),document.body.appendChild(r)),h?(i.innerText="Preview backend disconnected.",u.innerHTML=` + + + + + + +`):(u.innerHTML=` + + + + + + +`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ee(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function te(){var e=W()?.forceEnvironment;if("node"===e)return 1;if("browser"!==e)try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){}}function re(){return!te()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ne(){return!te()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}class ie extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ie.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,se.prototype.create)}}class se{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(ae,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ie(i,s,r)}}let ae=/\{\$([^}]+)}/g;function oe(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(ue(a)&&ue(o)){if(!oe(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function ue(e){return null!==e&&"object"==typeof e}function _(e){return e&&e._delegate?e._delegate:e}class le{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}}var c;(n=c=c||{})[n.DEBUG=0]="DEBUG",n[n.VERBOSE=1]="VERBOSE",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.SILENT=5]="SILENT";let he={debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT},ce=c.INFO,de={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},fe=(e,t,...r)=>{if(!(t>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295,e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function u(e,t){this.h=t;var r=[];let n=!0;for(let s=e.length-1;0<=s;s--){var i=0|e[s];n&&i==t||(r[s]=i,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.F=s.prototype,t.prototype=new n,(t.prototype.constructor=t).D=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i>>e&255;return t};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new u([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new u([0|e],e<0?-1:0);var t,r,n}function l(e){if(isNaN(e)||!isFinite(e))return h;if(e<0)return m(l(-e));var t=[];let r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=4294967296;return new u(t,0)}var h=o(0),c=o(1),d=o(16777216);function f(t){if(0==t.h){for(let e=0;e>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function w(e,t){if(f(t))throw Error("division by zero");if(f(e))return new v(h,h);if(g(e))return t=w(m(e),t),new v(m(t.g),m(t.h));if(g(t))return t=w(e,m(t)),new v(m(t.g),t.h);if(30>>31;return new u(r,e.h)}function b(e,t){var r=t>>5,n=(t%=32,e.g.length-r),i=[];for(let s=0;s>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new u(i,e.h)}(e=u.prototype).m=function(){if(g(this))return-m(this).m();let e=0,t=1;for(let n=0;n>>0).toString(t);if(f(n=s))return e+i;for(;e.length<6;)e="0"+e;i=e+i}},e.i=function(e){return e<0?0:e>>16)+(this.i(a)>>>16)+(e.i(a)>>>16);n=s>>>16,i&=65535,s&=65535,r[a]=s<<16|i}return new u(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(t){if(f(this)||f(t))return h;if(g(this))return g(t)?m(this).j(m(t)):m(m(this).j(t));if(g(t))return m(this.j(m(t)));if(this.l(d)<0&&t.l(d)<0)return l(this.m()*t.m());for(var e=this.g.length+t.g.length,r=[],n=0;n<2*e;n++)r[n]=0;for(n=0;n>>16,s=65535&this.i(n),a=t.i(e)>>>16,o=65535&t.i(e);r[2*n+2*e]+=s*o,y(r,2*n+2*e),r[2*n+2*e+1]+=i*o,y(r,2*n+2*e+1),r[2*n+2*e+1]+=s*a,y(r,2*n+2*e+1),r[2*n+2*e+2]+=i*a,y(r,2*n+2*e+2)}for(t=0;t{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof gr&&gr];for(var t=0;te&&AsyncContext.Snapshot.wrap(e):e=>e;function z(t){var r=t.length;if(0new Q,e=>e.reset());class Q{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 r,n=!1,$=new class{constructor(){this.h=this.g=null}add(e,t){var r=K.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},H=()=>{let e=Promise.resolve(void 0);r=()=>{e.then(W)}};function W(){for(var e;e=(()=>{let e=$,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{D.setTimeout(()=>{throw e},0)})(e)}var t=K;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}n=!1}function i(){this.u=this.u,this.C=this.C}function o(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}i.prototype.u=!1,i.prototype.dispose=function(){this.u||(this.u=!0,this.N())},i.prototype[Symbol.dispose]=function(){this.dispose()},i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},o.prototype.h=function(){this.defaultPrevented=!0};var Y=(()=>{if(!D.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};D.addEventListener("test",r,t),D.removeEventListener("test",r,t)}catch(e){}return e})();function N(e){return/^[\s\xa0]*$/.test(e)}function s(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)}t(s,o),s.prototype.init=function(e,t){var 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).defaultPrevented&&s.Z.h.call(this)},s.prototype.h=function(){s.Z.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var u="closure_listenable_"+(1e6*Math.random()|0),J=0;function X(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=++J,this.da=this.fa=!1}function Z(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function ee(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function te(e){var t,r={};for(t in e)r[t]=e[t];return r}let re="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function ne(t){let r,n;for(let i=1;i{let r=fe;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=Y?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(de(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ce(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[u]?se(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(de(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ge(t))?(se(r,e),0==r.h&&(r.src=null,t[oe]=null)):Z(e)))}function de(e){return e in ue?ue[e]:ue[e]="on"+e}function fe(e,t){var r,n;return e=!!e.da||(t=new s(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ce(e),r.call(n,t))}function ge(e){return(e=e[oe])instanceof ie?e:null}var me="__closure_events_fn_"+(1e9*Math.random()>>>0);function pe(t){return"function"==typeof t?t:(t[me]||(t[me]=function(e){return t.handleEvent(e)}),t[me])}function a(){i.call(this),this.i=new ie(this),(this.M=this).G=null}function l(e,t){var r,n,i=e.G;if(i)for(r=[];i;i=i.G)r.push(i);e=e.M,i=t.type||t,"string"==typeof t?t=new o(t,e):t instanceof o?t.target=t.target||e:(n=t,ne(t=new o(i,e),n)),n=!0;let s,a;if(r)for(a=r.length-1;0<=a;a--)n=ye(s=t.g=r[a],i,!0,t)&&n;if(n=ye(s=t.g=e,i,!0,t)&&n,n=ye(s,i,!1,t)&&n,r)for(a=0;a{if("function"!=typeof e){if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=y(e.handleEvent,e)}return 2147483647{e.g=null,e.i&&(e.i=!1,ve(e))},e.l);var t=e.h;e.h=null,e.m.apply(null,t)}t(a,i),a.prototype[u]=!0,a.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e{if(!Ke(e))return e.g.la();var t=Pt(e.g);if(""===t)return"";let r="",n=t.length,i=4==L(e.g);if(!e.h.i){if("undefined"==typeof TextDecoder)return O(e),M(e),"";e.h.i=new D.TextDecoder}for(let s=0;sw.length?je:(w=w.slice(b,b+_),v.C=b+_,w)))==je){4==t&&(this.m=4,k(14),e=!1),R(this.i,this.l,null,"[Incomplete Response]");break}if(n==qe){this.m=4,k(15),R(this.i,this.l,a,"[Invalid Chunk]"),e=!1;break}R(this.i,this.l,n,null),We(this,n)}Ke(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=a.length||this.h.h||(this.m=1,k(16),e=!1),this.o=this.o&&e,e?0{for(var t=1,r=(e=e.split(":"),[]);0=e.j}function Ze(e){return e.h?1:e.g?e.g.size:0}function et(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function tt(e,t){e.g?e.g.add(t):e.h=t}function rt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function nt(t){if(null!=t.h)return t.i.concat(t.h.G);if(null==t.g||0===t.g.size)return z(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.G);return e}}Je.prototype.cancel=function(){if(this.i=nt(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var it=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function p(e){this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1;let t;e instanceof p?(this.l=e.l,_(this,e.j),this.o=e.o,this.g=e.g,st(this,e.u),this.h=e.h,at(this,bt(e.i)),this.m=e.m):e&&(t=String(e).match(it))?(this.l=!1,_(this,t[1]||"",!0),this.o=ut(t[2]||""),this.g=ut(t[3]||"",!0),st(this,t[4]),this.h=ut(t[5]||"",!0),at(this,t[6]||"",!0),this.m=ut(t[7]||"")):(this.l=!1,this.i=new pt(null,this.l))}function w(e){return new p(e)}function _(e,t,r){e.j=r?ut(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function st(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function at(e,t,r){var n,i;t instanceof pt?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(I(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(yt(this,t),_t(this,r,e))},n)),n.j=i):(r||(t=lt(t,gt)),e.i=new pt(t,e.l))}function b(e,t,r){e.i.set(t,r)}function ot(e){return b(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function ut(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function lt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,ht),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ht(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}p.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(lt(t,ct,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(lt(t,ct,!0),"@"),e.push(g(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(lt(r,"/"==r.charAt(0)?ft:dt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",lt(r,mt)),e.join("")},p.prototype.resolve=function(e){var t=w(this);let r=!!e.j;r?_(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)st(t,e.u);else if(r=!!e.h)if("/"!=n.charAt(0)&&(this.g&&!this.h?n="/"+n:-1!=(i=t.h.lastIndexOf("/"))&&(n=t.h.slice(0,i+1)+n)),".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){var n=0==i.lastIndexOf("/",0),i=i.split("/"),s=[];for(let e=0;e{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,xt(this)),this.readyState=0},e.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,Ct(this)),this.g)&&(this.readyState=3,Ct(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==D.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;St(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},e.Ma=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?xt:Ct)(this),3==this.readyState)&&St(this)},e.Oa=function(e){this.g&&(this.response=this.responseText=e,xt(this))},e.Na=function(e){this.g&&(this.response=e,xt(this))},e.ga=function(){this.g&&xt(this)},e.setRequestHeader=function(e,t){this.A.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Et.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(S,a);var Nt=/^https?$/i,kt=["POST","PUT"];function Rt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,Mt(e),Lt(e)}function Mt(e){e.A||(e.A=!0,l(e,"complete"),l(e,"error"))}function Ot(t){if(t.h&&void 0!==U)if(t.v&&4==L(t))setTimeout(t.Ca.bind(t),0);else if(l(t,"readystatechange"),4==L(t)){t.h=!1;try{var e,r,n=t.ca();switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var i=!0;break;default:i=!1}if(!(e=i)){if(r=0===n){let e=String(t.D).match(it)[1]||null;!e&&D.self&&D.self.location&&(e=D.self.location.protocol.slice(0,-1)),r=!Nt.test(e?e.toLowerCase():"")}e=r}if(e)l(t,"complete"),l(t,"success");else{t.o=6;try{var s=2=n.h.j-(n.m?1:0))||(n.m?(n.i=i.G.concat(n.i),0):1==n.I||2==n.I||n.D>=(n.Sa?0:n.Ta)||(n.m=v(y(n.Ea,n,i),Xt(n,n.D)),n.D++,0)))&&(2!=a||!$t(e)))switch(s&&0{var n=new f;if(D.Image){let e=new Image;e.onload=q(E,n,"TestLoadImage: loaded",!0,r,e),e.onerror=q(E,n,"TestLoadImage: error",!1,r,e),e.onabort=q(E,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=q(E,n,"TestLoadImage: timeout",!1,r,e),D.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new f,n=new AbortController,i=setTimeout(()=>{n.abort(),E(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?E(r,0,!0,t):E(r,0,!1,t)}).catch(()=>{clearTimeout(i),E(r,0,!1,t)})})(i.toString(),r)):k(2),e.I=0,e.l&&e.l.pa(t),Zt(e),qt(e)}function Zt(e){var t;e.I=0,e.ja=[],e.l&&(0==(t=nt(e.h)).length&&0==e.i.length||(G(e.ja,t),G(e.ja,e.i),e.h.i.length=0,z(e.i),e.i.length=0),e.l.oa())}function er(e,t,r){var n,i,s=r instanceof p?w(r):new p(r);return""!=s.g?(t&&(s.g=t+"."+s.g),st(s,s.u)):(s=(n=D.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new p(null),s&&_(i,s),t&&(i.g=t),n&&st(i,n),r&&(i.h=r),s=i),r=e.G,t=e.wa,r&&t&&b(s,r,t),b(s,"VER",e.ka),Gt(e,s),s}function tr(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Aa&&!e.ma?new S(new Tt({ab:r})):new S(e.ma)).Fa(e.L),t}function rr(){}function nr(){}function C(e,t){a.call(this),this.g=new Ft(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)&&!N(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!N(t)&&(this.g.G=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new A(this)}function ir(e){Ae.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(var 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 sr(){De.call(this),this.status=1}function A(e){this.g=e}(e=S.prototype).Fa=function(e){this.H=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=(this.L||Be).g(),this.g.onreadystatechange=j(y(this.Ca,this));try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Rt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=D.FormData&&e instanceof D.FormData,0<=Array.prototype.indexOf.call(kt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);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(e),this.v=!1}catch(e){Rt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,l(this,"complete"),l(this,"abort"),Lt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Lt(this,!0)),S.Z.N.call(this)},e.Ca=function(){this.u||(this.B||this.v||this.j?Ot(this):this.Xa())},e.Xa=function(){Ot(this)},e.isActive=function(){return!!this.g},e.ca=function(){try{return 2`${this.name}: [code=${this.code}]: `+this.message}}class f{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class Ee{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class Se{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(l.UNAUTHENTICATED))}shutdown(){}}class xe{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 Ce{constructor(e){this.t=e,this.currentUser=l.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){y(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new f,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new f,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{p("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(p("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new f))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(p("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(y("string"==typeof e.accessToken,31837,{l:e}),new Ee(e.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(){var e=this.auth&&this.auth.getUid();return y(null===e||"string"==typeof e,2055,{h:e}),new l(e)}}class Ae{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=l.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class De{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Ae(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(l.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Ne{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0{null!=e.error&&p("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,p("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{p("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):p("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new Ne(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(y("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new Ne(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 Re{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e=Oe&&t<=Le}function Ve(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Fe(e){return e+"\0"}let Ue="__name__";class Be{constructor(e,t,r){void 0===t?t=0:t>e.length&&E(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&E(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===Be.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof Be?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length0(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=h.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Ue}static keyField(){return new h([Ue])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new I(b.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n2===e.kind)}function et(e){return e.fields.filter(e=>2!==e.kind)}Xe.UNKNOWN_ID=-1;class tt{constructor(e,t){this.fieldPath=e,this.kind=t}}class rt{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new rt(0,st.min())}}function nt(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=w.fromTimestamp(1e9===n?new v(r+1,0):new v(r,n));return new st(r,x.empty(),t)}function it(e){return new st(e.readTime,e.key,Je)}class st{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new st(w.min(),x.empty(),Je)}static max(){return new st(w.max(),x.empty(),Je)}}function at(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:S(e.largestBatchId,t.largestBatchId)}let ot="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class ut{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function lt(e){if(e.code!==b.FAILED_PRECONDITION||e.message!==ot)throw e;p("LocalStore","Unexpectedly lost primary lease")}class C{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(n,i){return this.callbackAttached&&E(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new C((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof C?t:C.resolve(t)}catch(e){return C.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):C.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):C.reject(t)}static resolve(r){return new C((e,t)=>{e(r)})}static reject(r){return new C((e,t)=>{t(r)})}static waitFor(e){return new C((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=C.resolve(!1);for(let r of e)t=t.next(e=>e?C.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,u){return new C((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new C((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let ht="SimpleDb";class ct{static open(e,t,r,n){try{return new ct(t,e.transaction(n,r))}catch(e){throw new mt(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new f,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new mt(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=_t(e.target.error);this.S.reject(new mt(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(p(ht,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new yt(t)}}class dt{static delete(e){return p(ht,"Removing database:",e),vt(K().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||!dt.F()&&(e=ee(),t=0<(t=dt.M(e))&&t<10,r=0<(r=ft(e))&&r<4.5,0{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new mt(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new I(b.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new I(b.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new mt(s,t))},i.onupgradeneeded=e=>{p(ht,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{p(ht,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}$(t){this.q=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=ct.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),C.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(p(ht,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function ft(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class gt{constructor(e){this.U=e,this.K=!1,this.W=null}get isDone(){return this.K}get G(){return this.W}set cursor(e){this.U=e}done(){this.K=!0}j(e){this.W=e}delete(){return vt(this.U.delete())}}class mt extends I{constructor(e,t){super(b.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function pt(e){return"IndexedDbTransactionError"===e.name}class yt{constructor(e){this.store=e}put(e,t){let r;return vt(r=void 0!==t?(p(ht,"PUT",this.store.name,e,t),this.store.put(t,e)):(p(ht,"PUT",this.store.name,"",e),this.store.put(e)))}add(e){return p(ht,"ADD",this.store.name,e,e),vt(this.store.add(e))}get(t){return vt(this.store.get(t)).next(e=>(void 0===e&&(e=null),p(ht,"GET",this.store.name,t,e),e))}delete(e){return p(ht,"DELETE",this.store.name,e),vt(this.store.delete(e))}count(){return p(ht,"COUNT",this.store.name),vt(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new C((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.H(e,(e,t)=>{r.push(t)}).next(()=>r)}}Y(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new C((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}Z(e,t){p(ht,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.X=!1,this.cursor(r));return this.H(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.H(n,t)}te(i){let e=this.cursor({});return new C((r,n)=>{e.onerror=e=>{var t=_t(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}H(e,s){let a=[];return new C((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new gt(n),r=s(n.primaryKey,n.value,t);if(r instanceof C){let e=r.catch(e=>(t.done(),C.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>C.waitFor(a))}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";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.X?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function vt(e){return new C((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=_t(e.target.error);n(t)}})}let wt=!1;function _t(e){let t=dt.M(ee());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new I("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 wt||(wt=!0,setTimeout(()=>{throw e},0)),e}}return e}let bt="IndexBackfiller";class It{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){p(bt,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();p(bt,"Documents written: "+e)}catch(e){pt(e)?p(bt,"Ignoring IndexedDB error during index backfill: ",e):await lt(e)}await this.re(6e4)})}}class Tt{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return C.doWhile(()=>!0===i&&0this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return p(bt,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(p(bt,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=it(t);0this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let St=Et.ce=-1;function xt(e){return null==e}function Ct(e){return 0===e&&1/e==-1/0}function At(e){return"number"==typeof e&&Number.isInteger(e)&&!Ct(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Dt="";function Nt(e){let t="";for(let r=0;r{let r=e,n=t.length;for(let i=0;i__PRIVATE_lastReasonableEscapeIndex)&&E(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:E(61167,{path:r})}a=t+2}return new T(n)}let Mt="remoteDocuments",Ot="owner",Lt="owner",Pt="mutationQueues",Vt="mutations",Ft="batchId",Ut="userMutationsIndex",Bt=["userId","batchId"];function qt(e,t){return[e,Nt(t)]}function jt(e,t,r){return[e,Nt(t),r]}let zt={},Gt="documentMutations",Kt="remoteDocumentsV14",Qt=["prefixPath","collectionGroup","readTime","documentId"],$t="documentKeyIndex",Ht=["prefixPath","collectionGroup","documentId"],Wt="collectionGroupIndex",Yt=["collectionGroup","readTime","prefixPath","documentId"],Jt="remoteDocumentGlobal",Xt="remoteDocumentGlobalKey",Zt="targets",er="queryTargetsIndex",tr=["canonicalId","targetId"],rr="targetDocuments",nr=["targetId","path"],ir="documentTargetsIndex",sr=["path","targetId"],mr="targetGlobalKey",pr="targetGlobal",yr="collectionParents",vr=["collectionId","parent"],wr="clientMetadata",_r="bundles",br="namedQueries",Ir="indexConfiguration",Tr="collectionGroupIndex",Er="indexState",Sr=["indexId","uid"],xr="sequenceNumberIndex",Cr=["uid","sequenceNumber"],Ar="indexEntries",Dr=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],Nr="documentKeyIndex",kr=["indexId","uid","orderedDocumentKey"],Rr="documentOverlays",Mr=["userId","collectionPath","documentId"],Or="collectionPathOverlayIndex",Lr=["userId","collectionPath","largestBatchId"],Pr="collectionGroupOverlayIndex",Vr=["userId","collectionGroup","largestBatchId"],Fr="globals",Ur=[Pt,Vt,Gt,Mt,Zt,Ot,pr,rr,wr,Jt,yr,_r,br],Br=[...Ur,Rr],qr=[Pt,Vt,Gt,Kt,Zt,Ot,pr,rr,wr,Jt,yr,_r,br,Rr],jr=qr,zr=[...jr,Ir,Er,Ar],Gr=zr,Kr=[...zr,Fr],Qr=Kr;class $r extends ut{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function r(e,t){var r=e;return dt.O(r.le,t)}function Hr(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Wr(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Yr(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e,t){this.comparator=e,this.root=t||Xr.EMPTY}insert(e,t){return new A(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Xr.BLACK,null,null))}remove(e){return new A(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Xr.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new Jr(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new Jr(this.root,e,this.comparator,!1)}getReverseIterator(){return new Jr(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new Jr(this.root,e,this.comparator,!0)}}class Jr{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();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new Zr(this.data.getIterator())}getIteratorFrom(e){return new Zr(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{t=t.add(e)}),t}isEqual(e){if(!(e instanceof D))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new D(this.comparator);return t.data=e,t}}class Zr{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function en(e){return e.hasNext()?e.getNext():void 0}class tn{constructor(e){(this.fields=e).sort(h.comparator)}static empty(){return new tn([])}unionWith(e){let t=new D(h.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new tn(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Ve(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class rn extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class N{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new rn("Invalid base64 string: "+e):e}})(e);return new N(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;reEn(e,t))}function xn(e,n){if(e===n)return 0;var i,s,a,o,u,l,h,c,d=Tn(e),t=Tn(n);if(d!==t)return S(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return S(e.booleanValue,n.booleanValue);case 2:return l=n,h=k((u=e).integerValue||u.doubleValue),c=k(l.integerValue||l.doubleValue),h{let t=sn(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>an(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):E(61005,{value:e})}(e)}function Nn(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function kn(e){return!!e&&"integerValue"in e}function Rn(e){return!!e&&"arrayValue"in e}function Mn(e){return e&&"nullValue"in e}function On(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Ln(e){return e&&"mapValue"in e}function Pn(e){return(e?.mapValue?.fields||{})[yn]?.stringValue===_n}function Vn(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return Wr(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Vn(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Vn(t.arrayValue.values[e]);return r}return{...t}}function Fn(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===vn}let Un={mapValue:{fields:{[yn]:{stringValue:_n},[bn]:{arrayValue:{}}}}};function Bn(e,t){var r=xn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function qn(e,t){var r=xn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class jn{constructor(e){this.value=e}static empty(){return new jn({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Vn(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Ln(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return En(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;nr[e]=t);for(let e of t)delete r[e]}clone(){return new jn(Vn(this.value))}}class R{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 R(e,0,w.min(),w.min(),w.min(),jn.empty(),0)}static newFoundDocument(e,t,r,n){return new R(e,1,t,w.min(),r,n,0)}static newNoDocument(e,t){return new R(e,2,t,w.min(),w.min(),jn.empty(),0)}static newUnknownDocument(e,t){return new R(e,3,t,w.min(),w.min(),jn.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(w.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=jn.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=jn.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=w.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 R&&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 R(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 zn{constructor(e,t){this.position=e,this.inclusive=t}}function Gn(e,t,r){let n=0;for(let a=0;a":return 0=":return 0<=e;default:return E(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class O extends $n{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new O(e,t)}matches(t){return Hn(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}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 Hn(e){return"and"===e.op}function Wn(e){return"or"===e.op}function Yn(e){return Jn(e)&&Hn(e)}function Jn(e){for(var t of e.filters)if(t instanceof O)return!1;return!0}function Xn(e,t){var r=e.filters.concat(t);return O.create(r,e.op)}function Zn(e){return e instanceof M?`${(t=e).field.canonicalString()} ${t.op} `+Dn(t.value):e instanceof O?(t=e).op.toString()+" {"+t.getFilters().map(Zn).join(" ,")+"}":"Filter";var t}class ei extends M{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class ti extends M{constructor(e,t){super(e,"in",t),this.keys=ni(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class ri extends M{constructor(e,t){super(e,"not-in",t),this.keys=ni(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function ni(e,t){return(t.arrayValue?.values||[]).map(e=>x.fromName(e.referenceValue))}class ii extends M{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Rn(t)&&Sn(t.arrayValue,this.value)}}class si extends M{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Sn(this.value.arrayValue,t)}}class ai extends M{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Sn(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Sn(this.value.arrayValue,t)}}class oi extends M{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!Rn(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Sn(this.value.arrayValue,e))}}class ui{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 li(e,t=null,r=[],n=[],i=null,s=null,a=null){return new ui(e,t,r,n,i,s,a)}function hi(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof M?e.field.canonicalString()+e.op.toString()+Dn(e.value):Yn(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),xt(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>Dn(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>Dn(e)).join(",")),t.Te=e}return t.Te}function ci(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;ie&&n(t,i.filters[r]),!0)):void E(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Kn(e.startAt,t.startAt)&&Kn(e.endAt,t.endAt)}function di(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function fi(e,t){return e.filters.filter(e=>e instanceof M&&e.field.isEqual(t))}function gi(e,r,n){let i=In,s=!0;for(let n of fi(e,r)){let e=In,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?In:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Nn(pn.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Pn(a)?Un:{mapValue:{}}:E(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=In}Bn({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Nn(pn.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Un:"mapValue"in a?Pn(a)?{mapValue:{}}:wn:E(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=wn}0{let t=new D(h.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new Qn(e,r))}),t.has(h.keyField().canonicalString())||n.Ie.push(new Qn(h.keyField(),r))}return n.Ie}function Ii(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return li(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new Qn(e.field,t)});var r=e.endAt?new zn(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new zn(e.startAt.position,e.startAt.inclusive):null;return li(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,bi(e))),t.Ee}function Ti(e,t){var r=e.filters.concat([t]);return new pi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Ei(e,t,r){return new pi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Si(e,t){return ci(Ii(e),Ii(t))&&e.limitType===t.limitType}function xi(e){return hi(Ii(e))+"|lt:"+e.limitType}function Ci(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0Zn(e)).join(", ")}]`),xt(e.limit)||(t+=", limit: "+e.limit),0`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>Dn(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>Dn(e)).join(","):t})`})(Ii(e))}; limitType=${e.limitType})`}function Ai(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of bi(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=bi(s),i=Gn(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=bi(s),i=Gn(r,n,a),r.inclusive?0<=i:0{let n=!1;for(var i of bi(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?xn(n,i):E(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return E(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class ki{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e{for(let[e,r]of t)n(e,r)})}isEmpty(){return Yr(this.inner)}size(){return this.innerSize}}let Ri=new A(x.comparator);let Mi=new A(x.comparator);function Oi(...e){let t=Mi;for(var r of e)t=t.insert(r.key,r);return t}function Li(e){let r=Mi;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Pi(){return new ki(e=>e.toString(),(e,t)=>e.isEqual(t))}let Vi=new A(x.comparator),Fi=new D(x.comparator);function L(...e){let t=Fi;for(var r of e)t=t.add(r);return t}let Ui=new D(S);function Bi(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:Ct(t)?"-0":t}}function qi(e){return{integerValue:""+e}}function ji(e,t){return At(t)?qi(t):Bi(e,t)}class zi{constructor(){this._=void 0}}function Gi(e,t){return e instanceof Yi?kn(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Ki extends zi{}class Qi extends zi{constructor(e){super(),this.elements=e}}function $i(e,t){var r=Xi(t);for(let t of e.elements)r.some(e=>En(e,t))||r.push(t);return{arrayValue:{values:r}}}class Hi extends zi{constructor(e){super(),this.elements=e}}function Wi(e,t){let r=Xi(t);for(let t of e.elements)r=r.filter(e=>!En(e,t));return{arrayValue:{values:r}}}class Yi extends zi{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function Ji(e){return k(e.integerValue||e.doubleValue)}function Xi(e){return Rn(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class Zi{constructor(e,t){this.field=e,this.transform=t}}class es{constructor(e,t){this.version=e,this.transformResults=t}}class P{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new P}static exists(e){return new P(void 0,e)}static updateTime(e){return new P(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 ts(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class rs{}function ns(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new cs(e.key,P.none()):new as(e.key,e.data,P.none());{var n,i=e.data,s=jn.empty();let t=new D(h.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1e.field))):o):(n=t,t=r,ts(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,u,l}function ss(e,t){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&&Ve(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof Qi&&t instanceof Qi||e instanceof Hi&&t instanceof Hi?Ve(e.elements,t.elements,En):e instanceof Yi&&t instanceof Yi?En(e.Ae,t.Ae):e instanceof Ki&&t instanceof Ki)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class as extends rs{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class os extends rs{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 us(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function ls(e,t,r){var n,i,s,a=new Map;y(e.length===r.length,32656,{Re:r.length,Ve:e.length});for(let h=0;h{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=ns(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(w.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),L())}isEqual(e){return this.batchId===e.batchId&&Ve(this.mutations,e.mutations,(e,t)=>ss(e,t))&&Ve(this.baseMutations,e.baseMutations,(e,t)=>ss(e,t))}}class gs{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){y(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Vi;var i=e.mutations;for(let s=0;ss.insert(e)),s}insert(i){if(0!==this.ge){let e=bs(i),[t,r]=Is(e);for(let n=0;n{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:E(38017,{changeType:t})}}),new xs(this.Me,this.xe,r,n,i)}qe(){this.Oe=!1,this.Fe=Ms()}Qe(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}$e(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}Ue(){this.ve+=1}Ke(){--this.ve,y(0<=this.ve,3241,{ve:this.ve})}We(){this.Oe=!0,this.xe=!0}}class ks{constructor(e){this.Ge=e,this.ze=new Map,this.je=Ri,this.Je=Rs(),this.He=Rs(),this.Ye=new A(S)}Ze(e){for(var t of e.be)e.De&&e.De.isFoundDocument()?this.Xe(t,e.De):this.et(t,e.key,e.De);for(var r of e.removedTargetIds)this.et(r,e.key,e.De)}tt(r){this.forEachTarget(r,e=>{var t=this.nt(e);switch(r.state){case 0:this.rt(e)&&t.Le(r.resumeToken);break;case 1:t.Ke(),t.Ne||t.qe(),t.Le(r.resumeToken);break;case 2:t.Ke(),t.Ne||this.removeTarget(e);break;case 3:this.rt(e)&&(t.We(),t.Le(r.resumeToken));break;case 4:this.rt(e)&&(this.it(e),t.Le(r.resumeToken));break;default:E(56790,{state:r.state})}})}forEachTarget(e,r){0{this.rt(t)&&r(t)})}st(n){let i=n.targetId,e=n.Ce.count,t=this.ot(i);if(t){var r=t.target;if(di(r))if(0===e){let e=new x(r.path);this.et(i,e,R.newNoDocument(e,w.min()))}else y(1===e,20013,{expectedCount:e});else{let r=this._t(i);if(r!==e){let e=this.ut(n),t=e?this.ct(e,n,r):1;if(0!==t){this.it(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ye=this.Ye.insert(i,e)}}}}}ut(e){var t=e.Ce.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=an(t).toUint8Array()}catch(e){if(e instanceof rn)return be("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{s=new Ts(i,r,n)}catch(e){return be(e instanceof Es?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.ge?null:s}ct(e,t,r){return t.Ce.count===r-this.Pt(e,t.targetId)?0:2}Pt(r,n){var e=this.Ge.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.Ge.ht(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.et(n,e,null),i++)}),i}Tt(n){let i=new Map,s=(this.ze.forEach((e,t)=>{var r=this.ot(t);if(r){if(e.current&&di(r.target)){let e=new x(r.target.path);this.It(e).has(t)||this.Et(t,e)||this.et(t,e,R.newNoDocument(e,n))}e.Be&&(i.set(t,e.ke()),e.qe())}}),L());this.He.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.je.forEach((e,t)=>t.setReadTime(n));var e=new Ss(n,i,this.Ye,this.je,s);return this.je=Ri,this.Je=Rs(),this.He=Rs(),this.Ye=new A(S),e}Xe(e,t){var r;this.rt(e)&&(r=this.Et(e,t.key)?2:0,this.nt(e).Qe(t.key,r),this.je=this.je.insert(t.key,t),this.Je=this.Je.insert(t.key,this.It(t.key).add(e)),this.He=this.He.insert(t.key,this.dt(t.key).add(e)))}et(e,t,r){var n;this.rt(e)&&(n=this.nt(e),this.Et(e,t)?n.Qe(t,1):n.$e(t),this.He=this.He.insert(t,this.dt(t).delete(e)),this.He=this.He.insert(t,this.dt(t).add(e)),r)&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){var t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ue(e){this.nt(e).Ue()}nt(e){let t=this.ze.get(e);return t||(t=new Ns,this.ze.set(e,t)),t}dt(e){let t=this.He.get(e);return t||(t=new D(S),this.He=this.He.insert(e,t)),t}It(e){let t=this.Je.get(e);return t||(t=new D(S),this.Je=this.Je.insert(e,t)),t}rt(e){var t=null!==this.ot(e);return t||p("WatchChangeAggregator","Detected inactive target",e),t}ot(e){var t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(t){this.ze.set(t,new Ns),this.Ge.getRemoteKeysForTarget(t).forEach(e=>{this.et(t,e,null)})}Et(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function Rs(){return new A(x.comparator)}function Ms(){return new A(x.comparator)}let Os={asc:"ASCENDING",desc:"DESCENDING"},Ls={"<":"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"},Ps={and:"AND",or:"OR"};class Vs{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function Fs(e,t){return e.useProto3Json||xt(t)?t:{value:t}}function Us(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 Bs(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function V(e){return y(!!e,49232),w.fromTimestamp((t=sn(e),new v(t.seconds,t.nanos)));var t}function qs(e,t){return js(e,t).canonicalString()}function js(e,t){e=e;var r=new T(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function zs(e){var t=T.fromString(e);return y(la(t),10190,{key:t.toString()}),t}function Gs(e,t){return qs(e.databaseId,t.path)}function Ks(e,t){var r=zs(t);if(r.get(1)!==e.databaseId.projectId)throw new I(b.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 I(b.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new x(Ws(r))}function Qs(e,t){return qs(e.databaseId,t)}function $s(e){var t=zs(e);return 4===t.length?T.emptyPath():Ws(t)}function Hs(e){return new T(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function Ws(e){return y(4{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof ds))return E(16599,{Vt:t.type});r={verify:Gs(e,t.key)}}return 0{var t=e.transform;if(t instanceof Ki)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof Qi)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Hi)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Yi)return{fieldPath:e.field.canonicalString(),increment:t.Ae};throw E(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,Us(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:E(27497))),r;var n}function Zs(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?P.updateTime(V(s.updateTime)):void 0!==s.exists?P.exists(s.exists):P.none():P.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)y("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new Ki;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new Qi(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new Hi(e)}else"increment"in r?t=new Yi(e,r.increment):E(16584,{proto:r});var n=h.fromServerFormat(r.fieldPath);return new Zi(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=Ks(i,t.update.name),u=new jn({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new tn(a.map(e=>h.fromServerFormat(e)));return new os(o,u,e,r,n)}return new as(o,u,r,n)}if(t.delete){let e=Ks(i,t.delete);return new cs(e,r)}if(t.verify){let e=Ks(i,t.verify);return new ds(e,r)}return E(1463,{proto:t})}function ea(e,n){return e&&0{{var r=n;let e=t.updateTime?V(t.updateTime):V(r);return e.isEqual(w.min())&&(e=V(r)),new es(e,t.transformResults||[])}})):[]}function ta(e,t){return{documents:[Qs(e,t.path)]}}function ra(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=Qs(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof M?(e=>{if("=="===e.op){if(On(e.value))return{unaryFilter:{field:oa(e.field),op:"IS_NAN"}};if(Mn(e.value))return{unaryFilter:{field:oa(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(On(e.value))return{unaryFilter:{field:oa(e.field),op:"IS_NOT_NAN"}};if(Mn(e.value))return{unaryFilter:{field:oa(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:oa(e.field),op:sa(e.op),value:e.value}}})(e):e instanceof O?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:aa(e.op),filters:t}}})(e):E(54877,{filter:e})}(O.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:oa((e=e).field),direction:(e=e.dir,Os[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=Fs(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{ft:r,parent:i}}function na(e){let t=$s(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0{switch(i.unaryFilter.op){case"IS_NAN":let e=ua(i.unaryFilter.field);return M.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=ua(i.unaryFilter.field);return M.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=ua(i.unaryFilter.field);return M.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=ua(i.unaryFilter.field);return M.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return E(61313);default:return E(60726)}})(e):void 0!==e.fieldFilter?(e=>M.create(ua(e.fieldFilter.field),(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 E(58110);default:return E(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>O.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return E(1026)}})(e.compositeFilter.op)))(e):E(30097,{filter:e})}(e))instanceof O&&Yn(i)?i.getFilters():[i])),[]),u=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new Qn(ua(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),l=(n.limit&&(u=(e=n.limit,xt(i="object"==typeof e?e.value:e)?null:i)),null),h=(n.startAt&&(l=(e=n.startAt,i=!!e.before,r=e.values||[],new zn(r,i))),null);return n.endAt&&(h=(e=n.endAt,r=!e.before,i=e.values||[],new zn(i,r))),yi(t,s,o,a,u,"F",l,h)}function ia(e,t){var r=(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 E(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function sa(e){return Ls[e]}function aa(e){return Ps[e]}function oa(e){return{fieldPath:e.canonicalString()}}function ua(e){return h.fromServerFormat(e.fieldPath)}function la(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class ha{constructor(e,t,r,n,i=w.min(),s=w.min(),a=N.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 ha(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new ha(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new ha(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new ha(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class ca{constructor(e){this.yt=e}}function da(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:fa(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Gs(e=e.yt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:Us(e,r.version.toTimestamp()),createTime:Us(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:ga(t.version)};else{if(!t.isUnknownDocument())return E(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:ga(t.version)}}return i}function fa(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function ga(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function ma(e){var t=new v(e.seconds,e.nanoseconds);return w.fromTimestamp(t)}function pa(t,r){let e=(r.baseMutations||[]).map(e=>Zs(t.yt,e));for(let s=0;sZs(t.yt,e)),i=v.fromMillis(r.localWriteTimeMs);return new fs(r.batchId,i,e,n)}function ya(e){var t,r=ma(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?ma(e.lastLimboFreeSnapshotVersion):w.min(),i=void 0!==e.query.documents?(t=e.query,y(1===(i=t.documents.length),1966,{count:i}),Ii(vi($s(t.documents[0])))):Ii(na(e.query));return new ha(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,N.fromBase64String(e.resumeToken))}function va(e,t){var r=ga(t.snapshotVersion),n=ga(t.lastLimboFreeSnapshotVersion),i=di(t.target)?ta(e.yt,t.target):ra(e.yt,t.target).ft,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:hi(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function wa(e){var t=na({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Ei(t,t.limit,"L"):t}function _a(e,t){return new ms(t.largestBatchId,Zs(e.yt,t.overlayMutation))}function ba(e,t){var r=t.path.lastSegment();return[e,Nt(t.path.popLast()),r]}function Ia(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:ga(n.readTime),documentKey:Nt(n.documentKey.path),largestBatchId:n.largestBatchId}}class Ta{getBundleMetadata(e,t){return Ea(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:ma(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return Ea(e).put({bundleId:(e=t).id,createTime:ga(V(e.createTime)),version:e.version})}getNamedQuery(e,t){return Sa(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:wa(e.bundledQuery),readTime:ma(e.readTime)}})}saveNamedQuery(e,t){return Sa(e).put({name:(e=t).name,readTime:ga(V(e.readTime)),bundledQuery:e.bundledQuery})}}function Ea(e){return r(e,_r)}function Sa(e){return r(e,br)}class xa{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){var r=t.uid||"";return new xa(e,r)}getOverlay(e,t){return Ca(e).get(ba(this.userId,t)).next(e=>e?_a(this.serializer,e):null)}getOverlays(e,t){let r=Pi();return C.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new ms(i,t);s.push(this.St(n,r))}),C.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(Nt(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(Ca(r).Z(Or,t))}),C.waitFor(i)}getOverlaysForCollection(e,t,r){let n=Pi(),i=Nt(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return Ca(e).J(Or,s).next(e=>{for(var t of e){let e=_a(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=Pi(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return Ca(e).ee({index:Pr,range:n},(e,t,r)=>{var n=_a(this.serializer,t);s.size()s)}St(e,t){return Ca(e).put(((e,t,r)=>{var[,n,i]=ba(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:Xs(e.yt,r.mutation)}})(this.serializer,this.userId,t))}}function Ca(e){return r(e,Rr)}class Aa{bt(e){return r(e,Fr)}getSessionToken(e){return this.bt(e).get("sessionToken").next(e=>{var t=e?.value;return t?N.fromUint8Array(t):N.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.bt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class Da{constructor(){}Dt(e,t){this.Ct(e,t),t.vt()}Ct(t,r){if("nullValue"in t)this.Ft(r,5);else if("booleanValue"in t)this.Ft(r,10),r.Mt(t.booleanValue?1:0);else if("integerValue"in t)this.Ft(r,15),r.Mt(k(t.integerValue));else if("doubleValue"in t){var e=k(t.doubleValue);isNaN(e)?this.Ft(r,13):(this.Ft(r,15),Ct(e)?r.Mt(0):r.Mt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Ft(r,20),"string"==typeof e&&(e=sn(e)),r.xt(""+(e.seconds||"")),r.Mt(e.nanos||0)}else"stringValue"in t?(this.Ot(t.stringValue,r),this.Nt(r)):"bytesValue"in t?(this.Ft(r,30),r.Bt(an(t.bytesValue)),this.Nt(r)):"referenceValue"in t?this.Lt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Ft(r,45),r.Mt(e.latitude||0),r.Mt(e.longitude||0)):"mapValue"in t?Fn(t)?this.Ft(r,Number.MAX_SAFE_INTEGER):Pn(t)?this.kt(t.mapValue,r):(this.qt(t.mapValue,r),this.Nt(r)):"arrayValue"in t?(this.Qt(t.arrayValue,r),this.Nt(r)):E(19022,{$t:t})}Ot(e,t){this.Ft(t,25),this.Ut(e,t)}Ut(e,t){t.xt(e)}qt(e,t){var r=e.fields||{};this.Ft(t,55);for(let e of Object.keys(r))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){var r=e.fields||{},n=(this.Ft(t,53),bn),i=r[n].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(k(i)),this.Ot(n,t),this.Ct(r[n],t)}Qt(e,t){var r=e.values||[];this.Ft(t,50);for(let e of r)this.Ct(e,t)}Lt(e,t){this.Ft(t,37),x.fromName(e).path.forEach(e=>{this.Ft(t,60),this.Ut(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}Da.Kt=new Da;function Na(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(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[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class ka{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Wt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Ht()}Yt(e){for(var 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">>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()}Zt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Jt(e);else if(e<2048)this.Jt(960|e>>>6),this.Jt(128|63&e);else if(t<"\ud800"||"\udbff">>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e);else{let e=t.codePointAt(0);this.Jt(240|e>>>18),this.Jt(128|63&e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e)}}this.Ht()}Xt(e){var t=this.en(e),r=Na(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;nh.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.fn=e.orderBy,this.gn=[];for(var t of e.filters){let e=t;e.isInequality()?this.mn=this.mn.add(e):this.gn.push(e)}}get pn(){return 1=this.fn.length||!this.bn(this.fn[s++],e))return!1}}return!0}Dn(){if(this.pn)return null;let e=new D(h.comparator);var t,r,n=[];for(t of this.gn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new tt(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new tt(t.field,0))));for(r of this.fn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new tt(r.field,"asc"===r.dir?0:1)));return new Xe(Xe.UNKNOWN_ID,this.collectionId,n,rt.empty())}wn(e){for(var t of this.gn)if(this.Sn(t,e))return!0;return!1}Sn(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}bn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function qa(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(y(e instanceof M||e instanceof O,34018),e instanceof M)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=O.create(r,e.op);return n=$a(n),Ga(n)?n:(y(n instanceof O,64498),y(Hn(n),40251),y(1Ka(e,t)))}(function t(r){if(y(r instanceof M||r instanceof O,20012),r instanceof M){if(r instanceof si){let e=r.value.arrayValue?.values?.map(e=>M.create(r.field,"==",e))||[];return O.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return O.create(e,r.op)}(e)),y(Ga(t),7391),ja(t)||za(t)?[t]:t.getFilters())}function ja(e){return e instanceof M}function za(e){return e instanceof O&&Yn(e)}function Ga(e){return ja(e)||za(e)||(e=>{if(e instanceof O&&Wn(e)){for(var t of e.getFilters())if(!ja(t)&&!za(t))return!1;return!0}return!1})(e)}function Ka(e,t){var r,n;return y(e instanceof M||e instanceof O,38388),y(t instanceof M||t instanceof O,25473),$a(e instanceof M?t instanceof M?(r=e,n=t,O.create([r,n],"and")):Qa(e,t):t instanceof M?Qa(t,e):((e,t)=>{if(y(0Ka(e,n));return O.create(i,"or")})(e,t))}function Qa(t,e){var r;return Hn(e)?Xn(e,t.getFilters()):(r=e.filters.map(e=>Ka(t,e)),O.create(r,"or"))}function $a(t){if(y(t instanceof M||t instanceof O,11850),t instanceof M)return t;var e=t.getFilters();if(1===e.length)return $a(e[0]);if(Jn(t))return t;let r=e.map(e=>$a(e)),n=[];return r.forEach(e=>{e instanceof M?n.push(e):e instanceof O&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:O.create(n,t.op)}class Ha{constructor(){this.Cn=new Wa}addToCollectionParentIndex(e,t){return this.Cn.add(t),C.resolve()}getCollectionParents(e,t){return C.resolve(this.Cn.getEntries(t))}addFieldIndex(e,t){return C.resolve()}deleteFieldIndex(e,t){return C.resolve()}deleteAllFieldIndexes(e){return C.resolve()}createTargetIndexes(e,t){return C.resolve()}getDocumentsMatchingTarget(e,t){return C.resolve(null)}getIndexType(e,t){return C.resolve(0)}getFieldIndexes(e,t){return C.resolve([])}getNextCollectionGroupToUpdate(e){return C.resolve(null)}getMinOffset(e,t){return C.resolve(st.min())}getMinOffsetFromCollectionGroup(e,t){return C.resolve(st.min())}updateCollectionGroup(e,t,r){return C.resolve()}updateIndexEntries(e,t){return C.resolve()}}class Wa{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new D(T.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new D(T.comparator)).toArray()}}let Ya="IndexedDbIndexManager",Ja=new Uint8Array(0);class Xa{constructor(e,t){this.databaseId=t,this.vn=new Wa,this.Fn=new ki(e=>hi(e),(e,t)=>ci(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.vn.has(t)?C.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.vn.add(t)}),n={collectionId:n,parent:Nt(r)},Za(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Fe(r),""],!1,!0);return Za(e).J(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(Rt(t.parent))}return n})}addFieldIndex(e,r){let t=to(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=ro(e);return i.next(e=>{t.put(Ia(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=to(e),n=ro(e),i=eo(e);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=to(e),r=eo(e),n=ro(e);return t.Z().next(()=>r.Z()).next(()=>n.Z())}createTargetIndexes(r,e){return C.forEach(this.Mn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new Ba(t).Dn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=eo(e),r=!0,n=new Map;return C.forEach(this.Mn(c),t=>this.xn(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let l=L(),h=[];return C.forEach(n,(e,t)=>{p(Ya,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+hi(c));var r,n=((t,e)=>{var r=Ze(e);if(void 0!==r)for(let e of fi(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of et(r))for(let e of fi(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of et(e)){let e=(0===r.kind?gi:mi)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new zn(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of et(e)){let e=(0===r.kind?mi:gi)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new zn(n,i)})(t,e),o=this.On(e,t,s),u=this.On(e,t,a),i=this.Nn(e,t,i),n=this.Bn(e.indexId,n,o,s.inclusive,u,a.inclusive,i);return C.forEach(n,e=>d.Y(e,c.limit).next(e=>{e.forEach(e=>{var t=x.fromSegments(e.documentKey);l.has(t)||(l=l.add(t),h.push(t))})}))}).next(()=>h)}return C.resolve(null)})}Mn(t){let e=this.Fn.get(t);return e||(e=0===t.filters.length?[t]:qa(O.create(t.filters,"and")).map(e=>li(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Fn.set(t,e)),e}Bn(i,s,a,o,u,l,h){let e=(null!=s?s.length:1)*Math.max(a.length,u.length),c=e/(null!=s?s.length:1),d=[];for(let f=0;fthis.kn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}kn(e,t,r,n){var i=new La(e,x.empty(),t,r);return n?i:i.An()}qn(e,t,r,n){var i=new La(e,x.empty(),t,r);return n?i.An():i}xn(e,t){let n=new Ba(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.yn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.Mn(t);return C.forEach(n,t=>this.xn(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new D(h.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1e instanceof M&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=to(e),n=ro(e);return(t?r.J(Tr,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let s=[];return C.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new rt(e.sequenceNumber,new st(ma(e.readTime),new x(Rt(e.documentKey)),e.largestBatchId)):rt.empty(),n=t.fields.map(([e,t])=>new tt(h.fromServerFormat(e),t)),new Xe(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:S(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=to(e),s=ro(e);return this.Gn(e).next(t=>i.J(Tr,IDBKeyRange.bound(r,r)).next(e=>C.forEach(e,e=>s.put(Ia(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return C.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?C.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),C.forEach(e,r=>this.zn(i,t,r).next(e=>{var t=this.jn(n,r);return e.isEqual(t)?C.resolve():this.Jn(i,n,r,e,t)}))))})}Hn(e,t,r,n){return eo(e).put(n.Rn(this.uid,this.$n(r,t.key),t.key))}Yn(e,t,r,n){return eo(e).delete(n.Vn(this.uid,this.$n(r,t.key),t.key))}zn(e,r,n){var t=eo(e);let i=new D(Pa);return t.ee({index:Nr,range:IDBKeyRange.only([n.indexId,this.uid,Fa(this.$n(n,r))])},(e,t)=>{i=i.add(new La(n.indexId,r,Ua(t.arrayValue),Ua(t.directionalValue)))}).next(()=>i)}jn(t,r){let n=new D(Pa);var i=this.Qn(r,t);if(null!=i){let e=Ze(r);if(null!=e){var s=t.data.field(e.fieldPath);if(Rn(s))for(let e of s.arrayValue.values||[])n=n.add(new La(r.indexId,t.key,this.Ln(e),i))}else n=n.add(new La(r.indexId,t.key,Ja,i))}return n}Jn(t,r,s,e,a){p(Ya,"Updating index entries for document '%s'",r.key);let o=[];{var u=Pa,l=e=>{o.push(this.Hn(t,r,s,e))},h=e=>{o.push(this.Yn(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=en(c),i=en(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=u(n,i);e<0?r=!0:0{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>Pa(e,t)).filter((e,t,r)=>!t||0!==Pa(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=Pa(s,r),t=Pa(s,n);if(0===e)i[0]=r.An();else if(0this.xn(t,e).next(e=>e||E(44426))).next(no)}}function Za(e){return r(e,yr)}function eo(e){return r(e,Ar)}function to(e){return r(e,Ir)}function ro(e){return r(e,Er)}function no(e){y(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i(o++,r.delete()));s.push(u.next(()=>{y(1===o,47070,{batchId:n.batchId})}));let l=[];for(let t of n.mutations){let e=jt(r,t.key.path,n.batchId);s.push(i.delete(e)),l.push(t.key)}return C.waitFor(s).next(()=>l)}function oo(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw E(14731);t=e.noDocument}return JSON.stringify(t).length}so.DEFAULT_COLLECTION_PERCENTILE=10,so.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,so.DEFAULT=new so(41943040,so.DEFAULT_COLLECTION_PERCENTILE,so.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),so.DISABLED=new so(-1,0,0);class uo{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Xn={}}static wt(e,t,r,n){y(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new uo(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return ho(e).ee({index:Ut,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,f,g){let m=co(c),p=ho(c);return p.add({}).next(t=>{y("number"==typeof t,49019);let e=new fs(t,d,f,g),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>Xs(i.yt,e)),u=a.mutations.map(e=>Xs(i.yt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:u}),n=[];var i,s,a,o,u;let l=new D((e,t)=>S(e.canonicalString(),t.canonicalString()));for(let h of g){let e=jt(this.userId,h.key.path,t);l=l.add(h.key.path.popLast()),n.push(p.put(r)),n.push(m.put(e,zt))}return l.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Xn[t]=e.keys()}),C.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return ho(e).get(t).next(e=>e?(y(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),pa(this.serializer,e)):null)}er(e,r){return this.Xn[r]?C.resolve(this.Xn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Xn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return ho(e).ee({index:Ut,range:r},(e,t,r)=>{t.userId===this.userId&&(y(t.batchId>=n,47524,{tr:n}),i=pa(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=St;return ho(e).ee({index:Ut,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,St],[this.userId,Number.POSITIVE_INFINITY]);return ho(e).J(Ut,t).next(e=>e.map(e=>pa(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,u){let e=qt(this.userId,u.path),t=IDBKeyRange.lowerBound(e),l=[];return co(o).ee({range:t},(t,e,r)=>{let[n,i,s]=t,a=Rt(i);if(n===this.userId&&u.path.isEqual(a))return ho(o).get(s).next(e=>{if(!e)throw E(61480,{nr:t,batchId:s});y(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),l.push(pa(this.serializer,e))});r.done()}).next(()=>l)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new D(S),r=[];return e.forEach(a=>{var e=qt(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=co(t).ee({range:e},(e,t,r)=>{var[n,i,s]=e,i=Rt(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),C.waitFor(r).next(()=>this.rr(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=qt(this.userId,a),n=IDBKeyRange.lowerBound(r),u=new D(S);return co(e).ee({range:n},(e,t,r)=>{var[n,i,s]=e,i=Rt(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(u=u.add(s)):r.done()}).next(()=>this.rr(e,u))}rr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(ho(e).get(t).next(e=>{if(null===e)throw E(35274,{batchId:t});y(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(pa(this.serializer,e))}))}),C.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return ao(t.le,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.ir(r.batchId)}),C.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}ir(e){delete this.Xn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return C.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return co(r).ee({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=Rt(t[1]);n.push(e)}else r.done()}).next(()=>{y(0===n.length,56720,{sr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return lo(e,this.userId,t)}_r(e){return fo(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:St,lastStreamToken:""})}}function lo(e,s,t){let r=qt(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return co(e).ee({range:n,X:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function ho(e){return r(e,Vt)}function co(e){return r(e,Gt)}function fo(e){return r(e,Pt)}class go{constructor(e){this.ar=e}next(){return this.ar+=2,this.ar}static ur(){return new go(0)}static cr(){return new go(-1)}}class mo{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.lr(r).next(e=>{var t=new go(e.highestTargetId);return e.highestTargetId=t.next(),this.hr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.lr(e).next(e=>w.fromTimestamp(new v(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.lr(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.lr(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumberthis.lr(t).next(e=>(e.targetCount+=1,this.Tr(r,e),this.hr(t,e))))}updateTargetData(e,t){return this.Pr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>po(t).delete(e.targetId)).next(()=>this.lr(t)).next(e=>(y(0{var r=ya(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>C.waitFor(o)).next(()=>a)}forEachTarget(e,n){return po(e).ee((e,t)=>{var r=ya(t);n(r)})}lr(e){return yo(e).get(mr).next(e=>(y(null!==e,2888),e))}hr(e,t){return yo(e).put(mr,t)}Pr(e,t){return po(e).put(va(this.serializer,t))}Tr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumbere.targetCount)}getTargetData(e,i){var t=hi(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return po(e).ee({range:t,index:er},(e,t,r)=>{var n=ya(t);ci(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=vo(r);return e.forEach(e=>{var t=Nt(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),C.waitFor(i)}removeMatchingKeys(r,e,n){let i=vo(r);return C.forEach(e,e=>{var t=Nt(e.path);return C.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=vo(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=vo(e);let i=L();return n.ee({range:r,X:!0},(e,t,r)=>{var n=Rt(e[1]),n=new x(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=Nt(t.path),r=IDBKeyRange.bound([r],[Fe(r)],!1,!0);let n=0;return vo(e).ee({index:ir,X:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0e?ya(e):null)}}function po(e){return r(e,Zt)}function yo(e){return r(e,pr)}function vo(e){return r(e,rr)}let wo="LruGarbageCollector";function _o([e,t],[r,n]){var i=S(e,r);return 0===i?S(t,n):i}class bo{constructor(e){this.Ir=e,this.buffer=new D(_o),this.Er=0}dr(){return++this.Er}Ar(e){var t=[e,this.dr()];if(this.buffer.size{this.Rr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){pt(e)?p(wo,"Ignoring IndexedDB error during garbage collection: ",e):await lt(e)}await this.Vr(3e5)})}}class To{constructor(e,t){this.mr=e,this.params=t}calculateTargetCount(e,t){return this.mr.gr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return C.resolve(Et.ce);let r=new bo(t);return this.mr.forEachTarget(e,e=>r.Ar(e.sequenceNumber)).next(()=>this.mr.pr(e,e=>r.Ar(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.mr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.mr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector","Garbage collection skipped; disabled"),C.resolve(io)):this.getCacheSize(t).next(e=>e(i=e>this.params.maximumSequenceNumbersToCollect?(p("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,u=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(l=Date.now(),_e()<=c.DEBUG&&p("LruGarbageCollector",`LRU Garbage Collection + Counted targets in ${a-h}ms + Determined least recently used ${i} in `+(o-a)+"ms\n"+` Removed ${s} targets in `+(u-o)+"ms\n"+` Removed ${e} documents in `+(l-u)+"ms\n"+`Total Duration: ${l-h}ms`),C.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function Eo(e,t){return new To(e,t)}class So{constructor(e,t){this.db=e,this.garbageCollector=Eo(this,t)}gr(e){let r=this.wr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}wr(e){let t=0;return this.pr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}pr(e,r){return this.Sr(e,(e,t)=>r(t))}addReference(e,t,r){return xo(e,r)}removeReference(e,t,r){return xo(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return xo(e,t)}br(e,r){{var n=e,i=r;let t=!1;return fo(n).te(e=>lo(n,e,i).next(e=>(e&&(t=!0),C.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.Sr(r,(t,e)=>{if(e<=n){let e=this.br(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,w.min()),vo(r).delete([0,Nt(t.path)])))});s.push(e)}}).next(()=>C.waitFor(s)).next(()=>i.apply(r)).next(()=>a)}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return xo(e,t)}Sr(e,n){var t=vo(e);let i,s=Et.ce;return t.ee({index:ir},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==Et.ce&&n(new x(Rt(i)),s),s=r,i=t):s=Et.ce}).next(()=>{s!==Et.ce&&n(new x(Rt(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function xo(e,t){return vo(e).put((e=e.currentSequenceNumber,{targetId:0,path:Nt(t.path),sequenceNumber:e}))}class Co{constructor(){this.changes=new ki(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,R.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?C.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 Ao{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return Ro(e).put(r)}removeEntry(e,t,r){return Ro(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],fa(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.Dr(t,e)))}getEntry(e,r){let n=R.newInvalidDocument(r);return Ro(e).ee({index:$t,range:IDBKeyRange.only(Mo(r))},(e,t)=>{n=this.Cr(r,t)}).next(()=>n)}vr(e,r){let n={size:0,document:R.newInvalidDocument(r)};return Ro(e).ee({index:$t,range:IDBKeyRange.only(Mo(r))},(e,t)=>{n={document:this.Cr(r,t),size:oo(t)}}).next(()=>n)}getEntries(e,t){let n=Ri;return this.Fr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r)}).next(()=>n)}Mr(e,t){let n=Ri,i=new A(x.comparator);return this.Fr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r),i=i.insert(e,oo(t))}).next(()=>({documents:n,Or:i}))}Fr(e,t,i){if(t.isEmpty())return C.resolve();let r=new D(Lo),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(Mo(r.first()),Mo(r.last()))),s=r.getIterator(),a=s.getNext();return Ro(e).ee({index:$t,range:n},(e,t,r)=>{for(var n=x.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&Lo(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.j(Mo(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),fa(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],r=[r.popLast().toArray(),r.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Ro(e).J(IDBKeyRange.bound(a,r,!0)).next(e=>{s?.incrementDocumentReadCount(e.length);let t=Ri;for(let r of e){let e=this.Cr(x.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(Ai(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=Ri;var n=Oo(t,r),a=Oo(t,st.max());return Ro(e).ee({index:Wt,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.Cr(x.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new No(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return ko(e).get(Xt).next(e=>(y(!!e,20021),e))}Dr(e,t){return ko(e).put(Xt,t)}Cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=Js(e.yt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=x.fromSegments(r.noDocument.path),t=ma(r.noDocument.readTime);n=R.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return E(56709);{let e=x.fromSegments(r.unknownDocument.path),t=ma(r.unknownDocument.version);n=R.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new v(e[0],e[1]),w.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(w.min()))return e}return R.newInvalidDocument(e)}}function Do(e){return new Ao(e)}class No extends Co{constructor(e,t){super(),this.Nr=e,this.trackRemovals=t,this.Br=new ki(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,u=new D((e,t)=>S(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Br.get(t);if(a.push(this.Nr.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=da(this.Nr.serializer,r),i=(u=u.add(t.path.popLast()),oo(n));o+=i-e.size,a.push(this.Nr.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=da(this.Nr.serializer,r.convertToNoDocument(w.min()));a.push(this.Nr.addEntry(s,t,e))}}),u.forEach(e=>{a.push(this.Nr.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Nr.updateMetadata(s,o)),C.waitFor(a)}getFromCache(e,t){return this.Nr.vr(e,t).next(e=>(this.Br.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Nr.Mr(e,t).next(({documents:r,Or:e})=>(e.forEach((e,t)=>{this.Br.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function ko(e){return r(e,Jt)}function Ro(e){return r(e,Kt)}function Mo(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function Oo(e,t){var r=t.documentKey.path.toArray();return[e,fa(t.readTime),r.slice(0,r.length-2),0(n=e,this.remoteDocumentCache.getEntry(t,r))).next(e=>(null!==n&&is(n.mutation,e,tn.empty(),v.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,L()).next(()=>e))}getLocalViewOfDocuments(e,t,r=L()){let n=Pi();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=Oi();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=Pi();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,L()))}populateOverlays(e,r,t){let n=[];return t.forEach(e=>{r.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,t)=>{r.set(e,t)})})}computeViews(e,t,n,i){let s=Ri,a=Pi(),r=Pi();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof os)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),is(r.mutation,t,r.mutation.getFieldMask(),v.now())):a.set(t.key,tn.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>r.set(e,new Po(t,a.get(e)??null))),r))}recalculateAndSaveOverlays(a,o){let u=Pi(),l=new A((e,t)=>e-t),h=L();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(a,o).next(e=>{for(let n of e)n.keys().forEach(e=>{var t,r=o.get(e);null!==r&&(t=u.get(e)||tn.empty(),t=n.applyToLocalView(r,t),u.set(e,t),r=(l.get(n.batchId)||L()).add(e),l=l.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=l.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=Pi();r.forEach(e=>{var t;h.has(e)||(null!==(t=ns(o.get(e),u.get(e)))&&n.set(e,t),h=h.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return C.waitFor(i)}).next(()=>u)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,x.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):_i(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(r=>{var e=0C.forEach(e,(t,e)=>(n{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,r)).next(()=>this.computeViews(s,i,e,L())).next(e=>({batchId:n,changes:Li(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new x(t)).next(e=>{let t=Oi();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,u=Oi();return this.indexManager.getCollectionParents(n,o).next(e=>C.forEach(e,e=>{t=i,e=e.child(o);var t,r=new pi(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{u=u.insert(e,t)})})}).next(()=>u))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,R.newInvalidDocument(r)))});let i=Oi();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&is(r.mutation,t,tn.empty(),v.now()),Ai(s,t)&&(i=i.insert(e,t))}),i})}}class Fo{constructor(e){this.serializer=e,this.Lr=new Map,this.kr=new Map}getBundleMetadata(e,t){return C.resolve(this.Lr.get(t))}saveBundleMetadata(e,t){return this.Lr.set(t.id,{id:t.id,version:t.version,createTime:V(t.createTime)}),C.resolve()}getNamedQuery(e,t){return C.resolve(this.kr.get(t))}saveNamedQuery(e,t){return this.kr.set(t.name,{name:(t=t).name,query:wa(t.bundledQuery),readTime:V(t.readTime)}),C.resolve()}}class Uo{constructor(){this.overlays=new A(x.comparator),this.qr=new Map}getOverlay(e,t){return C.resolve(this.overlays.get(t))}getOverlays(e,t){let r=Pi();return C.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.St(r,n,t)}),C.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.qr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.qr.delete(r)),C.resolve()}getOverlaysForCollection(e,r,n){let i=Pi(),s=r.length+1,t=new x(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return C.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new A((e,t)=>e-t);for(var s=this.overlays.getIterator();s.hasNext();){let t=s.getNext().value;if(t.getKey().getCollectionGroup()===r&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=Pi(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=Pi(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return C.resolve(a)}St(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.qr.get(n.largestBatchId).delete(r.key);this.qr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new ms(t,r));let i=this.qr.get(t);void 0===i&&(i=L(),this.qr.set(t,i)),this.qr.set(t,i.add(r.key))}}class Bo{constructor(){this.sessionToken=N.EMPTY_BYTE_STRING}getSessionToken(e){return C.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,C.resolve()}}class qo{constructor(){this.Qr=new D(o.$r),this.Ur=new D(o.Kr)}isEmpty(){return this.Qr.isEmpty()}addReference(e,t){var r=new o(e,t);this.Qr=this.Qr.add(r),this.Ur=this.Ur.add(r)}Wr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Gr(new o(e,t))}zr(e,t){e.forEach(e=>this.removeReference(e,t))}jr(e){let t=new x(new T([])),r=new o(t,e),n=new o(t,e+1),i=[];return this.Ur.forEachInRange([r,n],e=>{this.Gr(e),i.push(e.key)}),i}Jr(){this.Qr.forEach(e=>this.Gr(e))}Gr(e){this.Qr=this.Qr.delete(e),this.Ur=this.Ur.delete(e)}Hr(e){var t=new x(new T([])),r=new o(t,e),t=new o(t,e+1);let n=L();return this.Ur.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new o(e,0),t=this.Qr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class o{constructor(e,t){this.key=e,this.Yr=t}static $r(e,t){return x.comparator(e.key,t.key)||S(e.Yr,t.Yr)}static Kr(e,t){return S(e.Yr,t.Yr)||x.comparator(e.key,t.key)}}class jo{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.tr=1,this.Zr=new D(o.$r)}checkEmpty(e){return C.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.tr,s=(this.tr++,0r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return C.resolve(0===this.mutationQueue.length?St:this.tr-1)}getAllMutationBatches(e){return C.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new o(t,0),n=new o(t,Number.POSITIVE_INFINITY),i=[];return this.Zr.forEachInRange([r,n],e=>{var t=this.Xr(e.Yr);i.push(t)}),C.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new D(S);return t.forEach(e=>{var t=new o(e,0),r=new o(e,Number.POSITIVE_INFINITY);this.Zr.forEachInRange([t,r],e=>{n=n.add(e.Yr)})}),C.resolve(this.ti(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;x.isDocumentKey(i)||(i=i.child(""));var s=new o(new x(i),0);let a=new D(S);return this.Zr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Yr)),!0)},s),C.resolve(this.ti(a))}ti(e){let r=[];return e.forEach(e=>{var t=this.Xr(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){y(0===this.ni(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.Zr;return C.forEach(n.mutations,e=>{var t=new o(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Zr=i})}ir(e){}containsKey(e,t){var r=new o(t,0),r=this.Zr.firstAfterOrEqual(r);return C.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,C.resolve()}ni(e,t){return this.ei(e)}ei(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Xr(e){var t=this.ei(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class zo{constructor(e){this.ri=e,this.docs=new A(x.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.ri(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-n,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){var r=this.docs.get(t);return C.resolve(r?r.document.mutableCopy():R.newInvalidDocument(t))}getEntries(e,t){let r=Ri;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():R.newInvalidDocument(e))}),C.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=Ri,a=r.path,t=new x(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||at(it(t),n)<=0||(i.has(t.key)||Ai(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return C.resolve(s)}getAllFromCollectionGroup(e,t,r,n){E(9500)}ii(e,t){return C.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new Go(this)}getSize(e){return C.resolve(this.size)}}class Go extends Co{constructor(e){super(),this.Nr=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Nr.addEntry(r,t)):this.Nr.removeEntry(e)}),C.waitFor(n)}getFromCache(e,t){return this.Nr.getEntry(e,t)}getAllFromCache(e,t){return this.Nr.getEntries(e,t)}}class Ko{constructor(e){this.persistence=e,this.si=new ki(e=>hi(e),ci),this.lastRemoteSnapshotVersion=w.min(),this.highestTargetId=0,this.oi=0,this._i=new qo,this.targetCount=0,this.ai=go.ur()}forEachTarget(e,r){return this.si.forEach((e,t)=>r(t)),C.resolve()}getLastRemoteSnapshotVersion(e){return C.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return C.resolve(this.oi)}allocateTargetId(e){return this.highestTargetId=this.ai.next(),C.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.oi&&(this.oi=t),C.resolve()}Pr(e){this.si.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.ai=new go(t),this.highestTargetId=t),e.sequenceNumber>this.oi&&(this.oi=e.sequenceNumber)}addTargetData(e,t){return this.Pr(t),this.targetCount+=1,C.resolve()}updateTargetData(e,t){return this.Pr(t),C.resolve()}removeTargetData(e,t){return this.si.delete(t.target),this._i.jr(t.targetId),--this.targetCount,C.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.si.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.si.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),C.waitFor(a).next(()=>s)}getTargetCount(e){return C.resolve(this.targetCount)}getTargetData(e,t){var r=this.si.get(t)||null;return C.resolve(r)}addMatchingKeys(e,t,r){return this._i.Wr(t,r),C.resolve()}removeMatchingKeys(t,e,r){this._i.zr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),C.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this._i.jr(t),C.resolve()}getMatchingKeysForTargetId(e,t){var r=this._i.Hr(t);return C.resolve(r)}containsKey(e,t){return C.resolve(this._i.containsKey(t))}}class Qo{constructor(e,t){this.ui={},this.overlays={},this.ci=new Et(0),this.li=!1,this.li=!0,this.hi=new Bo,this.referenceDelegate=e(this),this.Pi=new Ko(this),this.indexManager=new Ha,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Ti(e),new zo(e)),this.serializer=new ca(t),this.Ii=new Fo(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.li=!1,Promise.resolve()}get started(){return this.li}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new Uo,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.ui[e.toKey()];return r||(r=new jo(t,this.referenceDelegate),this.ui[e.toKey()]=r),r}getGlobalsCache(){return this.hi}getTargetCache(){return this.Pi}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ii}runTransaction(e,t,r){p("MemoryPersistence","Starting transaction:",e);let n=new $o(this.ci.next());return this.referenceDelegate.Ei(),r(n).next(e=>this.referenceDelegate.di(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ai(t,r){return C.or(Object.values(this.ui).map(e=>()=>e.containsKey(t,r)))}}class $o extends ut{constructor(e){super(),this.currentSequenceNumber=e}}class Ho{constructor(e){this.persistence=e,this.Ri=new qo,this.Vi=null}static mi(e){return new Ho(e)}get fi(){if(this.Vi)return this.Vi;throw E(60996)}addReference(e,t,r){return this.Ri.addReference(r,t),this.fi.delete(r.toString()),C.resolve()}removeReference(e,t,r){return this.Ri.removeReference(r,t),this.fi.add(r.toString()),C.resolve()}markPotentiallyOrphaned(e,t){return this.fi.add(t.toString()),C.resolve()}removeTarget(e,t){this.Ri.jr(t.targetId).forEach(e=>this.fi.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.fi.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ei(){this.Vi=new Set}di(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return C.forEach(this.fi,e=>{let t=x.fromPath(e);return this.gi(r,t).next(e=>{e||n.removeEntry(t,w.min())})}).next(()=>(this.Vi=null,n.apply(r)))}updateLimboDocument(e,t){return this.gi(e,t).next(e=>{e?this.fi.delete(t.toString()):this.fi.add(t.toString())})}Ti(e){return 0}gi(e,t){return C.or([()=>C.resolve(this.Ri.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ai(e,t)])}}class Wo{constructor(e,t){this.persistence=e,this.pi=new ki(e=>Nt(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=Eo(this,t)}static mi(e,t){return new Wo(e,t)}Ei(){}di(e){return C.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}gr(e){let r=this.wr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}wr(e){let t=0;return this.pr(e,e=>{t++}).next(()=>t)}pr(r,n){return C.forEach(this.pi,(e,t)=>this.br(r,e,t).next(e=>e?C.resolve():n(t)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,r){let n=0,t=this.persistence.getRemoteDocumentCache(),i=t.newChangeBuffer();return t.ii(e,t=>this.br(e,t,r).next(e=>{e||(n++,i.removeEntry(t,w.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.pi.set(t,e.currentSequenceNumber),C.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.pi.set(r,e.currentSequenceNumber),C.resolve()}removeReference(e,t,r){return this.pi.set(r,e.currentSequenceNumber),C.resolve()}updateLimboDocument(e,t){return this.pi.set(t,e.currentSequenceNumber),C.resolve()}Ti(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(Tn(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=dn(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return an(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return Wr(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw E(13486,{value:e})}}(e.data.value)),t}br(e,t,r){return C.or([()=>this.persistence.Ai(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.pi.get(t);return C.resolve(void 0!==e&&r{return e=s,t=e.store(pr),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:w.min().toTimestamp(),targetCount:0},t.put(mr,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(Vt).J().next(e=>{n.deleteObjectStore(Vt),n.createObjectStore(Vt,{keyPath:Ft,autoIncrement:!0}).createIndex(Ut,Bt,{unique:!0});let t=i.store(Vt),r=e.map(e=>t.put(e));return C.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(wr,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.yi(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(Jt),this.wi(s)))),r<7&&7<=n&&(a=a.next(()=>this.Si(s))),r<8&&8<=n&&(a=a.next(()=>this.bi(t,s))),r<9&&9<=n&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&10<=n&&(a=a.next(()=>this.Di(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(_r,{keyPath:"bundleId"}),t.createObjectStore(br,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Rr,{keyPath:Mr})).createIndex(Or,Lr,{unique:!1}),e.createIndex(Pr,Vr,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Kt,{keyPath:Qt})).createIndex($t,Ht),e.createIndex(Wt,Yt)}).next(()=>this.Ci(t,s)).next(()=>t.deleteObjectStore(Mt))),r<14&&14<=n&&(a=a.next(()=>this.Fi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(Ir,{keyPath:"indexId",autoIncrement:!0}).createIndex(Tr,"collectionGroup",{unique:!1}),e.createObjectStore(Er,{keyPath:Sr}).createIndex(xr,Cr,{unique:!1}),e.createObjectStore(Ar,{keyPath:Dr}).createIndex(Nr,kr,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(Er).clear()}).next(()=>{e.objectStore(Ar).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(Fr,{keyPath:"name"})})),a=r<18&&18<=n&&ne()?a.next(()=>{e.objectStore(Er).clear()}).next(()=>{e.objectStore(Ar).clear()}):a}wi(t){let r=0;return t.store(Mt).ee((e,t)=>{r+=oo(t)}).next(()=>{var e={byteSize:r};return t.store(Jt).put(Xt,e)})}yi(n){let e=n.store(Pt),t=n.store(Vt);return e.J().next(e=>C.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,St],[r.userId,r.lastAcknowledgedBatchId]);return t.J(Ut,e).next(e=>C.forEach(e,e=>{y(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=pa(this.serializer,e);return ao(n,r.userId,t).next(()=>{})}))}))}Si(e){let a=e.store(rr),t=e.store(Mt);return e.store(pr).get(mr).next(i=>{let s=[];return t.ee((e,t)=>{let r=new T(e),n=[0,Nt(r)];s.push(a.get(n).next(e=>e?C.resolve():(e=r,a.put({targetId:0,path:Nt(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>C.waitFor(s))})}bi(e,t){e.createObjectStore(yr,{keyPath:vr});let n=t.store(yr),i=new Wa,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:Nt(t)})}};return t.store(Mt).ee({X:!0},(e,t)=>{var r=new T(e);return s(r.popLast())}).next(()=>t.store(Gt).ee({X:!0},([,e],t)=>{var r=Rt(e);return s(r.popLast())}))}Di(e){let n=e.store(Zt);return n.ee((e,t)=>{var r=ya(t),r=va(this.serializer,r);return n.put(r)})}Ci(e,s){let t=s.store(Mt),a=[];return t.ee((e,t)=>{var r,n=s.store(Kt),i=((r=t).document?new x(T.fromString(r.document.name).popFirst(5)):r.noDocument?x.fromSegments(r.noDocument.path):r.unknownDocument?x.fromSegments(r.unknownDocument.path):E(36783)).path.toArray(),i={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>C.waitFor(a))}Fi(e,s){let t=s.store(Vt),a=Do(this.serializer),o=new Qo(Ho.mi,this.serializer.yt);return t.J().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??L();pa(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),C.forEach(r,(e,t)=>{var r=new l(t),n=xa.wt(this.serializer,r),i=o.getIndexManager(r),r=uo.wt(r,this.serializer,i,o.referenceDelegate);return new Vo(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new $r(s,Et.ce),e).next()})})}}function Jo(e){e.createObjectStore(rr,{keyPath:nr}).createIndex(ir,sr,{unique:!0}),e.createObjectStore(Zt,{keyPath:"targetId"}).createIndex(er,tr,{unique:!0}),e.createObjectStore(pr)}let Xo="IndexedDbPersistence",Zo="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 eu{constructor(e,t,r,n,i,s,a,o,u,l,h=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Mi=i,this.window=s,this.document=a,this.xi=u,this.Oi=l,this.Ni=h,this.ci=null,this.li=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Bi=null,this.inForeground=!1,this.Li=null,this.ki=null,this.qi=Number.NEGATIVE_INFINITY,this.Qi=e=>Promise.resolve(),!eu.v())throw new I(b.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new So(this,n),this.$i=t+"main",this.serializer=new ca(o),this.Ui=new dt(this.$i,this.Ni,new Yo(this.serializer)),this.hi=new Aa,this.Pi=new mo(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Do(this.serializer),this.Ii=new Ta,this.window&&this.window.localStorage?this.Ki=this.window.localStorage:(this.Ki=null,!1===l&&d(Xo,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Wi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Gi(),this.zi(),this.ji(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Pi.getHighestSequenceNumber(e));throw new I(b.FAILED_PRECONDITION,Zo)}).then(e=>{this.ci=new Et(e,this.xi)}).then(()=>{this.li=!0}).catch(e=>(this.Ui&&this.Ui.close(),Promise.reject(e)))}Ji(t){return this.Qi=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ui.$(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Mi.enqueueAndForget(async()=>{this.started&&await this.Wi()}))}Wi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>ru(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Hi(t).next(e=>{e||(this.isPrimary=!1,this.Mi.enqueueRetryable(()=>this.Qi(!1)))})}).next(()=>this.Yi(t)).next(e=>this.isPrimary&&!e?this.Zi(t).next(()=>!1):!!e&&this.Xi(t).next(()=>!0))).catch(e=>{if(pt(e))return p(Xo,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return p(Xo,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Mi.enqueueRetryable(()=>this.Qi(e)),this.isPrimary=e})}Hi(e){return tu(e).get(Lt).next(e=>C.resolve(this.es(e)))}ts(e){return ru(e).delete(this.clientId)}async ns(){if(this.isPrimary&&!this.rs(this.qi,18e5)){this.qi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=r(e,wr);return n.J().next(e=>{let t=this.ss(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return C.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Ki)for(var t of e)this.Ki.removeItem(this._s(t.clientId))}}ji(){this.ki=this.Mi.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.Wi().then(()=>this.ns()).then(()=>this.ji()))}es(e){return!!e&&e.ownerId===this.clientId}Yi(t){return this.Oi?C.resolve(!0):tu(t).get(Lt).next(e=>{if(null!==e&&this.rs(e.leaseTimestampMs,5e3)&&!this.us(e.ownerId)){if(this.es(e)&&this.networkEnabled)return!0;if(!this.es(e)){if(e.allowTabSynchronization)return!1;throw new I(b.FAILED_PRECONDITION,Zo)}}return!(!this.networkEnabled||!this.inForeground)||ru(t).J().next(e=>void 0===this.ss(e,5e3).find(e=>{if(this.clientId!==e.clientId){var 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&&p(Xo,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.li=!1,this.cs(),this.ki&&(this.ki.cancel(),this.ki=null),this.ls(),this.hs(),await this.Ui.runTransaction("shutdown","readwrite",[Ot,wr],e=>{let t=new $r(e,Et.ce);return this.Zi(t).next(()=>this.ts(t))}),this.Ui.close(),this.Ps()}ss(e,t){return e.filter(e=>this.rs(e.updateTimeMs,t)&&!this.us(e.clientId))}Ts(){return this.runTransaction("getActiveClients","readonly",e=>ru(e).J().next(e=>this.ss(e,18e5).map(e=>e.clientId)))}get started(){return this.li}getGlobalsCache(){return this.hi}getMutationQueue(e,t){return uo.wt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Pi}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new Xa(e,this.serializer.yt.databaseId)}getDocumentOverlayCache(e){return xa.wt(this.serializer,e)}getBundleCache(){return this.Ii}runTransaction(t,r,n){p(Xo,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.Ni)?Qr:17===e?Kr:16===e?Gr:15===e?zr:14===e?jr:13===e?qr:12===e?Br:11===e?Ur:void E(60245);let a;return this.Ui.runTransaction(t,i,s,e=>(a=new $r(e,this.ci?this.ci.next():Et.ce),"readwrite-primary"===r?this.Hi(a).next(e=>!!e||this.Yi(a)).next(e=>{if(e)return n(a);throw d(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Mi.enqueueRetryable(()=>this.Qi(!1)),new I(b.FAILED_PRECONDITION,ot)}).next(e=>this.Xi(a).next(()=>e)):this.Is(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Is(e){return tu(e).get(Lt).next(e=>{if(null!==e&&this.rs(e.leaseTimestampMs,5e3)&&!this.us(e.ownerId)&&!this.es(e)&&!(this.Oi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new I(b.FAILED_PRECONDITION,Zo)})}Xi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return tu(e).put(Lt,t)}static v(){return dt.v()}Zi(e){let t=tu(e);return t.get(Lt).next(e=>this.es(e)?(p(Xo,"Releasing primary lease."),t.delete(Lt)):C.resolve())}rs(e,t){var r=Date.now();return!(e `+r),1))}Gi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Li=()=>{this.Mi.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.Wi()))},this.document.addEventListener("visibilitychange",this.Li),this.inForeground="visible"===this.document.visibilityState)}ls(){this.Li&&(this.document.removeEventListener("visibilitychange",this.Li),this.Li=null)}zi(){"function"==typeof this.window?.addEventListener&&(this.Bi=()=>{this.cs();var e=/(?:Version|Mobile)\/1[456]/;re()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Mi.enterRestrictedMode(!0),this.Mi.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Bi))}hs(){this.Bi&&(this.window.removeEventListener("pagehide",this.Bi),this.Bi=null)}us(e){try{var t=null!==this.Ki?.getItem(this._s(e));return p(Xo,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return d(Xo,"Failed to get zombied client id.",e),!1}}cs(){if(this.Ki)try{this.Ki.setItem(this._s(this.clientId),String(Date.now()))}catch(e){d("Failed to set zombie client id.",e)}}Ps(){if(this.Ki)try{this.Ki.removeItem(this._s(this.clientId))}catch(e){}}_s(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function tu(e){return r(e,Ot)}function ru(e){return r(e,wr)}function nu(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class iu{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Es=r,this.ds=n}static As(e,t){let r=L(),n=L();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 iu(e,t.fromCache,r,n)}}class su{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class au{constructor(){this.Rs=!1,this.Vs=!1,this.fs=100,this.gs=re()?8:0{i.result=e}).next(()=>{if(!i.result)return this.ws(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new su;return this.Ss(r,n,t).next(e=>{if(i.result=e,this.Vs)return this.bs(r,n,t,e.size)})}}).next(()=>i.result)}bs(e,t,r,n){return r.documentReadCountthis.gs*n?(_e()<=c.DEBUG&&p("QueryEngine","The SDK decides to create cache indexes for query:",Ci(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Ii(t))):C.resolve())}ys(i,s){if(wi(s))return C.resolve(null);let t=Ii(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=Ei(s,null,"F"),t=Ii(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=L(...e);return this.ps.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.Ds(s,r);return this.Cs(s,t,n,e.readTime)?this.ys(i,Ei(s,null,"F")):this.vs(i,t,s,e)}))})))}ws(r,n,i,s){return wi(n)||s.isEqual(w.min())?C.resolve(null):this.ps.getDocuments(r,i).next(e=>{var t=this.Ds(n,e);return this.Cs(n,t,i,s)?C.resolve(null):(_e()<=c.DEBUG&&p("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),Ci(n)),this.vs(r,t,n,nt(s,Je)).next(e=>e))})}Ds(r,e){let n=new D(Ni(r));return e.forEach((e,t)=>{Ai(r,t)&&(n=n.add(t))}),n}Cs(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let ou="LocalStore",uu=3e8;class lu{constructor(e,t,r,n){this.persistence=e,this.Fs=t,this.serializer=n,this.Ms=new A(S),this.xs=new ki(e=>hi(e),ci),this.Os=new Map,this.Ns=e.getRemoteDocumentCache(),this.Pi=e.getTargetCache(),this.Ii=e.getBundleCache(),this.Bs(r)}Bs(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new Vo(this.Ns,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Ns.setIndexManager(this.indexManager),this.Fs.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.Ms))}}function hu(e,t,r,n){return new lu(e,t,r,n)}async function cu(e,t){let o=e;return o.persistence.runTransaction("Handle user change","readonly",s=>{let a;return o.mutationQueue.getAllMutationBatches(s).next(e=>(a=e,o.Bs(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=L();for(let i of a){t.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}for(let i of e){r.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}return o.localDocuments.getDocuments(s,n).next(e=>({Ls:e,removedBatchIds:t,addedBatchIds:r}))})})}function du(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.Ns.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=C.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);y(null!==t,48541),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument())&&(e.setReadTime(n.commitVersion),i.addEntry(e))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))})(i,e,n,r).next(()=>r.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,n.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,(e=>{let t=L();for(let r=0;ri.localDocuments.getDocuments(e,t))})}function fu(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Pi.getLastRemoteSnapshotVersion(e))}function gu(e,l){let h=e,c=l.snapshotVersion,d=h.Ms;return h.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=h.Ns.newChangeBuffer({trackRemovals:!0}),u=(d=h.Ms,[]),t=(l.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){u.push(h.Pi.removeMatchingKeys(o,t.removedDocuments,r).next(()=>h.Pi.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==l.targetMismatches.get(r)?e=e.withResumeToken(N.EMPTY_BYTE_STRING,w.min()).withLastLimboFreeSnapshotVersion(w.min()):0=uu||0{l.resolvedLimboDocuments.has(e)&&u.push(h.persistence.referenceDelegate.updateLimboDocument(o,e))}),u.push(mu(o,e,l.documentUpdates).next(e=>{t=e.ks,r=e.qs})),!c.isEqual(w.min())){let e=h.Pi.getLastRemoteSnapshotVersion(o).next(e=>h.Pi.setTargetsMetadata(o,o.currentSequenceNumber,c));u.push(e)}return C.waitFor(u).next(()=>e.apply(o)).next(()=>h.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(h.Ms=d,e))}function mu(e,s,t){let r=L(),a=L();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=Ri;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(w.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!r.isValidDocument()||0{let r;return i.Pi.getTargetData(t,n).next(e=>e?(r=e,C.resolve(r)):i.Pi.allocateTargetId(t).next(e=>(r=new ha(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Pi.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.Ms.get(e.targetId);return(null===t||0n.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!pt(e))throw e;p(ou,`Failed to update sequence numbers for target ${t}: `+e)}n.Ms=n.Ms.remove(t),n.xs.delete(i.target)}function vu(e,a,o){let u=e,l=w.min(),h=L();return u.persistence.runTransaction("Execute query","readwrite",t=>{return e=u,r=t,n=Ii(a),(void 0!==(s=(i=e).xs.get(n))?C.resolve(i.Ms.get(s)):i.Pi.getTargetData(r,n)).next(e=>{if(e)return l=e.lastLimboFreeSnapshotVersion,u.Pi.getMatchingKeysForTargetId(t,e.targetId).next(e=>{h=e})}).next(()=>u.Fs.getDocumentsMatchingQuery(t,a,o?l:w.min(),o?h:L())).next(e=>(bu(u,Di(a),e),{documents:e,Qs:h}));var e,r,n,i,s})}function wu(e,t){let r=e,n=r.Pi,i=r.Ms.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.At(e,t).next(e=>e?e.target:null))}function _u(e,t){let r=e,n=r.Os.get(t)||w.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.Ns.getAllFromCollectionGroup(e,t,nt(n,Je),Number.MAX_SAFE_INTEGER)).then(e=>(bu(r,t,e),e))}function bu(e,t,r){let n=e.Os.get(t)||w.min();r.forEach((e,t)=>{0this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.no,JSON.stringify(e))}getAllActiveQueryTargets(){return this.lo(this.Zs)}isActiveQueryTarget(r){let n=!1;return this.Zs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.ho(e,"pending")}updateMutationState(e,t,r){this.ho(e,t,r),this.Po(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(Cu(this.persistenceKey,t));var n;e&&(n=Nu.Ws(t,e))&&(r=n.state)}return e&&this.To.zs(t),this.ao(),r}removeLocalQueryTarget(e){this.To.js(e),this.ao()}isLocalQueryTarget(e){return this.To.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(Cu(this.persistenceKey,e))}updateQueryState(e,t,r){this.Io(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.Po(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Eo(e)}notifyBundleLoaded(e){this.Ao(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Hs),this.removeItem(this.eo),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return p(Au,"READ",e,t),t}setItem(e,t){p(Au,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){p(Au,"REMOVE",e),this.storage.removeItem(e)}Ys(e){let t=e;t.storageArea===this.storage&&(p(Au,"EVENT",t.key,t.newValue),t.key===this.eo?d("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Mi.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.ro.test(t.key))return null==t.newValue?(e=this.Ro(t.key),this.Vo(e,null)):(e=this.mo(t.key,t.newValue))?this.Vo(e.clientId,e):void 0;if(this.io.test(t.key)){if(null!==t.newValue){var e=this.fo(t.key,t.newValue);if(e)return this.po(e)}}else if(this.so.test(t.key)){if(null!==t.newValue){var e=this.yo(t.key,t.newValue);if(e)return this.wo(e)}}else if(t.key===this.oo){if(null!==t.newValue){var e=this.uo(t.newValue);if(e)return this.co(e)}}else t.key===this.no?(e=(e=>{let t=Et.ce;if(null!=e)try{var r=JSON.parse(e);y("number"==typeof r,30636,{So:e}),t=r}catch(e){d(Au,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==Et.ce&&this.sequenceNumberHandler(e):t.key===this._o&&(e=this.bo(t.newValue),await Promise.all(e.map(e=>this.syncEngine.Do(e))))}}else this.Xs.push(t)}))}get To(){return this.Zs.get(this.Js)}ao(){this.setItem(this.eo,this.To.Gs())}ho(e,t,r){var n=new Du(this.currentUser,e,t,r),i=Su(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Gs())}Po(e){var t=Su(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Eo(e){var t={clientId:this.Js,onlineState:e};this.storage.setItem(this.oo,JSON.stringify(t))}Io(e,t,r){var n=Cu(this.persistenceKey,e),i=new Nu(e,t,r);this.setItem(n,i.Gs())}Ao(e){var t=JSON.stringify(Array.from(e));this.setItem(this._o,t)}Ro(e){var t=this.ro.exec(e);return t?t[1]:null}mo(e,t){var r=this.Ro(e);return ku.Ws(r,t)}fo(e,t){var r=this.io.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return Du.Ws(new l(r),n,t)}yo(e,t){var r=this.so.exec(e),r=Number(r[1]);return Nu.Ws(r,t)}uo(e){return Ru.Ws(e)}bo(e){return JSON.parse(e)}async po(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Co(e.batchId,e.state,e.error);p(Au,"Ignoring mutation for non-active user "+e.user.uid)}wo(e){return this.syncEngine.vo(e.targetId,e.state,e.error)}Vo(e,t){let r=t?this.Zs.insert(e,t):this.Zs.remove(e),n=this.lo(this.Zs),i=this.lo(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Fo(s,a).then(()=>{this.Zs=r})}co(e){this.Zs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}lo(e){let r=Ui;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class Lu{constructor(){this.Mo=new Mu,this.xo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.Mo.zs(e),this.xo[e]||"not-current"}updateQueryState(e,t,r){this.xo[e]=t}removeLocalQueryTarget(e){this.Mo.js(e)}isLocalQueryTarget(e){return this.Mo.activeTargetIds.has(e)}clearQueryState(e){delete this.xo[e]}getAllActiveQueryTargets(){return this.Mo.activeTargetIds}isActiveQueryTarget(e){return this.Mo.activeTargetIds.has(e)}start(){return this.Mo=new Mu,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class Pu{Oo(e){}shutdown(){}}let Vu="ConnectivityMonitor";class Fu{constructor(){this.No=()=>this.Bo(),this.Lo=()=>this.ko(),this.qo=[],this.Qo()}Oo(e){this.qo.push(e)}shutdown(){window.removeEventListener("online",this.No),window.removeEventListener("offline",this.Lo)}Qo(){window.addEventListener("online",this.No),window.addEventListener("offline",this.Lo)}Bo(){p(Vu,"Network connectivity changed: AVAILABLE");for(var e of this.qo)e(0)}ko(){p(Vu,"Network connectivity changed: UNAVAILABLE");for(var e of this.qo)e(1)}static v(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let Uu=null;function Bu(){return null===Uu?Uu=268435456+Math.round(2147483648*Math.random()):Uu++,"0x"+Uu.toString(16)}let qu="RestConnection",ju={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class zu{constructor(e){this.Yo=e.Yo,this.Zo=e.Zo}Xo(e){this.e_=e}t_(e){this.n_=e}r_(e){this.i_=e}onMessage(e){this.s_=e}close(){this.Zo()}send(e){this.Yo(e)}o_(){this.e_()}__(){this.n_()}a_(e){this.i_(e)}u_(e){this.s_(e)}}let Gu="WebChannelConnection";class Ku extends class{get $o(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.Uo=t+"://"+e.host,this.Ko=`projects/${r}/databases/`+n,this.Wo=this.databaseId.database===mn?"project_id="+r:`project_id=${r}&database_id=`+n}Go(t,e,r,n,i){let s=Bu(),a=this.zo(t,e.toUriEncodedString());p(qu,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Ko,"x-goog-request-params":this.Wo},u=(this.jo(o,n,i),new URL(a)).host,u=Y(u);return this.Jo(t,a,o,r,u).then(e=>(p(qu,`Received RPC '${t}' ${s}: `,e),e),e=>{throw be(qu,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Ho(e,t,r,n,i,s){return this.Go(e,t,r,n,i)}jo(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+ve,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}zo(e,t){var r=ju[e];return this.Uo+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.c_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}Jo(u,t,r,n,e){let l=Bu();return new Promise((s,a)=>{let o=new ar;o.setWithCredentials(!0),o.listenOnce(ur.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case lr.NO_ERROR:var e=o.getResponseJson();p(Gu,`XHR for RPC '${u}' ${l} received:`,JSON.stringify(e)),s(e);break;case lr.TIMEOUT:p(Gu,`RPC '${u}' ${l} timed out`),a(new I(b.DEADLINE_EXCEEDED,"Request time out"));break;case lr.HTTP_ERROR:var t=o.getStatus();if(p(Gu,`RPC '${u}' ${l} failed with status:`,t,"response text:",o.getResponseText()),0{d?p(Gu,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(p(Gu,`Opening RPC '${i}' stream ${s} transport.`),h.open(),c=!0),p(Gu,`RPC '${i}' stream ${s} sending:`,e),h.send(e))},Zo:()=>h.close()}),g=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return g(h,or.EventType.OPEN,()=>{d||(p(Gu,`RPC '${i}' stream ${s} transport opened.`),f.o_())}),g(h,or.EventType.CLOSE,()=>{d||(d=!0,p(Gu,`RPC '${i}' stream ${s} transport closed`),f.a_(),this.E_(h))}),g(h,or.EventType.ERROR,e=>{d||(d=!0,be(Gu,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),f.a_(new I(b.UNAVAILABLE,"The operation could not be completed")))}),g(h,or.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(y(!!t,16349),t),n=n?.error||n[0]?.error;if(n){p(Gu,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=m[e];if(void 0!==t)return vs(t)})(e),r=n.message;void 0===t&&(t=b.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,f.a_(new I(t,r)),h.close()}else p(Gu,`RPC '${i}' stream ${s} received:`,t),f.u_(t)}}),g(a,cr.STAT_EVENT,e=>{e.stat===hr.PROXY?p(Gu,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===hr.NOPROXY&&p(Gu,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{f.__()},0),f}terminate(){this.c_.forEach(e=>e.close()),this.c_=[]}I_(e){this.c_.push(e)}E_(t){this.c_=this.c_.filter(e=>e===t)}}function Qu(){return"undefined"!=typeof window?window:null}function $u(){return"undefined"!=typeof document?document:null}function Hu(e){return new Vs(e,!0)}class Wu{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Mi=e,this.timerId=t,this.d_=r,this.A_=n,this.R_=i,this.V_=0,this.m_=null,this.f_=Date.now(),this.reset()}reset(){this.V_=0}g_(){this.V_=this.R_}p_(e){this.cancel();var t=Math.floor(this.V_+this.y_()),r=Math.max(0,Date.now()-this.f_),n=Math.max(0,t-r);0(this.f_=Date.now(),e())),this.V_*=this.A_,this.V_this.R_&&(this.V_=this.R_)}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.V_}}let Yu="PersistentStream";class Ju{constructor(e,t,r,n,i,s,a,o){this.Mi=e,this.S_=r,this.b_=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 Wu(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.Mi.enqueueAfterDelay(this.S_,6e4,()=>this.k_()))}q_(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===b.RESOURCE_EXHAUSTED?(d(t.toString()),d("Using maximum backoff delay to prevent overloading the backend."),this.M_.g_()):t&&t.code===b.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.K_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.r_(t)}K_(){}auth(){this.state=1;let e=this.W_(this.D_),r=this.D_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.D_===r&&this.G_(e,t)},t=>{e(()=>{var e=new I(b.UNKNOWN,"Fetching auth token failed: "+t.message);return this.z_(e)})})}G_(e,t){let r=this.W_(this.D_);this.stream=this.j_(e,t),this.stream.Xo(()=>{r(()=>this.listener.Xo())}),this.stream.t_(()=>{r(()=>(this.state=2,this.v_=this.Mi.enqueueAfterDelay(this.b_,1e4,()=>(this.O_()&&(this.state=3),Promise.resolve())),this.listener.t_()))}),this.stream.r_(e=>{r(()=>this.z_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.F_?this.J_(e):this.onNext(e))})}N_(){this.state=5,this.M_.p_(async()=>{this.state=0,this.start()})}z_(e){return p(Yu,"close with error: "+e),this.stream=null,this.close(4,e)}W_(t){return e=>{this.Mi.enqueueAndForget(()=>this.D_===t?e():(p(Yu,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class Xu extends Ju{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=i}j_(e,t){return this.connection.T_("Listen",e,t)}J_(e){return this.onNext(e)}onNext(e){this.M_.reset();var t=((e,t)=>{let r;if("targetChange"in t){t.targetChange;var n="NO_CHANGE"===(u=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===u?1:"REMOVE"===u?2:"CURRENT"===u?3:"RESET"===u?4:E(39313,{state:u}),i=t.targetChange.targetIds||[],s=(u=t.targetChange.resumeToken,e.useProto3Json?(y(void 0===u||"string"==typeof u,58123),N.fromBase64String(u||"")):(y(void 0===u||u instanceof Buffer||u instanceof Uint8Array,16193),N.fromUint8Array(u||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(u=a).code?b.UNKNOWN:vs(u.code),new I(a,u.message||""));r=new Ds(n,i,s,a||null)}else if("documentChange"in t){t.documentChange;var n=t.documentChange,i=(n.document,n.document.name,n.document.updateTime,Ks(e,n.document.name)),s=V(n.document.updateTime),a=n.document.createTime?V(n.document.createTime):w.min(),o=new jn({mapValue:{fields:n.document.fields}}),i=R.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new Cs(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,Ks(e,n.document)),o=n.readTime?V(n.readTime):w.min(),i=R.newNoDocument(s,o),s=n.removedTargetIds||[];r=new Cs([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,Ks(e,o.document)),s=o.removedTargetIds||[];r=new Cs([],s,n,null)}else{if(!("filter"in t))return E(11601,{Rt:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new ps(i,o),n=e.targetId;r=new As(n,s)}}var u;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?V(r.readTime):w.min();return this.listener.H_(t,r)}Y_(e){var t={},r=(t.database=Hs(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=di(e)?{documents:ta(t,e)}:{query:ra(t,e).ft}).targetId=r.targetId,0Xs(this.serializer,e))};this.q_(t)}}class el extends class{}{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 I(b.FAILED_PRECONDITION,"The client has already been terminated.")}Go(r,n,i,s){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Go(r,js(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}Ho(r,n,i,s,a){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Ho(r,js(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}terminate(){this.ia=!0,this.connection.terminate()}}class tl{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++,1<=this.oa&&(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){var t=`Could not reach Cloud Firestore backend. ${e} +This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.aa?(d(t),this.aa=!1):p("OnlineStateTracker",t)}Pa(){null!==this._a&&(this._a.cancel(),this._a=null)}}let rl="RemoteStore";class nl{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.da=[],this.Aa=i,this.Aa.Oo(e=>{r.enqueueAndForget(async()=>{var e;dl(this)&&(p(rl,"Restarting streams for network reachability change."),(e=this).Ea.add(4),await sl(e),e.Ra.set("Unknown"),e.Ea.delete(4),await il(e))})}),this.Ra=new tl(r,n)}}async function il(e){if(dl(e))for(var t of e.da)await t(!0)}async function sl(e){for(var t of e.da)await t(!1)}function al(e,t){var r=e;r.Ia.has(t.targetId)||(r.Ia.set(t.targetId,t),cl(r)?hl(r):bl(r).O_()&&ul(r,t))}function ol(e,t){var r=e,n=bl(r);r.Ia.delete(t),n.O_()&&ll(r,t),0===r.Ia.size&&(n.O_()?n.L_():dl(r)&&r.Ra.set("Unknown"))}function ul(e,t){var r;e.Va.Ue(t.targetId),(0t.remoteSyncer.getRemoteKeysForTarget(e),At:e=>t.Ia.get(e)||null,ht:()=>t.datastore.serializer.databaseId}),bl(t).start(),t.Ra.ua()}function cl(e){return dl(e)&&!bl(e).x_()&&0fu(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{p(rl,"Retrying IndexedDB access"),await r(),e.Ea.delete(1),await il(e)})}function ml(t,r){return r().catch(e=>gl(t,e,r))}async function pl(e){var t,r,n,i,s=e,a=Il(s);let o=0{let r=e;return r.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=St),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.Ta.length&&a.L_();break}o=e.batchId,t=s,r=e,n=void 0,t.Ta.push(r),(n=Il(t)).O_()&&n.X_&&n.ea(r.mutations)}catch(e){await gl(s,e)}yl(s)&&vl(s)}function yl(e){return dl(e)&&!Il(e).x_()&&0{ul(r,e)})}).bind(null,t),r_:(async function(e,t){fl(e),cl(e)?(e.Ra.ha(t),hl(e)):e.Ra.set("Unknown")}).bind(null,t),H_:(async function(t,e,r){if(t.Ra.set("Online"),e instanceof Ds&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.Ia.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.Ia.delete(n),i.Va.removeTarget(n))}catch(r){p(rl,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await gl(t,r)}else if(e instanceof Cs?t.Va.Ze(e):e instanceof As?t.Va.st(e):t.Va.tt(e),!r.isEqual(w.min()))try{let e=await fu(t.localStore);0<=r.compareTo(e)&&(u=r,(l=(o=t).Va.Tt(u)).targetChanges.forEach((e,t)=>{var r;0{var r=o.Ia.get(e);r&&(o.Ia.set(e,r.withResumeToken(N.EMPTY_BYTE_STRING,r.snapshotVersion)),ll(o,e),r=new ha(r.target,e,t,r.sequenceNumber),ul(o,r))}),await o.remoteSyncer.applyRemoteEvent(l))}catch(e){p(rl,"Failed to raise snapshot:",e),await gl(t,e)}var o,u,l}).bind(null,t)},(i=e).sa(),new Xu(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.da.push(async e=>{e?(t.ma.B_(),cl(t)?hl(t):t.Ra.set("Unknown")):(await t.ma.stop(),fl(t))})),t.ma;var e,r,n,i}function Il(t){return t.fa||(t.fa=(e=t.datastore,r=t.asyncQueue,n={Xo:()=>Promise.resolve(),t_:(async function(e){Il(e).ra()}).bind(null,t),r_:(async function(e,t){if(t&&Il(e).X_){var r=e,n=t;if(ys(t=n.code)&&t!==b.ABORTED){let e=r.Ta.shift();Il(r).B_(),await ml(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await pl(r)}await 0}yl(e)&&vl(e)}).bind(null,t),ta:(async function(e){var t,r=Il(e);for(t of e.Ta)r.ea(t.mutations)}).bind(null,t),na:(async function(e,t,r){let n=e.Ta.shift(),i=gs.from(n,t,r);await ml(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await pl(e)}).bind(null,t)},(i=e).sa(),new Zu(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.da.push(async e=>{e?(t.fa.B_(),await pl(t)):(await t.fa.stop(),0{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){var s=Date.now()+r,s=new Tl(e,t,s,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 I(b.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 El(e,t){if(d("AsyncQueue",t+": "+e),pt(e))return new I(b.UNAVAILABLE,t+": "+e);throw e}class Sl{static emptySet(e){return new Sl(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||x.comparator(e.key,t.key):(e,t)=>x.comparator(e.key,t.key),this.keyedMap=Oi(),this.sortedSet=new A(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){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(r){this.sortedSet.inorderTraversal((e,t)=>(r(e),!1))}add(e){var t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof Sl))return!1;if(this.size!==e.size)return!1;for(var r=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(!e.isEqual(t))return!1}return!0}toString(){let t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){var r=new Sl;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class xl{constructor(){this.ga=new A(x.comparator)}track(e){var 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}):E(63341,{Rt:e,pa:r})}ya(){let r=[];return this.ga.inorderTraversal((e,t)=>{r.push(t)}),r}}class Cl{constructor(e,t,r,n,i,s,a,o,u){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=u}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new Cl(e,t,Sl.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)&&Si(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;var t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let n=0;ne.Da())}}class Dl{constructor(){this.queries=Nl(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e,r,t,n;e=this,r=new I(b.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=Nl(),n.forEach((e,t)=>{for(let e of t.Sa)e.onError(r)})}}function Nl(){return new ki(e=>xi(e),Si)}async function kl(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.ba()&&r.Da()&&(n=2):(s=new Al,n=r.Da()?0:1);try{switch(n){case 0:s.wa=await e.onListen(i,!0);break;case 1:s.wa=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=El(t,`Initialization of query '${Ci(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.Sa.push(r),r.va(e.onlineState),s.wa&&r.Fa(s.wa)&&Ml(e)}async function Rl(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.Sa.indexOf(t);0<=e&&(s.Sa.splice(e,1),0===s.Sa.length?i=t.Da()?0:1:!s.ba()&&t.Da()&&(i=2))}switch(i){case 0:return r.queries.delete(n),r.onUnlisten(n,!0);case 1:return r.queries.delete(n),r.onUnlisten(n,!1);case 2:return r.onLastRemoteStoreUnlisten(n);default:return}}function Ml(e){e.Ca.forEach(e=>{e.next()})}(pe=pe||{}).Ma="default",pe.Cache="cache";class Ol{constructor(e,t,r){this.query=e,this.xa=t,this.Oa=!1,this.Na=null,this.onlineState="Unknown",this.options=r||{}}Fa(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new Cl(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Oa?this.Ba(t)&&(this.xa.next(t),e=!0):this.La(t,this.onlineState)&&(this.ka(t),e=!0),this.Na=t,e}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.qa||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Ba(e){var t;return 0{let i=r,s=L(),a=Ri;for(let r of e){let e=n.$s(r.metadata.name),t=(r.document&&(s=s.add(e)),n.Us(r));t.setReadTime(n.Ks(r.metadata.readTime)),a=a.insert(e,t)}let o=i.Ns.newChangeBuffer({trackRemovals:!0}),u=await pu(i,(r=t,Ii(vi(T.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>mu(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Pi.removeMatchingKeysForTargetId(t,u.targetId).next(()=>i.Pi.addMatchingKeys(t,s,u.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.ks,e.qs)).next(()=>e.ks)))})(e,new Pl(this.serializer),this.Wa,this.Ua.id),r=this.za(this.documents);for(let t of this.Ka)await(async(e,r,n=L())=>{let i=await pu(e,Ii(wa(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=V(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Ii.saveNamedQuery(e,r):(t=i.withResumeToken(N.EMPTY_BYTE_STRING,t),s.Ms=s.Ms.insert(t.targetId,t),s.Pi.updateTargetData(e,t).next(()=>s.Pi.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Pi.addMatchingKeys(e,n,i.targetId)).next(()=>s.Ii.saveNamedQuery(e,r)))})})(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,Ja:this.collectionGroups,Ha:t}}}function Fl(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class Ul{constructor(e){this.key=e}}class Bl{constructor(e){this.key=e}}class ql{constructor(e,t){this.query=e,this.Ya=t,this.Za=null,this.hasCachedResults=!1,this.current=!1,this.Xa=L(),this.mutatedKeys=L(),this.eu=Ni(e),this.tu=new Sl(this.eu)}get nu(){return this.Ya}ru(e,t){let o=t?t.iu:new xl,u=(t||this).tu,l=(t||this).mutatedKeys,h=u,c=!1,d="F"===this.query.limitType&&u.size===this.query.limit?u.last():null,f="L"===this.query.limitType&&u.size===this.query.limit?u.first():null;if(e.inorderTraversal((e,t)=>{var r=u.get(e),n=Ai(this.query,t)?t:null,i=!!r&&this.mutatedKeys.has(r.key),s=!!n&&(n.hasLocalMutations||this.mutatedKeys.has(n.key)&&n.hasCommittedMutations);let a=!1;r&&n?r.data.isEqual(n.data)?i!==s&&(o.track({type:3,doc:n}),a=!0):!this.su(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0this.query.limit;){let e="F"===this.query.limitType?h.last():h.first();h=h.delete(e.key),l=l.delete(e.key),o.track({type:1,doc:e})}return{tu:h,iu:o,Cs:c,mutatedKeys:l}}su(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.tu,s=(this.tu=e.tu,this.mutatedKeys=e.mutatedKeys,e.iu.ya()),a=(s.sort((e,t)=>{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 E(20277,{Rt:e})}})(r)-i(n)||this.eu(e.doc,t.doc);var r,n,i}),this.ou(r),n=n??!1,t&&!n?this._u():[]),o=0===this.Xa.size&&this.current&&!n?1:0,u=o!==this.Za;return this.Za=o,0!==s.length||u?{snapshot:new Cl(this.query,e.tu,i,s,e.mutatedKeys,0==o,u,!1,!!r&&0this.Ya=this.Ya.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ya=this.Ya.delete(e)),this.current=e.current)}_u(){if(!this.current)return[];let t=this.Xa,r=(this.Xa=L(),this.tu.forEach(e=>{this.uu(e.key)&&(this.Xa=this.Xa.add(e.key))}),[]);return t.forEach(e=>{this.Xa.has(e)||r.push(new Bl(e))}),this.Xa.forEach(e=>{t.has(e)||r.push(new Ul(e))}),r}cu(e){this.Ya=e.Qs,this.Xa=L();var t=this.ru(e.documents);return this.applyChanges(t,!0)}lu(){return Cl.fromInitialDocuments(this.query,this.tu,this.mutatedKeys,0===this.Za,this.hasCachedResults)}}let jl="SyncEngine";class zl{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class Gl{constructor(e){this.key=e,this.hu=!1}}class Kl{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 ki(e=>xi(e),Si),this.Iu=new Map,this.Eu=new Set,this.du=new A(x.comparator),this.Au=new Map,this.Ru=new qo,this.Vu={},this.mu=new Map,this.fu=go.cr(),this.onlineState="Unknown",this.gu=void 0}get isPrimaryClient(){return!0===this.gu}}async function Ql(e,t,r,n){var i=await pu(e.localStore,Ii(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await $l(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&al(e.remoteStore,i),o}async function $l(n,e,t,r,i){n.pu=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.ru(r);i.Cs&&(i=await vu(e.localStore,t.query,!1).then(({documents:e})=>t.view.ru(e,i)));var s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,s,a);return nh(e,t.targetId,s.au),s.snapshot})(n,e,t,r);var s=await vu(n.localStore,e,!0),a=new ql(e,s.Qs),s=a.ru(s.documents),o=xs.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(nh(n,t,s.au),new zl(e,t,a));return n.Tu.set(e,o),n.Iu.has(t)?n.Iu.get(t).push(e):n.Iu.set(t,[e]),s.snapshot}async function Hl(t,e,r){var n=hh(t);try{let t=await((e,i)=>{let s=e,a=v.now(),o=i.reduce((e,t)=>e.add(t.key),L()),u,l;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=Ri,r=L();return s.Ns.getEntries(n,o).next(e=>{(t=e).forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{u=e;var t=[];for(let r of i){let e=((e,r)=>{let n=null;for(var i of e.fieldTransforms){let e=r.data.field(i.field),t=Gi(i.transform,e||null);null!=t&&(n=null===n?jn.empty():n).set(i.field,t)}return n||null})(r,u.get(r.key).overlayedDocument);null!=e&&t.push(new os(r.key,e,function i(e){let s=[];return Wr(e.fields,(e,r)=>{var n=new h([e]);if(Ln(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new tn(s)}(e.value.mapValue),P.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(l=e).applyToLocalDocumentSet(u,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:l.batchId,changes:Li(u)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Vu[i.currentUser.toKey()];e=(e=e||new A(S)).insert(s,a),i.Vu[i.currentUser.toKey()]=e}await sh(n,t.changes),await pl(n.remoteStore)}catch(t){let e=El(t,"Failed to persist write");r.reject(e)}}async function Wl(e,t){let n=e;try{let e=await gu(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Au.get(t);r&&(y(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1,22616),0{var r=t.view.va(i);r.snapshot&&n.push(r.snapshot)});{t=s.eventManager;var a=i;var o=t;o.onlineState=a;let r=!1;o.queries.forEach((e,t)=>{for(let e of t.Sa)e.va(a)&&(r=!0)}),r&&Ml(o)}n.length&&s.Pu.H_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function Jl(e,t,r){var n=e;try{let e=await((e,n)=>{let i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let r;return i.mutationQueue.lookupMutationBatch(t,n).next(e=>(y(null!==e,37113),r=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,r,n)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r)).next(()=>i.localDocuments.getDocuments(t,r))})})(n.localStore,t);eh(n,t,r),Zl(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await sh(n,e)}catch(r){await lt(r)}}async function Xl(t,r){let n=t;dl(n.remoteStore)||p(jl,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{let e=await(e=>{let t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))})(n.localStore);var i;e===St?r.resolve():((i=n.mu.get(e)||[]).push(r),n.mu.set(e,i))}catch(t){let e=El(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function Zl(e,t){(e.mu.get(t)||[]).forEach(e=>{e.resolve()}),e.mu.delete(t)}function eh(e,t,r){var n=e;let i=n.Vu[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Vu[n.currentUser.toKey()]=i}}function th(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.Iu.get(e))t.Tu.delete(n),r&&t.Pu.yu(n,r);t.Iu.delete(e),t.isPrimaryClient&&t.Ru.jr(e).forEach(e=>{t.Ru.containsKey(e)||rh(t,e)})}function rh(e,t){e.Eu.delete(t.path.canonicalString());var r=e.du.get(t);null!==r&&(ol(e.remoteStore,r),e.du=e.du.remove(t),e.Au.delete(r),ih(e))}function nh(e,t,r){for(var n of r)n instanceof Ul?(e.Ru.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.du.get(a)||i.Eu.has(o)||(p(jl,"New document in limbo: "+a),i.Eu.add(o),ih(i))):n instanceof Bl?(p(jl,"Document no longer in limbo: "+n.key),e.Ru.removeReference(n.key,t),e.Ru.containsKey(n.key)||rh(e,n.key)):E(19791,{wu:n});var i,s,a,o}function ih(e){for(;0{o.push(s.pu(r,t,n).then(e=>{var t;(e||n)&&s.isPrimaryClient&&(t=e?!e.fromCache:n?.targetChanges.get(r.targetId)?.current,s.sharedClientState.updateQueryState(r.targetId,t?"current":"not-current")),e&&(i.push(e),t=iu.As(r.targetId,e),a.push(t))}))}),await Promise.all(o),s.Pu.H_(i);{var r=s.localStore,u=a;let i=r;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>C.forEach(u,t=>C.forEach(t.Es,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>C.forEach(t.ds,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(r){if(!pt(r))throw r;p(ou,"Failed to update sequence numbers: "+r)}for(let e of u){let n=e.targetId;if(!e.fromCache){let e=i.Ms.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.Ms=i.Ms.insert(n,r)}}}}}async function ah(e,t,r,n){var i=e,s=await((e,r)=>{let n=e,i=n.mutationQueue;return n.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.er(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):C.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await pl(i.remoteStore):"acknowledged"===r||"rejected"===r?(eh(i,t,n||null),Zl(i,t),i.localStore.mutationQueue.ir(t)):E(6720,"Unknown batchState",{Su:r}),await sh(i,s)):p(jl,"Cannot apply mutation batch with id: "+t)}async function oh(r,e){var n,i,s,a=r,o=[],u=[];for(let r of e){let t,e=a.Iu.get(r);if(e&&0!==e.length){t=await pu(a.localStore,Ii(e[0]));for(let r of e){let e=a.Tu.get(r),t=(n=e,s=i=void 0,s=await vu((i=a).localStore,n.query,!0),s=n.view.cu(s),i.isPrimaryClient&&nh(i,n.targetId,s.au),await s);t.snapshot&&u.push(t.snapshot)}}else{let e=await wu(a.localStore,r);t=await pu(a.localStore,e),await $l(a,uh(e),r,!1,t.resumeToken)}o.push(t)}return a.Pu.H_(u),o}function uh(e){return yi(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function lh(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=Wl.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Au.get(t);if(r&&r.hu)return L().add(r.key);{let r=L(),e=n.Iu.get(t);if(e)for(let t of e){let e=n.Tu.get(t);r=r.unionWith(e.view.nu)}return r}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,n,t){let i=e,r=(i.sharedClientState.updateQueryState(n,"rejected",t),i.Au.get(n)),s=r&&r.key;if(s){let e=new A(x.comparator),t=(e=e.insert(s,R.newNoDocument(s,w.min())),L().add(s)),r=new Ss(w.min(),new Map,new A(S),e,t);await Wl(i,r),i.du=i.du.remove(s),i.Au.delete(n),ih(i)}else await yu(i.localStore,n,!1).then(()=>th(i,n,t)).catch(lt)}).bind(null,t),t.Pu.H_=(function(r,e){var n=r;let i=!1;for(let r of e){let e=r.query,t=n.queries.get(e);if(t){for(let e of t.Sa)e.Fa(r)&&(i=!0);t.wa=r}}i&&Ml(n)}).bind(null,t.eventManager),t.Pu.yu=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.Sa)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function hh(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await du(r.localStore,t);eh(r,n,null),Zl(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await sh(r,e)}catch(e){await lt(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=Jl.bind(null,t),t}function ch(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=V(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Ii.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(n))})(e.localStore,i))return await r.close(),n._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);n._updateProgress(Fl(i));var s=new Vl(i,r.serializer);let t=await r.bu();for(;t;){let e=await s.Ga(t);e&&n._updateProgress(e),t=await r.bu()}var a=await s.ja(e.localStore);return await sh(e,a.Ha,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Ii.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Ja)}catch(e){return be(jl,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class dh{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=Hu(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){return hu(this.persistence,new au,e.initialUser,this.serializer)}Cu(e){return new Qo(Ho.mi,this.serializer)}Du(e){return new Lu}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}dh.provider={build:()=>new dh};class fh extends dh{constructor(e){super(),this.cacheSizeBytes=e}Fu(e,t){y(this.persistence.referenceDelegate instanceof Wo,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new Io(r,e.asyncQueue,t)}Cu(e){let t=void 0!==this.cacheSizeBytes?so.withCacheSize(this.cacheSizeBytes):so.DEFAULT;return new Qo(e=>Wo.mi(e,t),this.serializer)}}class gh extends dh{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 hh(this.xu.syncEngine),await pl(this.xu.remoteStore),await this.persistence.Ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){return hu(this.persistence,new au,e.initialUser,this.serializer)}Fu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new Io(r,e.asyncQueue,t)}Mu(e,t){var r=new Tt(t,this.persistence);return new It(e.asyncQueue,r)}Cu(e){var t=nu(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?so.withCacheSize(this.cacheSizeBytes):so.DEFAULT;return new eu(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Qu(),$u(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Du(e){return new Lu}}class mh extends gh{constructor(e,t){super(e,t,!1),this.xu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.xu.syncEngine;this.sharedClientState instanceof Ou&&(this.sharedClientState.syncEngine={Co:ah.bind(null,t),vo:(async function(e,r,n,t){var i=e;if(i.gu)p(jl,"Ignoring unexpected query state notification.");else{var s=i.Iu.get(r);if(s&&0{ol(i.remoteStore,r),th(i,r)}).catch(lt)}}).bind(null,t),Ts:(function(e){return e.localStore.persistence.Ts()}).bind(null,t),Do:(async function(e,t){let r=e;return _u(r.localStore,t).then(e=>sh(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ji(async e=>{{var t=this.xu.syncEngine,s=e;let i=t;if(lh(i),hh(i),!0===s&&!0!==i.gu){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await oh(i,e.toArray());i.gu=!0,await _l(i.remoteStore,!0);for(let e of t)al(i.remoteStore,e)}else if(!1===s&&!1!==i.gu){let r=[],n=Promise.resolve();i.Iu.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(th(i,t),yu(i.localStore,t,!0))),ol(i.remoteStore,t)}),await n,await oh(i,r);{s=i;let r=s;r.Au.forEach((e,t)=>{ol(r.remoteStore,t)}),r.Ru.Jr(),r.Au=new Map,r.du=new A(x.comparator)}i.gu=!1,await _l(i.remoteStore,!1)}}await 0,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){var t,r=Qu();if(Ou.v(r))return t=nu(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new Ou(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new I(b.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class ph{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=>Yl(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){p(jl,"User change. New user:",t.toKey());let e=await cu(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).mu.forEach(e=>{e.forEach(e=>{e.reject(new I(b.CANCELLED,n))})}),r.mu.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await sh(i,e.Ls)}}).bind(null,this.syncEngine),await _l(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new Dl}createDatastore(e){var t,r,n,i=Hu(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new Ku(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new el(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>Yl(this.syncEngine,e,0),i=new(Fu.v()?Fu:Pu),new nl(t,r,e,n,i);var t,r,n,i}createSyncEngine(e,t){return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,e=e.maxConcurrentLimboResolutions,t=t,o=new Kl(r,n,i,s,a,e),t&&(o.gu=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,p(rl,"RemoteStore shutting down."),t.Ea.add(5),await sl(t),t.Aa.shutdown(),await!t.Ra.set("Unknown"),this.datastore?.terminate(),this.eventManager?.terminate()}}function yh(t,r=10240){let n=0;return{async read(){var e;return nnew ph};class vh{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 wh{constructor(e,t){this.Bu=e,this.serializer=t,this.metadata=new f,this.buffer=new Uint8Array,this.Lu=new TextDecoder("utf-8"),this.ku().then(e=>{e&&e.$a()?this.metadata.resolve(e.Qa.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is + `+JSON.stringify(e?.Qa)))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async bu(){return await this.getMetadata(),this.ku()}async ku(){var e,t,r=await this.qu();return null===r?null:(t=this.Lu.decode(r),e=Number(t),isNaN(e)&&this.Qu(`length string (${t}) is not valid number`),t=await this.$u(e),new Ll(JSON.parse(t),r.length+e))}Uu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async qu(){for(;this.Uu()<0&&!await this.Ku(););var e,t;return 0===this.buffer.length?null:((e=this.Uu())<0&&this.Qu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async $u(e){for(;this.buffer.length{let u=e,r={documents:t.map(e=>Gs(u.serializer,e))},n=await u.Ho("BatchGetDocuments",u.serializer.databaseId,T.emptyPath(),r,t.length),l=new Map,i=(n.forEach(e=>{t=u.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,y(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=Ks(r,n.found.name),s=V(n.found.updateTime),o=n.found.createTime?V(n.found.createTime):w.min(),a=new jn({mapValue:{fields:n.found.fields}}),R.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,y(!!(n=e).missing,3894),y(!!n.readTime,22933),i=Ks(r,n.missing),s=V(n.readTime),R.newNoDocument(i,s)):E(7234,{result:e});l.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=l.get(e.toString());y(!!t,55234,{key:e}),i.push(t)}),i})(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 cs(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new ds(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>Xs(t.serializer,e))};await t.Go("Commit",t.serializer.databaseId,T.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw E(50498,{Gu:e.constructor.name});t=w.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new I(b.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(w.min())?P.exists(!1):P.updateTime(t):P.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return P.exists(!0);if(t.isEqual(w.min()))throw new I(b.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return P.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class bh{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 Wu(this.asyncQueue,"transaction_retry")}ju(){--this.zu,this.Ju()}Ju(){this.M_.p_(async()=>{let t=new _h(this.datastore),e=this.Hu(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Yu(e)}))}).catch(e=>{this.Yu(e)})})}Hu(e){try{var t=this.updateFunction(e);return!xt(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}}Yu(e){0(this.Ju(),Promise.resolve()))):this.deferred.reject(e)}Zu(e){var t;return"FirebaseError"===e?.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!ys(t))}}let Ih="FirestoreClient";class Th{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=l.UNAUTHENTICATED,this.clientId=Re.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{p(Ih,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(p(Ih,"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 r=new f;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=El(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function Eh(e,t){e.asyncQueue.verifyOperationInProgress(),p(Ih,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await cu(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function Sh(e,r){e.asyncQueue.verifyOperationInProgress();var t=await xh(e);p(Ih,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>wl(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>wl(r.remoteStore,t)),e._onlineComponents=r}async function xh(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){p(Ih,"Using user provided OfflineComponentProvider");try{await Eh(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===b.FAILED_PRECONDITION||n.code===b.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;be("Error using user provided cache. Falling back to memory cache: "+r),await Eh(t,new dh)}}else p(Ih,"Using default OfflineComponentProvider"),await Eh(t,new fh(void 0));var n;return t._offlineComponents}async function Ch(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(p(Ih,"Using user provided OnlineComponentProvider"),await Sh(e,e._uninitializedComponentsProvider._online)):(p(Ih,"Using default OnlineComponentProvider"),await Sh(e,new ph))),e._onlineComponents}function Ah(e){return xh(e).then(e=>e.persistence)}function Dh(e){return xh(e).then(e=>e.localStore)}function Nh(e){return Ch(e).then(e=>e.remoteStore)}function kh(e){return Ch(e).then(e=>e.syncEngine)}async function Rh(e){var t=await Ch(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=lh(e);let i;var s=n.Tu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.lu()):await Ql(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Tu.get(t),s=n.Iu.get(i.targetId);1!Si(e,t))),n.Tu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await yu(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&ol(n.remoteStore,i.targetId),th(n,i.targetId)}).catch(lt)):(th(n,i.targetId),await yu(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await Ql(lh(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Tu.get(t),i=r.Iu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),ol(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function Mh(r){return r.asyncQueue.enqueue(async()=>{var e=await Ah(r),t=await Nh(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ea.add(0),await sl(t),t.Ra.set("Offline")})(t)})}function Oh(e,t){let r=new f;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new I(b.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=El(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await Dh(e),t,r)),r.promise}function Lh(e,t,l={}){let h=new f;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await Rh(e),s=e.asyncQueue,a=t,o=l,u=h;let r=new vh({next:e=>{r.Nu(),s.enqueueAndForget(()=>Rl(i,n));var t=e.docs.has(a);!t&&e.fromCache?u.reject(new I(b.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?u.reject(new I(b.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.)')):u.resolve(e)},error:e=>u.reject(e)}),n=new Ol(vi(a.path),r,{includeMetadataChanges:!0,qa:!0});return kl(i,n)}}),h.promise}function Ph(e,t){let r=new f;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await vu(e,t,!0),i=new ql(t,n.Qs),s=i.ru(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=El(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await Dh(e),t,r)),r.promise}function Vh(o,u,l={}){let h=new f;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await Rh(o),i=o.asyncQueue,e=u,s=l,a=h;let t=new vh({next:e=>{t.Nu(),i.enqueueAndForget(()=>Rl(n,r)),e.fromCache&&"server"===s.source?a.reject(new I(b.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.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new Ol(e,t,{includeMetadataChanges:!0,qa:!0});return kl(n,r)}}),h.promise}function Fh(r,e){let n=new vh(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await Rh(r),t=n,e.Ca.add(t),void t.next();var e,t}),()=>{n.Nu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await Rh(r),t=n,e.Ca.delete(t)})}}function Uh(e,t,r,n){r=r,t=Hu(t),s="string"==typeof r?ws().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return yh(e,t);if(e instanceof ArrayBuffer)return yh(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new wh(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{ch(await kh(e),i,n)})}function Bh(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await Dh(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Ii.getNamedQuery(e,r))}})}function qh(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let jh=new Map,zh="firestore.googleapis.com";class Gh{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new I(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=zh,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=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new I(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}ze("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=qh(e.experimentalLongPollingOptions??{});var t=this.experimentalLongPollingOptions;if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(30{if(!e)return new Se;switch(e.type){case"firstParty":return new De(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new I(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid 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(){return e=this,(t=jh.get(e))&&(p("ComponentProvider","Removing Datastore"),jh.delete(e),t.terminate()),Promise.resolve();var e,t}}function Qh(n,e,t,i={}){n=g(n,Kh);let r=Y(e),s=n._getSettings(),a={...s,emulatorOptions:n._getEmulatorOptions()},o=e+":"+t;r&&((async e=>(await fetch(e,{credentials:"include"})).ok)("https://"+o),Z("Firestore",!0)),s.host!==zh&&s.host!==o&&be("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var u={...s,host:o,ssl:r,emulatorOptions:i};if(!oe(u,a)&&(n._setSettings(u),i.mockUserToken)){let t,r;if("string"==typeof i.mockUserToken)t=i.mockUserToken,r=l.MOCK_USER;else{t=((e,t)=>{if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r={iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}},...e},[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(i.mockUserToken,n._app?.options.projectId);let e=i.mockUserToken.sub||i.mockUserToken.user_id;if(!e)throw new I(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new l(e)}n._authCredentials=new xe(new Ee(t,r))}}class $h{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new $h(this.firestore,e,this._query)}}class F{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 Hh(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new F(this.firestore,e,this._key)}toJSON(){return{type:F._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(We(t,F._jsonSchema))return new F(e,r||null,new x(T.fromString(t.referencePath)))}}F._jsonSchemaVersion="firestore/documentReference/1.0",F._jsonSchema={type:t("string",F._jsonSchemaVersion),referencePath:t("string")};class Hh extends $h{constructor(e,t,r){super(e,t,vi(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new F(this.firestore,null,new x(e))}withConverter(e){return new Hh(this.firestore,e,this._path)}}function Wh(e,t,...r){var n;if(e=_(e),je("collection","path",t),e instanceof Kh)return Ke(n=T.fromString(t,...r)),new Hh(e,null,n);if(e instanceof F||e instanceof Hh)return Ke(n=e._path.child(T.fromString(t,...r))),new Hh(e.firestore,null,n);throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Yh(e,t,...r){var n;if(e=_(e),je("doc","path",t=1===arguments.length?Re.newId():t),e instanceof Kh)return Ge(n=T.fromString(t,...r)),new F(e,null,new x(n));if(e instanceof F||e instanceof Hh)return Ge(n=e._path.child(T.fromString(t,...r))),new F(e.firestore,e instanceof Hh?e.converter:null,new x(n));throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Jh(e,t){return e=_(e),t=_(t),(e instanceof F||e instanceof Hh)&&(t instanceof F||t instanceof Hh)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function Xh(e,t){return e=_(e),t=_(t),e instanceof $h&&t instanceof $h&&e.firestore===t.firestore&&Si(e._query,t._query)&&e.converter===t.converter}let Zh="AsyncQueue";class ec{constructor(e=Promise.resolve()){this.Xu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new Wu(this,"async_queue_retry"),this._c=()=>{var e=$u();e&&p(Zh,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;var t=$u();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){var t;this.ec||(this.ec=!0,this.sc=e||!1,(t=$u())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c))}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new f;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.Xu.push(e),this.lc()))}async lc(){if(0!==this.Xu.length){try{await this.Xu[0](),this.Xu.shift(),this.M_.reset()}catch(e){if(!pt(e))throw e;p(Zh,"Operation failed with retryable error: "+e)}0this.lc())}}cc(e){var t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,d("INTERNAL UNHANDLED ERROR: ",tc(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t}enqueueAfterDelay(e,t,r){this.uc(),-1this.hc(e));return this.tc.push(n),n}uc(){this.nc&&E(47125,{Pc:tc(this.nc)})}verifyOperationInProgress(){}async Tc(){for(var e;await(e=this.ac),e!==this.ac;);}Ic(e){for(var t of this.tc)if(t.timerId===e)return!0;return!1}Ec(t){return this.Tc().then(()=>{this.tc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.tc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Tc()})}dc(e){this.oc.push(e)}hc(e){var t=this.tc.indexOf(e);this.tc.splice(t,1)}}function tc(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}function rc(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class nc{constructor(){this._progressObserver={},this._taskCompletionResolver=new f,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)}}var ic,sc,n,ac;class U extends Kh{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new ec,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new ec(e),this._firestoreClient=void 0,await e)}}function oc(e){if(e._terminated)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||uc(e),e._firestoreClient}function uc(e){var t,r,n,i,s=e._freezeSettings(),a=(i=e._databaseId,t=e._app?.options.appId||"",r=e._persistenceKey,n=s,new gn(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,qh(n.experimentalLongPollingOptions),n.useFetchStreams,n.isUsingEmulator));e._componentsProvider||s.localCache?._offlineComponentProvider&&s.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider}),e._firestoreClient=new Th(e._authCredentials,e._appCheckCredentials,e._queue,a,e._componentsProvider&&(i=e._componentsProvider,s=i?._online.build(),{_offline:i?._offline.build(s),_online:s}))}function lc(e,t,r){if((e=g(e,U))._firestoreClient||e._terminated)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new I(b.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},uc(e)}function hc(r){if(r._initialized&&!r._terminated)throw new I(b.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new f;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=nu(r._databaseId,r._persistenceKey),await(dt.v()?(t=e+"main",void await dt.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function cc(e){return(r=oc(e=g(e,U))).asyncQueue.enqueue(async()=>{var e=await Ah(r),t=await Nh(r);return e.setNetworkEnabled(!0),(e=t).Ea.delete(0),il(e)});var r}class dc{constructor(e){this._byteString=e}static fromBase64String(e){try{return new dc(N.fromBase64String(e))}catch(e){throw new I(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new dc(N.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:dc._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(We(e,dc._jsonSchema))return dc.fromBase64String(e.bytes)}}dc._jsonSchemaVersion="firestore/bytes/1.0",dc._jsonSchema={type:t("string",dc._jsonSchemaVersion),bytes:t("string")};class fc{constructor(...e){for(let t=0;te)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n"number"==typeof e))return new pc(e.vectorValues);throw new I(b.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}pc._jsonSchemaVersion="firestore/vectorValue/1.0",pc._jsonSchema={type:t("string",pc._jsonSchemaVersion),vectorValues:t("object")};let yc=/^__.*__$/;class vc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new os(e,this.data,this.fieldMask,t,this.fieldTransforms):new as(e,this.data,t,this.fieldTransforms)}}class wc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new os(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function _c(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw E(40011,{Ac:e})}}class bc{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Rc(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ac(){return this.settings.Ac}Vc(e){return new bc({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}mc(e){var t=this.path?.child(e),t=this.Vc({path:t,fc:!1});return t.gc(e),t}yc(e){var t=this.path?.child(e),t=this.Vc({path:t,fc:!1});return t.Rc(),t}wc(e){return this.Vc({path:void 0,fc:!0})}Sc(e){return qc(e,this.settings.methodName,this.settings.bc||!1,this.path,this.settings.Dc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Rc(){if(this.path)for(let e=0;eu.covers(e.field))}else u=null,l=a.fieldTransforms;return new vc(new jn(o),u,l)}class Sc extends gc{_toFieldTransform(e){if(2!==e.Ac)throw 1===e.Ac?e.Sc(this._methodName+"() can only appear at the top level of your update data"):e.Sc(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof Sc}}function xc(e,t,r){return new bc({Ac:3,Dc:t.settings.Dc,methodName:e._methodName,fc:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class Cc extends gc{_toFieldTransform(e){return new Zi(e.path,new Ki)}isEqual(e){return e instanceof Cc}}class Ac extends gc{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=xc(this,e,!0),r=this.vc.map(e=>Oc(e,t)),n=new Qi(r);return new Zi(e.path,n)}isEqual(e){return e instanceof Ac&&oe(this.vc,e.vc)}}class Dc extends gc{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=xc(this,e,!0),r=this.vc.map(e=>Oc(e,t)),n=new Hi(r);return new Zi(e.path,n)}isEqual(e){return e instanceof Dc&&oe(this.vc,e.vc)}}class Nc extends gc{constructor(e,t){super(e),this.Fc=t}_toFieldTransform(e){var t=new Yi(e.serializer,ji(e.serializer,this.Fc));return new Zi(e.path,t)}isEqual(e){return e instanceof Nc&&this.Fc===e.Fc}}function kc(e,i,s,t){let a=e.Cc(1,i,s),o=(Vc("Data must be an object, but it was:",a,t),[]),u=jn.empty();Wr(t,(e,t)=>{var r=Bc(i,e,s),n=(t=_(t),a.yc(r));if(t instanceof Sc)o.push(r);else{let e=Oc(t,n);null!=e&&(o.push(r),u.set(r,e))}});var r=new tn(o);return new wc(u,r,a.fieldTransforms)}function Rc(e,t,r,n,i,s){var a=e.Cc(1,t,r),o=[Fc(t,n,r)],u=[i];if(s.length%2!=0)throw new I(b.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f{if("number"!=typeof e)throw u.Sc("VectorValues must only contain numeric values.");return Bi(u.serializer,e)})}}}}};throw n.Sc("Unsupported field value: "+$e(t))}function Lc(e,n){let i={};return Yr(e)?n.path&&0{var r=Oc(t,n.mc(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function Pc(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof v||e instanceof mc||e instanceof dc||e instanceof F||e instanceof gc||e instanceof pc)}function Vc(e,t,r){var n;if(!Pc(r)||!Qe(r))throw"an object"===(n=$e(r))?t.Sc(e+" a custom object"):t.Sc(e+" "+n)}function Fc(e,t,r){if((t=_(t))instanceof fc)return t._internalPath;if("string"==typeof t)return Bc(e,t);throw qc("Field path arguments must be of type string or ",e,!1,void 0,r)}let Uc=new RegExp("[~\\*/\\[\\]]");function Bc(t,r,n){if(0<=r.search(Uc))throw qc(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new fc(...r.split("."))._internalPath}catch(e){throw qc(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function qc(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,u=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(u+=" (found",s&&(u+=" in field "+n),a&&(u+=" in document "+i),u+=")"),new I(b.INVALID_ARGUMENT,o+e+u)}function jc(e,t){return e.some(e=>e.isEqual(t))}class zc{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 F(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Gc(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(Kc("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Gc extends zc{data(){return super.data()}}function Kc(e,t){return"string"==typeof t?Bc(e,t):(t instanceof fc?t:t._delegate)._internalPath}function Qc(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new I(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class $c{}class Hc extends $c{}function Wc(e,t,...r){let n=[];t instanceof $c&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof Yc).length;if(1{if(null!==e.startAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Qn(t,r)})(e._query,this._field,this._direction);return new $h(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new pi(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class Xc extends Hc{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new Xc(e,t,r)}_apply(e){return new $h(e.firestore,e.converter,Ei(e._query,this._limit,this._limitType))}}class Zc extends Hc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Zc(e,t,r)}_apply(e){var t,r=td(e,this.type,this._docOrFields,this._inclusive);return new $h(e.firestore,e.converter,(e=e._query,t=r,new pi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class ed extends Hc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new ed(e,t,r)}_apply(e){var t,r=td(e,this.type,this._docOrFields,this._inclusive);return new $h(e.firestore,e.converter,(e=e._query,t=r,new pi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function td(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof zc){var s=e._query,a=e.firestore._databaseId,o=r,u=n[0]._document,l=i;if(!u)throw new I(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of bi(s))if(t.field.isKeyField())h.push(Nn(a,u.key));else{let e=u.data.field(t.field);if(cn(e))throw new I(b.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.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=t.field.canonicalString();throw new I(b.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.`)}h.push(e)}return new zn(h,l)}var t=Tc(e.firestore),c=e._query,d=e.firestore._databaseId,f=t,g=r,m=n,o=i,p=c.explicitOrderBy;if(m.length>p.length)throw new I(b.INVALID_ARGUMENT,`Too many arguments provided to ${g}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var y=[];for(let w=0;w{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(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 I(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class sd{convertValue(e,t="none"){switch(Tn(e)){case 0:return null;case 1:return e.booleanValue;case 2:return k(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(an(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 E(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Wr(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=e.fields?.[bn].arrayValue?.values?.map(e=>k(e.doubleValue));return new pc(t)}convertGeoPoint(e){return new mc(k(e.latitude),k(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=dn(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(fn(e));default:return null}}convertTimestamp(e){var t=sn(e);return new v(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=T.fromString(e),n=(y(la(r),9688,{name:e}),new pn(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||d(`Document ${r} 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.`),r}}function ad(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class od extends sd{constructor(e){super(),this.firestore=e}convertBytes(e){return new dc(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new F(this.firestore,null,t)}}class ud{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class ld extends zc{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={}){var t;if(this._document)return this._converter?(t=new hd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(Kc("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new I(b.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e=this._document,t={};return t.type=ld._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"),t.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED")),t}}ld._jsonSchemaVersion="firestore/documentSnapshot/1.0",ld._jsonSchema={type:t("string",ld._jsonSchemaVersion),bundleSource:t("string","DocumentSnapshot"),bundleName:t("string"),bundle:t("string")};class hd extends ld{data(e={}){return super.data(e)}}class cd{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new ud(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new hd(this._firestore,this._userDataWriter,e.key,e,new ud(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new I(b.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=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new hd(s._firestore,s._userDataWriter,e.doc.key,e.doc,new ud(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new hd(s._firestore,s._userDataWriter,e.doc.key,e.doc,new ud(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return E(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new I(b.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=cd._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=Re.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))}),e.bundle=(this._firestore,this.query._query,"NOT SUPPORTED"),e}}function dd(e,t){return e instanceof ld&&t instanceof ld?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 cd&&t instanceof cd&&e._firestore===t._firestore&&Xh(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}cd._jsonSchemaVersion="firestore/querySnapshot/1.0",cd._jsonSchema={type:t("string",cd._jsonSchemaVersion),bundleSource:t("string","QuerySnapshot"),bundleName:t("string"),bundle:t("string")};class fd extends sd{constructor(e){super(),this.firestore=e}convertBytes(e){return new dc(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new F(this.firestore,null,t)}}function gd(e,t,r){e=g(e,F);var n=g(e.firestore,U),i=ad(e.converter,t,r);return yd(n,[Ec(Tc(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,P.none())])}function md(e,t,r,...n){e=g(e,F);var i=g(e.firestore,U),s=Tc(i);return yd(i,[("string"==typeof(t=_(t))||t instanceof fc?Rc(s,"updateDoc",e._key,t,r,n):kc(s,"updateDoc",e._key,t)).toMutation(e._key,P.exists(!0))])}function pd(n,...i){n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0,r={includeMetadataChanges:(e="object"!=typeof i[s]||rc(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(rc(i[s])){let e=i[s];i[s]=e.next?.bind(e),i[s+1]=e.error?.bind(e),i[s+2]=e.complete?.bind(e)}let a,o,u;if(n instanceof F)o=g(n.firestore,U),u=vi(n._key.path),a={next:e=>{i[s]&&i[s](vd(o,n,e))},error:i[s+1],complete:i[s+2]};else{let t=g(n,$h),r=(o=g(t.firestore,U),u=t._query,new fd(o));a={next:e=>{i[s]&&i[s](new cd(o,r,t,e))},error:i[s+1],complete:i[s+2]},Qc(n._query)}{var l=oc(o),h=u,c=r,d=a;let e=new vh(d),t=new Ol(h,e,c);return l.asyncQueue.enqueueAndForget(async()=>kl(await Rh(l),t)),()=>{e.Nu(),l.asyncQueue.enqueueAndForget(async()=>Rl(await Rh(l),t))}}}function yd(t,r){{var n=oc(t),i=r;let e=new f;return n.asyncQueue.enqueueAndForget(async()=>Hl(await kh(n),i,e)),e.promise}}function vd(e,t,r){var n=r.docs.get(t._key),i=new fd(e);return new ld(e,i,t._key,n,new ud(r.hasPendingWrites,r.fromCache),t.converter)}let wd={maxAttempts:5};class _d{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=Tc(e)}set(e,t,r){this._verifyNotCommitted();var n=bd(e,this._firestore),i=ad(n.converter,t,r),i=Ec(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,P.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=bd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof fc?Rc(this._dataReader,"WriteBatch.update",i._key,t,r,n):kc(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,P.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=bd(e,this._firestore);return this._mutations=this._mutations.concat(new cs(t._key,P.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0{if(!e||1!==e.length)return E(24041);var t=e[0];if(t.isFoundDocument())return new zc(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new zc(this._firestore,n,r._key,null,r.converter);throw E(18433,{doc:t})})}set(e,t,r){var n=bd(e,this._firestore),i=ad(n.converter,t,r),i=Ec(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=bd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof fc?Rc(this._dataReader,"Transaction.update",i._key,t,r,n):kc(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=bd(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=bd(e,this._firestore),r=new fd(this._firestore);return super.get(e).then(e=>new ld(this._firestore,r,t._key,e._document,new ud(!1,!1),t.converter))}}function Td(r,n,e){r=g(r,U);var i={...wd,...e};if(i.maxAttempts<1)throw new I(b.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=oc(r),a=e=>n(new Id(r,e)),o=i;let t=new f;return s.asyncQueue.enqueueAndForget(async()=>{var e=await Ch(s).then(e=>e.datastore);new bh(s.asyncQueue,e,o,a,t).ju()}),t.promise}}sc=!0,n=Yd.SDK_VERSION,ve=n,Yd._registerComponent(new le("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new U(new Ce(e.getProvider("auth-internal")),new ke(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new pn(e.options.projectId,t);throw new I(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r={useFetchStreams:sc,...r},n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),Yd.registerVersion(ye,"4.9.2",ic),Yd.registerVersion(ye,"4.9.2","esm2020");function Ed(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new I("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function Sd(){if("undefined"==typeof Uint8Array)throw new I("unimplemented","Uint8Arrays are not available in this environment.")}function xd(){if("undefined"==typeof atob)throw new I("unimplemented","Blobs are unavailable in Firestore in this environment.")}class Cd{constructor(e){this._delegate=e}static fromBase64String(e){return xd(),new Cd(dc.fromBase64String(e))}static fromUint8Array(e){return Sd(),new Cd(dc.fromUint8Array(e))}toBase64(){return xd(),this._delegate.toBase64()}toUint8Array(){return Sd(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function Ad(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class Dd{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};be("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return lc(e,ph.provider,{build:e=>new gh(e,t.cacheSizeBytes,n?.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{be("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();lc(e,ph.provider,{build:e=>new mh(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return hc(e._delegate)}}class Nd{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof pn||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||be("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e={...t,...e}).merge,this._delegate._setSettings(e)}useEmulator(e,t,r={}){Qh(this._delegate,e,t,r)}enableNetwork(){return cc(this._delegate)}disableNetwork(){return Mh(oc(g(this._delegate,U)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,ze("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=oc(t=g(t,U));let e=new f;return r.asyncQueue.enqueueAndForget(async()=>Xl(await kh(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,Fh(oc(t=g(t,U)),rc(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new I("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new Gd(this,Wh(this._delegate,e))}catch(e){throw Pd(e,"collection()","Firestore.collection()")}}doc(e){try{return new Ld(this,Yh(this._delegate,e))}catch(e){throw Pd(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new qd(this,((e,t)=>{if(e=g(e,Kh),je("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new $h(e,null,(e=t,new pi(T.emptyPath(),e)))})(this._delegate,e))}catch(e){throw Pd(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return Td(this._delegate,e=>t(new Rd(this,e)))}batch(){return oc(this._delegate),new Md(new _d(this._delegate,e=>yd(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=oc(t=g(t,U)),n=new nc,Uh(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,Bh(oc(t=g(t,U)),e).then(e=>e?new $h(t,null,e.query):null).then(e=>e?new qd(this,e):null);var t}}class kd extends sd{constructor(e){super(),this.firestore=e}convertBytes(e){return new Cd(new dc(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return Ld.forKey(t,this.firestore,null)}}class Rd{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new kd(e)}get(e){let t=Kd(e);return this._delegate.get(t).then(e=>new Ud(this._firestore,new ld(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=Kd(e);return r?(Ed("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Kd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Kd(e);return this._delegate.delete(t),this}}class Md{constructor(e){this._delegate=e}set(e,t,r){var n=Kd(e);return r?(Ed("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Kd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Kd(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class Od{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new hd(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new Bd(this._firestore,r),t??{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=Od.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new Od(e,new kd(e),t),n.set(t,i)),i}}Od.INSTANCES=new WeakMap;class Ld{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new kd(e)}static forPath(e,t,r){if(e.length%2!=0)throw new I("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new Ld(t,new F(t._delegate,r,new x(e)))}static forKey(e,t,r){return new Ld(t,new F(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new Gd(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new Gd(this.firestore,Wh(this._delegate,e))}catch(e){throw Pd(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof F&&Jh(this._delegate,e)}set(e,t){t=Ed("DocumentReference.set",t);try{return t?gd(this._delegate,e,t):gd(this._delegate,e)}catch(e){throw Pd(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?md(this._delegate,e):md(this._delegate,e,t,...r)}catch(e){throw Pd(e,"updateDoc()","DocumentReference.update()")}}delete(){return yd(g((e=this._delegate).firestore,U),[new cs(e._key,P.none())]);var e}onSnapshot(...e){var t=Vd(e),r=Fd(e,e=>new Ud(this.firestore,new ld(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return pd(this._delegate,t,r)}get(e){let t;return(t=("cache"===e?.source?t=>{t=g(t,F);let r=g(t.firestore,U),e=oc(r),n=new fd(r);return Oh(e,t._key).then(e=>new ld(r,n,t._key,e,new ud(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===e?.source?t=>{t=g(t,F);let r=g(t.firestore,U);return Lh(oc(r),t._key,{source:"server"}).then(e=>vd(r,t,e))}:t=>{t=g(t,F);let r=g(t.firestore,U);return Lh(oc(r),t._key).then(e=>vd(r,t,e))})(this._delegate)).then(e=>new Ud(this.firestore,new ld(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new Ld(this.firestore,e?this._delegate.withConverter(Od.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Pd(e,t,r){return e.message=e.message.replace(t,r),e}function Vd(e){for(var t of e)if("object"==typeof t&&!Ad(t))return t;return{}}function Fd(e,t){let r;return{next:e=>{r.next&&r.next(t(e))},error:(r=Ad(e[0])?e[0]:Ad(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]}).error?.bind(r),complete:r.complete?.bind(r)}}class Ud{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new Ld(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return dd(this._delegate,e._delegate)}}class Bd extends Ud{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||E(57014,e),t}}class qd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new kd(e)}where(e,t,r){try{return new qd(this.firestore,Wc(this._delegate,(n=r,i=t,s=Kc("where",e),Yc._create(s,i,n))))}catch(e){throw Pd(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new qd(this.firestore,Wc(this._delegate,([r,n="asc"]=[e,t],i=n,s=Kc("orderBy",r),Jc._create(s,i))))}catch(e){throw Pd(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new qd(this.firestore,Wc(this._delegate,(He("limit",t=e),Xc._create("limit",t,"F"))))}catch(e){throw Pd(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new qd(this.firestore,Wc(this._delegate,(He("limitToLast",t=e),Xc._create("limitToLast",t,"L"))))}catch(e){throw Pd(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new qd(this.firestore,Wc(this._delegate,([...t]=[...e],Zc._create("startAt",t,!0))))}catch(e){throw Pd(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new qd(this.firestore,Wc(this._delegate,([...t]=[...e],Zc._create("startAfter",t,!1))))}catch(e){throw Pd(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new qd(this.firestore,Wc(this._delegate,([...t]=[...e],ed._create("endBefore",t,!1))))}catch(e){throw Pd(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new qd(this.firestore,Wc(this._delegate,([...t]=[...e],ed._create("endAt",t,!0))))}catch(e){throw Pd(e,"endAt()","Query.endAt()")}var t}isEqual(e){return Xh(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===e?.source?t=>{t=g(t,$h);let r=g(t.firestore,U),e=oc(r),n=new fd(r);return Ph(e,t._query).then(e=>new cd(r,n,t,e))}:"server"===e?.source?t=>{t=g(t,$h);let r=g(t.firestore,U),e=oc(r),n=new fd(r);return Vh(e,t._query,{source:"server"}).then(e=>new cd(r,n,t,e))}:t=>{t=g(t,$h);let r=g(t.firestore,U),e=oc(r),n=new fd(r);return Qc(t._query),Vh(e,t._query).then(e=>new cd(r,n,t,e))})(this._delegate)).then(e=>new zd(this.firestore,new cd(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=Vd(e),r=Fd(e,e=>new zd(this.firestore,new cd(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return pd(this._delegate,t,r)}withConverter(e){return new qd(this.firestore,e?this._delegate.withConverter(Od.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class jd{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new Bd(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class zd{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new qd(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new Bd(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new jd(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new Bd(this._firestore,e))})}isEqual(e){return dd(this._delegate,e._delegate)}}class Gd extends qd{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new Ld(this.firestore,e):null}doc(e){try{return void 0===e?new Ld(this.firestore,Yh(this._delegate)):new Ld(this.firestore,Yh(this._delegate,e))}catch(e){throw Pd(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=g(e.firestore,U),n=Yh(e),i=ad(e.converter,t);return yd(r,[Ec(Tc(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,P.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new Ld(this.firestore,e))}isEqual(e){return Jh(this._delegate,e._delegate)}withConverter(e){return new Gd(this.firestore,e?this._delegate.withConverter(Od.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Kd(e){return g(e,F)}class Qd{static serverTimestamp(){var e=new Cc("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new Qd(e)}static delete(){var e=new Sc("deleteField");return e._methodName="FieldValue.delete",new Qd(e)}static arrayUnion(...e){[...e]=[...e];var t=new Ac("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new Qd(t)}static arrayRemove(...e){[...e]=[...e];var t=new Dc("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new Qd(t)}static increment(e){e=e;var t=new Nc("increment",e);return t._methodName="FieldValue.increment",new Qd(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let $d={Firestore:Nd,GeoPoint:mc,Timestamp:v,Blob:Cd,Transaction:Rd,WriteBatch:Md,DocumentReference:Ld,DocumentSnapshot:Ud,Query:qd,QueryDocumentSnapshot:Bd,QuerySnapshot:zd,CollectionReference:Gd,FieldPath:class Hd{constructor(...e){this._delegate=new fc(...e)}static documentId(){return new Hd(h.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof fc&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:Qd,setLogLevel:function(e){e=e,we.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};n=s.default,ac=(e,t)=>new Nd(e,t,new Dd),n.INTERNAL.registerComponent(new le("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return ac(t,r)},"PUBLIC").setServiceProps({...$d})),n.registerVersion("@firebase/firestore-compat","0.4.2")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-firestore-compat.js - be sure to load firebase-app.js first.")}}); +//# sourceMappingURL=firebase-firestore-compat.js.map -- cgit v1.2.3