firebase 12.17.0 → 12.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- import{_isFirebaseServerApp as ee,getApp as te,_getProvider,_removeServiceInstance as ne,_registerComponent as re,registerVersion as se,SDK_VERSION as ie}from"https://www.gstatic.com/firebasejs/12.17.0/firebase-app.js";const stringToByteArray$1=function(ee){const te=[];let ne=0;for(let re=0;re<ee.length;re++){let se=ee.charCodeAt(re);se<128?te[ne++]=se:se<2048?(te[ne++]=se>>6|192,te[ne++]=63&se|128):55296==(64512&se)&&re+1<ee.length&&56320==(64512&ee.charCodeAt(re+1))?(se=65536+((1023&se)<<10)+(1023&ee.charCodeAt(++re)),te[ne++]=se>>18|240,te[ne++]=se>>12&63|128,te[ne++]=se>>6&63|128,te[ne++]=63&se|128):(te[ne++]=se>>12|224,te[ne++]=se>>6&63|128,te[ne++]=63&se|128)}return te},ae={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(ee,te){if(!Array.isArray(ee))throw Error("encodeByteArray takes an array as a parameter");this.init_();const ne=te?this.byteToCharMapWebSafe_:this.byteToCharMap_,re=[];for(let te=0;te<ee.length;te+=3){const se=ee[te],ie=te+1<ee.length,ae=ie?ee[te+1]:0,oe=te+2<ee.length,ue=oe?ee[te+2]:0,Be=se>>2,le=(3&se)<<4|ae>>4;let ce=(15&ae)<<2|ue>>6,_e=63&ue;oe||(_e=64,ie||(ce=64)),re.push(ne[Be],ne[le],ne[ce],ne[_e])}return re.join("")},encodeString(ee,te){return this.HAS_NATIVE_SUPPORT&&!te?btoa(ee):this.encodeByteArray(stringToByteArray$1(ee),te)},decodeString(ee,te){return this.HAS_NATIVE_SUPPORT&&!te?atob(ee):function(ee){const te=[];let ne=0,re=0;for(;ne<ee.length;){const se=ee[ne++];if(se<128)te[re++]=String.fromCharCode(se);else if(se>191&&se<224){const ie=ee[ne++];te[re++]=String.fromCharCode((31&se)<<6|63&ie)}else if(se>239&&se<365){const ie=((7&se)<<18|(63&ee[ne++])<<12|(63&ee[ne++])<<6|63&ee[ne++])-65536;te[re++]=String.fromCharCode(55296+(ie>>10)),te[re++]=String.fromCharCode(56320+(1023&ie))}else{const ie=ee[ne++],ae=ee[ne++];te[re++]=String.fromCharCode((15&se)<<12|(63&ie)<<6|63&ae)}}return te.join("")}(this.decodeStringToByteArray(ee,te))},decodeStringToByteArray(ee,te){this.init_();const ne=te?this.charToByteMapWebSafe_:this.charToByteMap_,re=[];for(let te=0;te<ee.length;){const se=ne[ee.charAt(te++)],ie=te<ee.length?ne[ee.charAt(te)]:0;++te;const ae=te<ee.length?ne[ee.charAt(te)]:64;++te;const oe=te<ee.length?ne[ee.charAt(te)]:64;if(++te,null==se||null==ie||null==ae||null==oe)throw new DecodeBase64StringError;const ue=se<<2|ie>>4;if(re.push(ue),64!==ae){const ee=ie<<4&240|ae>>2;if(re.push(ee),64!==oe){const ee=ae<<6&192|oe;re.push(ee)}}}return re},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let ee=0;ee<this.ENCODED_VALS.length;ee++)this.byteToCharMap_[ee]=this.ENCODED_VALS.charAt(ee),this.charToByteMap_[this.byteToCharMap_[ee]]=ee,this.byteToCharMapWebSafe_[ee]=this.ENCODED_VALS_WEBSAFE.charAt(ee),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[ee]]=ee,ee>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(ee)]=ee,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(ee)]=ee)}}};class DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const base64urlEncodeWithoutPadding=function(ee){return function(ee){const te=stringToByteArray$1(ee);return ae.encodeByteArray(te,!0)}(ee).replace(/\./g,"")};function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}const getDefaultsFromCookie=()=>{if("undefined"==typeof document)return;let ee;try{ee=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(ee){return}const te=ee&&function(ee){try{return ae.decodeString(ee,!0)}catch(ee){console.error("base64Decode failed: ",ee)}return null}(ee[1]);return te&&JSON.parse(te)},getDefaults=()=>{try{return getGlobal().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const ee=process.env.__FIREBASE_DEFAULTS__;return ee?JSON.parse(ee):void 0})()||getDefaultsFromCookie()}catch(ee){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${ee}`)}},getDefaultEmulatorHostnameAndPort=ee=>{const te=(ee=>getDefaults()?.emulatorHosts?.[ee])(ee);if(!te)return;const ne=te.lastIndexOf(":");if(ne<=0||ne+1===te.length)throw new Error(`Invalid host ${te} with no separate hostname and port!`);const re=parseInt(te.substring(ne+1),10);return"["===te[0]?[te.substring(1,ne-1),re]:[te.substring(0,ne),re]};function getUA(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function isNode(){const ee=getDefaults()?.forceEnvironment;if("node"===ee)return!0;if("browser"===ee)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(ee){return!1}}function isSafari(){return!isNode()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function isSafariOrWebkit(){return!isNode()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}class FirebaseError extends Error{constructor(ee,te,ne){super(te),this.code=ee,this.customData=ne,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(ee,te,ne){this.service=ee,this.serviceName=te,this.errors=ne}create(ee,...te){const ne=te[0]||{},re=`${this.service}/${ee}`,se=this.errors[ee],ie=se?function replaceTemplate(ee,te){try{let ne=0,re="";for(;ne<ee.length;){const se=ee.indexOf("{$",ne);if(-1===se){re+=ee.substring(ne);break}const ie=ee.indexOf("}",se+2);if(-1===ie){re+=ee.substring(ne);break}const ae=ee.substring(se+2,ie),oe=te[ae];re+=ee.substring(ne,se)+(null!=oe?String(oe):`<${ae}?>`),ne=ie+1}return re}catch(te){return ee}}(se,ne):"Error",ae=`${this.serviceName}: ${ie} (${re}).`;return new FirebaseError(re,ae,ne)}}function deepEqual(ee,te){if(ee===te)return!0;const ne=Object.keys(ee),re=Object.keys(te);for(const se of ne){if(!re.includes(se))return!1;const ne=ee[se],ie=te[se];if(isObject(ne)&&isObject(ie)){if(!deepEqual(ne,ie))return!1}else if(ne!==ie)return!1}for(const ee of re)if(!ne.includes(ee))return!1;return!0}function isObject(ee){return null!==ee&&"object"==typeof ee}function getModularInstance(ee){return ee&&ee._delegate?ee._delegate:ee}function isCloudWorkstation(ee){try{return(ee.startsWith("http://")||ee.startsWith("https://")?new URL(ee).hostname:ee).endsWith(".cloudworkstations.dev")}catch{return!1}}async function pingServer(ee){return(await fetch(ee,{credentials:"include"})).ok}class Component{constructor(ee,te,ne){this.name=ee,this.instanceFactory=te,this.type=ne,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(ee){return this.instantiationMode=ee,this}setMultipleInstances(ee){return this.multipleInstances=ee,this}setServiceProps(ee){return this.serviceProps=ee,this}setInstanceCreatedCallback(ee){return this.onInstanceCreated=ee,this}}var oe,ue,Be,le="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var ee;function m(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(ee,te,ne){ne||(ne=0);const re=Array(16);if("string"==typeof te)for(var se=0;se<16;++se)re[se]=te.charCodeAt(ne++)|te.charCodeAt(ne++)<<8|te.charCodeAt(ne++)<<16|te.charCodeAt(ne++)<<24;else for(se=0;se<16;++se)re[se]=te[ne++]|te[ne++]<<8|te[ne++]<<16|te[ne++]<<24;te=ee.g[0],ne=ee.g[1],se=ee.g[2];let ie,ae=ee.g[3];ie=te+(ae^ne&(se^ae))+re[0]+3614090360&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[1]+3905402710&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[2]+606105819&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[3]+3250441966&4294967295,ie=te+(ae^(ne=se+(ie<<22&4294967295|ie>>>10))&(se^ae))+re[4]+4118548399&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[5]+1200080426&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[6]+2821735955&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[7]+4249261313&4294967295,ie=te+(ae^(ne=se+(ie<<22&4294967295|ie>>>10))&(se^ae))+re[8]+1770035416&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[9]+2336552879&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[10]+4294925233&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[11]+2304563134&4294967295,ie=te+(ae^(ne=se+(ie<<22&4294967295|ie>>>10))&(se^ae))+re[12]+1804603682&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[13]+4254626195&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[14]+2792965006&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[15]+1236535329&4294967295,ie=te+(se^ae&((ne=se+(ie<<22&4294967295|ie>>>10))^se))+re[1]+4129170786&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[6]+3225465664&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[11]+643717713&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[0]+3921069994&4294967295,ie=te+(se^ae&((ne=se+(ie<<20&4294967295|ie>>>12))^se))+re[5]+3593408605&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[10]+38016083&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[15]+3634488961&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[4]+3889429448&4294967295,ie=te+(se^ae&((ne=se+(ie<<20&4294967295|ie>>>12))^se))+re[9]+568446438&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[14]+3275163606&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[3]+4107603335&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[8]+1163531501&4294967295,ie=te+(se^ae&((ne=se+(ie<<20&4294967295|ie>>>12))^se))+re[13]+2850285829&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[2]+4243563512&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[7]+1735328473&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[12]+2368359562&4294967295,ie=te+((ne=se+(ie<<20&4294967295|ie>>>12))^se^ae)+re[5]+4294588738&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[8]+2272392833&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[11]+1839030562&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[14]+4259657740&4294967295,ie=te+((ne=se+(ie<<23&4294967295|ie>>>9))^se^ae)+re[1]+2763975236&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[4]+1272893353&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[7]+4139469664&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[10]+3200236656&4294967295,ie=te+((ne=se+(ie<<23&4294967295|ie>>>9))^se^ae)+re[13]+681279174&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[0]+3936430074&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[3]+3572445317&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[6]+76029189&4294967295,ie=te+((ne=se+(ie<<23&4294967295|ie>>>9))^se^ae)+re[9]+3654602809&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[12]+3873151461&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[15]+530742520&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[2]+3299628645&4294967295,ie=te+(se^((ne=se+(ie<<23&4294967295|ie>>>9))|~ae))+re[0]+4096336452&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[7]+1126891415&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[14]+2878612391&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[5]+4237533241&4294967295,ie=te+(se^((ne=se+(ie<<21&4294967295|ie>>>11))|~ae))+re[12]+1700485571&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[3]+2399980690&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[10]+4293915773&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[1]+2240044497&4294967295,ie=te+(se^((ne=se+(ie<<21&4294967295|ie>>>11))|~ae))+re[8]+1873313359&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[15]+4264355552&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[6]+2734768916&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[13]+1309151649&4294967295,ie=te+(se^((ne=se+(ie<<21&4294967295|ie>>>11))|~ae))+re[4]+4149444226&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[11]+3174756917&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[2]+718787259&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[9]+3951481745&4294967295,ee.g[0]=ee.g[0]+te&4294967295,ee.g[1]=ee.g[1]+(se+(ie<<21&4294967295|ie>>>11))&4294967295,ee.g[2]=ee.g[2]+se&4294967295,ee.g[3]=ee.g[3]+ae&4294967295}function t(ee,te){this.h=te;const ne=[];let re=!0;for(let se=ee.length-1;se>=0;se--){const ie=0|ee[se];re&&ie==te||(ne[se]=ie,re=!1)}this.g=ne}!function k(ee,te){function c(){}c.prototype=te.prototype,ee.F=te.prototype,ee.prototype=new c,ee.prototype.constructor=ee,ee.D=function(ee,ne,re){for(var se=Array(arguments.length-2),ie=2;ie<arguments.length;ie++)se[ie-2]=arguments[ie];return te.prototype[ne].apply(ee,se)}}(m,(function l(){this.blockSize=-1})),m.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},m.prototype.v=function(ee,te){void 0===te&&(te=ee.length);const ne=te-this.blockSize,re=this.C;let se=this.h,ie=0;for(;ie<te;){if(0==se)for(;ie<=ne;)n(this,ee,ie),ie+=this.blockSize;if("string"==typeof ee){for(;ie<te;)if(re[se++]=ee.charCodeAt(ie++),se==this.blockSize){n(this,re),se=0;break}}else for(;ie<te;)if(re[se++]=ee[ie++],se==this.blockSize){n(this,re),se=0;break}}this.h=se,this.o+=te},m.prototype.A=function(){var ee=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);ee[0]=128;for(var te=1;te<ee.length-8;++te)ee[te]=0;te=8*this.o;for(var ne=ee.length-8;ne<ee.length;++ne)ee[ne]=255&te,te/=256;for(this.v(ee),ee=Array(16),te=0,ne=0;ne<4;++ne)for(let re=0;re<32;re+=8)ee[te++]=this.g[ne]>>>re&255;return ee};var te={};function u(ee){return-128<=ee&&ee<128?function p(ee,ne){var re=te;return Object.prototype.hasOwnProperty.call(re,ee)?re[ee]:re[ee]=ne(ee)}(ee,(function(ee){return new t([0|ee],ee<0?-1:0)})):new t([0|ee],ee<0?-1:0)}function v(ee){if(isNaN(ee)||!isFinite(ee))return ne;if(ee<0)return x(v(-ee));const te=[];let re=1;for(let ne=0;ee>=re;ne++)te[ne]=ee/re|0,re*=4294967296;return new t(te,0)}var ne=u(0),re=u(1),se=u(16777216);function C(ee){if(0!=ee.h)return!1;for(let te=0;te<ee.g.length;te++)if(0!=ee.g[te])return!1;return!0}function B(ee){return-1==ee.h}function x(ee){const te=ee.g.length,ne=[];for(let re=0;re<te;re++)ne[re]=~ee.g[re];return new t(ne,~ee.h).add(re)}function F(ee,te){return ee.add(x(te))}function G(ee,te){for(;(65535&ee[te])!=ee[te];)ee[te+1]+=ee[te]>>>16,ee[te]&=65535,te++}function H(ee,te){this.g=ee,this.h=te}function D(ee,te){if(C(te))throw Error("division by zero");if(C(ee))return new H(ne,ne);if(B(ee))return te=D(x(ee),te),new H(x(te.g),x(te.h));if(B(te))return te=D(ee,x(te)),new H(x(te.g),te.h);if(ee.g.length>30){if(B(ee)||B(te))throw Error("slowDivide_ only works with positive integers.");for(var se=re,ie=te;ie.l(ee)<=0;)se=I(se),ie=I(ie);var ae=J(se,1),oe=J(ie,1);for(ie=J(ie,2),se=J(se,2);!C(ie);){var ue=oe.add(ie);ue.l(ee)<=0&&(ae=ae.add(se),oe=ue),ie=J(ie,1),se=J(se,1)}return te=F(ee,ae.j(te)),new H(ae,te)}for(ae=ne;ee.l(te)>=0;){for(se=Math.max(1,Math.floor(ee.m()/te.m())),ie=(ie=Math.ceil(Math.log(se)/Math.LN2))<=48?1:Math.pow(2,ie-48),ue=(oe=v(se)).j(te);B(ue)||ue.l(ee)>0;)ue=(oe=v(se-=ie)).j(te);C(oe)&&(oe=re),ae=ae.add(oe),ee=F(ee,ue)}return new H(ae,ee)}function I(ee){const te=ee.g.length+1,ne=[];for(let re=0;re<te;re++)ne[re]=ee.i(re)<<1|ee.i(re-1)>>>31;return new t(ne,ee.h)}function J(ee,te){const ne=te>>5;te%=32;const re=ee.g.length-ne,se=[];for(let ie=0;ie<re;ie++)se[ie]=te>0?ee.i(ie+ne)>>>te|ee.i(ie+ne+1)<<32-te:ee.i(ie+ne);return new t(se,ee.h)}(ee=t.prototype).m=function(){if(B(this))return-x(this).m();let ee=0,te=1;for(let ne=0;ne<this.g.length;ne++){const re=this.i(ne);ee+=(re>=0?re:4294967296+re)*te,te*=4294967296}return ee},ee.toString=function(ee){if((ee=ee||10)<2||36<ee)throw Error("radix out of range: "+ee);if(C(this))return"0";if(B(this))return"-"+x(this).toString(ee);const te=v(Math.pow(ee,6));var ne=this;let re="";for(;;){const se=D(ne,te).g;let ie=(((ne=F(ne,se.j(te))).g.length>0?ne.g[0]:ne.h)>>>0).toString(ee);if(C(ne=se))return ie+re;for(;ie.length<6;)ie="0"+ie;re=ie+re}},ee.i=function(ee){return ee<0?0:ee<this.g.length?this.g[ee]:this.h},ee.l=function(ee){return B(ee=F(this,ee))?-1:C(ee)?0:1},ee.abs=function(){return B(this)?x(this):this},ee.add=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];let re=0;for(let se=0;se<=te;se++){let te=re+(65535&this.i(se))+(65535&ee.i(se)),ie=(te>>>16)+(this.i(se)>>>16)+(ee.i(se)>>>16);re=ie>>>16,te&=65535,ie&=65535,ne[se]=ie<<16|te}return new t(ne,-2147483648&ne[ne.length-1]?-1:0)},ee.j=function(ee){if(C(this)||C(ee))return ne;if(B(this))return B(ee)?x(this).j(x(ee)):x(x(this).j(ee));if(B(ee))return x(this.j(x(ee)));if(this.l(se)<0&&ee.l(se)<0)return v(this.m()*ee.m());const te=this.g.length+ee.g.length,re=[];for(var ie=0;ie<2*te;ie++)re[ie]=0;for(ie=0;ie<this.g.length;ie++)for(let te=0;te<ee.g.length;te++){const ne=this.i(ie)>>>16,se=65535&this.i(ie),ae=ee.i(te)>>>16,oe=65535&ee.i(te);re[2*ie+2*te]+=se*oe,G(re,2*ie+2*te),re[2*ie+2*te+1]+=ne*oe,G(re,2*ie+2*te+1),re[2*ie+2*te+1]+=se*ae,G(re,2*ie+2*te+1),re[2*ie+2*te+2]+=ne*ae,G(re,2*ie+2*te+2)}for(ee=0;ee<te;ee++)re[ee]=re[2*ee+1]<<16|re[2*ee];for(ee=te;ee<2*te;ee++)re[ee]=0;return new t(re,0)},ee.B=function(ee){return D(this,ee).h},ee.and=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];for(let re=0;re<te;re++)ne[re]=this.i(re)&ee.i(re);return new t(ne,this.h&ee.h)},ee.or=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];for(let re=0;re<te;re++)ne[re]=this.i(re)|ee.i(re);return new t(ne,this.h|ee.h)},ee.xor=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];for(let re=0;re<te;re++)ne[re]=this.i(re)^ee.i(re);return new t(ne,this.h^ee.h)},m.prototype.digest=m.prototype.A,m.prototype.reset=m.prototype.u,m.prototype.update=m.prototype.v,ue=m,t.prototype.add=t.prototype.add,t.prototype.multiply=t.prototype.j,t.prototype.modulo=t.prototype.B,t.prototype.compare=t.prototype.l,t.prototype.toNumber=t.prototype.m,t.prototype.toString=t.prototype.toString,t.prototype.getBits=t.prototype.i,t.fromNumber=v,t.fromString=function y(ee,te){if(0==ee.length)throw Error("number format error: empty string");if((te=te||10)<2||36<te)throw Error("radix out of range: "+te);if("-"==ee.charAt(0))return x(y(ee.substring(1),te));if(ee.indexOf("-")>=0)throw Error('number format error: interior "-" character');const re=v(Math.pow(te,8));let se=ne;for(let ne=0;ne<ee.length;ne+=8){var ie=Math.min(8,ee.length-ne);const ae=parseInt(ee.substring(ne,ne+ie),te);ie<8?(ie=v(Math.pow(te,ie)),se=se.j(ie).add(v(ae))):(se=se.j(re),se=se.add(v(ae)))}return se},oe=t}).apply(void 0!==le?le:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),function(ee){ee[ee.DEBUG=0]="DEBUG",ee[ee.VERBOSE=1]="VERBOSE",ee[ee.INFO=2]="INFO",ee[ee.WARN=3]="WARN",ee[ee.ERROR=4]="ERROR",ee[ee.SILENT=5]="SILENT"}(Be||(Be={}));const ce={debug:Be.DEBUG,verbose:Be.VERBOSE,info:Be.INFO,warn:Be.WARN,error:Be.ERROR,silent:Be.SILENT},_e=Be.INFO,he={[Be.DEBUG]:"log",[Be.VERBOSE]:"log",[Be.INFO]:"info",[Be.WARN]:"warn",[Be.ERROR]:"error"},defaultLogHandler=(ee,te,...ne)=>{if(te<ee.logLevel)return;const re=(new Date).toISOString(),se=he[te];if(!se)throw new Error(`Attempted to log a message with an invalid logType (value: ${te})`);console[se](`[${re}] ${ee.name}:`,...ne)};var de,Ee,Ce,pe,me,fe,ge,Te,Ie,Ae,Pe,Re,Ve,De,ye,we,be,Se,ve,xe,Fe,Oe,Ne,Le="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function __setFunctionName(ee,te,ne){return"symbol"==typeof te&&(te=te.description?"[".concat(te.description,"]"):""),Object.defineProperty(ee,"name",{configurable:!0,value:ne?"".concat(ne," ",te):te})}(function(){var ee,te=Object.defineProperty;var ne=function ba(ee){ee=["object"==typeof globalThis&&globalThis,ee,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Le&&Le];for(var te=0;te<ee.length;++te){var ne=ee[te];if(ne&&ne.Math==Math)return ne}throw Error("Cannot find global object")}(this);function da(ee,re){if(re)e:{var se=ne;ee=ee.split(".");for(var ie=0;ie<ee.length-1;ie++){var ae=ee[ie];if(!(ae in se))break e;se=se[ae]}(re=re(ie=se[ee=ee[ee.length-1]]))!=ie&&null!=re&&te(se,ee,{configurable:!0,writable:!0,value:re})}}da("Symbol.dispose",(function(ee){return ee||Symbol("Symbol.dispose")})),da("Array.prototype.values",(function(ee){return ee||function(){return this[Symbol.iterator]()}})),da("Object.entries",(function(ee){return ee||function(ee){var te,ne=[];for(te in ee)Object.prototype.hasOwnProperty.call(ee,te)&&ne.push([te,ee[te]]);return ne}}));var re=re||{},se=this||self;function n(ee){var te=typeof ee;return"object"==te&&null!=ee||"function"==te}function fa(ee,te,ne){return ee.call.apply(ee.bind,arguments)}function p(ee,te,ne){return(p=fa).apply(null,arguments)}function ha(ee,te){var ne=Array.prototype.slice.call(arguments,1);return function(){var te=ne.slice();return te.push.apply(te,arguments),ee.apply(this,te)}}function t(ee,te){function c(){}c.prototype=te.prototype,ee.Z=te.prototype,ee.prototype=new c,ee.prototype.constructor=ee,ee.Ob=function(ee,ne,re){for(var se=Array(arguments.length-2),ie=2;ie<arguments.length;ie++)se[ie-2]=arguments[ie];return te.prototype[ne].apply(ee,se)}}var ie="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?ee=>ee&&AsyncContext.Snapshot.wrap(ee):ee=>ee;function ja(ee){const te=ee.length;if(te>0){const ne=Array(te);for(let re=0;re<te;re++)ne[re]=ee[re];return ne}return[]}function ka(ee,te){for(let te=1;te<arguments.length;te++){const re=arguments[te];var ne=typeof re;if("array"==(ne="object"!=ne?ne:re?Array.isArray(re)?"array":ne:"null")||"object"==ne&&"number"==typeof re.length){ne=ee.length||0;const te=re.length||0;ee.length=ne+te;for(let se=0;se<te;se++)ee[ne+se]=re[se]}else ee.push(re)}}function ma(ee){se.setTimeout((()=>{throw ee}),0)}function na(){var ee=Be;let te=null;return ee.g&&(te=ee.g,ee.g=ee.g.next,ee.g||(ee.h=null),te.next=null),te}var ae=new class la{constructor(ee,te){this.i=ee,this.j=te,this.h=0,this.g=null}get(){let ee;return this.h>0?(this.h--,ee=this.g,this.g=ee.next,ee.next=null):ee=this.i(),ee}}((()=>new ra),(ee=>ee.reset()));class ra{constructor(){this.next=this.g=this.h=null}set(ee,te){this.h=ee,this.g=te,this.next=null}reset(){this.next=this.g=this.h=null}}let oe,ue=!1,Be=new class pa{constructor(){this.h=this.g=null}add(ee,te){const ne=ae.get();ne.set(ee,te),this.h?this.h.next=ne:this.g=ne,this.h=ne}},ta=()=>{const ee=Promise.resolve(void 0);oe=()=>{ee.then(sa)}};function sa(){for(var ee;ee=na();){try{ee.h.call(ee.g)}catch(ee){ma(ee)}var te=ae;te.j(ee),te.h<100&&(te.h++,ee.next=te.g,te.g=ee)}ue=!1}function w(){this.u=this.u,this.C=this.C}function x(ee,te){this.type=ee,this.g=this.target=te,this.defaultPrevented=!1}w.prototype.u=!1,w.prototype.dispose=function(){this.u||(this.u=!0,this.N())},w.prototype[Symbol.dispose]=function(){this.dispose()},w.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},x.prototype.h=function(){this.defaultPrevented=!0};var le=function(){if(!se.addEventListener||!Object.defineProperty)return!1;var ee=!1,te=Object.defineProperty({},"passive",{get:function(){ee=!0}});try{const c=()=>{};se.addEventListener("test",c,te),se.removeEventListener("test",c,te)}catch(ee){}return ee}();function y(ee){return/^[\s\xa0]*$/.test(ee)}function z(ee,te){x.call(this,ee?ee.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,ee&&this.init(ee,te)}t(z,x),z.prototype.init=function(ee,te){const ne=this.type=ee.type,re=ee.changedTouches&&ee.changedTouches.length?ee.changedTouches[0]:null;this.target=ee.target||ee.srcElement,this.g=te,(te=ee.relatedTarget)||("mouseover"==ne?te=ee.fromElement:"mouseout"==ne&&(te=ee.toElement)),this.relatedTarget=te,re?(this.clientX=void 0!==re.clientX?re.clientX:re.pageX,this.clientY=void 0!==re.clientY?re.clientY:re.pageY,this.screenX=re.screenX||0,this.screenY=re.screenY||0):(this.clientX=void 0!==ee.clientX?ee.clientX:ee.pageX,this.clientY=void 0!==ee.clientY?ee.clientY:ee.pageY,this.screenX=ee.screenX||0,this.screenY=ee.screenY||0),this.button=ee.button,this.key=ee.key||"",this.ctrlKey=ee.ctrlKey,this.altKey=ee.altKey,this.shiftKey=ee.shiftKey,this.metaKey=ee.metaKey,this.pointerId=ee.pointerId||0,this.pointerType=ee.pointerType,this.state=ee.state,this.i=ee,ee.defaultPrevented&&z.Z.h.call(this)},z.prototype.h=function(){z.Z.h.call(this);const ee=this.i;ee.preventDefault?ee.preventDefault():ee.returnValue=!1};var ce="closure_listenable_"+(1e6*Math.random()|0),_e=0;function wa(ee,te,ne,re,se){this.listener=ee,this.proxy=null,this.src=te,this.type=ne,this.capture=!!re,this.ha=se,this.key=++_e,this.da=this.fa=!1}function xa(ee){ee.da=!0,ee.listener=null,ee.proxy=null,ee.src=null,ee.ha=null}function ya(ee,te,ne){for(const re in ee)te.call(ne,ee[re],re,ee)}function Ba(ee){const te={};for(const ne in ee)te[ne]=ee[ne];return te}const he="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function Da(ee,te){let ne,re;for(let te=1;te<arguments.length;te++){for(ne in re=arguments[te],re)ee[ne]=re[ne];for(let te=0;te<he.length;te++)ne=he[te],Object.prototype.hasOwnProperty.call(re,ne)&&(ee[ne]=re[ne])}}function Ea(ee){this.src=ee,this.g={},this.h=0}function Ga(ee,te){const ne=te.type;if(ne in ee.g){var re,se=ee.g[ne],ie=Array.prototype.indexOf.call(se,te,void 0);(re=ie>=0)&&Array.prototype.splice.call(se,ie,1),re&&(xa(te),0==ee.g[ne].length&&(delete ee.g[ne],ee.h--))}}function Fa(ee,te,ne,re){for(let se=0;se<ee.length;++se){const ie=ee[se];if(!ie.da&&ie.listener==te&&ie.capture==!!ne&&ie.ha==re)return se}return-1}Ea.prototype.add=function(ee,te,ne,re,se){const ie=ee.toString();(ee=this.g[ie])||(ee=this.g[ie]=[],this.h++);const ae=Fa(ee,te,re,se);return ae>-1?(te=ee[ae],ne||(te.fa=!1)):((te=new wa(te,this.src,ie,!!re,se)).fa=ne,ee.push(te)),te};var Ie="closure_lm_"+(1e6*Math.random()|0),Ae={};function Ka(ee,te,ne,re,se){if(Array.isArray(te)){for(let ie=0;ie<te.length;ie++)Ka(ee,te[ie],ne,re,se);return null}return ne=Ma(ne),ee&&ee[ce]?ee.J(te,ne,!!n(re)&&!!re.capture,se):function Na(ee,te,ne,re,se,ie){if(!te)throw Error("Invalid event type");const ae=n(se)?!!se.capture:!!se;let oe=Oa(ee);if(oe||(ee[Ie]=oe=new Ea(ee)),ne=oe.add(te,ne,re,ae,ie),ne.proxy)return ne;if(re=function Pa(){function a(te){return ee.call(a.src,a.listener,te)}const ee=Ra;return a}(),ne.proxy=re,re.src=ee,re.listener=ne,ee.addEventListener)le||(se=ae),void 0===se&&(se=!1),ee.addEventListener(te.toString(),re,se);else if(ee.attachEvent)ee.attachEvent(Qa(te.toString()),re);else{if(!ee.addListener||!ee.removeListener)throw Error("addEventListener and attachEvent are unavailable.");ee.addListener(re)}return ne}(ee,te,ne,!1,re,se)}function Sa(ee,te,ne,re,se){if(Array.isArray(te))for(var ie=0;ie<te.length;ie++)Sa(ee,te[ie],ne,re,se);else re=n(re)?!!re.capture:!!re,ne=Ma(ne),ee&&ee[ce]?(ee=ee.i,(ie=String(te).toString())in ee.g&&((ne=Fa(te=ee.g[ie],ne,re,se))>-1&&(xa(te[ne]),Array.prototype.splice.call(te,ne,1),0==te.length&&(delete ee.g[ie],ee.h--)))):ee&&(ee=Oa(ee))&&(te=ee.g[te.toString()],ee=-1,te&&(ee=Fa(te,ne,re,se)),(ne=ee>-1?te[ee]:null)&&Ta(ne))}function Ta(ee){if("number"!=typeof ee&&ee&&!ee.da){var te=ee.src;if(te&&te[ce])Ga(te.i,ee);else{var ne=ee.type,re=ee.proxy;te.removeEventListener?te.removeEventListener(ne,re,ee.capture):te.detachEvent?te.detachEvent(Qa(ne),re):te.addListener&&te.removeListener&&te.removeListener(re),(ne=Oa(te))?(Ga(ne,ee),0==ne.h&&(ne.src=null,te[Ie]=null)):xa(ee)}}}function Qa(ee){return ee in Ae?Ae[ee]:Ae[ee]="on"+ee}function Ra(ee,te){if(ee.da)ee=!0;else{te=new z(te,this);const ne=ee.listener,re=ee.ha||ee.src;ee.fa&&Ta(ee),ee=ne.call(re,te)}return ee}function Oa(ee){return(ee=ee[Ie])instanceof Ea?ee:null}var Pe="__closure_events_fn_"+(1e9*Math.random()>>>0);function Ma(ee){return"function"==typeof ee?ee:(ee[Pe]||(ee[Pe]=function(te){return ee.handleEvent(te)}),ee[Pe])}function C(){w.call(this),this.i=new Ea(this),this.M=this,this.G=null}function D(ee,te){var ne,re=ee.G;if(re)for(ne=[];re;re=re.G)ne.push(re);if(ee=ee.M,re=te.type||te,"string"==typeof te)te=new x(te,ee);else if(te instanceof x)te.target=te.target||ee;else{var se=te;Da(te=new x(re,ee),se)}let ie,ae;if(se=!0,ne)for(ae=ne.length-1;ae>=0;ae--)ie=te.g=ne[ae],se=Va(ie,re,!0,te)&&se;if(ie=te.g=ee,se=Va(ie,re,!0,te)&&se,se=Va(ie,re,!1,te)&&se,ne)for(ae=0;ae<ne.length;ae++)ie=te.g=ne[ae],se=Va(ie,re,!1,te)&&se}function Va(ee,te,ne,re){if(!(te=ee.i.g[String(te)]))return!0;te=te.concat();let se=!0;for(let ie=0;ie<te.length;++ie){const ae=te[ie];if(ae&&!ae.da&&ae.capture==ne){const te=ae.listener,ne=ae.ha||ae.src;ae.fa&&Ga(ee.i,ae),se=!1!==te.call(ne,re)&&se}}return se&&!re.defaultPrevented}function Xa(ee){ee.g=function Wa(ee,te){if("function"!=typeof ee){if(!ee||"function"!=typeof ee.handleEvent)throw Error("Invalid listener argument");ee=p(ee.handleEvent,ee)}return Number(te)>2147483647?-1:se.setTimeout(ee,te||0)}((()=>{ee.g=null,ee.i&&(ee.i=!1,Xa(ee))}),ee.l);const te=ee.h;ee.h=null,ee.m.apply(null,te)}t(C,w),C.prototype[ce]=!0,C.prototype.removeEventListener=function(ee,te,ne,re){Sa(this,ee,te,ne,re)},C.prototype.N=function(){if(C.Z.N.call(this),this.i){var ee=this.i;for(const te in ee.g){const ne=ee.g[te];for(let ee=0;ee<ne.length;ee++)xa(ne[ee]);delete ee.g[te],ee.h--}}this.G=null},C.prototype.J=function(ee,te,ne,re){return this.i.add(String(ee),te,!1,ne,re)},C.prototype.K=function(ee,te,ne,re){return this.i.add(String(ee),te,!0,ne,re)};class Ya extends w{constructor(ee,te){super(),this.m=ee,this.l=te,this.h=null,this.i=!1,this.g=null}j(ee){this.h=arguments,this.g?this.i=!0:Xa(this)}N(){super.N(),this.g&&(se.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function E(ee){w.call(this),this.h=ee,this.g={}}t(E,w);var Re=[];function $a(ee){ya(ee.g,(function(ee,te){this.g.hasOwnProperty(te)&&Ta(ee)}),ee),ee.g={}}E.prototype.N=function(){E.Z.N.call(this),$a(this)},E.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ve=se.JSON.stringify,De=se.JSON.parse,ye=class{stringify(ee){return se.JSON.stringify(ee,void 0)}parse(ee){return se.JSON.parse(ee,void 0)}};function eb(){}function fb(){}var we={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function gb(){x.call(this,"d")}function hb(){x.call(this,"c")}t(gb,x),t(hb,x);var be={},Se=null;function jb(){return Se=Se||new C}function kb(ee){x.call(this,be.Ia,ee)}function lb(ee){const te=jb();D(te,new kb(te))}function mb(ee,te){x.call(this,be.STAT_EVENT,ee),this.stat=te}function J(ee){const te=jb();D(te,new mb(te,ee))}function nb(ee,te){x.call(this,be.Ja,ee),this.size=te}function ob(ee,te){if("function"!=typeof ee)throw Error("Fn must not be null and must be a function");return se.setTimeout((function(){ee()}),te)}function pb(){this.g=!0}function K(ee,te,ne,re){ee.info((function(){return"XMLHTTP TEXT ("+te+"): "+function sb(ee,te){if(!ee.g)return te;if(!te)return null;try{const ie=JSON.parse(te);if(ie)for(ee=0;ee<ie.length;ee++)if(Array.isArray(ie[ee])){var ne=ie[ee];if(!(ne.length<2)){var re=ne[1];if(Array.isArray(re)&&!(re.length<1)){var se=re[0];if("noop"!=se&&"stop"!=se&&"close"!=se)for(let ee=1;ee<re.length;ee++)re[ee]=""}}}return Ve(ie)}catch(ee){return te}}(ee,ne)+(re?" "+re:"")}))}be.Ia="serverreachability",t(kb,x),be.STAT_EVENT="statevent",t(mb,x),be.Ja="timingevent",t(nb,x),pb.prototype.ua=function(){this.g=!1},pb.prototype.info=function(){};var ve,xe={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Fe={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function xb(){}function L(ee){return encodeURIComponent(String(ee))}function yb(ee){var te=1;ee=ee.split(":");const ne=[];for(;te>0&&ee.length;)ne.push(ee.shift()),te--;return ee.length&&ne.push(ee.join(":")),ne}function N(ee,te,ne,re){this.j=ee,this.i=te,this.l=ne,this.S=re||1,this.V=new E(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new zb}function zb(){this.i=null,this.g="",this.h=!1}t(xb,eb),xb.prototype.g=function(){return new XMLHttpRequest},ve=new xb;var Oe={},Ne={};function Cb(ee,te,ne){ee.M=1,ee.A=Db(O(te)),ee.u=ne,ee.R=!0,Eb(ee,null)}function Eb(ee,te){ee.F=Date.now(),Fb(ee),ee.B=O(ee.A);var ne=ee.B,re=ee.S;Array.isArray(re)||(re=[String(re)]),Gb(ne.i,"t",re),ee.C=0,ne=ee.j.L,ee.h=new zb,ee.g=Hb(ee.j,ne?te:null,!ee.u),ee.P>0&&(ee.O=new Ya(p(ee.Y,ee,ee.g),ee.P)),te=ee.V,ne=ee.g,re=ee.ba;var se="readystatechange";Array.isArray(se)||(se&&(Re[0]=se.toString()),se=Re);for(let ee=0;ee<se.length;ee++){const ie=Ka(ne,se[ee],re||te.handleEvent,!1,te.h||te);if(!ie)break;te.g[ie.key]=ie}te=ee.J?Ba(ee.J):{},ee.u?(ee.v||(ee.v="POST"),te["Content-Type"]="application/x-www-form-urlencoded",ee.g.ea(ee.B,ee.v,ee.u,te)):(ee.v="GET",ee.g.ea(ee.B,ee.v,null,te)),lb(),function qb(ee,te,ne,re,se,ie){ee.info((function(){if(ee.g)if(ie){var ae="",oe=ie.split("&");for(let ee=0;ee<oe.length;ee++){var ue=oe[ee].split("=");if(ue.length>1){const ee=ue[0];ue=ue[1];const te=ee.split("_");ae=te.length>=2&&"type"==te[1]?ae+(ee+"=")+ue+"&":ae+(ee+"=redacted&")}}}else ae=null;else ae=ie;return"XMLHTTP REQ ("+re+") [attempt "+se+"]: "+te+"\n"+ne+"\n"+ae}))}(ee.i,ee.v,ee.B,ee.l,ee.S,ee.u)}function Ob(ee){return!!ee.g&&("GET"==ee.v&&2!=ee.M&&ee.j.Aa)}function Nb(ee,te){var ne=ee.C,re=te.indexOf("\n",ne);return-1==re?Ne:(ne=Number(te.substring(ne,re)),isNaN(ne)?Oe:(re+=1)+ne>te.length?Ne:(te=te.slice(re,re+ne),ee.C=re+ne,te))}function Fb(ee){ee.T=Date.now()+ee.H,Sb(ee,ee.H)}function Sb(ee,te){if(null!=ee.D)throw Error("WatchDog timer not null");ee.D=ob(p(ee.aa,ee),te)}function Jb(ee){ee.D&&(se.clearTimeout(ee.D),ee.D=null)}function Mb(ee){0==ee.j.I||ee.K||Qb(ee.j,ee)}function Q(ee){Jb(ee);var te=ee.O;te&&"function"==typeof te.dispose&&te.dispose(),ee.O=null,$a(ee.V),ee.g&&(te=ee.g,ee.g=null,te.abort(),te.dispose())}function Lb(ee,te){try{var ne=ee.j;if(0!=ne.I&&(ne.g==ee||Tb(ne.h,ee)))if(!ee.L&&Tb(ne.h,ee)&&3==ne.I){try{var re=ne.Ba.g.parse(te)}catch(ee){re=null}if(Array.isArray(re)&&3==re.length){var se=re;if(0==se[0]){e:if(!ne.v){if(ne.g){if(!(ne.g.F+3e3<ee.F))break e;Ub(ne),Vb(ne)}Wb(ne),J(18)}}else ne.xa=se[1],0<ne.xa-ne.K&&se[2]<37500&&ne.F&&0==ne.A&&!ne.C&&(ne.C=ob(p(ne.Va,ne),6e3));Xb(ne.h)<=1&&ne.ta&&(ne.ta=void 0)}else R(ne,11)}else if((ee.L||ne.g==ee)&&Ub(ne),!y(te))for(se=ne.Ba.g.parse(te),te=0;te<se.length;te++){let Be=se[te];const le=Be[0];if(!(le<=ne.K))if(ne.K=le,Be=Be[1],2==ne.I)if("c"==Be[0]){ne.M=Be[1],ne.ba=Be[2];const te=Be[3];null!=te&&(ne.ka=te,ne.j.info("VER="+ne.ka));const se=Be[4];null!=se&&(ne.za=se,ne.j.info("SVER="+ne.za));const le=Be[5];null!=le&&"number"==typeof le&&le>0&&(re=1.5*le,ne.O=re,ne.j.info("backChannelRequestTimeoutMs_="+re)),re=ne;const ce=ee.g;if(ce){const ee=ce.g?ce.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(ee){var ie=re.h;ie.g||-1==ee.indexOf("spdy")&&-1==ee.indexOf("quic")&&-1==ee.indexOf("h2")||(ie.j=ie.l,ie.g=new Set,ie.h&&(Yb(ie,ie.h),ie.h=null))}if(re.G){const ee=ce.g?ce.g.getResponseHeader("X-HTTP-Session-Id"):null;ee&&(re.wa=ee,S(re.J,re.G,ee))}}ne.I=3,ne.l&&ne.l.ra(),ne.aa&&(ne.T=Date.now()-ee.F,ne.j.info("Handshake RTT: "+ne.T+"ms"));var ae=ee;if((re=ne).na=Zb(re,re.L?re.ba:null,re.W),ae.L){$b(re.h,ae);var oe=ae,ue=re.O;ue&&(oe.H=ue),oe.D&&(Jb(oe),Fb(oe)),re.g=ae}else ac(re);ne.i.length>0&&bc(ne)}else"stop"!=Be[0]&&"close"!=Be[0]||R(ne,7);else 3==ne.I&&("stop"==Be[0]||"close"==Be[0]?"stop"==Be[0]?R(ne,7):cc(ne):"noop"!=Be[0]&&ne.l&&ne.l.qa(Be),ne.A=0)}lb()}catch(ee){}}N.prototype.ba=function(ee){ee=ee.target;const te=this.O;te&&3==P(ee)?te.j():this.Y(ee)},N.prototype.Y=function(ee){try{if(ee==this.g)e:{const ue=P(this.g),Be=this.g.ya();this.g.ca();if(!(ue<3)&&(3!=ue||this.g&&(this.h.h||this.g.la()||Ib(this.g)))){this.K||4!=ue||7==Be||lb(),Jb(this);var te=this.g.ca();this.X=te;var ne=function Kb(ee){if(!Ob(ee))return ee.g.la();const te=Ib(ee.g);if(""===te)return"";let ne="";const re=te.length,ie=4==P(ee.g);if(!ee.h.i){if("undefined"==typeof TextDecoder)return Q(ee),Mb(ee),"";ee.h.i=new se.TextDecoder}for(let se=0;se<re;se++)ee.h.h=!0,ne+=ee.h.i.decode(te[se],{stream:!(ie&&se==re-1)});return te.length=0,ee.h.g+=ne,ee.C=0,ee.h.g}(this);if(this.o=200==te,function rb(ee,te,ne,re,se,ie,ae){ee.info((function(){return"XMLHTTP RESP ("+re+") [ attempt "+se+"]: "+te+"\n"+ne+"\n"+ie+" "+ae}))}(this.i,this.v,this.B,this.l,this.S,ue,te),this.o){if(this.U&&!this.L){t:{if(this.g){var re,ie=this.g;if((re=ie.g?ie.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!y(re)){var ae=re;break t}}ae=null}if(!(ee=ae)){this.o=!1,this.m=3,J(12),Q(this),Mb(this);break e}K(this.i,this.l,ee,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,Lb(this,ee)}if(this.R){let te;for(ee=!0;!this.K&&this.C<ne.length;){if(te=Nb(this,ne),te==Ne){4==ue&&(this.m=4,J(14),ee=!1),K(this.i,this.l,null,"[Incomplete Response]");break}if(te==Oe){this.m=4,J(15),K(this.i,this.l,ne,"[Invalid Chunk]"),ee=!1;break}K(this.i,this.l,te,null),Lb(this,te)}if(Ob(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=ue||0!=ne.length||this.h.h||(this.m=1,J(16),ee=!1),this.o=this.o&&ee,ee){if(ne.length>0&&!this.W){this.W=!0;var oe=this.j;oe.g==this&&oe.aa&&!oe.P&&(oe.j.info("Great, no buffering proxy detected. Bytes received: "+ne.length),Pb(oe),oe.P=!0,J(11))}}else K(this.i,this.l,ne,"[Invalid Chunked Response]"),Q(this),Mb(this)}else K(this.i,this.l,ne,null),Lb(this,ne);4==ue&&Q(this),this.o&&!this.K&&(4==ue?Qb(this.j,this):(this.o=!1,Fb(this)))}else(function Rb(ee){const te={};ee=(ee.g&&P(ee)>=2&&ee.g.getAllResponseHeaders()||"").split("\r\n");for(let re=0;re<ee.length;re++){if(y(ee[re]))continue;var ne=yb(ee[re]);const se=ne[0];if("string"!=typeof(ne=ne[1]))continue;ne=ne.trim();const ie=te[se]||[];te[se]=ie,ie.push(ne)}!function Aa(ee,te){for(const ne in ee)te.call(void 0,ee[ne],ne,ee)}(te,(function(ee){return ee.join(", ")}))})(this.g),400==te&&ne.indexOf("Unknown SID")>0?(this.m=3,J(12)):(this.m=0,J(13)),Q(this),Mb(this)}}}catch(ee){}},N.prototype.cancel=function(){this.K=!0,Q(this)},N.prototype.aa=function(){this.D=null;const ee=Date.now();ee-this.T>=0?(function tb(ee,te){ee.info((function(){return"TIMEOUT: "+te}))}(this.i,this.B),2!=this.M&&(lb(),J(17)),Q(this),this.m=2,Mb(this)):Sb(this,this.T-ee)};var Me=class{constructor(ee,te){this.g=ee,this.map=te}};function ec(ee){this.l=ee||10,se.PerformanceNavigationTiming?ee=(ee=se.performance.getEntriesByType("navigation")).length>0&&("hq"==ee[0].nextHopProtocol||"h2"==ee[0].nextHopProtocol):ee=!!(se.chrome&&se.chrome.loadTimes&&se.chrome.loadTimes()&&se.chrome.loadTimes().wasFetchedViaSpdy),this.j=ee?this.l:1,this.g=null,this.j>1&&(this.g=new Set),this.h=null,this.i=[]}function fc(ee){return!!ee.h||!!ee.g&&ee.g.size>=ee.j}function Xb(ee){return ee.h?1:ee.g?ee.g.size:0}function Tb(ee,te){return ee.h?ee.h==te:!!ee.g&&ee.g.has(te)}function Yb(ee,te){ee.g?ee.g.add(te):ee.h=te}function $b(ee,te){ee.h&&ee.h==te?ee.h=null:ee.g&&ee.g.has(te)&&ee.g.delete(te)}function hc(ee){if(null!=ee.h)return ee.i.concat(ee.h.G);if(null!=ee.g&&0!==ee.g.size){let te=ee.i;for(const ne of ee.g.values())te=te.concat(ne.G);return te}return ja(ee.i)}ec.prototype.cancel=function(){if(this.i=hc(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const ee of this.g.values())ee.cancel();this.g.clear()}};var ke=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function T(ee){let te;this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1,ee instanceof T?(this.l=ee.l,kc(this,ee.j),this.o=ee.o,this.g=ee.g,lc(this,ee.u),this.h=ee.h,mc(this,nc(ee.i)),this.m=ee.m):ee&&(te=String(ee).match(ke))?(this.l=!1,kc(this,te[1]||"",!0),this.o=oc(te[2]||""),this.g=oc(te[3]||"",!0),lc(this,te[4]),this.h=oc(te[5]||"",!0),mc(this,te[6]||"",!0),this.m=oc(te[7]||"")):(this.l=!1,this.i=new pc(null,this.l))}function O(ee){return new T(ee)}function kc(ee,te,ne){ee.j=ne?oc(te,!0):te,ee.j&&(ee.j=ee.j.replace(/:$/,""))}function lc(ee,te){if(te){if(te=Number(te),isNaN(te)||te<0)throw Error("Bad port number "+te);ee.u=te}else ee.u=null}function mc(ee,te,ne){te instanceof pc?(ee.i=te,function vc(ee,te){te&&!ee.j&&(U(ee),ee.i=null,ee.g.forEach((function(ee,te){const ne=te.toLowerCase();te!=ne&&(yc(this,te),Gb(this,ne,ee))}),ee)),ee.j=te}(ee.i,ee.l)):(ne||(te=qc(te,qe)),ee.i=new pc(te,ee.l))}function S(ee,te,ne){ee.i.set(te,ne)}function Db(ee){return S(ee,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),ee}function oc(ee,te){return ee?te?decodeURI(ee.replace(/%25/g,"%2525")):decodeURIComponent(ee):""}function qc(ee,te,ne){return"string"==typeof ee?(ee=encodeURI(ee).replace(te,xc),ne&&(ee=ee.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),ee):null}function xc(ee){return"%"+((ee=ee.charCodeAt(0))>>4&15).toString(16)+(15&ee).toString(16)}T.prototype.toString=function(){const ee=[];var te=this.j;te&&ee.push(qc(te,Ge,!0),":");var ne=this.g;return(ne||"file"==te)&&(ee.push("//"),(te=this.o)&&ee.push(qc(te,Ge,!0),"@"),ee.push(L(ne).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(ne=this.u)&&ee.push(":",String(ne))),(ne=this.h)&&(this.g&&"/"!=ne.charAt(0)&&ee.push("/"),ee.push(qc(ne,"/"==ne.charAt(0)?He:Ue,!0))),(ne=this.i.toString())&&ee.push("?",ne),(ne=this.m)&&ee.push("#",qc(ne,Ke)),ee.join("")},T.prototype.resolve=function(ee){const te=O(this);let ne=!!ee.j;ne?kc(te,ee.j):ne=!!ee.o,ne?te.o=ee.o:ne=!!ee.g,ne?te.g=ee.g:ne=null!=ee.u;var re=ee.h;if(ne)lc(te,ee.u);else if(ne=!!ee.h){if("/"!=re.charAt(0))if(this.g&&!this.h)re="/"+re;else{var se=te.h.lastIndexOf("/");-1!=se&&(re=te.h.slice(0,se+1)+re)}if(".."==(se=re)||"."==se)re="";else if(-1!=se.indexOf("./")||-1!=se.indexOf("/.")){re=0==se.lastIndexOf("/",0),se=se.split("/");const ee=[];for(let te=0;te<se.length;){const ne=se[te++];"."==ne?re&&te==se.length&&ee.push(""):".."==ne?((ee.length>1||1==ee.length&&""!=ee[0])&&ee.pop(),re&&te==se.length&&ee.push("")):(ee.push(ne),re=!0)}re=ee.join("/")}else re=se}return ne?te.h=re:ne=""!==ee.i.toString(),ne?mc(te,nc(ee.i)):ne=!!ee.m,ne&&(te.m=ee.m),te};var Ge=/[#\/\?@]/g,Ue=/[#\?:]/g,He=/[#\?]/g,qe=/[#\?@]/g,Ke=/#/g;function pc(ee,te){this.h=this.g=null,this.i=ee||null,this.j=!!te}function U(ee){ee.g||(ee.g=new Map,ee.h=0,ee.i&&function jc(ee,te){if(ee){ee=ee.split("&");for(let ne=0;ne<ee.length;ne++){const re=ee[ne].indexOf("=");let se,ie=null;re>=0?(se=ee[ne].substring(0,re),ie=ee[ne].substring(re+1)):se=ee[ne],te(se,ie?decodeURIComponent(ie.replace(/\+/g," ")):"")}}}(ee.i,(function(te,ne){ee.add(decodeURIComponent(te.replace(/\+/g," ")),ne)})))}function yc(ee,te){U(ee),te=V(ee,te),ee.g.has(te)&&(ee.i=null,ee.h-=ee.g.get(te).length,ee.g.delete(te))}function zc(ee,te){return U(ee),te=V(ee,te),ee.g.has(te)}function Ac(ee,te){U(ee);let ne=[];if("string"==typeof te)zc(ee,te)&&(ne=ne.concat(ee.g.get(V(ee,te))));else for(ee=Array.from(ee.g.values()),te=0;te<ee.length;te++)ne=ne.concat(ee[te]);return ne}function Gb(ee,te,ne){yc(ee,te),ne.length>0&&(ee.i=null,ee.g.set(V(ee,te),ja(ne)),ee.h+=ne.length)}function nc(ee){const te=new pc;return te.i=ee.i,ee.g&&(te.g=new Map(ee.g),te.h=ee.h),te}function V(ee,te){return te=String(te),ee.j&&(te=te.toLowerCase()),te}function W(ee,te,ne,re,se){try{se&&(se.onload=null,se.onerror=null,se.onabort=null,se.ontimeout=null),re(ne)}catch(ee){}}function Dc(){this.g=new ye}function Ec(ee){this.i=ee.Sb||null,this.h=ee.ab||!1}function Fc(ee,te){C.call(this),this.H=ee,this.o=te,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function Ic(ee){ee.j.read().then(ee.Ma.bind(ee)).catch(ee.ga.bind(ee))}function Hc(ee){ee.readyState=4,ee.l=null,ee.j=null,ee.B=null,Gc(ee)}function Gc(ee){ee.onreadystatechange&&ee.onreadystatechange.call(ee)}function Jc(ee){let te="";return ya(ee,(function(ee,ne){te+=ne,te+=":",te+=ee,te+="\r\n"})),te}function Kc(ee,te,ne){e:{for(re in ne){var re=!1;break e}re=!0}re||(ne=Jc(ne),"string"==typeof ee?null!=ne&&L(ne):S(ee,te,ne))}function X(ee){C.call(this),this.headers=new Map,this.L=ee||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(ee=pc.prototype).add=function(ee,te){U(this),this.i=null,ee=V(this,ee);let ne=this.g.get(ee);return ne||this.g.set(ee,ne=[]),ne.push(te),this.h+=1,this},ee.forEach=function(ee,te){U(this),this.g.forEach((function(ne,re){ne.forEach((function(ne){ee.call(te,ne,re,this)}),this)}),this)},ee.set=function(ee,te){return U(this),this.i=null,zc(this,ee=V(this,ee))&&(this.h-=this.g.get(ee).length),this.g.set(ee,[te]),this.h+=1,this},ee.get=function(ee,te){return ee&&(ee=Ac(this,ee)).length>0?String(ee[0]):te},ee.toString=function(){if(this.i)return this.i;if(!this.g)return"";const ee=[],te=Array.from(this.g.keys());for(let re=0;re<te.length;re++){var ne=te[re];const se=L(ne);ne=Ac(this,ne);for(let te=0;te<ne.length;te++){let re=se;""!==ne[te]&&(re+="="+L(ne[te])),ee.push(re)}}return this.i=ee.join("&")},t(Ec,eb),Ec.prototype.g=function(){return new Fc(this.i,this.h)},t(Fc,C),(ee=Fc.prototype).open=function(ee,te){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=ee,this.D=te,this.readyState=1,Gc(this)},ee.send=function(ee){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;const te={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};ee&&(te.body=ee),(this.H||se).fetch(new Request(this.D,te)).then(this.Pa.bind(this),this.ga.bind(this))},ee.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),this.readyState>=1&&this.g&&4!=this.readyState&&(this.g=!1,Hc(this)),this.readyState=0},ee.Pa=function(ee){if(this.g&&(this.l=ee,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=ee.headers,this.readyState=2,Gc(this)),this.g&&(this.readyState=3,Gc(this),this.g)))if("arraybuffer"===this.responseType)ee.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==se.ReadableStream&&"body"in ee){if(this.j=ee.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;Ic(this)}else ee.text().then(this.Oa.bind(this),this.ga.bind(this))},ee.Ma=function(ee){if(this.g){if(this.o&&ee.value)this.response.push(ee.value);else if(!this.o){var te=ee.value?ee.value:new Uint8Array(0);(te=this.B.decode(te,{stream:!ee.done}))&&(this.response=this.responseText+=te)}ee.done?Hc(this):Gc(this),3==this.readyState&&Ic(this)}},ee.Oa=function(ee){this.g&&(this.response=this.responseText=ee,Hc(this))},ee.Na=function(ee){this.g&&(this.response=ee,Hc(this))},ee.ga=function(){this.g&&Hc(this)},ee.setRequestHeader=function(ee,te){this.A.append(ee,te)},ee.getResponseHeader=function(ee){return this.h&&this.h.get(ee.toLowerCase())||""},ee.getAllResponseHeaders=function(){if(!this.h)return"";const ee=[],te=this.h.entries();for(var ne=te.next();!ne.done;)ne=ne.value,ee.push(ne[0]+": "+ne[1]),ne=te.next();return ee.join("\r\n")},Object.defineProperty(Fc.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(ee){this.m=ee?"include":"same-origin"}}),t(X,C);var Qe=/^https?$/i,je=["POST","PUT"];function Nc(ee,te){ee.h=!1,ee.g&&(ee.j=!0,ee.g.abort(),ee.j=!1),ee.l=te,ee.o=5,Oc(ee),Pc(ee)}function Oc(ee){ee.A||(ee.A=!0,D(ee,"complete"),D(ee,"error"))}function Qc(ee){if(ee.h&&void 0!==re)if(ee.v&&4==P(ee))setTimeout(ee.Ca.bind(ee),0);else if(D(ee,"readystatechange"),4==P(ee)){ee.h=!1;try{const re=ee.ca();e:switch(re){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var te=!0;break e;default:te=!1}var ne;if(!(ne=te)){var ie;if(ie=0===re){let te=String(ee.D).match(ke)[1]||null;!te&&se.self&&se.self.location&&(te=se.self.location.protocol.slice(0,-1)),ie=!Qe.test(te?te.toLowerCase():"")}ne=ie}if(ne)D(ee,"complete"),D(ee,"success");else{ee.o=6;try{var ae=P(ee)>2?ee.g.statusText:""}catch(ee){ae=""}ee.l=ae+" ["+ee.ca()+"]",Oc(ee)}}finally{Pc(ee)}}}function Pc(ee,te){if(ee.g){ee.m&&(clearTimeout(ee.m),ee.m=null);const ne=ee.g;ee.g=null,te||D(ee,"ready");try{ne.onreadystatechange=null}catch(ee){}}}function P(ee){return ee.g?ee.g.readyState:0}function Ib(ee){try{if(!ee.g)return null;if("response"in ee.g)return ee.g.response;switch(ee.F){case"":case"text":return ee.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in ee.g)return ee.g.mozResponseArrayBuffer}return null}catch(ee){return null}}function Rc(ee,te,ne){return ne&&ne.internalChannelParams&&ne.internalChannelParams[ee]||te}function Sc(ee){this.za=0,this.i=[],this.j=new pb,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Rc("failFast",!1,ee),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Rc("baseRetryDelayMs",5e3,ee),this.Za=Rc("retryDelaySeedMs",1e4,ee),this.Ta=Rc("forwardChannelMaxRetries",2,ee),this.va=Rc("forwardChannelRequestTimeoutMs",2e4,ee),this.ma=ee&&ee.xmlHttpFactory||void 0,this.Ua=ee&&ee.Rb||void 0,this.Aa=ee&&ee.useFetchStreams||!1,this.O=void 0,this.L=ee&&ee.supportsCrossDomainXhr||!1,this.M="",this.h=new ec(ee&&ee.concurrentRequestLimit),this.Ba=new Dc,this.S=ee&&ee.fastHandshake||!1,this.R=ee&&ee.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=ee&&ee.Pb||!1,ee&&ee.ua&&this.j.ua(),ee&&ee.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&ee&&ee.detectBufferingProxy||!1,this.ia=void 0,ee&&ee.longPollingTimeout&&ee.longPollingTimeout>0&&(this.ia=ee.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function cc(ee){if(Tc(ee),3==ee.I){var te=ee.V++,ne=O(ee.J);if(S(ne,"SID",ee.M),S(ne,"RID",te),S(ne,"TYPE","terminate"),Uc(ee,ne),(te=new N(ee,ee.j,te)).M=2,te.A=Db(O(ne)),ne=!1,se.navigator&&se.navigator.sendBeacon)try{ne=se.navigator.sendBeacon(te.A.toString(),"")}catch(ee){}!ne&&se.Image&&((new Image).src=te.A,ne=!0),ne||(te.g=Hb(te.j,null),te.g.ea(te.A)),te.F=Date.now(),Fb(te)}Vc(ee)}function Vb(ee){ee.g&&(Pb(ee),ee.g.cancel(),ee.g=null)}function Tc(ee){Vb(ee),ee.v&&(se.clearTimeout(ee.v),ee.v=null),Ub(ee),ee.h.cancel(),ee.m&&("number"==typeof ee.m&&se.clearTimeout(ee.m),ee.m=null)}function bc(ee){if(!fc(ee.h)&&!ee.m){ee.m=!0;var te=ee.Ea;oe||ta(),ue||(oe(),ue=!0),Be.add(te,ee),ee.D=0}}function Zc(ee,te){var ne;ne=te?te.l:ee.V++;const re=O(ee.J);S(re,"SID",ee.M),S(re,"RID",ne),S(re,"AID",ee.K),Uc(ee,re),ee.u&&ee.o&&Kc(re,ee.u,ee.o),ne=new N(ee,ee.j,ne,ee.D+1),null===ee.u&&(ne.J=ee.o),te&&(ee.i=te.G.concat(ee.i)),te=Yc(ee,ne,1e3),ne.H=Math.round(.5*ee.va)+Math.round(.5*ee.va*Math.random()),Yb(ee.h,ne),Cb(ne,re,te)}function Uc(ee,te){ee.H&&ya(ee.H,(function(ee,ne){S(te,ne,ee)})),ee.l&&ya({},(function(ee,ne){S(te,ne,ee)}))}function Yc(ee,te,ne){ne=Math.min(ee.i.length,ne);const re=ee.l?p(ee.l.Ka,ee.l,ee):null;e:{var se=ee.i;let te=-1;for(;;){const ee=["count="+ne];-1==te?ne>0?(te=se[0].g,ee.push("ofs="+te)):te=0:ee.push("ofs="+te);let oe=!0;for(let ue=0;ue<ne;ue++){var ie=se[ue].g;const ne=se[ue].map;if((ie-=te)<0)te=Math.max(0,se[ue].g-100),oe=!1;else try{ie="req"+ie+"_"||"";try{var ae=ne instanceof Map?ne:Object.entries(ne);for(const[te,ne]of ae){let re=ne;n(ne)&&(re=Ve(ne)),ee.push(ie+te+"="+encodeURIComponent(re))}}catch(te){throw ee.push(ie+"type="+encodeURIComponent("_badmap")),te}}catch(ee){re&&re(ne)}}if(oe){ae=ee.join("&");break e}}ae=void 0}return ee=ee.i.splice(0,ne),te.G=ee,ae}function ac(ee){if(!ee.g&&!ee.v){ee.Y=1;var te=ee.Da;oe||ta(),ue||(oe(),ue=!0),Be.add(te,ee),ee.A=0}}function Wb(ee){return!(ee.g||ee.v||ee.A>=3)&&(ee.Y++,ee.v=ob(p(ee.Da,ee),Xc(ee,ee.A)),ee.A++,!0)}function Pb(ee){null!=ee.B&&(se.clearTimeout(ee.B),ee.B=null)}function $c(ee){ee.g=new N(ee,ee.j,"rpc",ee.Y),null===ee.u&&(ee.g.J=ee.o),ee.g.P=0;var te=O(ee.na);S(te,"RID","rpc"),S(te,"SID",ee.M),S(te,"AID",ee.K),S(te,"CI",ee.F?"0":"1"),!ee.F&&ee.ia&&S(te,"TO",ee.ia),S(te,"TYPE","xmlhttp"),Uc(ee,te),ee.u&&ee.o&&Kc(te,ee.u,ee.o),ee.O&&(ee.g.H=ee.O);var ne=ee.g;ee=ee.ba,ne.M=1,ne.A=Db(O(te)),ne.u=null,ne.R=!0,Eb(ne,ee)}function Ub(ee){null!=ee.C&&(se.clearTimeout(ee.C),ee.C=null)}function Qb(ee,te){var ne=null;if(ee.g==te){Ub(ee),Pb(ee),ee.g=null;var re=2}else{if(!Tb(ee.h,te))return;ne=te.G,$b(ee.h,te),re=1}if(0!=ee.I)if(te.o)if(1==re){ne=te.u?te.u.length:0,te=Date.now()-te.F;var se=ee.D;D(re=jb(),new nb(re,ne)),bc(ee)}else ac(ee);else if(3==(se=te.m)||0==se&&te.X>0||!(1==re&&function Wc(ee,te){return!(Xb(ee.h)>=ee.h.j-(ee.m?1:0)||(ee.m?(ee.i=te.G.concat(ee.i),0):1==ee.I||2==ee.I||ee.D>=(ee.Sa?0:ee.Ta)||(ee.m=ob(p(ee.Ea,ee,te),Xc(ee,ee.D)),ee.D++,0)))}(ee,te)||2==re&&Wb(ee)))switch(ne&&ne.length>0&&(te=ee.h,te.i=te.i.concat(ne)),se){case 1:R(ee,5);break;case 4:R(ee,10);break;case 3:R(ee,6);break;default:R(ee,2)}}function Xc(ee,te){let ne=ee.Qa+Math.floor(Math.random()*ee.Za);return ee.isActive()||(ne*=2),ne*te}function R(ee,te){if(ee.j.info("Error code "+te),2==te){var ne=p(ee.bb,ee),re=ee.Ua;const te=!re;re=new T(re||"//www.google.com/images/cleardot.gif"),se.location&&"http"==se.location.protocol||kc(re,"https"),Db(re),te?function Bc(ee,te){const ne=new pb;if(se.Image){const re=new Image;re.onload=ha(W,ne,"TestLoadImage: loaded",!0,te,re),re.onerror=ha(W,ne,"TestLoadImage: error",!1,te,re),re.onabort=ha(W,ne,"TestLoadImage: abort",!1,te,re),re.ontimeout=ha(W,ne,"TestLoadImage: timeout",!1,te,re),se.setTimeout((function(){re.ontimeout&&re.ontimeout()}),1e4),re.src=ee}else te(!1)}(re.toString(),ne):function Cc(ee,te){new pb;const ne=new AbortController,re=setTimeout((()=>{ne.abort(),W(0,0,!1,te)}),1e4);fetch(ee,{signal:ne.signal}).then((ee=>{clearTimeout(re),ee.ok?W(0,0,!0,te):W(0,0,!1,te)})).catch((()=>{clearTimeout(re),W(0,0,!1,te)}))}(re.toString(),ne)}else J(2);ee.I=0,ee.l&&ee.l.pa(te),Vc(ee),Tc(ee)}function Vc(ee){if(ee.I=0,ee.ja=[],ee.l){const te=hc(ee.h);0==te.length&&0==ee.i.length||(ka(ee.ja,te),ka(ee.ja,ee.i),ee.h.i.length=0,ja(ee.i),ee.i.length=0),ee.l.oa()}}function Zb(ee,te,ne){var re=ne instanceof T?O(ne):new T(ne);if(""!=re.g)te&&(re.g=te+"."+re.g),lc(re,re.u);else{var ie=se.location;re=ie.protocol,te=te?te+"."+ie.hostname:ie.hostname,ie=+ie.port;const ee=new T(null);re&&kc(ee,re),te&&(ee.g=te),ie&&lc(ee,ie),ne&&(ee.h=ne),re=ee}return ne=ee.G,te=ee.wa,ne&&te&&S(re,ne,te),S(re,"VER",ee.ka),Uc(ee,re),re}function Hb(ee,te,ne){if(te&&!ee.L)throw Error("Can't create secondary domain capable XhrIo object.");return(te=ee.Aa&&!ee.ma?new X(new Ec({ab:ne})):new X(ee.ma)).Fa(ee.L),te}function ad(){}function bd(){}function Y(ee,te){C.call(this),this.g=new Sc(te),this.l=ee,this.h=te&&te.messageUrlParams||null,ee=te&&te.messageHeaders||null,te&&te.clientProtocolHeaderRequired&&(ee?ee["X-Client-Protocol"]="webchannel":ee={"X-Client-Protocol":"webchannel"}),this.g.o=ee,ee=te&&te.initMessageHeaders||null,te&&te.messageContentType&&(ee?ee["X-WebChannel-Content-Type"]=te.messageContentType:ee={"X-WebChannel-Content-Type":te.messageContentType}),te&&te.sa&&(ee?ee["X-WebChannel-Client-Profile"]=te.sa:ee={"X-WebChannel-Client-Profile":te.sa}),this.g.U=ee,(ee=te&&te.Qb)&&!y(ee)&&(this.g.u=ee),this.A=te&&te.supportsCrossDomainXhr||!1,this.v=te&&te.sendRawJson||!1,(te=te&&te.httpSessionIdParam)&&!y(te)&&(this.g.G=te,null!==(ee=this.h)&&te in ee&&(te in(ee=this.h)&&delete ee[te])),this.j=new Z(this)}function cd(ee){gb.call(this),ee.__headers__&&(this.headers=ee.__headers__,this.statusCode=ee.__status__,delete ee.__headers__,delete ee.__status__);var te=ee.__sm__;if(te){e:{for(const ne in te){ee=ne;break e}ee=void 0}(this.i=ee)&&(ee=this.i,te=null!==te&&ee in te?te[ee]:void 0),this.data=te}else this.data=ee}function dd(){hb.call(this),this.status=1}function Z(ee){this.g=ee}(ee=X.prototype).Fa=function(ee){this.H=ee},ee.ea=function(ee,te,ne,re){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+ee);te=te?te.toUpperCase():"GET",this.D=ee,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=this.L?this.L.g():ve.g(),this.g.onreadystatechange=ie(p(this.Ca,this));try{this.B=!0,this.g.open(te,String(ee),!0),this.B=!1}catch(ee){return void Nc(this,ee)}if(ee=ne||"",ne=new Map(this.headers),re)if(Object.getPrototypeOf(re)===Object.prototype)for(var ae in re)ne.set(ae,re[ae]);else{if("function"!=typeof re.keys||"function"!=typeof re.get)throw Error("Unknown input type for opt_headers: "+String(re));for(const ee of re.keys())ne.set(ee,re.get(ee))}re=Array.from(ne.keys()).find((ee=>"content-type"==ee.toLowerCase())),ae=se.FormData&&ee instanceof se.FormData,!(Array.prototype.indexOf.call(je,te,void 0)>=0)||re||ae||ne.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[ee,te]of ne)this.g.setRequestHeader(ee,te);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(ee),this.v=!1}catch(ee){Nc(this,ee)}},ee.abort=function(ee){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=ee||7,D(this,"complete"),D(this,"abort"),Pc(this))},ee.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Pc(this,!0)),X.Z.N.call(this)},ee.Ca=function(){this.u||(this.B||this.v||this.j?Qc(this):this.Xa())},ee.Xa=function(){Qc(this)},ee.isActive=function(){return!!this.g},ee.ca=function(){try{return P(this)>2?this.g.status:-1}catch(ee){return-1}},ee.la=function(){try{return this.g?this.g.responseText:""}catch(ee){return""}},ee.La=function(ee){if(this.g){var te=this.g.responseText;return ee&&0==te.indexOf(ee)&&(te=te.substring(ee.length)),De(te)}},ee.ya=function(){return this.o},ee.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(ee=Sc.prototype).ka=8,ee.I=1,ee.connect=function(ee,te,ne,re){J(0),this.W=ee,this.H=te||{},ne&&void 0!==re&&(this.H.OSID=ne,this.H.OAID=re),this.F=this.X,this.J=Zb(this,null,this.W),bc(this)},ee.Ea=function(ee){if(this.m)if(this.m=null,1==this.I){if(!ee){this.V=Math.floor(1e5*Math.random()),ee=this.V++;const se=new N(this,this.j,ee);let ie=this.o;if(this.U&&(ie?(ie=Ba(ie),Da(ie,this.U)):ie=this.U),null!==this.u||this.R||(se.J=ie,ie=null),this.S)e:{for(var te=0,ne=0;ne<this.i.length;ne++){var re=this.i[ne];if(void 0===(re="__data__"in re.map&&"string"==typeof(re=re.map.__data__)?re.length:void 0))break;if((te+=re)>4096){te=ne;break e}if(4096===te||ne===this.i.length-1){te=ne+1;break e}}te=1e3}else te=1e3;te=Yc(this,se,te),S(ne=O(this.J),"RID",ee),S(ne,"CVER",22),this.G&&S(ne,"X-HTTP-Session-Id",this.G),Uc(this,ne),ie&&(this.R?te="headers="+L(Jc(ie))+"&"+te:this.u&&Kc(ne,this.u,ie)),Yb(this.h,se),this.Ra&&S(ne,"TYPE","init"),this.S?(S(ne,"$req",te),S(ne,"SID","null"),se.U=!0,Cb(se,ne,null)):Cb(se,ne,te),this.I=2}}else 3==this.I&&(ee?Zc(this,ee):0==this.i.length||fc(this.h)||Zc(this))},ee.Da=function(){if(this.v=null,$c(this),this.aa&&!(this.P||null==this.g||this.T<=0)){var ee=4*this.T;this.j.info("BP detection timer enabled: "+ee),this.B=ob(p(this.Wa,this),ee)}},ee.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,J(10),Vb(this),$c(this))},ee.Va=function(){null!=this.C&&(this.C=null,Vb(this),Wb(this),J(19))},ee.bb=function(ee){ee?(this.j.info("Successfully pinged google.com"),J(2)):(this.j.info("Failed to ping google.com"),J(1))},ee.isActive=function(){return!!this.l&&this.l.isActive(this)},(ee=ad.prototype).ra=function(){},ee.qa=function(){},ee.pa=function(){},ee.oa=function(){},ee.isActive=function(){return!0},ee.Ka=function(){},bd.prototype.g=function(ee,te){return new Y(ee,te)},t(Y,C),Y.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},Y.prototype.close=function(){cc(this.g)},Y.prototype.o=function(ee){var te=this.g;if("string"==typeof ee){var ne={};ne.__data__=ee,ee=ne}else this.v&&((ne={}).__data__=Ve(ee),ee=ne);te.i.push(new Me(te.Ya++,ee)),3==te.I&&bc(te)},Y.prototype.N=function(){this.g.l=null,delete this.j,cc(this.g),delete this.g,Y.Z.N.call(this)},t(cd,gb),t(dd,hb),t(Z,ad),Z.prototype.ra=function(){D(this.g,"a")},Z.prototype.qa=function(ee){D(this.g,new cd(ee))},Z.prototype.pa=function(ee){D(this.g,new dd)},Z.prototype.oa=function(){D(this.g,"b")},bd.prototype.createWebChannel=bd.prototype.g,Y.prototype.send=Y.prototype.o,Y.prototype.open=Y.prototype.m,Y.prototype.close=Y.prototype.close,Te=function(){return new bd},ge=function(){return jb()},fe=be,me={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},xe.NO_ERROR=0,xe.TIMEOUT=8,xe.HTTP_ERROR=6,pe=xe,Fe.COMPLETE="complete",Ce=Fe,fb.EventType=we,we.OPEN="a",we.CLOSE="b",we.ERROR="c",we.MESSAGE="d",C.prototype.listen=C.prototype.J,Ee=fb,X.prototype.listenOnce=X.prototype.K,X.prototype.getLastError=X.prototype.Ha,X.prototype.getLastErrorCode=X.prototype.ya,X.prototype.getStatus=X.prototype.ca,X.prototype.getResponseJson=X.prototype.La,X.prototype.getResponseText=X.prototype.la,X.prototype.send=X.prototype.ea,X.prototype.setWithCredentials=X.prototype.Fa,de=X}).apply(void 0!==Le?Le:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"function"==typeof SuppressedError&&SuppressedError;var Me=((Ie=class RE2Flags{}).FOLD_CASE=1,Ie.LITERAL=2,Ie.CLASS_NL=4,Ie.DOT_NL=8,Ie.ONE_LINE=16,Ie.NON_GREEDY=32,Ie.PERL_X=64,Ie.UNICODE_GROUPS=128,Ie.WAS_DOLLAR=256,Ie.LOOKBEHIND=512,Ie.MATCH_NL=Ie.CLASS_NL|Ie.DOT_NL,Ie.PERL=Ie.CLASS_NL|Ie.ONE_LINE|Ie.PERL_X|Ie.UNICODE_GROUPS,Ie.POSIX=0,Ie.UNANCHORED=0,Ie.ANCHOR_START=1,Ie.ANCHOR_BOTH=2,Ie);const ke=1,Ge=2,Ue=4,He=8,qe=16,Ke=512,Qe=128,je=new Int32Array(Qe),Je=new Int32Array(Qe),ze=65535;for(let ee=0;ee<Qe;ee++)je[ee]=ee>=97&&ee<=122?ee-32:ee,Je[ee]=ee>=65&&ee<=90?ee+32:ee;var We=(Ae=class{static toUpperCase(ee){if(ee<Qe)return je[ee];const te=String.fromCodePoint(ee).toUpperCase(),ne=te.codePointAt(0)>ze?2:1;if(te.length>ne)return ee;const re=String.fromCodePoint(te.codePointAt(0)).toLowerCase(),se=re.codePointAt(0)>ze?2:1;return re.length>se||re.codePointAt(0)!==ee?ee:te.codePointAt(0)}static toLowerCase(ee){if(ee<Qe)return Je[ee];const te=String.fromCodePoint(ee).toLowerCase(),ne=te.codePointAt(0)>ze?2:1;if(te.length>ne)return ee;const re=String.fromCodePoint(te.codePointAt(0)).toUpperCase(),se=re.codePointAt(0)>ze?2:1;return re.length>se||re.codePointAt(0)!==ee?ee:te.codePointAt(0)}},__setFunctionName(Ae,"Codepoint"),Ae.CODES=new Map([["",7],["\b",8],["\t",9],["\n",10],["\v",11],["\f",12],["\r",13],[" ",32],['"',34],["$",36],["&",38],["'",39],["(",40],[")",41],["*",42],["+",43],["-",45],[".",46],["0",48],["1",49],["2",50],["3",51],["4",52],["5",53],["6",54],["7",55],["8",56],["9",57],[":",58],["<",60],[">",62],["?",63],["A",65],["B",66],["C",67],["F",70],["P",80],["Q",81],["U",85],["Z",90],["[",91],["\\",92],["]",93],["^",94],["_",95],["`",96],["a",97],["b",98],["f",102],["i",105],["m",109],["n",110],["r",114],["s",115],["t",116],["v",118],["x",120],["z",122],["{",123],["|",124],["}",125]]),Ae),$e=class{constructor(ee,te=!1){this.data=ee,this.isStride1=te,this.SIZE=te?2:3}getLo(ee){return this.data[ee*this.SIZE]}getHi(ee){return this.data[ee*this.SIZE+1]}getStride(ee){return this.isStride1?1:this.data[ee*this.SIZE+2]}get length(){return this.data.length/this.SIZE}};const Ye=new Uint8Array(256);for(let ee=0,te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-";ee<64;ee++)Ye[te.charCodeAt(ee)]=ee;const decodeVLQ=ee=>{const te=[];let ne=0,re=0;for(let se=0;se<ee.length;se++){let ie=Ye[ee.charCodeAt(se)];ne|=(31&ie)<<re,32&ie?re+=5:(te.push(ne),ne=0,re=0)}return te},decodeRanges=(ee,te)=>{const ne=decodeVLQ(ee),re=te?ne.length/2:ne.length/3,se=new Uint32Array(3*re);let ie=0,ae=0;for(let ee=0;ee<re;ee++)ie+=ne[ae++],se[3*ee]=ie,ie+=ne[ae++],se[3*ee+1]=ie,se[3*ee+2]=te?1:ne[ae++];return se};var Xe=class{constructor(ee){this.initializer=ee,this.cache=new Map}has(ee){return ee in this.initializer}get(ee){if(this.cache.has(ee))return this.cache.get(ee);const te=this.initializer[ee],ne=te?te():null;return this.cache.set(ee,ne),ne}},Ze=(Pe=class{static get CASE_ORBIT(){return this._CASE_ORBIT||(this._CASE_ORBIT=(ee=>{const te=decodeVLQ(ee),ne=new Map;let re=0;for(let ee=0;ee<te.length;ee+=2){re+=te[ee];const se=te[ee+1],ie=se>>>1^-(1&se);ne.set(re,re+ie)}return ne})("rCgCIgCY+rQI4QiCuuBLgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCCgCBgCBgCBgCBgCBgCBgCB+7OB-BB-BB-BB-BB-BBskQB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BC-BB-BB-BB-BB-BB-BB-BByHBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBDCBBBCBBBCBBCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBxHBCBBBCBBBCBBB3SBmMBkNBCBBBCBBB8MBCBBB6MB6MBCBBC+EB0MB2MBCBBB6MB+MBiGBmNBiNBCBBBmKBikzCBmNBqNBkIBsNBCBBBCBBBCBBB0NBCBBB0NDCBBB0NBCBBByNByNBCBBBCBBB2NBCBBDCBBCwDFCBCBDBCBCBDBCBCBDBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBB9EBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCCBCBDBCBBBhGBvDBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBjICCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBH2iVBCBBBlKBwiVB+jVB+jVBCBBBlMBqEBuEBCBBBCBBBCBBBCBBBCBBB+hVB4hVB8hVBjNB7MC5MB5MCzMC1MB+0yCE5MB20yCC9MBu2yCBwyyCBo0yCChNBlNBo0yCBu-UBi0yCDlNC6-UBpNDrNIu+UDzNCm0yCBzNE0yyCBzNBpEBxNBxNBtEG1NLqxyCBkxyCnFoFrBCBBBCBBDCBBEkIBkIBkICoHHsCCqCBqCBqCCgEC+DB+DBmkOBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCC+BBgCBgCBgCBgCBgCBgCBgCBgCBrCBpCBpCBpCBmjOB-BB8BB-BB-BBgEB-BB-BByBBqgOBsDB-BBtwBB-BB-BB-BBsBBgDBCB-BB-BB-BBeB-BB-BB61OB-BB-BB-DB9DB9DBQB7DBmCE9CBrDBPBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBrFB-EBOBnHB3FB-FCCBBBNBCBBCjIBjIBjIBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB8kMB-BB6kMB-BB-BB-BB-BB-BB-BB-BB-BB-BBokMB-BB-BBkkMBkkMB-BB-BB-BB-BB-BB-BB-BB4jMB-BB-BB-BB-BB-BB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EBCBBBCBoiMBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBJCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBeBCBBBCBBBCBBBCBBBCBBBCBBBCBBBdBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDL-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-C64CgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOCgmOGgmODg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FDg8FBg8FBg8FhVg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBQBQBQBQBQBQDPBPBPBPBPBPjkC7mMB5mMBnmMBjmMBCBlmMB3lMBpiMBk8kCBCBBG-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FD-7FB-7FB-7F6FoglCEsuHRwjlCyDCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCB0DBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBG1DD97OCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQDPBPBPBPBPBPDQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQDPBPBPBPBPBPEQCQCQCQCPCPCPCPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPB0EB0EBsFBsFBsFBsFBoGBoGBgIBgIBgHBgHB8HB8HDQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQCSFPBPBzEBzEBRCxnOFSFrFBrFBrFBrFBREQBQClkOFPBPBnGBnGFQBQCljOCODPBPB-GB-GBNHSF-HB-HB7HB7HBRqJ53OE9tQBrmQH4Bc3BSgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfECBByZ0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzB34BgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CBCBBBt-UBruHBt+UB1iVBviVBCBBBCBBBCBBB3hVB5-UB9hVB7hVCCBBCCBBI9jVB9jVBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBICBBBCBBECBBN-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOC-lOG-lOzoeCBBBCBBBCBBBCBBBCBBBCBl8kCBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBTCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBnECBBBCBBBCBBBCBBBCBBBCBBBCBBDCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBKCBBBCBBBnglCBCBBBCBBBCBBBCBBBCBBECBBBvyyCDCBBBCBBBgDCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBn0yCB90yCB10yCBh0yCBn0yCCjxyCBzyyCBpxyCBg6BBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBB-CBl0yCBvjlCBCBBBCBBBt2yCBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBhkzCZCBB9a-5Bd-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCm6TCBB7gBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCH-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BmlBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvChDwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCFvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvC1DuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCCuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCCuCBuCBuCBuCBuCBuCBuCCuCBuCCtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCCtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCCtCBtCBtCBtCBtCBtCBtCCtCBtCk2BgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEO-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-D+CgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCL-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-B74CgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BhrVgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BhB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BD1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BtxekCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjC")),this._CASE_ORBIT}static get Print(){return this._Print||(this._Print=new $e(decodeRanges("hB9CBjBLBCpWBDFBFGBCCCBSBCsMBClBBDxBBDCBC2BBJaBFFBSVBC-FBCvBBD6BBDkDBP6BBDwBBDOBCbBDCCBJBGfBIqCBCgFBCHBDBBDVBCGBCEEBCBDIBDBBDDBJFFBCCBDBDYBDCBCFBFBBDVBCGBCBBCBBCBBDCCBDBFBBDCBEIIBCBCIIBPBLCBCIBCCBCVBCGBCBBCEBDJBCCBCCBDQQBCBDLBIGBCCBCHBDBBDVBCGBCBBCEBDIBDBBDCBICBFBBCEBDRBLBBCFBECBCDBEBBCCCBEEBEEBBBELBFEBECBCDBDHHPUBGMBCCBCWBCPBDIBCCBCDBIBBCCBCBBDDBDJBIVBCCBCWBCJBCEBDIBCCBCDBIBBGCBCDBDJBCCBNMBCCBCyBBCCBCFBFPBDZBCCBCRBEXBCIBCDDBFBEFFBEBCCCBGBHJBDCBN5BBFcBmBBBCCCBDBCXBCCCBVBDEBCCCBFBCJBDDBhBnCBCjBBFmBBCjBBCOBCMBmBlGBCGGD4LBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBDfBEZBH1CBDFBD-TBCbBE4CBIVBKXBKTBNMBCCBCBBN9CBDJBHJBHNBCKBH4CBIqBBGlCBLeBCLBFLBFEEBoBBDEBMrBBFZBHKBE9BBDgCBCcBDKBHJBHNBDtBBDLBVsCBClFBJ7BBEOBE9BBGqBBDKBJqBBG1QBDFBDlBBDFBDHBCGCBdBD0BBCOBCNBDFBCSBDCBCIBSXBJuBBSBBDaBCMBEhBBPgBBQrEBF5UBXKBWz4BBD9LBGsBBCGGD3BBIBBPXBKGBCGBCGBCGBCGBCGBCGBCGBC9DBjBZBC4CBN1GBbPBC+BBC1CBDmDBGqBBC9CBC1CBKvBBCszcBE2BBK7KBV3FBJ8GBV7BBEJBH3BBJlCBJLBHzDBMdBEtCBCKBFgBBC2BBKNBDJBDmDBZbBLFBDFBDFBKGBCGBC7BBF9DBDJBHj9KBNWBFwBBloItLBDpDBnBGBNEBGZBCEBCCCBCCBCCBoUBhBpBBHyBBCSBCDBFEBCmEBF9FBEFBDFBDFBDCBEGBCGBOBBDLBCZBCSBCBBCOBDNBjB6DBGCBFsBBE3CBCMBEwBwBBsBBjEcBEwBBQbBFjBBKdBGqBBGdBCkBBFNBrB9EBDJBHjBBFjBBFnBBJzBBMLBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBCnCBJIBxBSBCBBGgBBEaBGaBnB3BBFTBDxBBCBBGHBCCBCcBDCBFJBIIBI-BBhBmBBFLBK1BBEcBDaBGZBIDBNGBxCoCB4ByBBOyBBItBBJJBHlBBEcBJBBxGeBCpBBCCBDBBRFBJIBiBtBBJpBBXZBnBbBVWBKtCBFjBBK9BBCEBOYBIJBH0BBCRBJmBBK-CBCTBMRBCuBB-BGBCCCBCBCOBCKBH6BBGJBHDBCHBDBBDVBCGBCBBCEBCJBDBBDCBDHHGGBDGBEEBMJBCDDClBBCJBCDDCDBCJBCBBJBBe7CBCEBfnCBJJBnF1BBDlBBjBkCBMJBHMBU5BBHJBHTBdaBDOBFWB6F7BBlDyCBNHBDDDBGBCBBCdBCBBDLBKJBnCHBDtBBDKBcnCBJyCBOoCBIJB3CHB5ChBBPJBHIBCsBBCNBLcBEfBDVBCNBqCGBCBBCrBBECCBCCBHBJJBHFBCBBCkBBCBBCFBIJBHrBBFJB3HYBIQBCoBBEcB2CQQBwBBO6cBnDuDBCEBMjGBtyCiDBOvhBBRVBL68DBGmSB61G5BBn2B4RBIeBCJBFwCBCJBHdBDFBLlCBLJBCGBCUBGSBxN5BBnG6CBGYBDYBtBqCBF4BBIQBhCEBMGBK1mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBDDBh7D8HBEzNBHWBQQBQtBBDWBKzDB9B1HBLmBBDpCBJvDBWlCB7DTBNTBN2CBKYBoE0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBD9VBQEBCOBxiBeBHFB2GGBCQBDGBCBBCEBG9BBiBxDxDBrBBENBDJBFBBhKeBS5BBGxOxOBoBB3GqBBFhGhGBdBCVBJBBhHGBCDBCBBCOBCkGBDPBqBrCBFJBFBByYjCBtC8BBjGDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBBvIrBBFjDBNOBDOBCOBCkBBLtFB5BcBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBCmDBmgB-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIBnkzVvHB",!1))),this._Print}static get Upper(){return this.CATEGORIES.get("Lu")}},__setFunctionName(Pe,"UnicodeTables"),Pe._CASE_ORBIT=null,Pe._Print=null,Pe.CATEGORIES=new Xe({C:()=>new $e(decodeRanges("AfBgDgBBOrWrWBHHBCBICCVuMuMnBBBzBBBE4B4BBGBcDBHQBXhGhGxBBB8BBBmDNB8BBByBBBQddBCCMEBhBGBsCiFiFJBBDBBXIICCBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBPMMBEB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKMMBDBbEByBPBDBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBjoIBvLBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCB-FCBHBBHBBHBBECBIIIBLBDBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIB-BGGBLBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMBxhBPBXJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBF-6DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBrCHBxDUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIlkzVBxHvw-FB",!1)),Cc:()=>new $e(decodeRanges("AfgDgB",!0)),Cf:()=>new $e(decodeRanges("tFzqBzqBBEBXhGhGyBhMhMBxCxCs5D9-B9-BBDBbEByBEBCJBw03B6H6HBBBimEQQj7IPBhjiBDBwmFHBn0rYffB+CB",!1)),Cn:()=>new $e(decodeRanges("4bBBHDBICCVuMuMnBBBzBBBE4B4BBGBcDBHKBvI9B9BBmDmDBMB8BBByBBBQddBCCMEBjBEBuHJJBDDBXXICCBBBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBbFB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKmDmDNBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBDBvzIBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCC-FCBHBBHBBHBBECBIIIBIBGBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIBlCJBCBBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMB3iBJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBJ76DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBjGUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIm8yVBCdBhD-DBxHvw-BB---BBB---BBB",!1)),Co:()=>new $e(decodeRanges("gg4B-nGh4hc9--BD9--B",!0)),Cs:()=>new $e(decodeRanges("gg2B--B",!0)),L:()=>new $e(decodeRanges("hCZBHZBwBLLFGGBVBCeBCpOBFLBPEBICCiEEBCBBDDBCHHCCBCCCBSBCyCBCqEBJlFBClBBDHHBnBBoCaBFDBuBqBBkBBBCiDBCQQBIIBLLBBBDRRCdBe4CBMZZBfBKBBFGGBUBFKKEYYBXBIKBGXBCGBRpBB7B1BBETTIJBQPBFHBDBBDVBCGBCEEBCBERROBBCCBPBBLJJBEBFBBDVBCGBCBBCBBCBBgBDBCUUBBBRIBCCBCVBCGBCBBCEBETTQBBYMMBGBDBBDVBCGBCBBCEBEffBCCBBBQSSCFBECBCDBEBBCCCBEEBEEBBBELBX1B1BBGBCCBCWBCPBEbbBBBCBBDBBfFFBGBCCBCWBCJBCEBEffBBBCBBQBBSIBCCBCoBBDRRGCBJCBZFBGRBEXBCIBCDDBFB7BvBBCBBNGB7BBBCCCBDBCXBCCCBIBCBBKDDBDBCWWBCBhBgCgCBGBCjBBcEB0DqBBVRRBEBFDBEEEBIIBBBFMBNSSBkBBCGGDqBBCsKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPBR1CBDFBErTBDQBCZBGqCBHHBIRBOSBPRBPMBCCBQzBBkBFFkC4CBIEBDhBBCGGBkCBLeByBdBDEBMrBBFZB3BWBK0BBzC+C+CBtBBSHB3BdBOBBLrBBbjBBqBCBLjBBDKBGqBBDCBqBDBCFBCBBEGGB+FBhC1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGB1DOORMBmDFFDJBCEEBDBHGCBCBCKBDDBGEBF1B1BB8zC8zCBjHBHDBEBBNlBBCGGD3BBIRRBVBKGBCGBCGBCGBCGBCGBCGBCGBxC2O2OBrBrBBDBGBBF1CBHCBC5CBCDBGqBBC9CBSfBxBPBhQ-tGBhCs0VBkCtBBDsIBEPBLBBVuBBReBDlCByBIBDmDBDxCBVQBCCBCDBCWBezBBPxBB-BFBECCBMMBaBLWBacBIuBBdRRBDBCJBLEBCoBBYCBCHBVWBEEEBwBBCEEBDDBDBDCCZCBDKBICBNFBDFBDFBKGBCGBCqBBCNBHyDBej9KBNWBFwBBloItLBDpDBnBGBNEBGCCBIBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBlBZBHZBM4CBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmMcBEwBBwBfBOTBCHBHlBBLdBDjBBFHBxB9EBTjBBFjBBFnBBJzBBNKBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCQQBCBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4ByBBOyBBOjBBnBbBKWB7HpBBHBBRFB5BcBLJJBUBrBRBvBUBcWBN0BB6BBBDOOBrBBhBYBbjBBeDDJiBBENNBuBBPDBWCCkBRBCYBUBBgCGBCCCBCBCOBCJBIuBBnBHBDBBDVBCGBCBBCEBETTNEBfJBCDDClBBCaaCtBtBBzBBTDBVCBfvBBVBBC5F5FBtBBqBDBlBvBBV8B8BBpBBOoCoCBZBmBGB6FrBB1D-BBgBHBDDDBGBCBBCXBQCC-CHBDmBBRCCdLLBmBBIWWMtBBUTTBnCBoGgBBgBIBCkBBSyByBBcBxDGBCBBClBBWaaBEBCBBCfBPYYBqBBlISBQCCBLBChBB9DwCwCB4cBnHjGBtyCgDBQvhBBSFBa68DBGmSB61GdBj3B4RBIeBSuCBSdBTvBBRDBgBUBGSBxNsBB0G-BBhBYBDYBtBqCBGjCjCBLBhCBBCPPBNNB0mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBn7F0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BeBHFBmI9BBzEsBBLGBRiKiKBcBTrBBlPbBlHdBDwGwGBdBCCBCBBCGBDEBKBBhHGBCDBCBBCOBCkGB8BjCBI1lB1lBBCBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQBlqE-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),LC:()=>new $e(decodeRanges("hCZBHZB7BLLBVBCeBCiGBCDBFvGBDZBhGDBDBBECBCHHCCBCCCBSBCyCBCqEBJlFBClBBKoBB44ClBBCGGDqBBDCBhV1CBDFBjkCKBGqBBDCBhCrBBgCMBChBBmD1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGBmIFFDJBCEEBDBHGCBCBCFBFDDBCBGEBF1B1BB8zC8zCB6DBDmDBHDBEBBNlBBCGGzoetBBTbBnEtCBCWBEDBCsCBZBBE2Z2ZBpBBGIBIvCBh6TGBNEBqgBZBHZBmlBvCBhDjBBFjBB1DKBCOBCGBCBBCKBCOBCGBCBBk2ByBBOyBB+CVBLVB74C-BBhrV-BBhBYBDYBtpZ0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BJBCTBHFB2uCjCB",!1)),Ll:()=>new $e(decodeRanges("hDZB7BqBqBBWBCHBC2BCBQCBuBCDECBBBDCCDEEBFFDEEBBBDDDCCCDCCBCCDEECDDBDDBBBHGDCOCBSCBDDCEEC4BCBFBDDDBCCFICBjCBDZBiGCCEEEBBBTccBhBBCBBECBCWCBDBCGDB0B0BBuBBCgBCK0BCDMCBgDCxBoBBo6CqBBDCB5XFBjkCIBC2D2DBqBBgCMBChBBnD0ECBHBCgDCBHBJFBLHBJHBJFBLHBJHBJNBDHBJHBJHBJEBCBBHEEBBBCBBJDBDBBJHBLCBCBBzIEEBEEcKFDBBJDBF2B2Bs1CvBBCEEBGCFCCBCCBEBGiDCBIICFFNlBBCGG0oesBCUaCoEMCBBBC+BCBGBCCCDICFCCDCCBBBCSCGGGCMCFCCDOCbEE2ZqBBGIBIvCBh6TGBNEBqhBZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBnqZZBbGBCRBbZBbDBCCCBFBCKBbZBbZBbZBbZBbZBbZBbZBbZBbbBdYBCFBbYBCFBbYBCFBbYBCFBbYBCFBC15B15BBIBCTBHFB4vChBB",!1)),Lm:()=>new $e(decodeRanges("wVRBFLBPEBICCmEGG-OnHnHlFBBuIBBFgBgBKEEhFoFoF1mBgEgE2R72B72BsDkTkTxOFBvF+BBOjBjBBjBByVOORMBg-CBByHgGgG2OsBsBBDBGiDiDB+C+CBBB34bjnBjnBBEBvIzDzDdBB6DIBxCYYpDDBEBB2OXXqEtDtDWBBoDDBKngVngVuBBBh-BFBCpBBCIB0sBhBhB2K04D04DnrTDB9PCBpBBBnRMBhCBBCPPB9-P9-PBCBCGBCBByhM9BBqGGBud0Q0QsSAB",!1)),Lo:()=>new $e(decodeRanges("qFQQhIFFBCBxGBB7ZaBFDBuBfBCJBkBBBCiDBCZZBLLBBBDRRCdBe4CBMZZBfBWVBrBYBIKBGXBCGBRoBB8B1BBETTIJBROBFHBDBBDVBCGBCEEBCBERROBBCCBPBBLJJBEBFBBDVBCGBCBBCBBCBBgBDBCUUBBBRIBCCBCVBCGBCBBCEBETTQBBYMMBGBDBBDVBCGBCBBCEBEffBCCBBBQSSCFBECBCDBEBBCCCBEEBEEBBBELBX1B1BBGBCCBCWBCPBEbbBBBCBBDBBfFFBGBCCBCWBCJBCEBEffBBBCBBQBBSIBCCBCoBBDRRGCBJCBZFBGRBEXBCIBCDDBFB7BvBBCBBNFB8BBBCCCBDBCXBCCCBIBCBBKDDBDBYDBhBgCgCBGBCjBBcEB0DqBBVRRBEBFDBEEEBIIBBBFMBNyDyDBnKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPByDrTBDQBCZBGqCBHHBIRBOSBPRBPMBCCBQzBBpBkCkCBhBBC0BBIEBDhBBCGGBkCBLeByBdBDEBMrBBFZB3BWBK0BBxFuBBSHB3BdBOBBLrBBbjBBqBCBLdByDDBCFBCBBE7hB7hBBCB4-C3BBZWBKGBCGBCGBCGBCGBCGBCGBCGBoR2B2BF1CBJCCB4CBFGGBpBBC9CBSfBxBPBhQ-tGBhC0wUBC2jBBkCnBBJrIBFPBLBBjCyByBBkCBqFoDoDEGBCCBCDBCWBezBBPxBB-BFBECCBMMBaBLWBacBIuBBuBEBDIBLEBCoBBYCBCHBVPBCFBEEEBwBBCEEBDDBDBDCCZBBEKBIPPBEBDFBDFBKGBCGByEiBBej9KBNWBFwBBloItLBDpDBkCCCBIBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBqDJBCsBBDeBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmMcBEwBBwBfBOTBCHBHlBBLdBDjBBFHBhEtCBjDnBBJzBB9CzBBN2JBKVBLHB5EFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCQQBCBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4FjBBnBDBCxJxJBoBBHBBRCBCBB5BcBLJJBUBrBRBvBUBcWBN0BB6BBBDOOBrBBhBYBbjBBeDDJiBBENNBuBBPDBWCCkBRBCYBUBBgCGBCCCBCBCOBCJBIuBBnBHBDBBDVBCGBCBBCEBETTNEBfJBCDDClBBCaaCtBtBBzBBTDBVCBfvBBVBBC5F5FBtBBqBDBlBvBBV8B8BBpBBOoCoCBZBmBGB6FrBB0GHBDDDBGBCBBCXBQCC-CHBDmBBRCCdLLBmBBIWWMtBBUTTBnCBoGgBBgBIBCkBBSyByBBcBxDGBCBBClBBWaaBEBCBBCfBPYYBnBBCBBlISBQCCBLBChBB9DwCwCB4cBnHjGBtyCgDBQvhBBSFBa68DBGmSB61GdBj3B4RBIeBSuCBSdBTvBB0BUBGSB0NnBB2MqCBGwFwFB0mHBqBfBiDyDBuwIiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBxzI2P2PBrBBiBiKiKBcBTrBBlPaBmHdBDwGwGBdBCCBCBBCGBDEBKiHiHBFBCDBCBBCOBCkGB8pBDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQBlqE-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Lt:()=>new $e(decodeRanges("lOGDnB2sH2sHBGBJHBJHBNQQwBAB",!1)),Lu:()=>new $e(decodeRanges("hCZBmDWBCGBiB2BCDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIJDCMCDQCDDDCCBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBDDBBBEWCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBpCDBNDBNDBNEBMDBnIFFECBDCBDEEBDBHGCBCBDDBLBBG+B+B9zCvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoqZZBbZBbZBbCCBGDBDDBCBCHBbZBbBBCDBDHBCGBcBBCDBCEBCEEBFBcZBbZBbZBbZBbZBbZBfYBiBYBiBYBiBYBiBYBiB2pE2pEBgBB",!1)),M:()=>new $e(decodeRanges("gYvDB0IGBoIsBBCCCBCCBCCpCKBxBUBRmDmDBFBDFBDBBCDBkBffBZB8CKB7BIBKZZBCBCIBCCBCEBsBCB8BIBrBXBCgBB3BCBCRBCGBLBBeCB5BCCBFBDBBDCBKLLBbbDCB5BCCBDBFBBDCBEffBEEMCB5BCCBGBCCBCCBVBBXFBCCB5BCCBFBDBBDCBICBLBBf8B8BBDBECBCDBKpBpBBDB4BCCBFBCCBCDBIBBMBBeCB5BCCBFBCCBCDBIBBMBBQNNBCB4BBBCGBCCBCDBKLLBeeBBBnCFFBEBCCCBGBTBB+BDDBFBNHBjDDDBHBMGBqCBBcECFBByBTBCBBGKBCjBBKlDlDBSBYDBFCBCCBDGBEDBOLBCLLBCBgWCBzdDBdCBeBBfBBhCfBKuBuBBBBC2D2DBjBjB3DLBFLB8GEB6BJBCcBDxBxBBsBBDLBVEBwBQBnBIBNCBfMB5BNBxBTB5ECBCUBFHHDCBnG-BBxWgBB--CCBuEhDhDBeBrRFBqDBB1udDBCJBhBBBxCBBxIEEFYYBDBF0C0CBzBzBBQBbRBOnBnBBGBaMBtBDBwBNBlBkCkCBMBNJJBuBuBBBBzBCCBBBDBBGBBCqBqBBDBGBBtHHBCBBx5TiXiXBOBRPBuejHjH2EEBn0BCBCBBGDBpBCBFmFmFB+R+RBCBiCEB+JBBuCFBnCKByBDB7DCB2BOBqBDDBLLBCBuBKBI+B+BBBBlBNBRBBtBNNBBBxBNBJDBCBB9CLBHDD+ELBWDB4BBBCGBDBBDCBKLLBDDBFBEEBkCIBCDDCDBCEBCPPBzCzCBQBYyCyCBSBsHGBDIBcBBzCQBrDMBmDOBhIOB2HFBCBBDDBCCCBuEuEBFBDGBEddBIBpBGBCDBJKKBJBvBPBnGHBoGHBCHBzCVBCNB7DFBECCBCCBFBCjCjCBDBCBBCEB8KDBKBBCxBxBBFBEEBYmnFmnFHOBpmLRBhuCEB8BGB5gBCCB1BBIDByCMMBslTslTBizEizEBsBBDWB-QEBEFBJHBDGBfDB1ECB89B2BBFxBBJPPXEBCOBxqBGBCQBDGBCBBCEBlDhFhFBFB4L+B+BBCB9PDB-HBB0HDDIBBG7O7OBFBuDGB29lYvHB",!1)),Mc:()=>new $e(decodeRanges("joC4B4BDCBJDBCBBzBBB7BCBHBBDBBLsBsB7BCBjC7B7BBBBJCCB2B2BB7B7BCHHBDDBLLnDBBCBBECBCCBLqBqBBBB+BDB+BBB7BCCBDBDBBCBBKBBdPPB7B7BBBBGCBCCBLrBrBBsCsCBBBHHBTBBrKBBgCsFsFBFFHDDBaaBLLBBBDGBWBBDFBDLLBBB5zBffiEIIBGBCBB7KDBDCBFBBCFBhHBB7BCCKCCBJJBEByExBxBGCCBDBCBB+BffFBBD9B9BDCBCEEBxBxBBGBJBBsFWW35EBB0-dBBD5C5CBzBzBBOBvEBBwBxBxBBFFBDDBBBvDBBDBBZuBuBCuDuDDBBGuHuHBCCBCCBCC0gZCCgEuBuBBBBFBB0DZZB8B8BxBCBKBBO+C+CBBBEBBCrFrFBBBgBBB7BBBCDBDBBDCBKLLB1C1CBBBIDDCDBCBBCmDmDBBBJBBErDrDBBBHCCBCBDuHuHBBBHDBDyDyDBBBJBBCuDuDCBBHoDoDCBBFmImIBBBK4H4HBEBCBBFDDCvEvEBBBJDBF1C1CeBB-BqGqGECCoGPPrDIID2G2GBDBFBBC-K-KBNNxBBBJBBCpvQpvQBBBlxD2BBpDBB0rYBBHFB",!1)),Me:()=>new $e(decodeRanges("okBBB1xF-wB-wBBCBCCBsshBCB",!1)),Mn:()=>new $e(decodeRanges("gYvDB0IEBqIsBBCCCBCCBCCpCKBxBUBRmDmDBFBDFBDBBCDBkBffBZB8CKB7BIBKZZBCBCIBCCBCEBsBCB8BIBrBXBCfB4BCCFHBFEEBFBLBBe7B7BFDBJVVBbbDBB6BFFBFFBDDBBBEffBEEMBB6BFFBDBCBBFVVBXXBEBC7B7BDCCBCBJIIBMMBff+BNNzBEE4BCCBBBGCBCDBIBBMBBe7B7BDHHGBBVBBdBB6BBBFDBJVVBeepCIIBBBC7C7CDGBNHBjDDDBHBMGBqCBBcEC4BNBCEBCBBGKBCjBBKnDnDBCBCFBCBBDBBaBBFCBRDBODDBHHQgWgWBBBzdCBeBBfBBfBBhCBBCGBJDDBJBKuBuBBBBC2D2DBjBjB3DCBFBBKHHBBB8GBBD7B7BCGBCCCDHBHJBDxBxBBMBCeBDLBVDBxBCCBDBCGGpBIBNBBhBDBDBBCCB5BCCBEECCB7BHBDBB5ECBCMBCGBFHHEBBnG-BBxWMBFEEBKB--CCBuEhDhDBeBrRDBsDBB1udFFBIBhBBBxCBBxIEEFaaBGG4EBBbRBOnBnBBGBaKBvBCBxBDDBCBDBBoBkCkCBEBDBBDBBNJJwB0B0BCCBDBBGBBCrBrBBJJvHDDFx5Tx5TiXPBRPBuejHjH2EEBn0BCBCBBGDBpBCBFmFmFB+R+RBCBiCEB+JBBuCFBnCKByBDB8D3B3BBNBqBDDBLLBBByBDBDBBI+B+BBBBlBEBCHB-BNNB1B1BBHBLDBDgDgDBBBDCCBHHD+E+EEHBWBB6BBBEmBmBBFBEEBnCFBOECPBB2CHBDCBCYY1CFBCFFBCCBvHvHBCBHBBCBBcBB2CHBDCCBrDrDCDDBEBCmDmDCDDBCBCEBkIIBCBBhIBBCFFxEDBDBBFhBhBBIBpBFBDDBJKKBEBDCBvBMBCBBnGCCBBBCqGqGBFBCFBCzCzCBUBDGBCBBCBB7DFBECCBCCBFBCpCpCBEEC8K8KBMMB1B1BBDBGCCYmnFmnFHOBpmLLBECBhuCEB8BGB5gBgCgCBCByC5lT5lTBizEizEBsBBDWBhRCBSHBDGBfDB1ECB89B2BBFxBBJPPXEBCOBxqBGBCQBDGBCBBCEBlDhFhFBFB4L+B+BBCB9PDB-HBB0HDDIBBG7O7OBFBuDGB29lYvHB",!1)),N:()=>new $e(decodeRanges("wBJB5DBBGDDBBBitBJBnEJBnGJB9MJB3DJBFFBtDJB3DJB3DJBDFBvDMB0DJBJGBoDJBpDGBISBuDJBhDJB3DJBnCTBtIJBnCJBwWTBybCBwHJBHJBXJBtJJBhEKBmFJBHJB3FJB3CJBnEJBHJB3gBEEBEBHJBnGyBBDEB3W7BBvCVB3TdBqrBqYqYaIBPCB4KDBrEJBfHBCOBhBJBoBOBh7cJB9FJBhKFB7EJBnBJBnGJBXJB3CJB3MJB34UJBuPsBBN4BBSBB2KaBlBDBeJJnEEBrGJBvdHBaGBoBIBsCEBXFBhFBBDPBDtBBhCIB1BBBfCBsCEBpDHBZHBqBGBrKFBxBJBHJB3IeB-EJBrBDBxDGBnEdBhEJB9BJBxEJBITB8HJB3KJB3DJB3LJBnDJBHTBtCLBlNSB+CJB3UJB3CcBkHJBnCJB3BJBnLJBnDUBshBuDBimPJBnpCJB3CJBnEJBCGBvQJBnIWB+KCB6nXJBnuBTBNTBtDYB2iBxBBhqCJBnNJB3PJB4HJBtWIBhEJB4Y6BBCCBCDBtCsBBCOBjeMBk3CJB",!1)),Nd:()=>new $e(decodeRanges("wBJnxBJnEJnGJ9MJ3DJ3DJ3DJ3DJ3DJ3DJ3DJ3DJ3DJhDJ3DJnCJ3IJnCJn6BJnBJtJJhEJnFJHJ3FJ3CJnEJHJnuiBJnVJnBJnGJXJ3CJ3MJ34UJnsBJnkCJHJ9YJhEJ9BJxEJ3IJ3KJ3DJ3LJnDJHTtCJnNJnDJ3UJ3CJ3HJnCJ3BJnLJ3uQJnpCJ3CJnEJ3QJ37XJ12CxBhqCJnNJ3PJ4HJ2aJ30EJ",!0)),Nl:()=>new $e(decodeRanges("u3FCBwzCiBBDDB-zDaaBHBPCBs1dJBxyW0BBtOJJnEEBrhIuDBm8SCB",!1)),No:()=>new $e(decodeRanges("yFBBGDDBBB2pCFB5LFB5DCBmEGB6GGBSIByNJB2hBTB0jBJBhP20B20BEFBHJBnGPBqB3W3WB6BBvCVB3TdBqrB1kB1kBBCBrEJBfHBCOBhBJBoBOBxrdFBymWsBBiCDBSBB2KaBlBDB1pBHBaGBoBIBsCEBXFBhFBBDPBDtBBhCIB1BBBfCBsCEBpDHBZHBqBGBrKFBhLeB-EJBrBDBxDGBnETB8LTBmqBBBvNIBobSB0aUBn8SGB-YWBqhZTBNTBtDYBvqFIBid6BBCCBCDBtCsBBCOBjeMB",!1)),P:()=>new $e(decodeRanges("hBCBCFBCDBLBBEBBbCBCccCkBkBGEELBBEEE-VJJzOFBqBBB0BCCDDDtBBBVBBCBBOCCBBBrCDBnDsBsBBMBqHCB3BOBgBmImIBLLtE5D5D6DnMnMNwLwL7CLLBpFpFBNBCmBmBBCBoCrCrCBDBFBBwDFBsFlTlTBHB4EuTuTtBBBvCCBoCBB+ECBCCBmBKB6JBB5GBBhEGBCFBhFBBLGBdCB9DDB8BEB-BBBhCHBM9Z9ZBWBJTBCMBCLBfBBPBB6TDBeBB+hBNBwCBBgBJB0MVBgCDBhBBB8XDBCBBxDwEwEBtBBCfBDLBkNCBFJBDLBRNNjD7C7CjgdBBuICBkDLL0DFB9LDB3CBBpBCBCyByBBwBwBiDMBRBB9DDB-DBBRBB6HzqUzqUBxGxGBIBXiBBCNBCFFCBB2ECBCFBCDBLBBEBBbCBCccCCCBFB7MCB9UxBxB-MoXoXoGgBgBxIIBnBxDxDBFBjCGB6CDByO-J-JjBlElEBDBtBDB+FGBuDBBCDB-DDBxBBBwCDBFOOCCB5CFBsDrJrJBCCBzDzDBDBLBBCpDpD7HWBqDCBdMBtCjEjEBBB9HpIpIBBB8E9C9CBGB0CCBCEB+CJB4GgDgDBDBrBBBmUBBrCMBwFxjBxjBBDB97CBB8zOBBmEiCiCBDBJpRpRBBBoJDBoK9lT9lTovHEB07C-a-aBAB",!1)),Pc:()=>new $e(decodeRanges("-Cg-Hg-HBUU-u3BBBZCBwHAB",!1)),Pd:()=>new $e(decodeRanges("tB9qB9qB0BiyDiyDmgBqgCqgCBEBiwDDDgBBBFdd-NUUwDxszBxszBBmBmBLqFqFhzD-J-J",!1)),Pe:()=>new $e(decodeRanges("pB0B0BgB+1D+1DC-6B-6BqtC4B4BQ7T7TCff-hBMCxChBhBCGC1MUChCCCiBmhBmhBCECtBGCtNICEGCDBB-ozB6G6GeOCESSCCCrF0B0BgBGD",!1)),Pf:()=>new $e(decodeRanges("7F+6H+6HEddpuDCCFDDQEE",!1)),Pi:()=>new $e(decodeRanges("rFt7Ht7HDBBDaapuDCCFDDQEE",!1)),Po:()=>new $e(decodeRanges("hBCBCCBDECBLLBEEBcclCGGPBBI-V-VJzOzOBEBqB3B3BDDDtBBBVBBCBBOCCBBBrCDBnDsBsBBMBqHCB3BOBgBmImIBLLtE5D5D6DnMnMNwLwL7CLLBpFpFBNBCxDxDrCEBFBBwDFBsFlTlTBHBmY9D9DBBBoCBB+ECBCCBmBFBCDB6JBB5GBBhEGBCFBhFBBLGBdCB9DDB8BEB-BBBhCHBMjajaBJJBGBJIBDDBDCBEKBCCCBIB7kDDBCBBxDwEwEBFFBBBDDDBHBCBBCDDBLLBDBCJBDDBCCCBLBDCBtNCB6B+F+FjgdBBuICBkDLL0DFB9LDB3CBBpBCBCyByBBwBwBiDMBRBB9DDB-DBBRBB6HlxUlxUBFBDXXVBBDDBECBCDBICBHCCB2E2EBBBCCBDECBLLBEEBcclBDDB7M7MBBB9UxBxB-MoXoXoGgBgBxIIBnBxDxDBFBjCGB6CDB0ZlElEBDBtBDB+FGBuDBBCDB-DDBxBBBwCDBFOOCCB5CFBsDrJrJBCCBzDzDBDBLBBCpDpD7HWBqDCBdMBtCjEjEBBB9HpIpIBBB8E9C9CBGB0CCBCEB+CJB4GgDgDBDBrBBBmUBBrCMBwFxjBxjBBDB97CBB8zOBBmEiCiCBDBJpRpRBBBoJDBoK9lT9lTovHEB07C-a-aBAB",!1)),Ps:()=>new $e(decodeRanges("oBzBzBgB-1D-1DC-6B-6B-rCEEnB4B4BQ7T7TCff-hBMCxChBhBCGC1MUChCCCiBmhBmhBCECaTTCECtNICEGCDipzBipzB4GeeCMCESSCCCrFzBzBgBEEDAB",!1)),S:()=>new $e(decodeRanges("kBHHRCBgBCCcCCkBEBCBBDCCBCBDEEfgBgBrODBNNBGGBCCCBPB2DPPBxDxDsErIrIBBB3DCBDDDBvGvGLUUB4H4HIBBpEqLqLBHHB2H2H-DjEjEBGBlEwGwGqBmGmGiGCBQCCBBBDFBVECmEHBCFBCBBGDBmGBBxXJB0WuLuLlL+E+EBgBBiLJBKIBhiBCCBBBMCBOCBOCBOBBmCOOoBCBOCBUhBB-BBBCDBCBBLCCBBBGFBCECFMMBFFBDBGDBC7B7BBFFB2LBFcBD+HBXKByCtCBXnTBtBwBBDeBLyMBX+BBFfBD1LBDpEBmHFBmLBBvBZBC4CBN1GBbPBFOOBNNWBBHBB8CBB0HBBFJBhBlBBKRRBdBMdBJQQBeBLmBBQ-JBhuG-BBx0V2BB6RWBKBBoDBB+EDBLDB+RCBiHPPB+9T+9TpEgBBuLPBhCBB3BHBtBDBjDCCBBBD7E7EHRRBBBgBCCcCCiEGBCGBOBB6JIB6BQBDCBCMBEwBwBBrBB7zBBBwSmWmWBiKiKBGBnjC2kC2kCBbBr6SDBG3qU3qUk7DvHBLCBEzNBHWBQQBgDzDB9B1HBLmBBD7BBGCBXBBIdBF8BBWhCBE7F7FB1CBrbaagBaagBaagBaagBaa9B-PB4BDBzBHBCNBCBBp2BwNwNttCEE+DiOiOBvIvIBqBBFjDBNOBDOBCOBCkBBYgFB5BcBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBC7CBLAB",!1)),Sc:()=>new $e(decodeRanges("kB+D+DBCBqnB8D8DzPBBzPBBI2H2HoImSmS8sClmClmCBgBB37hBkuVkuVtD7E7E8GBBEBB3-HDB-4wBxtCxtC",!1)),Sk:()=>new $e(decodeRanges("+CCCoCHHFEEqQDBNNBGGBCCCBPB2DPPBjoBjoB15FCCBBBMCBOCBOCBOBB9kEBBkzdWBKBBoDBBxePPBniUniUBPB8bCCjF4g9B4g9BBDB",!1)),Sm:()=>new $e(decodeRanges("rBRRBBB+BCCuBFFmBgBgB-XwQwQBBB8xGOOoBCBOCBsEoBoBBDBHlClCBDBGBBFGDIgBgBBDDCgBgBBqIBhBBB7CffBXBpBFB2OKK3BHBwDxKxKBDBDeBLPBhIiEBX+BBFfBDhIBxBUBDFB9+zB5Z5ZCCBlFRRBBB+BCCkEHHBCBitDBBhrwBx+Bx+BagBgBagBgBagBgBagBgBat5Ft5FB-uC-uCBHB",!1)),So:()=>new $e(decodeRanges("mFDDFCCyerIrIBgEgEBvGvGLUUB4H4HkQ2L2LjEFBClElEwGqBqBoMCBQCCBBBDFBVECmEHBCFBCBBGDBmGBBxXJB0WzWzW+EhBBiLJBKIBksBBBCDBCBBLCCBHHBEBCECFMMBPPCBBC7B7BBKKBDBDDBCBBCBBCGBCeBDBBCCCBdBtIHBFTBDGBDwCBCdBanBBHnCBXKByCtCBX2FBCIBC1BBJuDBC3HBtBrBBhC-HBhQvBBWBBHmBBDpEBmHFBmLBBvBZBC4CBN1GBbPBFOOBNNWBBHBBxKBBFJBhBlBBKRRBdBMdBJQQBeBLmBBQ-JBhuG-BBx0V2BBibDBLBBC+R+RBBBqqUPBuLPBhCBB3BHBuBCBlPEEFBBOBB6JIB6BQBDCBCMBEwBwBBrBB7zBBBwSpgBpgBBGBnjC2kC2kCBGBFQBr6SDBG3qU3qUk7DvHBLCBEzNBHWBQPBhDzDB9B1HBLmBBD7BBGCBXBBIdBF8BBWhCBE7F7FB1CBqlB-PB4BDBzBHBCNBCBBp2B96C96CiEyWyWBqBBFjDBNOBDOBCOBCkBBYgFB5BcBOrBBFIBIBBPFB7E6HBG4WBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBB-B3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBC7CBLAB",!1)),Z:()=>new $e(decodeRanges("gBgEgEgvFgsCgsCBJBeBBGwBwBh9DAB",!1)),Zl:()=>new $e(decodeRanges("ohIA",!0)),Zp:()=>new $e(decodeRanges("phIA",!0)),Zs:()=>new $e(decodeRanges("gBgEgEgvFgsCgsCBJBlBwBwBh9DAB",!1)),ASCII_Hex_Digit:()=>new $e(decodeRanges("wBJIFbF",!0)),Alphabetic:()=>new $e(decodeRanges("hCZBHZBwBLLFGGBVBCeBCpOBFLBPEBICC3CeeBQBCBBDDBCHHCCBCCCBSBCyCBCqEBJlFBClBBDHHBnBBoBNBCCCBCCBCCJaBFDBeKBG3BBCGBPlDBCHBFHBFCBLCBDRRBuBBOkDBZgBBKBBFGGBWBDSBUYBIKBGXBCGBIJJBoBBLLBEGBHrCBCPBCCBFOBOSBCHBDBBDVBCGBCEEBCBEHBDBBDBBCJJFBBCEBNBBLFFBBBCFBFBBDVBCGBCBBCBBCBBFEBFBBDBBFIIBCBCSSBEBMCBCIBCCBCVBCGBCBBCEBEIBCCBCBBEQQBCBWDBFCBCHBDBBDVBCGBCBBCEBEHBDBBDBBKBBFBBCEBORRBCCBEBECBCDBEBBCCCBEEBEEBBBELBFEBECBCCBEHHpBMBCCBCWBCPBEHBCCBCCBJBBCCBCBBDDBdDBCHBCCBCWBCJBCEBEHBCCBCCBJBBGCBCDBOCBNMBCCBCoBBDHBCCBCCBCGGBCBIEBXFBCCBCRBEXBCIBCDDBFBJFBCCCBGBTBBO5BBGGBH0B0BBECBDBCXBCCCBRBCCBDEBCHHPDBhBgCgCBGBCjBBFSBFPBCjBBkC2BBCDDBDBR-BBLDBDlBBCGGDqBBCsKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPBR1CBDFBErTBDQBCZBGqCBEKBITBMUBNTBNMBCCBCBBNzBBDSBPFFkC4CBIqBBGlCBLeBCLBFIBYdBDEBMrBBFZB3BbBF+BBDTBzBYYBMMBBByBzBBCOBCHB0BpBBDDBLrBBCKBP2BBXCBLjBBDKBGqBBDCBqBDBCFBCBBEGGB+FBUhBBM1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGB1DOORMBmDFFDJBCEEBDBHGCBCBCKBDDBGEBFSSBnBBuZzBB34BkHBHDBEBBNlBBCGGD3BBIRRBVBKGBCGBCGBCGBCGBCGBCGBCGBCfBwB2O2OBBBaIBIEBDEBF1CBHCBC5CBCDBGqBBC9CBSfBxBPBhQ-tGBhCs0VBkCtBBDsIBEPBLBBVuBBGHBEwDBoBIBDmDBDxCBVUBCgBBZzBBNjCBCtBtBBEBECCBBBLgBBGiBBOcBEyBBCLBQRRBOBLEBC2BBKNBTWBEkCBCCCZCBDPBDDBMFBDFBDFBKGBCGBCqBBCNBH6DBWj9KBNWBFwBBloItLBDpDBnBGBNEBGLBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBlBZBHZBM4CBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmC0BBsIcBEwBBwBfBOdBGqBBGdBDjBBFHBCEBrB9EBTjBBFjBBFnBBJzBBNKBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCDBCBBGHBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4ByBBOyBBOnBBjBbBEGGBVB7HpBBCBBEBBRFBzBCBEcBLJJBUBrBRBvBUBcWBKlCBsBEBL4BBKOOBXBYyBBSDBJiBBEKKB+BBCDBKBBLCCkBRBChBBDHHBCB-BGBCCCBCBCOBCJBI4BBYDBCHBDBBDVBCGBCBBCEBEHBDBBDBBEHHGGBdJBCDDClBBCJBCDDCDBCBBECCtBhCBCCBCDBVCBfhCBDBBC5F5FB0BBDGBaFBjB+BBCEE8B1BBDoCoCBZBDNBWGB6F4BBoD-BBgBHBDDDBGBCBBCdBCBBDBBDDB+CHBDtBBDFBCCCBccBxBBDJBSnCBGTTBnCBoDHB5CgBBgBIBCsBBCGBCyByBBcBDVBCNBqCGBCBBCrBBECCBCCBBBCDDBZZBEBCBBCkBBCBBCDBCYYBqBBlIWBKQBCoBBECBwDwCwCB4cBnDuDBSjGBtyCgDBQvhBBSFBa68DBGmSB61GuBBy2B4RBIeBSuCBSdBTvBBRDBgBUBGSBxNsBB0G-BBhBYBDYBtBqCBF4BBIQBhCBBCNNBFBK1mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBFi7Fi7FBzCBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BeBHFB2GGBCQBDGBCBBCEBG9BBiBxDxDBrBBLGBRiKiKBcBTrBBlPbBlHdBDwGwGBdBCVBJBBhHGBCDBCBBCOBCkGB8BjCBEEE1lBDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1TZBHZBHZB3zD-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Dash:()=>new $e(decodeRanges("tB9qB9qB0BiyDiyDmgBqgCqgCBEB+BoBoBQnMnMlgDDDgBBBFdd-NUUwDxszBxszBBmBmBLqFqFhzD-J-J",!1)),Emoji:()=>new $e(decodeRanges("jBHHGJBwDFFu8HNN5GXX7CFBQBBwLBBNnFnFaKBFCBoGoHoHBLLK7B7BBCBCEBKGDBDDFDDCBBDIEBJJBBBGCCGLBMBBDCCBCCTDDBTTBEBCCCBEEBGGDBBFBBMBBGBBDGGBECBVVBGGBEBCDBDFFDDDBEBCDDCCCHEEHLLBQQDFFCFFBBBCMMBxBxBBBBKeP1LBBwOCBUBB0BFF7mBNN6SCCrrvDrGrGhFBBNBBPDDBIBsCZBCBBYVVDIBWBBvFhBBDvDBDBBCCBDyCBDCBCmIBC+BBMFBCXBIBBDHBNDDBCBDFFBOOBDDJBBKGGBBBNCBJCBDCCFHHEHHB0CBxBlCBGHBDDBEJBECCBEEDJBkHLBF8I8IBtBBCJBC4FBxDMBEKBE4BBCFFBOBDLBFJB",!1)),Emoji_Component:()=>new $e(decodeRanges("jBHHGJB0+H2G2Gsp3B3+8B3+8BBYB8PEBxtBDBtzhY-CB",!1)),Emoji_Modifier:()=>new $e(decodeRanges("7-8DE",!0)),Emoji_Modifier_Base:()=>new $e(decodeRanges("9wJ8G8GRDB4jzD9B9BBBBDDDBBB2DBBDKBWSBEFFBBBCCBICCZqGqGBFFWFFBvFvFBBBEEB0CRRBBBKMMgSDDJHBHKKBIBDCB5B+B+BBCCBCCSCBCMBmHCBrBIB",!1)),Emoji_Presentation:()=>new $e(decodeRanges("64IBBuGDBEDDqQBBWBBzBLBsBUUOJJBSSBGGBJJGWWIBBCFFDIIFBBdkBkBCFFBBBC+B+BBBBZPP8aBB0BFFvlxDrGrG-FDDBIBsCZBCZZVDDBDBCCBWBBvFgBBNIBClCBCVBNqBBFEBNQBEEEBlCBCCCB5FBD+BBODBCXBTbbBOO3C0CBxBlCBHEEBBBDDBEDBMBBIIBkHLBF8I8IBtBBCJBC4FBxDMBEKBE4BBCFFBOBDLBFJB",!1)),Extended_Pictographic:()=>new $e(decodeRanges("pFFFu8HNN5GXX7CFBQBBwLBBNnFnFaKBFCBoGoHoHBLLK7B7BBCBCEBKGDBDDFDDCBBDIEBJJBBBGCCGLBMBBDCCBCCTDDBTTBEBCCCBEEBGGDBBFBBMBBGBBDGGBECBVVBGGBEBCDBDFFDDDBEBCDDCCCHEEHLLBQQDFFCFFBBBCMMBxBxBBBBKeP1LBBwOCBUBB0BFF7mBNN6SCCrrvDoBoBBCBlDLBQBBQPPBmBmBBIBxDBBNBBPDDBIBU3BBcOBLVVDIBCDBKWBH7FBDvDBDBBCCBDyCBDCBCDBG9HBC+BBMFBCXBIBBDHBNDDBCBDFFBOOBDDJBBKGGBBBNCBJCBDCCFHHEHHB0CBxBlCBGHBDQBECCBEBDMB7GlBBNDB5BHBLFBpBHBfBBNDBDNBKmBBNuBBCJBC4FB5CHBPxEBhI9fB",!1)),Hex_Digit:()=>new $e(decodeRanges("wBJIFbFq1-BJIFbF",!0)),Lowercase:()=>new $e(decodeRanges("hDZBwBLLFlBlBBWBCHBC2BCBQCBuBCDECBBBDCCDEEBFFDEEBBBDDDCCCDCCBCCDEECDDBDDBBBHGDCOCBSCBDDCEEC4BCBFBDDDBCCFICBjCBDiBBIBBfEBhDsBsBCEEDDBTccBhBBCBBECBCWCBDBCGDB0B0BBuBBCgBCK0BCDMCBgDCxBoBBo6CqBBCDB5XFBjkCIBC2D2DB+FBiC0ECBHBCgDCBHBJFBLHBJHBJFBLHBJHBJNBDHBJHBJHBJEBCBBHEEBBBCBBJDBDBBJHBLCBCBB6DOORMBuDEEBEEcKFDBBJDBFiBiBBOBFsasaBYBn6BvBBCEEBGCFCCBCCBGBEiDCBIICFFNlBBCGG0oesBCUaCBBBmEMCBBBC8BCBIBCCCDICFCCDCCBBBCSCGGGCMCFCCDOCWDBCCCBBB2ZqBBCNBHvCBh6TGBNEBqhBZBumBnBBpEjBB8EKBCOBCGBCBBkODDBBBCpBBCIBmoByBB+DVB75CfBhsVfB8BYBnqZZBbGBCRBbZBbDBCCCBFBCKBbZBbZBbZBbZBbZBbZBbZBbZBbbBdYBCFBbYBCFBbYBCFBbYBCFBbYBCFBC15B15BBIBCTBHFBmI9BB1lChBB",!1)),Math:()=>new $e(decodeRanges("rBRRBBBgBeeCuBuBFmBmBgB5W5WBBBDbbBDDBBBwQCBuwGccBBBMEEOPPBCBWEBMEBiCMBFEEBFFBDBTFFDJBCDDBEBHEEBDDBCCBBBCFBENBClClCBWBCFBCBBFBBFfBCHHBPPBqIBJDBVBB7CffBZBCZZMGB+NBBNJBFFBFBBDBBEEBPCCDFBMHBGBB6BCCeDBKCBxK-BBhI-PBxBUBDFB9+zB4Z4ZBEBCjFjFRCBeCCeCCkEHHBCBitDBBhrwBwoBwoBBzCBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBDxBBhwFDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBB-uCIB",!1)),Quotation_Mark:()=>new $e(decodeRanges("iBFFkEQQ96HHBaBBowDqOqOBCBOCBixzBDB+FFF7CBB",!1)),Terminal_Punctuation:()=>new $e(decodeRanges("hBLLCMMBEE-ZJJiQ6B6BpCPPCCB1FsBsBBJBCsHsHB3B3BBEBCHBgBmImIB1nB1nBBtFtFFFB4JBB2YHBmY9D9DBBBoCBB+ECBEoBoBBCBDBB7JBBjLDBjFBBLBBCCBeCB8FEB-BBBldYYBKKBBBwlDCBzJOOFLLCBBEBBtNBB8ndBBuICBkHEB-LBB3CBBgD4E4EBBB0ECBgERRB6H6HnxUDDB6B6BBBBCDBqFLLCMMBEEiCDD7hBxBxBnkBoGoG3JBB5EFBlCFB6CDB5dEBtBDB+FGBxDDBgECBiEBBHRRB5C5CBDBtDrJrJB2D2DBBBNBBnLDBEOBqDBB6HCBmQCC8HBB4CBBFBB-MCBuBmUmUBrCrCBspBspBBDB6vRBBmEiCiCBBBLqRqRBoJoJBnwTnwTovHDB",!1)),Uppercase:()=>new $e(decodeRanges("hCZBmDWBCGBiB2BCDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIJDCMCDQCDDDCCBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBDDBBBEWCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBpCDBNDBNDBNEBMDBnIFFECBDCBDEEBDBHGCBCBDDBLBBGbbBOBUzZzZBYBx5BvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoqZZBbZBbZBbCCBGDBDDBCBCHBbZBbBBCDBDHBCGBcBBCDBCEBCEEBFBcZBbZBbZBbZBbZBbZBfYBiBYBiBYBiBYBiBYBiB2pE2pEBgBBvgCZBHZBHZB",!1)),White_Space:()=>new $e(decodeRanges("JEBTlDlDbgvFgvFgsCKBeBBGwBwBh9DAB",!1))}),Pe.SCRIPTS=new Xe({Adlam:()=>new $e(decodeRanges("go6DrCFJFB",!0)),Ahom:()=>new $e(decodeRanges("g4lCaDOFW",!0)),Anatolian_Hieroglyphs:()=>new $e(decodeRanges("ggxCmS",!0)),Arabic:()=>new $e(decodeRanges("gwBEBCFBCNBCCBCfBCJBMZBCrDBChBBxCvBBxHhBBGqCBCcBxy8BtPBDvEBhBPBxDEBCmEBk7DeBkCFBJIBiBFBh43BDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBB",!1)),Armenian:()=>new $e(decodeRanges("xpBlBDxBDCks9BE",!0)),Avestan:()=>new $e(decodeRanges("g4iC1BEG",!0)),Balinese:()=>new $e(decodeRanges("g4GsCCxB",!0)),Bamum:()=>new $e(decodeRanges("g1pB3CpowB4R",!0)),Bassa_Vah:()=>new $e(decodeRanges("w26CdDF",!0)),Batak:()=>new $e(decodeRanges("g+GzBJD",!0)),Bengali:()=>new $e(decodeRanges("gsCDBCHBDBBDVBCGBCEEBCBDIBDBBDDBJFFBCCBDBDYB",!1)),Beria_Erfe:()=>new $e(decodeRanges("g17CYDY",!0)),Bhaiksuki:()=>new $e(decodeRanges("ggnCICsBCNLc",!0)),Bopomofo:()=>new $e(decodeRanges("qXB6wLqBxDf",!0)),Brahmi:()=>new $e(decodeRanges("ggkCtCFjBKA",!0)),Braille:()=>new $e(decodeRanges("ggK-H",!0)),Buginese:()=>new $e(decodeRanges("gwGbDB",!0)),Buhid:()=>new $e(decodeRanges("g6FT",!0)),Canadian_Aboriginal:()=>new $e(decodeRanges("ggF-TxRlC7tgCP",!0)),Carian:()=>new $e(decodeRanges("g1gCwB",!0)),Caucasian_Albanian:()=>new $e(decodeRanges("wphCzBMA",!0)),Chakma:()=>new $e(decodeRanges("gokC0BCR",!0)),Cham:()=>new $e(decodeRanges("gwqB2BKNDJDD",!0)),Cherokee:()=>new $e(decodeRanges("g9E1CDFz7lBvC",!0)),Chorasmian:()=>new $e(decodeRanges("w9jCb",!0)),Common:()=>new $e(decodeRanges("AgCBbFBbuBBCOBCEBYgBgBiOmBBGEBDTB1DKKHCC+THHPEEhB9E9ElQiEiEB6mB6mB2MDBjJwvBwvBBBBoCBBsGBBCumBumBOIIBCBCFBCCBDmYmYBKBD2CBCKBEKBCOBShBB-BlBBCCBDFBCaBCQBqBCBF5UBXKBW-cBhIzTBDpEBhQ9CBzMUBCCCBXBQHBFDB8CBBE7C7CB0E0EBOBhBlBBKxBxBB+BBgBwCBwB5C5CBmFBhuG-BBhoWhBBnDCBmFJB1HhFhFsMPPBzuUzuUBxGxGBIBXiBBCSBCDB0ECCBeBbFBbKBLuBuBBhChCBFBCGBLEBjICBFsBBEIBxCMB0BsBBlHaBltuBDB96D8HBEzNBHWBQQBgDzDB9B1HBLmBBD9BBEQBJBBIdBF8BB2GTBNTBN2CBKYBoE0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBDxBByjFjCBtC8BBjWrBBFjDBNOBDOBCOBCkBBLtFB5BZBCBBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBCmDBnghYffB+CB",!1)),Coptic:()=>new $e(decodeRanges("ifNxkKzDGG",!0)),Cuneiform:()=>new $e(decodeRanges("ggoC5cnDuDCEMjG",!0)),Cypriot:()=>new $e(decodeRanges("ggiCFBDCCBqBBCBBEDD",!1)),Cypro_Minoan:()=>new $e(decodeRanges("w8rCiD",!0)),Cyrillic:()=>new $e(decodeRanges("ggBkEBDoFBx6FKBhFtCtCojEfBhie-CBv8VBBhw4B9BBiBAB",!1)),Deseret:()=>new $e(decodeRanges("gghCvC",!0)),Devanagari:()=>new $e(decodeRanges("goCwCFODZh7nBfhwcJ",!0)),Dives_Akuru:()=>new $e(decodeRanges("gomCGBDDDBGBCBBCdBCBBDLBKJB",!1)),Dogra:()=>new $e(decodeRanges("ggmC7B",!0)),Duployan:()=>new $e(decodeRanges("ggvDqDGMEIIJDD",!0)),Egyptian_Hieroglyphs:()=>new $e(decodeRanges("ggsC1iBL68D",!0)),Elbasan:()=>new $e(decodeRanges("gohCnB",!0)),Elymaic:()=>new $e(decodeRanges("g-jCW",!0)),Ethiopic:()=>new $e(decodeRanges("gwEoCBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBDfBEZBnvGWBKGBCGBCGBCGBCGBCGBCGBCGBjpfFBDFBDFBKGBCGBylvCGBCDBCBBCOB",!1)),Garay:()=>new $e(decodeRanges("gqjClBEcJB",!0)),Georgian:()=>new $e(decodeRanges("glElBBCGGDqBBCDBx8CqBBDCBhiElBBCGG",!1)),Glagolitic:()=>new $e(decodeRanges("ggL-Ch9sDGCQDGCBCE",!0)),Gothic:()=>new $e(decodeRanges("w5gCa",!0)),Grantha:()=>new $e(decodeRanges("g4kCDBCHBDBBDVBCGBCBBCEBDIBDBBDCBDHHGGBDGBEEB",!1)),Greek:()=>new $e(decodeRanges("wbDBCCBDDBCFFCCCBBBCCCBSBC+BBPPBnpGEBzBEBFEB1ChKhKBUBDFBDlBBDFBDHBCGCBdBD0BBCOBCNBDFBCSBDCBCIBoJ-xiB-xiB7uVuCBSgj0Bgj0BBkCB",!1)),Gujarati:()=>new $e(decodeRanges("h0CCBCIBCCBCVBCGBCBBCEBDJBCCBCCBDQQBCBDLBIGB",!1)),Gunjala_Gondi:()=>new $e(decodeRanges("grnCFCBCkBCBCFIJ",!0)),Gurmukhi:()=>new $e(decodeRanges("hwCCBCFBFBBDVBCGBCBBCBBCBBDCCBDBFBBDCBEIIBCBCIIBPB",!1)),Gurung_Khema:()=>new $e(decodeRanges("go4C5B",!0)),Han:()=>new $e(decodeRanges("g0LZBC4CBN1GBwBCCaIBPDBle-tGBhC-vUBhoWtLBDpDBpodBBNGBqgkB-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Hangul:()=>new $e(decodeRanges("goE-HvxHBiI9CyDeiCei3dckUj9KNWFwBl9JeEFDFDFDC",!0)),Hanifi_Rohingya:()=>new $e(decodeRanges("gojCnBJJ",!0)),Hanunoo:()=>new $e(decodeRanges("g5FU",!0)),Hatran:()=>new $e(decodeRanges("gniCSCBGE",!0)),Hebrew:()=>new $e(decodeRanges("xsB2BBJaBFFBpp9BZBCEBCCCBCCBCCBIB",!1)),Hiragana:()=>new $e(decodeRanges("hiM1CBHCBi7-C+IBTeeBBBulQAB",!1)),Imperial_Aramaic:()=>new $e(decodeRanges("giiCVCI",!0)),Inherited:()=>new $e(decodeRanges("gYvDB2IBBlOKBbhXhXBCB8qEtBBDLBlPCBCMBCGBFHHEBBnG-BBtQBBjGgBB65DDBsDBBmrzBPBRNBwejHjH7iEl+uBl+uBBsBBDWBhRCBSHBDGBfDBz6rYvHB",!1)),Inscriptional_Pahlavi:()=>new $e(decodeRanges("g7iCSGH",!0)),Inscriptional_Parthian:()=>new $e(decodeRanges("g6iCVDH",!0)),Javanese:()=>new $e(decodeRanges("gsqBtCDJFB",!0)),Kaithi:()=>new $e(decodeRanges("gkkCiCLA",!0)),Kannada:()=>new $e(decodeRanges("gkDMCCCWCJCEDICCCDIBGCCDDJCC",!0)),Katakana:()=>new $e(decodeRanges("hlM5CBDCBxHPBxGuBBC3CBvgzBJBCsBBzisBDBCGBCBBCgJgJBBBzBPPBCB",!1)),Kawi:()=>new $e(decodeRanges("g4nCQCoBEc",!0)),Kayah_Li:()=>new $e(decodeRanges("goqBtBCA",!0)),Kharoshthi:()=>new $e(decodeRanges("gwiCDCBGHCCCcDCFJII",!0)),Khitan_Small_Script:()=>new $e(decodeRanges("k-7C84G84GB0OBqBAB",!1)),Khmer:()=>new $e(decodeRanges("g8F9CDJHJnPf",!0)),Khojki:()=>new $e(decodeRanges("gwkCRCuB",!0)),Khudawadi:()=>new $e(decodeRanges("w1kC6BGJ",!0)),Kirat_Rai:()=>new $e(decodeRanges("gq7C5B",!0)),Lao:()=>new $e(decodeRanges("h0DBBCCCBDBCXBCCCBVBDEBCCCBFBCJBDDB",!1)),Latin:()=>new $e(decodeRanges("hCZBHZBwBQQGWBCeBCgOBoBEB8wGlBBHwBBGDBGMBClCBiC-HByLOORMBuEBBHccSoBB42CfBj1elDBExCBVOBxZqBBCIBCDB38TGB7gBZBHZBmhCFBCpBBCIBm61BeBHFB",!1)),Lepcha:()=>new $e(decodeRanges("ggH3BEOEC",!0)),Limbu:()=>new $e(decodeRanges("goGeBCLBFLBFEEBKB",!1)),Linear_A:()=>new $e(decodeRanges("gwhC2JKVLH",!0)),Linear_B:()=>new $e(decodeRanges("gggCLCZCSCBCODNjB6D",!0)),Lisu:()=>new $e(decodeRanges("wmpBvBx1eA",!0)),Lycian:()=>new $e(decodeRanges("g0gCc",!0)),Lydian:()=>new $e(decodeRanges("gpiCZGA",!0)),Mahajani:()=>new $e(decodeRanges("wqkCmB",!0)),Makasar:()=>new $e(decodeRanges("g3nCY",!0)),Malayalam:()=>new $e(decodeRanges("goDMCCCyBCCCFFPDZ",!0)),Mandaic:()=>new $e(decodeRanges("giCbDA",!0)),Manichaean:()=>new $e(decodeRanges("g2iCmBFL",!0)),Marchen:()=>new $e(decodeRanges("wjnCfDVCN",!0)),Masaram_Gondi:()=>new $e(decodeRanges("gonCGBCBBCrBBECCBCCBHBJJB",!1)),Medefaidrin:()=>new $e(decodeRanges("gy7C6C",!0)),Meetei_Mayek:()=>new $e(decodeRanges("g3qBWqGtBDJ",!0)),Mende_Kikakui:()=>new $e(decodeRanges("gg6DkGDP",!0)),Meroitic_Cursive:()=>new $e(decodeRanges("gtiCXFTDtB",!0)),Meroitic_Hieroglyphs:()=>new $e(decodeRanges("gsiCf",!0)),Miao:()=>new $e(decodeRanges("g47CqCF4BIQ",!0)),Modi:()=>new $e(decodeRanges("gwlCkCMJ",!0)),Mongolian:()=>new $e(decodeRanges("ggGBBDCCBSBH4CBIqBB2t-BMB",!1)),Mro:()=>new $e(decodeRanges("gy6CeCJFB",!0)),Multani:()=>new $e(decodeRanges("g0kCGBCCCBCBCOBCKB",!1)),Myanmar:()=>new $e(decodeRanges("ggE-EhqmBeiDfxibT",!0)),Nabataean:()=>new $e(decodeRanges("gkiCeJI",!0)),Nag_Mundari:()=>new $e(decodeRanges("wm5DpB",!0)),Nandinagari:()=>new $e(decodeRanges("gtmCHDtBDK",!0)),New_Tai_Lue:()=>new $e(decodeRanges("gsGrBFZHKEB",!0)),Newa:()=>new $e(decodeRanges("gglC7CCE",!0)),Nko:()=>new $e(decodeRanges("g+B6BDC",!0)),Nushu:()=>new $e(decodeRanges("h-7CvsQvsQBqMB",!1)),Nyiakeng_Puachue_Hmong:()=>new $e(decodeRanges("go4DsBENDJFB",!0)),Ogham:()=>new $e(decodeRanges("g0Fc",!0)),Ol_Chiki:()=>new $e(decodeRanges("wiHvB",!0)),Ol_Onal:()=>new $e(decodeRanges("wu5DqBFA",!0)),Old_Hungarian:()=>new $e(decodeRanges("gkjCyBOyBIF",!0)),Old_Italic:()=>new $e(decodeRanges("g4gCjBKC",!0)),Old_North_Arabian:()=>new $e(decodeRanges("g0iCf",!0)),Old_Permic:()=>new $e(decodeRanges("w6gCqB",!0)),Old_Persian:()=>new $e(decodeRanges("g9gCjBFN",!0)),Old_Sogdian:()=>new $e(decodeRanges("g4jCnB",!0)),Old_South_Arabian:()=>new $e(decodeRanges("gziCf",!0)),Old_Turkic:()=>new $e(decodeRanges("ggjCoC",!0)),Old_Uyghur:()=>new $e(decodeRanges("w7jCZ",!0)),Oriya:()=>new $e(decodeRanges("h4CCCHDBDVCGCBCEDIDBDCICFBCEDR",!0)),Osage:()=>new $e(decodeRanges("wlhCjBFjB",!0)),Osmanya:()=>new $e(decodeRanges("gkhCdDJ",!0)),Pahawh_Hmong:()=>new $e(decodeRanges("g46ClCLJCGCUGS",!0)),Palmyrene:()=>new $e(decodeRanges("gjiCf",!0)),Pau_Cin_Hau:()=>new $e(decodeRanges("g2mC4B",!0)),Phags_Pa:()=>new $e(decodeRanges("giqB3B",!0)),Phoenician:()=>new $e(decodeRanges("goiCbEA",!0)),Psalter_Pahlavi:()=>new $e(decodeRanges("g8iCRIDNG",!0)),Rejang:()=>new $e(decodeRanges("wpqBjBMA",!0)),Runic:()=>new $e(decodeRanges("g1FqCEK",!0)),Samaritan:()=>new $e(decodeRanges("ggCtBDO",!0)),Saurashtra:()=>new $e(decodeRanges("gkqBlCJL",!0)),Sharada:()=>new $e(decodeRanges("gskC-ChsCH",!0)),Shavian:()=>new $e(decodeRanges("wihCvB",!0)),Siddham:()=>new $e(decodeRanges("gslC1BDlB",!0)),Sidetic:()=>new $e(decodeRanges("gqiCZ",!0)),SignWriting:()=>new $e(decodeRanges("gg2DrUQECO",!0)),Sinhala:()=>new $e(decodeRanges("hsDCBCRBEXBCIBCDDBFBEFFBEBCCCBGBHJBDCBt-gCTB",!1)),Sogdian:()=>new $e(decodeRanges("w5jCpB",!0)),Sora_Sompeng:()=>new $e(decodeRanges("wmkCYIJ",!0)),Soyombo:()=>new $e(decodeRanges("wymCyC",!0)),Sundanese:()=>new $e(decodeRanges("g8G-BhIH",!0)),Sunuwar:()=>new $e(decodeRanges("g+mChBPJ",!0)),Syloti_Nagri:()=>new $e(decodeRanges("ggqBsB",!0)),Syriac:()=>new $e(decodeRanges("g4BNC7BDCxIK",!0)),Tagalog:()=>new $e(decodeRanges("g4FVKA",!0)),Tagbanwa:()=>new $e(decodeRanges("g7FMCCCB",!0)),Tai_Le:()=>new $e(decodeRanges("wqGdDE",!0)),Tai_Tham:()=>new $e(decodeRanges("gxG+BCcDKHJHN",!0)),Tai_Viet:()=>new $e(decodeRanges("g0qBiCZE",!0)),Tai_Yo:()=>new $e(decodeRanges("g25DeCVJB",!0)),Takri:()=>new $e(decodeRanges("g0lC5BHJ",!0)),Tamil:()=>new $e(decodeRanges("i8CBBCFBECBCDBEBBCCCBEEBEEBBBELBFEBECBCDBDHHPUBm+kCxBBOAB",!1)),Tangsa:()=>new $e(decodeRanges("wz6CuCCJ",!0)),Tangut:()=>new $e(decodeRanges("g-7CgBgBB+3GBhQeBiDyDB",!1)),Telugu:()=>new $e(decodeRanges("ggDMCCCWCPDICCCDIBCCCBDDDJII",!0)),Thaana:()=>new $e(decodeRanges("g8BxB",!0)),Thai:()=>new $e(decodeRanges("hwD5BGb",!0)),Tibetan:()=>new $e(decodeRanges("g4DnCCjBFmBCjBCOCGFB",!0)),Tifinagh:()=>new $e(decodeRanges("wpL3BIBPA",!0)),Tirhuta:()=>new $e(decodeRanges("gklCnCJJ",!0)),Todhri:()=>new $e(decodeRanges("guhCzB",!0)),Tolong_Siki:()=>new $e(decodeRanges("wtnCrBFJ",!0)),Toto:()=>new $e(decodeRanges("w04De",!0)),Tulu_Tigalari:()=>new $e(decodeRanges("g8kCJBCDDClBBCJBCDDCDBCJBCBBJBB",!1)),Ugaritic:()=>new $e(decodeRanges("g8gCdCA",!0)),Unknown:()=>new $e(decodeRanges("4bBBHDBICCVuMuMnBBBzBBBE4B4BBGBcDBHKBvI9B9BBmDmDBMB8BBByBBBQddBCCMEBjBEBuHJJBDDBXXICCBBBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBbFB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKmDmDNBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBjoIBvLBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCC-FCBHBBHBBHBBECBIIIBIBGBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIBlCJBCBBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMB3iBJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBJ76DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBjGUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIm8yVBCdBhD-DBxHvw-FB",!1)),Vai:()=>new $e(decodeRanges("gopBrJ",!0)),Vithkuqi:()=>new $e(decodeRanges("wrhCKCOCGCBCKCOCGCB",!0)),Wancho:()=>new $e(decodeRanges("g24D5BGA",!0)),Warang_Citi:()=>new $e(decodeRanges("glmCyCNA",!0)),Yezidi:()=>new $e(decodeRanges("g0jCpBCCDB",!0)),Yi:()=>new $e(decodeRanges("ggoBskBE2B",!0)),Zanabazar_Square:()=>new $e(decodeRanges("gwmCnC",!0))}),Pe.FOLD_CATEGORIES=new Xe({L:()=>new $e(decodeRanges("laA",!0)),LC:()=>new $e(decodeRanges("laA",!0)),Ll:()=>new $e(decodeRanges("hCZBmDWBCGBiBuBCEECDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIBBCBBCBBCOCDQCDBBCCCBBBC4BCIBBCBBDCCBCBCGC3HrBrBCEEJHHCCBCCCBCCBPBCIBkBJJCUCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBZHBJHBJHBJEBMEBMDBNEBMEBqJEEBHHxC9zC9zCBuBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoyehBB",!1)),Lt:()=>new $e(decodeRanges("kOCCBCCBCClBCCtsHHBJHBJHBMQQwBAB",!1)),Lu:()=>new $e(decodeRanges("hDZB7BqBqBBWBCHBCuBCEECDOCDsBCDECBBBDCCDEEGDDECBDDDCCCDFFDEECDDECCGBBCBBCBBCOCBSCDBBCEECkBCEQCJDDBCCFICBEBCBBCCCBEEBCCBCBCEBDCCBDDIDDCBBEFBGLLBnFnFsBCCEEEBBBvBDBCdBCBBECBCWCBDBCGD1BvBBCgBCK0BCDMCBgDCyBlBBq6CqBBDCB5XFBjkCIBCvHvHERRzD0ECGGGC8CCBHBJFBLHBJHBJFBMGCJHBJNBzBBBNSSBPPBEEpL2B2Bs1CvBBCEEBGCHDDLiDCJCCFNNBkBBCGG0oesBCUaCoEMCE8BCLCCDICFFFCBBDSCMOCFCCDOCb9a9advCBi8UZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBvyehBB",!1)),M:()=>new $e(decodeRanges("5cgBgBlgHAB",!1)),Mn:()=>new $e(decodeRanges("5cgBgBlgHAB",!1)),Emoji:()=>new $e(decodeRanges("8mJA",!0)),Extended_Pictographic:()=>new $e(decodeRanges("8mJA",!0)),Lowercase:()=>new $e(decodeRanges("hCZBmDWBCGBiBuBCEECDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIBBCBBCBBCOCDQCDBBCCCBBBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBJJCUCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBZHBJHBJHBJEBMEBMDBNEBMEBqJEEBHHuBPBUzZzZBYBx5BvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoyehBB",!1)),Math:()=>new $e(decodeRanges("ycGDCHHFMMDDDCHHFAB",!1)),Uppercase:()=>new $e(decodeRanges("hDZB7BqBqBBWBCHBCuBCEECDOCDsBCDECBBBDCCDEEGDDECBDDDCCCDFFDEECDDECCGBBCBBCBBCOCBSCDBBCEECkBCEQCJDDBCCFICBEBCBBCCCBEEBCCBCBCEBDCCBDDIDDCBBEFBGLLBnFnFsBCCEEEBBBvBDBCdBCBBECBCWCBDBCGD1BvBBCgBCK0BCDMCBgDCyBlBBq6CqBBDCB5XFBjkCIBCvHvHERRzD0ECGGGC8CCBHBJFBLHBJHBJFBMGCJHBJNBzBBBNSSBPPBEEpLiBiBBOBFsasaBYBn6BvBBCEEBGCHDDLiDCJCCFNNBkBBCGG0oesBCUaCoEMCE8BCLCCDICFFFCBBDSCMOCFCCDOCb9a9advCBi8UZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBvyehBB",!1))}),Pe.FOLD_SCRIPT=new Xe({Common:()=>new $e(decodeRanges("8cgBgB",!1)),Greek:()=>new $e(decodeRanges("1FwUwU",!1)),Inherited:()=>new $e(decodeRanges("5cgBgBlgHAB",!1))}),Pe),et=(Re=class Unicode{static is32(ee,te){let ne=0,re=ee.length;for(;ne<re;){const se=ne+Math.floor((re-ne)/2),ie=ee.getLo(se),ae=ee.getHi(se);if(ie<=te&&te<=ae){return(te-ie)%ee.getStride(se)==0}te<ie?re=se:ne=se+1}return!1}static is(ee,te){if(te<=Re.MAX_LATIN1){for(let ne=0;ne<ee.length;ne++){if(te>ee.getHi(ne))continue;const re=ee.getLo(ne);if(te<re)return!1;return(te-re)%ee.getStride(ne)==0}return!1}return ee.length>0&&te>=ee.getLo(0)&&Re.is32(ee,te)}static isUpper(ee){if(ee<=Re.MAX_LATIN1){const te=String.fromCodePoint(ee);return te.toUpperCase()===te&&te.toLowerCase()!==te}return Re.is(Ze.Upper,ee)}static isPrint(ee){return ee<=Re.MAX_LATIN1?ee>=32&&ee<Re.MAX_ASCII||ee>=161&&173!==ee:Re.is(Ze.Print,ee)}static simpleFold(ee){if(Ze.CASE_ORBIT.has(ee))return Ze.CASE_ORBIT.get(ee);const te=We.toLowerCase(ee);return te!==ee?te:We.toUpperCase(ee)}static equalsIgnoreCase(ee,te){if(ee===te)return!0;if(ee<0||te<0)return!1;if(ee<=Re.MAX_ASCII&&te<=Re.MAX_ASCII)return 65<=ee&&ee<=90&&(ee|=32),65<=te&&te<=90&&(te|=32),ee===te;for(let ne=Re.simpleFold(ee);ne!==ee;ne=Re.simpleFold(ne))if(ne===te)return!0;return!1}},Re.MAX_RUNE=1114111,Re.MAX_ASCII=127,Re.MAX_LATIN1=255,Re.MAX_BMP=65535,Re.MIN_FOLD=65,Re.MAX_FOLD=125251,Re.MIN_HIGH_SURROGATE=55296,Re.MAX_HIGH_SURROGATE=56319,Re.MIN_LOW_SURROGATE=56320,Re.MAX_LOW_SURROGATE=57343,Re.MIN_SUPPLEMENTARY_CODE_POINT=65536,Re);const tt=new Uint8Array(256);for(let ee=0;ee<256;ee++)tt[ee]=97<=ee&&ee<=122||65<=ee&&ee<=90||48<=ee&&ee<=57||95===ee?1:0;let nt=null,rt=null;var st=(Ve=class Utils{static emptyInts(){return[]}static isByteArray(ee){return Array.isArray(ee)||ee instanceof Uint8Array}static isalnum(ee){return We.CODES.get("0")<=ee&&ee<=We.CODES.get("9")||We.CODES.get("a")<=ee&&ee<=We.CODES.get("z")||We.CODES.get("A")<=ee&&ee<=We.CODES.get("Z")}static unhex(ee){return We.CODES.get("0")<=ee&&ee<=We.CODES.get("9")?ee-We.CODES.get("0"):We.CODES.get("a")<=ee&&ee<=We.CODES.get("f")?ee-We.CODES.get("a")+10:We.CODES.get("A")<=ee&&ee<=We.CODES.get("F")?ee-We.CODES.get("A")+10:-1}static escapeRune(ee){let te="";if(et.isPrint(ee))Ve.METACHARACTERS.indexOf(String.fromCodePoint(ee))>=0&&(te+="\\"),te+=String.fromCodePoint(ee);else switch(ee){case We.CODES.get('"'):te+='\\"';break;case We.CODES.get("\\"):te+="\\\\";break;case We.CODES.get("\t"):te+="\\t";break;case We.CODES.get("\n"):te+="\\n";break;case We.CODES.get("\r"):te+="\\r";break;case We.CODES.get("\b"):te+="\\b";break;case We.CODES.get("\f"):te+="\\f";break;default:{let ne=ee.toString(16);ee<256?(te+="\\x",1===ne.length&&(te+="0"),te+=ne):te+=`\\x{${ne}}`;break}}return te}static stringToRunes(ee){const te=String(ee),ne=[];let re=0;for(;re<te.length;){const ee=te.codePointAt(re);ne.push(ee),re+=ee>et.MAX_BMP?2:1}return ne}static runeToString(ee){return String.fromCodePoint(ee)}static isWordRune(ee){return ee<256&&1===tt[ee]}static emptyOpContext(ee,te){let ne=0;return ee<0&&(ne|=Ve.EMPTY_BEGIN_TEXT|Ve.EMPTY_BEGIN_LINE),10===ee&&(ne|=Ve.EMPTY_BEGIN_LINE),te<0&&(ne|=Ve.EMPTY_END_TEXT|Ve.EMPTY_END_LINE),10===te&&(ne|=Ve.EMPTY_END_LINE),Ve.isWordRune(ee)!==Ve.isWordRune(te)?ne|=Ve.EMPTY_WORD_BOUNDARY:ne|=Ve.EMPTY_NO_WORD_BOUNDARY,ne}static quoteMeta(ee){return ee.split("").map((ee=>Ve.METACHARACTERS.indexOf(ee)>=0?`\\${ee}`:ee)).join("")}static charCount(ee){return ee>et.MAX_BMP?2:1}static toArray(ee){const te=ee.length,ne=new Array(te);for(let re=0;re<te;re++)ne[re]=ee[re];return ne}static stringToUtf8ByteArray(ee){if(globalThis.TextEncoder)return nt||(nt=new TextEncoder),Ve.toArray(nt.encode(ee));{let te=[],ne=0;for(let re=0;re<ee.length;re++){let se=ee.charCodeAt(re);se<128?te[ne++]=se:se<2048?(te[ne++]=se>>6|192,te[ne++]=63&se|128):(64512&se)===et.MIN_HIGH_SURROGATE&&re+1<ee.length&&(64512&ee.charCodeAt(re+1))===et.MIN_LOW_SURROGATE?(se=et.MIN_SUPPLEMENTARY_CODE_POINT+((1023&se)<<10)+(1023&ee.charCodeAt(++re)),te[ne++]=se>>18|240,te[ne++]=se>>12&63|128,te[ne++]=se>>6&63|128,te[ne++]=63&se|128):(te[ne++]=se>>12|224,te[ne++]=se>>6&63|128,te[ne++]=63&se|128)}return te}}static utf8ByteArrayToString(ee){if(globalThis.TextDecoder){rt||(rt=new TextDecoder("utf-8"));const te=ee instanceof Uint8Array?ee:new Uint8Array(ee);return rt.decode(te)}{let te=[],ne=0,re=0;for(;ne<ee.length;){let se=ee[ne++];if(se<128)te[re++]=String.fromCharCode(se);else if(se>191&&se<224){let ie=ee[ne++];te[re++]=String.fromCharCode((31&se)<<6|63&ie)}else if(se>239&&se<365){let ie=((7&se)<<18|(63&ee[ne++])<<12|(63&ee[ne++])<<6|63&ee[ne++])-et.MIN_SUPPLEMENTARY_CODE_POINT;te[re++]=String.fromCharCode(et.MIN_HIGH_SURROGATE+(ie>>10)),te[re++]=String.fromCharCode(et.MIN_LOW_SURROGATE+(1023&ie))}else{let ie=ee[ne++],ae=ee[ne++];te[re++]=String.fromCharCode((15&se)<<12|(63&ie)<<6|63&ae)}}return te.join("")}}},Ve.METACHARACTERS="\\.+*?()|[]{}^$",Ve.EMPTY_BEGIN_LINE=1,Ve.EMPTY_END_LINE=2,Ve.EMPTY_BEGIN_TEXT=4,Ve.EMPTY_END_TEXT=8,Ve.EMPTY_WORD_BOUNDARY=16,Ve.EMPTY_NO_WORD_BOUNDARY=32,Ve.EMPTY_ALL=-1,Ve);const createEnum=(ee=[],te=0)=>{const ne=Object.create(null);for(let re=0;re<ee.length;re++){const se=ee[re],ie=te+re;ne[se]=ie,ne[ie]=se}return Object.freeze(ne)};var it=((De=class MatcherInputBase{getEncoding(){throw Error("not implemented")}asCharSequence(){throw Error("not implemented")}asBytes(){throw Error("not implemented")}length(){throw Error("not implemented")}isUTF8Encoding(){return this.getEncoding()===De.Encoding.UTF_8}isUTF16Encoding(){return this.getEncoding()===De.Encoding.UTF_16}}).Encoding=createEnum(["UTF_16","UTF_8"]),De),at=class extends it{constructor(ee=null){super(),this.bytes=ee}getEncoding(){return it.Encoding.UTF_8}asCharSequence(){return st.utf8ByteArrayToString(this.bytes)}asBytes(){return this.bytes}length(){return this.bytes.length}},ot=class extends it{constructor(ee=null){super(),this.charSequence=ee}getEncoding(){return it.Encoding.UTF_16}asCharSequence(){return this.charSequence}asBytes(){return st.stringToUtf8ByteArray(this.charSequence.toString())}length(){return this.charSequence.length}},ut=class{static utf16(ee){return new ot(ee)}static utf8(ee){return st.isByteArray(ee)?new at(ee):new at(st.stringToUtf8ByteArray(ee))}},Bt=class{static EOF(){return-8}constructor(){this.end=0}canCheckPrefix(){return!0}endPos(){return this.end}hasString(){return!1}hasAnyString(){return!1}prefixLength(){return 0}},lt=class extends Bt{constructor(ee,te=0,ne=ee.length){super(),this.bytes=ee,this.start=te,this.end=ne}hasString(ee,te){const ne=ee.bytes;if(0===ne.length)return!0;const re=this.indexOf(this.bytes,ne,this.start+te);return-1!==re&&re<=this.end-ne.length}hasAnyString(ee,te){return!!ee.ac8&&ee.ac8.searchUTF8(this.bytes,this.start+te,this.end)}step(ee){if((ee+=this.start)>=this.end)return Bt.EOF();const te=255&this.bytes[ee];if(te<128)return te<<3|1;if(te>=194&&te<=223&&ee+1<this.end){const ne=255&this.bytes[ee+1];return 128!=(192&ne)?te<<3|1:((31&te)<<6|63&ne)<<3|2}if(te>=224&&te<=239&&ee+2<this.end){const ne=255&this.bytes[ee+1];if(128!=(192&ne))return te<<3|1;const re=255&this.bytes[ee+2];return 128!=(192&re)?te<<3|1:((15&te)<<12|(63&ne)<<6|63&re)<<3|3}if(te>=240&&te<=244&&ee+3<this.end){const ne=255&this.bytes[ee+1];if(128!=(192&ne))return te<<3|1;const re=255&this.bytes[ee+2];if(128!=(192&re))return te<<3|1;const se=255&this.bytes[ee+3];return 128!=(192&se)?te<<3|1:((7&te)<<18|(63&ne)<<12|(63&re)<<6|63&se)<<3|4}return te<<3|1}index(ee,te){te+=this.start;const ne=this.indexOf(this.bytes,ee.prefixUTF8,te);return ne<0?ne:ne-te}context(ee){let te=-1;if((ee+=this.start)>this.start&&ee<=this.end){let ne=ee-1;if(te=this.bytes[ne--],te>=128){let re=ee-4;for(re<this.start&&(re=this.start);ne>=re&&128==(192&this.bytes[ne]);)ne--;ne<this.start&&(ne=this.start),te=this.step(ne-this.start)>>3}}const ne=ee<this.end?this.step(ee-this.start)>>3:-1;return st.emptyOpContext(te,ne)}indexOf(ee,te,ne=0){let re=te.length;if(0===re)return ne<=this.end?ne:-1;const se=te[0];let ie=this.end-re;const ae="function"==typeof ee.indexOf;let oe=ne;for(;oe<=ie;){if(ae){if(oe=ee.indexOf(se,oe),-1===oe||oe>ie)return-1}else{for(;oe<=ie&&ee[oe]!==se;)oe++;if(oe>ie)return-1}let ne=!0;for(let se=1;se<re;se++)if(ee[oe+se]!==te[se]){ne=!1;break}if(ne)return oe;oe++}return-1}prefixLength(ee){return ee.prefixUTF8.length}},ct=class extends Bt{constructor(ee,te=0,ne=ee.length){super(),this.charSequence=ee,this.start=te,this.end=ne}hasString(ee,te){const ne=this.charSequence.indexOf(ee.str,this.start+te);return-1!==ne&&ne<=this.end-ee.str.length}hasAnyString(ee,te){return!!ee.ac16&&ee.ac16.searchUTF16(this.charSequence,this.start+te,this.end)}step(ee){if((ee+=this.start)>=this.end)return Bt.EOF();const te=this.charSequence.charCodeAt(ee);if(te<et.MIN_HIGH_SURROGATE||te>et.MAX_HIGH_SURROGATE||ee+1>=this.end)return te<<3|1;const ne=this.charSequence.charCodeAt(ee+1);return ne>=et.MIN_LOW_SURROGATE&&ne<=et.MAX_LOW_SURROGATE?1024*(te-et.MIN_HIGH_SURROGATE)+(ne-et.MIN_LOW_SURROGATE)+et.MIN_SUPPLEMENTARY_CODE_POINT<<3|2:te<<3|1}index(ee,te){te+=this.start;const ne=this.charSequence.indexOf(ee.prefix,te);return ne<0||ne>this.end-ee.prefix.length?-1:ne-te}context(ee){const te=(ee+=this.start)>this.start&&ee<=this.end?this.charSequence.charCodeAt(ee-1):-1,ne=ee<this.end?this.charSequence.charCodeAt(ee):-1;return st.emptyOpContext(te,ne)}prefixLength(ee){return ee.prefix.length}},_t=class{static fromUTF8(ee,te=0,ne=ee.length){return new lt(ee,te,ne)}static fromUTF16(ee,te=0,ne=ee.length){return new ct(ee,te,ne)}},ht=class extends Error{constructor(ee){super(ee),this.name="RE2JSException"}},dt=class extends ht{constructor(ee,te=null){let ne=`error parsing regexp: ${ee}`;te&&(ne+=`: \`${te}\``),super(ne),this.name="RE2JSSyntaxException",this.message=ne,this.error=ee,this.input=te}getDescription(){return this.error}getPattern(){return this.input}},Et=class extends ht{constructor(ee){super(ee),this.name="RE2JSCompileException"}},Ct=class extends ht{constructor(ee){super(ee),this.name="RE2JSGroupException"}},pt=class extends ht{constructor(ee){super(ee),this.name="RE2JSFlagsException"}},mt=class extends ht{constructor(ee){super(ee),this.name="RE2JSInternalException"}},ft=(ye=class Matcher{static quoteReplacement(ee,te=!1){return te?ee.indexOf("\\")<0&&ee.indexOf("$")<0?ee:ee.split("").map((ee=>{const te=ee.codePointAt(0);return te===We.CODES.get("\\")||te===We.CODES.get("$")?`\\${ee}`:ee})).join(""):ee.indexOf("$")<0?ee:ee.split("").map((ee=>ee.codePointAt(0)===We.CODES.get("$")?"$$":ee)).join("")}constructor(ee,te){if(null===ee)throw new Error("pattern is null");this.patternInput=ee;const ne=this.patternInput.re2();this.patternGroupCount=ne.numberOfCapturingGroups(),this.groups=[],this.namedGroups=ne.namedGroups,this.numberOfInstructions=ne.numberOfInstructions(),te instanceof it?this.resetMatcherInput(te):st.isByteArray(te)?this.resetMatcherInput(ut.utf8(te)):this.resetMatcherInput(ut.utf16(te))}pattern(){return this.patternInput}reset(){return this.matcherInputLength=this.matcherInput.length(),this.appendPos=0,this.hasMatch=!1,this.hasGroups=!1,this.anchorFlag=0,this}resetMatcherInput(ee){if(null===ee)throw new Error("input is null");return this.matcherInput=ee,this.reset(),this}start(ee=0){if("string"==typeof ee){const te=this.namedGroups[ee];if(!Number.isFinite(te))throw new Ct(`group '${ee}' not found`);ee=te}return this.loadGroup(ee),this.groups[2*ee]}end(ee=0){if("string"==typeof ee){const te=this.namedGroups[ee];if(!Number.isFinite(te))throw new Ct(`group '${ee}' not found`);ee=te}return this.loadGroup(ee),this.groups[2*ee+1]}programSize(){return this.numberOfInstructions}group(ee=0){if("string"==typeof ee){const te=this.namedGroups[ee];if(!Number.isFinite(te))throw new Ct(`group '${ee}' not found`);ee=te}const te=this.start(ee),ne=this.end(ee);return te<0&&ne<0?null:this.substring(te,ne)}getNamedGroups(){if(!this.hasMatch)throw new Ct("perhaps no match attempted");const ee=Object.create(null);for(const te of Object.keys(this.namedGroups))ee[te]=this.group(te);return ee}groupCount(){return this.patternGroupCount}loadGroup(ee){if(ee<0||ee>this.patternGroupCount)throw new Ct(`Group index out of bounds: ${ee}`);if(!this.hasMatch)throw new Ct("perhaps no match attempted");if(0===ee||this.hasGroups)return;const te=this.matcherInputLength,ne=this.patternInput.re2().matchMachineInput(this.matcherInput,this.groups[0],te,this.anchorFlag,1+this.patternGroupCount);if(!ne[0])throw new Ct("inconsistency in matching group data");this.groups=ne[1],this.hasGroups=!0}matches(){return this.genMatch(0,Me.ANCHOR_BOTH)}lookingAt(){return this.genMatch(0,Me.ANCHOR_START)}find(ee=null){if(null!==ee){if(ee<0||ee>this.matcherInputLength)throw new Ct(`start index out of bounds: ${ee}`);return this.reset(),this.genMatch(ee,0)}if(ee=0,this.hasMatch&&(ee=this.groups[1],this.groups[0]===this.groups[1])){const te=(this.matcherInput.isUTF16Encoding()?_t.fromUTF16(this.matcherInput.asCharSequence(),0,this.matcherInputLength):_t.fromUTF8(this.matcherInput.asBytes(),0,this.matcherInputLength)).step(ee);te<0?ee++:ee+=7&te}return this.genMatch(ee,Me.UNANCHORED)}genMatch(ee,te){const ne=this.patternInput.re2().matchMachineInput(this.matcherInput,ee,this.matcherInputLength,te,1);return!!ne[0]&&(this.groups=ne[1],this.hasMatch=!0,this.hasGroups=0===this.patternGroupCount,this.anchorFlag=te,!0)}substring(ee,te){return this.matcherInput.isUTF8Encoding()?st.utf8ByteArrayToString(this.matcherInput.asBytes().slice(ee,te)):this.matcherInput.asCharSequence().substring(ee,te).toString()}inputLength(){return this.matcherInputLength}appendReplacement(ee,te=!1){let ne="";const re=this.start(),se=this.end();return this.appendPos<re&&(ne+=this.substring(this.appendPos,re)),this.appendPos=se,ne+=te?this.appendReplacementInternalJava(ee):this.appendReplacementInternalJs(ee),ne}appendReplacementInternalJava(ee){let te="",ne=0;const re=ee.length;for(let se=0;se<re-1;se++)if(ee.codePointAt(se)!==We.CODES.get("\\")){if(ee.codePointAt(se)===We.CODES.get("$")){let ie=ee.codePointAt(se+1);if(We.CODES.get("0")<=ie&&ie<=We.CODES.get("9")){let ae=ie-We.CODES.get("0");for(ne<se&&(te+=ee.substring(ne,se)),se+=2;se<re&&(ie=ee.codePointAt(se),!(ie<We.CODES.get("0")||ie>We.CODES.get("9")||10*ae+ie-We.CODES.get("0")>this.patternGroupCount));se++)ae=10*ae+ie-We.CODES.get("0");if(ae>this.patternGroupCount)throw new Ct(`n > number of groups: ${ae}`);const oe=this.group(ae);null!==oe&&(te+=oe),ne=se,se--;continue}if(ie===We.CODES.get("{")){ne<se&&(te+=ee.substring(ne,se)),se++;let re=se+1;for(;re<ee.length&&ee.codePointAt(re)!==We.CODES.get("}")&&ee.codePointAt(re)!==We.CODES.get(" ");)re++;if(re===ee.length||ee.codePointAt(re)!==We.CODES.get("}"))throw new Ct("named capture group is missing trailing '}'");const ie=ee.substring(se+1,re),ae=this.group(ie);null!==ae&&(te+=ae),ne=re+1,se=re;continue}}}else ne<se&&(te+=ee.substring(ne,se)),se++,ne=se;return ne<re&&(te+=ee.substring(ne,re)),te}appendReplacementInternalJs(ee){let te="",ne=0;const re=ee.length;for(let se=0;se<re-1;se++)if(ee.codePointAt(se)===We.CODES.get("$")){let ie=ee.codePointAt(se+1);if(We.CODES.get("$")===ie){ne<se&&(te+=ee.substring(ne,se)),te+="$",se++,ne=se+1;continue}if(We.CODES.get("&")===ie){ne<se&&(te+=ee.substring(ne,se));const re=this.group(0);te+=null!==re?re:"$&",se++,ne=se+1;continue}if(We.CODES.get("`")===ie){ne<se&&(te+=ee.substring(ne,se)),te+=this.substring(0,this.start(0)),se++,ne=se+1;continue}if(We.CODES.get("'")===ie){ne<se&&(te+=ee.substring(ne,se)),te+=this.substring(this.end(0),this.matcherInputLength),se++,ne=se+1;continue}if(We.CODES.get("1")<=ie&&ie<=We.CODES.get("9")){let ae=ie-We.CODES.get("0");for(ne<se&&(te+=ee.substring(ne,se)),se+=2;se<re&&(ie=ee.codePointAt(se),!(ie<We.CODES.get("0")||ie>We.CODES.get("9")||10*ae+ie-We.CODES.get("0")>this.patternGroupCount));se++)ae=10*ae+ie-We.CODES.get("0");if(ae>this.patternGroupCount){te+=`$${ae}`,ne=se,se--;continue}const oe=this.group(ae);null!==oe&&(te+=oe),ne=se,se--;continue}if(ie===We.CODES.get("<")){ne<se&&(te+=ee.substring(ne,se)),se++;let re=se+1;for(;re<ee.length&&ee.codePointAt(re)!==We.CODES.get(">")&&ee.codePointAt(re)!==We.CODES.get(" ");)re++;if(re===ee.length||ee.codePointAt(re)!==We.CODES.get(">")){te+=ee.substring(se-1,re+1),ne=re+1,se=re;continue}const ie=ee.substring(se+1,re);if(Object.prototype.hasOwnProperty.call(this.namedGroups,ie)){const ee=this.group(ie);null!==ee&&(te+=ee)}else te+=`$<${ie}>`;ne=re+1,se=re;continue}}return ne<re&&(te+=ee.substring(ne,re)),te}appendTail(){return this.substring(this.appendPos,this.matcherInputLength)}replaceAll(ee,te=!1){return this.replace(ee,!0,te)}replaceFirst(ee,te=!1){return this.replace(ee,!1,te)}replace(ee,te=!0,ne=!1){let re="";this.reset();const se="function"==typeof ee,ie=Object.keys(this.namedGroups).length>0;let ae=null;if(se){if(this.groupCount()>=ye.MAX_REPLACER_ARGS)throw new Ct("Too many capture groups to safely invoke replacer function");ae=this.matcherInput.isUTF8Encoding()?this.matcherInput.asBytes():this.matcherInput.asCharSequence()}for(;this.find()&&(re+=se?this.appendReplacementFunc(ee,ie,ae):this.appendReplacement(ee,ne),te););return re+=this.appendTail(),re}appendReplacementFunc(ee,te,ne){let re="";const se=this.start(),ie=this.end();this.appendPos<se&&(re+=this.substring(this.appendPos,se)),this.appendPos=ie;const ae=this.buildReplacerArgs(se,te,ne);return re+=String(ee(...ae)),re}buildReplacerArgs(ee,te,ne){const re=[this.group(0)],se=this.groupCount();for(let ee=1;ee<=se;ee++){const te=this.start(ee);te<0?re.push(void 0):re.push(this.substring(te,this.end(ee)))}if(re.push(ee),re.push(ne),te){const ee=this.getNamedGroups();for(const te in ee)null===ee[te]&&(ee[te]=void 0);re.push(ee)}return re}},ye.MAX_REPLACER_ARGS=65535,ye),gt=(we=class Inst{static isRuneOp(ee){return we.RUNE<=ee&&ee<=we.RUNE_ANY_NOT_NL}static escapeRunes(ee){let te='"';for(let ne of ee)te+=st.escapeRune(ne);return te+='"',te}constructor(ee){this.op=ee,this.out=0,this.arg=0,this.runes=[],this.next=null}matchRune(ee){if(1===this.runes.length){const te=this.runes[0];return this.arg&Me.FOLD_CASE?et.equalsIgnoreCase(te,ee):ee===te}const te=this.runes.length;if(0===te)return!1;if(2===te||4===te||6===te||8===te){for(let ne=0;ne<te;ne+=2){if(ee<this.runes[ne])return!1;if(ee<=this.runes[ne+1])return!0}return!1}let ne=0,re=te>>1;for(;re>1;){const te=re>>1;ne+=this.runes[ne+te<<1]<=ee?te:0,re-=te}ne+=this.runes[ne<<1]<=ee?1:0;const se=ne-1;return se>=0&&ee<=this.runes[se<<1|1]}matchRunePos(ee){if(1===this.runes.length){const te=this.runes[0];return this.arg&Me.FOLD_CASE?et.equalsIgnoreCase(te,ee)?0:-1:ee===te?0:-1}const te=this.runes.length;if(0===te)return-1;if(2===te||4===te||6===te||8===te){for(let ne=0;ne<te;ne+=2){if(ee<this.runes[ne])return-1;if(ee<=this.runes[ne+1])return Math.floor(ne/2)}return-1}let ne=0,re=te>>1;for(;re>1;){const te=re>>1;ne+=this.runes[ne+te<<1]<=ee?te:0,re-=te}ne+=this.runes[ne<<1]<=ee?1:0;const se=ne-1;return se>=0&&ee<=this.runes[se<<1|1]?se:-1}toString(){switch(this.op){case we.ALT:return`alt -> ${this.out}, ${this.arg}`;case we.ALT_MATCH:return`altmatch -> ${this.out}, ${this.arg}`;case we.CAPTURE:return`cap ${this.arg} -> ${this.out}`;case we.EMPTY_WIDTH:return`empty ${this.arg} -> ${this.out}`;case we.MATCH:return"match"+(0!==this.arg?` ${this.arg}`:"");case we.FAIL:return"fail";case we.NOP:return`nop -> ${this.out}`;case we.LB_WRITE:return`lbwrite ${this.arg} -> ${this.out}`;case we.LB_CHECK:return`lbcheck ${this.arg} -> ${this.out}`;case we.RUNE:return null===this.runes?"rune <null>":["rune ",we.escapeRunes(this.runes),this.arg&Me.FOLD_CASE?"/i":""," -> ",this.out].join("");case we.RUNE1:return`rune1 ${we.escapeRunes(this.runes)} -> ${this.out}`;case we.RUNE_ANY:return`any -> ${this.out}`;case we.RUNE_ANY_NOT_NL:return`anynotnl -> ${this.out}`;default:throw new Error("unhandled case in Inst.toString")}}},we.ALT=1,we.ALT_MATCH=2,we.CAPTURE=3,we.EMPTY_WIDTH=4,we.FAIL=5,we.MATCH=6,we.NOP=7,we.RUNE=8,we.RUNE1=9,we.RUNE_ANY=10,we.RUNE_ANY_NOT_NL=11,we.LB_WRITE=12,we.LB_CHECK=13,we),Tt=class{constructor(){this.inst=null,this.cap=null}},It=class{constructor(ee){this.sparse=new Int32Array(ee),this.densePcs=new Int32Array(ee),this.denseThreads=new Array(ee),this.size=0}contains(ee){const te=this.sparse[ee];return te<this.size&&this.densePcs[te]===ee}isEmpty(){return 0===this.size}add(ee){const te=this.size++;return this.sparse[ee]=te,this.denseThreads[te]=null,this.densePcs[te]=ee,te}clear(){for(let ee=0;ee<this.size;ee++)this.denseThreads[ee]=null;this.size=0}toString(){let ee="{";for(let te=0;te<this.size;te++)0!==te&&(ee+=", "),ee+=this.densePcs[te];return ee+="}",ee}},At=(be=class Machine{static fromRE2(ee){const te=new be;return te.prog=ee.prog,te.re2=ee,te.q0=new It(te.prog.numInst()),te.q1=new It(te.prog.numInst()),te.pool=[],te.poolSize=0,te.matched=!1,te.matchcap=new Int32Array(te.prog.numCap<2?2:te.prog.numCap),te.ncap=0,te}static fromMachine(ee){return be.fromRE2(ee.re2)}constructor(){this.prog=null,this.re2=null,this.q0=null,this.q1=null,this.pool=[],this.poolSize=0,this.matched=!1,this.matchcap=null,this.ncap=0,this.lbTable=null}init(ee){this.ncap=ee,ee>this.matchcap.length?this.initNewCap(ee):this.resetCap(),this.prog.numLb>0&&((!this.lbTable||this.lbTable.length<this.prog.numLb+1)&&(this.lbTable=new Int32Array(this.prog.numLb+1)),this.lbTable.fill(-1))}resetCap(){for(let ee=0;ee<this.poolSize;ee++)this.pool[ee].cap.fill(-1)}initNewCap(ee){for(let te=0;te<this.poolSize;te++){this.pool[te].cap=new Int32Array(ee).fill(-1)}this.matchcap=new Int32Array(ee).fill(-1)}submatches(){return 0===this.ncap?st.emptyInts():st.toArray(this.matchcap.subarray(0,this.ncap))}alloc(ee){if(0===this.poolSize){const ee=this.matchcap.length;for(let te=0;te<be.THREADS_CHUNK_SIZE;te++){const te=new Tt;te.cap=new Int32Array(ee),this.pool[this.poolSize++]=te}}this.poolSize--;const te=this.pool[this.poolSize];return te.inst=ee,te}freeQueue(ee,te=0){for(let ne=te;ne<ee.size;ne++){const te=ee.denseThreads[ne];null!==te&&(this.pool[this.poolSize++]=te)}ee.clear()}freeThread(ee){this.pool[this.poolSize++]=ee}match(ee,te,ne){const re=this.re2.cond;if(re===st.EMPTY_ALL)return!1;if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return!1;this.matched=!1,this.matchcap.fill(-1);let se,ie=this.prog.numLb>0?0:te,ae=te,oe=this.q0,ue=this.q1,Be=ee.step(ie),le=Be>>3,ce=7&Be,_e=-1,he=0;for(Be!==Bt.EOF()&&(Be=ee.step(ie+ce),_e=Be>>3,he=7&Be),se=0===ie?st.emptyOpContext(-1,le):ee.context(ie);;){if(oe.isEmpty()){if(re&st.EMPTY_BEGIN_TEXT&&0!==ie)break;if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==ie)break;if(this.matched)break;if(0===this.prog.numLb&&0!==this.re2.prefix.length&&_e!==this.re2.prefixRune&&ee.canCheckPrefix()){const te=ee.index(this.re2,ie);if(te<0)break;ie+=te,Be=ee.step(ie),le=Be>>3,ce=7&Be,Be=ee.step(ie+ce),_e=Be>>3,he=7&Be}}if(0===ie&&this.prog.numLb>0)for(let ee=0;ee<this.prog.lbStarts.length;ee++)this.add(oe,this.prog.lbStarts[ee],ie,this.matchcap,se,null);this.matched||0!==ie&&ne!==Me.UNANCHORED||ie>=ae&&(this.ncap>0&&(this.matchcap[0]=ie),this.add(oe,this.prog.start,ie,this.matchcap,se,null));const te=ie+ce;if(se=ee.context(te),this.step(oe,ue,ie,te,le,se,ne,ie===ee.endPos()),0===ce)break;if(0===this.ncap&&this.matched)break;ie+=ce,le=_e,ce=he,-1!==le&&(Be=ee.step(ie+ce),_e=Be>>3,he=7&Be);const de=oe;oe=ue,ue=de}return this.freeQueue(ue),this.matched}matchSet(ee,te,ne){const re=this.re2.cond;if(re===st.EMPTY_ALL)return[];if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return[];let se=this.prog.numLb>0?0:te,ie=te,ae=this.q0,oe=this.q1,ue=ee.step(se),Be=ue>>3,le=7&ue,ce=-1,_e=0;ue!==Bt.EOF()&&(ue=ee.step(se+le),ce=ue>>3,_e=7&ue);let he=0===se?st.emptyOpContext(-1,Be):ee.context(se);const de=new Set;for(;;){if(ae.isEmpty()){if(re&st.EMPTY_BEGIN_TEXT&&0!==se)break;if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==se)break}if(0===se&&this.prog.numLb>0)for(let ee=0;ee<this.prog.lbStarts.length;ee++)this.add(ae,this.prog.lbStarts[ee],se,this.matchcap,he,null);0!==se&&ne!==Me.UNANCHORED||se>=ie&&this.add(ae,this.prog.start,se,this.matchcap,he,null);const te=se+le;he=ee.context(te);for(let re=0;re<ae.size;re++){let ie=ae.denseThreads[re];if(null===ie)continue;const ue=ie.inst;let le=!1;switch(ue.op){case gt.MATCH:if(ne===Me.ANCHOR_BOTH&&se!==ee.endPos())break;de.add(ue.arg);break;case gt.RUNE:le=ue.matchRune(Be);break;case gt.RUNE1:le=Be===ue.runes[0];break;case gt.RUNE_ANY:le=!0;break;case gt.RUNE_ANY_NOT_NL:le=Be!==We.CODES.get("\n");break;default:throw new mt("bad inst")}le&&(ie=this.add(oe,ue.out,te,ie.cap,he,ie)),null!==ie&&(this.freeThread(ie),ae.denseThreads[re]=null)}if(ae.clear(),0===le)break;se+=le,Be=ce,le=_e,-1!==Be&&(ue=ee.step(se+le),ce=ue>>3,_e=7&ue);const Ee=ae;ae=oe,oe=Ee}return this.freeQueue(oe),Array.from(de).sort(((ee,te)=>ee-te))}step(ee,te,ne,re,se,ie,ae,oe){const ue=this.re2.longest;for(let Be=0;Be<ee.size;Be++){let le=ee.denseThreads[Be];if(null===le)continue;if(ue&&this.matched&&this.ncap>0&&this.matchcap[0]<le.cap[0]){this.freeThread(le);continue}const ce=le.inst;let _e=!1;switch(ce.op){case gt.MATCH:if(ae===Me.ANCHOR_BOTH&&!oe)break;this.ncap>0&&(!ue||!this.matched||this.matchcap[1]<ne)&&(le.cap[1]=ne,this.matchcap.set(le.cap.subarray(0,this.ncap))),ue||this.freeQueue(ee,Be+1),this.matched=!0;break;case gt.RUNE:_e=ce.matchRune(se);break;case gt.RUNE1:_e=se===ce.runes[0];break;case gt.RUNE_ANY:_e=!0;break;case gt.RUNE_ANY_NOT_NL:_e=se!==We.CODES.get("\n");break;default:throw new mt("bad inst")}_e&&(le=this.add(te,ce.out,re,le.cap,ie,le)),null!==le&&(this.freeThread(le),ee.denseThreads[Be]=null)}ee.clear()}add(ee,te,ne,re,se,ie){for(;;){if(0===te)return ie;if(ee.contains(te))return ie;const ae=ee.add(te),oe=this.prog.inst[te];switch(oe.op){case gt.FAIL:return ie;case gt.ALT:case gt.ALT_MATCH:ie=this.add(ee,oe.out,ne,re,se,ie),te=oe.arg;continue;case gt.EMPTY_WIDTH:if(!(oe.arg&~se)){te=oe.out;continue}return ie;case gt.NOP:te=oe.out;continue;case gt.CAPTURE:if(oe.arg<this.ncap){const te=re[oe.arg];return re[oe.arg]=ne,this.add(ee,oe.out,ne,re,se,null),re[oe.arg]=te,ie}te=oe.out;continue;case gt.LB_WRITE:this.lbTable[Math.abs(oe.arg)]=ne,te=oe.out;continue;case gt.LB_CHECK:if(oe.arg>0){if(this.lbTable[oe.arg]===ne){te=oe.out;continue}}else if(this.lbTable[-oe.arg]!==ne){te=oe.out;continue}return ie;case gt.MATCH:case gt.RUNE:case gt.RUNE1:case gt.RUNE_ANY:case gt.RUNE_ANY_NOT_NL:if(null===ie?ie=this.alloc(oe):ie.inst=oe,this.ncap>0&&ie.cap!==re)for(let ee=0;ee<this.ncap;ee++)ie.cap[ee]=re[ee];return ee.denseThreads[ae]=ie,ie=null;default:throw new Error("unhandled")}}}},be.THREADS_CHUNK_SIZE=128,be);const hashPCs=ee=>{let te=-2128831035;for(let ne=0;ne<ee.length;ne++)te^=ee[ne],te=Math.imul(te,16777619);return te},arraysEqual=(ee,te)=>{if(ee.length!==te.length)return!1;for(let ne=0;ne<ee.length;ne++)if(ee[ne]!==te[ne])return!1;return!0};var Pt=class{constructor(ee,te,ne=[]){this.nfaStates=ee,this.isMatch=te,this.matchIDs=ne,this.nextLatin1=new Array(et.MAX_LATIN1+1).fill(null),this.nextLatin1Anchored=new Array(et.MAX_LATIN1+1).fill(null),this.transKeys=[],this.transVals=[],this.lastSeen=0}},Rt=(Se=class DFA{constructor(ee,te=8388608){this.prog=ee,this.stateCache=new Map,this.stateCount=0,this.startState=null,this.stateLimit=Math.max(1,Math.floor(te/Se.STATE_MEMORY_ESTIMATE)),this.cacheClears=0,this.failed=!1,this.clock=0}computeClosure(ee){const te=new Set,ne=[...ee];let re=!1;const se=[];for(;ne.length>0;){const ee=ne.pop();if(te.has(ee))continue;te.add(ee);const ie=this.prog.getInst(ee);switch(ie.op){case gt.MATCH:re=!0,se.includes(ie.arg)||se.push(ie.arg);break;case gt.ALT:case gt.ALT_MATCH:ne.push(ie.out),ne.push(ie.arg);break;case gt.NOP:case gt.CAPTURE:ne.push(ie.out);break;case gt.EMPTY_WIDTH:case gt.LB_WRITE:case gt.LB_CHECK:return null}}const ie=Int32Array.from(te).sort();return se.sort(((ee,te)=>ee-te)),{pcs:ie,isMatch:re,matchIDs:se}}getState(ee){const te=this.computeClosure(ee);if(!te)return null;const ne=te.pcs,re=hashPCs(ne);let se=this.stateCache.get(re);if(se)for(let ee=0;ee<se.length;ee++){const te=se[ee];if(arraysEqual(te.nfaStates,ne))return te.lastSeen=++this.clock,te}else se=[],this.stateCache.set(re,se);if(this.failed)return null;if(this.stateCount>=this.stateLimit){if(this.cacheClears++,this.cacheClears>=Se.MAX_CACHE_CLEARS)return this.failed=!0,this.stateCache.clear(),this.stateCount=0,this.startState=null,null;this.evictCache(),se=this.stateCache.get(re),se||(se=[],this.stateCache.set(re,se))}const ie=new Pt(ne,te.isMatch,te.matchIDs);return ie.lastSeen=++this.clock,se.push(ie),this.stateCount++,ie}evictCache(){const ee=[];for(const te of this.stateCache.values())for(let ne=0;ne<te.length;ne++)ee.push(te[ne]);ee.sort(((ee,te)=>ee.lastSeen-te.lastSeen));const te=Math.max(1,Math.floor(this.stateLimit/2)),ne=ee.length-te,re=ee.slice(ne),se=new Set(re);this.stateCache.clear(),this.stateCount=0;for(let ee=0;ee<re.length;ee++){const te=re[ee];te.nextLatin1.fill(null),te.nextLatin1Anchored.fill(null),te.transKeys.length=0,te.transVals.length=0;const ne=hashPCs(te.nfaStates);let se=this.stateCache.get(ne);se||(se=[],this.stateCache.set(ne,se)),se.push(te),this.stateCount++}this.startState&&!se.has(this.startState)&&(this.startState=null)}step(ee,te,ne){if(te<=et.MAX_LATIN1)if(ne===Me.UNANCHORED){const ne=ee.nextLatin1[te];if(null!==ne)return ne}else{const ne=ee.nextLatin1Anchored[te];if(null!==ne)return ne}else{const re=te+(ne===Me.UNANCHORED?0:et.MAX_RUNE+1),se=ee.transKeys,ie=se.length;for(let te=0;te<ie;te++)if(se[te]===re)return ee.transVals[te]}const re=[];for(let ne=0;ne<ee.nfaStates.length;ne++){const se=ee.nfaStates[ne],ie=this.prog.getInst(se);gt.isRuneOp(ie.op)&&ie.matchRune(te)&&re.push(ie.out)}ne===Me.UNANCHORED&&re.push(this.prog.start);const se=this.getState(re);if(te<=et.MAX_LATIN1)ne===Me.UNANCHORED?ee.nextLatin1[te]=se:ee.nextLatin1Anchored[te]=se;else{const re=te+(ne===Me.UNANCHORED?0:et.MAX_RUNE+1);ee.transKeys.push(re),ee.transVals.push(se)}return se}match(ee,te,ne){if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return!1;if(!this.startState&&(this.startState=this.getState([this.prog.start]),!this.startState))return null;let re=ee.endPos(),se=this.startState;if(se.isMatch){if(ne!==Me.ANCHOR_BOTH)return!0;if(te===re)return!0}let ie=te;for(;ie<re;){const te=ee.step(ie),ae=te>>3,oe=7&te;if(0===oe)break;if(se=ne===Me.UNANCHORED&&ae<=et.MAX_LATIN1&&se.nextLatin1[ae]||this.step(se,ae,ne),null===se)return null;if(se.lastSeen=++this.clock,se.isMatch){if(ne!==Me.ANCHOR_BOTH)return!0;if(ie+oe===re)return!0}if(0===se.nfaStates.length&&ne!==Me.UNANCHORED)return!1;ie+=oe}return!1}matchSet(ee,te,ne){if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return[];if(!this.startState&&(this.startState=this.getState([this.prog.start]),!this.startState))return null;let re=ee.endPos(),se=this.startState;const ie=new Set,checkMatch=(ee,te)=>{ee.isMatch&&(ne===Me.ANCHOR_BOTH?te===re&&ee.matchIDs.forEach((ee=>ie.add(ee))):ee.matchIDs.forEach((ee=>ie.add(ee))))};checkMatch(se,te);let ae=te;for(;ae<re;){const te=ee.step(ae),re=te>>3,ie=7&te;if(0===ie)break;if(se=ne===Me.UNANCHORED&&re<=et.MAX_LATIN1&&se.nextLatin1[re]||this.step(se,re,ne),null===se)return null;if(se.lastSeen=++this.clock,ae+=ie,checkMatch(se,ae),0===se.nfaStates.length&&ne!==Me.UNANCHORED)break}return Array.from(ie).sort(((ee,te)=>ee-te))}},Se.MAX_CACHE_CLEARS=5,Se.STATE_MEMORY_ESTIMATE=838,Se);var Vt=class{constructor(){this.end=0,this.cap=new Int32Array(0),this.matchcap=new Int32Array(0),this.ncap=0,this.jobPc=new Int32Array(256),this.jobArg=new Uint8Array(256),this.jobPos=new Int32Array(256),this.jobLen=0,this.visited=new Uint32Array(0)}reset(ee,te,ne){this.end=te,this.jobLen=0,this.ncap=ne;const re=ee.numInst()*(te+1)+32-1>>>5;this.visited.length<re?this.visited=new Uint32Array(re):this.visited.fill(0,0,re),this.cap.length<ne?this.cap=new Int32Array(ne).fill(-1):this.cap.fill(-1,0,ne),this.matchcap.length<ne?this.matchcap=new Int32Array(ne).fill(-1):this.matchcap.fill(-1,0,ne)}shouldVisit(ee,te){const ne=ee*(this.end+1)+te,re=ne>>>5,se=1<<(31&ne);return!(this.visited[re]&se)&&(this.visited[re]|=se,!0)}push(ee,te,ne,re){if(ee.prog.getInst(te).op!==gt.FAIL&&(re||this.shouldVisit(te,ne))){if(this.jobLen>=this.jobPc.length){const ee=2*this.jobPc.length,te=new Int32Array(ee);te.set(this.jobPc),this.jobPc=te;const ne=new Uint8Array(ee);ne.set(this.jobArg),this.jobArg=ne;const re=new Int32Array(ee);re.set(this.jobPos),this.jobPos=re}this.jobPc[this.jobLen]=te,this.jobArg[this.jobLen]=re?1:0,this.jobPos[this.jobLen]=ne,this.jobLen++}}tryBacktrack(ee,te,ne,re,se){const ie=ee.longest;for(this.push(ee,ne,re,!1);this.jobLen>0;){this.jobLen--;let ne=this.jobPc[this.jobLen],re=1===this.jobArg[this.jobLen],ae=this.jobPos[this.jobLen],oe=!0;for(;oe||this.shouldVisit(ne,ae);){oe=!1;const ue=ee.prog.getInst(ne);switch(ue.op){case gt.FAIL:throw new mt("unexpected InstFail");case gt.ALT:if(re){re=!1,ne=ue.arg;continue}this.push(ee,ne,ae,!0),ne=ue.out;continue;case gt.ALT_MATCH:{const te=ee.prog.getInst(ue.out);if(gt.isRuneOp(te.op)){this.push(ee,ue.arg,ae,!1),ne=ue.arg,ae=this.end;continue}this.push(ee,ue.out,this.end,!1),ne=ue.out;continue}case gt.RUNE:{const ee=te.step(ae);if(ee===Bt.EOF())break;if(!ue.matchRune(ee>>3))break;ae+=7&ee,ne=ue.out;continue}case gt.RUNE1:{const ee=te.step(ae);if(ee===Bt.EOF())break;if(ee>>3!==ue.runes[0])break;ae+=7&ee,ne=ue.out;continue}case gt.RUNE_ANY_NOT_NL:{const ee=te.step(ae);if(ee===Bt.EOF())break;if(ee>>3==10)break;ae+=7&ee,ne=ue.out;continue}case gt.RUNE_ANY:{const ee=te.step(ae);if(ee===Bt.EOF())break;ae+=7&ee,ne=ue.out;continue}case gt.CAPTURE:if(re){this.cap[ue.arg]=ae;break}ue.arg<this.ncap&&(this.push(ee,ne,this.cap[ue.arg],!0),this.cap[ue.arg]=ae),ne=ue.out;continue;case gt.EMPTY_WIDTH:{const ee=te.context(ae);if(ue.arg&~ee)break;ne=ue.out;continue}case gt.NOP:ne=ue.out;continue;case gt.MATCH:{if(se===Me.ANCHOR_BOTH&&ae!==this.end)break;if(0===this.ncap)return!0;this.ncap>1&&(this.cap[1]=ae);const ee=this.matchcap[1];if((-1===ee||ie&&ae>0&&ae>ee)&&this.matchcap.set(this.cap),!ie)return!0;if(ae===this.end)return!0;break}case gt.LB_WRITE:case gt.LB_CHECK:throw new mt("Backtracker cannot evaluate Lookbehind instructions");default:throw new mt("bad inst")}break}}return ie&&this.matchcap.length>1&&this.matchcap[1]>=0}};const Dt=[];var yt=class Backtracker{static shouldBacktrack(ee){return ee.numInst()<=500}static maxBitStateLen(ee){return Backtracker.shouldBacktrack(ee)?Math.floor(262144/ee.numInst()):0}static execute(ee,te,ne,re,se){const ie=ee.cond;if(ie===st.EMPTY_ALL)return null;if((re===Me.ANCHOR_START||re===Me.ANCHOR_BOTH)&&0!==ne)return null;if(ie&st.EMPTY_BEGIN_TEXT&&0!==ne)return null;const ae=Dt.length>0?Dt.pop():new Vt,oe=te.endPos();ae.reset(ee.prog,oe,se);let ue=!1;if(ie&st.EMPTY_BEGIN_TEXT||re===Me.ANCHOR_START||re===Me.ANCHOR_BOTH)ae.ncap>0&&(ae.cap[0]=ne),ae.tryBacktrack(ee,te,ee.prog.start,ne,re)&&(ue=!0);else{let se=-1;for(;ne<=oe&&0!==se;ne+=se){if(ee.prefix.length>0){const re=te.index(ee,ne);if(re<0)break;ne+=re}if(ae.ncap>0&&(ae.cap[0]=ne),ae.tryBacktrack(ee,te,ee.prog.start,ne,re)){ue=!0;break}const ie=te.step(ne);se=ie===Bt.EOF()?0:7&ie}}if(!ue)return Dt.push(ae),null;const Be=0===se?[]:st.toArray(ae.matchcap.subarray(0,se));return Dt.push(ae),Be}},wt=class{constructor(ee){this.sparse=new Uint32Array(ee),this.dense=new Uint32Array(ee),this.size=0,this.nextIndex=0}empty(){return this.nextIndex>=this.size}next(){return this.dense[this.nextIndex++]}clear(){this.size=0,this.nextIndex=0}contains(ee){return ee<this.sparse.length&&this.sparse[ee]<this.size&&this.dense[this.sparse[ee]]===ee}insert(ee){this.contains(ee)||this.insertNew(ee)}insertNew(ee){ee>=this.sparse.length||(this.sparse[ee]=this.size,this.dense[this.size]=ee,this.size++)}};var bt=class{constructor(ee){this.start=ee.start,this.numCap=ee.numCap,this.inst=new Array(ee.inst.length);for(let te=0;te<ee.inst.length;te++){const ne=ee.inst[te],re=new gt(ne.op);re.out=ne.out,re.arg=ne.arg,re.runes=ne.runes?ne.runes.slice():[],re.next=null,this.inst[te]=re}}};var St=class OnePass{static compile(ee){if(0===ee.start)return null;if(ee.numLb>0)return null;const te=ee.inst[ee.start];if(te.op!==gt.EMPTY_WIDTH||!(te.arg&st.EMPTY_BEGIN_TEXT))return null;let ne=!1;for(let te=0;te<ee.inst.length;te++)if(ee.inst[te].op===gt.ALT||ee.inst[te].op===gt.ALT_MATCH){ne=!0;break}for(let te=0;te<ee.inst.length;te++){const re=ee.inst[te],se=ee.inst[re.out].op;switch(re.op){case gt.ALT:case gt.ALT_MATCH:if(se===gt.MATCH||ee.inst[re.arg].op===gt.MATCH)return null;break;case gt.EMPTY_WIDTH:if(se===gt.MATCH){if((re.arg&st.EMPTY_END_TEXT)===st.EMPTY_END_TEXT)continue;return null}break;default:if(se===gt.MATCH&&ne)return null}}let re=(ee=>{const te=new bt(ee);for(let ee=0;ee<te.inst.length;ee++){const ne=te.inst[ee];if(ne.op!==gt.ALT&&ne.op!==gt.ALT_MATCH)continue;let re="out",se="arg",ie=te.inst[ne[se]];if(ie.op!==gt.ALT&&ie.op!==gt.ALT_MATCH&&(re="arg",se="out",ie=te.inst[ne[se]],ie.op!==gt.ALT&&ie.op!==gt.ALT_MATCH))continue;const ae=te.inst[ne[re]];if(ae.op===gt.ALT||ae.op===gt.ALT_MATCH)continue;let oe="out",ue="arg",Be=!1;ie.out===ee?Be=!0:ie.arg===ee&&(Be=!0,oe="arg",ue="out"),Be&&(ie[oe]=ne[re]),ne[re]===ie[oe]&&(ne[se]=ie[ue])}return te})(ee);return re=(ee=>{if(ee.inst.length>=1e3)return null;const te=new wt(ee.inst.length),ne=new wt(ee.inst.length),re=new Array(ee.inst.length),se=new Array(ee.inst.length).fill(!1),check=ie=>{let ae=!0;const oe=ee.inst[ie];if(ne.contains(ie))return!0;switch(ne.insert(ie),oe.op){case gt.ALT:case gt.ALT_MATCH:{ae=check(oe.out)&&check(oe.arg);let ee=se[oe.out],te=se[oe.arg];if(ee&&te)return!1;if(te){const ne=oe.out;oe.out=oe.arg,oe.arg=ne;const re=ee;ee=te,te=re}ee&&(se[ie]=!0,oe.op=gt.ALT_MATCH);const ne=((ee,te,ne,re)=>{const se=ee.length,ie=te.length;let ae=0,oe=0;const ue=[],Be=[];let le=!0,ce=-1;const extend=se=>{const ie=se?ee:te,le=se?ae:oe,_e=se?ne:re;return!(ce>0&&ie[le]<=ue[ce]||(ue.push(ie[le],ie[le+1]),se?ae+=2:oe+=2,ce+=2,Be.push(_e),0))};for(;ae<se||oe<ie;)if(le=oe>=ie?extend(!0):ae>=se||te[oe]<ee[ae]?extend(!1):extend(!0),!le)return null;return{merged:ue,next:Be}})(re[oe.out]||[],re[oe.arg]||[],oe.out,oe.arg);if(!ne)return!1;re[ie]=ne.merged,oe.next=new Uint32Array(ne.next);break}case gt.CAPTURE:case gt.EMPTY_WIDTH:case gt.NOP:ae=check(oe.out),se[ie]=se[oe.out],re[ie]=re[oe.out]?re[oe.out].slice():[],oe.next=new Uint32Array(Math.floor(re[ie].length/2)+1).fill(oe.out);break;case gt.MATCH:case gt.FAIL:se[ie]=oe.op===gt.MATCH;break;case gt.RUNE:{if(se[ie]=!1,oe.next&&oe.next.length>0)break;if(te.insert(oe.out),!oe.runes||0===oe.runes.length){re[ie]=[],oe.next=new Uint32Array([oe.out]);break}let ee=[];if(1===oe.runes.length&&oe.arg&Me.FOLD_CASE){const te=oe.runes[0];ee.push(te,te);for(let ne=et.simpleFold(te);ne!==te;ne=et.simpleFold(ne))ee.push(ne,ne);ee.sort(((ee,te)=>ee-te))}else for(let te=0;te<oe.runes.length;te++)ee.push(oe.runes[te]);re[ie]=ee,oe.next=new Uint32Array(Math.floor(ee.length/2)+1).fill(oe.out),oe.op=gt.RUNE;break}case gt.RUNE1:{if(se[ie]=!1,oe.next&&oe.next.length>0)break;te.insert(oe.out);let ee=[];if(oe.arg&Me.FOLD_CASE){const te=oe.runes[0];ee.push(te,te);for(let ne=et.simpleFold(te);ne!==te;ne=et.simpleFold(ne))ee.push(ne,ne);ee.sort(((ee,te)=>ee-te))}else ee.push(oe.runes[0],oe.runes[0]);re[ie]=ee,oe.next=new Uint32Array(Math.floor(ee.length/2)+1).fill(oe.out),oe.op=gt.RUNE;break}case gt.RUNE_ANY:if(se[ie]=!1,oe.next&&oe.next.length>0)break;te.insert(oe.out),re[ie]=[0,et.MAX_RUNE],oe.next=new Uint32Array([oe.out]);break;case gt.RUNE_ANY_NOT_NL:if(se[ie]=!1,oe.next&&oe.next.length>0)break;te.insert(oe.out),re[ie]=[0,9,11,et.MAX_RUNE],oe.next=new Uint32Array(Math.floor(re[ie].length/2)+1).fill(oe.out)}return ae};for(te.clear(),te.insert(ee.start);!te.empty();)if(ne.clear(),!check(te.next()))return null;for(let te=0;te<ee.inst.length;te++)re[te]&&(ee.inst[te].runes=re[te]);return ee})(re),null!==re&&((ee,te)=>{for(let ne=0;ne<te.inst.length;ne++){const re=te.inst[ne];switch(re.op){case gt.ALT:case gt.ALT_MATCH:case gt.RUNE:break;case gt.CAPTURE:case gt.EMPTY_WIDTH:case gt.NOP:case gt.MATCH:case gt.FAIL:ee.inst[ne].next=null;break;case gt.RUNE1:case gt.RUNE_ANY:case gt.RUNE_ANY_NOT_NL:ee.inst[ne].next=null,ee.inst[ne].op=re.op,ee.inst[ne].runes=re.runes?re.runes.slice():[]}}})(re,ee),re}static next(ee,te){const ne=ee.matchRunePos(te);return ne>=0?ee.next[ne]:ee.op===gt.ALT_MATCH?ee.out:0}static execute(ee,te,ne,re,se){const ie=ee.onepass;if(!ie)return null;const ae=new Int32Array(se).fill(-1);let oe=!1,ue=te.step(ne),Be=ue>>3,le=7&ue,ce=Bt.EOF(),_e=-1,he=0;ue!==Bt.EOF()&&(ce=te.step(ne+le),ce!==Bt.EOF()&&(_e=ce>>3,he=7&ce));let de,Ee=0===ne?st.emptyOpContext(-1,Be):te.context(ne),Ce=ie.start;for(;;){switch(de=ie.inst[Ce],Ce=de.out,de.op){case gt.MATCH:return re===Me.ANCHOR_BOTH&&ne!==te.endPos()?null:(oe=!0,ae.length>0&&(ae[0]=0,ae[1]=ne),0===se?[]:st.toArray(ae));case gt.RUNE:if(!de.matchRune(Be))return null;break;case gt.RUNE1:if(Be!==de.runes[0])return null;break;case gt.RUNE_ANY:break;case gt.RUNE_ANY_NOT_NL:if(10===Be)return null;break;case gt.ALT:case gt.ALT_MATCH:Ce=OnePass.next(de,Be);continue;case gt.FAIL:return null;case gt.NOP:continue;case gt.EMPTY_WIDTH:if(de.arg&~Ee)return null;continue;case gt.CAPTURE:de.arg<ae.length&&(ae[de.arg]=ne);continue;default:throw new mt("bad inst")}if(0===le)break;Ee=st.emptyOpContext(Be,_e),ne+=le,Be=_e,le=he,-1!==Be&&(ce=te.step(ne+le),ce!==Bt.EOF()?(_e=ce>>3,he=7&ce):(_e=-1,he=0))}return oe?0===se?[]:st.toArray(ae):null}},vt=(ve=class Regexp{static isPseudoOp(ee){return ee>=ve.Op.LEFT_PAREN}static emptySubs(){return[]}static quoteIfHyphen(ee){return ee===We.CODES.get("-")?"\\":""}static fromRegexp(ee){const te=new ve(ee.op);return te.flags=ee.flags,te.subs=ee.subs,te.runes=ee.runes,te.cap=ee.cap,te.min=ee.min,te.max=ee.max,te.name=ee.name,te.namedGroups=ee.namedGroups,te.lb=ee.lb,te}constructor(ee){this.op=ee,this.flags=0,this.subs=ve.emptySubs(),this.runes=[],this.min=0,this.max=0,this.cap=0,this.name=null,this.namedGroups=Object.create(null),this.lb=0}reinit(){this.flags=0,this.subs=ve.emptySubs(),this.runes=[],this.cap=0,this.min=0,this.max=0,this.name=null,this.namedGroups=Object.create(null),this.lb=0}toString(){return this.appendTo()}appendTo(){let ee="";switch(this.op){case ve.Op.NO_MATCH:ee+="[^\\x00-\\x{10FFFF}]";break;case ve.Op.EMPTY_MATCH:ee+="(?:)";break;case ve.Op.STAR:case ve.Op.PLUS:case ve.Op.QUEST:case ve.Op.REPEAT:{const te=this.subs[0];switch(te.op>ve.Op.CAPTURE||te.op===ve.Op.LITERAL&&te.runes.length>1?ee+=`(?:${te.appendTo()})`:ee+=te.appendTo(),this.op){case ve.Op.STAR:ee+="*";break;case ve.Op.PLUS:ee+="+";break;case ve.Op.QUEST:ee+="?";break;case ve.Op.REPEAT:ee+=`{${this.min}`,this.min!==this.max&&(ee+=",",this.max>=0&&(ee+=this.max)),ee+="}"}this.flags&Me.NON_GREEDY&&(ee+="?");break}case ve.Op.CONCAT:for(let te of this.subs)te.op===ve.Op.ALTERNATE?ee+=`(?:${te.appendTo()})`:ee+=te.appendTo();break;case ve.Op.ALTERNATE:{let te="";for(let ne of this.subs)ee+=te,te="|",ee+=ne.appendTo();break}case ve.Op.LITERAL:this.flags&Me.FOLD_CASE&&(ee+="(?i:");for(let te of this.runes)ee+=st.escapeRune(te);this.flags&Me.FOLD_CASE&&(ee+=")");break;case ve.Op.ANY_CHAR_NOT_NL:ee+="(?-s:.)";break;case ve.Op.ANY_CHAR:ee+="(?s:.)";break;case ve.Op.PLB:ee+=`(?<=${this.subs[0].appendTo()})`;break;case ve.Op.NLB:ee+=`(?<!${this.subs[0].appendTo()})`;break;case ve.Op.CAPTURE:null===this.name||0===this.name.length?ee+="(":ee+=`(?P<${this.name}>`,this.subs[0].op!==ve.Op.EMPTY_MATCH&&(ee+=this.subs[0].appendTo()),ee+=")";break;case ve.Op.BEGIN_TEXT:ee+="\\A";break;case ve.Op.END_TEXT:this.flags&Me.WAS_DOLLAR?ee+="(?-m:$)":ee+="\\z";break;case ve.Op.BEGIN_LINE:ee+="^";break;case ve.Op.END_LINE:ee+="$";break;case ve.Op.WORD_BOUNDARY:ee+="\\b";break;case ve.Op.NO_WORD_BOUNDARY:ee+="\\B";break;case ve.Op.CHAR_CLASS:if(this.runes.length%2!=0){ee+="[invalid char class]";break}if(ee+="[",0===this.runes.length)ee+="^\\x00-\\x{10FFFF}";else if(0===this.runes[0]&&this.runes[this.runes.length-1]===et.MAX_RUNE){ee+="^";for(let te=1;te<this.runes.length-1;te+=2){const ne=this.runes[te]+1,re=this.runes[te+1]-1;ee+=ve.quoteIfHyphen(ne),ee+=st.escapeRune(ne),ne!==re&&(ee+="-",ee+=ve.quoteIfHyphen(re),ee+=st.escapeRune(re))}}else for(let te=0;te<this.runes.length;te+=2){const ne=this.runes[te],re=this.runes[te+1];ee+=ve.quoteIfHyphen(ne),ee+=st.escapeRune(ne),ne!==re&&(ee+="-",ee+=ve.quoteIfHyphen(re),ee+=st.escapeRune(re))}ee+="]";break;default:ee+=this.op}return ee}maxCap(){let ee=0;if(this.op===ve.Op.CAPTURE&&(ee=this.cap),null!==this.subs)for(let te of this.subs){const ne=te.maxCap();ee<ne&&(ee=ne)}return ee}equals(ee){if(!(null!==ee&&ee instanceof ve))return!1;if(this.op!==ee.op)return!1;switch(this.op){case ve.Op.END_TEXT:if((this.flags&Me.WAS_DOLLAR)!=(ee.flags&Me.WAS_DOLLAR))return!1;break;case ve.Op.LITERAL:case ve.Op.CHAR_CLASS:if(null===this.runes&&null===ee.runes)break;if(null===this.runes||null===ee.runes)return!1;if(this.runes.length!==ee.runes.length)return!1;for(let te=0;te<this.runes.length;te++)if(this.runes[te]!==ee.runes[te])return!1;break;case ve.Op.ALTERNATE:case ve.Op.CONCAT:if(this.subs.length!==ee.subs.length)return!1;for(let te=0;te<this.subs.length;++te)if(!this.subs[te].equals(ee.subs[te]))return!1;break;case ve.Op.STAR:case ve.Op.PLUS:case ve.Op.QUEST:if((this.flags&Me.NON_GREEDY)!=(ee.flags&Me.NON_GREEDY)||!this.subs[0].equals(ee.subs[0]))return!1;break;case ve.Op.REPEAT:if((this.flags&Me.NON_GREEDY)!=(ee.flags&Me.NON_GREEDY)||this.min!==ee.min||this.max!==ee.max||!this.subs[0].equals(ee.subs[0]))return!1;break;case ve.Op.CAPTURE:if(this.cap!==ee.cap||(null===this.name?null!==ee.name:this.name!==ee.name)||!this.subs[0].equals(ee.subs[0]))return!1;break;case ve.Op.PLB:case ve.Op.NLB:if(this.lb!==ee.lb||!this.subs[0].equals(ee.subs[0]))return!1}return!0}},ve.Op=createEnum(["NO_MATCH","EMPTY_MATCH","LITERAL","CHAR_CLASS","ANY_CHAR_NOT_NL","ANY_CHAR","BEGIN_LINE","END_LINE","BEGIN_TEXT","END_TEXT","WORD_BOUNDARY","NO_WORD_BOUNDARY","CAPTURE","STAR","PLUS","QUEST","REPEAT","CONCAT","ALTERNATE","PLB","NLB","LEFT_PAREN","VERTICAL_BAR"]),ve),xt=class{constructor(ee){this.next=[Object.create(null)],this.fail=[0],this.match=[!1];for(const te of ee){let ee=0;for(let ne=0;ne<te.length;ne++){const re=te[ne];re in this.next[ee]||(this.next.push(Object.create(null)),this.fail.push(0),this.match.push(!1),this.next[ee][re]=this.next.length-1),ee=this.next[ee][re]}this.match[ee]=!0}const te=[];for(const ee in this.next[0])if(Object.prototype.hasOwnProperty.call(this.next[0],ee)){const ne=this.next[0][ee];this.fail[ne]=0,te.push(ne)}for(;te.length>0;){const ee=te.shift();for(const ne in this.next[ee])if(Object.prototype.hasOwnProperty.call(this.next[ee],ne)){const re=this.next[ee][ne];let se=this.fail[ee];for(;0!==se&&!(ne in this.next[se]);)se=this.fail[se];ne in this.next[se]?this.fail[re]=this.next[se][ne]:this.fail[re]=0,this.match[re]=this.match[re]||this.match[this.fail[re]],te.push(re)}}}searchUTF16(ee,te,ne){let re=0;for(let se=te;se<ne;se++){const te=ee.charCodeAt(se);for(;0!==re&&!(te in this.next[re]);)re=this.fail[re];if(te in this.next[re]&&(re=this.next[re][te]),this.match[re])return!0}return!1}searchUTF8(ee,te,ne){let re=0;for(let se=te;se<ne;se++){const te=ee[se];for(;0!==re&&!(te in this.next[re]);)re=this.fail[re];if(te in this.next[re]&&(re=this.next[re][te]),this.match[re])return!0}return!1}},Ft=(xe=class Prefilter{constructor(ee){this.type=ee,this.subs=[],this.str="",this.bytes=null,this.ac16=null,this.ac8=null}eval(ee,te){switch(this.type){case xe.Type.NONE:return!0;case xe.Type.EXACT:return ee.hasString(this,te);case xe.Type.AND:for(let ne=0;ne<this.subs.length;ne++)if(!this.subs[ne].eval(ee,te))return!1;return!0;case xe.Type.OR:if(this.ac16&&this.ac8)return ee.hasAnyString(this,te);for(let ne=0;ne<this.subs.length;ne++)if(this.subs[ne].eval(ee,te))return!0;return!1;default:return!0}}},xe.Type={NONE:0,EXACT:1,AND:2,OR:3},xe),Ot=class PrefilterTree{static build(ee){const te=PrefilterTree.fromRegexp(ee);return PrefilterTree.simplify(te)}static fromRegexp(ee){if(!ee)return new Ft(Ft.Type.NONE);switch(ee.op){case vt.Op.PLB:case vt.Op.NLB:case vt.Op.NO_MATCH:case vt.Op.EMPTY_MATCH:case vt.Op.BEGIN_LINE:case vt.Op.END_LINE:case vt.Op.BEGIN_TEXT:case vt.Op.END_TEXT:case vt.Op.WORD_BOUNDARY:case vt.Op.NO_WORD_BOUNDARY:case vt.Op.CHAR_CLASS:case vt.Op.ANY_CHAR_NOT_NL:case vt.Op.ANY_CHAR:return new Ft(Ft.Type.NONE);case vt.Op.LITERAL:{if(0===ee.runes.length||ee.flags&Me.FOLD_CASE)return new Ft(Ft.Type.NONE);const te=new Ft(Ft.Type.EXACT);let ne="";for(let te=0;te<ee.runes.length;te++)ne+=String.fromCodePoint(ee.runes[te]);return te.str=ne,te.bytes=st.stringToUtf8ByteArray(te.str),te}case vt.Op.CAPTURE:case vt.Op.PLUS:return PrefilterTree.fromRegexp(ee.subs[0]);case vt.Op.REPEAT:return ee.min>=1?PrefilterTree.fromRegexp(ee.subs[0]):new Ft(Ft.Type.NONE);case vt.Op.CONCAT:{const te=new Ft(Ft.Type.AND);for(const ne of ee.subs)te.subs.push(PrefilterTree.fromRegexp(ne));return te}case vt.Op.ALTERNATE:{const te=new Ft(Ft.Type.OR);for(const ne of ee.subs)te.subs.push(PrefilterTree.fromRegexp(ne));return te}default:return new Ft(Ft.Type.NONE)}}static simplify(ee){if(ee.type===Ft.Type.EXACT||ee.type===Ft.Type.NONE)return ee;if(ee.type===Ft.Type.AND){const te=[];for(const ne of ee.subs){const ee=PrefilterTree.simplify(ne);if(ee.type!==Ft.Type.NONE)if(ee.type===Ft.Type.AND)for(let ne=0;ne<ee.subs.length;ne++)te.push(ee.subs[ne]);else te.push(ee)}return 0===te.length?new Ft(Ft.Type.NONE):1===te.length?te[0]:(ee.subs=te,ee)}if(ee.type===Ft.Type.OR){const te=[];for(const ne of ee.subs){const ee=PrefilterTree.simplify(ne);if(ee.type===Ft.Type.NONE)return new Ft(Ft.Type.NONE);if(ee.type===Ft.Type.OR)for(let ne=0;ne<ee.subs.length;ne++)te.push(ee.subs[ne]);else te.push(ee)}if(0===te.length)return new Ft(Ft.Type.NONE);if(1===te.length)return te[0];const ne=new Set,re=[];for(const ee of te)ee.type===Ft.Type.EXACT?ne.has(ee.str)||(ne.add(ee.str),re.push(ee)):re.push(ee);ee.subs=re;let se=!0;for(const ee of re)if(ee.type!==Ft.Type.EXACT){se=!1;break}return se&&re.length>1&&(ee.ac16=new xt(re.map((ee=>{const te=[];for(let ne=0;ne<ee.str.length;ne++)te.push(ee.str.charCodeAt(ne));return te}))),ee.ac8=new xt(re.map((ee=>ee.bytes)))),ee}return ee}},Nt=class{constructor(ee=0,te=0){this.head=ee,this.tail=te}},Lt=class{constructor(){this.inst=[],this.start=0,this.numCap=2,this.lbStarts=[],this.numLb=0}getInst(ee){return this.inst[ee]}numInst(){return this.inst.length}addInst(ee){this.inst.push(new gt(ee))}skipNop(ee){let te=this.inst[ee];for(;te.op===gt.NOP||te.op===gt.CAPTURE;)te=this.inst[ee],ee=te.out;return te}prefix(){let ee="",te=this.skipNop(this.start);if(!gt.isRuneOp(te.op)||1!==te.runes.length)return[te.op===gt.MATCH,ee];for(;gt.isRuneOp(te.op)&&1===te.runes.length&&!(te.arg&Me.FOLD_CASE);)ee+=String.fromCodePoint(te.runes[0]),te=this.skipNop(te.out);return[te.op===gt.MATCH,ee]}startCond(){let ee=0,te=this.start;e:for(;;){const ne=this.inst[te];switch(ne.op){case gt.EMPTY_WIDTH:ee|=ne.arg;break;case gt.FAIL:return-1;case gt.CAPTURE:case gt.NOP:break;default:break e}te=ne.out}return ee}patch(ee,te){let ne=ee.head;for(;0!==ne;){const ee=this.inst[ne>>1];1&ne?(ne=ee.arg,ee.arg=te):(ne=ee.out,ee.out=te)}}append(ee,te){if(0===ee.head)return te;if(0===te.head)return ee;const ne=this.inst[ee.tail>>1];return 1&ee.tail?ne.arg=te.head:ne.out=te.head,new Nt(ee.head,te.tail)}toString(){let ee="";for(let te=0;te<this.inst.length;te++){const ne=ee.length;ee+=te,te===this.start&&(ee+="*"),ee+=" ".substring(ee.length-ne),ee+=this.inst[te],ee+="\n"}return ee}},Mt=class{constructor(ee=0,te=new Nt,ne=!1){this.i=ee,this.out=te,this.nullable=ne}},kt=class Compiler{static ANY_RUNE_NOT_NL(){return[0,We.CODES.get("\n")-1,We.CODES.get("\n")+1,et.MAX_RUNE]}static ANY_RUNE(){return[0,et.MAX_RUNE]}static compileRegexp(ee){const te=new Compiler,ne=te.compile(ee);return te.prog.patch(ne.out,te.newInst(gt.MATCH).i),te.prog.start=ne.i,te.prog}static compileSet(ee){const te=new Compiler;if(0===ee.length)return te.prog.start=te.newInst(gt.FAIL).i,te.prog;let ne=[];for(let re=0;re<ee.length;re++){const se=te.compile(ee[re]),ie=te.newInst(gt.MATCH);te.prog.getInst(ie.i).arg=re,te.prog.patch(se.out,ie.i),ne.push(se.i)}let re=ne[0];for(let ee=1;ee<ne.length;ee++){const se=te.newInst(gt.ALT),ie=te.prog.getInst(se.i);ie.out=re,ie.arg=ne[ee],re=se.i}return te.prog.start=re,te.prog}constructor(){this.prog=new Lt,this.newInst(gt.FAIL)}newInst(ee){return this.prog.addInst(ee),new Mt(this.prog.numInst()-1,new Nt,!0)}nop(){const ee=this.newInst(gt.NOP);return ee.out=new Nt(ee.i<<1,ee.i<<1),ee}fail(){return new Mt}cap(ee){const te=this.newInst(gt.CAPTURE);return te.out=new Nt(te.i<<1,te.i<<1),this.prog.getInst(te.i).arg=ee,this.prog.numCap<ee+1&&(this.prog.numCap=ee+1),te}cat(ee,te){return 0===ee.i||0===te.i?this.fail():(this.prog.patch(ee.out,te.i),new Mt(ee.i,te.out,ee.nullable&&te.nullable))}alt(ee,te){if(0===ee.i)return te;if(0===te.i)return ee;const ne=this.newInst(gt.ALT),re=this.prog.getInst(ne.i);return re.out=ee.i,re.arg=te.i,ne.out=this.prog.append(ee.out,te.out),ne.nullable=ee.nullable||te.nullable,ne}loop(ee,te){const ne=this.newInst(gt.ALT),re=this.prog.getInst(ne.i);return te?(re.arg=ee.i,ne.out=new Nt(ne.i<<1,ne.i<<1)):(re.out=ee.i,ne.out=new Nt(ne.i<<1|1,ne.i<<1|1)),this.prog.patch(ee.out,ne.i),ne}quest(ee,te){const ne=this.newInst(gt.ALT),re=this.prog.getInst(ne.i);return te?(re.arg=ee.i,ne.out=new Nt(ne.i<<1,ne.i<<1)):(re.out=ee.i,ne.out=new Nt(ne.i<<1|1,ne.i<<1|1)),ne.out=this.prog.append(ne.out,ee.out),ne}star(ee,te){return ee.nullable?this.quest(this.plus(ee,te),te):this.loop(ee,te)}plus(ee,te){return new Mt(ee.i,this.loop(ee,te).out,ee.nullable)}empty(ee){const te=this.newInst(gt.EMPTY_WIDTH);return this.prog.getInst(te.i).arg=ee,te.out=new Nt(te.i<<1,te.i<<1),te}rune(ee,te){const ne=this.newInst(gt.RUNE);ne.nullable=!1;const re=this.prog.getInst(ne.i);return re.runes=ee,te&=Me.FOLD_CASE,1===ee.length&&et.simpleFold(ee[0])!==ee[0]||(te&=~Me.FOLD_CASE),re.arg=te,ne.out=new Nt(ne.i<<1,ne.i<<1),!(te&Me.FOLD_CASE)&&1===ee.length||2===ee.length&&ee[0]===ee[1]?re.op=gt.RUNE1:2===ee.length&&0===ee[0]&&ee[1]===et.MAX_RUNE?re.op=gt.RUNE_ANY:4===ee.length&&0===ee[0]&&ee[1]===We.CODES.get("\n")-1&&ee[2]===We.CODES.get("\n")+1&&ee[3]===et.MAX_RUNE&&(re.op=gt.RUNE_ANY_NOT_NL),ne}lookBehind(ee,te){const ne=this.newInst(gt.LB_WRITE);this.prog.getInst(ne.i).arg=te;const re=this.rune(Compiler.ANY_RUNE(),0),se=this.star(re,!0),ie=this.cat(se,ee);this.prog.patch(ie.out,ne.i);const ae=this.newInst(gt.LB_CHECK);return this.prog.getInst(ae.i).arg=te,this.prog.lbStarts.push(ie.i),Math.abs(te)>this.prog.numLb&&(this.prog.numLb=Math.abs(te)),ae.out=new Nt(ae.i<<1,ae.i<<1),ae}compile(ee){switch(ee.op){case vt.Op.NO_MATCH:return this.fail();case vt.Op.EMPTY_MATCH:return this.nop();case vt.Op.LITERAL:if(0===ee.runes.length)return this.nop();{let te=null;for(let ne of ee.runes){const re=this.rune([ne],ee.flags);te=null===te?re:this.cat(te,re)}return te}case vt.Op.CHAR_CLASS:return this.rune(ee.runes,ee.flags);case vt.Op.ANY_CHAR_NOT_NL:return this.rune(Compiler.ANY_RUNE_NOT_NL(),0);case vt.Op.ANY_CHAR:return this.rune(Compiler.ANY_RUNE(),0);case vt.Op.BEGIN_LINE:return this.empty(st.EMPTY_BEGIN_LINE);case vt.Op.END_LINE:return this.empty(st.EMPTY_END_LINE);case vt.Op.BEGIN_TEXT:return this.empty(st.EMPTY_BEGIN_TEXT);case vt.Op.END_TEXT:return this.empty(st.EMPTY_END_TEXT);case vt.Op.WORD_BOUNDARY:return this.empty(st.EMPTY_WORD_BOUNDARY);case vt.Op.NO_WORD_BOUNDARY:return this.empty(st.EMPTY_NO_WORD_BOUNDARY);case vt.Op.PLB:case vt.Op.NLB:return this.lookBehind(this.compile(ee.subs[0]),ee.lb);case vt.Op.CAPTURE:{const te=this.cap(ee.cap<<1),ne=this.compile(ee.subs[0]),re=this.cap(ee.cap<<1|1);return this.cat(this.cat(te,ne),re)}case vt.Op.STAR:return this.star(this.compile(ee.subs[0]),!!(ee.flags&Me.NON_GREEDY));case vt.Op.PLUS:return this.plus(this.compile(ee.subs[0]),!!(ee.flags&Me.NON_GREEDY));case vt.Op.QUEST:return this.quest(this.compile(ee.subs[0]),!!(ee.flags&Me.NON_GREEDY));case vt.Op.CONCAT:if(0===ee.subs.length)return this.nop();{let te=null;for(let ne of ee.subs){const ee=this.compile(ne);te=null===te?ee:this.cat(te,ee)}return te}case vt.Op.ALTERNATE:if(0===ee.subs.length)return this.nop();{let te=null;for(let ne of ee.subs){const ee=this.compile(ne);te=null===te?ee:this.alt(te,ee)}return te}default:throw new Et("regexp: unhandled case in compile")}}},Gt=class Simplify{static simplify(ee){if(null===ee)return null;switch(ee.op){case vt.Op.PLB:case vt.Op.NLB:case vt.Op.CAPTURE:{const te=Simplify.simplify(ee.subs[0]);if(te!==ee.subs[0]){const ne=vt.fromRegexp(ee);return ne.runes=[],ne.subs=[te],ne}return ee}case vt.Op.CONCAT:case vt.Op.ALTERNATE:{const te=[];let ne=!1;for(let re=0;re<ee.subs.length;re++){const se=ee.subs[re],ie=Simplify.simplify(se);if(ie!==se&&(ne=!0),ee.op===vt.Op.CONCAT){if(ie.op===vt.Op.NO_MATCH)return new vt(vt.Op.NO_MATCH);if(ie.op===vt.Op.EMPTY_MATCH){ne=!0;continue}if(ie.op===vt.Op.CONCAT){ne=!0;for(let ee=0;ee<ie.subs.length;ee++)te.push(ie.subs[ee]);continue}}else if(ee.op===vt.Op.ALTERNATE){if(ie.op===vt.Op.NO_MATCH){ne=!0;continue}if(ie.op===vt.Op.ALTERNATE){ne=!0;for(let ee=0;ee<ie.subs.length;ee++)te.push(ie.subs[ee]);continue}}te.push(ie)}if(ne){if(0===te.length)return new vt(ee.op===vt.Op.CONCAT?vt.Op.EMPTY_MATCH:vt.Op.NO_MATCH);if(1===te.length)return te[0];const ne=vt.fromRegexp(ee);return ne.runes=[],ne.subs=te,ne}return ee}case vt.Op.CHAR_CLASS:return null===ee.runes?ee:0===ee.runes.length?new vt(vt.Op.NO_MATCH):2===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===et.MAX_RUNE?new vt(vt.Op.ANY_CHAR):4===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===We.CODES.get("\n")-1&&ee.runes[2]===We.CODES.get("\n")+1&&ee.runes[3]===et.MAX_RUNE?new vt(vt.Op.ANY_CHAR_NOT_NL):ee;case vt.Op.STAR:case vt.Op.PLUS:case vt.Op.QUEST:{const te=Simplify.simplify(ee.subs[0]);return Simplify.simplify1(ee.op,ee.flags,te,ee)}case vt.Op.REPEAT:{if(0===ee.min&&0===ee.max)return new vt(vt.Op.EMPTY_MATCH);const te=Simplify.simplify(ee.subs[0]);if(-1===ee.max){if(0===ee.min)return Simplify.simplify1(vt.Op.STAR,ee.flags,te,null);if(1===ee.min)return Simplify.simplify1(vt.Op.PLUS,ee.flags,te,null);const ne=new vt(vt.Op.CONCAT),re=[];for(let ne=0;ne<ee.min-1;ne++)re.push(te);return re.push(Simplify.simplify1(vt.Op.PLUS,ee.flags,te,null)),ne.subs=re.slice(0),Simplify.simplify(ne)}if(1===ee.min&&1===ee.max)return te;let ne=null;if(ee.min>0){ne=[];for(let re=0;re<ee.min;re++)ne.push(te)}if(ee.max>ee.min){let re=Simplify.simplify1(vt.Op.QUEST,ee.flags,te,null);for(let ne=ee.min+1;ne<ee.max;ne++){const ne=new vt(vt.Op.CONCAT);ne.subs=[te,re],re=Simplify.simplify1(vt.Op.QUEST,ee.flags,ne,null)}if(null===ne)return re;ne.push(re)}if(null!==ne){const ee=new vt(vt.Op.CONCAT);return ee.subs=ne.slice(0),Simplify.simplify(ee)}return new vt(vt.Op.NO_MATCH)}}return ee}static simplify1(ee,te,ne,re){if(ne.op===vt.Op.EMPTY_MATCH)return ne;if(ne.op===vt.Op.NO_MATCH)return ee===vt.Op.PLUS?ne:new vt(vt.Op.EMPTY_MATCH);if(ee===ne.op&&(te&Me.NON_GREEDY)==(ne.flags&Me.NON_GREEDY))return ne;if(null!==re&&re.op===ee&&(re.flags&Me.NON_GREEDY)==(te&Me.NON_GREEDY)&&ne===re.subs[0])return re;const se=new vt(ee);return se.flags=te,se.subs=[ne],se}},Ut=class{constructor(ee,te){this.sign=ee,this.cls=te}};const Ht=[48,57],qt=[9,10,12,13,32,32],Kt=[48,57,65,90,95,95,97,122],Qt=new Map([["\\d",new Ut(1,Ht)],["\\D",new Ut(-1,Ht)],["\\s",new Ut(1,qt)],["\\S",new Ut(-1,qt)],["\\w",new Ut(1,Kt)],["\\W",new Ut(-1,Kt)]]),jt=[48,57,65,90,97,122],Jt=[65,90,97,122],zt=[0,127],Wt=[9,9,32,32],$t=[0,31,127,127],Yt=[48,57],Xt=[33,126],Zt=[97,122],en=[32,126],tn=[33,47,58,64,91,96,123,126],nn=[9,13,32,32],rn=[65,90],sn=[48,57,65,90,95,95,97,122],an=[48,57,65,70,97,102],on=new Map([["[:alnum:]",new Ut(1,jt)],["[:^alnum:]",new Ut(-1,jt)],["[:alpha:]",new Ut(1,Jt)],["[:^alpha:]",new Ut(-1,Jt)],["[:ascii:]",new Ut(1,zt)],["[:^ascii:]",new Ut(-1,zt)],["[:blank:]",new Ut(1,Wt)],["[:^blank:]",new Ut(-1,Wt)],["[:cntrl:]",new Ut(1,$t)],["[:^cntrl:]",new Ut(-1,$t)],["[:digit:]",new Ut(1,Yt)],["[:^digit:]",new Ut(-1,Yt)],["[:graph:]",new Ut(1,Xt)],["[:^graph:]",new Ut(-1,Xt)],["[:lower:]",new Ut(1,Zt)],["[:^lower:]",new Ut(-1,Zt)],["[:print:]",new Ut(1,en)],["[:^print:]",new Ut(-1,en)],["[:punct:]",new Ut(1,tn)],["[:^punct:]",new Ut(-1,tn)],["[:space:]",new Ut(1,nn)],["[:^space:]",new Ut(-1,nn)],["[:upper:]",new Ut(1,rn)],["[:^upper:]",new Ut(-1,rn)],["[:word:]",new Ut(1,sn)],["[:^word:]",new Ut(-1,sn)],["[:xdigit:]",new Ut(1,an)],["[:^xdigit:]",new Ut(-1,an)]]);var un=class CharClass{static charClassToString(ee,te){let ne="[";for(let re=0;re<te;re+=2){re>0&&(ne+=" ");const te=ee[re],se=ee[re+1];ne+=te===se?`0x${te.toString(16)}`:`0x${te.toString(16)}-0x${se.toString(16)}`}return ne+="]",ne}static cmp(ee,te,ne,re){const se=ee[te]-ne;return 0!==se?se:re-ee[te+1]}static qsortIntPair(ee,te,ne){const re=(te+ne)/2&-2,se=ee[re],ie=ee[re+1];let ae=te,oe=ne;for(;ae<=oe;){for(;ae<ne&&CharClass.cmp(ee,ae,se,ie)<0;)ae+=2;for(;oe>te&&CharClass.cmp(ee,oe,se,ie)>0;)oe-=2;if(ae<=oe){if(ae!==oe){let te=ee[ae];ee[ae]=ee[oe],ee[oe]=te,te=ee[ae+1],ee[ae+1]=ee[oe+1],ee[oe+1]=te}ae+=2,oe-=2}}te<oe&&CharClass.qsortIntPair(ee,te,oe),ae<ne&&CharClass.qsortIntPair(ee,ae,ne)}constructor(ee=st.emptyInts()){this.r=ee,this.len=ee.length}toArray(){return this.len===this.r.length?this.r:this.r.slice(0,this.len)}cleanClass(){if(this.len<4)return this;CharClass.qsortIntPair(this.r,0,this.len-2);let ee=2;for(let te=2;te<this.len;te+=2){const ne=this.r[te],re=this.r[te+1];ne<=this.r[ee-1]+1?re>this.r[ee-1]&&(this.r[ee-1]=re):(this.r[ee]=ne,this.r[ee+1]=re,ee+=2)}return this.len=ee,this}appendLiteral(ee,te){return te&Me.FOLD_CASE?this.appendFoldedRange(ee,ee):this.appendRange(ee,ee)}appendRange(ee,te){if(this.len>0)for(let ne=2;ne<=4;ne+=2)if(this.len>=ne){const re=this.r[this.len-ne],se=this.r[this.len-ne+1];if(ee<=se+1&&re<=te+1)return ee<re&&(this.r[this.len-ne]=ee),te>se&&(this.r[this.len-ne+1]=te),this}return this.r[this.len++]=ee,this.r[this.len++]=te,this}appendFoldedRange(ee,te){if(ee<=et.MIN_FOLD&&te>=et.MAX_FOLD)return this.appendRange(ee,te);if(te<et.MIN_FOLD||ee>et.MAX_FOLD)return this.appendRange(ee,te);ee<et.MIN_FOLD&&(this.appendRange(ee,et.MIN_FOLD-1),ee=et.MIN_FOLD),te>et.MAX_FOLD&&(this.appendRange(et.MAX_FOLD+1,te),te=et.MAX_FOLD);for(let ne=ee;ne<=te;ne++){this.appendRange(ne,ne);for(let ee=et.simpleFold(ne);ee!==ne;ee=et.simpleFold(ee))this.appendRange(ee,ee)}return this}appendClass(ee){for(let te=0;te<ee.length;te+=2)this.appendRange(ee[te],ee[te+1]);return this}appendFoldedClass(ee){for(let te=0;te<ee.length;te+=2)this.appendFoldedRange(ee[te],ee[te+1]);return this}appendNegatedClass(ee){let te=0;for(let ne=0;ne<ee.length;ne+=2){const re=ee[ne],se=ee[ne+1];te<=re-1&&this.appendRange(te,re-1),te=se+1}return te<=et.MAX_RUNE&&this.appendRange(te,et.MAX_RUNE),this}appendTable(ee){for(let te=0;te<ee.length;++te){const ne=ee.getLo(te),re=ee.getHi(te),se=ee.getStride(te);if(1!==se)for(let ee=ne;ee<=re;ee+=se)this.appendRange(ee,ee);else this.appendRange(ne,re)}return this}appendNegatedTable(ee){let te=0;for(let ne=0;ne<ee.length;++ne){const re=ee.getLo(ne),se=ee.getHi(ne),ie=ee.getStride(ne);if(1!==ie)for(let ee=re;ee<=se;ee+=ie)te<=ee-1&&this.appendRange(te,ee-1),te=ee+1;else te<=re-1&&this.appendRange(te,re-1),te=se+1}return te<=et.MAX_RUNE&&this.appendRange(te,et.MAX_RUNE),this}appendTableWithSign(ee,te){return te<0?this.appendNegatedTable(ee):this.appendTable(ee)}negateClass(){let ee=0,te=0;for(let ne=0;ne<this.len;ne+=2){const re=this.r[ne],se=this.r[ne+1];ee<=re-1&&(this.r[te]=ee,this.r[te+1]=re-1,te+=2),ee=se+1}return this.len=te,ee<=et.MAX_RUNE&&(this.r[this.len++]=ee,this.r[this.len++]=et.MAX_RUNE),this}appendClassWithSign(ee,te){return te<0?this.appendNegatedClass(ee):this.appendClass(ee)}appendGroup(ee,te){let ne=ee.cls;return te&&(ne=(new CharClass).appendFoldedClass(ne).cleanClass().toArray()),this.appendClassWithSign(ne,ee.sign)}toString(){return CharClass.charClassToString(this.r,this.len)}},Bn=class{constructor(ee){this.str=ee,this.position=0}pos(){return this.position}rewindTo(ee){this.position=ee}more(){return this.position<this.str.length}peek(){return this.str.codePointAt(this.position)}skip(ee){this.position+=ee}skipString(ee){this.position+=ee.length}pop(){const ee=this.str.codePointAt(this.position);return this.position+=st.charCount(ee),ee}lookingAt(ee){return this.str.startsWith(ee,this.position)}rest(){return this.str.substring(this.position)}from(ee){return this.str.substring(ee,this.position)}toString(){return this.rest()}},cn=(Fe=class Parser{static unicodeTable(ee){return"Any"===ee?{tab:Fe.ANY_TABLE,fold:Fe.ANY_TABLE,sign:1}:"Ascii"===ee?{tab:Fe.ASCII_TABLE,fold:Fe.ASCII_FOLD_TABLE,sign:1}:"Assigned"===ee?{tab:Ze.CATEGORIES.get("Cn"),fold:Ze.CATEGORIES.get("Cn"),sign:-1}:"Lc"===ee?{tab:Ze.CATEGORIES.get("LC"),fold:Ze.FOLD_CATEGORIES.get("LC"),sign:1}:Ze.CATEGORIES.has(ee)?{tab:Ze.CATEGORIES.get(ee),fold:Ze.FOLD_CATEGORIES.get(ee),sign:1}:Ze.SCRIPTS.has(ee)?{tab:Ze.SCRIPTS.get(ee),fold:Ze.FOLD_SCRIPT.get(ee),sign:1}:null}static minFoldRune(ee){if(ee<et.MIN_FOLD||ee>et.MAX_FOLD)return ee;let te=ee;const ne=ee;for(ee=et.simpleFold(ee);ee!==ne;ee=et.simpleFold(ee))te>ee&&(te=ee);return te}static leadingRegexp(ee){if(ee.op===vt.Op.EMPTY_MATCH)return null;if(ee.op===vt.Op.CONCAT&&ee.subs.length>0){const te=ee.subs[0];return te.op===vt.Op.EMPTY_MATCH?null:te}return ee}static literalRegexp(ee,te){const ne=new vt(vt.Op.LITERAL);return ne.flags=te,ne.runes=st.stringToRunes(ee),ne}static parse(ee,te){return new Fe(ee,te).parseInternal()}static parseRepeat(ee){const te=ee.pos();if(!ee.more()||!ee.lookingAt("{"))return-1;ee.skip(1);const ne=Fe.parseInt(ee);if(-1===ne)return-1;if(!ee.more())return-1;let re;if(ee.lookingAt(",")){if(ee.skip(1),!ee.more())return-1;if(ee.lookingAt("}"))re=-1;else if(-1===(re=Fe.parseInt(ee)))return-1}else re=ne;if(!ee.more()||!ee.lookingAt("}"))return-1;if(ee.skip(1),ne<0||ne>1e3||-2===re||re>1e3||re>=0&&ne>re)throw new dt(Fe.ERR_INVALID_REPEAT_SIZE,ee.from(te));return ne<<16|re&et.MAX_BMP}static isValidCaptureName(ee){if(0===ee.length)return!1;for(let te=0;te<ee.length;te++){const ne=ee.codePointAt(te);if(ne!==We.CODES.get("_")&&!st.isalnum(ne))return!1}return!0}static parseInt(ee){const te=ee.pos();for(;ee.more()&&ee.peek()>=We.CODES.get("0")&&ee.peek()<=We.CODES.get("9");)ee.skip(1);const ne=ee.from(te);return 0===ne.length||ne.length>1&&ne.codePointAt(0)===We.CODES.get("0")?-1:ne.length>8?-2:parseInt(ne,10)}static isCharClass(ee){return ee.op===vt.Op.LITERAL&&1===ee.runes.length||ee.op===vt.Op.CHAR_CLASS||ee.op===vt.Op.ANY_CHAR_NOT_NL||ee.op===vt.Op.ANY_CHAR}static matchRune(ee,te){switch(ee.op){case vt.Op.LITERAL:return 1===ee.runes.length&&ee.runes[0]===te;case vt.Op.CHAR_CLASS:for(let ne=0;ne<ee.runes.length;ne+=2)if(ee.runes[ne]<=te&&te<=ee.runes[ne+1])return!0;return!1;case vt.Op.ANY_CHAR_NOT_NL:return te!==We.CODES.get("\n");case vt.Op.ANY_CHAR:return!0}return!1}static mergeCharClass(ee,te){switch(ee.op){case vt.Op.ANY_CHAR:break;case vt.Op.ANY_CHAR_NOT_NL:Fe.matchRune(te,We.CODES.get("\n"))&&(ee.op=vt.Op.ANY_CHAR);break;case vt.Op.CHAR_CLASS:te.op===vt.Op.LITERAL?ee.runes=new un(ee.runes).appendLiteral(te.runes[0],te.flags).toArray():ee.runes=new un(ee.runes).appendClass(te.runes).toArray();break;case vt.Op.LITERAL:if(te.runes[0]===ee.runes[0]&&te.flags===ee.flags)break;ee.op=vt.Op.CHAR_CLASS,ee.runes=(new un).appendLiteral(ee.runes[0],ee.flags).appendLiteral(te.runes[0],te.flags).toArray()}}static parseEscape(ee){const te=ee.pos();if(ee.skip(1),!ee.more())throw new dt(Fe.ERR_TRAILING_BACKSLASH);let ne=ee.pop();e:switch(ne){case We.CODES.get("1"):case We.CODES.get("2"):case We.CODES.get("3"):case We.CODES.get("4"):case We.CODES.get("5"):case We.CODES.get("6"):case We.CODES.get("7"):if(!ee.more()||ee.peek()<We.CODES.get("0")||ee.peek()>We.CODES.get("7"))break;case We.CODES.get("0"):{let te=ne-We.CODES.get("0");for(let ne=1;ne<3&&!(!ee.more()||ee.peek()<We.CODES.get("0")||ee.peek()>We.CODES.get("7"));ne++)te=8*te+ee.peek()-We.CODES.get("0"),ee.skip(1);return te}case We.CODES.get("x"):{if(!ee.more())break;if(ne=ee.pop(),ne===We.CODES.get("{")){let te=0,re=0;for(;;){if(!ee.more())break e;if(ne=ee.pop(),ne===We.CODES.get("}"))break;const se=st.unhex(ne);if(se<0)break e;if(re=16*re+se,re>et.MAX_RUNE)break e;te++}if(0===te)break e;return re}const te=st.unhex(ne);if(!ee.more())break;ne=ee.pop();const re=st.unhex(ne);if(te<0||re<0)break;return 16*te+re}case We.CODES.get("a"):return We.CODES.get("");case We.CODES.get("f"):return We.CODES.get("\f");case We.CODES.get("n"):return We.CODES.get("\n");case We.CODES.get("r"):return We.CODES.get("\r");case We.CODES.get("t"):return We.CODES.get("\t");case We.CODES.get("v"):return We.CODES.get("\v");default:if(ne<=et.MAX_ASCII&&!st.isalnum(ne))return ne}throw new dt(Fe.ERR_INVALID_ESCAPE,ee.from(te))}static parseClassChar(ee,te){if(!ee.more())throw new dt(Fe.ERR_MISSING_BRACKET,ee.from(te));return ee.lookingAt("\\")?Fe.parseEscape(ee):ee.pop()}static concatRunes(ee,te){for(let ne=0;ne<te.length;ne++)ee.push(te[ne]);return ee}static hasCapture(ee){if(null===ee)return!1;if(ee.op===vt.Op.CAPTURE)return!0;if(ee.subs)for(let te of ee.subs)if(Fe.hasCapture(te))return!0;return!1}constructor(ee,te=0){this.wholeRegexp=ee,this.flags=te,this.numCap=0,this.namedGroups=Object.create(null),this.stack=[],this.free=null,this.numRegexp=0,this.numRunes=0,this.repeats=0,this.height=null,this.size=null,this.nlb=0}newRegexp(ee){let te=this.free;return null!==te&&null!==te.subs&&te.subs.length>0?(this.free=te.subs[0],te.reinit(),te.op=ee):(te=new vt(ee),this.numRegexp+=1),te}reuse(ee){null!==this.height&&this.height.has(ee)&&this.height.delete(ee),null!==ee.subs&&ee.subs.length>0&&(ee.subs[0]=this.free),this.free=ee}checkLimits(ee){if(this.numRunes>Fe.MAX_RUNES)throw new dt(Fe.ERR_LARGE);this.checkSize(ee),this.checkHeight(ee)}checkSize(ee){if(null===this.size){if(0===this.repeats&&(this.repeats=1),ee.op===vt.Op.REPEAT){let te=ee.max;-1===te&&(te=ee.min),te<=0&&(te=1),te>Math.floor(Fe.MAX_SIZE/this.repeats)?this.repeats=Fe.MAX_SIZE:this.repeats*=te}if(this.numRegexp<Math.floor(Fe.MAX_SIZE/this.repeats))return;this.size=new Map;for(let ee of this.stack)this.checkSize(ee)}if(this.calcSize(ee,!0)>Fe.MAX_SIZE)throw new dt(Fe.ERR_LARGE)}calcSize(ee,te=!1){if(!te&&null!==this.size&&this.size.has(ee))return this.size.get(ee);let ne=0;switch(ee.op){case vt.Op.LITERAL:ne=ee.runes.length;break;case vt.Op.PLB:case vt.Op.NLB:case vt.Op.CAPTURE:case vt.Op.STAR:ne=2+this.calcSize(ee.subs[0]);break;case vt.Op.PLUS:case vt.Op.QUEST:ne=1+this.calcSize(ee.subs[0]);break;case vt.Op.CONCAT:for(let te of ee.subs)ne+=this.calcSize(te);break;case vt.Op.ALTERNATE:for(let te of ee.subs)ne+=this.calcSize(te);ee.subs.length>1&&(ne=ne+ee.subs.length-1);break;case vt.Op.REPEAT:{let te=this.calcSize(ee.subs[0]);if(-1===ee.max){ne=0===ee.min?2+te:1+ee.min*te;break}ne=ee.max*te+(ee.max-ee.min);break}}return ne=Math.max(1,ne),null===this.size&&(this.size=new Map),this.size.set(ee,ne),ne}checkHeight(ee){if(!(this.numRegexp<Fe.MAX_HEIGHT)){if(null===this.height){this.height=new Map;for(let ee of this.stack)this.checkHeight(ee)}if(this.calcHeight(ee,!0)>Fe.MAX_HEIGHT)throw new dt(Fe.ERR_NESTING_DEPTH)}}calcHeight(ee,te=!1){if(!te&&null!==this.height&&this.height.has(ee))return this.height.get(ee);let ne=1;for(let te of ee.subs){const ee=this.calcHeight(te);ne<1+ee&&(ne=1+ee)}return null===this.height&&(this.height=new Map),this.height.set(ee,ne),ne}pop(){return this.stack.pop()}popToPseudo(){const ee=this.stack.length;let te=ee;for(;te>0&&!vt.isPseudoOp(this.stack[te-1].op);)te--;const ne=this.stack.slice(te,ee);return this.stack=this.stack.slice(0,te),ne}push(ee){if(this.numRunes+=ee.runes.length,ee.op===vt.Op.CHAR_CLASS&&2===ee.runes.length&&ee.runes[0]===ee.runes[1]){if(this.maybeConcat(ee.runes[0],this.flags&~Me.FOLD_CASE))return null;ee.op=vt.Op.LITERAL,ee.runes=[ee.runes[0]],ee.flags=this.flags&~Me.FOLD_CASE}else if(ee.op===vt.Op.CHAR_CLASS&&4===ee.runes.length&&ee.runes[0]===ee.runes[1]&&ee.runes[2]===ee.runes[3]&&et.simpleFold(ee.runes[0])===ee.runes[2]&&et.simpleFold(ee.runes[2])===ee.runes[0]||ee.op===vt.Op.CHAR_CLASS&&2===ee.runes.length&&ee.runes[0]+1===ee.runes[1]&&et.simpleFold(ee.runes[0])===ee.runes[1]&&et.simpleFold(ee.runes[1])===ee.runes[0]){if(this.maybeConcat(ee.runes[0],this.flags|Me.FOLD_CASE))return null;ee.op=vt.Op.LITERAL,ee.runes=[ee.runes[0]],ee.flags=this.flags|Me.FOLD_CASE}else this.maybeConcat(-1,0);return this.stack.push(ee),this.checkLimits(ee),ee}maybeConcat(ee,te){const ne=this.stack.length;if(ne<2)return!1;const re=this.stack[ne-1],se=this.stack[ne-2];return re.op===vt.Op.LITERAL&&se.op===vt.Op.LITERAL&&(re.flags&Me.FOLD_CASE)==(se.flags&Me.FOLD_CASE)&&(se.runes=Fe.concatRunes(se.runes,re.runes),ee>=0?(re.runes=[ee],re.flags=te,!0):(this.pop(),this.reuse(re),!1))}newLiteral(ee,te){const ne=this.newRegexp(vt.Op.LITERAL);return ne.flags=te,te&Me.FOLD_CASE&&(ee=Fe.minFoldRune(ee)),ne.runes=[ee],ne}literal(ee){this.push(this.newLiteral(ee,this.flags))}op(ee){const te=this.newRegexp(ee);return te.flags=this.flags,this.push(te)}repeat(ee,te,ne,re,se,ie){let ae=this.flags;if(ae&Me.PERL_X&&(se.more()&&se.lookingAt("?")&&(se.skip(1),ae^=Me.NON_GREEDY),-1!==ie))throw new dt(Fe.ERR_INVALID_REPEAT_OP,se.from(ie));const oe=this.stack.length;if(0===oe)throw new dt(Fe.ERR_MISSING_REPEAT_ARGUMENT,se.from(re));const ue=this.stack[oe-1];if(vt.isPseudoOp(ue.op))throw new dt(Fe.ERR_MISSING_REPEAT_ARGUMENT,se.from(re));const Be=this.newRegexp(ee);if(Be.min=te,Be.max=ne,Be.flags=ae,Be.subs=[ue],this.stack[oe-1]=Be,this.checkLimits(Be),ee===vt.Op.REPEAT&&(te>=2||ne>=2)&&!this.repeatIsValid(Be,1e3))throw new dt(Fe.ERR_INVALID_REPEAT_SIZE,se.from(re))}repeatIsValid(ee,te){if(ee.op===vt.Op.REPEAT){let ne=ee.max;if(0===ne)return!0;if(ne<0&&(ne=ee.min),ne>te)return!1;ne>0&&(te=Math.trunc(te/ne))}for(let ne of ee.subs)if(!this.repeatIsValid(ne,te))return!1;return!0}concat(){this.maybeConcat(-1,0);const ee=this.popToPseudo();return 0===ee.length?this.push(this.newRegexp(vt.Op.EMPTY_MATCH)):this.push(this.collapse(ee,vt.Op.CONCAT))}alternate(){const ee=this.popToPseudo();return ee.length>0&&this.cleanAlt(ee[ee.length-1]),0===ee.length?this.push(this.newRegexp(vt.Op.NO_MATCH)):this.push(this.collapse(ee,vt.Op.ALTERNATE))}cleanAlt(ee){ee.op===vt.Op.CHAR_CLASS&&(ee.runes=new un(ee.runes).cleanClass().toArray(),2===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===et.MAX_RUNE?(ee.runes=[],ee.op=vt.Op.ANY_CHAR):4===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===We.CODES.get("\n")-1&&ee.runes[2]===We.CODES.get("\n")+1&&ee.runes[3]===et.MAX_RUNE&&(ee.runes=[],ee.op=vt.Op.ANY_CHAR_NOT_NL))}collapse(ee,te){if(1===ee.length)return ee[0];let ne=0;for(let re of ee)ne+=re.op===te?re.subs.length:1;let re=new Array(ne).fill(null),se=0;for(let ne of ee)if(ne.op===te){for(let ee=0;ee<ne.subs.length;ee++)re[se++]=ne.subs[ee];this.reuse(ne)}else re[se++]=ne;let ie=this.newRegexp(te);if(ie.subs=re,te===vt.Op.ALTERNATE&&(ie.subs=this.factor(ie.subs),1===ie.subs.length)){const ee=ie;ie=ie.subs[0],this.reuse(ee)}return ie}factor(ee){if(ee.length<2)return ee;let te=0,ne=ee.length,re=0,se=null,ie=0,ae=0,oe=0;for(let ue=0;ue<=ne;ue++){let Be=null,le=0,ce=0;if(ue<ne){let ne=ee[te+ue];if(ne.op===vt.Op.CONCAT&&ne.subs.length>0&&(ne=ne.subs[0]),ne.op===vt.Op.LITERAL&&(Be=ne.runes,le=ne.runes.length,ce=ne.flags&Me.FOLD_CASE),ce===ae){let ee=0;for(;ee<ie&&ee<le&&se[ee]===Be[ee];)ee++;if(ee>0){ie=ee;continue}}}if(ue===oe);else if(ue===oe+1)ee[re++]=ee[te+oe];else{const ne=this.newRegexp(vt.Op.LITERAL);ne.flags=ae,ne.runes=se.slice(0,ie);for(let ne=oe;ne<ue;ne++)ee[te+ne]=this.removeLeadingString(ee[te+ne],ie),this.checkLimits(ee[te+ne]);const Be=this.collapse(ee.slice(te+oe,te+ue),vt.Op.ALTERNATE),le=this.newRegexp(vt.Op.CONCAT);le.subs=[ne,Be],ee[re++]=le}oe=ue,se=Be,ie=le,ae=ce}ne=re,te=0,oe=0,re=0;let ue=null;for(let se=0;se<=ne;se++){let ie=null;if(!(se<ne&&(ie=Fe.leadingRegexp(ee[te+se]),null!==ue&&ue.equals(ie)&&(Fe.isCharClass(ue)||ue.op===vt.Op.REPEAT&&ue.min===ue.max&&Fe.isCharClass(ue.subs[0]))))){if(se===oe);else if(se===oe+1)ee[re++]=ee[te+oe];else{const ne=ue;for(let ne=oe;ne<se;ne++){const re=ne!==oe;ee[te+ne]=this.removeLeadingRegexp(ee[te+ne],re),this.checkLimits(ee[te+ne])}const ie=this.collapse(ee.slice(te+oe,te+se),vt.Op.ALTERNATE),ae=this.newRegexp(vt.Op.CONCAT);ae.subs=[ne,ie],ee[re++]=ae}oe=se,ue=ie}}ne=re,te=0,oe=0,re=0;for(let se=0;se<=ne;se++)if(!(se<ne&&Fe.isCharClass(ee[te+se]))){if(se===oe);else if(se===oe+1)ee[re++]=ee[te+oe];else{let ne=oe;for(let re=oe+1;re<se;re++){const se=ee[te+ne],ie=ee[te+re];(se.op<ie.op||se.op===ie.op&&(null!==se.runes?se.runes.length:0)<(null!==ie.runes?ie.runes.length:0))&&(ne=re)}const ie=ee[te+oe];ee[te+oe]=ee[te+ne],ee[te+ne]=ie;for(let ne=oe+1;ne<se;ne++)Fe.mergeCharClass(ee[te+oe],ee[te+ne]),this.reuse(ee[te+ne]);this.cleanAlt(ee[te+oe]),ee[re++]=ee[te+oe]}se<ne&&(ee[re++]=ee[te+se]),oe=se+1}ne=re,te=0,oe=0,re=0;for(let se=0;se<ne;++se)se+1<ne&&ee[te+se].op===vt.Op.EMPTY_MATCH&&ee[te+se+1].op===vt.Op.EMPTY_MATCH||(ee[re++]=ee[te+se]);return ne=re,te=0,ee.slice(te,ne)}removeLeadingString(ee,te){if(ee.op===vt.Op.CONCAT&&ee.subs.length>0){const ne=this.removeLeadingString(ee.subs[0],te);if(ee.subs[0]=ne,ne.op===vt.Op.EMPTY_MATCH)switch(this.reuse(ne),ee.subs.length){case 0:case 1:ee.op=vt.Op.EMPTY_MATCH,ee.subs=vt.emptySubs();break;case 2:{const te=ee;ee=ee.subs[1],this.reuse(te);break}default:ee.subs=ee.subs.slice(1,ee.subs.length)}return ee}return ee.op===vt.Op.LITERAL&&(ee.runes=ee.runes.slice(te,ee.runes.length),0===ee.runes.length&&(ee.op=vt.Op.EMPTY_MATCH)),ee}removeLeadingRegexp(ee,te){if(ee.op===vt.Op.CONCAT&&ee.subs.length>0){switch(te&&this.reuse(ee.subs[0]),ee.subs=ee.subs.slice(1,ee.subs.length),ee.subs.length){case 0:ee.op=vt.Op.EMPTY_MATCH,ee.subs=vt.emptySubs();break;case 1:{const te=ee;ee=ee.subs[0],this.reuse(te);break}}return ee}return te&&this.reuse(ee),this.newRegexp(vt.Op.EMPTY_MATCH)}parseInternal(){if(this.flags&Me.LITERAL)return Fe.literalRegexp(this.wholeRegexp,this.flags);let ee=-1,te=-1,ne=-1;const re=new Bn(this.wholeRegexp);for(;re.more();){let se=-1;e:switch(re.peek()){case We.CODES.get("("):if(this.flags&Me.LOOKBEHIND){if(re.lookingAt("(?<=")){this.parsePosLookBehind(),re.skip(4);break}if(re.lookingAt("(?<!")){this.parseNegLookBehind(),re.skip(4);break}}if(this.flags&Me.PERL_X&&re.lookingAt("(?")){this.parsePerlFlags(re);break}this.op(vt.Op.LEFT_PAREN).cap=++this.numCap,re.skip(1);break;case We.CODES.get("|"):this.parseVerticalBar(),re.skip(1);break;case We.CODES.get(")"):this.parseRightParen(),re.skip(1);break;case We.CODES.get("^"):this.flags&Me.ONE_LINE?this.op(vt.Op.BEGIN_TEXT):this.op(vt.Op.BEGIN_LINE),re.skip(1);break;case We.CODES.get("$"):this.flags&Me.ONE_LINE?this.op(vt.Op.END_TEXT).flags|=Me.WAS_DOLLAR:this.op(vt.Op.END_LINE),re.skip(1);break;case We.CODES.get("."):this.flags&Me.DOT_NL?this.op(vt.Op.ANY_CHAR):this.op(vt.Op.ANY_CHAR_NOT_NL),re.skip(1);break;case We.CODES.get("["):this.parseClass(re);break;case We.CODES.get("*"):case We.CODES.get("+"):case We.CODES.get("?"):{se=re.pos();let ie=null;switch(re.pop()){case We.CODES.get("*"):ie=vt.Op.STAR;break;case We.CODES.get("+"):ie=vt.Op.PLUS;break;case We.CODES.get("?"):ie=vt.Op.QUEST}this.repeat(ie,te,ne,se,re,ee);break}case We.CODES.get("{"):{se=re.pos();const ie=Fe.parseRepeat(re);if(ie<0){re.rewindTo(se),this.literal(re.pop());break}te=ie>>16,ne=(ie&et.MAX_BMP)<<16>>16,this.repeat(vt.Op.REPEAT,te,ne,se,re,ee);break}case We.CODES.get("\\"):{const ee=re.pos();if(re.skip(1),this.flags&Me.PERL_X&&re.more())switch(re.pop()){case We.CODES.get("A"):this.op(vt.Op.BEGIN_TEXT);break e;case We.CODES.get("b"):this.op(vt.Op.WORD_BOUNDARY);break e;case We.CODES.get("B"):this.op(vt.Op.NO_WORD_BOUNDARY);break e;case We.CODES.get("C"):throw new dt(Fe.ERR_INVALID_ESCAPE,"\\C");case We.CODES.get("Q"):{let ee=re.rest();const te=ee.indexOf("\\E");te>=0?(ee=ee.substring(0,te),re.skipString(ee),re.skipString("\\E")):re.skipString(ee);let ne=0;for(;ne<ee.length;){const te=ee.codePointAt(ne);this.literal(te),ne+=st.charCount(te)}break e}case We.CODES.get("z"):this.op(vt.Op.END_TEXT);break e;default:re.rewindTo(ee)}else re.rewindTo(ee);const te=this.newRegexp(vt.Op.CHAR_CLASS);if(te.flags=this.flags,re.lookingAt("\\p")||re.lookingAt("\\P")){const ee=new un;if(this.parseUnicodeClass(re,ee)){te.runes=ee.toArray(),this.push(te);break e}}const ne=new un;if(this.parsePerlClassEscape(re,ne)){te.runes=ne.toArray(),this.push(te);break e}re.rewindTo(ee),this.reuse(te),this.literal(Fe.parseEscape(re));break}default:this.literal(re.pop())}ee=se}if(this.concat(),this.swapVerticalBar()&&this.pop(),this.alternate(),1!==this.stack.length)throw new dt(Fe.ERR_MISSING_PAREN,this.wholeRegexp);return this.stack[0].namedGroups=this.namedGroups,this.stack[0]}parsePerlFlags(ee){const te=ee.pos(),ne=ee.rest();if(ne.startsWith("(?P<")||ne.startsWith("(?<")){const te="P"===ne.charAt(2)?4:3,re=ne.indexOf(">");if(re<0)throw new dt(Fe.ERR_INVALID_NAMED_CAPTURE,ne);const se=ne.substring(te,re);if(ee.skipString(se),ee.skip(te+1),!Fe.isValidCaptureName(se))throw new dt(Fe.ERR_INVALID_NAMED_CAPTURE,ne.substring(0,re+1));const ie=this.op(vt.Op.LEFT_PAREN);if(ie.cap=++this.numCap,this.namedGroups[se])throw new dt(Fe.ERR_DUPLICATE_NAMED_CAPTURE,se);return this.namedGroups[se]=this.numCap,void(ie.name=se)}ee.skip(2);let re=this.flags,se=1,ie=!1;e:for(;ee.more();){const te=ee.pop();switch(te){case We.CODES.get("i"):re|=Me.FOLD_CASE,ie=!0;break;case We.CODES.get("m"):re&=~Me.ONE_LINE,ie=!0;break;case We.CODES.get("s"):re|=Me.DOT_NL,ie=!0;break;case We.CODES.get("U"):re|=Me.NON_GREEDY,ie=!0;break;case We.CODES.get("-"):if(se<0)break e;se=-1,re=~re,ie=!1;break;case We.CODES.get(":"):case We.CODES.get(")"):if(se<0){if(!ie)break e;re=~re}return te===We.CODES.get(":")&&this.op(vt.Op.LEFT_PAREN),void(this.flags=re);default:break e}}throw new dt(Fe.ERR_INVALID_PERL_OP,ee.from(te))}parsePosLookBehind(){const ee=this.newRegexp(vt.Op.LEFT_PAREN);return ee.flags=this.flags,ee.lb=++this.nlb,this.push(ee)}parseNegLookBehind(){const ee=this.newRegexp(vt.Op.LEFT_PAREN);return ee.flags=this.flags,ee.lb=-++this.nlb,this.push(ee)}parseVerticalBar(){this.concat(),this.swapVerticalBar()||this.op(vt.Op.VERTICAL_BAR)}swapVerticalBar(){const ee=this.stack.length;if(ee>=3&&this.stack[ee-2].op===vt.Op.VERTICAL_BAR&&Fe.isCharClass(this.stack[ee-1])&&Fe.isCharClass(this.stack[ee-3])){let te=this.stack[ee-1],ne=this.stack[ee-3];if(te.op>ne.op){const re=ne;ne=te,te=re,this.stack[ee-3]=ne}return Fe.mergeCharClass(ne,te),this.reuse(te),this.pop(),!0}if(ee>=2){const te=this.stack[ee-1],ne=this.stack[ee-2];if(ne.op===vt.Op.VERTICAL_BAR)return ee>=3&&this.cleanAlt(this.stack[ee-3]),this.stack[ee-2]=te,this.stack[ee-1]=ne,!0}return!1}parseRightParen(){if(this.concat(),this.swapVerticalBar()&&this.pop(),this.alternate(),this.stack.length<2)throw new dt(Fe.ERR_UNEXPECTED_PAREN,this.wholeRegexp);const ee=this.pop(),te=this.pop();if(te.op!==vt.Op.LEFT_PAREN)throw new dt(Fe.ERR_UNEXPECTED_PAREN,this.wholeRegexp);if(this.flags=te.flags,0!==te.lb){if(Fe.hasCapture(ee))throw new dt(Fe.ERR_INVALID_CAPTURE_IN_LOOKBEHIND,this.wholeRegexp);return te.lb>0?te.op=vt.Op.PLB:te.op=vt.Op.NLB,te.subs=[ee],void this.push(te)}0===te.cap?this.push(ee):(te.op=vt.Op.CAPTURE,te.subs=[ee],this.push(te))}parsePerlClassEscape(ee,te){const ne=ee.pos();if(!(this.flags&Me.PERL_X&&ee.more()&&ee.pop()===We.CODES.get("\\")&&ee.more()))return!1;ee.pop();const re=ee.from(ne),se=Qt.has(re)?Qt.get(re):null;return null!==se&&(te.appendGroup(se,!!(this.flags&Me.FOLD_CASE)),!0)}parseNamedClass(ee,te){const ne=ee.rest(),re=ne.indexOf(":]");if(re<0)return!1;const se=ne.substring(0,re+2);ee.skipString(se);const ie=on.has(se)?on.get(se):null;if(null===ie)throw new dt(Fe.ERR_INVALID_CHAR_RANGE,se);return te.appendGroup(ie,!!(this.flags&Me.FOLD_CASE)),!0}parseUnicodeClass(ee,te){const ne=ee.pos();if(!(this.flags&Me.UNICODE_GROUPS)||!ee.lookingAt("\\p")&&!ee.lookingAt("\\P"))return!1;ee.skip(1);let re,se=1,ie=ee.pop();if(ie===We.CODES.get("P")&&(se=-1),!ee.more())throw ee.rewindTo(ne),new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.rest());if(ie=ee.pop(),ie!==We.CODES.get("{"))re=st.runeToString(ie);else{const te=ee.rest(),se=te.indexOf("}");if(se<0)throw ee.rewindTo(ne),new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.rest());re=te.substring(0,se),ee.skipString(re),ee.skip(1)}0!==re.length&&re.codePointAt(0)===We.CODES.get("^")&&(se=0-se,re=re.substring(1));const ae=Fe.unicodeTable(re);if(null===ae)throw new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.from(ne));ae.sign<0&&(se=0-se);const oe=ae.tab,ue=ae.fold;if(this.flags&Me.FOLD_CASE&&null!==ue){const ee=(new un).appendTable(oe).appendTable(ue).cleanClass().toArray();te.appendClassWithSign(ee,se)}else te.appendTableWithSign(oe,se);return!0}parseClass(ee){const te=ee.pos();ee.skip(1);const ne=this.newRegexp(vt.Op.CHAR_CLASS);ne.flags=this.flags;const re=new un;let se=1;ee.more()&&ee.lookingAt("^")&&(se=-1,ee.skip(1),this.flags&Me.CLASS_NL||re.appendRange(We.CODES.get("\n"),We.CODES.get("\n")));let ie=!0;for(;!ee.more()||ee.peek()!==We.CODES.get("]")||ie;){if(ee.more()&&ee.lookingAt("-")&&!(this.flags&Me.PERL_X)&&!ie){const ne=ee.rest();if("-"===ne||!ne.startsWith("-]"))throw ee.rewindTo(te),new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.rest())}ie=!1;const ne=ee.pos();if(ee.lookingAt("[:")){if(this.parseNamedClass(ee,re))continue;ee.rewindTo(ne)}if(this.parseUnicodeClass(ee,re))continue;if(this.parsePerlClassEscape(ee,re))continue;ee.rewindTo(ne);const se=Fe.parseClassChar(ee,te);let ae=se;if(ee.more()&&ee.lookingAt("-"))if(ee.skip(1),ee.more()&&ee.lookingAt("]"))ee.skip(-1);else if(ae=Fe.parseClassChar(ee,te),ae<se)throw new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.from(ne));this.flags&Me.FOLD_CASE?re.appendFoldedRange(se,ae):re.appendRange(se,ae)}ee.skip(1),re.cleanClass(),se<0&&re.negateClass(),ne.runes=re.toArray(),this.push(ne)}},Fe.ERR_INTERNAL_ERROR="regexp/syntax: internal error",Fe.ERR_INVALID_CHAR_RANGE="invalid character class range",Fe.ERR_INVALID_ESCAPE="invalid escape sequence",Fe.ERR_INVALID_NAMED_CAPTURE="invalid named capture",Fe.ERR_INVALID_PERL_OP="invalid or unsupported Perl syntax",Fe.ERR_INVALID_REPEAT_OP="invalid nested repetition operator",Fe.ERR_INVALID_REPEAT_SIZE="invalid repeat count",Fe.ERR_MISSING_BRACKET="missing closing ]",Fe.ERR_MISSING_PAREN="missing closing )",Fe.ERR_MISSING_REPEAT_ARGUMENT="missing argument to repetition operator",Fe.ERR_TRAILING_BACKSLASH="trailing backslash at end of expression",Fe.ERR_DUPLICATE_NAMED_CAPTURE="duplicate capture group name",Fe.ERR_UNEXPECTED_PAREN="unexpected )",Fe.ERR_NESTING_DEPTH="expression nests too deeply",Fe.ERR_LARGE="expression too large",Fe.ERR_INVALID_CAPTURE_IN_LOOKBEHIND="invalid capture in lookbehind",Fe.MAX_HEIGHT=1e3,Fe.MAX_SIZE=3355443,Fe.MAX_RUNES=33554432,Fe.ANY_TABLE=new $e(new Uint32Array([0,et.MAX_RUNE,1])),Fe.ASCII_TABLE=new $e(new Uint32Array([0,127,1])),Fe.ASCII_FOLD_TABLE=new $e(new Uint32Array([0,127,1,383,383,1,8490,8490,1])),Fe),_n=class{constructor(ee){this.value=ee}get(){return this.value}set(ee){this.value=ee}compareAndSet(ee,te){return this.value===ee&&(this.value=te,!0)}},hn=class RE2{static initTest(ee){const te=RE2.compile(ee),ne=new RE2(te.expr,te.prog,te.numSubexp,te.longest);return ne.cond=te.cond,ne.prefix=te.prefix,ne.prefixUTF8=te.prefixUTF8,ne.prefixComplete=te.prefixComplete,ne.prefixRune=te.prefixRune,ne.prefilter=te.prefilter,ne}static compile(ee){return RE2.compileImpl(ee,Me.PERL,!1)}static compilePOSIX(ee){return RE2.compileImpl(ee,Me.POSIX,!0)}static compileImpl(ee,te,ne){let re=cn.parse(ee,te);const se=re.maxCap();re=Gt.simplify(re);const ie=Ot.build(re),ae=kt.compileRegexp(re),oe=new RE2(ee,ae,se,ne);oe.prefilter=ie.type===Ft.Type.NONE?null:ie;const[ue,Be]=ae.prefix();return oe.prefixComplete=ue,oe.prefix=Be,oe.prefixUTF8=st.stringToUtf8ByteArray(oe.prefix),oe.prefix.length>0&&(oe.prefixRune=oe.prefix.codePointAt(0)),oe.namedGroups=re.namedGroups,oe}static match(ee,te){return RE2.compile(ee).match(te)}constructor(ee,te,ne=0,re=0){this.expr=ee,this.prog=te,this.numSubexp=ne,this.longest=re,this.cond=te.startCond(),this.prefix=null,this.prefixUTF8=null,this.prefixComplete=!1,this.prefixRune=0,this.pooled=new _n,this.dfa=new Rt(this.prog),this.onepass=St.compile(this.prog),this.prefilter=null}matchPrefixComplete(ee,te,ne,re){if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return null;let se=-1,ie=-1;const ae=ee.prefixLength(this);if(ne===Me.UNANCHORED){const ne=ee.index(this,te);if(ne<0)return null;se=te+ne,ie=se+ae}else if(ne===Me.ANCHOR_BOTH){if(ee.endPos()!==ae)return null;if(0!==ee.index(this,0))return null;se=0,ie=ae}else if(ne===Me.ANCHOR_START){if(0!==ee.index(this,0))return null;se=0,ie=ae}if(se<0)return null;if(re>0){const ee=new Int32Array(re).fill(-1);return ee[0]=se,ee[1]=ie,Array.from(ee)}return[]}executeEngine(ee,te,ne,re){if(this.prefixComplete&&(0===re||0===this.numSubexp))return this.matchPrefixComplete(ee,te,ne,re);if(null!==this.prefilter&&ne===Me.UNANCHORED&&!this.prefilter.eval(ee,te))return null;if(null!==this.onepass)return St.execute(this,ee,te,ne,re);if(re>0)return 0===this.prog.numLb&&ee.endPos()<=yt.maxBitStateLen(this.prog)?yt.execute(this,ee,te,ne,re):this.doExecuteNFA(ee,te,ne,re);if(0===this.prog.numLb){const se=this.dfa.match(ee,te,ne);if(null!==se)return se?[]:null;if(ee.endPos()<=yt.maxBitStateLen(this.prog))return yt.execute(this,ee,te,ne,re)}return this.doExecuteNFA(ee,te,ne,re)}numberOfCapturingGroups(){return this.numSubexp}numberOfInstructions(){return this.prog.numInst()}get(){let ee;do{ee=this.pooled.get()}while(ee&&!this.pooled.compareAndSet(ee,ee.next));return ee}reset(){this.pooled.set(null)}put(ee,te){let ne=this.pooled.get();do{ne=this.pooled.get(),!te&&ne&&(ee=At.fromMachine(ee),te=!0),ee.next!==ne&&(ee.next=ne)}while(!this.pooled.compareAndSet(ne,ee))}toString(){return this.expr}doExecuteNFA(ee,te,ne,re){let se=this.get(),ie=!1;se?null!==se.next&&(se=At.fromMachine(se),ie=!0):(se=At.fromRE2(this),ie=!0),se.init(re);const ae=se.match(ee,te,ne)?se.submatches():null;return this.put(se,ie),ae}match(ee){return null!==this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,0)}matchWithGroup(ee,te,ne,re,se){return ee instanceof it||(ee=st.isByteArray(ee)?ut.utf8(ee):ut.utf16(ee)),this.matchMachineInput(ee,te,ne,re,se)}matchMachineInput(ee,te,ne,re,se){if(te>ne)return[!1,null];const ie=ee.isUTF16Encoding()?_t.fromUTF16(ee.asCharSequence(),0,ne):_t.fromUTF8(ee.asBytes(),0,ne),ae=this.executeEngine(ie,te,re,2*se);return null===ae?[!1,null]:[!0,ae]}matchUTF8(ee){return null!==this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,0)}replaceAll(ee,te){return this.replaceAllFunc(ee,(()=>te),2*ee.length+1)}replaceFirst(ee,te){return this.replaceAllFunc(ee,(()=>te),1)}replaceAllFunc(ee,te,ne){let re=0,se=0,ie="";const ae=_t.fromUTF16(ee);let oe=0;for(;se<=ee.length;){const ue=this.executeEngine(ae,se,Me.UNANCHORED,2);if(null===ue||0===ue.length)break;ie+=ee.substring(re,ue[0]),(ue[1]>re||0===ue[0])&&(ie+=te(ee.substring(ue[0],ue[1])),oe++),re=ue[1];const Be=7&ae.step(se);if(se+Be>ue[1]?se+=Be:se+1>ue[1]?se++:se=ue[1],oe>=ne)break}return ie+=ee.substring(re),ie}pad(ee){if(null===ee)return null;let te=2*(1+this.numSubexp);if(ee.length<te){let ne=new Array(te).fill(-1);for(let te=0;te<ee.length;te++)ne[te]=ee[te];ee=ne}return ee}allMatches(ee,te,ne=ee=>ee){let re=[];const se=ee.endPos();te<0&&(te=se+1);let ie=0,ae=0,oe=-1;for(;ae<te&&ie<=se;){const te=this.executeEngine(ee,ie,Me.UNANCHORED,this.prog.numCap);if(null===te||0===te.length)break;let ue=!0;if(te[1]===ie){te[0]===oe&&(ue=!1);const ne=ee.step(ie);ne<0?ie=se+1:ie+=7&ne}else ie=te[1];oe=te[1],ue&&(re.push(ne(this.pad(te))),ae++)}return re}findUTF8(ee){const te=this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,2);return null===te?null:ee.slice(te[0],te[1])}findUTF8Index(ee){const te=this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,2);return null===te?null:te.slice(0,2)}find(ee){const te=this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,2);return null===te?"":ee.substring(te[0],te[1])}findIndex(ee){return this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,2)}findUTF8Submatch(ee){const te=this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,this.prog.numCap);if(null===te)return null;const ne=new Array(1+this.numSubexp).fill(null);for(let re=0;re<ne.length;re++)2*re<te.length&&te[2*re]>=0&&(ne[re]=ee.slice(te[2*re],te[2*re+1]));return ne}findUTF8SubmatchIndex(ee){return this.pad(this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,this.prog.numCap))}findSubmatch(ee){const te=this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,this.prog.numCap);if(null===te)return null;const ne=new Array(1+this.numSubexp).fill(null);for(let re=0;re<ne.length;re++)2*re<te.length&&te[2*re]>=0&&(ne[re]=ee.substring(te[2*re],te[2*re+1]));return ne}findSubmatchIndex(ee){return this.pad(this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,this.prog.numCap))}findAllUTF8(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te,(te=>ee.slice(te[0],te[1])));return 0===ne.length?null:ne}findAllUTF8Index(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te,(ee=>ee.slice(0,2)));return 0===ne.length?null:ne}findAll(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te,(te=>ee.substring(te[0],te[1])));return 0===ne.length?null:ne}findAllIndex(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te,(ee=>ee.slice(0,2)));return 0===ne.length?null:ne}findAllUTF8Submatch(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te,(te=>{let ne=new Array(te.length/2|0).fill(null);for(let re=0;re<ne.length;re++)te[2*re]>=0&&(ne[re]=ee.slice(te[2*re],te[2*re+1]));return ne}));return 0===ne.length?null:ne}findAllUTF8SubmatchIndex(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te);return 0===ne.length?null:ne}findAllSubmatch(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te,(te=>{let ne=new Array(te.length/2|0).fill(null);for(let re=0;re<ne.length;re++)te[2*re]>=0&&(ne[re]=ee.substring(te[2*re],te[2*re+1]));return ne}));return 0===ne.length?null:ne}findAllSubmatchIndex(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te);return 0===ne.length?null:ne}};(Oe=class RE2Set{constructor(ee=Oe.UNANCHORED,te=0,ne=8388608){this.anchor=ee,this.jsFlags=te,this.maxMem=ne;let re=Me.PERL;te&He&&(re&=~Me.UNICODE_GROUPS),te&Ke&&(re|=Me.LOOKBEHIND),this.re2Flags=re,this.regexps=[],this.prog=null,this.dfa=null,this.dummyRe2=null}add(ee){if(this.prog)throw new Et("Cannot add patterns after compile");let te=ee;this.jsFlags&ke&&(te=`(?i)${te}`),this.jsFlags&Ge&&(te=`(?s)${te}`),this.jsFlags&Ue&&(te=`(?m)${te}`);const ne=cn.parse(te,this.re2Flags);return this.regexps.push(Gt.simplify(ne)),this.regexps.length-1}compile(){this.prog||(this.prog=kt.compileSet(this.regexps),this.dfa=new Rt(this.prog,this.maxMem),this.dummyRe2={prog:this.prog,cond:this.prog.startCond(),prefix:"",prefixRune:0,longest:!1})}match(ee){this.prog||this.compile();const te=st.isByteArray(ee)?_t.fromUTF8(ee):_t.fromUTF16(ee);let ne=Me.UNANCHORED;this.anchor===Oe.ANCHOR_START?ne=Me.ANCHOR_START:this.anchor===Oe.ANCHOR_BOTH&&(ne=Me.ANCHOR_BOTH);const re=this.dfa.matchSet(te,0,ne);if(null!==re)return re;const se=At.fromRE2(this.dummyRe2);return se.init(0),se.matchSet(te,0,ne)}}).UNANCHORED=Me.UNANCHORED,Oe.ANCHOR_START=Me.ANCHOR_START,Oe.ANCHOR_BOTH=Me.ANCHOR_BOTH;var dn=class TranslateRegExpString{static isHexadecimal(ee){return"0"<=ee&&ee<="9"||"A"<=ee&&ee<="F"||"a"<=ee&&ee<="f"}static translate(ee){let te="";if(ee instanceof RegExp&&(ee.ignoreCase&&(te+="i"),ee.multiline&&(te+="m"),ee.dotAll&&(te+="s"),ee=ee.source),"string"!=typeof ee)return ee;let ne="",re=!1,se=ee.length;0===se&&(ne="(?:)",re=!0);let ie=!1,ae=0;for(;ae<se;){let te=ee[ae];if("\\"===te){if(ae+1<se)switch(te=ee[ae+1],te){case"\\":ne+="\\\\",ae+=2;continue;case"c":if(ae+2<se){let te=ee[ae+2].charCodeAt(0);if(te>=65&&te<=90||te>=97&&te<=122){let ee=te%32;ne+="\\x",ne+=(ee>>4).toString(16).toUpperCase(),ne+=(15&ee).toString(16).toUpperCase(),ae+=3,re=!0;continue}}ne+="c",ae+=2,re=!0;continue;case"u":if(ae+2<se)if("{"===ee[ae+2]){let te=ae+3,ie=!1,oe=!1;for(;te<se;){const ne=ee[te];if("}"===ne){oe=!0;break}if(!TranslateRegExpString.isHexadecimal(ne))break;ie=!0,te++}if(oe&&ie){ne+="\\x",ae+=2,re=!0;continue}}else if(ae+5<se){let te=!0;for(let ne=0;ne<4;ne++)if(!TranslateRegExpString.isHexadecimal(ee[ae+2+ne])){te=!1;break}if(te){ne+="\\x{"+ee.substring(ae+2,ae+6)+"}",ae+=6,re=!0;continue}}ne+="u",ae+=2,re=!0;continue;case"x":{let te=!1;if(ae+2<se&&"{"===ee[ae+2]){let ne=ae+3,re=!1,ie=!1;for(;ne<se;){const te=ee[ne];if("}"===te){ie=!0;break}if(!TranslateRegExpString.isHexadecimal(te))break;re=!0,ne++}ie&&re&&(te=!0)}else ae+3<se&&TranslateRegExpString.isHexadecimal(ee[ae+2])&&TranslateRegExpString.isHexadecimal(ee[ae+3])&&(te=!0);te?(ne+="\\x",ae+=2):(ne+="x",ae+=2,re=!0);continue}case"n":case"r":case"t":case"a":case"f":case"v":case"d":case"D":case"s":case"S":case"w":case"W":case"b":case"B":case"p":case"P":case"A":case"z":case"Q":case"E":case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":ne+="\\"+te,ae+=2;continue;default:{let te=ee.codePointAt(ae+1);if(te>=48&&te<=57||te>=65&&te<=90||te>=97&&te<=122){let se=st.charCount(te);ne+=ee.substring(ae+1,ae+1+se),ae+=se+1,re=!0}else{ne+="\\";let re=st.charCount(te);ne+=ee.substring(ae+1,ae+1+re),ae+=re+1}continue}}}else{if("/"===te){ne+="\\/",ae+=1,re=!0;continue}if("["===te)ie=!0;else if("]"===te)ie=!1;else if(!ie&&"("===te&&ae+2<se&&"?"===ee[ae+1]&&"<"===ee[ae+2]&&ae+3<se&&!"=!>)".includes(ee[ae+3])){ne+="(?P<",ae+=3,re=!0;continue}}let oe=ee.codePointAt(ae),ue=st.charCount(oe);ne+=ee.substring(ae,ae+ue),ae+=ue}const oe=re?ne:ee;return te.length>0?`(?${te})${oe}`:oe}},En=(Ne=class RE2JS{static quote(ee){return st.quoteMeta(ee)}static quoteReplacement(ee,te=!1){return ft.quoteReplacement(ee,te)}static translateRegExp(ee){return dn.translate(ee)}static compile(ee,te=0){let ne=ee;if(te&Ne.CASE_INSENSITIVE&&(ne=`(?i)${ne}`),te&Ne.DOTALL&&(ne=`(?s)${ne}`),te&Ne.MULTILINE&&(ne=`(?m)${ne}`),te&~(Ne.MULTILINE|Ne.DOTALL|Ne.CASE_INSENSITIVE|Ne.DISABLE_UNICODE_GROUPS|Ne.LONGEST_MATCH|Ne.LOOKBEHINDS))throw new pt("Flags should only be a combination of MULTILINE, DOTALL, CASE_INSENSITIVE, DISABLE_UNICODE_GROUPS, LONGEST_MATCH, LOOKBEHINDS");let re=Me.PERL;te&Ne.DISABLE_UNICODE_GROUPS&&(re&=~Me.UNICODE_GROUPS),te&Ne.LOOKBEHINDS&&(re|=Me.LOOKBEHIND);const se=new Ne(ee,te);return se.re2Input=hn.compileImpl(ne,re,!!(te&Ne.LONGEST_MATCH)),se}static matches(ee,te){return Ne.compile(ee).testExact(te)}static initTest(ee,te,ne){if(null==ee)throw new Error("pattern is null");if(null==ne)throw new Error("re2 is null");const re=new Ne(ee,te);return re.re2Input=ne,re}constructor(ee,te){this.patternInput=ee,this.flagsInput=te,this.re2Input=null}reset(){this.re2Input.reset()}flags(){return this.flagsInput}pattern(){return this.patternInput}re2(){return this.re2Input}matches(ee){return this.testExact(ee)}matcher(ee){return st.isByteArray(ee)&&(ee=ut.utf8(ee)),new ft(this,ee)}test(ee){return st.isByteArray(ee)?this.re2Input.matchUTF8(ee):this.re2Input.match(ee)}testExact(ee){const te=st.isByteArray(ee)?_t.fromUTF8(ee):_t.fromUTF16(ee);return null!==this.re2Input.executeEngine(te,0,Me.ANCHOR_BOTH,0)}split(ee,te=0){const ne=this.matcher(ee),re=[];let se=0,ie=0;for(;ne.find();)if(0!==ie||0!==ne.end()){if(te>0&&re.length===te-1)break;if(ie===ne.start()){if(0===te){se+=1,ie=ne.end();continue}}else for(;se>0;)re.push(""),se-=1;re.push(ne.substring(ie,ne.start())),ie=ne.end()}else ie=ne.end();if(0===te&&ie!==ne.inputLength()){for(;se>0;)re.push(""),se-=1;re.push(ne.substring(ie,ne.inputLength()))}return 0===te&&0!==re.length||re.push(ne.substring(ie,ne.inputLength())),re}*matchAll(ee){const te=this.matcher(ee);for(;te.find();){const ne=[te.group(0)];for(let ee=1;ee<=te.groupCount();ee++){const re=te.group(ee);ne.push(null===re?void 0:re)}ne.index=te.start(0),ne.input=ee;const re=this.namedGroups();if(Object.keys(re).length>0){const ee=te.getNamedGroups();for(const te in ee)null===ee[te]&&(ee[te]=void 0);ne.groups=ee}else ne.groups=void 0;yield ne}}toString(){return this.patternInput}programSize(){return this.re2Input.numberOfInstructions()}groupCount(){return this.re2Input.numberOfCapturingGroups()}namedGroups(){return this.re2Input.namedGroups}equals(ee){return this===ee||null!==ee&&this.constructor===ee.constructor&&(this.flagsInput===ee.flagsInput&&this.patternInput===ee.patternInput)}},Ne.CASE_INSENSITIVE=ke,Ne.DOTALL=Ge,Ne.MULTILINE=Ue,Ne.DISABLE_UNICODE_GROUPS=He,Ne.LONGEST_MATCH=qe,Ne.LOOKBEHINDS=Ke,Ne);let Cn="12.17.0";const pn=new class Logger{constructor(ee){this.name=ee,this._logLevel=_e,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(ee){if(!(ee in Be))throw new TypeError(`Invalid value "${ee}" assigned to \`logLevel\``);this._logLevel=ee}setLogLevel(ee){this._logLevel="string"==typeof ee?ce[ee]:ee}get logHandler(){return this._logHandler}set logHandler(ee){if("function"!=typeof ee)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=ee}get userLogHandler(){return this._userLogHandler}set userLogHandler(ee){this._userLogHandler=ee}debug(...ee){this._userLogHandler&&this._userLogHandler(this,Be.DEBUG,...ee),this._logHandler(this,Be.DEBUG,...ee)}log(...ee){this._userLogHandler&&this._userLogHandler(this,Be.VERBOSE,...ee),this._logHandler(this,Be.VERBOSE,...ee)}info(...ee){this._userLogHandler&&this._userLogHandler(this,Be.INFO,...ee),this._logHandler(this,Be.INFO,...ee)}warn(...ee){this._userLogHandler&&this._userLogHandler(this,Be.WARN,...ee),this._logHandler(this,Be.WARN,...ee)}error(...ee){this._userLogHandler&&this._userLogHandler(this,Be.ERROR,...ee),this._logHandler(this,Be.ERROR,...ee)}}("@firebase/firestore");function __PRIVATE_getLogLevel(){return pn.logLevel}function setLogLevel(ee){pn.setLogLevel(ee)}function __PRIVATE_logDebug(ee,...te){if(pn.logLevel<=Be.DEBUG){const ne=te.map(__PRIVATE_argToString);pn.debug(`Firestore (${Cn}): ${ee}`,...ne)}}function __PRIVATE_logError(ee,...te){if(pn.logLevel<=Be.ERROR){const ne=te.map(__PRIVATE_argToString);pn.error(`Firestore (${Cn}): ${ee}`,...ne)}}function __PRIVATE_logWarn(ee,...te){if(pn.logLevel<=Be.WARN){const ne=te.map(__PRIVATE_argToString);pn.warn(`Firestore (${Cn}): ${ee}`,...ne)}}function __PRIVATE_argToString(ee){if("string"==typeof ee)return ee;try{return function __PRIVATE_formatJSON(ee){return JSON.stringify(ee)}(ee)}catch(te){return ee}}function l(ee,te,ne){let re="Unexpected state";"string"==typeof te?re=te:ne=te,__PRIVATE__fail(ee,re,ne)}function __PRIVATE__fail(ee,te,ne){let re=`FIRESTORE (${Cn}) INTERNAL ASSERTION FAILED: ${te} (ID: ${ee.toString(16)})`;if(void 0!==ne)try{re+=" CONTEXT: "+JSON.stringify(ne)}catch(ee){re+=" CONTEXT: "+ne}throw __PRIVATE_logError(re),new Error(re)}function __PRIVATE_hardAssert(ee,te,ne,re){let se="Unexpected state";"string"==typeof ne?se=ne:re=ne,ee||__PRIVATE__fail(te,se,re)}function __PRIVATE_debugAssert(ee,te){ee||l(57014,te)}function __PRIVATE_debugCast(ee,te){return ee}function __PRIVATE_randomBytes(ee){const te="undefined"!=typeof self&&(self.crypto||self.msCrypto),ne=new Uint8Array(ee);if(te&&"function"==typeof te.getRandomValues)te.getRandomValues(ne);else for(let te=0;te<ee;te++)ne[te]=Math.floor(256*Math.random());return ne}class __PRIVATE_AutoId{static newId(){const ee=62*Math.floor(256/62);let te="";for(;te.length<20;){const ne=__PRIVATE_randomBytes(40);for(let re=0;re<ne.length;++re)te.length<20&&ne[re]<ee&&(te+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(ne[re]%62))}return te}}function __PRIVATE_primitiveComparator(ee,te){return ee<te?-1:ee>te?1:0}function __PRIVATE_compareUtf8Strings(ee,te){const ne=Math.min(ee.length,te.length);for(let re=0;re<ne;re++){const ne=ee.charAt(re),se=te.charAt(re);if(ne!==se)return __PRIVATE_isSurrogate(ne)===__PRIVATE_isSurrogate(se)?__PRIVATE_primitiveComparator(ne,se):__PRIVATE_isSurrogate(ne)?1:-1}return __PRIVATE_primitiveComparator(ee.length,te.length)}const mn=55296,fn=57343;function __PRIVATE_isSurrogate(ee){const te=ee.charCodeAt(0);return te>=mn&&te<=fn}function __PRIVATE_arrayEquals(ee,te,ne){return ee.length===te.length&&ee.every(((ee,re)=>ne(ee,te[re])))}function na(ee,te,ne){return void 0===ee&&void 0===te||void 0!==ee&&void 0!==te&&ne(ee,te)}function __PRIVATE_immediateSuccessor(ee){return ee+"\0"}class SortedMap{constructor(ee,te){this.comparator=ee,this.root=te||LLRBNode.EMPTY}insert(ee,te){return new SortedMap(this.comparator,this.root.insert(ee,te,this.comparator).copy(null,null,LLRBNode.BLACK,null,null))}remove(ee){return new SortedMap(this.comparator,this.root.remove(ee,this.comparator).copy(null,null,LLRBNode.BLACK,null,null))}get(ee){let te=this.root;for(;!te.isEmpty();){const ne=this.comparator(ee,te.key);if(0===ne)return te.value;ne<0?te=te.left:ne>0&&(te=te.right)}return null}indexOf(ee){let te=0,ne=this.root;for(;!ne.isEmpty();){const re=this.comparator(ee,ne.key);if(0===re)return te+ne.left.size;re<0?ne=ne.left:(te+=ne.left.size+1,ne=ne.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(ee){return this.root.inorderTraversal(ee)}forEach(ee){this.inorderTraversal(((te,ne)=>(ee(te,ne),!1)))}toString(){const ee=[];return this.inorderTraversal(((te,ne)=>(ee.push(`${te}:${ne}`),!1))),`{${ee.join(", ")}}`}reverseTraversal(ee){return this.root.reverseTraversal(ee)}getIterator(){return new SortedMapIterator(this.root,null,this.comparator,!1)}getIteratorFrom(ee){return new SortedMapIterator(this.root,ee,this.comparator,!1)}getReverseIterator(){return new SortedMapIterator(this.root,null,this.comparator,!0)}getReverseIteratorFrom(ee){return new SortedMapIterator(this.root,ee,this.comparator,!0)}}class SortedMapIterator{constructor(ee,te,ne,re){this.isReverse=re,this.nodeStack=[];let se=1;for(;!ee.isEmpty();)if(se=te?ne(ee.key,te):1,te&&re&&(se*=-1),se<0)ee=this.isReverse?ee.left:ee.right;else{if(0===se){this.nodeStack.push(ee);break}this.nodeStack.push(ee),ee=this.isReverse?ee.right:ee.left}}getNext(){let ee=this.nodeStack.pop();const te={key:ee.key,value:ee.value};if(this.isReverse)for(ee=ee.left;!ee.isEmpty();)this.nodeStack.push(ee),ee=ee.right;else for(ee=ee.right;!ee.isEmpty();)this.nodeStack.push(ee),ee=ee.left;return te}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const ee=this.nodeStack[this.nodeStack.length-1];return{key:ee.key,value:ee.value}}}class LLRBNode{constructor(ee,te,ne,re,se){this.key=ee,this.value=te,this.color=null!=ne?ne:LLRBNode.RED,this.left=null!=re?re:LLRBNode.EMPTY,this.right=null!=se?se:LLRBNode.EMPTY,this.size=this.left.size+1+this.right.size}copy(ee,te,ne,re,se){return new LLRBNode(null!=ee?ee:this.key,null!=te?te:this.value,null!=ne?ne:this.color,null!=re?re:this.left,null!=se?se:this.right)}isEmpty(){return!1}inorderTraversal(ee){return this.left.inorderTraversal(ee)||ee(this.key,this.value)||this.right.inorderTraversal(ee)}reverseTraversal(ee){return this.right.reverseTraversal(ee)||ee(this.key,this.value)||this.left.reverseTraversal(ee)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(ee,te,ne){let re=this;const se=ne(ee,re.key);return re=se<0?re.copy(null,null,null,re.left.insert(ee,te,ne),null):0===se?re.copy(null,te,null,null,null):re.copy(null,null,null,null,re.right.insert(ee,te,ne)),re.fixUp()}removeMin(){if(this.left.isEmpty())return LLRBNode.EMPTY;let ee=this;return ee.left.isRed()||ee.left.left.isRed()||(ee=ee.moveRedLeft()),ee=ee.copy(null,null,null,ee.left.removeMin(),null),ee.fixUp()}remove(ee,te){let ne,re=this;if(te(ee,re.key)<0)re.left.isEmpty()||re.left.isRed()||re.left.left.isRed()||(re=re.moveRedLeft()),re=re.copy(null,null,null,re.left.remove(ee,te),null);else{if(re.left.isRed()&&(re=re.rotateRight()),re.right.isEmpty()||re.right.isRed()||re.right.left.isRed()||(re=re.moveRedRight()),0===te(ee,re.key)){if(re.right.isEmpty())return LLRBNode.EMPTY;ne=re.right.min(),re=re.copy(ne.key,ne.value,null,null,re.right.removeMin())}re=re.copy(null,null,null,null,re.right.remove(ee,te))}return re.fixUp()}isRed(){return this.color}fixUp(){let ee=this;return ee.right.isRed()&&!ee.left.isRed()&&(ee=ee.rotateLeft()),ee.left.isRed()&&ee.left.left.isRed()&&(ee=ee.rotateRight()),ee.left.isRed()&&ee.right.isRed()&&(ee=ee.colorFlip()),ee}moveRedLeft(){let ee=this.colorFlip();return ee.right.left.isRed()&&(ee=ee.copy(null,null,null,null,ee.right.rotateRight()),ee=ee.rotateLeft(),ee=ee.colorFlip()),ee}moveRedRight(){let ee=this.colorFlip();return ee.left.left.isRed()&&(ee=ee.rotateRight(),ee=ee.colorFlip()),ee}rotateLeft(){const ee=this.copy(null,null,LLRBNode.RED,null,this.right.left);return this.right.copy(null,null,this.color,ee,null)}rotateRight(){const ee=this.copy(null,null,LLRBNode.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,ee)}colorFlip(){const ee=this.left.copy(null,null,!this.left.color,null,null),te=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,ee,te)}checkMaxDepth(){const ee=this.check();return Math.pow(2,ee)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw l(43730,{key:this.key,value:this.value});if(this.right.isRed())throw l(14113,{key:this.key,value:this.value});const ee=this.left.check();if(ee!==this.right.check())throw l(27949);return ee+(this.isRed()?0:1)}}LLRBNode.EMPTY=null,LLRBNode.RED=!0,LLRBNode.BLACK=!1,LLRBNode.EMPTY=new class LLRBEmptyNode{constructor(){this.size=0}get key(){throw l(57766)}get value(){throw l(16141)}get color(){throw l(16727)}get left(){throw l(29726)}get right(){throw l(36894)}copy(ee,te,ne,re,se){return this}insert(ee,te,ne){return new LLRBNode(ee,te)}remove(ee,te){return this}isEmpty(){return!0}inorderTraversal(ee){return!1}reverseTraversal(ee){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class SortedSet{constructor(ee){this.comparator=ee,this.data=new SortedMap(this.comparator)}has(ee){return null!==this.data.get(ee)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(ee){return this.data.indexOf(ee)}forEach(ee){this.data.inorderTraversal(((te,ne)=>(ee(te),!1)))}forEachInRange(ee,te){const ne=this.data.getIteratorFrom(ee[0]);for(;ne.hasNext();){const re=ne.getNext();if(this.comparator(re.key,ee[1])>=0)return;te(re.key)}}forEachWhile(ee,te){let ne;for(ne=void 0!==te?this.data.getIteratorFrom(te):this.data.getIterator();ne.hasNext();)if(!ee(ne.getNext().key))return}firstAfterOrEqual(ee){const te=this.data.getIteratorFrom(ee);return te.hasNext()?te.getNext().key:null}getIterator(){return new SortedSetIterator(this.data.getIterator())}getIteratorFrom(ee){return new SortedSetIterator(this.data.getIteratorFrom(ee))}add(ee){return this.copy(this.data.remove(ee).insert(ee,!0))}delete(ee){return this.has(ee)?this.copy(this.data.remove(ee)):this}isEmpty(){return this.data.isEmpty()}unionWith(ee){let te=this;return te.size<ee.size&&(te=ee,ee=this),ee.forEach((ee=>{te=te.add(ee)})),te}isEqual(ee){if(!(ee instanceof SortedSet))return!1;if(this.size!==ee.size)return!1;const te=this.data.getIterator(),ne=ee.data.getIterator();for(;te.hasNext();){const ee=te.getNext().key,re=ne.getNext().key;if(0!==this.comparator(ee,re))return!1}return!0}toArray(){const ee=[];return this.forEach((te=>{ee.push(te)})),ee}toString(){const ee=[];return this.forEach((te=>ee.push(te))),"SortedSet("+ee.toString()+")"}copy(ee){const te=new SortedSet(this.comparator);return te.data=ee,te}}class SortedSetIterator{constructor(ee){this.iter=ee}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function __PRIVATE_advanceIterator(ee){return ee.hasNext()?ee.getNext():void 0}const gn={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class s extends FirebaseError{constructor(ee,te){super(ee,te),this.code=ee,this.message=te,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}const Tn="__name__";class BasePath{constructor(ee,te,ne){void 0===te?te=0:te>ee.length&&l(637,{offset:te,range:ee.length}),void 0===ne?ne=ee.length-te:ne>ee.length-te&&l(1746,{length:ne,range:ee.length-te}),this.segments=ee,this.offset=te,this.len=ne}get length(){return this.len}isEqual(ee){return 0===BasePath.comparator(this,ee)}child(ee){const te=this.segments.slice(this.offset,this.limit());return ee instanceof BasePath?ee.forEach((ee=>{te.push(ee)})):te.push(ee),this.construct(te)}limit(){return this.offset+this.length}popFirst(ee){return ee=void 0===ee?1:ee,this.construct(this.segments,this.offset+ee,this.length-ee)}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(ee){return this.segments[this.offset+ee]}isEmpty(){return 0===this.length}isPrefixOf(ee){if(ee.length<this.length)return!1;for(let te=0;te<this.length;te++)if(this.get(te)!==ee.get(te))return!1;return!0}isImmediateParentOf(ee){if(this.length+1!==ee.length)return!1;for(let te=0;te<this.length;te++)if(this.get(te)!==ee.get(te))return!1;return!0}forEach(ee){for(let te=this.offset,ne=this.limit();te<ne;te++)ee(this.segments[te])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(ee,te){const ne=Math.min(ee.length,te.length);for(let re=0;re<ne;re++){const ne=BasePath.compareSegments(ee.get(re),te.get(re));if(0!==ne)return ne}return __PRIVATE_primitiveComparator(ee.length,te.length)}static compareSegments(ee,te){const ne=BasePath.isNumericId(ee),re=BasePath.isNumericId(te);return ne&&!re?-1:!ne&&re?1:ne&&re?BasePath.extractNumericId(ee).compare(BasePath.extractNumericId(te)):__PRIVATE_compareUtf8Strings(ee,te)}static isNumericId(ee){return ee.startsWith("__id")&&ee.endsWith("__")}static extractNumericId(ee){return oe.fromString(ee.substring(4,ee.length-2))}}class ResourcePath extends BasePath{construct(ee,te,ne){return new ResourcePath(ee,te,ne)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toStringWithLeadingSlash(){return`/${this.canonicalString()}`}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...ee){const te=[];for(const ne of ee){if(ne.indexOf("//")>=0)throw new s(gn.INVALID_ARGUMENT,`Invalid segment (${ne}). Paths must not contain // in them.`);te.push(...ne.split("/").filter((ee=>ee.length>0)))}return new ResourcePath(te)}static emptyPath(){return new ResourcePath([])}}const In=/^[_a-zA-Z][_a-zA-Z0-9]*$/;let An=class FieldPath extends BasePath{construct(ee,te,ne){return new FieldPath(ee,te,ne)}static isValidIdentifier(ee){return In.test(ee)}canonicalString(){return this.toArray().map((ee=>(ee=ee.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),FieldPath.isValidIdentifier(ee)||(ee="`"+ee+"`"),ee))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Tn}static keyField(){return new FieldPath([Tn])}static fromServerFormat(ee){const te=[];let ne="",re=0;const __PRIVATE_addCurrentSegment=()=>{if(0===ne.length)throw new s(gn.INVALID_ARGUMENT,`Invalid field path (${ee}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);te.push(ne),ne=""};let se=!1;for(;re<ee.length;){const te=ee[re];if("\\"===te){if(re+1===ee.length)throw new s(gn.INVALID_ARGUMENT,"Path has trailing escape character: "+ee);const te=ee[re+1];if("\\"!==te&&"."!==te&&"`"!==te)throw new s(gn.INVALID_ARGUMENT,"Path has invalid escape sequence: "+ee);ne+=te,re+=2}else"`"===te?(se=!se,re++):"."!==te||se?(ne+=te,re++):(__PRIVATE_addCurrentSegment(),re++)}if(__PRIVATE_addCurrentSegment(),se)throw new s(gn.INVALID_ARGUMENT,"Unterminated ` in path: "+ee);return new FieldPath(te)}static emptyPath(){return new FieldPath([])}};class FieldMask{constructor(ee){this.fields=ee,ee.sort(An.comparator)}static empty(){return new FieldMask([])}unionWith(ee){let te=new SortedSet(An.comparator);for(const ee of this.fields)te=te.add(ee);for(const ne of ee)te=te.add(ne);return new FieldMask(te.toArray())}covers(ee){for(const te of this.fields)if(te.isPrefixOf(ee))return!0;return!1}isEqual(ee){return __PRIVATE_arrayEquals(this.fields,ee.fields,((ee,te)=>ee.isEqual(te)))}}function __PRIVATE_objectSize(ee){let te=0;for(const ne in ee)Object.prototype.hasOwnProperty.call(ee,ne)&&te++;return te}function forEach(ee,te){for(const ne in ee)Object.prototype.hasOwnProperty.call(ee,ne)&&te(ne,ee[ne])}function __PRIVATE_mapToArray(ee,te){const ne=[];for(const re in ee)Object.prototype.hasOwnProperty.call(ee,re)&&ne.push(te(ee[re],re,ee));return ne}function isEmpty(ee){for(const te in ee)if(Object.prototype.hasOwnProperty.call(ee,te))return!1;return!0}class DocumentKey{constructor(ee){this.path=ee}static fromPath(ee){return new DocumentKey(ResourcePath.fromString(ee))}static fromName(ee){return new DocumentKey(ResourcePath.fromString(ee).popFirst(5))}static empty(){return new DocumentKey(ResourcePath.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(ee){return this.path.length>=2&&this.path.get(this.path.length-2)===ee}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(ee){return null!==ee&&0===ResourcePath.comparator(this.path,ee.path)}toString(){return this.path.toString()}static comparator(ee,te){return ResourcePath.comparator(ee.path,te.path)}static isDocumentKey(ee){return ee.length%2==0}static fromSegments(ee){return new DocumentKey(new ResourcePath(ee.slice()))}}function __PRIVATE_validateNonEmptyArgument(ee,te,ne){if(!ne)throw new s(gn.INVALID_ARGUMENT,`Function ${ee}() cannot be called with an empty ${te}.`)}function __PRIVATE_validateIsNotUsedTogether(ee,te,ne,re){if(!0===te&&!0===re)throw new s(gn.INVALID_ARGUMENT,`${ee} and ${ne} cannot be used together.`)}function __PRIVATE_validateDocumentPath(ee){if(!DocumentKey.isDocumentKey(ee))throw new s(gn.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${ee} has ${ee.length}.`)}function __PRIVATE_validateCollectionPath(ee){if(DocumentKey.isDocumentKey(ee))throw new s(gn.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${ee} has ${ee.length}.`)}function p(ee){return"object"==typeof ee&&null!==ee&&(Object.getPrototypeOf(ee)===Object.prototype||null===Object.getPrototypeOf(ee))}function __PRIVATE_valueDescription(ee){if(void 0===ee)return"undefined";if(null===ee)return"null";if("string"==typeof ee)return ee.length>20&&(ee=`${ee.substring(0,20)}...`),JSON.stringify(ee);if("number"==typeof ee||"boolean"==typeof ee)return""+ee;if("object"==typeof ee){if(ee instanceof Array)return"an array";{const te=function __PRIVATE_tryGetCustomObjectType(ee){return ee.constructor?ee.constructor.name:null}(ee);return te?`a custom ${te} object`:"an object"}}return"function"==typeof ee?"a function":l(12329,{type:typeof ee})}function ra(ee,te){if("_delegate"in ee&&(ee=ee._delegate),!(ee instanceof te)){if(te.name===ee.constructor.name)throw new s(gn.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const ne=__PRIVATE_valueDescription(ee);throw new s(gn.INVALID_ARGUMENT,`Expected type '${te.name}', but it was: ${ne}`)}}return ee}function __PRIVATE_validatePositiveNumber(ee,te){if(te<=0)throw new s(gn.INVALID_ARGUMENT,`Function ${ee}() requires a positive number, but it was: ${te}.`)}function property(ee,te){const ne={typeString:ee};return te&&(ne.value=te),ne}function __PRIVATE_validateJSON(ee,te){if(!p(ee))throw new s(gn.INVALID_ARGUMENT,"JSON must be an object");let ne;for(const re in te)if(te[re]){const se=te[re].typeString,ie="value"in te[re]?{value:te[re].value}:void 0;if(!(re in ee)){ne=`JSON missing required field: '${re}'`;break}const ae=ee[re];if(se&&typeof ae!==se){ne=`JSON field '${re}' must be a ${se}.`;break}if(void 0!==ie&&ae!==ie.value){ne=`Expected '${re}' field to equal '${ie.value}'`;break}}if(ne)throw new s(gn.INVALID_ARGUMENT,ne);return!0}const Pn=-62135596800,Rn=1e6;class Timestamp{static now(){return Timestamp.fromMillis(Date.now())}static fromDate(ee){return Timestamp.fromMillis(ee.getTime())}static fromMillis(ee){const te=Math.floor(ee/1e3),ne=Math.floor((ee-1e3*te)*Rn);return new Timestamp(te,ne)}constructor(ee,te){if(this.seconds=ee,this.nanoseconds=te,te<0)throw new s(gn.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+te);if(te>=1e9)throw new s(gn.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+te);if(ee<Pn)throw new s(gn.INVALID_ARGUMENT,"Timestamp seconds out of range: "+ee);if(ee>=253402300800)throw new s(gn.INVALID_ARGUMENT,"Timestamp seconds out of range: "+ee)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/Rn}_compareTo(ee){return this.seconds===ee.seconds?__PRIVATE_primitiveComparator(this.nanoseconds,ee.nanoseconds):__PRIVATE_primitiveComparator(this.seconds,ee.seconds)}isEqual(ee){return ee.seconds===this.seconds&&ee.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:Timestamp._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,Timestamp._jsonSchema))return new Timestamp(ee.seconds,ee.nanoseconds)}valueOf(){const ee=this.seconds-Pn;return String(ee).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}Timestamp._jsonSchemaVersion="firestore/timestamp/1.0",Timestamp._jsonSchema={type:property("string",Timestamp._jsonSchemaVersion),seconds:property("number"),nanoseconds:property("number")};class __PRIVATE_Base64DecodeError extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function __PRIVATE_isBase64Available(){return"undefined"!=typeof atob}class ByteString{constructor(ee){this.binaryString=ee}static fromBase64String(ee){const te=function __PRIVATE_decodeBase64(ee){try{return atob(ee)}catch(ee){throw"undefined"!=typeof DOMException&&ee instanceof DOMException?new __PRIVATE_Base64DecodeError("Invalid base64 string: "+ee):ee}}(ee);return new ByteString(te)}static fromUint8Array(ee){const te=function __PRIVATE_binaryStringFromUint8Array(ee){let te="";for(let ne=0;ne<ee.length;++ne)te+=String.fromCharCode(ee[ne]);return te}(ee);return new ByteString(te)}[Symbol.iterator](){let ee=0;return{next:()=>ee<this.binaryString.length?{value:this.binaryString.charCodeAt(ee++),done:!1}:{value:void 0,done:!0}}}toBase64(){return function __PRIVATE_encodeBase64(ee){return btoa(ee)}(this.binaryString)}toUint8Array(){return function __PRIVATE_uint8ArrayFromBinaryString(ee){const te=new Uint8Array(ee.length);for(let ne=0;ne<ee.length;ne++)te[ne]=ee.charCodeAt(ne);return te}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(ee){return __PRIVATE_primitiveComparator(this.binaryString,ee.binaryString)}isEqual(ee){return this.binaryString===ee.binaryString}}ByteString.EMPTY_BYTE_STRING=new ByteString("");const Vn=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function __PRIVATE_normalizeTimestamp(ee){if(__PRIVATE_hardAssert(!!ee,39018),"string"==typeof ee){let te=0;const ne=Vn.exec(ee);if(__PRIVATE_hardAssert(!!ne,46558,{timestamp:ee}),ne[1]){let ee=ne[1];ee=(ee+"000000000").substr(0,9),te=Number(ee)}const re=new Date(ee);return{seconds:Math.floor(re.getTime()/1e3),nanos:te}}return{seconds:__PRIVATE_normalizeNumber(ee.seconds),nanos:__PRIVATE_normalizeNumber(ee.nanos)}}function __PRIVATE_normalizeNumber(ee){return"number"==typeof ee?ee:"string"==typeof ee?Number(ee):0}function __PRIVATE_normalizeByteString(ee){return"string"==typeof ee?ByteString.fromBase64String(ee):ByteString.fromUint8Array(ee)}const Dn="server_timestamp",yn="__type__",wn="__previous_value__",bn="__local_write_time__";function __PRIVATE_isServerTimestamp(ee){const te=(ee?.mapValue?.fields||{})[yn]?.stringValue;return te===Dn}function __PRIVATE_getPreviousValue(ee){const te=ee.mapValue.fields[wn];return __PRIVATE_isServerTimestamp(te)?__PRIVATE_getPreviousValue(te):te}function __PRIVATE_getLocalWriteTime(ee){const te=__PRIVATE_normalizeTimestamp(ee.mapValue.fields[bn].timestampValue);return new Timestamp(te.seconds,te.nanos)}class DatabaseInfo{constructor(ee,te,ne,re,se,ie,ae,oe,ue,Be,le,ce,_e){this.databaseId=ee,this.appId=te,this.persistenceKey=ne,this.host=re,this.ssl=se,this.forceLongPolling=ie,this.autoDetectLongPolling=ae,this.longPollingOptions=oe,this.useFetchStreams=ue,this.isUsingEmulator=Be,this.apiKey=le,this._customHeaders=ce,this.grpcFlowControlWindow=_e}}const Sn="(default)";class DatabaseId{constructor(ee,te){this.projectId=ee,this.database=te||Sn}static empty(){return new DatabaseId("","")}get isDefaultDatabase(){return this.database===Sn}isEqual(ee){return ee instanceof DatabaseId&&ee.projectId===this.projectId&&ee.database===this.database}}const vn=-1;function __PRIVATE_isNullOrUndefined(ee){return null==ee}function __PRIVATE_isNegativeZero(ee){return 0===ee&&1/ee==-1/0}function __PRIVATE_isNumber$1(ee){return"number"==typeof ee}function isSafeInteger(ee){return"number"==typeof ee&&Number.isInteger(ee)&&!__PRIVATE_isNegativeZero(ee)&&ee<=Number.MAX_SAFE_INTEGER&&ee>=Number.MIN_SAFE_INTEGER}function __PRIVATE_isString$1(ee){return"string"==typeof ee}const xn="__type__",Fn="__max__",On={mapValue:{fields:{__type__:{stringValue:Fn}}}},Nn="__vector__",Ln="value",Mn={nullValue:"NULL_VALUE"},kn={booleanValue:!0},Gn={booleanValue:!1};function __PRIVATE_typeOrder(ee){return"nullValue"in ee?0:"booleanValue"in ee?1:"integerValue"in ee||"doubleValue"in ee?2:"timestampValue"in ee?3:"stringValue"in ee?5:"bytesValue"in ee?6:"referenceValue"in ee?7:"geoPointValue"in ee?8:"arrayValue"in ee?9:"mapValue"in ee?__PRIVATE_isServerTimestamp(ee)?4:__PRIVATE_isMaxValue(ee)?9007199254740991:__PRIVATE_isVectorValue(ee)?10:11:l(28295,{value:ee})}function __PRIVATE_valueEquals$1(ee,te,ne){if(ee===te)return!0;const re=__PRIVATE_typeOrder(ee);if(re!==__PRIVATE_typeOrder(te))return!1;switch(re){case 0:case 9007199254740991:return!0;case 1:return ee.booleanValue===te.booleanValue;case 4:return __PRIVATE_getLocalWriteTime(ee).isEqual(__PRIVATE_getLocalWriteTime(te));case 3:return function __PRIVATE_timestampEquals(ee,te){if("string"==typeof ee.timestampValue&&"string"==typeof te.timestampValue&&ee.timestampValue.length===te.timestampValue.length)return ee.timestampValue===te.timestampValue;const ne=__PRIVATE_normalizeTimestamp(ee.timestampValue),re=__PRIVATE_normalizeTimestamp(te.timestampValue);return ne.seconds===re.seconds&&ne.nanos===re.nanos}(ee,te);case 5:return ee.stringValue===te.stringValue;case 6:return function __PRIVATE_blobEquals(ee,te){return __PRIVATE_normalizeByteString(ee.bytesValue).isEqual(__PRIVATE_normalizeByteString(te.bytesValue))}(ee,te);case 7:return ee.referenceValue===te.referenceValue;case 8:return function __PRIVATE_geoPointEquals(ee,te){return __PRIVATE_normalizeNumber(ee.geoPointValue.latitude)===__PRIVATE_normalizeNumber(te.geoPointValue.latitude)&&__PRIVATE_normalizeNumber(ee.geoPointValue.longitude)===__PRIVATE_normalizeNumber(te.geoPointValue.longitude)}(ee,te);case 2:return function __PRIVATE_numberEquals(ee,te,ne){if("integerValue"in ee&&"integerValue"in te)return __PRIVATE_normalizeNumber(ee.integerValue)===__PRIVATE_normalizeNumber(te.integerValue);let re,se;if("doubleValue"in ee&&"doubleValue"in te)re=__PRIVATE_normalizeNumber(ee.doubleValue),se=__PRIVATE_normalizeNumber(te.doubleValue);else{if(!ne?.t)return!1;re=__PRIVATE_normalizeNumber(ee.integerValue??ee.doubleValue),se=__PRIVATE_normalizeNumber(te.integerValue??te.doubleValue)}return re===se?!!ne?.i||__PRIVATE_isNegativeZero(re)===__PRIVATE_isNegativeZero(se):!(void 0!==ne&&!ne.o)&&isNaN(re)&&isNaN(se)}(ee,te,ne);case 9:return __PRIVATE_arrayEquals(ee.arrayValue.values||[],te.arrayValue.values||[],((ee,te)=>__PRIVATE_valueEquals$1(ee,te,ne)));case 10:case 11:return function __PRIVATE_objectEquals(ee,te,ne){const re=ee.mapValue.fields||{},se=te.mapValue.fields||{};if(__PRIVATE_objectSize(re)!==__PRIVATE_objectSize(se))return!1;for(const ee in re)if(re.hasOwnProperty(ee)&&(void 0===se[ee]||!__PRIVATE_valueEquals$1(re[ee],se[ee],ne)))return!1;return!0}(ee,te,ne);default:return l(52216,{left:ee})}}function __PRIVATE_arrayValueContains(ee,te){return void 0!==(ee.values||[]).find((ee=>__PRIVATE_valueEquals$1(ee,te)))}function __PRIVATE_valueCompare(ee,te){if(ee===te)return 0;const ne=__PRIVATE_typeOrder(ee),re=__PRIVATE_typeOrder(te);if(ne!==re)return __PRIVATE_primitiveComparator(ne,re);switch(ne){case 0:case 9007199254740991:return 0;case 1:return __PRIVATE_primitiveComparator(ee.booleanValue,te.booleanValue);case 2:return function __PRIVATE_compareNumbers(ee,te){const ne=__PRIVATE_normalizeNumber(ee.integerValue||ee.doubleValue),re=__PRIVATE_normalizeNumber(te.integerValue||te.doubleValue);return ne<re?-1:ne>re?1:ne===re?0:isNaN(ne)?isNaN(re)?0:-1:1}(ee,te);case 3:return __PRIVATE_compareTimestamps(ee.timestampValue,te.timestampValue);case 4:return __PRIVATE_compareTimestamps(__PRIVATE_getLocalWriteTime(ee),__PRIVATE_getLocalWriteTime(te));case 5:return __PRIVATE_compareUtf8Strings(ee.stringValue,te.stringValue);case 6:return function __PRIVATE_compareBlobs(ee,te){const ne=__PRIVATE_normalizeByteString(ee),re=__PRIVATE_normalizeByteString(te);return ne.compareTo(re)}(ee.bytesValue,te.bytesValue);case 7:return function __PRIVATE_compareReferences(ee,te){const ne=ee.split("/"),re=te.split("/");for(let ee=0;ee<ne.length&&ee<re.length;ee++){const te=__PRIVATE_primitiveComparator(ne[ee],re[ee]);if(0!==te)return te}return __PRIVATE_primitiveComparator(ne.length,re.length)}(ee.referenceValue,te.referenceValue);case 8:return function __PRIVATE_compareGeoPoints(ee,te){const ne=__PRIVATE_primitiveComparator(__PRIVATE_normalizeNumber(ee.latitude),__PRIVATE_normalizeNumber(te.latitude));return 0!==ne?ne:__PRIVATE_primitiveComparator(__PRIVATE_normalizeNumber(ee.longitude),__PRIVATE_normalizeNumber(te.longitude))}(ee.geoPointValue,te.geoPointValue);case 9:return __PRIVATE_compareArrays(ee.arrayValue,te.arrayValue);case 10:return function __PRIVATE_compareVectors(ee,te){const ne=ee.fields||{},re=te.fields||{},se=ne[Ln]?.arrayValue,ie=re[Ln]?.arrayValue,ae=__PRIVATE_primitiveComparator(se?.values?.length||0,ie?.values?.length||0);return 0!==ae?ae:__PRIVATE_compareArrays(se,ie)}(ee.mapValue,te.mapValue);case 11:return function __PRIVATE_compareMaps(ee,te){if(ee===On.mapValue&&te===On.mapValue)return 0;if(ee===On.mapValue)return 1;if(te===On.mapValue)return-1;const ne=ee.fields||{},re=Object.keys(ne),se=te.fields||{},ie=Object.keys(se);re.sort(),ie.sort();for(let ee=0;ee<re.length&&ee<ie.length;++ee){const te=__PRIVATE_compareUtf8Strings(re[ee],ie[ee]);if(0!==te)return te;const ae=__PRIVATE_valueCompare(ne[re[ee]],se[ie[ee]]);if(0!==ae)return ae}return __PRIVATE_primitiveComparator(re.length,ie.length)}(ee.mapValue,te.mapValue);default:throw l(23264,{u:ne})}}function __PRIVATE_compareTimestamps(ee,te){if("string"==typeof ee&&"string"==typeof te&&ee.length===te.length)return __PRIVATE_primitiveComparator(ee,te);const ne=__PRIVATE_normalizeTimestamp(ee),re=__PRIVATE_normalizeTimestamp(te),se=__PRIVATE_primitiveComparator(ne.seconds,re.seconds);return 0!==se?se:__PRIVATE_primitiveComparator(ne.nanos,re.nanos)}function __PRIVATE_compareArrays(ee,te){const ne=ee.values||[],re=te.values||[];for(let ee=0;ee<ne.length&&ee<re.length;++ee){const te=__PRIVATE_valueCompare(ne[ee],re[ee]);if(void 0!==te&&0!==te)return te}return __PRIVATE_primitiveComparator(ne.length,re.length)}function canonicalId(ee){return __PRIVATE_canonifyValue(ee)}function __PRIVATE_canonifyValue(ee){return"nullValue"in ee?"null":"booleanValue"in ee?""+ee.booleanValue:"integerValue"in ee?""+ee.integerValue:"doubleValue"in ee?""+ee.doubleValue:"timestampValue"in ee?function __PRIVATE_canonifyTimestamp(ee){const te=__PRIVATE_normalizeTimestamp(ee);return`time(${te.seconds},${te.nanos})`}(ee.timestampValue):"stringValue"in ee?ee.stringValue:"bytesValue"in ee?function __PRIVATE_canonifyByteString(ee){return __PRIVATE_normalizeByteString(ee).toBase64()}(ee.bytesValue):"referenceValue"in ee?function __PRIVATE_canonifyReference(ee){return DocumentKey.fromName(ee).toString()}(ee.referenceValue):"geoPointValue"in ee?function __PRIVATE_canonifyGeoPoint(ee){return`geo(${ee.latitude},${ee.longitude})`}(ee.geoPointValue):"arrayValue"in ee?function __PRIVATE_canonifyArray(ee){let te="[",ne=!0;for(const re of ee.values||[])ne?ne=!1:te+=",",te+=__PRIVATE_canonifyValue(re);return te+"]"}(ee.arrayValue):"mapValue"in ee?function __PRIVATE_canonifyMap(ee){const te=Object.keys(ee.fields||{}).sort();let ne="{",re=!0;for(const se of te)re?re=!1:ne+=",",ne+=`${se}:${__PRIVATE_canonifyValue(ee.fields[se])}`;return ne+"}"}(ee.mapValue):l(61005,{value:ee})}function __PRIVATE_estimateByteSize(ee){switch(__PRIVATE_typeOrder(ee)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:const te=__PRIVATE_getPreviousValue(ee);return te?16+__PRIVATE_estimateByteSize(te):16;case 5:return 2*ee.stringValue.length;case 6:return __PRIVATE_normalizeByteString(ee.bytesValue).approximateByteSize();case 7:return ee.referenceValue.length;case 9:return function __PRIVATE_estimateArrayByteSize(ee){return(ee.values||[]).reduce(((ee,te)=>ee+__PRIVATE_estimateByteSize(te)),0)}(ee.arrayValue);case 10:case 11:return function __PRIVATE_estimateMapByteSize(ee){let te=0;return forEach(ee.fields,((ee,ne)=>{te+=ee.length+__PRIVATE_estimateByteSize(ne)})),te}(ee.mapValue);default:throw l(13486,{value:ee})}}function __PRIVATE_refValue(ee,te){return{referenceValue:`projects/${ee.projectId}/databases/${ee.database}/documents/${te.path.canonicalString()}`}}function isInteger(ee){return!!ee&&"integerValue"in ee}function __PRIVATE_isDouble(ee){return!!ee&&"doubleValue"in ee}function R(ee){return isInteger(ee)||__PRIVATE_isDouble(ee)}function isArray(ee){return!!ee&&"arrayValue"in ee}function __PRIVATE_isNullValue(ee){return!!ee&&"nullValue"in ee}function __PRIVATE_isNanValue(ee){return!!ee&&"doubleValue"in ee&&isNaN(Number(ee.doubleValue))}function __PRIVATE_isMapValue(ee){return!!ee&&"mapValue"in ee}function __PRIVATE_isVectorValue(ee){const te=(ee?.mapValue?.fields||{})[xn]?.stringValue;return te===Nn}function __PRIVATE_getVectorValue(ee){return(ee?.mapValue?.fields||{})[Ln]?.arrayValue}function __PRIVATE_deepClone(ee){if(ee.geoPointValue)return{geoPointValue:{...ee.geoPointValue}};if(ee.timestampValue&&"object"==typeof ee.timestampValue)return{timestampValue:{...ee.timestampValue}};if(ee.mapValue){const te={mapValue:{fields:{}}};return forEach(ee.mapValue.fields,((ee,ne)=>te.mapValue.fields[ee]=__PRIVATE_deepClone(ne))),te}if(ee.arrayValue){const te={arrayValue:{values:[]}};for(let ne=0;ne<(ee.arrayValue.values||[]).length;++ne)te.arrayValue.values[ne]=__PRIVATE_deepClone(ee.arrayValue.values[ne]);return te}return{...ee}}function __PRIVATE_isMaxValue(ee){return(((ee.mapValue||{}).fields||{}).__type__||{}).stringValue===Fn}const Un={mapValue:{fields:{[xn]:{stringValue:Nn},[Ln]:{arrayValue:{}}}}};function __PRIVATE_valuesGetLowerBound(ee){return"nullValue"in ee?Mn:"booleanValue"in ee?{booleanValue:!1}:"integerValue"in ee||"doubleValue"in ee?{doubleValue:NaN}:"timestampValue"in ee?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in ee?{stringValue:""}:"bytesValue"in ee?{bytesValue:""}:"referenceValue"in ee?__PRIVATE_refValue(DatabaseId.empty(),DocumentKey.empty()):"geoPointValue"in ee?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in ee?{arrayValue:{}}:"mapValue"in ee?__PRIVATE_isVectorValue(ee)?Un:{mapValue:{}}:l(35942,{value:ee})}function __PRIVATE_valuesGetUpperBound(ee){return"nullValue"in ee?{booleanValue:!1}:"booleanValue"in ee?{doubleValue:NaN}:"integerValue"in ee||"doubleValue"in ee?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in ee?{stringValue:""}:"stringValue"in ee?{bytesValue:""}:"bytesValue"in ee?__PRIVATE_refValue(DatabaseId.empty(),DocumentKey.empty()):"referenceValue"in ee?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in ee?{arrayValue:{}}:"arrayValue"in ee?Un:"mapValue"in ee?__PRIVATE_isVectorValue(ee)?{mapValue:{}}:On:l(61959,{value:ee})}function __PRIVATE_lowerBoundCompare(ee,te){const ne=__PRIVATE_valueCompare(ee.value,te.value);return 0!==ne?ne:ee.inclusive&&!te.inclusive?-1:!ee.inclusive&&te.inclusive?1:0}function __PRIVATE_upperBoundCompare(ee,te){const ne=__PRIVATE_valueCompare(ee.value,te.value);return 0!==ne?ne:ee.inclusive&&!te.inclusive?1:!ee.inclusive&&te.inclusive?-1:0}class ObjectValue{constructor(ee){this.value=ee}static empty(){return new ObjectValue({mapValue:{}})}field(ee){if(ee.isEmpty())return this.value;{let te=this.value;for(let ne=0;ne<ee.length-1;++ne)if(te=(te.mapValue.fields||{})[ee.get(ne)],!__PRIVATE_isMapValue(te))return null;return te=(te.mapValue.fields||{})[ee.lastSegment()],te||null}}set(ee,te){this.getFieldsMap(ee.popLast())[ee.lastSegment()]=__PRIVATE_deepClone(te)}setAll(ee){let te=An.emptyPath(),ne={},re=[];ee.forEach(((ee,se)=>{if(!te.isImmediateParentOf(se)){const ee=this.getFieldsMap(te);this.applyChanges(ee,ne,re),ne={},re=[],te=se.popLast()}ee?ne[se.lastSegment()]=__PRIVATE_deepClone(ee):re.push(se.lastSegment())}));const se=this.getFieldsMap(te);this.applyChanges(se,ne,re)}delete(ee){const te=this.field(ee.popLast());__PRIVATE_isMapValue(te)&&te.mapValue.fields&&delete te.mapValue.fields[ee.lastSegment()]}isEqual(ee){return __PRIVATE_valueEquals$1(this.value,ee.value)}getFieldsMap(ee){let te=this.value;te.mapValue.fields||(te.mapValue={fields:{}});for(let ne=0;ne<ee.length;++ne){let re=te.mapValue.fields[ee.get(ne)];__PRIVATE_isMapValue(re)&&re.mapValue.fields||(re={mapValue:{fields:{}}},te.mapValue.fields[ee.get(ne)]=re),te=re}return te.mapValue.fields}applyChanges(ee,te,ne){forEach(te,((te,ne)=>ee[te]=ne));for(const te of ne)delete ee[te]}clone(){return new ObjectValue(__PRIVATE_deepClone(this.value))}}function __PRIVATE_extractFieldMask(ee){const te=[];return forEach(ee.fields,((ee,ne)=>{const re=new An([ee]);if(__PRIVATE_isMapValue(ne)){const ee=__PRIVATE_extractFieldMask(ne.mapValue).fields;if(0===ee.length)te.push(re);else for(const ne of ee)te.push(re.child(ne))}else te.push(re)})),new FieldMask(te)}function __PRIVATE_toDouble(ee,te){if(ee.useProto3Json){if(isNaN(te))return{doubleValue:"NaN"};if(te===1/0)return{doubleValue:"Infinity"};if(te===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:__PRIVATE_isNegativeZero(te)?"-0":te}}function __PRIVATE_toInteger(ee){return{integerValue:""+ee}}function toNumber(ee,te,ne){return isSafeInteger(te)?__PRIVATE_toInteger(te):__PRIVATE_toDouble(ee,te)}class TransformOperation{constructor(){this._=void 0}}function __PRIVATE_applyTransformOperationToLocalView(ee,te,ne){return ee instanceof __PRIVATE_ServerTimestampTransform?function serverTimestamp$1(ee,te){const ne={fields:{[yn]:{stringValue:Dn},[bn]:{timestampValue:{seconds:ee.seconds,nanos:ee.nanoseconds}}}};return te&&__PRIVATE_isServerTimestamp(te)&&(te=__PRIVATE_getPreviousValue(te)),te&&(ne.fields[wn]=te),{mapValue:ne}}(ne,te):ee instanceof __PRIVATE_ArrayUnionTransformOperation?__PRIVATE_applyArrayUnionTransformOperation(ee,te):ee instanceof __PRIVATE_ArrayRemoveTransformOperation?__PRIVATE_applyArrayRemoveTransformOperation(ee,te):ee instanceof __PRIVATE_NumericIncrementTransformOperation?function __PRIVATE_applyNumericIncrementTransformOperationToLocalView(ee,te){const ne=__PRIVATE_computeTransformOperationBaseValue(ee,te),re=asNumber(ne)+asNumber(ee.l);return isInteger(ne)&&isInteger(ee.l)?__PRIVATE_toInteger(re):__PRIVATE_toDouble(ee.serializer,re)}(ee,te):ee instanceof __PRIVATE_NumericMinimumTransformOperation?function __PRIVATE_applyNumericMinimumTransformOperationToLocalView(ee,te){return __PRIVATE_applyNumericTransformOperationToLocalView(ee,te,Math.min)}(ee,te):ee instanceof __PRIVATE_NumericMaximumTransformOperation?function __PRIVATE_applyNumericMaximumTransformOperationToLocalView(ee,te){return __PRIVATE_applyNumericTransformOperationToLocalView(ee,te,Math.max)}(ee,te):void 0}function __PRIVATE_applyTransformOperationToRemoteDocument(ee,te,ne){return ee instanceof __PRIVATE_ArrayUnionTransformOperation?__PRIVATE_applyArrayUnionTransformOperation(ee,te):ee instanceof __PRIVATE_ArrayRemoveTransformOperation?__PRIVATE_applyArrayRemoveTransformOperation(ee,te):ne}function __PRIVATE_computeTransformOperationBaseValue(ee,te){return ee instanceof __PRIVATE_NumericIncrementTransformOperation?R(te)?te:{integerValue:0}:null}class __PRIVATE_ServerTimestampTransform extends TransformOperation{}class __PRIVATE_ArrayUnionTransformOperation extends TransformOperation{constructor(ee){super(),this.elements=ee}}function __PRIVATE_applyArrayUnionTransformOperation(ee,te){const ne=__PRIVATE_coercedFieldValuesArray(te);for(const te of ee.elements)ne.some((ee=>__PRIVATE_valueEquals$1(ee,te)))||ne.push(te);return{arrayValue:{values:ne}}}class __PRIVATE_ArrayRemoveTransformOperation extends TransformOperation{constructor(ee){super(),this.elements=ee}}function __PRIVATE_applyArrayRemoveTransformOperation(ee,te){let ne=__PRIVATE_coercedFieldValuesArray(te);for(const te of ee.elements)ne=ne.filter((ee=>!__PRIVATE_valueEquals$1(ee,te)));return{arrayValue:{values:ne}}}class __PRIVATE_NumericTransformOperation extends TransformOperation{constructor(ee,te){super(),this.serializer=ee,this.l=te}}class __PRIVATE_NumericIncrementTransformOperation extends __PRIVATE_NumericTransformOperation{}class __PRIVATE_NumericMinimumTransformOperation extends __PRIVATE_NumericTransformOperation{}class __PRIVATE_NumericMaximumTransformOperation extends __PRIVATE_NumericTransformOperation{}function __PRIVATE_applyNumericTransformOperationToLocalView(ee,te,ne){if(!R(te))return ee.l;const re=ne(asNumber(te),asNumber(ee.l));return isInteger(te)&&isInteger(ee.l)?__PRIVATE_toInteger(re):__PRIVATE_toDouble(ee.serializer,re)}function asNumber(ee){return __PRIVATE_normalizeNumber(ee.integerValue||ee.doubleValue)}function __PRIVATE_coercedFieldValuesArray(ee){return isArray(ee)&&ee.arrayValue.values?ee.arrayValue.values.slice():[]}class FieldTransform{constructor(ee,te){this.field=ee,this.transform=te}}class MutationResult{constructor(ee,te){this.version=ee,this.transformResults=te}}class Precondition{constructor(ee,te){this.updateTime=ee,this.exists=te}static none(){return new Precondition}static exists(ee){return new Precondition(void 0,ee)}static updateTime(ee){return new Precondition(ee)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(ee){return this.exists===ee.exists&&(this.updateTime?!!ee.updateTime&&this.updateTime.isEqual(ee.updateTime):!ee.updateTime)}}function __PRIVATE_preconditionIsValidForDocument(ee,te){return void 0!==ee.updateTime?te.isFoundDocument()&&te.version.isEqual(ee.updateTime):void 0===ee.exists||ee.exists===te.isFoundDocument()}class Mutation{}function __PRIVATE_calculateOverlayMutation(ee,te){if(!ee.hasLocalMutations||te&&0===te.fields.length)return null;if(null===te)return ee.isNoDocument()?new __PRIVATE_DeleteMutation(ee.key,Precondition.none()):new __PRIVATE_SetMutation(ee.key,ee.data,Precondition.none());{const ne=ee.data,re=ObjectValue.empty();let se=new SortedSet(An.comparator);for(let ee of te.fields)if(!se.has(ee)){let te=ne.field(ee);null===te&&ee.length>1&&(ee=ee.popLast(),te=ne.field(ee)),null===te?re.delete(ee):re.set(ee,te),se=se.add(ee)}return new __PRIVATE_PatchMutation(ee.key,re,new FieldMask(se.toArray()),Precondition.none())}}function __PRIVATE_mutationApplyToRemoteDocument(ee,te,ne){ee instanceof __PRIVATE_SetMutation?function __PRIVATE_setMutationApplyToRemoteDocument(ee,te,ne){const re=ee.value.clone(),se=__PRIVATE_serverTransformResults(ee.fieldTransforms,te,ne.transformResults);re.setAll(se),te.convertToFoundDocument(ne.version,re).setHasCommittedMutations()}(ee,te,ne):ee instanceof __PRIVATE_PatchMutation?function __PRIVATE_patchMutationApplyToRemoteDocument(ee,te,ne){if(!__PRIVATE_preconditionIsValidForDocument(ee.precondition,te))return void te.convertToUnknownDocument(ne.version);const re=__PRIVATE_serverTransformResults(ee.fieldTransforms,te,ne.transformResults),se=te.data;se.setAll(__PRIVATE_getPatch(ee)),se.setAll(re),te.convertToFoundDocument(ne.version,se).setHasCommittedMutations()}(ee,te,ne):function __PRIVATE_deleteMutationApplyToRemoteDocument(ee,te,ne){te.convertToNoDocument(ne.version).setHasCommittedMutations()}(0,te,ne)}function __PRIVATE_mutationApplyToLocalView(ee,te,ne,re){return ee instanceof __PRIVATE_SetMutation?function __PRIVATE_setMutationApplyToLocalView(ee,te,ne,re){if(!__PRIVATE_preconditionIsValidForDocument(ee.precondition,te))return ne;const se=ee.value.clone(),ie=__PRIVATE_localTransformResults(ee.fieldTransforms,re,te);return se.setAll(ie),te.convertToFoundDocument(te.version,se).setHasLocalMutations(),null}(ee,te,ne,re):ee instanceof __PRIVATE_PatchMutation?function __PRIVATE_patchMutationApplyToLocalView(ee,te,ne,re){if(!__PRIVATE_preconditionIsValidForDocument(ee.precondition,te))return ne;const se=__PRIVATE_localTransformResults(ee.fieldTransforms,re,te),ie=te.data;return ie.setAll(__PRIVATE_getPatch(ee)),ie.setAll(se),te.convertToFoundDocument(te.version,ie).setHasLocalMutations(),null===ne?null:ne.unionWith(ee.fieldMask.fields).unionWith(ee.fieldTransforms.map((ee=>ee.field)))}(ee,te,ne,re):function __PRIVATE_deleteMutationApplyToLocalView(ee,te,ne){return __PRIVATE_preconditionIsValidForDocument(ee.precondition,te)?(te.convertToNoDocument(te.version).setHasLocalMutations(),null):ne}(ee,te,ne)}function __PRIVATE_mutationExtractBaseValue(ee,te){let ne=null;for(const re of ee.fieldTransforms){const ee=te.data.field(re.field),se=__PRIVATE_computeTransformOperationBaseValue(re.transform,ee||null);null!=se&&(null===ne&&(ne=ObjectValue.empty()),ne.set(re.field,se))}return ne||null}function __PRIVATE_mutationEquals(ee,te){return ee.type===te.type&&!!ee.key.isEqual(te.key)&&!!ee.precondition.isEqual(te.precondition)&&!!function __PRIVATE_fieldTransformsAreEqual(ee,te){return void 0===ee&&void 0===te||!(!ee||!te)&&__PRIVATE_arrayEquals(ee,te,((ee,te)=>function __PRIVATE_fieldTransformEquals(ee,te){return ee.field.isEqual(te.field)&&function __PRIVATE_transformOperationEquals(ee,te){return ee instanceof __PRIVATE_ArrayUnionTransformOperation&&te instanceof __PRIVATE_ArrayUnionTransformOperation||ee instanceof __PRIVATE_ArrayRemoveTransformOperation&&te instanceof __PRIVATE_ArrayRemoveTransformOperation?__PRIVATE_arrayEquals(ee.elements,te.elements,__PRIVATE_valueEquals$1):ee instanceof __PRIVATE_NumericIncrementTransformOperation&&te instanceof __PRIVATE_NumericIncrementTransformOperation||ee instanceof __PRIVATE_NumericMinimumTransformOperation&&te instanceof __PRIVATE_NumericMinimumTransformOperation||ee instanceof __PRIVATE_NumericMaximumTransformOperation&&te instanceof __PRIVATE_NumericMaximumTransformOperation?__PRIVATE_valueEquals$1(ee.l,te.l):ee instanceof __PRIVATE_ServerTimestampTransform&&te instanceof __PRIVATE_ServerTimestampTransform}(ee.transform,te.transform)}(ee,te)))}(ee.fieldTransforms,te.fieldTransforms)&&(0===ee.type?ee.value.isEqual(te.value):1!==ee.type||ee.data.isEqual(te.data)&&ee.fieldMask.isEqual(te.fieldMask))}class __PRIVATE_SetMutation extends Mutation{constructor(ee,te,ne,re=[]){super(),this.key=ee,this.value=te,this.precondition=ne,this.fieldTransforms=re,this.type=0}getFieldMask(){return null}}class __PRIVATE_PatchMutation extends Mutation{constructor(ee,te,ne,re,se=[]){super(),this.key=ee,this.data=te,this.fieldMask=ne,this.precondition=re,this.fieldTransforms=se,this.type=1}getFieldMask(){return this.fieldMask}}function __PRIVATE_getPatch(ee){const te=new Map;return ee.fieldMask.fields.forEach((ne=>{if(!ne.isEmpty()){const re=ee.data.field(ne);te.set(ne,re)}})),te}function __PRIVATE_serverTransformResults(ee,te,ne){const re=new Map;__PRIVATE_hardAssert(ee.length===ne.length,32656,{h:ne.length,T:ee.length});for(let se=0;se<ne.length;se++){const ie=ee[se],ae=ie.transform,oe=te.data.field(ie.field);re.set(ie.field,__PRIVATE_applyTransformOperationToRemoteDocument(ae,oe,ne[se]))}return re}function __PRIVATE_localTransformResults(ee,te,ne){const re=new Map;for(const se of ee){const ee=se.transform,ie=ne.data.field(se.field);re.set(se.field,__PRIVATE_applyTransformOperationToLocalView(ee,ie,te))}return re}class __PRIVATE_DeleteMutation extends Mutation{constructor(ee,te){super(),this.key=ee,this.precondition=te,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class __PRIVATE_VerifyMutation extends Mutation{constructor(ee,te){super(),this.key=ee,this.precondition=te,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class __PRIVATE_AggregateImpl{constructor(ee,te,ne){this.alias=ee,this.aggregateType=te,this.fieldPath=ne}}class Bound{constructor(ee,te){this.position=ee,this.inclusive=te}}function __PRIVATE_boundCompareToDocument(ee,te,ne){let re=0;for(let se=0;se<ee.position.length;se++){const ie=te[se],ae=ee.position[se];if(re=ie.field.isKeyField()?DocumentKey.comparator(DocumentKey.fromName(ae.referenceValue),ne.key):__PRIVATE_valueCompare(ae,ne.data.field(ie.field)),"desc"===ie.dir&&(re*=-1),0!==re)break}return re}function __PRIVATE_boundEquals(ee,te){if(null===ee)return null===te;if(null===te)return!1;if(ee.inclusive!==te.inclusive||ee.position.length!==te.position.length)return!1;for(let ne=0;ne<ee.position.length;ne++)if(!__PRIVATE_valueEquals$1(ee.position[ne],te.position[ne]))return!1;return!0}class Filter{}class FieldFilter extends Filter{constructor(ee,te,ne){super(),this.field=ee,this.op=te,this.value=ne}static create(ee,te,ne){return ee.isKeyField()?"in"===te||"not-in"===te?this.createKeyFieldInFilter(ee,te,ne):new __PRIVATE_KeyFieldFilter(ee,te,ne):"array-contains"===te?new __PRIVATE_ArrayContainsFilter(ee,ne):"in"===te?new __PRIVATE_InFilter(ee,ne):"not-in"===te?new __PRIVATE_NotInFilter(ee,ne):"array-contains-any"===te?new __PRIVATE_ArrayContainsAnyFilter(ee,ne):new FieldFilter(ee,te,ne)}static createKeyFieldInFilter(ee,te,ne){return"in"===te?new __PRIVATE_KeyFieldInFilter(ee,ne):new __PRIVATE_KeyFieldNotInFilter(ee,ne)}matches(ee){const te=ee.data.field(this.field);return"!="===this.op?null!==te&&void 0===te.nullValue&&this.matchesComparison(__PRIVATE_valueCompare(te,this.value)):null!==te&&__PRIVATE_typeOrder(this.value)===__PRIVATE_typeOrder(te)&&this.matchesComparison(__PRIVATE_valueCompare(te,this.value))}matchesComparison(ee){switch(this.op){case"<":return ee<0;case"<=":return ee<=0;case"==":return 0===ee;case"!=":return 0!==ee;case">":return ee>0;case">=":return ee>=0;default:return l(47266,{operator:this.op})}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class CompositeFilter extends Filter{constructor(ee,te){super(),this.filters=ee,this.op=te,this.P=null}static create(ee,te){return new CompositeFilter(ee,te)}matches(ee){return __PRIVATE_compositeFilterIsConjunction(this)?void 0===this.filters.find((te=>!te.matches(ee))):void 0!==this.filters.find((te=>te.matches(ee)))}getFlattenedFilters(){return null!==this.P||(this.P=this.filters.reduce(((ee,te)=>ee.concat(te.getFlattenedFilters())),[])),this.P}getFilters(){return Object.assign([],this.filters)}}function __PRIVATE_compositeFilterIsConjunction(ee){return"and"===ee.op}function __PRIVATE_compositeFilterIsDisjunction(ee){return"or"===ee.op}function __PRIVATE_compositeFilterIsFlatConjunction(ee){return __PRIVATE_compositeFilterIsFlat(ee)&&__PRIVATE_compositeFilterIsConjunction(ee)}function __PRIVATE_compositeFilterIsFlat(ee){for(const te of ee.filters)if(te instanceof CompositeFilter)return!1;return!0}function __PRIVATE_canonifyFilter(ee){if(ee instanceof FieldFilter)return ee.field.canonicalString()+ee.op.toString()+canonicalId(ee.value);if(__PRIVATE_compositeFilterIsFlatConjunction(ee))return ee.filters.map((ee=>__PRIVATE_canonifyFilter(ee))).join(",");{const te=ee.filters.map((ee=>__PRIVATE_canonifyFilter(ee))).join(",");return`${ee.op}(${te})`}}function __PRIVATE_filterEquals(ee,te){return ee instanceof FieldFilter?function __PRIVATE_fieldFilterEquals(ee,te){return te instanceof FieldFilter&&ee.op===te.op&&ee.field.isEqual(te.field)&&__PRIVATE_valueEquals$1(ee.value,te.value)}(ee,te):ee instanceof CompositeFilter?function __PRIVATE_compositeFilterEquals(ee,te){return te instanceof CompositeFilter&&ee.op===te.op&&ee.filters.length===te.filters.length&&ee.filters.reduce(((ee,ne,re)=>ee&&__PRIVATE_filterEquals(ne,te.filters[re])),!0)}(ee,te):void l(19439)}function __PRIVATE_compositeFilterWithAddedFilters(ee,te){const ne=ee.filters.concat(te);return CompositeFilter.create(ne,ee.op)}function __PRIVATE_stringifyFilter(ee){return ee instanceof FieldFilter?function __PRIVATE_stringifyFieldFilter(ee){return`${ee.field.canonicalString()} ${ee.op} ${canonicalId(ee.value)}`}(ee):ee instanceof CompositeFilter?function __PRIVATE_stringifyCompositeFilter(ee){return ee.op.toString()+" {"+ee.getFilters().map(__PRIVATE_stringifyFilter).join(" ,")+"}"}(ee):"Filter"}class __PRIVATE_KeyFieldFilter extends FieldFilter{constructor(ee,te,ne){super(ee,te,ne),this.key=DocumentKey.fromName(ne.referenceValue)}matches(ee){const te=DocumentKey.comparator(ee.key,this.key);return this.matchesComparison(te)}}class __PRIVATE_KeyFieldInFilter extends FieldFilter{constructor(ee,te){super(ee,"in",te),this.keys=__PRIVATE_extractDocumentKeysFromArrayValue("in",te)}matches(ee){return this.keys.some((te=>te.isEqual(ee.key)))}}class __PRIVATE_KeyFieldNotInFilter extends FieldFilter{constructor(ee,te){super(ee,"not-in",te),this.keys=__PRIVATE_extractDocumentKeysFromArrayValue("not-in",te)}matches(ee){return!this.keys.some((te=>te.isEqual(ee.key)))}}function __PRIVATE_extractDocumentKeysFromArrayValue(ee,te){return(te.arrayValue?.values||[]).map((ee=>DocumentKey.fromName(ee.referenceValue)))}class __PRIVATE_ArrayContainsFilter extends FieldFilter{constructor(ee,te){super(ee,"array-contains",te)}matches(ee){const te=ee.data.field(this.field);return isArray(te)&&__PRIVATE_arrayValueContains(te.arrayValue,this.value)}}class __PRIVATE_InFilter extends FieldFilter{constructor(ee,te){super(ee,"in",te)}matches(ee){const te=ee.data.field(this.field);return null!==te&&__PRIVATE_arrayValueContains(this.value.arrayValue,te)}}class __PRIVATE_NotInFilter extends FieldFilter{constructor(ee,te){super(ee,"not-in",te)}matches(ee){if(__PRIVATE_arrayValueContains(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const te=ee.data.field(this.field);return null!==te&&void 0===te.nullValue&&!__PRIVATE_arrayValueContains(this.value.arrayValue,te)}}class __PRIVATE_ArrayContainsAnyFilter extends FieldFilter{constructor(ee,te){super(ee,"array-contains-any",te)}matches(ee){const te=ee.data.field(this.field);return!(!isArray(te)||!te.arrayValue.values)&&te.arrayValue.values.some((ee=>__PRIVATE_arrayValueContains(this.value.arrayValue,ee)))}}class OrderBy{constructor(ee,te="asc"){this.field=ee,this.dir=te}}function __PRIVATE_orderByEquals(ee,te){return ee.dir===te.dir&&ee.field.isEqual(te.field)}class SnapshotVersion{static fromTimestamp(ee){return new SnapshotVersion(ee)}static min(){return new SnapshotVersion(new Timestamp(0,0))}static max(){return new SnapshotVersion(new Timestamp(253402300799,999999999))}constructor(ee){this.timestamp=ee}compareTo(ee){return this.timestamp._compareTo(ee.timestamp)}isEqual(ee){return this.timestamp.isEqual(ee.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class MutableDocument{constructor(ee,te,ne,re,se,ie,ae){this.key=ee,this.documentType=te,this.version=ne,this.readTime=re,this.createTime=se,this.data=ie,this.documentState=ae}static newInvalidDocument(ee){return new MutableDocument(ee,0,SnapshotVersion.min(),SnapshotVersion.min(),SnapshotVersion.min(),ObjectValue.empty(),0)}static newFoundDocument(ee,te,ne,re){return new MutableDocument(ee,1,te,SnapshotVersion.min(),ne,re,0)}static newNoDocument(ee,te){return new MutableDocument(ee,2,te,SnapshotVersion.min(),SnapshotVersion.min(),ObjectValue.empty(),0)}static newUnknownDocument(ee,te){return new MutableDocument(ee,3,te,SnapshotVersion.min(),SnapshotVersion.min(),ObjectValue.empty(),2)}convertToFoundDocument(ee,te){return!this.createTime.isEqual(SnapshotVersion.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=ee),this.version=ee,this.documentType=1,this.data=te,this.documentState=0,this}convertToNoDocument(ee){return this.version=ee,this.documentType=2,this.data=ObjectValue.empty(),this.documentState=0,this}convertToUnknownDocument(ee){return this.version=ee,this.documentType=3,this.data=ObjectValue.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=SnapshotVersion.min(),this}setReadTime(ee){return this.readTime=ee,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(ee){return ee instanceof MutableDocument&&this.key.isEqual(ee.key)&&this.version.isEqual(ee.version)&&this.documentType===ee.documentType&&this.documentState===ee.documentState&&this.data.isEqual(ee.data)}mutableCopy(){return new MutableDocument(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}})`}}const Hn=-1;class FieldIndex{constructor(ee,te,ne,re){this.indexId=ee,this.collectionGroup=te,this.fields=ne,this.indexState=re}}function __PRIVATE_fieldIndexGetArraySegment(ee){return ee.fields.find((ee=>2===ee.kind))}function __PRIVATE_fieldIndexGetDirectionalSegments(ee){return ee.fields.filter((ee=>2!==ee.kind))}function __PRIVATE_fieldIndexSemanticComparator(ee,te){let ne=__PRIVATE_primitiveComparator(ee.collectionGroup,te.collectionGroup);if(0!==ne)return ne;for(let re=0;re<Math.min(ee.fields.length,te.fields.length);++re)if(ne=__PRIVATE_indexSegmentComparator(ee.fields[re],te.fields[re]),0!==ne)return ne;return __PRIVATE_primitiveComparator(ee.fields.length,te.fields.length)}FieldIndex.UNKNOWN_ID=-1;class IndexSegment{constructor(ee,te){this.fieldPath=ee,this.kind=te}}function __PRIVATE_indexSegmentComparator(ee,te){const ne=An.comparator(ee.fieldPath,te.fieldPath);return 0!==ne?ne:__PRIVATE_primitiveComparator(ee.kind,te.kind)}class IndexState{constructor(ee,te){this.sequenceNumber=ee,this.offset=te}static empty(){return new IndexState(0,IndexOffset.min())}}function __PRIVATE_newIndexOffsetSuccessorFromReadTime(ee,te){const ne=ee.toTimestamp().seconds,re=ee.toTimestamp().nanoseconds+1,se=SnapshotVersion.fromTimestamp(1e9===re?new Timestamp(ne+1,0):new Timestamp(ne,re));return new IndexOffset(se,DocumentKey.empty(),te)}function __PRIVATE_newIndexOffsetFromDocument(ee){return new IndexOffset(ee.readTime,ee.key,Hn)}class IndexOffset{constructor(ee,te,ne){this.readTime=ee,this.documentKey=te,this.largestBatchId=ne}static min(){return new IndexOffset(SnapshotVersion.min(),DocumentKey.empty(),Hn)}static max(){return new IndexOffset(SnapshotVersion.max(),DocumentKey.empty(),Hn)}}function __PRIVATE_indexOffsetComparator(ee,te){let ne=ee.readTime.compareTo(te.readTime);return 0!==ne?ne:(ne=DocumentKey.comparator(ee.documentKey,te.documentKey),0!==ne?ne:__PRIVATE_primitiveComparator(ee.largestBatchId,te.largestBatchId))}class __PRIVATE_TargetImpl{constructor(ee,te=null,ne=[],re=[],se=null,ie=null,ae=null){this.path=ee,this.collectionGroup=te,this.orderBy=ne,this.filters=re,this.limit=se,this.startAt=ie,this.endAt=ae,this.R=null}}function __PRIVATE_newTarget(ee,te=null,ne=[],re=[],se=null,ie=null,ae=null){return new __PRIVATE_TargetImpl(ee,te,ne,re,se,ie,ae)}function __PRIVATE_canonifyTarget(ee){const te=__PRIVATE_debugCast(ee);if(null===te.R){let ee=te.path.canonicalString();null!==te.collectionGroup&&(ee+="|cg:"+te.collectionGroup),ee+="|f:",ee+=te.filters.map((ee=>__PRIVATE_canonifyFilter(ee))).join(","),ee+="|ob:",ee+=te.orderBy.map((ee=>function __PRIVATE_canonifyOrderBy(ee){return ee.field.canonicalString()+ee.dir}(ee))).join(","),__PRIVATE_isNullOrUndefined(te.limit)||(ee+="|l:",ee+=te.limit),te.startAt&&(ee+="|lb:",ee+=te.startAt.inclusive?"b:":"a:",ee+=te.startAt.position.map((ee=>canonicalId(ee))).join(",")),te.endAt&&(ee+="|ub:",ee+=te.endAt.inclusive?"a:":"b:",ee+=te.endAt.position.map((ee=>canonicalId(ee))).join(",")),te.R=ee}return te.R}function __PRIVATE_targetEquals(ee,te){if(ee.limit!==te.limit)return!1;if(ee.orderBy.length!==te.orderBy.length)return!1;for(let ne=0;ne<ee.orderBy.length;ne++)if(!__PRIVATE_orderByEquals(ee.orderBy[ne],te.orderBy[ne]))return!1;if(ee.filters.length!==te.filters.length)return!1;for(let ne=0;ne<ee.filters.length;ne++)if(!__PRIVATE_filterEquals(ee.filters[ne],te.filters[ne]))return!1;return ee.collectionGroup===te.collectionGroup&&!!ee.path.isEqual(te.path)&&!!__PRIVATE_boundEquals(ee.startAt,te.startAt)&&__PRIVATE_boundEquals(ee.endAt,te.endAt)}function __PRIVATE_targetIsPipelineTarget(ee){return!!ee.isCorePipeline}function __PRIVATE_targetIsDocumentTarget(ee){return!!ee.path&&DocumentKey.isDocumentKey(ee.path)&&null===ee.collectionGroup&&0===ee.filters.length}function __PRIVATE_targetGetFieldFiltersForPath(ee,te){return ee.filters.filter((ee=>ee instanceof FieldFilter&&ee.field.isEqual(te)))}function __PRIVATE_targetGetAscendingBound(ee,te,ne){let re=Mn,se=!0;for(const ne of __PRIVATE_targetGetFieldFiltersForPath(ee,te)){let ee=Mn,te=!0;switch(ne.op){case"<":case"<=":ee=__PRIVATE_valuesGetLowerBound(ne.value);break;case"==":case"in":case">=":ee=ne.value;break;case">":ee=ne.value,te=!1;break;case"!=":case"not-in":ee=Mn}__PRIVATE_lowerBoundCompare({value:re,inclusive:se},{value:ee,inclusive:te})<0&&(re=ee,se=te)}if(null!==ne)for(let ie=0;ie<ee.orderBy.length;++ie)if(ee.orderBy[ie].field.isEqual(te)){const ee=ne.position[ie];__PRIVATE_lowerBoundCompare({value:re,inclusive:se},{value:ee,inclusive:ne.inclusive})<0&&(re=ee,se=ne.inclusive);break}return{value:re,inclusive:se}}function __PRIVATE_targetGetDescendingBound(ee,te,ne){let re=On,se=!0;for(const ne of __PRIVATE_targetGetFieldFiltersForPath(ee,te)){let ee=On,te=!0;switch(ne.op){case">=":case">":ee=__PRIVATE_valuesGetUpperBound(ne.value),te=!1;break;case"==":case"in":case"<=":ee=ne.value;break;case"<":ee=ne.value,te=!1;break;case"!=":case"not-in":ee=On}__PRIVATE_upperBoundCompare({value:re,inclusive:se},{value:ee,inclusive:te})>0&&(re=ee,se=te)}if(null!==ne)for(let ie=0;ie<ee.orderBy.length;++ie)if(ee.orderBy[ie].field.isEqual(te)){const ee=ne.position[ie];__PRIVATE_upperBoundCompare({value:re,inclusive:se},{value:ee,inclusive:ne.inclusive})>0&&(re=ee,se=ne.inclusive);break}return{value:re,inclusive:se}}class __PRIVATE_QueryImpl{constructor(ee,te=null,ne=[],re=[],se=null,ie="F",ae=null,oe=null){this.path=ee,this.collectionGroup=te,this.explicitOrderBy=ne,this.filters=re,this.limit=se,this.limitType=ie,this.startAt=ae,this.endAt=oe,this.I=null,this.A=null,this.V=null,this.startAt,this.endAt}}function __PRIVATE_newQuery(ee,te,ne,re,se,ie,ae,oe){return new __PRIVATE_QueryImpl(ee,te,ne,re,se,ie,ae,oe)}function __PRIVATE_newQueryForPath(ee){return new __PRIVATE_QueryImpl(ee)}function __PRIVATE_queryMatchesAllDocuments(ee){return 0===ee.filters.length&&null===ee.limit&&null==ee.startAt&&null==ee.endAt&&(0===ee.explicitOrderBy.length||1===ee.explicitOrderBy.length&&ee.explicitOrderBy[0].field.isKeyField())}function __PRIVATE_isDocumentQuery$1(ee){return DocumentKey.isDocumentKey(ee.path)&&null===ee.collectionGroup&&0===ee.filters.length}function __PRIVATE_isCollectionGroupQuery(ee){return null!==ee.collectionGroup}function __PRIVATE_queryNormalizedOrderBy(ee){const te=__PRIVATE_debugCast(ee);if(null===te.I){te.I=[];const ee=new Set;for(const ne of te.explicitOrderBy)te.I.push(ne),ee.add(ne.field.canonicalString());const ne=te.explicitOrderBy.length>0?te.explicitOrderBy[te.explicitOrderBy.length-1].dir:"asc",re=function __PRIVATE_getInequalityFilterFields(ee){let te=new SortedSet(An.comparator);return ee.filters.forEach((ee=>{ee.getFlattenedFilters().forEach((ee=>{ee.isInequality()&&(te=te.add(ee.field))}))})),te}(te);re.forEach((re=>{ee.has(re.canonicalString())||re.isKeyField()||te.I.push(new OrderBy(re,ne))})),ee.has(An.keyField().canonicalString())||te.I.push(new OrderBy(An.keyField(),ne))}return te.I}function __PRIVATE_queryToTarget(ee){const te=__PRIVATE_debugCast(ee);return te.A||(te.A=__PRIVATE__queryToTarget(te,__PRIVATE_queryNormalizedOrderBy(ee))),te.A}function __PRIVATE_queryToAggregateTarget(ee){const te=__PRIVATE_debugCast(ee);return te.V||(te.V=__PRIVATE__queryToTarget(te,ee.explicitOrderBy)),te.V}function __PRIVATE__queryToTarget(ee,te){if("F"===ee.limitType)return __PRIVATE_newTarget(ee.path,ee.collectionGroup,te,ee.filters,ee.limit,ee.startAt,ee.endAt);{te=te.map((ee=>{const te="desc"===ee.dir?"asc":"desc";return new OrderBy(ee.field,te)}));const ne=ee.endAt?new Bound(ee.endAt.position,ee.endAt.inclusive):null,re=ee.startAt?new Bound(ee.startAt.position,ee.startAt.inclusive):null;return __PRIVATE_newTarget(ee.path,ee.collectionGroup,te,ee.filters,ee.limit,ne,re)}}function __PRIVATE_queryWithAddedFilter(ee,te){const ne=ee.filters.concat([te]);return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ne,ee.limit,ee.limitType,ee.startAt,ee.endAt)}function __PRIVATE_queryWithLimit(ee,te,ne){return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ee.filters.slice(),te,ne,ee.startAt,ee.endAt)}function __PRIVATE_queryEquals(ee,te){return __PRIVATE_targetEquals(__PRIVATE_queryToTarget(ee),__PRIVATE_queryToTarget(te))&&ee.limitType===te.limitType}function __PRIVATE_stringifyQuery(ee){return`Query(target=${function __PRIVATE_stringifyTarget(ee){let te=ee.path.canonicalString();return null!==ee.collectionGroup&&(te+=" collectionGroup="+ee.collectionGroup),ee.filters.length>0&&(te+=`, filters: [${ee.filters.map((ee=>__PRIVATE_stringifyFilter(ee))).join(", ")}]`),__PRIVATE_isNullOrUndefined(ee.limit)||(te+=", limit: "+ee.limit),ee.orderBy.length>0&&(te+=`, orderBy: [${ee.orderBy.map((ee=>function __PRIVATE_stringifyOrderBy(ee){return`${ee.field.canonicalString()} (${ee.dir})`}(ee))).join(", ")}]`),ee.startAt&&(te+=", startAt: ",te+=ee.startAt.inclusive?"b:":"a:",te+=ee.startAt.position.map((ee=>canonicalId(ee))).join(",")),ee.endAt&&(te+=", endAt: ",te+=ee.endAt.inclusive?"a:":"b:",te+=ee.endAt.position.map((ee=>canonicalId(ee))).join(",")),`Target(${te})`}(__PRIVATE_queryToTarget(ee))}; limitType=${ee.limitType})`}function __PRIVATE_queryMatches(ee,te){return te.isFoundDocument()&&function __PRIVATE_queryMatchesPathAndCollectionGroup(ee,te){const ne=te.key.path;return null!==ee.collectionGroup?te.key.hasCollectionId(ee.collectionGroup)&&ee.path.isPrefixOf(ne):DocumentKey.isDocumentKey(ee.path)?ee.path.isEqual(ne):ee.path.isImmediateParentOf(ne)}(ee,te)&&function __PRIVATE_queryMatchesOrderBy(ee,te){for(const ne of __PRIVATE_queryNormalizedOrderBy(ee))if(!ne.field.isKeyField()&&null===te.data.field(ne.field))return!1;return!0}(ee,te)&&function __PRIVATE_queryMatchesFilters(ee,te){for(const ne of ee.filters)if(!ne.matches(te))return!1;return!0}(ee,te)&&function __PRIVATE_queryMatchesBounds(ee,te){return!(ee.startAt&&!function __PRIVATE_boundSortsBeforeDocument(ee,te,ne){const re=__PRIVATE_boundCompareToDocument(ee,te,ne);return ee.inclusive?re<=0:re<0}(ee.startAt,__PRIVATE_queryNormalizedOrderBy(ee),te))&&!(ee.endAt&&!function __PRIVATE_boundSortsAfterDocument(ee,te,ne){const re=__PRIVATE_boundCompareToDocument(ee,te,ne);return ee.inclusive?re>=0:re>0}(ee.endAt,__PRIVATE_queryNormalizedOrderBy(ee),te))}(ee,te)}function __PRIVATE_newQueryComparator(ee){return(te,ne)=>{let re=!1;for(const se of __PRIVATE_queryNormalizedOrderBy(ee)){const ee=__PRIVATE_compareDocs(se,te,ne);if(0!==ee)return ee;re=re||se.field.isKeyField()}return 0}}function __PRIVATE_compareDocs(ee,te,ne){const re=ee.field.isKeyField()?DocumentKey.comparator(te.key,ne.key):function __PRIVATE_compareDocumentsByField(ee,te,ne){const re=te.data.field(ee),se=ne.data.field(ee);return null!==re&&null!==se?__PRIVATE_valueCompare(re,se):l(42886)}(ee.field,te,ne);switch(ee.dir){case"asc":return re;case"desc":return-1*re;default:return l(19790,{direction:ee.dir})}}class ExistenceFilter{constructor(ee,te){this.count=ee,this.unchangedNames=te}}var qn,Kn;function __PRIVATE_isPermanentError(ee){switch(ee){case gn.OK:return l(64938);case gn.CANCELLED:case gn.UNKNOWN:case gn.DEADLINE_EXCEEDED:case gn.RESOURCE_EXHAUSTED:case gn.INTERNAL:case gn.UNAVAILABLE:case gn.UNAUTHENTICATED:return!1;case gn.INVALID_ARGUMENT:case gn.NOT_FOUND:case gn.ALREADY_EXISTS:case gn.PERMISSION_DENIED:case gn.FAILED_PRECONDITION:case gn.ABORTED:case gn.OUT_OF_RANGE:case gn.UNIMPLEMENTED:case gn.DATA_LOSS:return!0;default:return l(15467,{code:ee})}}function __PRIVATE_mapCodeFromRpcCode(ee){if(void 0===ee)return __PRIVATE_logError("GRPC error has no .code"),gn.UNKNOWN;switch(ee){case qn.OK:return gn.OK;case qn.CANCELLED:return gn.CANCELLED;case qn.UNKNOWN:return gn.UNKNOWN;case qn.DEADLINE_EXCEEDED:return gn.DEADLINE_EXCEEDED;case qn.RESOURCE_EXHAUSTED:return gn.RESOURCE_EXHAUSTED;case qn.INTERNAL:return gn.INTERNAL;case qn.UNAVAILABLE:return gn.UNAVAILABLE;case qn.UNAUTHENTICATED:return gn.UNAUTHENTICATED;case qn.INVALID_ARGUMENT:return gn.INVALID_ARGUMENT;case qn.NOT_FOUND:return gn.NOT_FOUND;case qn.ALREADY_EXISTS:return gn.ALREADY_EXISTS;case qn.PERMISSION_DENIED:return gn.PERMISSION_DENIED;case qn.FAILED_PRECONDITION:return gn.FAILED_PRECONDITION;case qn.ABORTED:return gn.ABORTED;case qn.OUT_OF_RANGE:return gn.OUT_OF_RANGE;case qn.UNIMPLEMENTED:return gn.UNIMPLEMENTED;case qn.DATA_LOSS:return gn.DATA_LOSS;default:return l(39323,{code:ee})}}(Kn=qn||(qn={}))[Kn.OK=0]="OK",Kn[Kn.CANCELLED=1]="CANCELLED",Kn[Kn.UNKNOWN=2]="UNKNOWN",Kn[Kn.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",Kn[Kn.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",Kn[Kn.NOT_FOUND=5]="NOT_FOUND",Kn[Kn.ALREADY_EXISTS=6]="ALREADY_EXISTS",Kn[Kn.PERMISSION_DENIED=7]="PERMISSION_DENIED",Kn[Kn.UNAUTHENTICATED=16]="UNAUTHENTICATED",Kn[Kn.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",Kn[Kn.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",Kn[Kn.ABORTED=10]="ABORTED",Kn[Kn.OUT_OF_RANGE=11]="OUT_OF_RANGE",Kn[Kn.UNIMPLEMENTED=12]="UNIMPLEMENTED",Kn[Kn.INTERNAL=13]="INTERNAL",Kn[Kn.UNAVAILABLE=14]="UNAVAILABLE",Kn[Kn.DATA_LOSS=15]="DATA_LOSS";class ObjectMap{constructor(ee,te){this.mapKeyFn=ee,this.equalsFn=te,this.inner={},this.innerSize=0}get(ee){const te=this.mapKeyFn(ee),ne=this.inner[te];if(void 0!==ne)for(const[te,re]of ne)if(this.equalsFn(te,ee))return re}has(ee){return void 0!==this.get(ee)}set(ee,te){const ne=this.mapKeyFn(ee),re=this.inner[ne];if(void 0===re)return this.inner[ne]=[[ee,te]],void this.innerSize++;for(let ne=0;ne<re.length;ne++)if(this.equalsFn(re[ne][0],ee))return void(re[ne]=[ee,te]);re.push([ee,te]),this.innerSize++}delete(ee){const te=this.mapKeyFn(ee),ne=this.inner[te];if(void 0===ne)return!1;for(let re=0;re<ne.length;re++)if(this.equalsFn(ne[re][0],ee))return 1===ne.length?delete this.inner[te]:ne.splice(re,1),this.innerSize--,!0;return!1}forEach(ee){forEach(this.inner,((te,ne)=>{for(const[te,re]of ne)ee(te,re)}))}isEmpty(){return isEmpty(this.inner)}size(){return this.innerSize}}const Qn=new SortedMap(DocumentKey.comparator);function __PRIVATE_mutableDocumentMap(){return Qn}const jn=new SortedMap(DocumentKey.comparator);function documentMap(...ee){let te=jn;for(const ne of ee)te=te.insert(ne.key,ne);return te}function __PRIVATE_convertOverlayedDocumentMapToDocumentMap(ee){let te=jn;return ee.forEach(((ee,ne)=>te=te.insert(ee,ne.overlayedDocument))),te}function __PRIVATE_newOverlayMap(){return __PRIVATE_newDocumentKeyMap()}function __PRIVATE_newMutationMap(){return __PRIVATE_newDocumentKeyMap()}function __PRIVATE_newDocumentKeyMap(){return new ObjectMap((ee=>ee.toString()),((ee,te)=>ee.isEqual(te)))}const Jn=new SortedMap(DocumentKey.comparator),zn=new SortedSet(DocumentKey.comparator);function __PRIVATE_documentKeySet(...ee){let te=zn;for(const ne of ee)te=te.add(ne);return te}const Wn=new SortedSet(__PRIVATE_primitiveComparator);function __PRIVATE_targetIdSet(){return Wn}let $n=null;function __PRIVATE_newTextEncoder(){return new TextEncoder}const Yn=new oe([4294967295,4294967295],0);function __PRIVATE_getMd5HashValue(ee){const te=__PRIVATE_newTextEncoder().encode(ee),ne=new ue;return ne.update(te),new Uint8Array(ne.digest())}function __PRIVATE_get64BitUints(ee){const te=new DataView(ee.buffer),ne=te.getUint32(0,!0),re=te.getUint32(4,!0),se=te.getUint32(8,!0),ie=te.getUint32(12,!0);return[new oe([ne,re],0),new oe([se,ie],0)]}class BloomFilter{constructor(ee,te,ne){if(this.bitmap=ee,this.padding=te,this.hashCount=ne,te<0||te>=8)throw new __PRIVATE_BloomFilterError(`Invalid padding: ${te}`);if(ne<0)throw new __PRIVATE_BloomFilterError(`Invalid hash count: ${ne}`);if(ee.length>0&&0===this.hashCount)throw new __PRIVATE_BloomFilterError(`Invalid hash count: ${ne}`);if(0===ee.length&&0!==te)throw new __PRIVATE_BloomFilterError(`Invalid padding when bitmap length is 0: ${te}`);this.m=8*ee.length-te,this.p=oe.fromNumber(this.m)}v(ee,te,ne){let re=ee.add(te.multiply(oe.fromNumber(ne)));return 1===re.compare(Yn)&&(re=new oe([re.getBits(0),re.getBits(1)],0)),re.modulo(this.p).toNumber()}S(ee){return!!(this.bitmap[Math.floor(ee/8)]&1<<ee%8)}mightContain(ee){if(0===this.m)return!1;const te=__PRIVATE_getMd5HashValue(ee),[ne,re]=__PRIVATE_get64BitUints(te);for(let ee=0;ee<this.hashCount;ee++){const te=this.v(ne,re,ee);if(!this.S(te))return!1}return!0}static create(ee,te,ne){const re=ee%8==0?0:8-ee%8,se=new Uint8Array(Math.ceil(ee/8)),ie=new BloomFilter(se,re,te);return ne.forEach((ee=>ie.insert(ee))),ie}insert(ee){if(0===this.m)return;const te=__PRIVATE_getMd5HashValue(ee),[ne,re]=__PRIVATE_get64BitUints(te);for(let ee=0;ee<this.hashCount;ee++){const te=this.v(ne,re,ee);this.D(te)}}D(ee){const te=Math.floor(ee/8),ne=ee%8;this.bitmap[te]|=1<<ne}}class __PRIVATE_BloomFilterError extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class RemoteEvent{constructor(ee,te,ne,re,se,ie){this.snapshotVersion=ee,this.targetChanges=te,this.targetMismatches=ne,this.documentUpdates=re,this.augmentedDocumentUpdates=se,this.resolvedLimboDocuments=ie}static createSynthesizedRemoteEventForCurrentChange(ee,te,ne){const re=new Map;return re.set(ee,TargetChange.createSynthesizedTargetChangeForCurrentChange(ee,te,ne)),new RemoteEvent(SnapshotVersion.min(),re,new SortedMap(__PRIVATE_primitiveComparator),__PRIVATE_mutableDocumentMap(),__PRIVATE_mutableDocumentMap(),__PRIVATE_documentKeySet())}}class TargetChange{constructor(ee,te,ne,re,se){this.resumeToken=ee,this.current=te,this.addedDocuments=ne,this.modifiedDocuments=re,this.removedDocuments=se}static createSynthesizedTargetChangeForCurrentChange(ee,te,ne){return new TargetChange(ne,te,__PRIVATE_documentKeySet(),__PRIVATE_documentKeySet(),__PRIVATE_documentKeySet())}}class __PRIVATE_DocumentWatchChange{constructor(ee,te,ne,re){this.C=ee,this.removedTargetIds=te,this.key=ne,this.F=re}}class __PRIVATE_ExistenceFilterChange{constructor(ee,te){this.targetId=ee,this.O=te}}class __PRIVATE_WatchTargetChange{constructor(ee,te,ne=ByteString.EMPTY_BYTE_STRING,re=null){this.state=ee,this.targetIds=te,this.resumeToken=ne,this.cause=re}}class __PRIVATE_TargetState{constructor(ee){this.targetId=ee,this.M=0,this.N=__PRIVATE_snapshotChangesMap(),this.L=ByteString.EMPTY_BYTE_STRING,this.B=!1,this.U=!0}get current(){return this.B}get resumeToken(){return this.L}get k(){return 0!==this.M}get q(){return this.U}$(ee){ee.approximateByteSize()>0&&(this.U=!0,this.L=ee)}K(){let ee=__PRIVATE_documentKeySet(),te=__PRIVATE_documentKeySet(),ne=__PRIVATE_documentKeySet();return this.N.forEach(((re,se)=>{switch(se){case 0:ee=ee.add(re);break;case 2:te=te.add(re);break;case 1:ne=ne.add(re);break;default:l(38017,{changeType:se})}})),new TargetChange(this.L,this.B,ee,te,ne)}W(){this.U=!1,this.N=__PRIVATE_snapshotChangesMap()}G(ee,te){this.U=!0,this.N=this.N.insert(ee,te)}j(ee){this.U=!0,this.N=this.N.remove(ee)}H(){this.M+=1}J(){this.M-=1,__PRIVATE_hardAssert(this.M>=0,3241,{M:this.M,targetId:this.targetId})}Y(){this.U=!0,this.B=!0}}const Xn="WatchChangeAggregator";class __PRIVATE_WatchChangeAggregator{constructor(ee){this.Z=ee,this.X=new Map,this.ee=__PRIVATE_mutableDocumentMap(),this.te=__PRIVATE_documentTargetMap(),this.ne=__PRIVATE_mutableDocumentMap(),this.re=__PRIVATE_documentTargetMap(),this.ie=new SortedMap(__PRIVATE_primitiveComparator)}se(ee){for(const te of ee.C)ee.F&&ee.F.isFoundDocument()?this._e(te,ee.F):this.oe(te,ee.key,ee.F);for(const te of ee.removedTargetIds)this.oe(te,ee.key,ee.F)}ae(ee){this.forEachTarget(ee,(te=>{const ne=this.X.get(te);if(ne)switch(ee.state){case 0:this.ue(te)&&ne.$(ee.resumeToken);break;case 1:ne.J(),ne.k||ne.W(),ne.$(ee.resumeToken);break;case 2:ne.J(),ne.k||this.removeTarget(te);break;case 3:this.ue(te)&&(ne.Y(),ne.$(ee.resumeToken));break;case 4:this.ue(te)&&(this.ce(te),ne.$(ee.resumeToken));break;default:l(56790,{state:ee.state})}else __PRIVATE_logDebug(Xn,`handleTargetChange received targetChange for untracked target ID (${te}) with state (${ee.state})`)}))}forEachTarget(ee,te){ee.targetIds.length>0?ee.targetIds.forEach(te):this.X.forEach(((ee,ne)=>{this.ue(ne)&&te(ne)}))}le(ee){return __PRIVATE_targetIsPipelineTarget(ee)?"documents"===ee.getPipelineSourceType()&&1===ee.getPipelineDocuments()?.length:__PRIVATE_targetIsDocumentTarget(ee)}Ee(ee){const te=ee.targetId,ne=ee.O.count,re=this.he(te);if(re){const se=re.target;if(this.le(se))if(0===ne){const ee=new DocumentKey(__PRIVATE_targetIsPipelineTarget(se)?ResourcePath.fromString(se.getPipelineDocuments()[0]):se.path);this.oe(te,ee,MutableDocument.newNoDocument(ee,SnapshotVersion.min()))}else __PRIVATE_hardAssert(1===ne,20013,"Single document existence filter with count: "+ne);else{const re=this.Te(te);if(re!==ne){const ne=this.Pe(ee),se=ne?this.Re(ne,ee,re):1;if(0!==se){this.ce(te);const ee=2===se?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.ie=this.ie.insert(te,ee)}$n?.Ie(function __PRIVATE_createExistenceFilterMismatchInfoForTestingHooks(ee,te,ne,re,se){const ie={localCacheCount:ee,existenceFilterCount:te.count,databaseId:ne.database,projectId:ne.projectId},ae=te.unchangedNames;return ae&&(ie.bloomFilter={applied:0===se,hashCount:ae?.hashCount??0,bitmapLength:ae?.bits?.bitmap?.length??0,padding:ae?.bits?.padding??0,mightContain:ee=>re?.mightContain(ee)??!1}),ie}(re,ee.O,this.Z.Ae(),ne,se))}}}}Pe(ee){const te=ee.O.unchangedNames;if(!te||!te.bits)return null;const{bits:{bitmap:ne="",padding:re=0},hashCount:se=0}=te;let ie,ae;try{ie=__PRIVATE_normalizeByteString(ne).toUint8Array()}catch(ee){if(ee instanceof __PRIVATE_Base64DecodeError)return __PRIVATE_logWarn("Decoding the base64 bloom filter in existence filter failed ("+ee.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw ee}try{ae=new BloomFilter(ie,re,se)}catch(ee){return __PRIVATE_logWarn(ee instanceof __PRIVATE_BloomFilterError?"BloomFilter error: ":"Applying bloom filter failed: ",ee),null}return 0===ae.m?null:ae}Re(ee,te,ne){return te.O.count===ne-this.Ve(ee,te.targetId)?0:2}Ve(ee,te){const ne=this.Z.getRemoteKeysForTarget(te);let re=0;return ne.forEach((ne=>{const se=this.Z.Ae(),ie=`projects/${se.projectId}/databases/${se.database}/documents/${ne.path.canonicalString()}`;ee.mightContain(ie)||(this.oe(te,ne,null),re++)})),re}de(ee){const te=new Map;this.X.forEach(((ne,re)=>{const se=this.he(re);if(se){if(ne.current&&this.le(se.target)){const te=__PRIVATE_targetIsPipelineTarget(se.target)?ResourcePath.fromString(se.target.getPipelineDocuments()[0]):se.target.path,ne=new DocumentKey(te);this.fe(ne).has(re)||this.me(re,ne)||this.oe(re,ne,MutableDocument.newNoDocument(ne,ee))}ne.q&&(te.set(re,ne.K()),ne.W())}}));let ne=__PRIVATE_documentKeySet();this.re.forEach(((ee,te)=>{let re=!0;te.forEachWhile((ee=>{const te=this.he(ee);return!te||"TargetPurposeLimboResolution"===te.purpose||(re=!1,!1)})),re&&(ne=ne.add(ee))})),this.ee.forEach(((te,ne)=>ne.setReadTime(ee))),this.ne.forEach(((te,ne)=>ne.setReadTime(ee)));const re=new RemoteEvent(ee,te,this.ie,this.ee,this.ne,ne);return this.ee=__PRIVATE_mutableDocumentMap(),this.te=__PRIVATE_documentTargetMap(),this.ne=__PRIVATE_mutableDocumentMap(),this.re=__PRIVATE_documentTargetMap(),this.ie=new SortedMap(__PRIVATE_primitiveComparator),re}_e(ee,te){const ne=this.X.get(ee);if(!ne||!this.ue(ee))return void __PRIVATE_logDebug(Xn,`addDocumentToTarget received document for unknown inactive target (${ee})`);const re=this.me(ee,te.key)?2:0;ne.G(te.key,re),__PRIVATE_targetIsPipelineTarget(this.he(ee).target)&&"exact"!==this.he(ee).target.getPipelineFlavor()?this.ne=this.ne.insert(te.key,te):this.ee=this.ee.insert(te.key,te),this.te=this.te.insert(te.key,this.fe(te.key).add(ee)),this.re=this.re.insert(te.key,this.pe(te.key).add(ee))}oe(ee,te,ne){const re=this.X.get(ee);re&&this.ue(ee)?(this.me(ee,te)?re.G(te,1):re.j(te),this.re=this.re.insert(te,this.pe(te).delete(ee)),this.re=this.re.insert(te,this.pe(te).add(ee)),ne&&(__PRIVATE_targetIsPipelineTarget(this.he(ee).target)&&"exact"!==this.he(ee).target.getPipelineFlavor()?this.ne=this.ne.insert(te,ne):this.ee=this.ee.insert(te,ne))):__PRIVATE_logDebug(Xn,`removeDocumentFromTarget received document for unknown or inactive target (${ee})`)}removeTarget(ee){this.X.delete(ee)}Te(ee){const te=this.X.get(ee);if(!te)return 0;const ne=te.K();return this.Z.getRemoteKeysForTarget(ee).size+ne.addedDocuments.size-ne.removedDocuments.size}H(ee){let te=this.X.get(ee);te||(__PRIVATE_logDebug(Xn,`recordPendingTargetRequest set up tracking for target ID ${ee}`),te=new __PRIVATE_TargetState(ee),this.X.set(ee,te)),te.H()}pe(ee){let te=this.re.get(ee);return te||(te=new SortedSet(__PRIVATE_primitiveComparator),this.re=this.re.insert(ee,te)),te}fe(ee){let te=this.te.get(ee);return te||(te=new SortedSet(__PRIVATE_primitiveComparator),this.te=this.te.insert(ee,te)),te}ue(ee){const te=null!==this.he(ee);return te||__PRIVATE_logDebug(Xn,"Detected inactive target",ee),te}he(ee){const te=this.X.get(ee);return void 0===te||te.k?null:this.Z.ge(ee)}ce(ee){this.X.set(ee,new __PRIVATE_TargetState(ee)),this.Z.getRemoteKeysForTarget(ee).forEach((te=>{this.oe(ee,te,null)}))}me(ee,te){return this.Z.getRemoteKeysForTarget(ee).has(te)}}function __PRIVATE_documentTargetMap(){return new SortedMap(DocumentKey.comparator)}function __PRIVATE_snapshotChangesMap(){return new SortedMap(DocumentKey.comparator)}const Zn={asc:"ASCENDING",desc:"DESCENDING"},er={"<":"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"},tr={and:"AND",or:"OR"};class JsonProtoSerializer{constructor(ee,te){this.databaseId=ee,this.useProto3Json=te}}function __PRIVATE_toInt32Proto(ee,te){return ee.useProto3Json||__PRIVATE_isNullOrUndefined(te)?te:{value:te}}function toTimestamp(ee,te){return ee.useProto3Json?`${new Date(1e3*te.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+te.nanoseconds).slice(-9)}Z`:{seconds:""+te.seconds,nanos:te.nanoseconds}}function fromTimestamp(ee){const te=__PRIVATE_normalizeTimestamp(ee);return new Timestamp(te.seconds,te.nanos)}function __PRIVATE_toBytes(ee,te){return ee.useProto3Json?te.toBase64():te.toUint8Array()}function __PRIVATE_toVersion(ee,te){return toTimestamp(ee,te.toTimestamp())}function __PRIVATE_fromVersion(ee){return __PRIVATE_hardAssert(!!ee,49232),SnapshotVersion.fromTimestamp(fromTimestamp(ee))}function __PRIVATE_toResourceName(ee,te){return __PRIVATE_toResourcePath(ee,te).canonicalString()}function __PRIVATE_toResourcePath(ee,te){const ne=function __PRIVATE_fullyQualifiedPrefixPath(ee){return new ResourcePath(["projects",ee.projectId,"databases",ee.database])}(ee).child("documents");return void 0===te?ne:ne.child(te)}function __PRIVATE_fromResourceName(ee){const te=ResourcePath.fromString(ee);return __PRIVATE_hardAssert(__PRIVATE_isValidResourceName(te),10190,{key:te.toString()}),te}function __PRIVATE_toName(ee,te){return __PRIVATE_toResourceName(ee.databaseId,te.path)}function fromName(ee,te){const ne=__PRIVATE_fromResourceName(te);if(ne.get(1)!==ee.databaseId.projectId)throw new s(gn.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+ne.get(1)+" vs "+ee.databaseId.projectId);if(ne.get(3)!==ee.databaseId.database)throw new s(gn.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+ne.get(3)+" vs "+ee.databaseId.database);return new DocumentKey(__PRIVATE_extractLocalPathFromResourceName(ne))}function __PRIVATE_toQueryPath(ee,te){return __PRIVATE_toResourceName(ee.databaseId,te)}function __PRIVATE_fromQueryPath(ee){const te=__PRIVATE_fromResourceName(ee);return 4===te.length?ResourcePath.emptyPath():__PRIVATE_extractLocalPathFromResourceName(te)}function __PRIVATE_getEncodedDatabaseId(ee){return new ResourcePath(["projects",ee.databaseId.projectId,"databases",ee.databaseId.database]).canonicalString()}function __PRIVATE_extractLocalPathFromResourceName(ee){return __PRIVATE_hardAssert(ee.length>4&&"documents"===ee.get(4),29091,{key:ee.toString()}),ee.popFirst(5)}function __PRIVATE_toMutationDocument(ee,te,ne){return{name:__PRIVATE_toName(ee,te),fields:ne.value.mapValue.fields}}function __PRIVATE_fromPipelineResponse(ee,te,ne){const re={};te.transaction?.length&&(re.transaction=te.transaction);const se=te.executionTime?__PRIVATE_fromVersion(te.executionTime):void 0;return re.executionTime=se,ne&&(re.key=ne.name?fromName(ee,ne.name):void 0,re.fields=new ObjectValue({mapValue:{fields:ne.fields}}),re.createTime=ne.createTime?__PRIVATE_fromVersion(ne.createTime):void 0,re.updateTime=ne.updateTime?__PRIVATE_fromVersion(ne.updateTime):void 0),re}function fromDocument(ee,te,ne){const re=fromName(ee,te.name),se=__PRIVATE_fromVersion(te.updateTime),ie=te.createTime?__PRIVATE_fromVersion(te.createTime):SnapshotVersion.min(),ae=new ObjectValue({mapValue:{fields:te.fields}}),oe=MutableDocument.newFoundDocument(re,se,ie,ae);return ne&&oe.setHasCommittedMutations(),ne?oe.setHasCommittedMutations():oe}function toMutation(ee,te){let ne;if(te instanceof __PRIVATE_SetMutation)ne={update:__PRIVATE_toMutationDocument(ee,te.key,te.value)};else if(te instanceof __PRIVATE_DeleteMutation)ne={delete:__PRIVATE_toName(ee,te.key)};else if(te instanceof __PRIVATE_PatchMutation)ne={update:__PRIVATE_toMutationDocument(ee,te.key,te.data),updateMask:__PRIVATE_toDocumentMask(te.fieldMask)};else{if(!(te instanceof __PRIVATE_VerifyMutation))return l(16599,{we:te.type});ne={verify:__PRIVATE_toName(ee,te.key)}}return te.fieldTransforms.length>0&&(ne.updateTransforms=te.fieldTransforms.map((ee=>function __PRIVATE_toFieldTransform(ee,te){const ne=te.transform;if(ne instanceof __PRIVATE_ServerTimestampTransform)return{fieldPath:te.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(ne instanceof __PRIVATE_ArrayUnionTransformOperation)return{fieldPath:te.field.canonicalString(),appendMissingElements:{values:ne.elements}};if(ne instanceof __PRIVATE_ArrayRemoveTransformOperation)return{fieldPath:te.field.canonicalString(),removeAllFromArray:{values:ne.elements}};if(ne instanceof __PRIVATE_NumericIncrementTransformOperation)return{fieldPath:te.field.canonicalString(),increment:ne.l};if(ne instanceof __PRIVATE_NumericMinimumTransformOperation)return{fieldPath:te.field.canonicalString(),minimum:ne.l};if(ne instanceof __PRIVATE_NumericMaximumTransformOperation)return{fieldPath:te.field.canonicalString(),maximum:ne.l};throw l(20930,{transform:te.transform})}(0,ee)))),te.precondition.isNone||(ne.currentDocument=function __PRIVATE_toPrecondition(ee,te){return void 0!==te.updateTime?{updateTime:__PRIVATE_toVersion(ee,te.updateTime)}:void 0!==te.exists?{exists:te.exists}:l(27497)}(ee,te.precondition)),ne}function __PRIVATE_fromMutation(ee,te){const ne=te.currentDocument?function __PRIVATE_fromPrecondition(ee){return void 0!==ee.updateTime?Precondition.updateTime(__PRIVATE_fromVersion(ee.updateTime)):void 0!==ee.exists?Precondition.exists(ee.exists):Precondition.none()}(te.currentDocument):Precondition.none(),re=te.updateTransforms?te.updateTransforms.map((te=>function __PRIVATE_fromFieldTransform(ee,te){let ne=null;if("setToServerValue"in te)__PRIVATE_hardAssert("REQUEST_TIME"===te.setToServerValue,16630,{proto:te}),ne=new __PRIVATE_ServerTimestampTransform;else if("appendMissingElements"in te){const ee=te.appendMissingElements.values||[];ne=new __PRIVATE_ArrayUnionTransformOperation(ee)}else if("removeAllFromArray"in te){const ee=te.removeAllFromArray.values||[];ne=new __PRIVATE_ArrayRemoveTransformOperation(ee)}else"increment"in te?ne=new __PRIVATE_NumericIncrementTransformOperation(ee,te.increment):"minimum"in te?ne=new __PRIVATE_NumericMinimumTransformOperation(ee,te.minimum):"maximum"in te?ne=new __PRIVATE_NumericMaximumTransformOperation(ee,te.maximum):l(16584,{proto:te});const re=An.fromServerFormat(te.fieldPath);return new FieldTransform(re,ne)}(ee,te))):[];if(te.update){te.update.name;const se=fromName(ee,te.update.name),ie=new ObjectValue({mapValue:{fields:te.update.fields}});if(te.updateMask){const ee=function __PRIVATE_fromDocumentMask(ee){const te=ee.fieldPaths||[];return new FieldMask(te.map((ee=>An.fromServerFormat(ee))))}(te.updateMask);return new __PRIVATE_PatchMutation(se,ie,ee,ne,re)}return new __PRIVATE_SetMutation(se,ie,ne,re)}if(te.delete){const re=fromName(ee,te.delete);return new __PRIVATE_DeleteMutation(re,ne)}if(te.verify){const re=fromName(ee,te.verify);return new __PRIVATE_VerifyMutation(re,ne)}return l(1463,{proto:te})}function __PRIVATE_toDocumentsTarget(ee,te){return{documents:[__PRIVATE_toQueryPath(ee,te.path)]}}function __PRIVATE_toQueryTarget(ee,te){const ne={structuredQuery:{}},re=te.path;let se;null!==te.collectionGroup?(se=re,ne.structuredQuery.from=[{collectionId:te.collectionGroup,allDescendants:!0}]):(se=re.popLast(),ne.structuredQuery.from=[{collectionId:re.lastSegment()}]),ne.parent=__PRIVATE_toQueryPath(ee,se);const ie=function __PRIVATE_toFilters(ee){if(0!==ee.length)return __PRIVATE_toFilter(CompositeFilter.create(ee,"and"))}(te.filters);ie&&(ne.structuredQuery.where=ie);const ae=function __PRIVATE_toOrder(ee){if(0!==ee.length)return ee.map((ee=>function __PRIVATE_toPropertyOrder(ee){return{field:__PRIVATE_toFieldPathReference(ee.field),direction:__PRIVATE_toDirection(ee.dir)}}(ee)))}(te.orderBy);ae&&(ne.structuredQuery.orderBy=ae);const oe=__PRIVATE_toInt32Proto(ee,te.limit);return null!==oe&&(ne.structuredQuery.limit=oe),te.startAt&&(ne.structuredQuery.startAt=function __PRIVATE_toStartAtCursor(ee){return{before:ee.inclusive,values:ee.position}}(te.startAt)),te.endAt&&(ne.structuredQuery.endAt=function __PRIVATE_toEndAtCursor(ee){return{before:!ee.inclusive,values:ee.position}}(te.endAt)),{be:ne,parent:se}}function __PRIVATE_toRunAggregationQueryRequest(ee,te,ne,re){const{be:se,parent:ie}=__PRIVATE_toQueryTarget(ee,te),ae={},oe=[];let ue=0;return ne.forEach((ee=>{const te=re?ee.alias:"aggregate_"+ue++;ae[te]=ee.alias,"count"===ee.aggregateType?oe.push({alias:te,count:{}}):"avg"===ee.aggregateType?oe.push({alias:te,avg:{field:__PRIVATE_toFieldPathReference(ee.fieldPath)}}):"sum"===ee.aggregateType&&oe.push({alias:te,sum:{field:__PRIVATE_toFieldPathReference(ee.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:oe,structuredQuery:se.structuredQuery},parent:se.parent},ve:ae,parent:ie}}function __PRIVATE_convertQueryTargetToQuery(ee){let te=__PRIVATE_fromQueryPath(ee.parent);const ne=ee.structuredQuery,re=ne.from?ne.from.length:0;let se=null;if(re>0){__PRIVATE_hardAssert(1===re,65062);const ee=ne.from[0];ee.allDescendants?se=ee.collectionId:te=te.child(ee.collectionId)}let ie=[];ne.where&&(ie=function __PRIVATE_fromFilters(ee){const te=__PRIVATE_fromFilter(ee);return te instanceof CompositeFilter&&__PRIVATE_compositeFilterIsFlatConjunction(te)?te.getFilters():[te]}(ne.where));let ae=[];ne.orderBy&&(ae=function __PRIVATE_fromOrder(ee){return ee.map((ee=>function __PRIVATE_fromPropertyOrder(ee){return new OrderBy(__PRIVATE_fromFieldPathReference(ee.field),function __PRIVATE_fromDirection(ee){switch(ee){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(ee.direction))}(ee)))}(ne.orderBy));let oe=null;ne.limit&&(oe=function __PRIVATE_fromInt32Proto(ee){let te;return te="object"==typeof ee?ee.value:ee,__PRIVATE_isNullOrUndefined(te)?null:te}(ne.limit));let ue=null;ne.startAt&&(ue=function __PRIVATE_fromStartAtCursor(ee){const te=!!ee.before,ne=ee.values||[];return new Bound(ne,te)}(ne.startAt));let Be=null;return ne.endAt&&(Be=function __PRIVATE_fromEndAtCursor(ee){const te=!ee.before,ne=ee.values||[];return new Bound(ne,te)}(ne.endAt)),__PRIVATE_newQuery(te,se,ae,ie,oe,"F",ue,Be)}function __PRIVATE_toPipelineTarget(ee,te){return{structuredPipeline:{pipeline:{stages:te.stages.map((te=>te._toProto(ee)))}}}}function __PRIVATE_fromFilter(ee){return void 0!==ee.unaryFilter?function __PRIVATE_fromUnaryFilter(ee){switch(ee.unaryFilter.op){case"IS_NAN":const te=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(te,"==",{doubleValue:NaN});case"IS_NULL":const ne=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(ne,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const re=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(re,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const se=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(se,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return l(61313);default:return l(60726)}}(ee):void 0!==ee.fieldFilter?function __PRIVATE_fromFieldFilter(ee){return FieldFilter.create(__PRIVATE_fromFieldPathReference(ee.fieldFilter.field),function __PRIVATE_fromOperatorName(ee){switch(ee){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 l(58110);default:return l(50506)}}(ee.fieldFilter.op),ee.fieldFilter.value)}(ee):void 0!==ee.compositeFilter?function __PRIVATE_fromCompositeFilter(ee){return CompositeFilter.create(ee.compositeFilter.filters.map((ee=>__PRIVATE_fromFilter(ee))),function __PRIVATE_fromCompositeOperatorName(ee){switch(ee){case"AND":return"and";case"OR":return"or";default:return l(1026)}}(ee.compositeFilter.op))}(ee):l(30097,{filter:ee})}function __PRIVATE_toDirection(ee){return Zn[ee]}function __PRIVATE_toOperatorName(ee){return er[ee]}function __PRIVATE_toCompositeOperatorName(ee){return tr[ee]}function __PRIVATE_toFieldPathReference(ee){return{fieldPath:ee.canonicalString()}}function __PRIVATE_fromFieldPathReference(ee){return An.fromServerFormat(ee.fieldPath)}function __PRIVATE_toFilter(ee){return ee instanceof FieldFilter?function __PRIVATE_toUnaryOrFieldFilter(ee){if("=="===ee.op){if(__PRIVATE_isNanValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NAN"}};if(__PRIVATE_isNullValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NULL"}}}else if("!="===ee.op){if(__PRIVATE_isNanValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NOT_NAN"}};if(__PRIVATE_isNullValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:__PRIVATE_toOperatorName(ee.op),value:ee.value}}}(ee):ee instanceof CompositeFilter?function __PRIVATE_toCompositeFilter(ee){const te=ee.getFilters().map((ee=>__PRIVATE_toFilter(ee)));return 1===te.length?te[0]:{compositeFilter:{op:__PRIVATE_toCompositeOperatorName(ee.op),filters:te}}}(ee):l(54877,{filter:ee})}function __PRIVATE_toDocumentMask(ee){const te=[];return ee.fields.forEach((ee=>te.push(ee.canonicalString()))),{fieldPaths:te}}function __PRIVATE_isValidResourceName(ee){return ee.length>=4&&"projects"===ee.get(0)&&"databases"===ee.get(2)}function __PRIVATE_isProtoValueSerializable(ee){return!!ee&&"function"==typeof ee._toProto&&"ProtoValue"===ee._protoValueType}function toMapValue(ee,te){const ne={fields:{}};return te.forEach(((te,re)=>{if("string"!=typeof re)throw new Error(`Cannot encode map with non-string key: ${re}`);ne.fields[re]=te._toProto(ee)})),{mapValue:ne}}function __PRIVATE_toStringValue(ee){return{stringValue:ee}}function __PRIVATE_toPipelineValue(ee){return{pipelineValue:ee}}function __PRIVATE_newSerializer(ee){return new JsonProtoSerializer(ee,!0)}class Bytes{constructor(ee){this._byteString=ee}static fromBase64String(ee){try{return new Bytes(ByteString.fromBase64String(ee))}catch(ee){throw new s(gn.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+ee)}}static fromUint8Array(ee){return new Bytes(ByteString.fromUint8Array(ee))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(ee){return this._byteString.isEqual(ee._byteString)}toJSON(){return{type:Bytes._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,Bytes._jsonSchema))return Bytes.fromBase64String(ee.bytes)}}Bytes._jsonSchemaVersion="firestore/bytes/1.0",Bytes._jsonSchema={type:property("string",Bytes._jsonSchemaVersion),bytes:property("string")};class FieldPath{constructor(...ee){for(let te=0;te<ee.length;++te)if(0===ee[te].length)throw new s(gn.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new An(ee)}isEqual(ee){return this._internalPath.isEqual(ee._internalPath)}}function documentId$1(){return new FieldPath(Tn)}class FieldValue{constructor(ee){this._methodName=ee}}class GeoPoint{constructor(ee,te){if(!isFinite(ee)||ee<-90||ee>90)throw new s(gn.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+ee);if(!isFinite(te)||te<-180||te>180)throw new s(gn.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+te);this._lat=ee,this._long=te}get latitude(){return this._lat}get longitude(){return this._long}isEqual(ee){return this._lat===ee._lat&&this._long===ee._long}_compareTo(ee){return __PRIVATE_primitiveComparator(this._lat,ee._lat)||__PRIVATE_primitiveComparator(this._long,ee._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:GeoPoint._jsonSchemaVersion}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,GeoPoint._jsonSchema))return new GeoPoint(ee.latitude,ee.longitude)}}GeoPoint._jsonSchemaVersion="firestore/geoPoint/1.0",GeoPoint._jsonSchema={type:property("string",GeoPoint._jsonSchemaVersion),latitude:property("number"),longitude:property("number")};class User{constructor(ee){this.uid=ee}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(ee){return ee.uid===this.uid}}User.UNAUTHENTICATED=new User(null),User.GOOGLE_CREDENTIALS=new User("google-credentials-uid"),User.FIRST_PARTY=new User("first-party-uid"),User.MOCK_USER=new User("mock-user");class __PRIVATE_Deferred{constructor(){this.promise=new Promise(((ee,te)=>{this.resolve=ee,this.reject=te}))}}class __PRIVATE_OAuthToken{constructor(ee,te){this.user=te,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${ee}`)}}class __PRIVATE_EmptyAuthCredentialsProvider{getToken(){return Promise.resolve(null)}invalidateToken(){}start(ee,te){ee.enqueueRetryable((()=>te(User.UNAUTHENTICATED)))}shutdown(){}}class __PRIVATE_EmulatorAuthCredentialsProvider{constructor(ee){this.token=ee,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(ee,te){this.changeListener=te,ee.enqueueRetryable((()=>te(this.token.user)))}shutdown(){this.changeListener=null}}class __PRIVATE_FirebaseAuthCredentialsProvider{constructor(ee){this.Se=ee,this.currentUser=User.UNAUTHENTICATED,this.De=0,this.forceRefresh=!1,this.auth=null}start(ee,te){__PRIVATE_hardAssert(void 0===this.xe,42304);let ne=this.De;const __PRIVATE_guardedChangeListener=ee=>this.De!==ne?(ne=this.De,te(ee)):Promise.resolve();let re=new __PRIVATE_Deferred;this.xe=()=>{this.De++,this.currentUser=this.Ce(),re.resolve(),re=new __PRIVATE_Deferred,ee.enqueueRetryable((()=>__PRIVATE_guardedChangeListener(this.currentUser)))};const __PRIVATE_awaitNextToken=()=>{const te=re;ee.enqueueRetryable((async()=>{await te.promise,await __PRIVATE_guardedChangeListener(this.currentUser)}))},__PRIVATE_registerAuth=ee=>{__PRIVATE_logDebug("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=ee,this.xe&&(this.auth.addAuthTokenListener(this.xe),__PRIVATE_awaitNextToken())};this.Se.onInit((ee=>__PRIVATE_registerAuth(ee))),setTimeout((()=>{if(!this.auth){const ee=this.Se.getImmediate({optional:!0});ee?__PRIVATE_registerAuth(ee):(__PRIVATE_logDebug("FirebaseAuthCredentialsProvider","Auth not yet detected"),re.resolve(),re=new __PRIVATE_Deferred)}}),0),__PRIVATE_awaitNextToken()}getToken(){const ee=this.De,te=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(te).then((te=>this.De!==ee?(__PRIVATE_logDebug("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):te?(__PRIVATE_hardAssert("string"==typeof te.accessToken,31837,{Fe:te}),new __PRIVATE_OAuthToken(te.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.xe&&this.auth.removeAuthTokenListener(this.xe),this.xe=void 0}Ce(){const ee=this.auth&&this.auth.getUid();return __PRIVATE_hardAssert(null===ee||"string"==typeof ee,2055,{Oe:ee}),new User(ee)}}class __PRIVATE_FirstPartyToken{constructor(ee,te,ne){this.Me=ee,this.Ne=te,this.Le=ne,this.type="FirstParty",this.user=User.FIRST_PARTY,this.Be=new Map}Ue(){return this.Le?this.Le():null}get headers(){this.Be.set("X-Goog-AuthUser",this.Me);const ee=this.Ue();return ee&&this.Be.set("Authorization",ee),this.Ne&&this.Be.set("X-Goog-Iam-Authorization-Token",this.Ne),this.Be}}class __PRIVATE_FirstPartyAuthCredentialsProvider{constructor(ee,te,ne){this.Me=ee,this.Ne=te,this.Le=ne}getToken(){return Promise.resolve(new __PRIVATE_FirstPartyToken(this.Me,this.Ne,this.Le))}start(ee,te){ee.enqueueRetryable((()=>te(User.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class AppCheckToken{constructor(ee){this.value=ee,this.type="AppCheck",this.headers=new Map,ee&&ee.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class __PRIVATE_FirebaseAppCheckTokenProvider{constructor(te,ne){this.ke=ne,this.forceRefresh=!1,this.appCheck=null,this.qe=null,this.$e=null,ee(te)&&te.settings.appCheckToken&&(this.$e=te.settings.appCheckToken)}start(ee,te){__PRIVATE_hardAssert(void 0===this.xe,3512);const onTokenChanged=ee=>{null!=ee.error&&__PRIVATE_logDebug("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${ee.error.message}`);const ne=ee.token!==this.qe;return this.qe=ee.token,__PRIVATE_logDebug("FirebaseAppCheckTokenProvider",`Received ${ne?"new":"existing"} token.`),ne?te(ee.token):Promise.resolve()};this.xe=te=>{ee.enqueueRetryable((()=>onTokenChanged(te)))};const __PRIVATE_registerAppCheck=ee=>{__PRIVATE_logDebug("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=ee,this.xe&&this.appCheck.addTokenListener(this.xe)};this.ke.onInit((ee=>__PRIVATE_registerAppCheck(ee))),setTimeout((()=>{if(!this.appCheck){const ee=this.ke.getImmediate({optional:!0});ee?__PRIVATE_registerAppCheck(ee):__PRIVATE_logDebug("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){if(this.$e)return Promise.resolve(new AppCheckToken(this.$e));const ee=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(ee).then((ee=>ee?(__PRIVATE_hardAssert("string"==typeof ee.token,44558,{tokenResult:ee}),this.qe=ee.token,new AppCheckToken(ee.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.xe&&this.appCheck.removeTokenListener(this.xe),this.xe=void 0}}class __PRIVATE_EmptyAppCheckTokenProvider{getToken(){return Promise.resolve(new AppCheckToken(""))}invalidateToken(){}start(ee,te){}shutdown(){}}function __PRIVATE_cloneLongPollingOptions(ee){const te={};return void 0!==ee.timeoutSeconds&&(te.timeoutSeconds=ee.timeoutSeconds),te}class __PRIVATE_NoopConnectivityMonitor{Ke(ee){}shutdown(){}}const nr="ConnectivityMonitor";class __PRIVATE_BrowserConnectivityMonitor{constructor(){this.We=()=>this.Qe(),this.Ge=()=>this.ze(),this.je=[],this.He()}Ke(ee){this.je.push(ee)}shutdown(){window.removeEventListener("online",this.We),window.removeEventListener("offline",this.Ge)}He(){window.addEventListener("online",this.We),window.addEventListener("offline",this.Ge)}Qe(){__PRIVATE_logDebug(nr,"Network connectivity changed: AVAILABLE");for(const ee of this.je)ee(0)}ze(){__PRIVATE_logDebug(nr,"Network connectivity changed: UNAVAILABLE");for(const ee of this.je)ee(1)}static Je(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let rr=null;function __PRIVATE_generateUniqueDebugId(){return null===rr?rr=function __PRIVATE_generateInitialUniqueDebugId(){return 268435456+Math.round(2147483648*Math.random())}():rr++,"0x"+rr.toString(16)}const sr="RestConnection",ir={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class __PRIVATE_RestConnection{get Ye(){return!1}constructor(ee){this.databaseInfo=ee,this.databaseId=ee.databaseId;const te=ee.ssl?"https":"http",ne=encodeURIComponent(this.databaseId.projectId),re=encodeURIComponent(this.databaseId.database);this.Ze=te+"://"+ee.host,this.Xe=`projects/${ne}/databases/${re}`,this.et=this.databaseId.database===Sn?`project_id=${ne}`:`project_id=${ne}&database_id=${re}`}tt(ee,te,ne,re,se){const ie=__PRIVATE_generateUniqueDebugId(),ae=this.nt(ee,te.toUriEncodedString());__PRIVATE_logDebug(sr,`Sending RPC '${ee}' ${ie}:`,ae,ne);const oe={"google-cloud-resource-prefix":this.Xe,"x-goog-request-params":this.et};this.rt(oe,re,se);const{host:ue}=new URL(ae),Be=isCloudWorkstation(ue);return this.it(ee,ae,oe,ne,Be).then((te=>(__PRIVATE_logDebug(sr,`Received RPC '${ee}' ${ie}: `,te),te)),(te=>{throw __PRIVATE_logWarn(sr,`RPC '${ee}' ${ie} failed with error: `,te,"url: ",ae,"request:",ne),te}))}st(ee,te,ne,re,se,ie){return this.tt(ee,te,ne,re,se)}rt(ee,te,ne){if(ee["X-Goog-Api-Client"]=function __PRIVATE_getGoogApiClientValue(){return"gl-js/ fire/"+Cn}(),ee["Content-Type"]="text/plain",this.databaseInfo.appId&&(ee["X-Firebase-GMPID"]=this.databaseInfo.appId),te&&te.headers.forEach(((te,ne)=>ee[ne]=te)),ne&&ne.headers.forEach(((te,ne)=>ee[ne]=te)),this.databaseInfo._customHeaders)for(const te of Object.keys(this.databaseInfo._customHeaders))ee[te]=this.databaseInfo._customHeaders[te]}nt(ee,te){const ne=ir[ee];let re=`${this.Ze}/v1/${te}:${ne}`;return this.databaseInfo.apiKey&&(re=`${re}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),re}terminate(){}}class __PRIVATE_StreamBridge{constructor(ee){this._t=ee._t,this.ot=ee.ot}ut(ee){this.ct=ee}lt(ee){this.Et=ee}ht(ee){this.Tt=ee}onMessage(ee){this.Pt=ee}close(){this.ot()}send(ee){this._t(ee)}Rt(){this.ct()}It(){this.Et()}At(ee){this.Tt(ee)}Vt(ee){this.Pt(ee)}}const ar="WebChannelConnection",__PRIVATE_unguardedEventListen=(ee,te,ne)=>{ee.listen(te,(ee=>{try{ne(ee)}catch(ee){setTimeout((()=>{throw ee}),0)}}))};class __PRIVATE_WebChannelConnection extends __PRIVATE_RestConnection{constructor(ee){super(ee),this.dt=[],this.forceLongPolling=ee.forceLongPolling,this.autoDetectLongPolling=ee.autoDetectLongPolling,this.useFetchStreams=ee.useFetchStreams,this.longPollingOptions=ee.longPollingOptions}static ft(){if(!__PRIVATE_WebChannelConnection.gt){const ee=ge();__PRIVATE_unguardedEventListen(ee,fe.STAT_EVENT,(ee=>{ee.stat===me.PROXY?__PRIVATE_logDebug(ar,"STAT_EVENT: detected buffering proxy"):ee.stat===me.NOPROXY&&__PRIVATE_logDebug(ar,"STAT_EVENT: detected no buffering proxy")})),__PRIVATE_WebChannelConnection.gt=!0}}it(ee,te,ne,re,se){const ie=__PRIVATE_generateUniqueDebugId();return new Promise(((se,ae)=>{const oe=new de;oe.setWithCredentials(!0),oe.listenOnce(Ce.COMPLETE,(()=>{try{switch(oe.getLastErrorCode()){case pe.NO_ERROR:const te=oe.getResponseJson();__PRIVATE_logDebug(ar,`XHR for RPC '${ee}' ${ie} received:`,JSON.stringify(te)),se(te);break;case pe.TIMEOUT:__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} timed out`),ae(new s(gn.DEADLINE_EXCEEDED,"Request time out"));break;case pe.HTTP_ERROR:const ne=oe.getStatus();if(__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} failed with status:`,ne,"response text:",oe.getResponseText()),ne>0){let ee=oe.getResponseJson();Array.isArray(ee)&&(ee=ee[0]);const te=ee?.error;if(te&&te.status&&te.message){const ee=function __PRIVATE_mapCodeFromHttpResponseErrorStatus(ee){const te=ee.toLowerCase().replace(/_/g,"-");return Object.values(gn).indexOf(te)>=0?te:gn.UNKNOWN}(te.status);ae(new s(ee,te.message))}else ae(new s(gn.UNKNOWN,"Server responded with status "+oe.getStatus()))}else ae(new s(gn.UNAVAILABLE,"Connection failed."));break;default:l(9055,{yt:ee,streamId:ie,wt:oe.getLastErrorCode(),bt:oe.getLastError()})}}finally{__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} completed.`)}}));const ue=JSON.stringify(re);__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} sending request:`,re),oe.send(te,"POST",ue,ne,15)}))}vt(ee,te,ne){const re=__PRIVATE_generateUniqueDebugId(),se=[this.Ze,"/","google.firestore.v1.Firestore","/",ee,"/channel"],ie=this.createWebChannelTransport(),ae={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},oe=this.longPollingOptions.timeoutSeconds;void 0!==oe&&(ae.longPollingTimeout=Math.round(1e3*oe)),this.useFetchStreams&&(ae.useFetchStreams=!0),this.rt(ae.initMessageHeaders,te,ne),ae.encodeInitMessageHeaders=!0;const ue=se.join("");__PRIVATE_logDebug(ar,`Creating RPC '${ee}' stream ${re}: ${ue}`,ae);const Be=ie.createWebChannel(ue,ae);this.St(Be);let le=!1,ce=!1;const _e=new __PRIVATE_StreamBridge({_t:te=>{ce?__PRIVATE_logDebug(ar,`Not sending because RPC '${ee}' stream ${re} is closed:`,te):(le||(__PRIVATE_logDebug(ar,`Opening RPC '${ee}' stream ${re} transport.`),Be.open(),le=!0),__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} sending:`,te),Be.send(te))},ot:()=>Be.close()});return __PRIVATE_unguardedEventListen(Be,Ee.EventType.OPEN,(()=>{ce||(__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} transport opened.`),_e.Rt())})),__PRIVATE_unguardedEventListen(Be,Ee.EventType.CLOSE,(()=>{ce||(ce=!0,__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} transport closed`),_e.At(),this.Dt(Be))})),__PRIVATE_unguardedEventListen(Be,Ee.EventType.ERROR,(te=>{ce||(ce=!0,__PRIVATE_logWarn(ar,`RPC '${ee}' stream ${re} transport errored. Name:`,te.name,"Message:",te.message),_e.At(new s(gn.UNAVAILABLE,"The operation could not be completed")))})),__PRIVATE_unguardedEventListen(Be,Ee.EventType.MESSAGE,(te=>{if(!ce){const ne=te.data[0];__PRIVATE_hardAssert(!!ne,16349);const se=ne,ie=se?.error||se[0]?.error;if(ie){__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} received error:`,ie);const te=ie.status;let ne=function __PRIVATE_mapCodeFromRpcStatus(ee){const te=qn[ee];if(void 0!==te)return __PRIVATE_mapCodeFromRpcCode(te)}(te),se=ie.message;"NOT_FOUND"===te&&se.includes("database")&&se.includes("does not exist")&&se.includes(this.databaseId.database)&&__PRIVATE_logWarn(`Database '${this.databaseId.database}' not found. Please check your project configuration.`),void 0===ne&&(ne=gn.INTERNAL,se="Unknown error status: "+te+" with message "+ie.message),ce=!0,_e.At(new s(ne,se)),Be.close()}else __PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} received:`,ne),_e.Vt(ne)}})),__PRIVATE_WebChannelConnection.ft(),setTimeout((()=>{_e.It()}),0),_e}terminate(){this.dt.forEach((ee=>ee.close())),this.dt=[]}St(ee){this.dt.push(ee)}Dt(ee){this.dt=this.dt.filter((te=>te===ee))}rt(ee,te,ne){super.rt(ee,te,ne),this.databaseInfo.apiKey&&(ee["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return Te()}}function __PRIVATE_newConnection(ee){return new __PRIVATE_WebChannelConnection(ee)}__PRIVATE_WebChannelConnection.gt=!1;class __PRIVATE_ExponentialBackoff{constructor(ee,te,ne=1e3,re=1.5,se=6e4){this.xt=ee,this.timerId=te,this.Ct=ne,this.Ft=re,this.Ot=se,this.Mt=0,this.Nt=null,this.Lt=Date.now(),this.reset()}reset(){this.Mt=0}Bt(){this.Mt=this.Ot}Ut(ee){this.cancel();const te=Math.floor(this.Mt+this.kt()),ne=Math.max(0,Date.now()-this.Lt),re=Math.max(0,te-ne);re>0&&__PRIVATE_logDebug("ExponentialBackoff",`Backing off for ${re} ms (base delay: ${this.Mt} ms, delay with jitter: ${te} ms, last attempt: ${ne} ms ago)`),this.Nt=this.xt.enqueueAfterDelay(this.timerId,re,(()=>(this.Lt=Date.now(),ee()))),this.Mt*=this.Ft,this.Mt<this.Ct&&(this.Mt=this.Ct),this.Mt>this.Ot&&(this.Mt=this.Ot)}qt(){null!==this.Nt&&(this.Nt.skipDelay(),this.Nt=null)}cancel(){null!==this.Nt&&(this.Nt.cancel(),this.Nt=null)}kt(){return(Math.random()-.5)*this.Mt}}const ur="PersistentStream";class __PRIVATE_PersistentStream{constructor(ee,te,ne,re,se,ie,ae,oe){this.xt=ee,this.$t=ne,this.Kt=re,this.connection=se,this.authCredentialsProvider=ie,this.appCheckCredentialsProvider=ae,this.listener=oe,this.state=0,this.Wt=0,this.Qt=null,this.Gt=null,this.stream=null,this.zt=0,this.jt=new __PRIVATE_ExponentialBackoff(ee,te)}Ht(){return 1===this.state||5===this.state||this.Jt()}Jt(){return 2===this.state||3===this.state}start(){this.zt=0,4!==this.state?this.auth():this.Yt()}async stop(){this.Ht()&&await this.close(0)}Zt(){this.state=0,this.jt.reset()}Xt(){this.Jt()&&null===this.Qt&&(this.Qt=this.xt.enqueueAfterDelay(this.$t,6e4,(()=>this.en())))}tn(ee){this.nn(),this.stream.send(ee)}async en(){if(this.Jt())return this.close(0)}nn(){this.Qt&&(this.Qt.cancel(),this.Qt=null)}rn(){this.Gt&&(this.Gt.cancel(),this.Gt=null)}async close(ee,te){this.nn(),this.rn(),this.jt.cancel(),this.Wt++,4!==ee?this.jt.reset():te&&te.code===gn.RESOURCE_EXHAUSTED?(__PRIVATE_logError(te.toString()),__PRIVATE_logError("Using maximum backoff delay to prevent overloading the backend."),this.jt.Bt()):te&&te.code===gn.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.sn(),this.stream.close(),this.stream=null),this.state=ee,await this.listener.ht(te)}sn(){}auth(){this.state=1;const ee=this._n(this.Wt),te=this.Wt;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([ee,ne])=>{this.Wt===te&&this.an(ee,ne)}),(te=>{ee((()=>{const ee=new s(gn.UNKNOWN,"Fetching auth token failed: "+te.message);return this.un(ee)}))}))}an(ee,te){const ne=this._n(this.Wt);this.stream=this.cn(ee,te),this.stream.ut((()=>{ne((()=>this.listener.ut()))})),this.stream.lt((()=>{ne((()=>(this.state=2,this.Gt=this.xt.enqueueAfterDelay(this.Kt,1e4,(()=>(this.Jt()&&(this.state=3),Promise.resolve()))),this.listener.lt())))})),this.stream.ht((ee=>{ne((()=>this.un(ee)))})),this.stream.onMessage((ee=>{ne((()=>1==++this.zt?this.En(ee):this.onNext(ee)))}))}Yt(){this.state=5,this.jt.Ut((async()=>{this.state=0,this.start()}))}un(ee){return __PRIVATE_logDebug(ur,`close with error: ${ee}`),this.stream=null,this.close(4,ee)}_n(ee){return te=>{this.xt.enqueueAndForget((()=>this.Wt===ee?te():(__PRIVATE_logDebug(ur,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class __PRIVATE_PersistentListenStream extends __PRIVATE_PersistentStream{constructor(ee,te,ne,re,se,ie){super(ee,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",te,ne,re,ie),this.serializer=se}cn(ee,te){return this.connection.vt("Listen",ee,te)}En(ee){return this.onNext(ee)}onNext(ee){this.jt.reset();const te=function __PRIVATE_fromWatchChange(ee,te){let ne;if("targetChange"in te){te.targetChange;const re=function __PRIVATE_fromWatchTargetChangeState(ee){return"NO_CHANGE"===ee?0:"ADD"===ee?1:"REMOVE"===ee?2:"CURRENT"===ee?3:"RESET"===ee?4:l(39313,{state:ee})}(te.targetChange.targetChangeType||"NO_CHANGE"),se=te.targetChange.targetIds||[],ie=function __PRIVATE_fromBytes(ee,te){return ee.useProto3Json?(__PRIVATE_hardAssert(void 0===te||"string"==typeof te,58123),ByteString.fromBase64String(te||"")):(__PRIVATE_hardAssert(void 0===te||te instanceof Buffer||te instanceof Uint8Array,16193),ByteString.fromUint8Array(te||new Uint8Array))}(ee,te.targetChange.resumeToken),ae=te.targetChange.cause,oe=ae&&function __PRIVATE_fromRpcStatus(ee){const te=void 0===ee.code?gn.UNKNOWN:__PRIVATE_mapCodeFromRpcCode(ee.code);return new s(te,ee.message||"")}(ae);ne=new __PRIVATE_WatchTargetChange(re,se,ie,oe||null)}else if("documentChange"in te){te.documentChange;const re=te.documentChange;re.document,re.document.name,re.document.updateTime;const se=fromName(ee,re.document.name),ie=__PRIVATE_fromVersion(re.document.updateTime),ae=re.document.createTime?__PRIVATE_fromVersion(re.document.createTime):SnapshotVersion.min(),oe=new ObjectValue({mapValue:{fields:re.document.fields}}),ue=MutableDocument.newFoundDocument(se,ie,ae,oe),Be=re.targetIds||[],le=re.removedTargetIds||[];ne=new __PRIVATE_DocumentWatchChange(Be,le,ue.key,ue)}else if("documentDelete"in te){te.documentDelete;const re=te.documentDelete;re.document;const se=fromName(ee,re.document),ie=re.readTime?__PRIVATE_fromVersion(re.readTime):SnapshotVersion.min(),ae=MutableDocument.newNoDocument(se,ie),oe=re.removedTargetIds||[];ne=new __PRIVATE_DocumentWatchChange([],oe,ae.key,ae)}else if("documentRemove"in te){te.documentRemove;const re=te.documentRemove;re.document;const se=fromName(ee,re.document),ie=re.removedTargetIds||[];ne=new __PRIVATE_DocumentWatchChange([],ie,se,null)}else{if(!("filter"in te))return l(11601,{ye:te});{te.filter;const ee=te.filter;ee.targetId;const{count:re=0,unchangedNames:se}=ee,ie=new ExistenceFilter(re,se),ae=ee.targetId;ne=new __PRIVATE_ExistenceFilterChange(ae,ie)}}return ne}(this.serializer,ee),ne=function __PRIVATE_versionFromListenResponse(ee){if(!("targetChange"in ee))return SnapshotVersion.min();const te=ee.targetChange;return te.targetIds&&te.targetIds.length?SnapshotVersion.min():te.readTime?__PRIVATE_fromVersion(te.readTime):SnapshotVersion.min()}(ee);return this.listener.hn(te,ne)}Tn(ee){const te={};te.database=__PRIVATE_getEncodedDatabaseId(this.serializer),te.addTarget=function __PRIVATE_toTarget(ee,te){let ne;const re=te.target;if(ne=__PRIVATE_targetIsPipelineTarget(re)?{pipelineQuery:__PRIVATE_toPipelineTarget(ee,re)}:__PRIVATE_targetIsDocumentTarget(re)?{documents:__PRIVATE_toDocumentsTarget(ee,re)}:{query:__PRIVATE_toQueryTarget(ee,re).be},ne.targetId=te.targetId,te.resumeToken.approximateByteSize()>0){ne.resumeToken=__PRIVATE_toBytes(ee,te.resumeToken);const re=__PRIVATE_toInt32Proto(ee,te.expectedCount);null!==re&&(ne.expectedCount=re)}else if(te.snapshotVersion.compareTo(SnapshotVersion.min())>0){ne.readTime=toTimestamp(ee,te.snapshotVersion.toTimestamp());const re=__PRIVATE_toInt32Proto(ee,te.expectedCount);null!==re&&(ne.expectedCount=re)}return ne}(this.serializer,ee);const ne=function __PRIVATE_toListenRequestLabels(ee,te){const ne=function __PRIVATE_toLabel(ee){switch(ee){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return l(28987,{purpose:ee})}}(te.purpose);return null==ne?null:{"goog-listen-tags":ne}}(this.serializer,ee);ne&&(te.labels=ne),this.tn(te)}Pn(ee){const te={};te.database=__PRIVATE_getEncodedDatabaseId(this.serializer),te.removeTarget=ee,this.tn(te)}}class __PRIVATE_PersistentWriteStream extends __PRIVATE_PersistentStream{constructor(ee,te,ne,re,se,ie){super(ee,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",te,ne,re,ie),this.serializer=se}get Rn(){return this.zt>0}start(){this.lastStreamToken=void 0,super.start()}sn(){this.Rn&&this.In([])}cn(ee,te){return this.connection.vt("Write",ee,te)}En(ee){return __PRIVATE_hardAssert(!!ee.streamToken,31322),this.lastStreamToken=ee.streamToken,__PRIVATE_hardAssert(!ee.writeResults||0===ee.writeResults.length,55816),this.listener.An()}onNext(ee){__PRIVATE_hardAssert(!!ee.streamToken,12678),this.lastStreamToken=ee.streamToken,this.jt.reset();const te=function __PRIVATE_fromWriteResults(ee,te){return ee&&ee.length>0?(__PRIVATE_hardAssert(void 0!==te,14353),ee.map((ee=>function __PRIVATE_fromWriteResult(ee,te){let ne=ee.updateTime?__PRIVATE_fromVersion(ee.updateTime):__PRIVATE_fromVersion(te);return ne.isEqual(SnapshotVersion.min())&&(ne=__PRIVATE_fromVersion(te)),new MutationResult(ne,ee.transformResults||[])}(ee,te)))):[]}(ee.writeResults,ee.commitTime),ne=__PRIVATE_fromVersion(ee.commitTime);return this.listener.Vn(ne,te)}dn(){const ee={};ee.database=__PRIVATE_getEncodedDatabaseId(this.serializer),this.tn(ee)}In(ee){const te={streamToken:this.lastStreamToken,writes:ee.map((ee=>toMutation(this.serializer,ee)))};this.tn(te)}}class Datastore{}class __PRIVATE_DatastoreImpl extends Datastore{constructor(ee,te,ne,re){super(),this.authCredentials=ee,this.appCheckCredentials=te,this.connection=ne,this.serializer=re,this.fn=!1}mn(){if(this.fn)throw new s(gn.FAILED_PRECONDITION,"The client has already been terminated.")}tt(ee,te,ne,re){return this.mn(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([se,ie])=>this.connection.tt(ee,__PRIVATE_toResourcePath(te,ne),re,se,ie))).catch((ee=>{throw"FirebaseError"===ee.name?(ee.code===gn.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),ee):new s(gn.UNKNOWN,ee.toString())}))}st(ee,te,ne,re,se){return this.mn(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([ie,ae])=>this.connection.st(ee,__PRIVATE_toResourcePath(te,ne),re,ie,ae,se))).catch((ee=>{throw"FirebaseError"===ee.name?(ee.code===gn.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),ee):new s(gn.UNKNOWN,ee.toString())}))}terminate(){this.fn=!0,this.connection.terminate()}}function __PRIVATE_newDatastore(ee,te,ne,re){return new __PRIVATE_DatastoreImpl(ee,te,ne,re)}const Br="ComponentProvider",lr=new Map;function __PRIVATE_makeDatabaseInfo(ee,te,ne,re,se){return new DatabaseInfo(ee,te,ne,se.host,se.ssl,se.experimentalForceLongPolling,se.experimentalAutoDetectLongPolling,__PRIVATE_cloneLongPollingOptions(se.experimentalLongPollingOptions),se.useFetchStreams,se.isUsingEmulator,re,se._customHeaders,se.grpcFlowControlWindow)}const cr={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0},_r=41943040;class LruParams{static withCacheSize(ee){return new LruParams(ee,LruParams.DEFAULT_COLLECTION_PERCENTILE,LruParams.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(ee,te,ne){this.cacheSizeCollectionThreshold=ee,this.percentileToCollect=te,this.maximumSequenceNumbersToCollect=ne}}LruParams.DEFAULT_COLLECTION_PERCENTILE=10,LruParams.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,LruParams.DEFAULT=new LruParams(_r,LruParams.DEFAULT_COLLECTION_PERCENTILE,LruParams.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),LruParams.DISABLED=new LruParams(-1,0,0);class __PRIVATE_ListenSequence{constructor(ee,te){this.previousValue=ee,te&&(te.sequenceNumberHandler=ee=>this.pn(ee),this.gn=ee=>te.writeSequenceNumber(ee))}pn(ee){return this.previousValue=Math.max(ee,this.previousValue),this.previousValue}next(){const ee=++this.previousValue;return this.gn&&this.gn(ee),ee}}__PRIVATE_ListenSequence.yn=-1;const hr="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class PersistenceTransaction{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(ee){this.onCommittedListeners.push(ee)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((ee=>ee()))}}async function __PRIVATE_ignoreIfPrimaryLeaseLoss(ee){if(ee.code!==gn.FAILED_PRECONDITION||ee.message!==hr)throw ee;__PRIVATE_logDebug("LocalStore","Unexpectedly lost primary lease")}class PersistencePromise{constructor(ee){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,ee((ee=>{this.isDone=!0,this.result=ee,this.nextCallback&&this.nextCallback(ee)}),(ee=>{this.isDone=!0,this.error=ee,this.catchCallback&&this.catchCallback(ee)}))}catch(ee){return this.next(void 0,ee)}next(ee,te){return this.callbackAttached&&l(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(te,this.error):this.wrapSuccess(ee,this.result):new PersistencePromise(((ne,re)=>{this.nextCallback=te=>{this.wrapSuccess(ee,te).next(ne,re)},this.catchCallback=ee=>{this.wrapFailure(te,ee).next(ne,re)}}))}toPromise(){return new Promise(((ee,te)=>{this.next(ee,te)}))}wrapUserFunction(ee){try{const te=ee();return te instanceof PersistencePromise?te:PersistencePromise.resolve(te)}catch(ee){return PersistencePromise.reject(ee)}}wrapSuccess(ee,te){return ee?this.wrapUserFunction((()=>ee(te))):PersistencePromise.resolve(te)}wrapFailure(ee,te){return ee?this.wrapUserFunction((()=>ee(te))):PersistencePromise.reject(te)}static resolve(ee){return new PersistencePromise(((te,ne)=>{te(ee)}))}static reject(ee){return new PersistencePromise(((te,ne)=>{ne(ee)}))}static waitFor(ee){return new PersistencePromise(((te,ne)=>{let re=0,se=0,ie=!1;ee.forEach((ee=>{++re,ee.next((()=>{++se,ie&&se===re&&te()}),(ee=>ne(ee)))})),ie=!0,se===re&&te()}))}static or(ee){let te=PersistencePromise.resolve(!1);for(const ne of ee)te=te.next((ee=>ee?PersistencePromise.resolve(ee):ne()));return te}static forEach(ee,te){const ne=[];return ee.forEach(((ee,re)=>{ne.push(te.call(this,ee,re))})),this.waitFor(ne)}static mapArray(ee,te){return new PersistencePromise(((ne,re)=>{const se=ee.length,ie=new Array(se);let ae=0;for(let oe=0;oe<se;oe++){const ue=oe;te(ee[ue]).next((ee=>{ie[ue]=ee,++ae,ae===se&&ne(ie)}),(ee=>re(ee)))}}))}static doWhile(ee,te){return new PersistencePromise(((ne,re)=>{const process=()=>{!0===ee()?te().next((()=>{process()}),re):ne()};process()}))}}const dr="SimpleDb";class __PRIVATE_SimpleDbTransaction{static open(ee,te,ne,re){try{return new __PRIVATE_SimpleDbTransaction(te,ee.transaction(re,ne))}catch(ee){throw new __PRIVATE_IndexedDbTransactionError(te,ee)}}constructor(ee,te){this.action=ee,this.transaction=te,this.aborted=!1,this.wn=new __PRIVATE_Deferred,this.transaction.oncomplete=()=>{this.wn.resolve()},this.transaction.onabort=()=>{te.error?this.wn.reject(new __PRIVATE_IndexedDbTransactionError(ee,te.error)):this.wn.resolve()},this.transaction.onerror=te=>{const ne=__PRIVATE_checkForAndReportiOSError(te.target.error);this.wn.reject(new __PRIVATE_IndexedDbTransactionError(ee,ne))}}get bn(){return this.wn.promise}abort(ee){ee&&this.wn.reject(ee),this.aborted||(__PRIVATE_logDebug(dr,"Aborting transaction:",ee?ee.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}vn(){const ee=this.transaction;this.aborted||"function"!=typeof ee.commit||ee.commit()}store(ee){const te=this.transaction.objectStore(ee);return new __PRIVATE_SimpleDbStore(te)}}class __PRIVATE_SimpleDb{static delete(ee){return __PRIVATE_logDebug(dr,"Removing database:",ee),__PRIVATE_wrapRequest(getGlobal().indexedDB.deleteDatabase(ee)).toPromise()}static Je(){if(!function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(ee){return!1}}())return!1;if(__PRIVATE_SimpleDb.Sn())return!0;const ee=getUA(),te=__PRIVATE_SimpleDb.Dn(ee),ne=0<te&&te<10,re=__PRIVATE_getAndroidVersion(ee),se=0<re&&re<4.5;return!(ee.indexOf("MSIE ")>0||ee.indexOf("Trident/")>0||ee.indexOf("Edge/")>0||ne||se)}static Sn(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static xn(ee,te){return ee.store(te)}static Dn(ee){const te=ee.match(/i(?:phone|pad|pod) os ([\d_]+)/i),ne=te?te[1].split("_").slice(0,2).join("."):"-1";return Number(ne)}constructor(ee,te,ne){this.name=ee,this.version=te,this.Cn=ne,this.Fn=null,12.2===__PRIVATE_SimpleDb.Dn(getUA())&&__PRIVATE_logError("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async On(ee){return this.db||(__PRIVATE_logDebug(dr,"Opening database:",this.name),this.db=await new Promise(((te,ne)=>{const re=indexedDB.open(this.name,this.version);re.onsuccess=ee=>{const ne=ee.target.result;te(ne)},re.onblocked=()=>{ne(new __PRIVATE_IndexedDbTransactionError(ee,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},re.onerror=te=>{const re=te.target.error;"VersionError"===re.name?ne(new s(gn.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"===re.name?ne(new s(gn.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: "+re)):ne(new __PRIVATE_IndexedDbTransactionError(ee,re))},re.onupgradeneeded=ee=>{__PRIVATE_logDebug(dr,'Database "'+this.name+'" requires upgrade from version:',ee.oldVersion);const te=ee.target.result;this.Cn.Mn(te,re.transaction,ee.oldVersion,this.version).next((()=>{__PRIVATE_logDebug(dr,"Database upgrade to version "+this.version+" complete")}))}}))),this.Nn&&(this.db.onversionchange=ee=>this.Nn(ee)),this.db}Ln(ee){this.Nn=ee,this.db&&(this.db.onversionchange=te=>ee(te))}async runTransaction(ee,te,ne,re){const se="readonly"===te;let ie=0;for(;;){++ie;try{this.db=await this.On(ee);const te=__PRIVATE_SimpleDbTransaction.open(this.db,ee,se?"readonly":"readwrite",ne),ie=re(te).next((ee=>(te.vn(),ee))).catch((ee=>(te.abort(ee),PersistencePromise.reject(ee)))).toPromise();return ie.catch((()=>{})),await te.bn,ie}catch(ee){const te=ee,ne="FirebaseError"!==te.name&&ie<3;if(__PRIVATE_logDebug(dr,"Transaction failed with error:",te.message,"Retrying:",ne),this.close(),!ne)return Promise.reject(te)}}}close(){this.db&&this.db.close(),this.db=void 0}}function __PRIVATE_getAndroidVersion(ee){const te=ee.match(/Android ([\d.]+)/i),ne=te?te[1].split(".").slice(0,2).join("."):"-1";return Number(ne)}class __PRIVATE_IterationController{constructor(ee){this.Bn=ee,this.Un=!1,this.kn=null}get isDone(){return this.Un}get qn(){return this.kn}set cursor(ee){this.Bn=ee}done(){this.Un=!0}$n(ee){this.kn=ee}delete(){return __PRIVATE_wrapRequest(this.Bn.delete())}}class __PRIVATE_IndexedDbTransactionError extends s{constructor(ee,te){super(gn.UNAVAILABLE,`IndexedDB transaction '${ee}' failed: ${te}`),this.name="IndexedDbTransactionError"}}function __PRIVATE_isIndexedDbTransactionError(ee){return"IndexedDbTransactionError"===ee.name}class __PRIVATE_SimpleDbStore{constructor(ee){this.store=ee}put(ee,te){let ne;return void 0!==te?(__PRIVATE_logDebug(dr,"PUT",this.store.name,ee,te),ne=this.store.put(te,ee)):(__PRIVATE_logDebug(dr,"PUT",this.store.name,"<auto-key>",ee),ne=this.store.put(ee)),__PRIVATE_wrapRequest(ne)}add(ee){return __PRIVATE_logDebug(dr,"ADD",this.store.name,ee,ee),__PRIVATE_wrapRequest(this.store.add(ee))}get(ee){return __PRIVATE_wrapRequest(this.store.get(ee)).next((te=>(void 0===te&&(te=null),__PRIVATE_logDebug(dr,"GET",this.store.name,ee,te),te)))}delete(ee){return __PRIVATE_logDebug(dr,"DELETE",this.store.name,ee),__PRIVATE_wrapRequest(this.store.delete(ee))}count(){return __PRIVATE_logDebug(dr,"COUNT",this.store.name),__PRIVATE_wrapRequest(this.store.count())}Kn(ee,te){const ne=this.options(ee,te),re=ne.index?this.store.index(ne.index):this.store;if("function"==typeof re.getAll){const ee=re.getAll(ne.range);return new PersistencePromise(((te,ne)=>{ee.onerror=ee=>{ne(ee.target.error)},ee.onsuccess=ee=>{te(ee.target.result)}}))}{const ee=this.cursor(ne),te=[];return this.Wn(ee,((ee,ne)=>{te.push(ne)})).next((()=>te))}}Qn(ee,te){const ne=this.store.getAll(ee,null===te?void 0:te);return new PersistencePromise(((ee,te)=>{ne.onerror=ee=>{te(ee.target.error)},ne.onsuccess=te=>{ee(te.target.result)}}))}Gn(ee,te){__PRIVATE_logDebug(dr,"DELETE ALL",this.store.name);const ne=this.options(ee,te);ne.zn=!1;const re=this.cursor(ne);return this.Wn(re,((ee,te,ne)=>ne.delete()))}jn(ee,te){let ne;te?ne=ee:(ne={},te=ee);const re=this.cursor(ne);return this.Wn(re,te)}Hn(ee){const te=this.cursor({});return new PersistencePromise(((ne,re)=>{te.onerror=ee=>{const te=__PRIVATE_checkForAndReportiOSError(ee.target.error);re(te)},te.onsuccess=te=>{const re=te.target.result;re?ee(re.primaryKey,re.value).next((ee=>{ee?re.continue():ne()})):ne()}}))}Wn(ee,te){const ne=[];return new PersistencePromise(((re,se)=>{ee.onerror=ee=>{se(ee.target.error)},ee.onsuccess=ee=>{const se=ee.target.result;if(!se)return void re();const ie=new __PRIVATE_IterationController(se),ae=te(se.primaryKey,se.value,ie);if(ae instanceof PersistencePromise){const ee=ae.catch((ee=>(ie.done(),PersistencePromise.reject(ee))));ne.push(ee)}ie.isDone?re():null===ie.qn?se.continue():se.continue(ie.qn)}})).next((()=>PersistencePromise.waitFor(ne)))}options(ee,te){let ne;return void 0!==ee&&("string"==typeof ee?ne=ee:te=ee),{index:ne,range:te}}cursor(ee){let te="next";if(ee.reverse&&(te="prev"),ee.index){const ne=this.store.index(ee.index);return ee.zn?ne.openKeyCursor(ee.range,te):ne.openCursor(ee.range,te)}return this.store.openCursor(ee.range,te)}}function __PRIVATE_wrapRequest(ee){return new PersistencePromise(((te,ne)=>{ee.onsuccess=ee=>{const ne=ee.target.result;te(ne)},ee.onerror=ee=>{const te=__PRIVATE_checkForAndReportiOSError(ee.target.error);ne(te)}}))}let Er=!1;function __PRIVATE_checkForAndReportiOSError(ee){const te=__PRIVATE_SimpleDb.Dn(getUA());if(te>=12.2&&te<13){const te="An internal error was encountered in the Indexed Database server";if(ee.message.indexOf(te)>=0){const ee=new s("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${te}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Er||(Er=!0,setTimeout((()=>{throw ee}),0)),ee}}return ee}const Cr="LruGarbageCollector",pr=1048576;function __PRIVATE_bufferEntryComparator([ee,te],[ne,re]){const se=__PRIVATE_primitiveComparator(ee,ne);return 0===se?__PRIVATE_primitiveComparator(te,re):se}class __PRIVATE_RollingSequenceNumberBuffer{constructor(ee){this.Jn=ee,this.buffer=new SortedSet(__PRIVATE_bufferEntryComparator),this.Yn=0}Zn(){return++this.Yn}Xn(ee){const te=[ee,this.Zn()];if(this.buffer.size<this.Jn)this.buffer=this.buffer.add(te);else{const ee=this.buffer.last();__PRIVATE_bufferEntryComparator(te,ee)<0&&(this.buffer=this.buffer.delete(ee).add(te))}}get maxValue(){return this.buffer.last()[0]}}class __PRIVATE_LruScheduler{constructor(ee,te,ne){this.garbageCollector=ee,this.asyncQueue=te,this.localStore=ne,this.er=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.tr(6e4)}stop(){this.er&&(this.er.cancel(),this.er=null)}get started(){return null!==this.er}tr(ee){__PRIVATE_logDebug(Cr,`Garbage collection scheduled in ${ee}ms`),this.er=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",ee,(async()=>{this.er=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(ee){__PRIVATE_isIndexedDbTransactionError(ee)?__PRIVATE_logDebug(Cr,"Ignoring IndexedDB error during garbage collection: ",ee):await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}await this.tr(3e5)}))}}class __PRIVATE_LruGarbageCollectorImpl{constructor(ee,te){this.nr=ee,this.params=te}calculateTargetCount(ee,te){return this.nr.rr(ee).next((ee=>Math.floor(te/100*ee)))}nthSequenceNumber(ee,te){if(0===te)return PersistencePromise.resolve(__PRIVATE_ListenSequence.yn);const ne=new __PRIVATE_RollingSequenceNumberBuffer(te);return this.nr.forEachTarget(ee,(ee=>ne.Xn(ee.sequenceNumber))).next((()=>this.nr.ir(ee,(ee=>ne.Xn(ee))))).next((()=>ne.maxValue))}removeTargets(ee,te,ne){return this.nr.removeTargets(ee,te,ne)}removeOrphanedDocuments(ee,te){return this.nr.removeOrphanedDocuments(ee,te)}collect(ee,te){return-1===this.params.cacheSizeCollectionThreshold?(__PRIVATE_logDebug("LruGarbageCollector","Garbage collection skipped; disabled"),PersistencePromise.resolve(cr)):this.getCacheSize(ee).next((ne=>ne<this.params.cacheSizeCollectionThreshold?(__PRIVATE_logDebug("LruGarbageCollector",`Garbage collection skipped; Cache size ${ne} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),cr):this.sr(ee,te)))}getCacheSize(ee){return this.nr.getCacheSize(ee)}sr(ee,te){let ne,re,se,ie,ae,oe,ue;const le=Date.now();return this.calculateTargetCount(ee,this.params.percentileToCollect).next((te=>(te>this.params.maximumSequenceNumbersToCollect?(__PRIVATE_logDebug("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${te}`),re=this.params.maximumSequenceNumbersToCollect):re=te,ie=Date.now(),this.nthSequenceNumber(ee,re)))).next((re=>(ne=re,ae=Date.now(),this.removeTargets(ee,ne,te)))).next((te=>(se=te,oe=Date.now(),this.removeOrphanedDocuments(ee,ne)))).next((ee=>(ue=Date.now(),__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${ie-le}ms\n\tDetermined least recently used ${re} in `+(ae-ie)+"ms\n"+`\tRemoved ${se} targets in `+(oe-ae)+"ms\n"+`\tRemoved ${ee} documents in `+(ue-oe)+"ms\n"+`Total Duration: ${ue-le}ms`),PersistencePromise.resolve({didRun:!0,sequenceNumbersCollected:re,targetsRemoved:se,documentsRemoved:ee}))))}}function __PRIVATE_newLruGarbageCollector(ee,te){return new __PRIVATE_LruGarbageCollectorImpl(ee,te)}const mr="firestore.googleapis.com",fr=!0;class FirestoreSettingsImpl{constructor(ee){if(void 0===ee.host){if(void 0!==ee.ssl)throw new s(gn.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=mr,this.ssl=fr}else this.host=ee.host,this.ssl=ee.ssl??fr;if(this.isUsingEmulator=void 0!==ee.emulatorOptions,this.credentials=ee.credentials,this.ignoreUndefinedProperties=!!ee.ignoreUndefinedProperties,this.localCache=ee.localCache,ee._customHeaders&&(this._customHeaders={...ee._customHeaders}),void 0===ee.cacheSizeBytes)this.cacheSizeBytes=_r;else{if(-1!==ee.cacheSizeBytes&&ee.cacheSizeBytes<pr)throw new s(gn.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=ee.cacheSizeBytes}if(__PRIVATE_validateIsNotUsedTogether("experimentalForceLongPolling",ee.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",ee.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!ee.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===ee.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!ee.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=__PRIVATE_cloneLongPollingOptions(ee.experimentalLongPollingOptions??{}),function __PRIVATE_validateLongPollingOptions(ee){if(void 0!==ee.timeoutSeconds){if(isNaN(ee.timeoutSeconds))throw new s(gn.INVALID_ARGUMENT,`invalid long polling timeout: ${ee.timeoutSeconds} (must not be NaN)`);if(ee.timeoutSeconds<5)throw new s(gn.INVALID_ARGUMENT,`invalid long polling timeout: ${ee.timeoutSeconds} (minimum allowed value is 5)`);if(ee.timeoutSeconds>30)throw new s(gn.INVALID_ARGUMENT,`invalid long polling timeout: ${ee.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!ee.useFetchStreams,void 0!==ee.grpcFlowControlWindow){if("number"!=typeof ee.grpcFlowControlWindow||ee.grpcFlowControlWindow<=0||ee.grpcFlowControlWindow>2147483647||!Number.isInteger(ee.grpcFlowControlWindow))throw new s(gn.INVALID_ARGUMENT,"grpcFlowControlWindow must be a positive integer and cannot exceed 2147483647");this.grpcFlowControlWindow=ee.grpcFlowControlWindow}}isEqual(ee){return this.host===ee.host&&this.ssl===ee.ssl&&this.credentials===ee.credentials&&this.cacheSizeBytes===ee.cacheSizeBytes&&this.experimentalForceLongPolling===ee.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===ee.experimentalAutoDetectLongPolling&&function __PRIVATE_longPollingOptionsEqual(ee,te){return ee.timeoutSeconds===te.timeoutSeconds}(this.experimentalLongPollingOptions,ee.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===ee.ignoreUndefinedProperties&&this.useFetchStreams===ee.useFetchStreams&&this.grpcFlowControlWindow===ee.grpcFlowControlWindow&&function __PRIVATE_customHeadersEqual(ee,te){if(ee===te)return!0;if(!ee||!te)return!1;const ne=Object.keys(ee),re=Object.keys(te);if(ne.length!==re.length)return!1;for(const re of ne)if(ee[re]!==te[re])return!1;return!0}(this._customHeaders,ee._customHeaders)}}let gr=class Firestore{constructor(ee,te,ne,re){this._authCredentials=ee,this._appCheckCredentials=te,this._databaseId=ne,this._app=re,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new FirestoreSettingsImpl({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new s(gn.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(ee){if(this._settingsFrozen)throw new s(gn.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new FirestoreSettingsImpl(ee),this._emulatorOptions=ee.emulatorOptions||{},void 0!==ee.credentials&&(this._authCredentials=function __PRIVATE_makeAuthCredentialsProvider(ee){if(!ee)return new __PRIVATE_EmptyAuthCredentialsProvider;switch(ee.type){case"firstParty":return new __PRIVATE_FirstPartyAuthCredentialsProvider(ee.sessionIndex||"0",ee.iamToken||null,ee.authTokenFactory||null);case"provider":return ee.client;default:throw new s(gn.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(ee.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 function __PRIVATE_removeComponents(ee){const te=lr.get(ee);te&&(__PRIVATE_logDebug(Br,"Removing Datastore"),lr.delete(ee),te.terminate())}(this),Promise.resolve()}};function connectFirestoreEmulator(ee,te,ne,re={}){ee=ra(ee,gr);const se=isCloudWorkstation(te),ie=ee._getSettings(),ae={...ie,emulatorOptions:ee._getEmulatorOptions()},oe=`${te}:${ne}`;se&&pingServer(`https://${oe}`),ie.host!==mr&&ie.host!==oe&&__PRIVATE_logWarn("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");const ue={...ie,host:oe,ssl:se,emulatorOptions:re};if(!deepEqual(ue,ae)&&(ee._setSettings(ue),re.mockUserToken)){let te,ne;if("string"==typeof re.mockUserToken)te=re.mockUserToken,ne=User.MOCK_USER;else{te=function createMockUserToken(ee,te){if(ee.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const ne=te||"demo-project",re=ee.iat||0,se=ee.sub||ee.user_id;if(!se)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const ie={iss:`https://securetoken.google.com/${ne}`,aud:ne,iat:re,exp:re+3600,auth_time:re,sub:se,user_id:se,firebase:{sign_in_provider:"custom",identities:{}},...ee};return[base64urlEncodeWithoutPadding(JSON.stringify({alg:"none",type:"JWT"})),base64urlEncodeWithoutPadding(JSON.stringify(ie)),""].join(".")}(re.mockUserToken,ee._app?.options.projectId);const se=re.mockUserToken.sub||re.mockUserToken.user_id;if(!se)throw new s(gn.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");ne=new User(se)}ee._authCredentials=new __PRIVATE_EmulatorAuthCredentialsProvider(new __PRIVATE_OAuthToken(te,ne))}}class Query{constructor(ee,te,ne){this.converter=te,this._query=ne,this.type="query",this.firestore=ee}withConverter(ee){return new Query(this.firestore,ee,this._query)}}class X{constructor(ee,te,ne){this.converter=te,this._key=ne,this.type="document",this.firestore=ee}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new ea(this.firestore,this.converter,this._key.path.popLast())}withConverter(ee){return new X(this.firestore,ee,this._key)}toJSON(){return{type:X._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(ee,te,ne){if(__PRIVATE_validateJSON(te,X._jsonSchema))return new X(ee,ne||null,new DocumentKey(ResourcePath.fromString(te.referencePath)))}}X._jsonSchemaVersion="firestore/documentReference/1.0",X._jsonSchema={type:property("string",X._jsonSchemaVersion),referencePath:property("string")};class ea extends Query{constructor(ee,te,ne){super(ee,te,__PRIVATE_newQueryForPath(ne)),this._path=ne,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const ee=this._path.popLast();return ee.isEmpty()?null:new X(this.firestore,null,new DocumentKey(ee))}withConverter(ee){return new ea(this.firestore,ee,this._path)}}function z(ee){return ee instanceof ea}function collection(ee,te,...ne){if(ee=getModularInstance(ee),__PRIVATE_validateNonEmptyArgument("collection","path",te),ee instanceof gr){const re=ResourcePath.fromString(te,...ne);return __PRIVATE_validateCollectionPath(re),new ea(ee,null,re)}{if(!(ee instanceof X||ee instanceof ea))throw new s(gn.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const re=ee._path.child(ResourcePath.fromString(te,...ne));return __PRIVATE_validateCollectionPath(re),new ea(ee.firestore,null,re)}}function collectionGroup(ee,te){if(ee=ra(ee,gr),__PRIVATE_validateNonEmptyArgument("collectionGroup","collection id",te),te.indexOf("/")>=0)throw new s(gn.INVALID_ARGUMENT,`Invalid collection ID '${te}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Query(ee,null,function __PRIVATE_newQueryForCollectionGroup(ee){return new __PRIVATE_QueryImpl(ResourcePath.emptyPath(),ee)}(te))}function doc(ee,te,...ne){if(ee=getModularInstance(ee),1===arguments.length&&(te=__PRIVATE_AutoId.newId()),__PRIVATE_validateNonEmptyArgument("doc","path",te),ee instanceof gr){const re=ResourcePath.fromString(te,...ne);return __PRIVATE_validateDocumentPath(re),new X(ee,null,new DocumentKey(re))}{if(!(ee instanceof X||ee instanceof ea))throw new s(gn.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const re=ee._path.child(ResourcePath.fromString(te,...ne));return __PRIVATE_validateDocumentPath(re),new X(ee.firestore,ee instanceof ea?ee.converter:null,new DocumentKey(re))}}function ia(ee,te){return ee=getModularInstance(ee),te=getModularInstance(te),(ee instanceof X||ee instanceof ea)&&(te instanceof X||te instanceof ea)&&ee.firestore===te.firestore&&ee.path===te.path&&ee.converter===te.converter}function queryEqual(ee,te){return ee=getModularInstance(ee),te=getModularInstance(te),ee instanceof Query&&te instanceof Query&&ee.firestore===te.firestore&&__PRIVATE_queryEquals(ee._query,te._query)&&ee.converter===te.converter}class n{constructor(ee){this._values=(ee||[]).map((ee=>ee))}toArray(){return this._values.map((ee=>ee))}isEqual(ee){return function __PRIVATE_isPrimitiveArrayEqual(ee,te){if(ee.length!==te.length)return!1;for(let ne=0;ne<ee.length;++ne)if(ee[ne]!==te[ne])return!1;return!0}(this._values,ee._values)}toJSON(){return{type:n._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,n._jsonSchema)){if(Array.isArray(ee.vectorValues)&&ee.vectorValues.every((ee=>"number"==typeof ee)))return new n(ee.vectorValues);throw new s(gn.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}n._jsonSchemaVersion="firestore/vectorValue/1.0",n._jsonSchema={type:property("string",n._jsonSchemaVersion),vectorValues:property("object")};const Tr=/^__.*__$/;class ParsedSetData{constructor(ee,te,ne){this.data=ee,this.fieldMask=te,this.fieldTransforms=ne}toMutation(ee,te){return null!==this.fieldMask?new __PRIVATE_PatchMutation(ee,this.data,this.fieldMask,te,this.fieldTransforms):new __PRIVATE_SetMutation(ee,this.data,te,this.fieldTransforms)}}class ParsedUpdateData{constructor(ee,te,ne){this.data=ee,this.fieldMask=te,this.fieldTransforms=ne}toMutation(ee,te){return new __PRIVATE_PatchMutation(ee,this.data,this.fieldMask,te,this.fieldTransforms)}}function __PRIVATE_isWrite(ee){switch(ee){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw l(40011,{dataSource:ee})}}class ParseContextImpl{constructor(ee,te,ne,re,se,ie){this.settings=ee,this.databaseId=te,this.serializer=ne,this.ignoreUndefinedProperties=re,void 0===se&&this.validatePath(),this.fieldTransforms=se||[],this.fieldMask=ie||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(ee){return new ParseContextImpl({...this.settings,...ee},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(ee){const te=this.path?.child(ee),ne=this.contextWith({path:te,arrayElement:!1});return ne.validatePathSegment(ee),ne}childContextForFieldPath(ee){const te=this.path?.child(ee),ne=this.contextWith({path:te,arrayElement:!1});return ne.validatePath(),ne}childContextForArray(ee){return this.contextWith({path:void 0,arrayElement:!0})}createError(ee){return createError(ee,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(ee){return void 0!==this.fieldMask.find((te=>ee.isPrefixOf(te)))||void 0!==this.fieldTransforms.find((te=>ee.isPrefixOf(te.field)))}validatePath(){if(this.path)for(let ee=0;ee<this.path.length;ee++)this.validatePathSegment(this.path.get(ee))}validatePathSegment(ee){if(0===ee.length)throw this.createError("Document fields must not be empty");if(__PRIVATE_isWrite(this.dataSource)&&Tr.test(ee))throw this.createError('Document fields cannot begin and end with "__"')}}class UserDataReader{constructor(ee,te,ne){this.databaseId=ee,this.ignoreUndefinedProperties=te,this.serializer=ne||__PRIVATE_newSerializer(ee)}createContext(ee,te,ne,re=!1){return new ParseContextImpl({dataSource:ee,methodName:te,targetDoc:ne,path:An.emptyPath(),arrayElement:!1,hasConverter:re},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function la(ee){const te=ee._freezeSettings(),ne=__PRIVATE_newSerializer(ee._databaseId);return new UserDataReader(ee._databaseId,!!te.ignoreUndefinedProperties,ne)}function __PRIVATE_parseSetData(ee,te,ne,re,se,ie={}){const ae=ee.createContext(ie.merge||ie.mergeFields?2:0,te,ne,se);__PRIVATE_validatePlainObject("Data must be an object, but it was:",ae,re);const oe=__PRIVATE_parseObject(re,ae);let ue,Be;if(ie.merge)ue=new FieldMask(ae.fieldMask),Be=ae.fieldTransforms;else if(ie.mergeFields){const ee=[];for(const re of ie.mergeFields){const se=ta(te,re,ne);if(!ae.contains(se))throw new s(gn.INVALID_ARGUMENT,`Field '${se}' is specified in your field mask but missing from your input data.`);__PRIVATE_fieldMaskContains(ee,se)||ee.push(se)}ue=new FieldMask(ee),Be=ae.fieldTransforms.filter((ee=>ue.covers(ee.field)))}else ue=null,Be=ae.fieldTransforms;return new ParsedSetData(new ObjectValue(oe),ue,Be)}class __PRIVATE_DeleteFieldValueImpl extends FieldValue{_toFieldTransform(ee){if(2!==ee.dataSource)throw 1===ee.dataSource?ee.createError(`${this._methodName}() can only appear at the top level of your update data`):ee.createError(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return ee.fieldMask.push(ee.path),null}isEqual(ee){return ee instanceof __PRIVATE_DeleteFieldValueImpl}}function __PRIVATE_createSentinelChildContext(ee,te,ne){return new ParseContextImpl({dataSource:3,targetDoc:te.settings.targetDoc,methodName:ee._methodName,arrayElement:ne},te.databaseId,te.serializer,te.ignoreUndefinedProperties)}class __PRIVATE_ServerTimestampFieldValueImpl extends FieldValue{_toFieldTransform(ee){return new FieldTransform(ee.path,new __PRIVATE_ServerTimestampTransform)}isEqual(ee){return ee instanceof __PRIVATE_ServerTimestampFieldValueImpl}}class __PRIVATE_ArrayUnionFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this._r=te}_toFieldTransform(ee){const te=__PRIVATE_createSentinelChildContext(this,ee,!0),ne=this._r.map((ee=>__PRIVATE_parseData(ee,te))),re=new __PRIVATE_ArrayUnionTransformOperation(ne);return new FieldTransform(ee.path,re)}isEqual(ee){return ee instanceof __PRIVATE_ArrayUnionFieldValueImpl&&deepEqual(this._r,ee._r)}}class __PRIVATE_ArrayRemoveFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this._r=te}_toFieldTransform(ee){const te=__PRIVATE_createSentinelChildContext(this,ee,!0),ne=this._r.map((ee=>__PRIVATE_parseData(ee,te))),re=new __PRIVATE_ArrayRemoveTransformOperation(ne);return new FieldTransform(ee.path,re)}isEqual(ee){return ee instanceof __PRIVATE_ArrayRemoveFieldValueImpl&&deepEqual(this._r,ee._r)}}class __PRIVATE_NumericIncrementFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this.ar=te}_toFieldTransform(ee){const te=new __PRIVATE_NumericIncrementTransformOperation(ee.serializer,toNumber(ee.serializer,this.ar));return new FieldTransform(ee.path,te)}isEqual(ee){return ee instanceof __PRIVATE_NumericIncrementFieldValueImpl&&(this.ar===ee.ar||Number.isNaN(this.ar)&&Number.isNaN(ee.ar))}}class __PRIVATE_NumericMinimumFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this.ar=te}_toFieldTransform(ee){const te=new __PRIVATE_NumericMinimumTransformOperation(ee.serializer,toNumber(ee.serializer,this.ar));return new FieldTransform(ee.path,te)}isEqual(ee){return ee instanceof __PRIVATE_NumericMinimumFieldValueImpl&&(this.ar===ee.ar||Number.isNaN(this.ar)&&Number.isNaN(ee.ar))}}class __PRIVATE_NumericMaximumFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this.ar=te}_toFieldTransform(ee){const te=new __PRIVATE_NumericMaximumTransformOperation(ee.serializer,toNumber(ee.serializer,this.ar));return new FieldTransform(ee.path,te)}isEqual(ee){return ee instanceof __PRIVATE_NumericMaximumFieldValueImpl&&(this.ar===ee.ar||Number.isNaN(this.ar)&&Number.isNaN(ee.ar))}}function __PRIVATE_parseUpdateData(ee,te,ne,re){const se=ee.createContext(1,te,ne);__PRIVATE_validatePlainObject("Data must be an object, but it was:",se,re);const ie=[],ae=ObjectValue.empty();forEach(re,((ee,re)=>{const oe=__PRIVATE_fieldPathFromDotSeparatedString(te,ee,ne);re=getModularInstance(re);const ue=se.childContextForFieldPath(oe);if(re instanceof __PRIVATE_DeleteFieldValueImpl)ie.push(oe);else{const ee=__PRIVATE_parseData(re,ue);null!=ee&&(ie.push(oe),ae.set(oe,ee))}}));const oe=new FieldMask(ie);return new ParsedUpdateData(ae,oe,se.fieldTransforms)}function __PRIVATE_parseUpdateVarargs(ee,te,ne,re,se,ie){const ae=ee.createContext(1,te,ne),oe=[ta(te,re,ne)],ue=[se];if(ie.length%2!=0)throw new s(gn.INVALID_ARGUMENT,`Function ${te}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let ee=0;ee<ie.length;ee+=2)oe.push(ta(te,ie[ee])),ue.push(ie[ee+1]);const Be=[],le=ObjectValue.empty();for(let ee=oe.length-1;ee>=0;--ee)if(!__PRIVATE_fieldMaskContains(Be,oe[ee])){const te=oe[ee];let ne=ue[ee];ne=getModularInstance(ne);const re=ae.childContextForFieldPath(te);if(ne instanceof __PRIVATE_DeleteFieldValueImpl)Be.push(te);else{const ee=__PRIVATE_parseData(ne,re);null!=ee&&(Be.push(te),le.set(te,ee))}}const ce=new FieldMask(Be);return new ParsedUpdateData(le,ce,ae.fieldTransforms)}function __PRIVATE_parseQueryValue(ee,te,ne,re=!1){return __PRIVATE_parseData(ne,ee.createContext(re?4:3,te))}function __PRIVATE_parseData(ee,te,ne){if(__PRIVATE_looksLikeJsonObject(ee=getModularInstance(ee)))return __PRIVATE_validatePlainObject("Unsupported field value:",te,ee),__PRIVATE_parseObject(ee,te);if(ee instanceof FieldValue)return function __PRIVATE_parseSentinelFieldValue(ee,te){if(!__PRIVATE_isWrite(te.dataSource))throw te.createError(`${ee._methodName}() can only be used with update() and set()`);if(!te.path)throw te.createError(`${ee._methodName}() is not currently supported inside arrays`);const ne=ee._toFieldTransform(te);ne&&te.fieldTransforms.push(ne)}(ee,te),null;if(void 0===ee&&te.ignoreUndefinedProperties)return null;if(te.path&&te.fieldMask.push(te.path),ee instanceof Array){if(te.settings.arrayElement&&4!==te.dataSource)throw te.createError("Nested arrays are not supported");return function __PRIVATE_parseArray(ee,te){const ne=[];let re=0;for(const se of ee){let ee=__PRIVATE_parseData(se,te.childContextForArray(re));null==ee&&(ee={nullValue:"NULL_VALUE"}),ne.push(ee),re++}return{arrayValue:{values:ne}}}(ee,te)}return function __PRIVATE_parseScalarValue(ee,te){if(null===(ee=getModularInstance(ee)))return{nullValue:"NULL_VALUE"};if("number"==typeof ee)return toNumber(te.serializer,ee);if("boolean"==typeof ee)return{booleanValue:ee};if("string"==typeof ee)return{stringValue:ee};if(ee instanceof Date){const ne=Timestamp.fromDate(ee);return{timestampValue:toTimestamp(te.serializer,ne)}}if(ee instanceof Timestamp){const ne=new Timestamp(ee.seconds,1e3*Math.floor(ee.nanoseconds/1e3));return{timestampValue:toTimestamp(te.serializer,ne)}}if(ee instanceof GeoPoint)return{geoPointValue:{latitude:ee.latitude,longitude:ee.longitude}};if(ee instanceof Bytes)return{bytesValue:__PRIVATE_toBytes(te.serializer,ee._byteString)};if(ee instanceof X){const ne=te.databaseId,re=ee.firestore._databaseId;if(!re.isEqual(ne))throw te.createError(`Document reference is for database ${re.projectId}/${re.database} but should be for database ${ne.projectId}/${ne.database}`);return{referenceValue:__PRIVATE_toResourceName(ee.firestore._databaseId||te.databaseId,ee._key.path)}}if(ee instanceof n)return function __PRIVATE_parseVectorValue(ee,te){const ne=ee instanceof n?ee.toArray():ee,re={fields:{[xn]:{stringValue:Nn},[Ln]:{arrayValue:{values:ne.map((ee=>{if("number"!=typeof ee)throw te.createError("VectorValues must only contain numeric values.");return __PRIVATE_toDouble(te.serializer,ee)}))}}}};return{mapValue:re}}(ee,te);if(__PRIVATE_isProtoValueSerializable(ee))return ee._toProto(te.serializer);throw te.createError(`Unsupported field value: ${__PRIVATE_valueDescription(ee)}`)}(ee,te)}function __PRIVATE_parseObject(ee,te){const ne={};return isEmpty(ee)?te.path&&te.path.length>0&&te.fieldMask.push(te.path):forEach(ee,((ee,re)=>{const se=__PRIVATE_parseData(re,te.childContextForField(ee));null!=se&&(ne[ee]=se)})),{mapValue:{fields:ne}}}function __PRIVATE_looksLikeJsonObject(ee){return!("object"!=typeof ee||null===ee||ee instanceof Array||ee instanceof Date||ee instanceof Timestamp||ee instanceof GeoPoint||ee instanceof Bytes||ee instanceof X||ee instanceof FieldValue||ee instanceof n||__PRIVATE_isProtoValueSerializable(ee))}function __PRIVATE_validatePlainObject(ee,te,ne){if(!__PRIVATE_looksLikeJsonObject(ne)||!p(ne)){const re=__PRIVATE_valueDescription(ne);throw"an object"===re?te.createError(ee+" a custom object"):te.createError(ee+" "+re)}}function ta(ee,te,ne){if((te=getModularInstance(te))instanceof FieldPath)return te._internalPath;if("string"==typeof te)return __PRIVATE_fieldPathFromDotSeparatedString(ee,te);throw createError("Field path arguments must be of type string or ",ee,!1,void 0,ne)}const Ir=new RegExp("[~\\*/\\[\\]]");function __PRIVATE_fieldPathFromDotSeparatedString(ee,te,ne){if(te.search(Ir)>=0)throw createError(`Invalid field path (${te}). Paths must not contain '~', '*', '/', '[', or ']'`,ee,!1,void 0,ne);try{return new FieldPath(...te.split("."))._internalPath}catch(re){throw createError(`Invalid field path (${te}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,ee,!1,void 0,ne)}}function createError(ee,te,ne,re,se){const ie=re&&!re.isEmpty(),ae=void 0!==se;let oe=`Function ${te}() called with invalid data`;ne&&(oe+=" (via `toFirestore()`)"),oe+=". ";let ue="";return(ie||ae)&&(ue+=" (found",ie&&(ue+=` in field ${re}`),ae&&(ue+=` in document ${se}`),ue+=")"),new s(gn.INVALID_ARGUMENT,oe+ee+ue)}function __PRIVATE_fieldMaskContains(ee,te){return ee.some((ee=>ee.isEqual(te)))}function __PRIVATE_isUserData(ee){return"function"==typeof ee._readUserData}class OptionsUtil{constructor(ee){this.optionDefinitions=ee}_getKnownOptions(ee,te){const ne=ObjectValue.empty();for(const re in this.optionDefinitions)if(this.optionDefinitions.hasOwnProperty(re)){const se=this.optionDefinitions[re];if(re in ee){const ie=ee[re];let ae;se.nestedOptions&&p(ie)?ae={mapValue:{fields:new OptionsUtil(se.nestedOptions).getOptionsProto(te,ie)}}:ie&&(ae=__PRIVATE_parseData(ie,te)??void 0),ae&&ne.set(An.fromServerFormat(se.serverName),ae)}}return ne}getOptionsProto(ee,te,ne){const re=this._getKnownOptions(te,ee);if(ne){const te=new Map(__PRIVATE_mapToArray(ne,((te,ne)=>[An.fromServerFormat(ne),void 0!==te?__PRIVATE_parseData(te,ee):null])));re.setAll(te)}return re.value.mapValue.fields??{}}}function u(ee){return"object"==typeof ee&&null!==ee&&!!("nullValue"in ee&&(null===ee.nullValue||"NULL_VALUE"===ee.nullValue)||"booleanValue"in ee&&(null===ee.booleanValue||"boolean"==typeof ee.booleanValue)||"integerValue"in ee&&(null===ee.integerValue||"number"==typeof ee.integerValue||"string"==typeof ee.integerValue)||"doubleValue"in ee&&(null===ee.doubleValue||"number"==typeof ee.doubleValue)||"timestampValue"in ee&&(null===ee.timestampValue||function __PRIVATE_isITimestamp(ee){return"object"==typeof ee&&null!==ee&&"seconds"in ee&&(null===ee.seconds||"number"==typeof ee.seconds||"string"==typeof ee.seconds)&&"nanos"in ee&&(null===ee.nanos||"number"==typeof ee.nanos)}(ee.timestampValue))||"stringValue"in ee&&(null===ee.stringValue||"string"==typeof ee.stringValue)||"bytesValue"in ee&&(null===ee.bytesValue||ee.bytesValue instanceof Uint8Array)||"referenceValue"in ee&&(null===ee.referenceValue||"string"==typeof ee.referenceValue)||"geoPointValue"in ee&&(null===ee.geoPointValue||function __PRIVATE_isILatLng(ee){return"object"==typeof ee&&null!==ee&&"latitude"in ee&&(null===ee.latitude||"number"==typeof ee.latitude)&&"longitude"in ee&&(null===ee.longitude||"number"==typeof ee.longitude)}(ee.geoPointValue))||"arrayValue"in ee&&(null===ee.arrayValue||function __PRIVATE_isIArrayValue(ee){return"object"==typeof ee&&null!==ee&&!(!("values"in ee)||null!==ee.values&&!Array.isArray(ee.values))}(ee.arrayValue))||"mapValue"in ee&&(null===ee.mapValue||function __PRIVATE_isIMapValue(ee){return"object"==typeof ee&&null!==ee&&!(!("fields"in ee)||null!==ee.fields&&!p(ee.fields))}(ee.mapValue))||"fieldReferenceValue"in ee&&(null===ee.fieldReferenceValue||"string"==typeof ee.fieldReferenceValue)||"functionValue"in ee&&(null===ee.functionValue||function __PRIVATE_isIFunction(ee){return"object"==typeof ee&&null!==ee&&!(!("name"in ee)||null!==ee.name&&"string"!=typeof ee.name||!("args"in ee)||null!==ee.args&&!Array.isArray(ee.args))}(ee.functionValue))||"pipelineValue"in ee&&(null===ee.pipelineValue||function __PRIVATE_isIPipeline(ee){return"object"==typeof ee&&null!==ee&&!(!("stages"in ee)||null!==ee.stages&&!Array.isArray(ee.stages))}(ee.pipelineValue)))}function deleteField(){return new __PRIVATE_DeleteFieldValueImpl("deleteField")}function serverTimestamp(){return new __PRIVATE_ServerTimestampFieldValueImpl("serverTimestamp")}function arrayUnion(...ee){return new __PRIVATE_ArrayUnionFieldValueImpl("arrayUnion",ee)}function arrayRemove(...ee){return new __PRIVATE_ArrayRemoveFieldValueImpl("arrayRemove",ee)}function increment(ee){return new __PRIVATE_NumericIncrementFieldValueImpl("increment",ee)}function minimum$1(ee){return new __PRIVATE_NumericMinimumFieldValueImpl("minimum",ee)}function maximum$1(ee){return new __PRIVATE_NumericMaximumFieldValueImpl("maximum",ee)}function r(ee){return new n(ee)}function __PRIVATE_valueToDefaultExpr(ee){let te;return ee instanceof t?ee:(te=p(ee)?__PRIVATE__map(ee):ee instanceof Array?b(ee):m(ee,void 0),te)}function __PRIVATE_vectorToExpr(ee){if(ee instanceof t)return ee;if(ee instanceof n)return i(ee);if(Array.isArray(ee))return i(r(ee));throw new Error("Unsupported value: "+typeof ee)}function __PRIVATE_fieldOrExpression$1(ee){return __PRIVATE_isString$1(ee)?e(ee):__PRIVATE_valueToDefaultExpr(ee)}class t{constructor(){this._protoValueType="ProtoValue"}add(ee){return new x("add",[this,__PRIVATE_valueToDefaultExpr(ee)],"add")}asBoolean(){if(this instanceof BooleanExpression)return this;if(this instanceof Constant)return new __PRIVATE_BooleanConstant(this);if(this instanceof o)return new __PRIVATE_BooleanField(this);if(this instanceof x)return new __PRIVATE_BooleanFunctionExpression(this);throw new s("invalid-argument",`Conversion of type ${typeof this} to BooleanExpression not supported.`)}subtract(ee){return new x("subtract",[this,__PRIVATE_valueToDefaultExpr(ee)],"subtract")}multiply(ee){return new x("multiply",[this,__PRIVATE_valueToDefaultExpr(ee)],"multiply")}divide(ee){return new x("divide",[this,__PRIVATE_valueToDefaultExpr(ee)],"divide")}mod(ee){return new x("mod",[this,__PRIVATE_valueToDefaultExpr(ee)],"mod")}equal(ee){return new x("equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"equal").asBoolean()}notEqual(ee){return new x("not_equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"notEqual").asBoolean()}lessThan(ee){return new x("less_than",[this,__PRIVATE_valueToDefaultExpr(ee)],"lessThan").asBoolean()}lessThanOrEqual(ee){return new x("less_than_or_equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"lessThanOrEqual").asBoolean()}greaterThan(ee){return new x("greater_than",[this,__PRIVATE_valueToDefaultExpr(ee)],"greaterThan").asBoolean()}greaterThanOrEqual(ee){return new x("greater_than_or_equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"greaterThanOrEqual").asBoolean()}arrayConcat(ee,...te){const ne=[ee,...te].map((ee=>__PRIVATE_valueToDefaultExpr(ee)));return new x("array_concat",[this,...ne],"arrayConcat")}arrayContains(ee){return new x("array_contains",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayContains").asBoolean()}arrayContainsAll(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"arrayContainsAll"):ee;return new x("array_contains_all",[this,te],"arrayContainsAll").asBoolean()}arrayContainsAny(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"arrayContainsAny"):ee;return new x("array_contains_any",[this,te],"arrayContainsAny").asBoolean()}arrayReverse(){return new x("array_reverse",[this])}arrayLength(){return new x("array_length",[this],"arrayLength")}equalAny(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"equalAny"):ee;return new x("equal_any",[this,te],"equalAny").asBoolean()}notEqualAny(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"notEqualAny"):ee;return new x("not_equal_any",[this,te],"notEqualAny").asBoolean()}exists(){return new x("exists",[this],"exists").asBoolean()}charLength(){return new x("char_length",[this],"charLength")}like(ee){return new x("like",[this,__PRIVATE_valueToDefaultExpr(ee)],"like").asBoolean()}regexContains(ee){return new x("regex_contains",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexContains").asBoolean()}regexFind(ee){return new x("regex_find",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexFind")}regexFindAll(ee){return new x("regex_find_all",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexFindAll")}regexMatch(ee){return new x("regex_match",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexMatch").asBoolean()}stringContains(ee){return new x("string_contains",[this,__PRIVATE_valueToDefaultExpr(ee)],"stringContains").asBoolean()}startsWith(ee){return new x("starts_with",[this,__PRIVATE_valueToDefaultExpr(ee)],"startsWith").asBoolean()}endsWith(ee){return new x("ends_with",[this,__PRIVATE_valueToDefaultExpr(ee)],"endsWith").asBoolean()}toLower(){return new x("to_lower",[this],"toLower")}toUpper(){return new x("to_upper",[this],"toUpper")}trim(ee){const te=[this];return ee&&te.push(__PRIVATE_valueToDefaultExpr(ee)),new x("trim",te,"trim")}ltrim(ee){const te=[this];return ee&&te.push(__PRIVATE_valueToDefaultExpr(ee)),new x("ltrim",te,"ltrim")}rtrim(ee){const te=[this];return ee&&te.push(__PRIVATE_valueToDefaultExpr(ee)),new x("rtrim",te,"rtrim")}type(){return new x("type",[this])}isType(ee){return new x("is_type",[this,i(ee)],"isType").asBoolean()}stringConcat(ee,...te){const ne=[ee,...te].map(__PRIVATE_valueToDefaultExpr);return new x("string_concat",[this,...ne],"stringConcat")}stringIndexOf(ee){return new x("string_index_of",[this,__PRIVATE_valueToDefaultExpr(ee)],"stringIndexOf")}stringRepeat(ee){return new x("string_repeat",[this,__PRIVATE_valueToDefaultExpr(ee)],"stringRepeat")}stringReplaceAll(ee,te){return new x("string_replace_all",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"stringReplaceAll")}stringReplaceOne(ee,te){return new x("string_replace_one",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"stringReplaceOne")}concat(ee,...te){const ne=[ee,...te].map(__PRIVATE_valueToDefaultExpr);return new x("concat",[this,...ne],"concat")}reverse(){return new x("reverse",[this],"reverse")}arrayFilter(ee,te){return new x("array_filter",[this,__PRIVATE_valueToDefaultExpr(ee),te],"arrayFilter")}arrayTransform(ee,te){return new x("array_transform",[this,__PRIVATE_valueToDefaultExpr(ee),te],"arrayTransform")}arrayTransformWithIndex(ee,te,ne){return new x("array_transform",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te),ne],"arrayTransformWithIndex")}arraySlice(ee,te){const ne=[this,__PRIVATE_valueToDefaultExpr(ee)];return void 0!==te&&ne.push(__PRIVATE_valueToDefaultExpr(te)),new x("array_slice",ne,"arraySlice")}arrayFirst(){return new x("array_first",[this],"arrayFirst")}arrayFirstN(ee){return new x("array_first_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayFirstN")}arrayLast(){return new x("array_last",[this],"arrayLast")}arrayLastN(ee){return new x("array_last_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayLastN")}arrayMaximum(){return new x("maximum",[this],"arrayMaximum")}arrayMaximumN(ee){return new x("maximum_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayMaximumN")}arrayMinimum(){return new x("minimum",[this],"arrayMinimum")}arrayMinimumN(ee){return new x("minimum_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayMinimumN")}arrayIndexOf(ee){return new x("array_index_of",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr("first")],"arrayIndexOf")}arrayLastIndexOf(ee){return new x("array_index_of",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr("last")],"arrayLastIndexOf")}arrayIndexOfAll(ee){return new x("array_index_of_all",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayIndexOfAll")}byteLength(){return new x("byte_length",[this],"byteLength")}ceil(){return new x("ceil",[this])}floor(){return new x("floor",[this])}abs(){return new x("abs",[this])}exp(){return new x("exp",[this])}mapGet(ee){return new x("map_get",[this,i(ee)],"mapGet")}mapSet(ee,te,...ne){const re=[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr)];return new x("map_set",re,"mapSet")}mapKeys(){return new x("map_keys",[this],"mapKeys")}mapValues(){return new x("map_values",[this],"mapValues")}mapEntries(){return new x("map_entries",[this],"mapEntries")}getField(ee){return new x("get_field",[this,__PRIVATE_valueToDefaultExpr(ee)],"get_field")}count(){return k._create("count",[this],"count")}sum(){return k._create("sum",[this],"sum")}average(){return k._create("average",[this],"average")}minimum(){return k._create("minimum",[this],"minimum")}maximum(){return k._create("maximum",[this],"maximum")}first(){return k._create("first",[this],"first")}last(){return k._create("last",[this],"last")}arrayAgg(){return k._create("array_agg",[this],"arrayAgg")}arrayAggDistinct(){return k._create("array_agg_distinct",[this],"arrayAggDistinct")}countDistinct(){return k._create("count_distinct",[this],"countDistinct")}logicalMaximum(ee,...te){const ne=[ee,...te];return new x("maximum",[this,...ne.map(__PRIVATE_valueToDefaultExpr)],"logicalMaximum")}logicalMinimum(ee,...te){const ne=[ee,...te];return new x("minimum",[this,...ne.map(__PRIVATE_valueToDefaultExpr)],"minimum")}vectorLength(){return new x("vector_length",[this],"vectorLength")}cosineDistance(ee){return new x("cosine_distance",[this,__PRIVATE_vectorToExpr(ee)],"cosineDistance")}dotProduct(ee){return new x("dot_product",[this,__PRIVATE_vectorToExpr(ee)],"dotProduct")}euclideanDistance(ee){return new x("euclidean_distance",[this,__PRIVATE_vectorToExpr(ee)],"euclideanDistance")}unixMicrosToTimestamp(){return new x("unix_micros_to_timestamp",[this],"unixMicrosToTimestamp")}timestampToUnixMicros(){return new x("timestamp_to_unix_micros",[this],"timestampToUnixMicros")}unixMillisToTimestamp(){return new x("unix_millis_to_timestamp",[this],"unixMillisToTimestamp")}timestampToUnixMillis(){return new x("timestamp_to_unix_millis",[this],"timestampToUnixMillis")}unixSecondsToTimestamp(){return new x("unix_seconds_to_timestamp",[this],"unixSecondsToTimestamp")}timestampToUnixSeconds(){return new x("timestamp_to_unix_seconds",[this],"timestampToUnixSeconds")}timestampAdd(ee,te){return new x("timestamp_add",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"timestampAdd")}timestampSubtract(ee,te){return new x("timestamp_subtract",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"timestampSubtract")}timestampDiff(ee,te){return new x("timestamp_diff",[this,__PRIVATE_fieldOrExpression$1(ee),__PRIVATE_valueToDefaultExpr(te)],"timestampDiff")}timestampExtract(ee,te){const ne=[this,__PRIVATE_valueToDefaultExpr(ee)];return te&&ne.push(__PRIVATE_valueToDefaultExpr(te)),new x("timestamp_extract",ne,"timestampExtract")}documentId(){return new x("document_id",[this],"documentId")}parent(){return new x("parent",[this],"parent")}substring(ee,te){const ne=__PRIVATE_valueToDefaultExpr(ee);return new x("substring",void 0===te?[this,ne]:[this,ne,__PRIVATE_valueToDefaultExpr(te)],"substring")}arrayGet(ee){return new x("array_get",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayGet")}isError(){return new x("is_error",[this],"isError").asBoolean()}ifError(ee){const te=new x("if_error",[this,__PRIVATE_valueToDefaultExpr(ee)],"ifError");return ee instanceof BooleanExpression?te.asBoolean():te}isAbsent(){return new x("is_absent",[this],"isAbsent").asBoolean()}mapRemove(ee){return new x("map_remove",[this,__PRIVATE_valueToDefaultExpr(ee)],"mapRemove")}mapMerge(ee,...te){const ne=__PRIVATE_valueToDefaultExpr(ee),re=te.map(__PRIVATE_valueToDefaultExpr);return new x("map_merge",[this,ne,...re],"mapMerge")}pow(ee){return new x("pow",[this,__PRIVATE_valueToDefaultExpr(ee)])}trunc(ee){return void 0===ee?new x("trunc",[this]):new x("trunc",[this,__PRIVATE_valueToDefaultExpr(ee)],"trunc")}round(ee){return void 0===ee?new x("round",[this]):new x("round",[this,__PRIVATE_valueToDefaultExpr(ee)],"round")}collectionId(){return new x("collection_id",[this])}length(){return new x("length",[this])}ln(){return new x("ln",[this])}sqrt(){return new x("sqrt",[this])}stringReverse(){return new x("string_reverse",[this])}ifAbsent(ee){return new x("if_absent",[this,__PRIVATE_valueToDefaultExpr(ee)],"ifAbsent")}ifNull(ee){return new x("if_null",[this,__PRIVATE_valueToDefaultExpr(ee)],"ifNull")}coalesce(ee,...te){return new x("coalesce",[this,__PRIVATE_valueToDefaultExpr(ee),...te.map(__PRIVATE_valueToDefaultExpr)],"coalesce")}join(ee){return new x("join",[this,__PRIVATE_valueToDefaultExpr(ee)],"join")}log10(){return new x("log10",[this])}arraySum(){return new x("sum",[this])}split(ee){return new x("split",[this,__PRIVATE_valueToDefaultExpr(ee)])}timestampTruncate(ee,te){const ne=[this,__PRIVATE_valueToDefaultExpr(ee)];return te&&ne.push(__PRIVATE_valueToDefaultExpr(te)),new x("timestamp_trunc",ne)}ascending(){return ascending(this)}descending(){return descending(this)}as(ee){return new c(this,ee,"as")}}class k{constructor(ee,te){this.name=ee,this.params=te,this.exprType="AggregateFunction",this._protoValueType="ProtoValue"}static _create(ee,te,ne){const re=new k(ee,te);return re._methodName=ne,re}as(ee){return new AliasedAggregate(this,ee,"as")}_toProto(ee){return{functionValue:{name:this.name,args:this.params.map((te=>te._toProto(ee)))}}}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,this.params.forEach((te=>te._readUserData(ee)))}}class AliasedAggregate{constructor(ee,te,ne){this.aggregate=ee,this.alias=te,this._methodName=ne}_readUserData(ee){this.aggregate._readUserData(ee)}}class c{constructor(ee,te,ne){this.expr=ee,this.alias=te,this._methodName=ne,this.exprType="AliasedExpression",this.selectable=!0}_readUserData(ee){this.expr._readUserData(ee)}}class __PRIVATE_ListOfExprs extends t{constructor(ee,te){super(),this.ur=ee,this._methodName=te,this.expressionType="ListOfExpressions"}_toProto(ee){return{arrayValue:{values:this.ur.map((te=>te._toProto(ee)))}}}_readUserData(ee){this.ur.forEach((te=>te._readUserData(ee)))}}class o extends t{constructor(ee,te){super(),this.fieldPath=ee,this._methodName=te,this.expressionType="Field",this.selectable=!0}get _fieldPath(){return this.fieldPath}get fieldName(){return this.fieldPath.canonicalString()}get alias(){return this.fieldName}get expr(){return this}geoDistance(ee){return new x("geo_distance",[this,__PRIVATE_valueToDefaultExpr(ee)],"geoDistance")}_toProto(ee){return{fieldReferenceValue:this.fieldPath.canonicalString()}}_readUserData(ee){}}function e(ee){return G(ee,"field")}function G(ee,te){return new o("string"==typeof ee?Tn===ee?documentId$1()._internalPath:ta("field",ee):ee._internalPath,te)}class Constant extends t{constructor(ee,te){super(),this.value=ee,this._methodName=te,this.expressionType="Constant"}static _fromProto(ee){const te=new Constant(ee,void 0);return te._protoValue=ee,te}_toProto(ee){return __PRIVATE_hardAssert(void 0!==this._protoValue,237),this._protoValue}_getValue(){return this._protoValue}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,u(this._protoValue)||(this._protoValue=__PRIVATE_parseData(this.value,ee))}}function i(ee,te){return m(ee,"constant")}function m(ee,te){const ne=new Constant(ee,te);return"boolean"==typeof ee?new __PRIVATE_BooleanConstant(ne):ne}class MapValue extends t{constructor(ee,te){super(),this.cr=ee,this._methodName=te,this.expressionType="Constant"}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,this.cr.forEach((te=>{te._readUserData(ee)}))}_toProto(ee){return toMapValue(ee,this.cr)}}class x extends t{constructor(ee,te,ne,re){super(),this.name=ee,this.params=te,this.expressionType="Function",this._optionsProto=void 0,void 0!==ne&&(this._methodName=ne),void 0!==re&&(this._options=re)}get _optionsUtil(){return new OptionsUtil({})}_toProto(ee){const te={functionValue:{name:this.name,args:this.params.map((te=>te._toProto(ee)))}};return this._optionsProto&&(te.functionValue.options=this._optionsProto),te}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,this.params.forEach((te=>te._readUserData(ee))),this._options&&(this._optionsProto=this._optionsUtil.getOptionsProto(ee,this._options))}}class BooleanExpression extends t{get _methodName(){return this._expr._methodName}countIf(){return k._create("count_if",[this],"countIf")}not(){return new x("not",[this],"not").asBoolean()}conditional(ee,te){return new x("conditional",[this,ee,te],"conditional")}ifError(ee){const te=__PRIVATE_valueToDefaultExpr(ee),ne=new x("if_error",[this,te],"ifError");return te instanceof BooleanExpression?ne.asBoolean():ne}_toProto(ee){return this._expr._toProto(ee)}_readUserData(ee){this._expr._readUserData(ee)}}class __PRIVATE_BooleanFunctionExpression extends BooleanExpression{constructor(ee){super(),this._expr=ee,this.expressionType="Function"}}class __PRIVATE_BooleanConstant extends BooleanExpression{constructor(ee){super(),this._expr=ee,this.expressionType="Constant"}_getValue(){return this._expr._getValue()}}class __PRIVATE_BooleanField extends BooleanExpression{constructor(ee){super(),this._expr=ee,this.expressionType="Field"}}function h(ee){return __PRIVATE__map(ee)}function __PRIVATE__map(ee,te){const ne=[];for(const te in ee)if(Object.prototype.hasOwnProperty.call(ee,te)){const re=ee[te];ne.push(i(te)),ne.push(__PRIVATE_valueToDefaultExpr(re))}return new x("map",ne,"map")}function b(ee){return function __PRIVATE__array(ee,te){return new x("array",ee.map((ee=>__PRIVATE_valueToDefaultExpr(ee))),te)}(ee,"array")}function lessThan(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.lessThan(re)}function greaterThan(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.greaterThan(re)}function and$1(ee,te,...ne){return new x("and",[ee,te,...ne],"and").asBoolean()}function or$1(ee,te,...ne){return new x("or",[ee,te,...ne],"xor").asBoolean()}class __PRIVATE_VariableExpression extends t{constructor(ee){super(),this.name=ee,this.expressionType="Variable"}_toProto(ee){return{variableReferenceValue:this.name}}_readUserData(ee){}}class __PRIVATE_PipelineValueExpression extends t{constructor(ee){super(),this.pipeline=ee,this.expressionType="PipelineValue"}_toProto(ee){return __PRIVATE_toPipelineValue(this.pipeline._toProto(ee))}_readUserData(ee){this.pipeline._readUserData(ee)}}function q(ee){return new x("document_matches",[__PRIVATE_valueToDefaultExpr(ee)],"documentMatches").asBoolean()}function ascending(ee){return new Ordering(__PRIVATE_fieldOrExpression$1(ee),"ascending","ascending")}function descending(ee){return new Ordering(__PRIVATE_fieldOrExpression$1(ee),"descending","descending")}class Ordering{constructor(ee,te,ne){this.expr=ee,this.direction=te,this._methodName=ne,this._protoValueType="ProtoValue"}_toProto(ee){return{mapValue:{fields:{direction:__PRIVATE_toStringValue(this.direction),expression:this.expr._toProto(ee)}}}}_readUserData(ee){this.expr._readUserData(ee)}}function f(ee){const te=ee;return te.selectable&&__PRIVATE_isString$1(te.alias)&&j(te.expr)}function F(ee){const te=ee;return null!=te&&j(te.expr)&&("ascending"===te.direction||"descending"===te.direction)}function O(ee){const te=ee;return __PRIVATE_isString$1(te.alias)&&te.aggregate instanceof k}function j(ee){return ee instanceof t}function E(ee){return ee instanceof BooleanExpression}function T(ee){return ee instanceof c}function g(ee){return ee instanceof o}function S(ee){return __PRIVATE_isString$1(ee)?e(ee):ee}class Stage{constructor(ee){this.optionsProto=void 0,({rawOptions:this.rawOptions,...this.knownOptions}=ee)}_readUserData(ee){this.optionsProto=this._optionsUtil.getOptionsProto(ee,this.knownOptions,this.rawOptions)}_toProto(ee){return{name:this._name,options:this.optionsProto}}}class w extends Stage{get _name(){return"add_fields"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.fields=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.fields)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.fields,ee)}}class _ extends Stage{get _name(){return"remove_fields"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.fields=ee}_toProto(ee){return{...super._toProto(ee),args:this.fields.map((te=>te._toProto(ee)))}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.fields,ee)}}class P extends Stage{get _name(){return"let"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.lr=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.lr)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.lr,ee)}}class V extends Stage{get _name(){return"aggregate"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te,ne){super(ne),this.groups=ee,this.accumulators=te}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.accumulators),toMapValue(ee,this.groups)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.groups,ee),__PRIVATE_readUserDataHelper(this.accumulators,ee)}}class M extends Stage{get _name(){return"distinct"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.groups=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.groups)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.groups,ee)}}class H extends Stage{get _name(){return"collection"}get _optionsUtil(){return new OptionsUtil({forceIndex:{serverName:"force_index"}})}constructor(ee,te){super(te),this.Er=ee.startsWith("/")?ee:"/"+ee}_toProto(ee){return{...super._toProto(ee),args:[{referenceValue:this.Er}]}}_readUserData(ee){super._readUserData(ee)}}class J extends Stage{get _name(){return"collection_group"}get _optionsUtil(){return new OptionsUtil({forceIndex:{serverName:"force_index"}})}constructor(ee,te){super(te),this.collectionId=ee}_toProto(ee){return{...super._toProto(ee),args:[{referenceValue:""},{stringValue:this.collectionId}]}}_readUserData(ee){super._readUserData(ee)}}class sa extends Stage{get _name(){return"subcollection"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.path=ee}_toProto(ee){return{...super._toProto(ee),args:[{stringValue:this.path}]}}_readUserData(ee){super._readUserData(ee)}}class Q extends Stage{get _name(){return"database"}get _optionsUtil(){return new OptionsUtil({})}_toProto(ee){return{...super._toProto(ee)}}_readUserData(ee){super._readUserData(ee)}}class Y extends Stage{get _name(){return"documents"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){if(super(te),!ee||0===ee.length)throw new s(gn.INVALID_ARGUMENT,"Empty document paths are not allowed in DocumentsSource");const ne=ee.map((ee=>ee.startsWith("/")?ee:"/"+ee)),re=new Set(ne);if(re.size!==ne.length)throw new s(gn.INVALID_ARGUMENT,"Duplicate document paths are not allowed in DocumentsSource");this.hr=ne,this.Tr=re}_toProto(ee){return{...super._toProto(ee),args:this.hr.map((ee=>({referenceValue:ee})))}}_readUserData(ee){super._readUserData(ee)}}class A extends Stage{get _name(){return"where"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.condition=ee}_toProto(ee){return{...super._toProto(ee),args:[this.condition._toProto(ee)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.condition,ee)}}class D extends Stage{get _name(){return"find_nearest"}get _optionsUtil(){return new OptionsUtil({limit:{serverName:"limit"},distanceField:{serverName:"distance_field"}})}constructor(ee,te,ne,re){super(re),this.vectorValue=ee,this.field=te,this.distanceMeasure=ne}_toProto(ee){return{...super._toProto(ee),args:[this.field._toProto(ee),this.vectorValue._toProto(ee),__PRIVATE_toStringValue(this.distanceMeasure)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.vectorValue,ee),__PRIVATE_readUserDataHelper(this.field,ee)}}class v extends Stage{get _name(){return"limit"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){__PRIVATE_hardAssert(!isNaN(ee)&&ee!==1/0&&ee!==-1/0,34860),super(te),this.limit=ee}_toProto(ee){return{...super._toProto(ee),args:[toNumber(ee,this.limit)]}}}class I extends Stage{get _name(){return"offset"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.offset=ee}_toProto(ee){return{...super._toProto(ee),args:[toNumber(ee,this.offset)]}}}class y extends Stage{get _name(){return"select"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.selections=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.selections)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.selections,ee)}}class L extends Stage{get _name(){return"sort"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.orderings=ee}_toProto(ee){return{...super._toProto(ee),args:this.orderings.map((te=>te._toProto(ee)))}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.orderings,ee)}}class N extends Stage{get _name(){return"sample"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te,ne){super(ne),this.rate=ee,this.mode=te}_toProto(ee){return{...super._toProto(ee),args:[toNumber(ee,this.rate),__PRIVATE_toStringValue(this.mode)]}}_readUserData(ee){super._readUserData(ee)}}class U extends Stage{get _name(){return"union"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.other=ee}_toProto(ee){return{...super._toProto(ee),args:[__PRIVATE_toPipelineValue(this.other._toProto(ee))]}}_readUserData(ee){this.other._readUserData(ee),super._readUserData(ee)}}class W extends Stage{get _name(){return"unnest"}get _optionsUtil(){return new OptionsUtil({indexField:{serverName:"index_field"}})}constructor(ee,te,ne){super(ne),this.alias=ee,this.expr=te}_toProto(ee){return{...super._toProto(ee),args:[this.expr._toProto(ee),e(this.alias)._toProto(ee)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.expr,ee)}}class $ extends Stage{get _name(){return"replace_with"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.map=ee}_toProto(ee){return{...super._toProto(ee),args:[this.map._toProto(ee),__PRIVATE_toStringValue($.Pr)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.map,ee)}}$.Pr="full_replace";class C extends Stage{constructor(ee){super(ee),this.Rr=ee}get _name(){return"search"}get _optionsUtil(){return new OptionsUtil({query:{serverName:"query"},limit:{serverName:"limit"},retrievalDepth:{serverName:"retrieval_depth"},sort:{serverName:"sort"},addFields:{serverName:"add_fields"},select:{serverName:"select"},offset:{serverName:"offset"},Ir:{serverName:"query_enhancement"},languageCode:{serverName:"language_code"}})}_toProto(ee){return{...super._toProto(ee),args:[]}}_readUserData(ee){__PRIVATE_readUserDataHelper(this.Rr.query,ee),this.Rr.addFields&&__PRIVATE_readUserDataHelper(this.Rr.addFields,ee),this.Rr.select&&__PRIVATE_readUserDataHelper(this.Rr.select,ee),this.Rr.sort&&__PRIVATE_readUserDataHelper(this.Rr.sort,ee),super._readUserData(ee)}}class K extends Stage{constructor(ee,te,ne){super({rawOptions:ne}),this.name=ee,this.params=te}_toProto(ee){return{name:this.name,args:this.params.map((te=>te._toProto(ee))),options:this.optionsProto}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.params,ee)}get _name(){return this.name}get _optionsUtil(){return new OptionsUtil({})}}function __PRIVATE_readUserDataHelper(ee,te){return __PRIVATE_isUserData(ee)?ee._readUserData(te):Array.isArray(ee)||ee instanceof Map?ee.forEach((ee=>ee._readUserData(te))):Object.values(ee).forEach((ee=>ee._readUserData(te))),ee}class __PRIVATE_RealtimePipeline{constructor(ee,te,ne,re){this._db=ee,this.userDataReader=te,this._userDataWriter=ne,this.stages=re}Ar(ee,te){const ne=this.userDataReader.createContext(3,ee);return __PRIVATE_isUserData(te)?te._readUserData(ne):(Array.isArray(te),te.forEach((ee=>ee._readUserData(ne)))),te}where(ee){const te=this.stages.map((ee=>ee));return this.Ar("where",ee),te.push(new A(ee,{})),new __PRIVATE_RealtimePipeline(this._db,this.userDataReader,this._userDataWriter,te)}limit(ee){const te=this.stages.map((ee=>ee));return te.push(new v(ee,{})),new __PRIVATE_RealtimePipeline(this._db,this.userDataReader,this._userDataWriter,te)}sort(ee,...te){const ne=this.stages.map((ee=>ee));return"orderings"in ee?ne.push(new L(this.Ar("sort",ee.orderings),{})):ne.push(new L(this.Ar("sort",[ee,...te]),{})),new __PRIVATE_RealtimePipeline(this._db,this.userDataReader,this._userDataWriter,ne)}Vr(ee){return{pipeline:{stages:this.stages.map((te=>te._toProto(ee)))}}}}class __PRIVATE_EvaluateResult{constructor(ee,te){this.type=ee,this.value=te}static dr(){return new __PRIVATE_EvaluateResult("ERROR",void 0)}static mr(){return new __PRIVATE_EvaluateResult("UNSET",void 0)}static pr(){return new __PRIVATE_EvaluateResult("NULL",Mn)}static newValue(ee){return __PRIVATE_isNullValue(ee)?new __PRIVATE_EvaluateResult("NULL",Mn):function __PRIVATE_isBoolean(ee){return!!ee&&"booleanValue"in ee}(ee)?new __PRIVATE_EvaluateResult("BOOLEAN",ee):isInteger(ee)?new __PRIVATE_EvaluateResult("INT",ee):__PRIVATE_isDouble(ee)?new __PRIVATE_EvaluateResult("DOUBLE",ee):function __PRIVATE_isTimestampValue(ee){return!!ee&&"timestampValue"in ee&&!!ee.timestampValue}(ee)?new __PRIVATE_EvaluateResult("TIMESTAMP",ee):function __PRIVATE_isString(ee){return!!ee&&"stringValue"in ee}(ee)?new __PRIVATE_EvaluateResult("STRING",ee):function __PRIVATE_isBytes(ee){return!!ee&&"bytesValue"in ee}(ee)?new __PRIVATE_EvaluateResult("BYTES",ee):ee.referenceValue?new __PRIVATE_EvaluateResult("REFERENCE",ee):ee.geoPointValue?new __PRIVATE_EvaluateResult("GEO_POINT",ee):isArray(ee)?new __PRIVATE_EvaluateResult("ARRAY",ee):__PRIVATE_isVectorValue(ee)?new __PRIVATE_EvaluateResult("VECTOR",ee):__PRIVATE_isMapValue(ee)?new __PRIVATE_EvaluateResult("MAP",ee):new __PRIVATE_EvaluateResult("ERROR",void 0)}gr(){return"ERROR"===this.type||"UNSET"===this.type}yr(){return"NULL"===this.type}}function __PRIVATE_valueOrUndefined(ee){if(!ee.gr())return ee.value}function __PRIVATE_unwrapExpression(ee){return ee instanceof BooleanExpression?ee._expr:ee}function __PRIVATE_toEvaluable(ee){if((ee=__PRIVATE_unwrapExpression(ee))instanceof o)return new __PRIVATE_CoreField(ee);if(ee instanceof Constant)return new __PRIVATE_CoreConstant(ee);if(ee instanceof __PRIVATE_ListOfExprs)return new __PRIVATE_CoreListOfExprs(ee);if(ee instanceof x){if("add"===ee.name)return new __PRIVATE_CoreAdd(ee);if("subtract"===ee.name)return new __PRIVATE_CoreSubtract(ee);if("multiply"===ee.name)return new __PRIVATE_CoreMultiply(ee);if("divide"===ee.name)return new __PRIVATE_CoreDivide(ee);if("mod"===ee.name)return new __PRIVATE_CoreMod(ee);if("and"===ee.name)return new __PRIVATE_CoreAnd(ee);if("equal"===ee.name)return new __PRIVATE_CoreEq(ee);if("not_equal"===ee.name)return new __PRIVATE_CoreNeq(ee);if("less_than"===ee.name)return new __PRIVATE_CoreLt(ee);if("less_than_or_equal"===ee.name)return new __PRIVATE_CoreLte(ee);if("greater_than"===ee.name)return new __PRIVATE_CoreGt(ee);if("greater_than_or_equal"===ee.name)return new __PRIVATE_CoreGte(ee);if("array_concat"===ee.name)return new __PRIVATE_CoreArrayConcat(ee);if("array_reverse"===ee.name)return new __PRIVATE_CoreArrayReverse(ee);if("array_contains"===ee.name)return new __PRIVATE_CoreArrayContains(ee);if("array_contains_all"===ee.name)return new __PRIVATE_CoreArrayContainsAll(ee);if("array_contains_any"===ee.name)return new __PRIVATE_CoreArrayContainsAny(ee);if("array_length"===ee.name)return new __PRIVATE_CoreArrayLength(ee);if("array_element"===ee.name)return new __PRIVATE_CoreArrayElement(ee);if("equal_any"===ee.name)return new __PRIVATE_CoreEqAny(ee);if("not_equal_any"===ee.name)return new __PRIVATE_CoreNotEqAny(ee);if("is_nan"===ee.name)return new __PRIVATE_CoreIsNan(ee);if("is_not_nan"===ee.name)return new __PRIVATE_CoreIsNotNan(ee);if("is_null"===ee.name)return new __PRIVATE_CoreIsNull(ee);if("is_not_null"===ee.name)return new __PRIVATE_CoreIsNotNull(ee);if("is_error"===ee.name)return new __PRIVATE_CoreIsError(ee);if("exists"===ee.name)return new __PRIVATE_CoreExists(ee);if("not"===ee.name)return new __PRIVATE_CoreNot(ee);if("or"===ee.name)return new __PRIVATE_CoreOr(ee);if("xor"===ee.name)return new __PRIVATE_CoreXor(ee);if("conditional"===ee.name)return new __PRIVATE_CoreCond(ee);if("maximum"===ee.name)return new __PRIVATE_CoreLogicalMaximum(ee);if("minimum"===ee.name)return new __PRIVATE_CoreLogicalMinimum(ee);if("reverse"===ee.name)return new __PRIVATE_CoreReverse(ee);if("replace_first"===ee.name)return new __PRIVATE_CoreReplaceFirst(ee);if("replace_all"===ee.name)return new __PRIVATE_CoreReplaceAll(ee);if("char_length"===ee.name)return new __PRIVATE_CoreCharLength(ee);if("byte_length"===ee.name)return new __PRIVATE_CoreByteLength(ee);if("like"===ee.name)return new __PRIVATE_CoreLike(ee);if("regex_contains"===ee.name)return new __PRIVATE_CoreRegexContains(ee);if("regex_match"===ee.name)return new __PRIVATE_CoreRegexMatch(ee);if("string_contains"===ee.name)return new __PRIVATE_CoreStrContains(ee);if("starts_with"===ee.name)return new __PRIVATE_CoreStartsWith(ee);if("ends_with"===ee.name)return new __PRIVATE_CoreEndsWith(ee);if("to_lower"===ee.name)return new __PRIVATE_CoreToLower(ee);if("to_upper"===ee.name)return new __PRIVATE_CoreToUpper(ee);if("trim"===ee.name)return new __PRIVATE_CoreTrim(ee);if("string_concat"===ee.name)return new __PRIVATE_CoreStrConcat(ee);if("map_get"===ee.name)return new __PRIVATE_CoreMapGet(ee);if("cosine_distance"===ee.name)return new __PRIVATE_CoreCosineDistance(ee);if("dot_product"===ee.name)return new __PRIVATE_CoreDotProduct(ee);if("euclidean_distance"===ee.name)return new __PRIVATE_CoreEuclideanDistance(ee);if("vector_length"===ee.name)return new __PRIVATE_CoreVectorLength(ee);if("unix_micros_to_timestamp"===ee.name)return new __PRIVATE_CoreUnixMicrosToTimestamp(ee);if("timestamp_to_unix_micros"===ee.name)return new __PRIVATE_CoreTimestampToUnixMicros(ee);if("unix_millis_to_timestamp"===ee.name)return new __PRIVATE_CoreUnixMillisToTimestamp(ee);if("timestamp_to_unix_millis"===ee.name)return new __PRIVATE_CoreTimestampToUnixMillis(ee);if("unix_seconds_to_timestamp"===ee.name)return new __PRIVATE_CoreUnixSecondsToTimestamp(ee);if("timestamp_to_unix_seconds"===ee.name)return new __PRIVATE_CoreTimestampToUnixSeconds(ee);if("timestamp_add"===ee.name)return new __PRIVATE_CoreTimestampAdd(ee);if("timestamp_subtract"===ee.name)return new __PRIVATE_CoreTimestampSub(ee)}throw new Error(`Unknown Expr : ${ee}`)}class __PRIVATE_CoreField{constructor(ee){this.expr=ee}evaluate(ee,te){if(this.expr.fieldName===Tn)return __PRIVATE_EvaluateResult.newValue({referenceValue:__PRIVATE_toName(ee.serializer,te.key)});if("__update_time__"===this.expr.fieldName)return __PRIVATE_EvaluateResult.newValue({timestampValue:__PRIVATE_toVersion(ee.serializer,te.version)});if("__create_time__"===this.expr.fieldName)return __PRIVATE_EvaluateResult.newValue({timestampValue:__PRIVATE_toVersion(ee.serializer,te.createTime)});const ne=te.data.field(this.expr._fieldPath);return ne?__PRIVATE_isServerTimestamp(ne)?__PRIVATE_EvaluateResult.newValue(function __PRIVATE_getServerTimestampValue(ee,te){if("estimate"===ee.serverTimestampBehavior)return{timestampValue:__PRIVATE_toVersion(ee.serializer,SnapshotVersion.fromTimestamp(__PRIVATE_getLocalWriteTime(te)))};if("previous"===ee.serverTimestampBehavior){const ee=__PRIVATE_getPreviousValue(te);if(ee)return ee}return{nullValue:"NULL_VALUE"}}(ee,ne)):__PRIVATE_EvaluateResult.newValue(ne):__PRIVATE_EvaluateResult.mr()}}class __PRIVATE_CoreConstant{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_EvaluateResult.newValue(this.expr._getValue())}}class __PRIVATE_CoreListOfExprs{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.ur.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));return ne.some((ee=>ee.gr()))?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({arrayValue:{values:ne.map((ee=>ee.value))}})}}function __PRIVATE_asDouble(ee){return __PRIVATE_isDouble(ee)?Number(ee.doubleValue):Number(ee.integerValue)}function __PRIVATE_asBigInt(ee){return BigInt(ee.integerValue)}const Ar=BigInt("0x7fffffffffffffff"),Pr=-BigInt("0x8000000000000000");class __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(this.expr.params.length>=2,24778);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te),re=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);let se=this.wr(ne,re);for(const ne of this.expr.params.slice(2)){const re=__PRIVATE_toEvaluable(ne).evaluate(ee,te);se=this.wr(se,re)}return se}wr(ee,te){if(ee.gr()||te.gr())return __PRIVATE_EvaluateResult.dr();if(ee.yr()||te.yr())return __PRIVATE_EvaluateResult.pr();const ne=ee.value,re=te.value;if(!__PRIVATE_isDouble(ne)&&!isInteger(ne)||!__PRIVATE_isDouble(re)&&!isInteger(re))return __PRIVATE_EvaluateResult.dr();if(__PRIVATE_isDouble(ne)||__PRIVATE_isDouble(re)){const ee=this.br(ne,re);return ee?__PRIVATE_EvaluateResult.newValue(ee):__PRIVATE_EvaluateResult.dr()}if(isInteger(ne)&&isInteger(re)){const ee=this.vr(ne,re);return void 0===ee?__PRIVATE_EvaluateResult.dr():"number"==typeof ee?__PRIVATE_EvaluateResult.newValue({doubleValue:ee}):ee<Pr||ee>Ar?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({integerValue:`${ee}`})}return __PRIVATE_EvaluateResult.dr()}}function __PRIVATE_strictValueEquals(ee,te){return __PRIVATE_typeOrder(ee)!==__PRIVATE_typeOrder(te)?"TYPE_MISMATCH":__PRIVATE_isNanValue(ee)||__PRIVATE_isNanValue(te)?"NOT_EQ":__PRIVATE_isNullValue(ee)&&__PRIVATE_isNullValue(te)?"EQ":__PRIVATE_isNullValue(ee)||__PRIVATE_isNullValue(te)?"NULL":isArray(ee)&&isArray(te)?function __PRIVATE_strictArrayValueEquals(ee,te){if(ee.values?.length!==te.values?.length)return"NOT_EQ";let ne=!1;for(let re=0;re<(ee.values?.length??0);re++){const se=ee.values[re],ie=te.values[re];switch(__PRIVATE_strictValueEquals(se,ie)){case"EQ":break;case"NOT_EQ":case"TYPE_MISMATCH":return"NOT_EQ";case"NULL":ne=!0;break;default:l(44609,{Sr:se,Dr:ie})}}return ne?"NULL":"EQ"}(ee.arrayValue,te.arrayValue):__PRIVATE_isVectorValue(ee)&&__PRIVATE_isVectorValue(te)||__PRIVATE_isMapValue(ee)&&__PRIVATE_isMapValue(te)?function __PRIVATE_strictObjectValueEquals(ee,te){const ne=ee.fields||{},re=te.fields||{};if(__PRIVATE_objectSize(ne)!==__PRIVATE_objectSize(re))return"NOT_EQ";let se=!1;for(const ee in ne)if(ne.hasOwnProperty(ee)){if(void 0===re[ee])return"NOT_EQ";switch(__PRIVATE_strictValueEquals(ne[ee],re[ee])){case"NOT_EQ":case"TYPE_MISMATCH":return"NOT_EQ";case"NULL":se=!0}}return se?"NULL":"EQ"}(ee.mapValue,te.mapValue):function __PRIVATE_valueEquals(ee,te){return __PRIVATE_valueEquals$1(ee,te,{o:!1,t:!0,i:!0})}(ee,te)?"EQ":"NOT_EQ"}class __PRIVATE_CoreAdd extends __PRIVATE_BigIntOrDoubleArithmetics{vr(ee,te){return __PRIVATE_asBigInt(ee)+__PRIVATE_asBigInt(te)}br(ee,te){return{doubleValue:__PRIVATE_asDouble(ee)+__PRIVATE_asDouble(te)}}}class __PRIVATE_CoreSubtract extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){return __PRIVATE_asBigInt(ee)-__PRIVATE_asBigInt(te)}br(ee,te){return{doubleValue:__PRIVATE_asDouble(ee)-__PRIVATE_asDouble(te)}}}class __PRIVATE_CoreMultiply extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){return __PRIVATE_asBigInt(ee)*__PRIVATE_asBigInt(te)}br(ee,te){return{doubleValue:__PRIVATE_asDouble(ee)*__PRIVATE_asDouble(te)}}}class __PRIVATE_CoreDivide extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){const ne=__PRIVATE_asBigInt(te);if(ne!==BigInt(0))return __PRIVATE_asBigInt(ee)/ne}br(ee,te){const ne=__PRIVATE_asDouble(te);return 0===ne?{doubleValue:__PRIVATE_isNegativeZero(ne)?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY}:{doubleValue:__PRIVATE_asDouble(ee)/ne}}}class __PRIVATE_CoreMod extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){const ne=__PRIVATE_asBigInt(te);if(ne!==BigInt(0))return __PRIVATE_asBigInt(ee)%ne}br(ee,te){const ne=__PRIVATE_asDouble(te);if(0!==ne)return{doubleValue:__PRIVATE_asDouble(ee)%ne}}}class __PRIVATE_CoreAnd{constructor(ee){this.expr=ee}evaluate(ee,te){let ne=!1,re=!1;for(const se of this.expr.params){const ie=__PRIVATE_toEvaluable(se).evaluate(ee,te);switch(ie.type){case"BOOLEAN":if(!ie.value?.booleanValue)return __PRIVATE_EvaluateResult.newValue(Gn);break;case"NULL":re=!0;break;default:ne=!0}}return ne?__PRIVATE_EvaluateResult.dr():re?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(kn)}}class __PRIVATE_CoreNot{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,9634);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"BOOLEAN":return __PRIVATE_EvaluateResult.newValue({booleanValue:!ne.value?.booleanValue});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreOr{constructor(ee){this.expr=ee}evaluate(ee,te){let ne=!1,re=!1;for(const se of this.expr.params){const ie=__PRIVATE_toEvaluable(se).evaluate(ee,te);switch(ie.type){case"BOOLEAN":if(ie.value?.booleanValue)return __PRIVATE_EvaluateResult.newValue(kn);break;case"NULL":re=!0;break;default:ne=!0}}return ne?__PRIVATE_EvaluateResult.dr():re?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreXor{constructor(ee){this.expr=ee}evaluate(ee,te){let ne=!1,re=!1;for(const se of this.expr.params){const ie=__PRIVATE_toEvaluable(se).evaluate(ee,te);switch(ie.type){case"BOOLEAN":ne=__PRIVATE_CoreXor.xor(ne,!!ie.value?.booleanValue);break;case"NULL":re=!0;break;default:return __PRIVATE_EvaluateResult.dr()}}return re?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue({booleanValue:ne})}static xor(ee,te){return(ee||te)&&!(ee&&te)}}class __PRIVATE_CoreEqAny{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,55094);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"NULL":ne=!0;break;case"ERROR":case"UNSET":return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();for(const ee of se.value?.arrayValue?.values??[])switch(__PRIVATE_isNullValue(re.value)&&__PRIVATE_isNullValue(ee)?"EQ":__PRIVATE_strictValueEquals(re.value,ee)){case"EQ":return __PRIVATE_EvaluateResult.newValue(kn);case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":ne=!0;break;default:l(44608,{value:re.value,candidate:ee})}return ne?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreNotEqAny{constructor(ee){this.expr=ee}evaluate(ee,te){return new __PRIVATE_CoreNot(new x("not",[new x("equal_any",this.expr.params)])).evaluate(ee,te)}}class __PRIVATE_CoreIsNan{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,23322);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"INT":return __PRIVATE_EvaluateResult.newValue(Gn);case"DOUBLE":return __PRIVATE_EvaluateResult.newValue({booleanValue:isNaN(__PRIVATE_asDouble(ne.value))});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreIsNotNan{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(1===this.expr.params.length,50406),new __PRIVATE_CoreNot(new x("not",[new x("is_nan",this.expr.params)])).evaluate(ee,te)}}class __PRIVATE_CoreIsNull{constructor(ee){this.expr=ee}evaluate(ee,te){switch(__PRIVATE_hardAssert(1===this.expr.params.length,23123),__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te).type){case"NULL":return __PRIVATE_EvaluateResult.newValue(kn);case"UNSET":case"ERROR":return __PRIVATE_EvaluateResult.dr();default:return __PRIVATE_EvaluateResult.newValue(Gn)}}}class __PRIVATE_CoreIsNotNull{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(1===this.expr.params.length,23167),new __PRIVATE_CoreNot(new x("not",[new x("is_null",this.expr.params)])).evaluate(ee,te)}}class __PRIVATE_CoreIsError{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(1===this.expr.params.length,5228),"ERROR"===__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te).type?__PRIVATE_EvaluateResult.newValue(kn):__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreExists{constructor(ee){this.expr=ee}evaluate(ee,te){switch(__PRIVATE_hardAssert(1===this.expr.params.length,6877),__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te).type){case"ERROR":return __PRIVATE_EvaluateResult.dr();case"UNSET":return __PRIVATE_EvaluateResult.newValue(Gn);default:return __PRIVATE_EvaluateResult.newValue(kn)}}}class __PRIVATE_CoreCond{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(3===this.expr.params.length,11706);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"BOOLEAN":return ne.value?.booleanValue?__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te):__PRIVATE_toEvaluable(this.expr.params[2]).evaluate(ee,te);case"NULL":return __PRIVATE_toEvaluable(this.expr.params[2]).evaluate(ee,te);default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreLogicalMaximum{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.params.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));let re;for(const ee of ne)switch(ee.type){case"ERROR":case"UNSET":case"NULL":continue;default:re=void 0===re||__PRIVATE_valueCompare(ee.value,re.value)>0?ee:re}return void 0===re?__PRIVATE_EvaluateResult.pr():re}}class __PRIVATE_CoreLogicalMinimum{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.params.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));let re;for(const ee of ne)switch(ee.type){case"ERROR":case"UNSET":case"NULL":continue;default:re=void 0===re||__PRIVATE_valueCompare(ee.value,re.value)<0?ee:re}return void 0===re?__PRIVATE_EvaluateResult.pr():re}}class __PRIVATE_ComparisonBase{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,31033,`${this.expr.name}() function should have exactly 2 params`);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"ERROR":case"UNSET":return __PRIVATE_EvaluateResult.dr()}const re=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(re.type){case"ERROR":case"UNSET":return __PRIVATE_EvaluateResult.dr()}return this.Cr(ne,re)}}class __PRIVATE_CoreEq extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){if(ee.yr()&&te.yr())return __PRIVATE_EvaluateResult.newValue(kn);if(ee.yr()||te.yr())return __PRIVATE_EvaluateResult.newValue(Gn);if(__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value))return __PRIVATE_EvaluateResult.newValue(Gn);if(__PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value))return __PRIVATE_EvaluateResult.newValue(Gn);switch(__PRIVATE_strictValueEquals(ee.value,te.value)){case"EQ":return __PRIVATE_EvaluateResult.newValue(kn);case"NOT_EQ":return __PRIVATE_EvaluateResult.newValue(Gn);case"NULL":return __PRIVATE_EvaluateResult.pr();default:l(44615,{left:ee,right:te})}}}class __PRIVATE_CoreNeq extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){switch(__PRIVATE_strictValueEquals(ee.value,te.value)){case"EQ":return __PRIVATE_EvaluateResult.newValue(Gn);case"NOT_EQ":case"TYPE_MISMATCH":return __PRIVATE_EvaluateResult.newValue(kn);case"NULL":return __PRIVATE_EvaluateResult.pr();default:l(44614,{left:ee,right:te})}}}class __PRIVATE_CoreLt extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)<0})}}class __PRIVATE_CoreLte extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):"EQ"===__PRIVATE_strictValueEquals(ee.value,te.value)?__PRIVATE_EvaluateResult.newValue(kn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)<0})}}class __PRIVATE_CoreGt extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)>0})}}class __PRIVATE_CoreGte extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):"EQ"===__PRIVATE_strictValueEquals(ee.value,te.value)?__PRIVATE_EvaluateResult.newValue(kn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)>0})}}class __PRIVATE_CoreArrayConcat{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreArrayReverse{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,216);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"ARRAY":{const ee=ne.value.arrayValue?.values??[];return __PRIVATE_EvaluateResult.newValue({arrayValue:{values:[...ee].reverse()}})}default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreArrayContains{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(2===this.expr.params.length,52884),new __PRIVATE_CoreEqAny(new x("eq_any",[this.expr.params[1],this.expr.params[0]])).evaluate(ee,te)}}class __PRIVATE_CoreArrayContainsAll{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,1392);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const ie=se.value?.arrayValue?.values??[],ae=re.value?.arrayValue?.values??[];for(const ee of ie){let te=!1;ne=!1;for(const re of ae){switch(__PRIVATE_isNullValue(ee)&&__PRIVATE_isNullValue(re)?"EQ":__PRIVATE_strictValueEquals(ee,re)){case"EQ":te=!0;break;case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":ne=!0;break;default:l(44613,{value:re,search:ee})}if(te)break}if(!te)return __PRIVATE_EvaluateResult.newValue(Gn)}return __PRIVATE_EvaluateResult.newValue(kn)}}class __PRIVATE_CoreArrayContainsAny{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,2680);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const ie=se.value?.arrayValue?.values??[],ae=re.value?.arrayValue?.values??[];for(const ee of ae)for(const te of ie)switch(__PRIVATE_isNullValue(ee)&&__PRIVATE_isNullValue(te)?"EQ":__PRIVATE_strictValueEquals(ee,te)){case"EQ":return __PRIVATE_EvaluateResult.newValue(kn);case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":ne=!0;break;default:l(60403,{value:ee,search:te})}return ne?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreArrayLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,38605);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"ARRAY":return __PRIVATE_EvaluateResult.newValue({integerValue:`${ne.value?.arrayValue?.values?.length??0}`});default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreArrayElement{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreReverse{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,1508);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"BYTES":{const ee=ne.value?.bytesValue;if("string"==typeof ee){const te=ByteString.fromBase64String(ee).toUint8Array();return te.reverse(),__PRIVATE_EvaluateResult.newValue({bytesValue:ByteString.fromUint8Array(te).toBase64()})}return __PRIVATE_EvaluateResult.newValue({bytesValue:new Uint8Array(ee).reverse()})}case"STRING":{const ee=ne.value?.stringValue,te=new Intl.__PRIVATE_Segmenter(void 0,{granularity:"grapheme"}).segment(ee),re=Array.from(te,(ee=>ee.segment)).reverse();return __PRIVATE_EvaluateResult.newValue({stringValue:re.join("")})}default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreReplaceFirst{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreReplaceAll{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreCharLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,19400);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"STRING":{const ee=function __PRIVATE_getUnicodePointCount(ee){let te=0;for(let ne=0;ne<ee.length;ne++){const re=ee.codePointAt(ne);if(void 0===re)return;if(re<=65535)if(re>=55296&&re<=57343)if(re<=56319){const re=ee.codePointAt(ne+1);void 0!==re&&re>=56320&&re<=57343?(te+=1,ne++):te+=1}else te+=1;else te+=1;else{if(!(re<=1114111))return;te+=1,ne++}}return te}(ne.value.stringValue);return void 0===ee?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({integerValue:ee})}default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreByteLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,8486);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"BYTES":{const ee=ne.value?.bytesValue;return"string"==typeof ee?__PRIVATE_EvaluateResult.newValue({integerValue:ByteString.fromBase64String(ee).toUint8Array().length}):__PRIVATE_EvaluateResult.newValue({integerValue:new Uint8Array(ee).length})}case"STRING":{const ee=function __PRIVATE_getUtf8ByteLength(ee){let te=0;for(let ne=0;ne<ee.length;ne++){const re=ee.codePointAt(ne);if(void 0===re)return;if(re>=55296&&re<=57343){if(!(re<=56319))return;{const re=ee.codePointAt(ne+1);if(void 0===re||!(re>=56320&&re<=57343))return;te+=4,ne++}}else if(re<=127)te+=1;else if(re<=2047)te+=2;else if(re<=65535)te+=3;else{if(!(re<=1114111))return;te+=4,ne++}}return te}(ne.value?.stringValue);return void 0===ee?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({integerValue:ee})}case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_StringSearchFunctionBase{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,39773,`${this.expr.name}() function should have exactly two parameters`);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"STRING":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"STRING":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}return ne?__PRIVATE_EvaluateResult.pr():this.Fr(re.value?.stringValue,se.value?.stringValue)}}class __PRIVATE_CoreLike extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){try{const ne=function __PRIVATE_likeToRegex(ee){let te="";for(let ne=0;ne<ee.length;ne++){const re=ee.charAt(ne);switch(re){case"_":te+=".";break;case"%":te+=".*";break;case"\\":case".":case"*":case"?":case"+":case"^":case"$":case"|":case"(":case")":case"[":case"]":case"{":case"}":te+="\\"+re;break;default:te+=re}}return"^"+te+"$"}(te),re=En.compile(ne);return __PRIVATE_EvaluateResult.newValue({booleanValue:re.matches(ee)})}catch(ee){return __PRIVATE_logWarn(`Invalid LIKE pattern converted to regex: ${te}, returning error. Error: ${ee}`),__PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreRegexContains extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){try{const ne=En.compile(te);return __PRIVATE_EvaluateResult.newValue({booleanValue:ne.test(ee)})}catch(ee){return __PRIVATE_logWarn(`Invalid regex pattern found in regex_contains: ${te}, returning error`),__PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreRegexMatch extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){try{return __PRIVATE_EvaluateResult.newValue({booleanValue:En.compile(te).matches(ee)})}catch(ee){return __PRIVATE_logWarn(`Invalid regex pattern found in regex_match: ${te}, returning error`),__PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreStrContains extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){return __PRIVATE_EvaluateResult.newValue({booleanValue:ee.includes(te)})}}class __PRIVATE_CoreStartsWith extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){return __PRIVATE_EvaluateResult.newValue({booleanValue:ee.startsWith(te)})}}class __PRIVATE_CoreEndsWith extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){return __PRIVATE_EvaluateResult.newValue({booleanValue:ee.endsWith(te)})}}class __PRIVATE_CoreToLower{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,29079);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"STRING":return __PRIVATE_EvaluateResult.newValue({stringValue:ne.value?.stringValue?.toLowerCase()});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreToUpper{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,60487);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"STRING":return __PRIVATE_EvaluateResult.newValue({stringValue:ne.value?.stringValue?.toUpperCase()});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreTrim{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,28544);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"STRING":return __PRIVATE_EvaluateResult.newValue({stringValue:ne.value?.stringValue?.trim()});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreStrConcat{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.params.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));let re="",se=!1;for(const ee of ne)switch(ee.type){case"STRING":re+=ee.value.stringValue;break;case"NULL":se=!0;break;default:return __PRIVATE_EvaluateResult.dr()}return se?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue({stringValue:re})}}class __PRIVATE_CoreMapGet{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,4483);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"UNSET":return __PRIVATE_EvaluateResult.mr();case"MAP":break;default:return __PRIVATE_EvaluateResult.dr()}const re=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);if("STRING"!==re.type)return __PRIVATE_EvaluateResult.dr();const se=ne.value?.mapValue?.fields?.[re.value?.stringValue];return void 0===se?__PRIVATE_EvaluateResult.mr():__PRIVATE_EvaluateResult.newValue(se)}}class __PRIVATE_DistanceBase{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,25231,`${this.expr.name}() function should have exactly 2 params`);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"VECTOR":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"VECTOR":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const ie=__PRIVATE_getVectorValue(re.value),ae=__PRIVATE_getVectorValue(se.value);if(void 0===ie||void 0===ae||ie.values?.length!==ae.values?.length)return __PRIVATE_EvaluateResult.dr();const oe=this.Or(ie,ae);return void 0===oe||isNaN(oe)?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({doubleValue:oe})}}class __PRIVATE_CoreCosineDistance extends __PRIVATE_DistanceBase{Or(ee,te){const ne=ee?.values??[],re=te?.values??[];if(0===ne.length)return;let se=0,ie=0,ae=0;for(let ee=0;ee<ne.length;ee++){if(!R(ne[ee])||!R(re[ee]))return;const te=__PRIVATE_asDouble(ne[ee]),oe=__PRIVATE_asDouble(re[ee]);se+=te*oe,ie+=te*te,ae+=oe*oe}const oe=Math.sqrt(ie)*Math.sqrt(ae);return 0!==oe?1-Math.max(-1,Math.min(1,se/oe)):void 0}}class __PRIVATE_CoreDotProduct extends __PRIVATE_DistanceBase{Or(ee,te){const ne=ee?.values??[],re=te?.values??[];if(0===ne.length)return 0;let se=0;for(let ee=0;ee<ne.length;ee++){if(!R(ne[ee])||!R(re[ee]))return;se+=__PRIVATE_asDouble(ne[ee])*__PRIVATE_asDouble(re[ee])}return se}}class __PRIVATE_CoreEuclideanDistance extends __PRIVATE_DistanceBase{Or(ee,te){const ne=ee?.values??[],re=te?.values??[];if(0===ne.length)return 0;let se=0;for(let ee=0;ee<ne.length;ee++){if(!R(ne[ee])||!R(re[ee]))return;const te=__PRIVATE_asDouble(ne[ee]),ie=__PRIVATE_asDouble(re[ee]);se+=Math.pow(te-ie,2)}return Math.sqrt(se)}}class __PRIVATE_CoreVectorLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,39044);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"VECTOR":{const ee=__PRIVATE_getVectorValue(ne.value);return __PRIVATE_EvaluateResult.newValue({integerValue:ee?.values?.length??0})}case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}const Rr=BigInt(-62135596800),Vr=BigInt(253402300799),Dr=BigInt(1e3),yr=BigInt(1e6),wr=Rr*Dr,br=Vr*Dr+BigInt(999),Sr=Rr*yr,vr=Vr*yr+BigInt(999999);function __PRIVATE_isMicrosInBounds(ee){return ee>=Sr&&ee<=vr}function __PRIVATE_isSecondsInBounds(ee){return ee>=Rr&&ee<=Vr}function __PRIVATE_isTimestampInBounds(ee,te){const ne=BigInt(ee);return!(ne<Rr||ne>Vr||te<0||te>=1e9||ne===Rr&&0!==te||ne===Vr&&te>999999999)}function __PRIVATE_adjustTimestamp(ee,te){return te<0?{seconds:ee-1,nanos:te+1e9}:{seconds:ee,nanos:te}}function __PRIVATE_timestampToMicros(ee){return BigInt(ee.seconds)*yr+BigInt(Math.trunc(ee.nanoseconds/1e3))}class __PRIVATE_UnixToTimestamp{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,49262,`${this.expr.name}() function should have exactly one parameter`);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"INT":return this.toTimestamp(BigInt(ne.value.integerValue));case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreUnixMicrosToTimestamp extends __PRIVATE_UnixToTimestamp{toTimestamp(ee){if(!__PRIVATE_isMicrosInBounds(ee))return __PRIVATE_EvaluateResult.dr();let te=Number(ee/yr),ne=Number(ee%yr*BigInt(1e3));const re=__PRIVATE_adjustTimestamp(te,ne);return te=re.seconds,ne=re.nanos,__PRIVATE_isTimestampInBounds(te,ne)?__PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:te,nanos:ne}}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreUnixMillisToTimestamp extends __PRIVATE_UnixToTimestamp{toTimestamp(ee){if(!function __PRIVATE_isMillisInBounds(ee){return ee>=wr&&ee<=br}(ee))return __PRIVATE_EvaluateResult.dr();let te=Number(ee/Dr),ne=Number(ee%Dr*BigInt(1e6));const re=__PRIVATE_adjustTimestamp(te,ne);return te=re.seconds,ne=re.nanos,__PRIVATE_isTimestampInBounds(te,ne)?__PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:te,nanos:ne}}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreUnixSecondsToTimestamp extends __PRIVATE_UnixToTimestamp{toTimestamp(ee){if(!__PRIVATE_isSecondsInBounds(ee))return __PRIVATE_EvaluateResult.dr();const te=Number(ee);return __PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:te,nanos:0}})}}class __PRIVATE_TimestampToUnix{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,1265,`${this.expr.name}() function should have exactly one parameter`);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"TIMESTAMP":break;case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}const re=fromTimestamp(ne.value.timestampValue);return __PRIVATE_isTimestampInBounds(re.seconds,re.nanoseconds)?this.Mr(re):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreTimestampToUnixMicros extends __PRIVATE_TimestampToUnix{Mr(ee){const te=__PRIVATE_timestampToMicros(ee);return __PRIVATE_isMicrosInBounds(te)?__PRIVATE_EvaluateResult.newValue({integerValue:`${te.toString()}`}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreTimestampToUnixMillis extends __PRIVATE_TimestampToUnix{Mr(ee){const te=__PRIVATE_timestampToMicros(ee),ne=te/BigInt(1e3),re=te%BigInt(1e3);return ne>BigInt(0)||re===BigInt(0)?__PRIVATE_EvaluateResult.newValue({integerValue:ne.toString()}):__PRIVATE_EvaluateResult.newValue({integerValue:(ne-BigInt(1)).toString()})}}class __PRIVATE_CoreTimestampToUnixSeconds extends __PRIVATE_TimestampToUnix{Mr(ee){const te=BigInt(ee.seconds);return __PRIVATE_isSecondsInBounds(te)?__PRIVATE_EvaluateResult.newValue({integerValue:te.toString()}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_TimestampArithmetic{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(3===this.expr.params.length,2775,`${this.expr.name}() function should have exactly 3 parameters`);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"TIMESTAMP":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);let ie;switch(se.type){case"STRING":if(ie=function __PRIVATE_asTimeUnit(ee){switch(ee){case"microsecond":return"microsecond";case"millisecond":return"millisecond";case"second":return"second";case"minute":return"minute";case"hour":return"hour";case"day":return"day";default:return}}(se.value.stringValue),void 0===ie)return __PRIVATE_EvaluateResult.dr();break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const ae=__PRIVATE_toEvaluable(this.expr.params[2]).evaluate(ee,te);switch(ae.type){case"INT":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const oe=BigInt(ae.value.integerValue);let ue;try{switch(ie){case"microsecond":ue=oe;break;case"millisecond":ue=oe*BigInt(1e3);break;case"second":ue=oe*BigInt(1e6);break;case"minute":ue=oe*BigInt(6e7);break;case"hour":ue=oe*BigInt(36e8);break;case"day":ue=oe*BigInt(864e8);break;default:return __PRIVATE_EvaluateResult.dr()}if("microsecond"!==ie&&oe!==BigInt(0)&&ue/oe!==BigInt(this.Nr(ie)))return __PRIVATE_EvaluateResult.dr()}catch(ee){return __PRIVATE_logWarn(`Error during timestamp arithmetic: ${ee}`),__PRIVATE_EvaluateResult.dr()}const Be=fromTimestamp(re.value.timestampValue);if(!__PRIVATE_isTimestampInBounds(Be.seconds,Be.nanoseconds))return __PRIVATE_EvaluateResult.dr();const le=__PRIVATE_timestampToMicros(Be),ce=this.Lr(le,ue);if(!__PRIVATE_isMicrosInBounds(ce))return __PRIVATE_EvaluateResult.dr();const _e=Number(ce/yr),he=ce%yr,de=Number((he<0?he+yr:he)*BigInt(1e3)),Ee=he<0?_e-1:_e;return __PRIVATE_isTimestampInBounds(Ee,de)?__PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:Ee,nanos:de}}):__PRIVATE_EvaluateResult.dr()}Nr(ee){switch(ee){case"millisecond":return 1e3;case"second":return 1e6;case"minute":return 6e7;case"hour":return 36e8;case"day":return 864e8;default:return 1}}}class __PRIVATE_CoreTimestampAdd extends __PRIVATE_TimestampArithmetic{Lr(ee,te){return ee+te}}class __PRIVATE_CoreTimestampSub extends __PRIVATE_TimestampArithmetic{Lr(ee,te){return ee-te}}class CorePipeline{constructor(ee,te,ne){this.serializer=ee,this.stages=te,this.listenOptions=ne,this.isCorePipeline=!0}getPipelineCollection(){return getPipelineCollection(this)}getPipelineCollectionGroup(){return getPipelineCollectionGroup(this)}getPipelineCollectionId(){return getPipelineCollectionId(this)}getPipelineDocuments(){return getPipelineDocuments(this)}getPipelineFlavor(){return function getPipelineFlavor(ee){let te="exact";return ee.stages.forEach(((ne,re)=>{ne._name!==M.name&&ne._name!==V.name||(te="keyless"),ne._name===y.name&&"exact"===te&&(te="augmented"),ne._name===w.name&&re<ee.stages.length-1&&"exact"===te&&(te="augmented")})),te}(this)}getPipelineSourceType(){return getPipelineSourceType(this)}}function getPipelineSourceType(ee){const te=ee.stages[0];return te instanceof H||te instanceof J||te instanceof Q||te instanceof Y?te._name:"unknown"}function getPipelineCollection(ee){if("collection"===getPipelineSourceType(ee))return ee.stages[0].Er}function getPipelineCollectionGroup(ee){if("collection_group"===getPipelineSourceType(ee))return ee.stages[0].collectionId}function getPipelineCollectionId(ee){switch(getPipelineSourceType(ee)){case"collection":return ResourcePath.fromString(getPipelineCollection(ee)).lastSegment();case"collection_group":return getPipelineCollectionGroup(ee);default:return}}function getPipelineDocuments(ee){if("documents"===getPipelineSourceType(ee))return ee.stages[0].hr}function __PRIVATE_toPipelineBooleanExpr(ee){if(ee instanceof FieldFilter){const te=e(ee.field.toString()),ne=ee.value;switch(ee.op){case"<":return and$1(te.exists(),te.lessThan(Constant._fromProto(ne)));case"<=":return and$1(te.exists(),te.lessThanOrEqual(Constant._fromProto(ne)));case">":return and$1(te.exists(),te.greaterThan(Constant._fromProto(ne)));case">=":return and$1(te.exists(),te.greaterThanOrEqual(Constant._fromProto(ne)));case"==":return and$1(te.exists(),te.equal(Constant._fromProto(ne)));case"!=":return te.notEqual(Constant._fromProto(ne));case"array-contains":return and$1(te.exists(),te.arrayContains(Constant._fromProto(ne)));case"in":{const ee=ne?.arrayValue?.values?.map((ee=>Constant._fromProto(ee)));return ee?1===ee.length?and$1(te.exists(),te.equal(ee[0])):and$1(te.exists(),te.equalAny(ee)):and$1(te.exists(),te.equalAny([]))}case"array-contains-any":{const ee=ne?.arrayValue?.values?.map((ee=>Constant._fromProto(ee)));return and$1(te.exists(),te.arrayContainsAny(ee))}case"not-in":{const ee=ne?.arrayValue?.values?.map((ee=>Constant._fromProto(ee)));return ee?1===ee.length?te.notEqual(ee[0]):te.notEqualAny(ee):te.notEqualAny([])}default:l(36935)}}else if(ee instanceof CompositeFilter)switch(ee.op){case"and":{const te=ee.getFilters().map((ee=>__PRIVATE_toPipelineBooleanExpr(ee)));return and$1(te[0],te[1],...te.slice(2))}case"or":{const te=ee.getFilters().map((ee=>__PRIVATE_toPipelineBooleanExpr(ee)));return or$1(te[0],te[1],...te.slice(2))}default:l(35306)}throw new Error(`Failed to convert filter to pipeline conditions: ${ee}`)}function __PRIVATE_whereConditionsFromCursor(ee,te,ne){const re="before"===ne?lessThan:greaterThan,se=ee.position.map((ee=>Constant._fromProto(ee))),ie=se.length;let ae=te[ie-1].expr,oe=se[ie-1],ue=re(ae,oe);ee.inclusive&&(ue=or$1(ue,ae.equal(oe)));for(let ee=ie-2;ee>=0;ee--)ae=te[ee].expr,oe=se[ee],ue=or$1(re(ae,oe),and$1(ae.equal(oe),ue));return ue}function __PRIVATE_canonifyExpr(ee){if((ee=__PRIVATE_unwrapExpression(ee))instanceof o)return`fld(${ee.fieldName})`;if(ee instanceof Constant)return`cst(${function __PRIVATE_canonifyConstantValue(ee){return null===ee?"null":"number"==typeof ee?ee.toString():"string"==typeof ee?`"${ee}"`:ee instanceof X?`ref(${ee.path})`:ee instanceof n?`vec(${JSON.stringify(ee)})`:JSON.stringify(ee)}(ee.value)})`;if(ee instanceof x)return`fn(${ee.name},[${ee.params.map(__PRIVATE_canonifyExpr).join(",")}])`;if("ListOfExpressions"===ee.expressionType)return`list([${ee.ur.map(__PRIVATE_canonifyExpr).join(",")}])`;throw new Error(`Unrecognized expr ${JSON.stringify(ee,null,2)}`)}function __PRIVATE_canonifyExprMap(ee){return`${Array.from(ee.entries()).sort().map((([ee,te])=>`${ee}=${__PRIVATE_canonifyExpr(te)}`)).join(",")}`}function __PRIVATE_canonifyPipeline(ee){return ee.stages.map((ee=>function __PRIVATE_canonifyStage(ee){if(ee instanceof w)return`${ee._name}(${__PRIVATE_canonifyExprMap(ee.fields)})`;if(ee instanceof V){let te=`${ee._name}(${__PRIVATE_canonifyExprMap(ee.accumulators)})`;return ee.groups.size>0&&(te+=`grouping(${__PRIVATE_canonifyExprMap(ee.groups)})`),te}if(ee instanceof M)return`${ee._name}(${__PRIVATE_canonifyExprMap(ee.groups)})`;if(ee instanceof H)return`${ee._name}(${ee.Er})`;if(ee instanceof J)return`${ee._name}(${ee.collectionId})`;if(ee instanceof Q)return`${ee._name}()`;if(ee instanceof Y)return`${ee._name}(${ee.hr.sort()})`;if(ee instanceof A)return`${ee._name}(${__PRIVATE_canonifyExpr(ee.condition)})`;if(ee instanceof v)return`${ee._name}(${ee.limit})`;if(ee instanceof L)return`${ee._name}(${function __PRIVATE_canonifySortOrderings(ee){return ee.map((ee=>`${__PRIVATE_canonifyExpr(ee.expr)}${ee.direction}`)).join(",")}(ee.orderings)})`;throw new Error(`Unrecognized stage ${ee._name}`)}(ee))).join("|")}function __PRIVATE_pipelineEq(ee,te){return __PRIVATE_canonifyPipeline(ee)===__PRIVATE_canonifyPipeline(te)}function __PRIVATE_isPipeline(ee){return ee instanceof CorePipeline}function __PRIVATE_stringifyQueryOrPipeline(ee){return __PRIVATE_isPipeline(ee)?__PRIVATE_canonifyPipeline(ee):__PRIVATE_stringifyQuery(ee)}function __PRIVATE_canonifyQueryOrPipeline(ee){return __PRIVATE_isPipeline(ee)?__PRIVATE_canonifyPipeline(ee):function __PRIVATE_canonifyQuery(ee){return`${__PRIVATE_canonifyTarget(__PRIVATE_queryToTarget(ee))}|lt:${ee.limitType}`}(ee)}function __PRIVATE_queryOrPipelineEqual(ee,te){return ee instanceof CorePipeline&&te instanceof CorePipeline?__PRIVATE_pipelineEq(ee,te):!(ee instanceof CorePipeline&&!(te instanceof CorePipeline)||!(ee instanceof CorePipeline)&&te instanceof CorePipeline)&&__PRIVATE_queryEquals(ee,te)}function __PRIVATE_canonifyTargetOrPipeline(ee){return __PRIVATE_targetIsPipelineTarget(ee)?__PRIVATE_canonifyPipeline(ee):__PRIVATE_canonifyTarget(ee)}function __PRIVATE_targetOrPipelineEqual(ee,te){return ee instanceof CorePipeline&&te instanceof CorePipeline?__PRIVATE_pipelineEq(ee,te):!(ee instanceof CorePipeline&&!(te instanceof CorePipeline)||!(ee instanceof CorePipeline)&&te instanceof CorePipeline)&&__PRIVATE_targetEquals(ee,te)}function __PRIVATE_toCorePipeline(ee,te){const ne=function __PRIVATE_rewriteStages(ee){let te=!1;const ne=[];for(const re of ee)if(re instanceof L)if(te=!0,re.orderings.some((ee=>ee.expr instanceof o&&ee.expr.fieldName===Tn)))ne.push(re);else{const ee=re.orderings.map((ee=>ee));ee.push(e(Tn).ascending()),ne.push(new L(ee,{}))}else re instanceof v?(te||(ne.push(new L([e(Tn).ascending()],{})),te=!0),ne.push(re)):ne.push(re);return te||ne.push(new L([e(Tn).ascending()],{})),ne}(ee.stages);if(ee.userDataReader){const te=ee.userDataReader.createContext(3,"toCorePipeline");ne.forEach((ee=>ee._readUserData(te)))}return new CorePipeline(ee.userDataReader.serializer,ne,te)}class MutationBatch{constructor(ee,te,ne,re){this.batchId=ee,this.localWriteTime=te,this.baseMutations=ne,this.mutations=re}applyToRemoteDocument(ee,te){const ne=te.mutationResults;for(let te=0;te<this.mutations.length;te++){const re=this.mutations[te];re.key.isEqual(ee.key)&&__PRIVATE_mutationApplyToRemoteDocument(re,ee,ne[te])}}applyToLocalView(ee,te){for(const ne of this.baseMutations)ne.key.isEqual(ee.key)&&(te=__PRIVATE_mutationApplyToLocalView(ne,ee,te,this.localWriteTime));for(const ne of this.mutations)ne.key.isEqual(ee.key)&&(te=__PRIVATE_mutationApplyToLocalView(ne,ee,te,this.localWriteTime));return te}applyToLocalDocumentSet(ee,te){const ne=__PRIVATE_newMutationMap();return this.mutations.forEach((re=>{const se=ee.get(re.key),ie=se.overlayedDocument;let ae=this.applyToLocalView(ie,se.mutatedFields);ae=te.has(re.key)?null:ae;const oe=__PRIVATE_calculateOverlayMutation(ie,ae);null!==oe&&ne.set(re.key,oe),ie.isValidDocument()||ie.convertToNoDocument(SnapshotVersion.min())})),ne}keys(){return this.mutations.reduce(((ee,te)=>ee.add(te.key)),__PRIVATE_documentKeySet())}isEqual(ee){return this.batchId===ee.batchId&&__PRIVATE_arrayEquals(this.mutations,ee.mutations,((ee,te)=>__PRIVATE_mutationEquals(ee,te)))&&__PRIVATE_arrayEquals(this.baseMutations,ee.baseMutations,((ee,te)=>__PRIVATE_mutationEquals(ee,te)))}}class MutationBatchResult{constructor(ee,te,ne,re){this.batch=ee,this.commitVersion=te,this.mutationResults=ne,this.docVersions=re}static from(ee,te,ne){__PRIVATE_hardAssert(ee.mutations.length===ne.length,58842,{Br:ee.mutations.length,Ur:ne.length});let re=function __PRIVATE_documentVersionMap(){return Jn}();const se=ee.mutations;for(let ee=0;ee<se.length;ee++)re=re.insert(se[ee].key,ne[ee].version);return new MutationBatchResult(ee,te,ne,re)}}const xr="";function __PRIVATE_encodeResourcePath(ee){let te="";for(let ne=0;ne<ee.length;ne++)te.length>0&&(te=__PRIVATE_encodeSeparator(te)),te=__PRIVATE_encodeSegment(ee.get(ne),te);return __PRIVATE_encodeSeparator(te)}function __PRIVATE_encodeSegment(ee,te){let ne=te;const re=ee.length;for(let te=0;te<re;te++){const re=ee.charAt(te);switch(re){case"\0":ne+="";break;case xr:ne+="";break;default:ne+=re}}return ne}function __PRIVATE_encodeSeparator(ee){return ee+xr+""}function __PRIVATE_decodeResourcePath(ee){const te=ee.length;if(__PRIVATE_hardAssert(te>=2,64408,{path:ee}),2===te)return __PRIVATE_hardAssert(ee.charAt(0)===xr&&""===ee.charAt(1),56145,{path:ee}),ResourcePath.emptyPath();const __PRIVATE_lastReasonableEscapeIndex=te-2,ne=[];let re="";for(let se=0;se<te;){const te=ee.indexOf(xr,se);switch((te<0||te>__PRIVATE_lastReasonableEscapeIndex)&&l(50515,{path:ee}),ee.charAt(te+1)){case"":const ie=ee.substring(se,te);let ae;0===re.length?ae=ie:(re+=ie,ae=re,re=""),ne.push(ae);break;case"":re+=ee.substring(se,te),re+="\0";break;case"":re+=ee.substring(se,te+1);break;default:l(61167,{path:ee})}se=te+2}return new ResourcePath(ne)}const Fr="remoteDocuments",Or="owner",Nr="owner",Lr="mutationQueues",Mr="mutations",kr="batchId",Gr="userMutationsIndex",Ur=["userId","batchId"];function __PRIVATE_newDbDocumentMutationPrefixForPath(ee,te){return[ee,__PRIVATE_encodeResourcePath(te)]}function __PRIVATE_newDbDocumentMutationKey(ee,te,ne){return[ee,__PRIVATE_encodeResourcePath(te),ne]}const Hr={},qr="documentMutations",Kr="remoteDocumentsV14",Qr=["prefixPath","collectionGroup","readTime","documentId"],jr="documentKeyIndex",Jr=["prefixPath","collectionGroup","documentId"],zr="collectionGroupIndex",Wr=["collectionGroup","readTime","prefixPath","documentId"],$r="remoteDocumentGlobal",Yr="remoteDocumentGlobalKey",Xr="targets",Zr="queryTargetsIndex",es=["canonicalId","targetId"],ts="targetDocuments",ns=["targetId","path"],rs="documentTargetsIndex",ss=["path","targetId"],is="targetGlobalKey",as="targetGlobal",os="collectionParents",us=["collectionId","parent"],Bs="clientMetadata",ls="bundles",cs="namedQueries",_s="indexConfiguration",hs="collectionGroupIndex",ds="indexState",Es=["indexId","uid"],Cs="sequenceNumberIndex",ps=["uid","sequenceNumber"],ms="indexEntries",fs=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],gs="documentKeyIndex",Ts=["indexId","uid","orderedDocumentKey"],Is="documentOverlays",As=["userId","collectionPath","documentId"],Ps="collectionPathOverlayIndex",Rs=["userId","collectionPath","largestBatchId"],Vs="collectionGroupOverlayIndex",Ds=["userId","collectionGroup","largestBatchId"],ys="globals",ws=[Lr,Mr,qr,Fr,Xr,Or,as,ts,Bs,$r,os,ls,cs],bs=[...ws,Is],Ss=[Lr,Mr,qr,Kr,Xr,Or,as,ts,Bs,$r,os,ls,cs,Is],vs=Ss,xs=[...vs,_s,ds,ms],Fs=xs,Os=[...xs,ys],Ns=Os;function removeMutationBatch(ee,te,ne){const re=ee.store(Mr),se=ee.store(qr),ie=[],ae=IDBKeyRange.only(ne.batchId);let oe=0;const ue=re.jn({range:ae},((ee,te,ne)=>(oe++,ne.delete())));ie.push(ue.next((()=>{__PRIVATE_hardAssert(1===oe,47070,{batchId:ne.batchId})})));const Be=[];for(const ee of ne.mutations){const re=__PRIVATE_newDbDocumentMutationKey(te,ee.key.path,ne.batchId);ie.push(se.delete(re)),Be.push(ee.key)}return PersistencePromise.waitFor(ie).next((()=>Be))}function __PRIVATE_dbDocumentSize(ee){if(!ee)return 0;let te;if(ee.document)te=ee.document;else if(ee.unknownDocument)te=ee.unknownDocument;else{if(!ee.noDocument)throw l(14731);te=ee.noDocument}return JSON.stringify(te).length}class __PRIVATE_IndexedDbTransaction extends PersistenceTransaction{constructor(ee,te){super(),this.kr=ee,this.currentSequenceNumber=te}}function __PRIVATE_getStore(ee,te){const ne=__PRIVATE_debugCast(ee);return __PRIVATE_SimpleDb.xn(ne.kr,te)}class Overlay{constructor(ee,te){this.largestBatchId=ee,this.mutation=te}getKey(){return this.mutation.key}isEqual(ee){return null!==ee&&this.mutation===ee.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}class TargetData{constructor(ee,te,ne,re,se=SnapshotVersion.min(),ie=SnapshotVersion.min(),ae=ByteString.EMPTY_BYTE_STRING,oe=null){this.target=ee,this.targetId=te,this.purpose=ne,this.sequenceNumber=re,this.snapshotVersion=se,this.lastLimboFreeSnapshotVersion=ie,this.resumeToken=ae,this.expectedCount=oe}withSequenceNumber(ee){return new TargetData(this.target,this.targetId,this.purpose,ee,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(ee,te){return new TargetData(this.target,this.targetId,this.purpose,this.sequenceNumber,te,this.lastLimboFreeSnapshotVersion,ee,null)}withExpectedCount(ee){return new TargetData(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,ee)}withLastLimboFreeSnapshotVersion(ee){return new TargetData(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,ee,this.resumeToken,this.expectedCount)}}class __PRIVATE_LocalSerializer{constructor(ee){this.qr=ee}}function __PRIVATE_toDbRemoteDocument(ee,te){const ne=te.key,re={prefixPath:ne.getCollectionPath().popLast().toArray(),collectionGroup:ne.collectionGroup,documentId:ne.path.lastSegment(),readTime:__PRIVATE_toDbTimestampKey(te.readTime),hasCommittedMutations:te.hasCommittedMutations};if(te.isFoundDocument())re.document=function __PRIVATE_toDocument(ee,te){return{name:__PRIVATE_toName(ee,te.key),fields:te.data.value.mapValue.fields,updateTime:toTimestamp(ee,te.version.toTimestamp()),createTime:toTimestamp(ee,te.createTime.toTimestamp())}}(ee.qr,te);else if(te.isNoDocument())re.noDocument={path:ne.path.toArray(),readTime:__PRIVATE_toDbTimestamp(te.version)};else{if(!te.isUnknownDocument())return l(57904,{document:te});re.unknownDocument={path:ne.path.toArray(),version:__PRIVATE_toDbTimestamp(te.version)}}return re}function __PRIVATE_toDbTimestampKey(ee){const te=ee.toTimestamp();return[te.seconds,te.nanoseconds]}function __PRIVATE_toDbTimestamp(ee){const te=ee.toTimestamp();return{seconds:te.seconds,nanoseconds:te.nanoseconds}}function __PRIVATE_fromDbTimestamp(ee){const te=new Timestamp(ee.seconds,ee.nanoseconds);return SnapshotVersion.fromTimestamp(te)}function __PRIVATE_fromDbMutationBatch(ee,te){const ne=(te.baseMutations||[]).map((te=>__PRIVATE_fromMutation(ee.qr,te)));for(let ee=0;ee<te.mutations.length-1;++ee){const ne=te.mutations[ee];if(ee+1<te.mutations.length&&void 0!==te.mutations[ee+1].transform){const re=te.mutations[ee+1];ne.updateTransforms=re.transform.fieldTransforms,te.mutations.splice(ee+1,1),++ee}}const re=te.mutations.map((te=>__PRIVATE_fromMutation(ee.qr,te))),se=Timestamp.fromMillis(te.localWriteTimeMs);return new MutationBatch(te.batchId,se,ne,re)}function __PRIVATE_fromDbTarget(ee,te){const ne=__PRIVATE_fromDbTimestamp(te.readTime),re=void 0!==te.lastLimboFreeSnapshotVersion?__PRIVATE_fromDbTimestamp(te.lastLimboFreeSnapshotVersion):SnapshotVersion.min();let se;return se=function __PRIVATE_isPipelineQueryTarget(ee){return void 0!==ee.structuredPipeline}(te.query)?function __PRIVATE_fromPipelineTarget(ee,te){const ne=ee.structuredPipeline;__PRIVATE_hardAssert((ne?.pipeline?.stages??[]).length>0,1845);const re=ne?.pipeline?.stages.map(__PRIVATE_stageFromProto);return new CorePipeline(te,re)}(te.query,ee.qr):function __PRIVATE_isDocumentQuery(ee){return void 0!==ee.documents}(te.query)?function __PRIVATE_fromDocumentsTarget(ee){const te=ee.documents.length;return __PRIVATE_hardAssert(1===te,1966,{count:te}),__PRIVATE_queryToTarget(__PRIVATE_newQueryForPath(__PRIVATE_fromQueryPath(ee.documents[0])))}(te.query):function __PRIVATE_fromQueryTarget(ee){return __PRIVATE_queryToTarget(__PRIVATE_convertQueryTargetToQuery(ee))}(te.query),new TargetData(se,te.targetId,"TargetPurposeListen",te.lastListenSequenceNumber,ne,re,ByteString.fromBase64String(te.resumeToken))}function __PRIVATE_toDbTarget(ee,te){const ne=__PRIVATE_toDbTimestamp(te.snapshotVersion),re=__PRIVATE_toDbTimestamp(te.lastLimboFreeSnapshotVersion);let se;se=__PRIVATE_targetIsPipelineTarget(te.target)?__PRIVATE_toPipelineTarget(ee.qr,te.target):__PRIVATE_targetIsDocumentTarget(te.target)?__PRIVATE_toDocumentsTarget(ee.qr,te.target):__PRIVATE_toQueryTarget(ee.qr,te.target).be;const ie=te.resumeToken.toBase64();return{targetId:te.targetId,canonicalId:__PRIVATE_canonifyTargetOrPipeline(te.target),readTime:ne,resumeToken:ie,lastListenSequenceNumber:te.sequenceNumber,lastLimboFreeSnapshotVersion:re,query:se}}function __PRIVATE_fromBundledQuery(ee){const te=__PRIVATE_convertQueryTargetToQuery({parent:ee.parent,structuredQuery:ee.structuredQuery});return"LAST"===ee.limitType?__PRIVATE_queryWithLimit(te,te.limit,"L"):te}function __PRIVATE_fromDbDocumentOverlay(ee,te){return new Overlay(te.largestBatchId,__PRIVATE_fromMutation(ee.qr,te.overlayMutation))}function __PRIVATE_toDbDocumentOverlayKey(ee,te){const ne=te.path.lastSegment();return[ee,__PRIVATE_encodeResourcePath(te.path.popLast()),ne]}function __PRIVATE_toDbIndexState(ee,te,ne,re){return{indexId:ee,uid:te,sequenceNumber:ne,readTime:__PRIVATE_toDbTimestamp(re.readTime),documentKey:__PRIVATE_encodeResourcePath(re.documentKey.path),largestBatchId:re.largestBatchId}}function __PRIVATE_stageFromProto(ee){switch(ee.name){case"collection":return new H(ee.args[0].referenceValue,{});case"collection_group":return new J(ee.args[1].stringValue,{});case"database":return new Q({});case"documents":return new Y(ee.args.map((ee=>ee.referenceValue)),{});case"where":return new A(__PRIVATE_exprFromProto(ee.args[0]),{});case"limit":{const te=ee.args[0].integerValue??ee.args[0].doubleValue;return new v("number"==typeof te?te:Number(te),{})}case"sort":return new L(ee.args.map((ee=>function __PRIVATE_orderingFromProto(ee){const te=ee.mapValue?.fields;return new Ordering(__PRIVATE_exprFromProto(te.expression),te.direction?.stringValue,"orderingFromProto")}(ee))),{});default:throw new Error(`Stage type: ${ee.name} not supported.`)}}function __PRIVATE_exprFromProto(ee){return ee.fieldReferenceValue?new o(ta("_exprFromProto",ee.fieldReferenceValue),"_exprFromProto"):ee.functionValue?function __PRIVATE_functionFromProto(ee){return new x(ee.functionValue.name,ee.functionValue.args?.map(__PRIVATE_exprFromProto)||[])}(ee):Constant._fromProto(ee)}class __PRIVATE_IndexedDbMutationQueue{constructor(ee,te,ne,re){this.userId=ee,this.serializer=te,this.indexManager=ne,this.referenceDelegate=re,this.$r={}}static Kr(ee,te,ne,re){__PRIVATE_hardAssert(""!==ee.uid,64387);const se=ee.isAuthenticated()?ee.uid:"";return new __PRIVATE_IndexedDbMutationQueue(se,te,ne,re)}checkEmpty(ee){let te=!0;const ne=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return __PRIVATE_mutationsStore(ee).jn({index:Gr,range:ne},((ee,ne,re)=>{te=!1,re.done()})).next((()=>te))}addMutationBatch(ee,te,ne,re){const se=__PRIVATE_documentMutationsStore(ee),ie=__PRIVATE_mutationsStore(ee);return ie.add({}).next((ae=>{__PRIVATE_hardAssert("number"==typeof ae,49019);const oe=new MutationBatch(ae,te,ne,re),ue=function __PRIVATE_toDbMutationBatch(ee,te,ne){const re=ne.baseMutations.map((te=>toMutation(ee.qr,te))),se=ne.mutations.map((te=>toMutation(ee.qr,te)));return{userId:te,batchId:ne.batchId,localWriteTimeMs:ne.localWriteTime.toMillis(),baseMutations:re,mutations:se}}(this.serializer,this.userId,oe),Be=[];let le=new SortedSet(((ee,te)=>__PRIVATE_primitiveComparator(ee.canonicalString(),te.canonicalString())));for(const ee of re){const te=__PRIVATE_newDbDocumentMutationKey(this.userId,ee.key.path,ae);le=le.add(ee.key.path.popLast()),Be.push(ie.put(ue)),Be.push(se.put(te,Hr))}return le.forEach((te=>{Be.push(this.indexManager.addToCollectionParentIndex(ee,te))})),ee.addOnCommittedListener((()=>{this.$r[ae]=oe.keys()})),PersistencePromise.waitFor(Be).next((()=>oe))}))}lookupMutationBatch(ee,te){return __PRIVATE_mutationsStore(ee).get(te).next((ee=>ee?(__PRIVATE_hardAssert(ee.userId===this.userId,48,"Unexpected user for mutation batch",{userId:ee.userId,batchId:te}),__PRIVATE_fromDbMutationBatch(this.serializer,ee)):null))}Wr(ee,te){return this.$r[te]?PersistencePromise.resolve(this.$r[te]):this.lookupMutationBatch(ee,te).next((ee=>{if(ee){const ne=ee.keys();return this.$r[te]=ne,ne}return null}))}getNextMutationBatchAfterBatchId(ee,te){const ne=te+1,re=IDBKeyRange.lowerBound([this.userId,ne]);let se=null;return __PRIVATE_mutationsStore(ee).jn({index:Gr,range:re},((ee,te,re)=>{te.userId===this.userId&&(__PRIVATE_hardAssert(te.batchId>=ne,47524,{Qr:ne}),se=__PRIVATE_fromDbMutationBatch(this.serializer,te)),re.done()})).next((()=>se))}getHighestUnacknowledgedBatchId(ee){const te=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let ne=vn;return __PRIVATE_mutationsStore(ee).jn({index:Gr,range:te,reverse:!0},((ee,te,re)=>{ne=te.batchId,re.done()})).next((()=>ne))}getAllMutationBatches(ee){const te=IDBKeyRange.bound([this.userId,vn],[this.userId,Number.POSITIVE_INFINITY]);return __PRIVATE_mutationsStore(ee).Kn(Gr,te).next((ee=>ee.map((ee=>__PRIVATE_fromDbMutationBatch(this.serializer,ee)))))}getAllMutationBatchesAffectingDocumentKey(ee,te){const ne=__PRIVATE_newDbDocumentMutationPrefixForPath(this.userId,te.path),re=IDBKeyRange.lowerBound(ne),se=[];return __PRIVATE_documentMutationsStore(ee).jn({range:re},((ne,re,ie)=>{const[ae,oe,ue]=ne,Be=__PRIVATE_decodeResourcePath(oe);if(ae===this.userId&&te.path.isEqual(Be))return __PRIVATE_mutationsStore(ee).get(ue).next((ee=>{if(!ee)throw l(61480,{Gr:ne,batchId:ue});__PRIVATE_hardAssert(ee.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:ee.userId,batchId:ue}),se.push(__PRIVATE_fromDbMutationBatch(this.serializer,ee))}));ie.done()})).next((()=>se))}getAllMutationBatchesAffectingDocumentKeys(ee,te){let ne=new SortedSet(__PRIVATE_primitiveComparator);const re=[];return te.forEach((te=>{const se=__PRIVATE_newDbDocumentMutationPrefixForPath(this.userId,te.path),ie=IDBKeyRange.lowerBound(se),ae=__PRIVATE_documentMutationsStore(ee).jn({range:ie},((ee,re,se)=>{const[ie,ae,oe]=ee,ue=__PRIVATE_decodeResourcePath(ae);ie===this.userId&&te.path.isEqual(ue)?ne=ne.add(oe):se.done()}));re.push(ae)})),PersistencePromise.waitFor(re).next((()=>this.zr(ee,ne)))}getAllMutationBatchesAffectingQuery(ee,te){const ne=te.path,re=ne.length+1,se=__PRIVATE_newDbDocumentMutationPrefixForPath(this.userId,ne),ie=IDBKeyRange.lowerBound(se);let ae=new SortedSet(__PRIVATE_primitiveComparator);return __PRIVATE_documentMutationsStore(ee).jn({range:ie},((ee,te,se)=>{const[ie,oe,ue]=ee,Be=__PRIVATE_decodeResourcePath(oe);ie===this.userId&&ne.isPrefixOf(Be)?Be.length===re&&(ae=ae.add(ue)):se.done()})).next((()=>this.zr(ee,ae)))}zr(ee,te){const ne=[],re=[];return te.forEach((te=>{re.push(__PRIVATE_mutationsStore(ee).get(te).next((ee=>{if(null===ee)throw l(35274,{batchId:te});__PRIVATE_hardAssert(ee.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:ee.userId,batchId:te}),ne.push(__PRIVATE_fromDbMutationBatch(this.serializer,ee))})))})),PersistencePromise.waitFor(re).next((()=>ne))}removeMutationBatch(ee,te){return removeMutationBatch(ee.kr,this.userId,te).next((ne=>(ee.addOnCommittedListener((()=>{this.jr(te.batchId)})),PersistencePromise.forEach(ne,(te=>this.referenceDelegate.markPotentiallyOrphaned(ee,te))))))}jr(ee){delete this.$r[ee]}performConsistencyCheck(ee){return this.checkEmpty(ee).next((te=>{if(!te)return PersistencePromise.resolve();const ne=IDBKeyRange.lowerBound(function __PRIVATE_newDbDocumentMutationPrefixForUser(ee){return[ee]}(this.userId)),re=[];return __PRIVATE_documentMutationsStore(ee).jn({range:ne},((ee,te,ne)=>{if(ee[0]===this.userId){const te=__PRIVATE_decodeResourcePath(ee[1]);re.push(te)}else ne.done()})).next((()=>{__PRIVATE_hardAssert(0===re.length,56720,{Hr:re.map((ee=>ee.canonicalString()))})}))}))}containsKey(ee,te){return __PRIVATE_mutationQueueContainsKey(ee,this.userId,te)}Jr(ee){return __PRIVATE_mutationQueuesStore(ee).get(this.userId).next((ee=>ee||{userId:this.userId,lastAcknowledgedBatchId:vn,lastStreamToken:""}))}}function __PRIVATE_mutationQueueContainsKey(ee,te,ne){const re=__PRIVATE_newDbDocumentMutationPrefixForPath(te,ne.path),se=re[1],ie=IDBKeyRange.lowerBound(re);let ae=!1;return __PRIVATE_documentMutationsStore(ee).jn({range:ie,zn:!0},((ee,ne,re)=>{const[ie,oe,ue]=ee;ie===te&&oe===se&&(ae=!0),re.done()})).next((()=>ae))}function __PRIVATE_mutationsStore(ee){return __PRIVATE_getStore(ee,Mr)}function __PRIVATE_documentMutationsStore(ee){return __PRIVATE_getStore(ee,qr)}function __PRIVATE_mutationQueuesStore(ee){return __PRIVATE_getStore(ee,Lr)}class __PRIVATE_IndexedDbBundleCache{getBundleMetadata(ee,te){return __PRIVATE_bundlesStore(ee).get(te).next((ee=>{if(ee)return function __PRIVATE_fromDbBundle(ee){return{id:ee.bundleId,createTime:__PRIVATE_fromDbTimestamp(ee.createTime),version:ee.version}}(ee)}))}saveBundleMetadata(ee,te){return __PRIVATE_bundlesStore(ee).put(function __PRIVATE_toDbBundle(ee){return{bundleId:ee.id,createTime:__PRIVATE_toDbTimestamp(__PRIVATE_fromVersion(ee.createTime)),version:ee.version}}(te))}getNamedQuery(ee,te){return __PRIVATE_namedQueriesStore(ee).get(te).next((ee=>{if(ee)return function __PRIVATE_fromDbNamedQuery(ee){return{name:ee.name,query:__PRIVATE_fromBundledQuery(ee.bundledQuery),readTime:__PRIVATE_fromDbTimestamp(ee.readTime)}}(ee)}))}saveNamedQuery(ee,te){return __PRIVATE_namedQueriesStore(ee).put(function __PRIVATE_toDbNamedQuery(ee){return{name:ee.name,readTime:__PRIVATE_toDbTimestamp(__PRIVATE_fromVersion(ee.readTime)),bundledQuery:ee.bundledQuery}}(te))}}function __PRIVATE_bundlesStore(ee){return __PRIVATE_getStore(ee,ls)}function __PRIVATE_namedQueriesStore(ee){return __PRIVATE_getStore(ee,cs)}class __PRIVATE_IndexedDbDocumentOverlayCache{constructor(ee,te){this.serializer=ee,this.userId=te}static Kr(ee,te){const ne=te.uid||"";return new __PRIVATE_IndexedDbDocumentOverlayCache(ee,ne)}getOverlay(ee,te){return __PRIVATE_documentOverlayStore(ee).get(__PRIVATE_toDbDocumentOverlayKey(this.userId,te)).next((ee=>ee?__PRIVATE_fromDbDocumentOverlay(this.serializer,ee):null))}getOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return PersistencePromise.forEach(te,(te=>this.getOverlay(ee,te).next((ee=>{null!==ee&&ne.set(te,ee)})))).next((()=>ne))}getAllOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return __PRIVATE_documentOverlayStore(ee).jn(((ee,re)=>{const se=__PRIVATE_fromDbDocumentOverlay(this.serializer,re);se.largestBatchId>te&&ne.set(se.getKey(),se)})).next((()=>ne))}saveOverlays(ee,te,ne){const re=[];return ne.forEach(((ne,se)=>{const ie=new Overlay(te,se);re.push(this.Yr(ee,ie))})),PersistencePromise.waitFor(re)}removeOverlaysForBatchId(ee,te,ne){const re=new Set;te.forEach((ee=>re.add(__PRIVATE_encodeResourcePath(ee.getCollectionPath()))));const se=[];return re.forEach((te=>{const re=IDBKeyRange.bound([this.userId,te,ne],[this.userId,te,ne+1],!1,!0);se.push(__PRIVATE_documentOverlayStore(ee).Gn(Ps,re))})),PersistencePromise.waitFor(se)}getOverlaysForCollection(ee,te,ne){const re=__PRIVATE_newOverlayMap(),se=__PRIVATE_encodeResourcePath(te),ie=IDBKeyRange.bound([this.userId,se,ne],[this.userId,se,Number.POSITIVE_INFINITY],!0);return __PRIVATE_documentOverlayStore(ee).Kn(Ps,ie).next((ee=>{for(const te of ee){const ee=__PRIVATE_fromDbDocumentOverlay(this.serializer,te);re.set(ee.getKey(),ee)}return re}))}getOverlaysForCollectionGroup(ee,te,ne,re){const se=__PRIVATE_newOverlayMap();let ie;const ae=IDBKeyRange.bound([this.userId,te,ne],[this.userId,te,Number.POSITIVE_INFINITY],!0);return __PRIVATE_documentOverlayStore(ee).jn({index:Vs,range:ae},((ee,te,ne)=>{const ae=__PRIVATE_fromDbDocumentOverlay(this.serializer,te);se.size()<re||ae.largestBatchId===ie?(se.set(ae.getKey(),ae),ie=ae.largestBatchId):ne.done()})).next((()=>se))}Yr(ee,te){return __PRIVATE_documentOverlayStore(ee).put(function __PRIVATE_toDbDocumentOverlay(ee,te,ne){const[re,se,ie]=__PRIVATE_toDbDocumentOverlayKey(te,ne.mutation.key);return{userId:te,collectionPath:se,documentId:ie,collectionGroup:ne.mutation.key.getCollectionGroup(),largestBatchId:ne.largestBatchId,overlayMutation:toMutation(ee.qr,ne.mutation)}}(this.serializer,this.userId,te))}}function __PRIVATE_documentOverlayStore(ee){return __PRIVATE_getStore(ee,Is)}class __PRIVATE_IndexedDbGlobalsCache{Zr(ee){return __PRIVATE_getStore(ee,ys)}getSessionToken(ee){return this.Zr(ee).get("sessionToken").next((ee=>{const te=ee?.value;return te?ByteString.fromUint8Array(te):ByteString.EMPTY_BYTE_STRING}))}setSessionToken(ee,te){return this.Zr(ee).put({name:"sessionToken",value:te.toUint8Array()})}}class __PRIVATE_FirestoreIndexValueWriter{constructor(){}Xr(ee,te){this.ei(ee,te),te.ti()}ei(ee,te){if("nullValue"in ee)this.ni(te,5);else if("booleanValue"in ee)this.ni(te,10),te.ri(ee.booleanValue?1:0);else if("integerValue"in ee)this.ni(te,15),te.ri(__PRIVATE_normalizeNumber(ee.integerValue));else if("doubleValue"in ee){const ne=__PRIVATE_normalizeNumber(ee.doubleValue);isNaN(ne)?this.ni(te,13):(this.ni(te,15),__PRIVATE_isNegativeZero(ne)?te.ri(0):te.ri(ne))}else if("timestampValue"in ee){let ne=ee.timestampValue;this.ni(te,20),"string"==typeof ne&&(ne=__PRIVATE_normalizeTimestamp(ne)),te.ii(`${ne.seconds||""}`),te.ri(ne.nanos||0)}else if("stringValue"in ee)this.si(ee.stringValue,te),this._i(te);else if("bytesValue"in ee)this.ni(te,30),te.oi(__PRIVATE_normalizeByteString(ee.bytesValue)),this._i(te);else if("referenceValue"in ee)this.ai(ee.referenceValue,te);else if("geoPointValue"in ee){const ne=ee.geoPointValue;this.ni(te,45),te.ri(ne.latitude||0),te.ri(ne.longitude||0)}else"mapValue"in ee?__PRIVATE_isMaxValue(ee)?this.ni(te,Number.MAX_SAFE_INTEGER):__PRIVATE_isVectorValue(ee)?this.ui(ee.mapValue,te):(this.ci(ee.mapValue,te),this._i(te)):"arrayValue"in ee?(this.li(ee.arrayValue,te),this._i(te)):l(19022,{Ei:ee})}si(ee,te){this.ni(te,25),this.hi(ee,te)}hi(ee,te){te.ii(ee)}ci(ee,te){const ne=ee.fields||{};this.ni(te,55);for(const ee of Object.keys(ne))this.si(ee,te),this.ei(ne[ee],te)}ui(ee,te){const ne=ee.fields||{};this.ni(te,53);const re=Ln,se=ne[re].arrayValue?.values?.length||0;this.ni(te,15),te.ri(__PRIVATE_normalizeNumber(se)),this.si(re,te),this.ei(ne[re],te)}li(ee,te){const ne=ee.values||[];this.ni(te,50);for(const ee of ne)this.ei(ee,te)}ai(ee,te){this.ni(te,37),DocumentKey.fromName(ee).path.forEach((ee=>{this.ni(te,60),this.hi(ee,te)}))}ni(ee,te){ee.ri(te)}_i(ee){ee.ri(2)}}__PRIVATE_FirestoreIndexValueWriter.Ti=new __PRIVATE_FirestoreIndexValueWriter;const Ls=255;function __PRIVATE_numberOfLeadingZerosInByte(ee){if(0===ee)return 8;let te=0;return ee>>4||(te+=4,ee<<=4),ee>>6||(te+=2,ee<<=2),ee>>7||(te+=1),te}function __PRIVATE_unsignedNumLength(ee){const te=64-function __PRIVATE_numberOfLeadingZeros(ee){let te=0;for(let ne=0;ne<8;++ne){const re=__PRIVATE_numberOfLeadingZerosInByte(255&ee[ne]);if(te+=re,8!==re)break}return te}(ee);return Math.ceil(te/8)}class __PRIVATE_OrderedCodeWriter{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Pi(ee){const te=ee[Symbol.iterator]();let ne=te.next();for(;!ne.done;)this.Ri(ne.value),ne=te.next();this.Ii()}Ai(ee){const te=ee[Symbol.iterator]();let ne=te.next();for(;!ne.done;)this.Vi(ne.value),ne=te.next();this.di()}fi(ee){for(const te of ee){const ee=te.charCodeAt(0);if(ee<128)this.Ri(ee);else if(ee<2048)this.Ri(960|ee>>>6),this.Ri(128|63&ee);else if(te<"\ud800"||"\udbff"<te)this.Ri(480|ee>>>12),this.Ri(128|63&ee>>>6),this.Ri(128|63&ee);else{const ee=te.codePointAt(0);this.Ri(240|ee>>>18),this.Ri(128|63&ee>>>12),this.Ri(128|63&ee>>>6),this.Ri(128|63&ee)}}this.Ii()}mi(ee){for(const te of ee){const ee=te.charCodeAt(0);if(ee<128)this.Vi(ee);else if(ee<2048)this.Vi(960|ee>>>6),this.Vi(128|63&ee);else if(te<"\ud800"||"\udbff"<te)this.Vi(480|ee>>>12),this.Vi(128|63&ee>>>6),this.Vi(128|63&ee);else{const ee=te.codePointAt(0);this.Vi(240|ee>>>18),this.Vi(128|63&ee>>>12),this.Vi(128|63&ee>>>6),this.Vi(128|63&ee)}}this.di()}pi(ee){const te=this.gi(ee),ne=__PRIVATE_unsignedNumLength(te);this.yi(1+ne),this.buffer[this.position++]=255&ne;for(let ee=te.length-ne;ee<te.length;++ee)this.buffer[this.position++]=255&te[ee]}wi(ee){const te=this.gi(ee),ne=__PRIVATE_unsignedNumLength(te);this.yi(1+ne),this.buffer[this.position++]=~(255&ne);for(let ee=te.length-ne;ee<te.length;++ee)this.buffer[this.position++]=~(255&te[ee])}bi(){this.Si(Ls),this.Si(255)}Di(){this.xi(Ls),this.xi(255)}reset(){this.position=0}seed(ee){this.yi(ee.length),this.buffer.set(ee,this.position),this.position+=ee.length}Ci(){return this.buffer.slice(0,this.position)}gi(ee){const te=function __PRIVATE_doubleToLongBits(ee){const te=new DataView(new ArrayBuffer(8));return te.setFloat64(0,ee,!1),new Uint8Array(te.buffer)}(ee),ne=!!(128&te[0]);te[0]^=ne?255:128;for(let ee=1;ee<te.length;++ee)te[ee]^=ne?255:0;return te}Ri(ee){const te=255&ee;0===te?(this.Si(0),this.Si(255)):te===Ls?(this.Si(Ls),this.Si(0)):this.Si(te)}Vi(ee){const te=255&ee;0===te?(this.xi(0),this.xi(255)):te===Ls?(this.xi(Ls),this.xi(0)):this.xi(ee)}Ii(){this.Si(0),this.Si(1)}di(){this.xi(0),this.xi(1)}Si(ee){this.yi(1),this.buffer[this.position++]=ee}xi(ee){this.yi(1),this.buffer[this.position++]=~ee}yi(ee){const te=ee+this.position;if(te<=this.buffer.length)return;let ne=2*this.buffer.length;ne<te&&(ne=te);const re=new Uint8Array(ne);re.set(this.buffer),this.buffer=re}}class __PRIVATE_AscendingIndexByteEncoder{constructor(ee){this.Fi=ee}oi(ee){this.Fi.Pi(ee)}ii(ee){this.Fi.fi(ee)}ri(ee){this.Fi.pi(ee)}ti(){this.Fi.bi()}}class __PRIVATE_DescendingIndexByteEncoder{constructor(ee){this.Fi=ee}oi(ee){this.Fi.Ai(ee)}ii(ee){this.Fi.mi(ee)}ri(ee){this.Fi.wi(ee)}ti(){this.Fi.Di()}}class __PRIVATE_IndexByteEncoder{constructor(){this.Fi=new __PRIVATE_OrderedCodeWriter,this.ascending=new __PRIVATE_AscendingIndexByteEncoder(this.Fi),this.descending=new __PRIVATE_DescendingIndexByteEncoder(this.Fi)}seed(ee){this.Fi.seed(ee)}Oi(ee){return 0===ee?this.ascending:this.descending}Ci(){return this.Fi.Ci()}reset(){this.Fi.reset()}}class __PRIVATE_IndexEntry{constructor(ee,te,ne,re){this.Mi=ee,this.Ni=te,this.Li=ne,this.Bi=re}Ui(){const ee=this.Bi.length,te=0===ee||255===this.Bi[ee-1]?ee+1:ee,ne=new Uint8Array(te);return ne.set(this.Bi,0),te!==ee?ne.set([0],this.Bi.length):++ne[ne.length-1],new __PRIVATE_IndexEntry(this.Mi,this.Ni,this.Li,ne)}ki(ee,te,ne){return{indexId:this.Mi,uid:ee,arrayValue:__PRIVATE_encodeKeySafeBytes(this.Li),directionalValue:__PRIVATE_encodeKeySafeBytes(this.Bi),orderedDocumentKey:__PRIVATE_encodeKeySafeBytes(te),documentKey:ne.path.toArray()}}qi(ee,te,ne){const re=this.ki(ee,te,ne);return[re.indexId,re.uid,re.arrayValue,re.directionalValue,re.orderedDocumentKey,re.documentKey]}}function __PRIVATE_indexEntryComparator(ee,te){let ne=ee.Mi-te.Mi;return 0!==ne?ne:(ne=__PRIVATE_compareByteArrays(ee.Li,te.Li),0!==ne?ne:(ne=__PRIVATE_compareByteArrays(ee.Bi,te.Bi),0!==ne?ne:DocumentKey.comparator(ee.Ni,te.Ni)))}function __PRIVATE_compareByteArrays(ee,te){for(let ne=0;ne<ee.length&&ne<te.length;++ne){const re=ee[ne]-te[ne];if(0!==re)return re}return ee.length-te.length}function __PRIVATE_encodeKeySafeBytes(ee){return isSafariOrWebkit()?function __PRIVATE_encodeUint8ArrayToSortableString(ee){let te="";for(let ne=0;ne<ee.length;ne++)te+=String.fromCharCode(ee[ne]);return te}(ee):ee}function __PRIVATE_decodeKeySafeBytes(ee){return"string"!=typeof ee?ee:function __PRIVATE_decodeSortableStringToUint8Array(ee){const te=new Uint8Array(ee.length);for(let ne=0;ne<ee.length;ne++)te[ne]=ee.charCodeAt(ne);return te}(ee)}class __PRIVATE_TargetIndexMatcher{constructor(ee){this.$i=new SortedSet(((ee,te)=>An.comparator(ee.field,te.field))),this.collectionId=null!=ee.collectionGroup?ee.collectionGroup:ee.path.lastSegment(),this.Ki=ee.orderBy,this.Wi=[];for(const te of ee.filters){const ee=te;ee.isInequality()?this.$i=this.$i.add(ee):this.Wi.push(ee)}}get Qi(){return this.$i.size>1}Gi(ee){if(__PRIVATE_hardAssert(ee.collectionGroup===this.collectionId,49279),this.Qi)return!1;const te=__PRIVATE_fieldIndexGetArraySegment(ee);if(void 0!==te&&!this.zi(te))return!1;const ne=__PRIVATE_fieldIndexGetDirectionalSegments(ee);let re=new Set,se=0,ie=0;for(;se<ne.length&&this.zi(ne[se]);++se)re=re.add(ne[se].fieldPath.canonicalString());if(se===ne.length)return!0;if(this.$i.size>0){const ee=this.$i.getIterator().getNext();if(!re.has(ee.field.canonicalString())){const te=ne[se];if(!this.ji(ee,te)||!this.Hi(this.Ki[ie++],te))return!1}++se}for(;se<ne.length;++se){const ee=ne[se];if(ie>=this.Ki.length||!this.Hi(this.Ki[ie++],ee))return!1}return!0}Ji(){if(this.Qi)return null;let ee=new SortedSet(An.comparator);const te=[];for(const ne of this.Wi)if(!ne.field.isKeyField())if("array-contains"===ne.op||"array-contains-any"===ne.op)te.push(new IndexSegment(ne.field,2));else{if(ee.has(ne.field))continue;ee=ee.add(ne.field),te.push(new IndexSegment(ne.field,0))}for(const ne of this.Ki)ne.field.isKeyField()||ee.has(ne.field)||(ee=ee.add(ne.field),te.push(new IndexSegment(ne.field,"asc"===ne.dir?0:1)));return new FieldIndex(FieldIndex.UNKNOWN_ID,this.collectionId,te,IndexState.empty())}zi(ee){for(const te of this.Wi)if(this.ji(te,ee))return!0;return!1}ji(ee,te){if(void 0===ee||!ee.field.isEqual(te.fieldPath))return!1;const ne="array-contains"===ee.op||"array-contains-any"===ee.op;return 2===te.kind===ne}Hi(ee,te){return!!ee.field.isEqual(te.fieldPath)&&(0===te.kind&&"asc"===ee.dir||1===te.kind&&"desc"===ee.dir)}}function __PRIVATE_computeInExpansion(ee){if(__PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,20012),ee instanceof FieldFilter){if(ee instanceof __PRIVATE_InFilter){const te=ee.value.arrayValue?.values?.map((te=>FieldFilter.create(ee.field,"==",te)))||[];return CompositeFilter.create(te,"or")}return ee}const te=ee.filters.map((ee=>__PRIVATE_computeInExpansion(ee)));return CompositeFilter.create(te,ee.op)}function __PRIVATE_getDnfTerms(ee){if(0===ee.getFilters().length)return[];const te=__PRIVATE_computeDistributedNormalForm(__PRIVATE_computeInExpansion(ee));return __PRIVATE_hardAssert(__PRIVATE_isDisjunctiveNormalForm(te),7391),__PRIVATE_isSingleFieldFilter(te)||__PRIVATE_isFlatConjunction(te)?[te]:te.getFilters()}function __PRIVATE_isSingleFieldFilter(ee){return ee instanceof FieldFilter}function __PRIVATE_isFlatConjunction(ee){return ee instanceof CompositeFilter&&__PRIVATE_compositeFilterIsFlatConjunction(ee)}function __PRIVATE_isDisjunctiveNormalForm(ee){return __PRIVATE_isSingleFieldFilter(ee)||__PRIVATE_isFlatConjunction(ee)||function __PRIVATE_isDisjunctionOfFieldFiltersAndFlatConjunctions(ee){if(ee instanceof CompositeFilter&&__PRIVATE_compositeFilterIsDisjunction(ee)){for(const te of ee.getFilters())if(!__PRIVATE_isSingleFieldFilter(te)&&!__PRIVATE_isFlatConjunction(te))return!1;return!0}return!1}(ee)}function __PRIVATE_computeDistributedNormalForm(ee){if(__PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,34018),ee instanceof FieldFilter)return ee;if(1===ee.filters.length)return __PRIVATE_computeDistributedNormalForm(ee.filters[0]);const te=ee.filters.map((ee=>__PRIVATE_computeDistributedNormalForm(ee)));let ne=CompositeFilter.create(te,ee.op);return ne=__PRIVATE_applyAssociation(ne),__PRIVATE_isDisjunctiveNormalForm(ne)?ne:(__PRIVATE_hardAssert(ne instanceof CompositeFilter,64498),__PRIVATE_hardAssert(__PRIVATE_compositeFilterIsConjunction(ne),40251),__PRIVATE_hardAssert(ne.filters.length>1,57927),ne.filters.reduce(((ee,te)=>__PRIVATE_applyDistribution(ee,te))))}function __PRIVATE_applyDistribution(ee,te){let ne;return __PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,38388),__PRIVATE_hardAssert(te instanceof FieldFilter||te instanceof CompositeFilter,25473),ne=ee instanceof FieldFilter?te instanceof FieldFilter?function __PRIVATE_applyDistributionFieldFilters(ee,te){return CompositeFilter.create([ee,te],"and")}(ee,te):__PRIVATE_applyDistributionFieldAndCompositeFilters(ee,te):te instanceof FieldFilter?__PRIVATE_applyDistributionFieldAndCompositeFilters(te,ee):function __PRIVATE_applyDistributionCompositeFilters(ee,te){if(__PRIVATE_hardAssert(ee.filters.length>0&&te.filters.length>0,48005),__PRIVATE_compositeFilterIsConjunction(ee)&&__PRIVATE_compositeFilterIsConjunction(te))return __PRIVATE_compositeFilterWithAddedFilters(ee,te.getFilters());const ne=__PRIVATE_compositeFilterIsDisjunction(ee)?ee:te,re=__PRIVATE_compositeFilterIsDisjunction(ee)?te:ee,se=ne.filters.map((ee=>__PRIVATE_applyDistribution(ee,re)));return CompositeFilter.create(se,"or")}(ee,te),__PRIVATE_applyAssociation(ne)}function __PRIVATE_applyDistributionFieldAndCompositeFilters(ee,te){if(__PRIVATE_compositeFilterIsConjunction(te))return __PRIVATE_compositeFilterWithAddedFilters(te,ee.getFilters());{const ne=te.filters.map((te=>__PRIVATE_applyDistribution(ee,te)));return CompositeFilter.create(ne,"or")}}function __PRIVATE_applyAssociation(ee){if(__PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,11850),ee instanceof FieldFilter)return ee;const te=ee.getFilters();if(1===te.length)return __PRIVATE_applyAssociation(te[0]);if(__PRIVATE_compositeFilterIsFlat(ee))return ee;const ne=te.map((ee=>__PRIVATE_applyAssociation(ee))),re=[];return ne.forEach((te=>{te instanceof FieldFilter?re.push(te):te instanceof CompositeFilter&&(te.op===ee.op?re.push(...te.filters):re.push(te))})),1===re.length?re[0]:CompositeFilter.create(re,ee.op)}class __PRIVATE_MemoryIndexManager{constructor(){this.Yi=new __PRIVATE_MemoryCollectionParentIndex}addToCollectionParentIndex(ee,te){return this.Yi.add(te),PersistencePromise.resolve()}getCollectionParents(ee,te){return PersistencePromise.resolve(this.Yi.getEntries(te))}addFieldIndex(ee,te){return PersistencePromise.resolve()}deleteFieldIndex(ee,te){return PersistencePromise.resolve()}deleteAllFieldIndexes(ee){return PersistencePromise.resolve()}createTargetIndexes(ee,te){return PersistencePromise.resolve()}getDocumentsMatchingTarget(ee,te){return PersistencePromise.resolve(null)}getIndexType(ee,te){return PersistencePromise.resolve(0)}getFieldIndexes(ee,te){return PersistencePromise.resolve([])}getNextCollectionGroupToUpdate(ee){return PersistencePromise.resolve(null)}getMinOffset(ee,te){return PersistencePromise.resolve(IndexOffset.min())}getMinOffsetFromCollectionGroup(ee,te){return PersistencePromise.resolve(IndexOffset.min())}updateCollectionGroup(ee,te,ne){return PersistencePromise.resolve()}updateIndexEntries(ee,te){return PersistencePromise.resolve()}}class __PRIVATE_MemoryCollectionParentIndex{constructor(){this.index={}}add(ee){const te=ee.lastSegment(),ne=ee.popLast(),re=this.index[te]||new SortedSet(ResourcePath.comparator),se=!re.has(ne);return this.index[te]=re.add(ne),se}has(ee){const te=ee.lastSegment(),ne=ee.popLast(),re=this.index[te];return re&&re.has(ne)}getEntries(ee){return(this.index[ee]||new SortedSet(ResourcePath.comparator)).toArray()}}const Ms="IndexedDbIndexManager",ks=new Uint8Array(0);class __PRIVATE_IndexedDbIndexManager{constructor(ee,te){this.databaseId=te,this.Zi=new __PRIVATE_MemoryCollectionParentIndex,this.Xi=new ObjectMap((ee=>__PRIVATE_canonifyTarget(ee)),((ee,te)=>__PRIVATE_targetEquals(ee,te))),this.uid=ee.uid||""}addToCollectionParentIndex(ee,te){if(!this.Zi.has(te)){const ne=te.lastSegment(),re=te.popLast();ee.addOnCommittedListener((()=>{this.Zi.add(te)}));const se={collectionId:ne,parent:__PRIVATE_encodeResourcePath(re)};return __PRIVATE_collectionParentsStore(ee).put(se)}return PersistencePromise.resolve()}getCollectionParents(ee,te){const ne=[],re=IDBKeyRange.bound([te,""],[__PRIVATE_immediateSuccessor(te),""],!1,!0);return __PRIVATE_collectionParentsStore(ee).Kn(re).next((ee=>{for(const re of ee){if(re.collectionId!==te)break;ne.push(__PRIVATE_decodeResourcePath(re.parent))}return ne}))}addFieldIndex(ee,te){const ne=__PRIVATE_indexConfigurationStore(ee),re=function __PRIVATE_toDbIndexConfiguration(ee){return{indexId:ee.indexId,collectionGroup:ee.collectionGroup,fields:ee.fields.map((ee=>[ee.fieldPath.canonicalString(),ee.kind]))}}(te);delete re.indexId;const se=ne.add(re);if(te.indexState){const ne=__PRIVATE_indexStateStore(ee);return se.next((ee=>{ne.put(__PRIVATE_toDbIndexState(ee,this.uid,te.indexState.sequenceNumber,te.indexState.offset))}))}return se.next()}deleteFieldIndex(ee,te){const ne=__PRIVATE_indexConfigurationStore(ee),re=__PRIVATE_indexStateStore(ee),se=__PRIVATE_indexEntriesStore(ee);return ne.delete(te.indexId).next((()=>re.delete(IDBKeyRange.bound([te.indexId],[te.indexId+1],!1,!0)))).next((()=>se.delete(IDBKeyRange.bound([te.indexId],[te.indexId+1],!1,!0))))}deleteAllFieldIndexes(ee){const te=__PRIVATE_indexConfigurationStore(ee),ne=__PRIVATE_indexEntriesStore(ee),re=__PRIVATE_indexStateStore(ee);return te.Gn().next((()=>ne.Gn())).next((()=>re.Gn()))}createTargetIndexes(ee,te){return PersistencePromise.forEach(this.es(te),(te=>this.getIndexType(ee,te).next((ne=>{if(0===ne||1===ne){const ne=new __PRIVATE_TargetIndexMatcher(te).Ji();if(null!=ne)return this.addFieldIndex(ee,ne)}}))))}getDocumentsMatchingTarget(ee,te){const ne=__PRIVATE_indexEntriesStore(ee);let re=!0;const se=new Map;return PersistencePromise.forEach(this.es(te),(te=>this.ts(ee,te).next((ee=>{re&&(re=!!ee),se.set(te,ee)})))).next((()=>{if(re){let ee=__PRIVATE_documentKeySet();const re=[];return PersistencePromise.forEach(se,((se,ie)=>{__PRIVATE_logDebug(Ms,`Using index ${function __PRIVATE_fieldIndexToString(ee){return`id=${ee.indexId}|cg=${ee.collectionGroup}|f=${ee.fields.map((ee=>`${ee.fieldPath}:${ee.kind}`)).join(",")}`}(se)} to execute ${__PRIVATE_canonifyTarget(te)}`);const ae=function __PRIVATE_targetGetArrayValues(ee,te){const ne=__PRIVATE_fieldIndexGetArraySegment(te);if(void 0===ne)return null;for(const te of __PRIVATE_targetGetFieldFiltersForPath(ee,ne.fieldPath))switch(te.op){case"array-contains-any":return te.value.arrayValue.values||[];case"array-contains":return[te.value]}return null}(ie,se),oe=function __PRIVATE_targetGetNotInValues(ee,te){const ne=new Map;for(const re of __PRIVATE_fieldIndexGetDirectionalSegments(te))for(const te of __PRIVATE_targetGetFieldFiltersForPath(ee,re.fieldPath))switch(te.op){case"==":case"in":ne.set(re.fieldPath.canonicalString(),te.value);break;case"not-in":case"!=":return ne.set(re.fieldPath.canonicalString(),te.value),Array.from(ne.values())}return null}(ie,se),ue=function __PRIVATE_targetGetLowerBound(ee,te){const ne=[];let re=!0;for(const se of __PRIVATE_fieldIndexGetDirectionalSegments(te)){const te=0===se.kind?__PRIVATE_targetGetAscendingBound(ee,se.fieldPath,ee.startAt):__PRIVATE_targetGetDescendingBound(ee,se.fieldPath,ee.startAt);ne.push(te.value),re&&(re=te.inclusive)}return new Bound(ne,re)}(ie,se),Be=function __PRIVATE_targetGetUpperBound(ee,te){const ne=[];let re=!0;for(const se of __PRIVATE_fieldIndexGetDirectionalSegments(te)){const te=0===se.kind?__PRIVATE_targetGetDescendingBound(ee,se.fieldPath,ee.endAt):__PRIVATE_targetGetAscendingBound(ee,se.fieldPath,ee.endAt);ne.push(te.value),re&&(re=te.inclusive)}return new Bound(ne,re)}(ie,se),le=this.ns(se,ie,ue),ce=this.ns(se,ie,Be),_e=this.rs(se,ie,oe),he=this.ss(se.indexId,ae,le,ue.inclusive,ce,Be.inclusive,_e);return PersistencePromise.forEach(he,(se=>ne.Qn(se,te.limit).next((te=>{te.forEach((te=>{const ne=DocumentKey.fromSegments(te.documentKey);ee.has(ne)||(ee=ee.add(ne),re.push(ne))}))}))))})).next((()=>re))}return PersistencePromise.resolve(null)}))}es(ee){let te=this.Xi.get(ee);return te||(te=0===ee.filters.length?[ee]:__PRIVATE_getDnfTerms(CompositeFilter.create(ee.filters,"and")).map((te=>__PRIVATE_newTarget(ee.path,ee.collectionGroup,ee.orderBy,te.getFilters(),ee.limit,ee.startAt,ee.endAt))),this.Xi.set(ee,te),te)}ss(ee,te,ne,re,se,ie,ae){const oe=(null!=te?te.length:1)*Math.max(ne.length,se.length),ue=oe/(null!=te?te.length:1),Be=[];for(let le=0;le<oe;++le){const oe=te?this._s(te[le/ue]):ks,ce=this.us(ee,oe,ne[le%ue],re),_e=this.cs(ee,oe,se[le%ue],ie),he=ae.map((te=>this.us(ee,oe,te,!0)));Be.push(...this.createRange(ce,_e,he))}return Be}us(ee,te,ne,re){const se=new __PRIVATE_IndexEntry(ee,DocumentKey.empty(),te,ne);return re?se:se.Ui()}cs(ee,te,ne,re){const se=new __PRIVATE_IndexEntry(ee,DocumentKey.empty(),te,ne);return re?se.Ui():se}ts(ee,te){const ne=new __PRIVATE_TargetIndexMatcher(te),re=null!=te.collectionGroup?te.collectionGroup:te.path.lastSegment();return this.getFieldIndexes(ee,re).next((ee=>{let te=null;for(const re of ee)ne.Gi(re)&&(!te||re.fields.length>te.fields.length)&&(te=re);return te}))}getIndexType(ee,te){let ne=2;const re=this.es(te);return PersistencePromise.forEach(re,(te=>this.ts(ee,te).next((ee=>{ee?0!==ne&&ee.fields.length<function __PRIVATE_targetGetSegmentCount(ee){let te=new SortedSet(An.comparator),ne=!1;for(const re of ee.filters)for(const ee of re.getFlattenedFilters())ee.field.isKeyField()||("array-contains"===ee.op||"array-contains-any"===ee.op?ne=!0:te=te.add(ee.field));for(const ne of ee.orderBy)ne.field.isKeyField()||(te=te.add(ne.field));return te.size+(ne?1:0)}(te)&&(ne=1):ne=0})))).next((()=>function __PRIVATE_targetHasLimit(ee){return null!==ee.limit}(te)&&re.length>1&&2===ne?1:ne))}ls(ee,te){const ne=new __PRIVATE_IndexByteEncoder;for(const re of __PRIVATE_fieldIndexGetDirectionalSegments(ee)){const ee=te.data.field(re.fieldPath);if(null==ee)return null;const se=ne.Oi(re.kind);__PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,se)}return ne.Ci()}_s(ee){const te=new __PRIVATE_IndexByteEncoder;return __PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,te.Oi(0)),te.Ci()}Es(ee,te){const ne=new __PRIVATE_IndexByteEncoder;return __PRIVATE_FirestoreIndexValueWriter.Ti.Xr(__PRIVATE_refValue(this.databaseId,te),ne.Oi(function __PRIVATE_fieldIndexGetKeyOrder(ee){const te=__PRIVATE_fieldIndexGetDirectionalSegments(ee);return 0===te.length?0:te[te.length-1].kind}(ee))),ne.Ci()}rs(ee,te,ne){if(null===ne)return[];let re=[];re.push(new __PRIVATE_IndexByteEncoder);let se=0;for(const ie of __PRIVATE_fieldIndexGetDirectionalSegments(ee)){const ee=ne[se++];for(const ne of re)if(this.hs(te,ie.fieldPath)&&isArray(ee))re=this.Ts(re,ie,ee);else{const te=ne.Oi(ie.kind);__PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,te)}}return this.Ps(re)}ns(ee,te,ne){return this.rs(ee,te,ne.position)}Ps(ee){const te=[];for(let ne=0;ne<ee.length;++ne)te[ne]=ee[ne].Ci();return te}Ts(ee,te,ne){const re=[...ee],se=[];for(const ee of ne.arrayValue.values||[])for(const ne of re){const re=new __PRIVATE_IndexByteEncoder;re.seed(ne.Ci()),__PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,re.Oi(te.kind)),se.push(re)}return se}hs(ee,te){return!!ee.filters.find((ee=>ee instanceof FieldFilter&&ee.field.isEqual(te)&&("in"===ee.op||"not-in"===ee.op)))}getFieldIndexes(ee,te){const ne=__PRIVATE_indexConfigurationStore(ee),re=__PRIVATE_indexStateStore(ee);return(te?ne.Kn(hs,IDBKeyRange.bound(te,te)):ne.Kn()).next((ee=>{const te=[];return PersistencePromise.forEach(ee,(ee=>re.get([ee.indexId,this.uid]).next((ne=>{te.push(function __PRIVATE_fromDbIndexConfiguration(ee,te){const ne=te?new IndexState(te.sequenceNumber,new IndexOffset(__PRIVATE_fromDbTimestamp(te.readTime),new DocumentKey(__PRIVATE_decodeResourcePath(te.documentKey)),te.largestBatchId)):IndexState.empty(),re=ee.fields.map((([ee,te])=>new IndexSegment(An.fromServerFormat(ee),te)));return new FieldIndex(ee.indexId,ee.collectionGroup,re,ne)}(ee,ne))})))).next((()=>te))}))}getNextCollectionGroupToUpdate(ee){return this.getFieldIndexes(ee).next((ee=>0===ee.length?null:(ee.sort(((ee,te)=>{const ne=ee.indexState.sequenceNumber-te.indexState.sequenceNumber;return 0!==ne?ne:__PRIVATE_primitiveComparator(ee.collectionGroup,te.collectionGroup)})),ee[0].collectionGroup)))}updateCollectionGroup(ee,te,ne){const re=__PRIVATE_indexConfigurationStore(ee),se=__PRIVATE_indexStateStore(ee);return this.Rs(ee).next((ee=>re.Kn(hs,IDBKeyRange.bound(te,te)).next((te=>PersistencePromise.forEach(te,(te=>se.put(__PRIVATE_toDbIndexState(te.indexId,this.uid,ee,ne))))))))}updateIndexEntries(ee,te){const ne=new Map;return PersistencePromise.forEach(te,((te,re)=>{const se=ne.get(te.collectionGroup);return(se?PersistencePromise.resolve(se):this.getFieldIndexes(ee,te.collectionGroup)).next((se=>(ne.set(te.collectionGroup,se),PersistencePromise.forEach(se,(ne=>this.Is(ee,te,ne).next((te=>{const se=this.As(re,ne);return te.isEqual(se)?PersistencePromise.resolve():this.Vs(ee,re,ne,te,se)})))))))}))}ds(ee,te,ne,re){return __PRIVATE_indexEntriesStore(ee).put(re.ki(this.uid,this.Es(ne,te.key),te.key))}fs(ee,te,ne,re){return __PRIVATE_indexEntriesStore(ee).delete(re.qi(this.uid,this.Es(ne,te.key),te.key))}Is(ee,te,ne){const re=__PRIVATE_indexEntriesStore(ee);let se=new SortedSet(__PRIVATE_indexEntryComparator);return re.jn({index:gs,range:IDBKeyRange.only([ne.indexId,this.uid,__PRIVATE_encodeKeySafeBytes(this.Es(ne,te))])},((ee,re)=>{se=se.add(new __PRIVATE_IndexEntry(ne.indexId,te,__PRIVATE_decodeKeySafeBytes(re.arrayValue),__PRIVATE_decodeKeySafeBytes(re.directionalValue)))})).next((()=>se))}As(ee,te){let ne=new SortedSet(__PRIVATE_indexEntryComparator);const re=this.ls(te,ee);if(null==re)return ne;const se=__PRIVATE_fieldIndexGetArraySegment(te);if(null!=se){const ie=ee.data.field(se.fieldPath);if(isArray(ie))for(const se of ie.arrayValue.values||[])ne=ne.add(new __PRIVATE_IndexEntry(te.indexId,ee.key,this._s(se),re))}else ne=ne.add(new __PRIVATE_IndexEntry(te.indexId,ee.key,ks,re));return ne}Vs(ee,te,ne,re,se){__PRIVATE_logDebug(Ms,"Updating index entries for document '%s'",te.key);const ie=[];return function __PRIVATE_diffSortedSets(ee,te,ne,re,se){const ie=ee.getIterator(),ae=te.getIterator();let oe=__PRIVATE_advanceIterator(ie),ue=__PRIVATE_advanceIterator(ae);for(;oe||ue;){let ee=!1,te=!1;if(oe&&ue){const re=ne(oe,ue);re<0?te=!0:re>0&&(ee=!0)}else null!=oe?te=!0:ee=!0;ee?(re(ue),ue=__PRIVATE_advanceIterator(ae)):te?(se(oe),oe=__PRIVATE_advanceIterator(ie)):(oe=__PRIVATE_advanceIterator(ie),ue=__PRIVATE_advanceIterator(ae))}}(re,se,__PRIVATE_indexEntryComparator,(re=>{ie.push(this.ds(ee,te,ne,re))}),(re=>{ie.push(this.fs(ee,te,ne,re))})),PersistencePromise.waitFor(ie)}Rs(ee){let te=1;return __PRIVATE_indexStateStore(ee).jn({index:Cs,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((ee,ne,re)=>{re.done(),te=ne.sequenceNumber+1})).next((()=>te))}createRange(ee,te,ne){ne=ne.sort(((ee,te)=>__PRIVATE_indexEntryComparator(ee,te))).filter(((ee,te,ne)=>!te||0!==__PRIVATE_indexEntryComparator(ee,ne[te-1])));const re=[];re.push(ee);for(const se of ne){const ne=__PRIVATE_indexEntryComparator(se,ee),ie=__PRIVATE_indexEntryComparator(se,te);if(0===ne)re[0]=ee.Ui();else if(ne>0&&ie<0)re.push(se),re.push(se.Ui());else if(ie>0)break}re.push(te);const se=[];for(let ee=0;ee<re.length;ee+=2){if(this.ps(re[ee],re[ee+1]))return[];const te=re[ee].qi(this.uid,ks,DocumentKey.empty()),ne=re[ee+1].qi(this.uid,ks,DocumentKey.empty());se.push(IDBKeyRange.bound(te,ne))}return se}ps(ee,te){return __PRIVATE_indexEntryComparator(ee,te)>0}getMinOffsetFromCollectionGroup(ee,te){return this.getFieldIndexes(ee,te).next(__PRIVATE_getMinOffsetFromFieldIndexes)}getMinOffset(ee,te){return PersistencePromise.mapArray(this.es(te),(te=>this.ts(ee,te).next((ee=>ee||l(44426))))).next(__PRIVATE_getMinOffsetFromFieldIndexes)}}function __PRIVATE_collectionParentsStore(ee){return __PRIVATE_getStore(ee,os)}function __PRIVATE_indexEntriesStore(ee){return __PRIVATE_getStore(ee,ms)}function __PRIVATE_indexConfigurationStore(ee){return __PRIVATE_getStore(ee,_s)}function __PRIVATE_indexStateStore(ee){return __PRIVATE_getStore(ee,ds)}function __PRIVATE_getMinOffsetFromFieldIndexes(ee){__PRIVATE_hardAssert(0!==ee.length,28825);let te=ee[0].indexState.offset,ne=te.largestBatchId;for(let re=1;re<ee.length;re++){const se=ee[re].indexState.offset;__PRIVATE_indexOffsetComparator(se,te)<0&&(te=se),ne<se.largestBatchId&&(ne=se.largestBatchId)}return new IndexOffset(te.readTime,te.documentKey,ne)}class __PRIVATE_TargetIdGenerator{constructor(ee){this.gs=ee}next(){return this.gs+=2,this.gs}static ys(){return new __PRIVATE_TargetIdGenerator(0)}static ws(){return new __PRIVATE_TargetIdGenerator(-1)}}class __PRIVATE_IndexedDbTargetCache{constructor(ee,te){this.referenceDelegate=ee,this.serializer=te}allocateTargetId(ee){return this.bs(ee).next((te=>{const ne=new __PRIVATE_TargetIdGenerator(te.highestTargetId);return te.highestTargetId=ne.next(),this.vs(ee,te).next((()=>te.highestTargetId))}))}getLastRemoteSnapshotVersion(ee){return this.bs(ee).next((ee=>SnapshotVersion.fromTimestamp(new Timestamp(ee.lastRemoteSnapshotVersion.seconds,ee.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(ee){return this.bs(ee).next((ee=>ee.highestListenSequenceNumber))}setTargetsMetadata(ee,te,ne){return this.bs(ee).next((re=>(re.highestListenSequenceNumber=te,ne&&(re.lastRemoteSnapshotVersion=ne.toTimestamp()),te>re.highestListenSequenceNumber&&(re.highestListenSequenceNumber=te),this.vs(ee,re))))}addTargetData(ee,te){return this.Ss(ee,te).next((()=>this.bs(ee).next((ne=>(ne.targetCount+=1,this.Ds(te,ne),this.vs(ee,ne))))))}updateTargetData(ee,te){return this.Ss(ee,te)}removeTargetData(ee,te){return this.removeMatchingKeysForTargetId(ee,te.targetId).next((()=>__PRIVATE_targetsStore(ee).delete(te.targetId))).next((()=>this.bs(ee))).next((te=>(__PRIVATE_hardAssert(te.targetCount>0,8065),te.targetCount-=1,this.vs(ee,te))))}removeTargets(ee,te,ne){let re=0;const se=[];return __PRIVATE_targetsStore(ee).jn(((ie,ae)=>{const oe=__PRIVATE_fromDbTarget(this.serializer,ae);oe.sequenceNumber<=te&&null===ne.get(oe.targetId)&&(re++,se.push(this.removeTargetData(ee,oe)))})).next((()=>PersistencePromise.waitFor(se))).next((()=>re))}forEachTarget(ee,te){return __PRIVATE_targetsStore(ee).jn(((ee,ne)=>{const re=__PRIVATE_fromDbTarget(this.serializer,ne);te(re)}))}bs(ee){return __PRIVATE_globalTargetStore(ee).get(is).next((ee=>(__PRIVATE_hardAssert(null!==ee,2888),ee)))}vs(ee,te){return __PRIVATE_globalTargetStore(ee).put(is,te)}Ss(ee,te){return __PRIVATE_targetsStore(ee).put(__PRIVATE_toDbTarget(this.serializer,te))}Ds(ee,te){let ne=!1;return ee.targetId>te.highestTargetId&&(te.highestTargetId=ee.targetId,ne=!0),ee.sequenceNumber>te.highestListenSequenceNumber&&(te.highestListenSequenceNumber=ee.sequenceNumber,ne=!0),ne}getTargetCount(ee){return this.bs(ee).next((ee=>ee.targetCount))}getTargetData(ee,te){const ne=__PRIVATE_canonifyTargetOrPipeline(te),re=IDBKeyRange.bound([ne,Number.NEGATIVE_INFINITY],[ne,Number.POSITIVE_INFINITY]);let se=null;return __PRIVATE_targetsStore(ee).jn({range:re,index:Zr},((ee,ne,re)=>{const ie=__PRIVATE_fromDbTarget(this.serializer,ne);__PRIVATE_targetOrPipelineEqual(te,ie.target)&&(se=ie,re.done())})).next((()=>se))}addMatchingKeys(ee,te,ne){const re=[],se=__PRIVATE_documentTargetStore(ee);return te.forEach((te=>{const ie=__PRIVATE_encodeResourcePath(te.path);re.push(se.put({targetId:ne,path:ie})),re.push(this.referenceDelegate.addReference(ee,ne,te))})),PersistencePromise.waitFor(re)}removeMatchingKeys(ee,te,ne){const re=__PRIVATE_documentTargetStore(ee);return PersistencePromise.forEach(te,(te=>{const se=__PRIVATE_encodeResourcePath(te.path);return PersistencePromise.waitFor([re.delete([ne,se]),this.referenceDelegate.removeReference(ee,ne,te)])}))}removeMatchingKeysForTargetId(ee,te){const ne=__PRIVATE_documentTargetStore(ee),re=IDBKeyRange.bound([te],[te+1],!1,!0);return ne.delete(re)}getMatchingKeysForTargetId(ee,te){const ne=IDBKeyRange.bound([te],[te+1],!1,!0),re=__PRIVATE_documentTargetStore(ee);let se=__PRIVATE_documentKeySet();return re.jn({range:ne,zn:!0},((ee,te,ne)=>{const re=__PRIVATE_decodeResourcePath(ee[1]),ie=new DocumentKey(re);se=se.add(ie)})).next((()=>se))}containsKey(ee,te){const ne=__PRIVATE_encodeResourcePath(te.path),re=IDBKeyRange.bound([ne],[__PRIVATE_immediateSuccessor(ne)],!1,!0);let se=0;return __PRIVATE_documentTargetStore(ee).jn({index:rs,zn:!0,range:re},(([ee,te],ne,re)=>{0!==ee&&(se++,re.done())})).next((()=>se>0))}ge(ee,te){return __PRIVATE_targetsStore(ee).get(te).next((ee=>ee?__PRIVATE_fromDbTarget(this.serializer,ee):null))}}function __PRIVATE_targetsStore(ee){return __PRIVATE_getStore(ee,Xr)}function __PRIVATE_globalTargetStore(ee){return __PRIVATE_getStore(ee,as)}function __PRIVATE_documentTargetStore(ee){return __PRIVATE_getStore(ee,ts)}class __PRIVATE_IndexedDbLruDelegateImpl{constructor(ee,te){this.db=ee,this.garbageCollector=__PRIVATE_newLruGarbageCollector(this,te)}rr(ee){const te=this.xs(ee);return this.db.getTargetCache().getTargetCount(ee).next((ee=>te.next((te=>ee+te))))}xs(ee){let te=0;return this.ir(ee,(ee=>{te++})).next((()=>te))}forEachTarget(ee,te){return this.db.getTargetCache().forEachTarget(ee,te)}ir(ee,te){return this.Cs(ee,((ee,ne)=>te(ne)))}addReference(ee,te,ne){return __PRIVATE_writeSentinelKey(ee,ne)}removeReference(ee,te,ne){return __PRIVATE_writeSentinelKey(ee,ne)}removeTargets(ee,te,ne){return this.db.getTargetCache().removeTargets(ee,te,ne)}markPotentiallyOrphaned(ee,te){return __PRIVATE_writeSentinelKey(ee,te)}Fs(ee,te){return function __PRIVATE_mutationQueuesContainKey(ee,te){let ne=!1;return __PRIVATE_mutationQueuesStore(ee).Hn((re=>__PRIVATE_mutationQueueContainsKey(ee,re,te).next((ee=>(ee&&(ne=!0),PersistencePromise.resolve(!ee)))))).next((()=>ne))}(ee,te)}removeOrphanedDocuments(ee,te){const ne=this.db.getRemoteDocumentCache().newChangeBuffer(),re=[];let se=0;return this.Cs(ee,((ie,ae)=>{if(ae<=te){const te=this.Fs(ee,ie).next((te=>{if(!te)return se++,ne.getEntry(ee,ie).next((()=>(ne.removeEntry(ie,SnapshotVersion.min()),__PRIVATE_documentTargetStore(ee).delete(function __PRIVATE_sentinelKey$1(ee){return[0,__PRIVATE_encodeResourcePath(ee.path)]}(ie)))))}));re.push(te)}})).next((()=>PersistencePromise.waitFor(re))).next((()=>ne.apply(ee))).next((()=>se))}removeTarget(ee,te){const ne=te.withSequenceNumber(ee.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(ee,ne)}updateLimboDocument(ee,te){return __PRIVATE_writeSentinelKey(ee,te)}Cs(ee,te){const ne=__PRIVATE_documentTargetStore(ee);let re,se=__PRIVATE_ListenSequence.yn;return ne.jn({index:rs},(([ee,ne],{path:ie,sequenceNumber:ae})=>{0===ee?(se!==__PRIVATE_ListenSequence.yn&&te(new DocumentKey(__PRIVATE_decodeResourcePath(re)),se),se=ae,re=ie):se=__PRIVATE_ListenSequence.yn})).next((()=>{se!==__PRIVATE_ListenSequence.yn&&te(new DocumentKey(__PRIVATE_decodeResourcePath(re)),se)}))}getCacheSize(ee){return this.db.getRemoteDocumentCache().getSize(ee)}}function __PRIVATE_writeSentinelKey(ee,te){return __PRIVATE_documentTargetStore(ee).put(function __PRIVATE_sentinelRow(ee,te){return{targetId:0,path:__PRIVATE_encodeResourcePath(ee.path),sequenceNumber:te}}(te,ee.currentSequenceNumber))}function __PRIVATE_runPipeline(ee,te){let ne=te;for(const te of ee.stages)ne=evaluate({serializer:ee.serializer,serverTimestampBehavior:ee.listenOptions?.serverTimestampBehavior},te,ne);return ne}function __PRIVATE_pipelineMatches(ee,te){return __PRIVATE_runPipeline(ee,[te]).length>0}function __PRIVATE_queryOrPipelineMatches(ee,te){return __PRIVATE_isPipeline(ee)?__PRIVATE_pipelineMatches(ee,te):__PRIVATE_queryMatches(ee,te)}function evaluate(ee,te,ne){if(te instanceof H)return function __PRIVATE_evaluateCollection(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()&&`/${ee.key.getCollectionPath().canonicalString()}`===te.Er))}(0,te,ne);if(te instanceof A)return function __PRIVATE_evaluateWhere(ee,te,ne){return ne.filter((ne=>{const re=__PRIVATE_valueOrUndefined(__PRIVATE_toEvaluable(te.condition).evaluate(ee,ne));return void 0!==re&&__PRIVATE_valueEquals$1(re,kn)}))}(ee,te,ne);if(te instanceof J)return function __PRIVATE_evaluateCollectionGroup(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()&&ee.key.getCollectionPath().lastSegment()===te.collectionId))}(0,te,ne);if(te instanceof Q)return function __PRIVATE_evaluateDatabase(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()))}(0,0,ne);if(te instanceof Y)return function __PRIVATE_evaluateDocuments(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()&&te.Tr.has(ee.key.path.toStringWithLeadingSlash())))}(0,te,ne);if(te instanceof v)return function __PRIVATE_evaluateLimit(ee,te,ne){return ne.slice(0,te.limit)}(0,te,ne);if(te instanceof L)return function __PRIVATE_evaluateSort(ee,te,ne){const re=te.orderings.map((ee=>({Os:__PRIVATE_toEvaluable(ee.expr),direction:ee.direction})));return[...ne].sort(((te,ne)=>{for(const{Os:se,direction:ie}of re){const re=__PRIVATE_valueOrUndefined(se.evaluate(ee,te)),ae=__PRIVATE_valueOrUndefined(se.evaluate(ee,ne)),oe=__PRIVATE_valueCompare(re??Mn,ae??Mn);if(0!==oe)return"ascending"===ie?oe:-oe}return 0}))}(ee,te,ne);throw new Error(`Unknown stage: ${te._name}`)}function __PRIVATE_newPipelineComparator(ee){const te=function __PRIVATE_lastEffectiveSort(ee){for(let te=ee.stages.length-1;te>=0;te--){const ne=ee.stages[te];if(ne instanceof L)return ne.orderings}throw new Error("Pipeline must contain at least one Sort stage")}(ee);return(ne,re)=>{for(const se of te){const te=__PRIVATE_valueOrUndefined(__PRIVATE_toEvaluable(se.expr).evaluate({serializer:ee.serializer},ne)),ie=__PRIVATE_valueOrUndefined(__PRIVATE_toEvaluable(se.expr).evaluate({serializer:ee.serializer},re)),ae=__PRIVATE_valueCompare(te||Mn,ie||Mn);if(0!==ae)return"ascending"===se.direction?ae:-ae}return 0}}function __PRIVATE_getLastEffectiveLimit(ee){for(let te=ee.stages.length-1;te>=0;te--){const ne=ee.stages[te];if(ne instanceof v)return{limit:ne.limit}}}class RemoteDocumentChangeBuffer{constructor(){this.changes=new ObjectMap((ee=>ee.toString()),((ee,te)=>ee.isEqual(te))),this.changesApplied=!1}addEntry(ee){this.assertNotApplied(),this.changes.set(ee.key,ee)}removeEntry(ee,te){this.assertNotApplied(),this.changes.set(ee,MutableDocument.newInvalidDocument(ee).setReadTime(te))}getEntry(ee,te){this.assertNotApplied();const ne=this.changes.get(te);return void 0!==ne?PersistencePromise.resolve(ne):this.getFromCache(ee,te)}getEntries(ee,te){return this.getAllFromCache(ee,te)}apply(ee){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(ee)}assertNotApplied(){}}class __PRIVATE_IndexedDbRemoteDocumentCacheImpl{constructor(ee){this.serializer=ee}setIndexManager(ee){this.indexManager=ee}addEntry(ee,te,ne){return __PRIVATE_remoteDocumentsStore(ee).put(ne)}removeEntry(ee,te,ne){return __PRIVATE_remoteDocumentsStore(ee).delete(function __PRIVATE_dbReadTimeKey(ee,te){const ne=ee.path.toArray();return[ne.slice(0,ne.length-2),ne[ne.length-2],__PRIVATE_toDbTimestampKey(te),ne[ne.length-1]]}(te,ne))}updateMetadata(ee,te){return this.getMetadata(ee).next((ne=>(ne.byteSize+=te,this.Ms(ee,ne))))}getEntry(ee,te){let ne=MutableDocument.newInvalidDocument(te);return __PRIVATE_remoteDocumentsStore(ee).jn({index:jr,range:IDBKeyRange.only(__PRIVATE_dbKey(te))},((ee,re)=>{ne=this.Ns(te,re)})).next((()=>ne))}Ls(ee,te){let ne={size:0,document:MutableDocument.newInvalidDocument(te)};return __PRIVATE_remoteDocumentsStore(ee).jn({index:jr,range:IDBKeyRange.only(__PRIVATE_dbKey(te))},((ee,re)=>{ne={document:this.Ns(te,re),size:__PRIVATE_dbDocumentSize(re)}})).next((()=>ne))}getEntries(ee,te){let ne=__PRIVATE_mutableDocumentMap();return this.Bs(ee,te,((ee,te)=>{const re=this.Ns(ee,te);ne=ne.insert(ee,re)})).next((()=>ne))}getAllEntries(ee){let te=__PRIVATE_mutableDocumentMap();return __PRIVATE_remoteDocumentsStore(ee).jn(((ee,ne)=>{const re=this.Ns(DocumentKey.fromSegments(ne.prefixPath.concat(ne.collectionGroup,ne.documentId)),ne);te=te.insert(re.key,re)})).next((()=>te))}Us(ee,te){let ne=__PRIVATE_mutableDocumentMap(),re=new SortedMap(DocumentKey.comparator);return this.Bs(ee,te,((ee,te)=>{const se=this.Ns(ee,te);ne=ne.insert(ee,se),re=re.insert(ee,__PRIVATE_dbDocumentSize(te))})).next((()=>({documents:ne,ks:re})))}Bs(ee,te,ne){if(te.isEmpty())return PersistencePromise.resolve();let re=new SortedSet(__PRIVATE_dbKeyComparator);te.forEach((ee=>re=re.add(ee)));const se=IDBKeyRange.bound(__PRIVATE_dbKey(re.first()),__PRIVATE_dbKey(re.last())),ie=re.getIterator();let ae=ie.getNext();return __PRIVATE_remoteDocumentsStore(ee).jn({index:jr,range:se},((ee,te,re)=>{const se=DocumentKey.fromSegments([...te.prefixPath,te.collectionGroup,te.documentId]);for(;ae&&__PRIVATE_dbKeyComparator(ae,se)<0;)ne(ae,null),ae=ie.getNext();ae&&ae.isEqual(se)&&(ne(ae,te),ae=ie.hasNext()?ie.getNext():null),ae?re.$n(__PRIVATE_dbKey(ae)):re.done()})).next((()=>{for(;ae;)ne(ae,null),ae=ie.hasNext()?ie.getNext():null}))}getDocumentsMatchingQuery(ee,te,ne,re,se){const ie=__PRIVATE_isPipeline(te)?ResourcePath.fromString(getPipelineCollection(te)):te.path,ae=[ie.popLast().toArray(),ie.lastSegment(),__PRIVATE_toDbTimestampKey(ne.readTime),ne.documentKey.path.isEmpty()?"":ne.documentKey.path.lastSegment()],oe=[ie.popLast().toArray(),ie.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return __PRIVATE_remoteDocumentsStore(ee).Kn(IDBKeyRange.bound(ae,oe,!0)).next((ee=>{se?.incrementDocumentReadCount(ee.length);let ne=__PRIVATE_mutableDocumentMap();for(const se of ee){const ee=this.Ns(DocumentKey.fromSegments(se.prefixPath.concat(se.collectionGroup,se.documentId)),se);ee.isFoundDocument()&&(__PRIVATE_queryOrPipelineMatches(te,ee)||re.has(ee.key))&&(ne=ne.insert(ee.key,ee))}return ne}))}getAllFromCollectionGroup(ee,te,ne,re){let se=__PRIVATE_mutableDocumentMap();const ie=__PRIVATE_dbCollectionGroupKey(te,ne),ae=__PRIVATE_dbCollectionGroupKey(te,IndexOffset.max());return __PRIVATE_remoteDocumentsStore(ee).jn({index:zr,range:IDBKeyRange.bound(ie,ae,!0)},((ee,te,ne)=>{const ie=this.Ns(DocumentKey.fromSegments(te.prefixPath.concat(te.collectionGroup,te.documentId)),te);se=se.insert(ie.key,ie),se.size===re&&ne.done()})).next((()=>se))}newChangeBuffer(ee){return new __PRIVATE_IndexedDbRemoteDocumentChangeBuffer(this,!!ee&&ee.trackRemovals)}getSize(ee){return this.getMetadata(ee).next((ee=>ee.byteSize))}getMetadata(ee){return __PRIVATE_documentGlobalStore(ee).get(Yr).next((ee=>(__PRIVATE_hardAssert(!!ee,20021),ee)))}Ms(ee,te){return __PRIVATE_documentGlobalStore(ee).put(Yr,te)}Ns(ee,te){if(te){const ee=function __PRIVATE_fromDbRemoteDocument(ee,te){let ne;if(te.document)ne=fromDocument(ee.qr,te.document,!!te.hasCommittedMutations);else if(te.noDocument){const ee=DocumentKey.fromSegments(te.noDocument.path),re=__PRIVATE_fromDbTimestamp(te.noDocument.readTime);ne=MutableDocument.newNoDocument(ee,re),te.hasCommittedMutations&&ne.setHasCommittedMutations()}else{if(!te.unknownDocument)return l(56709);{const ee=DocumentKey.fromSegments(te.unknownDocument.path),re=__PRIVATE_fromDbTimestamp(te.unknownDocument.version);ne=MutableDocument.newUnknownDocument(ee,re)}}return te.readTime&&ne.setReadTime(function __PRIVATE_fromDbTimestampKey(ee){const te=new Timestamp(ee[0],ee[1]);return SnapshotVersion.fromTimestamp(te)}(te.readTime)),ne}(this.serializer,te);if(!ee.isNoDocument()||!ee.version.isEqual(SnapshotVersion.min()))return ee}return MutableDocument.newInvalidDocument(ee)}}function __PRIVATE_newIndexedDbRemoteDocumentCache(ee){return new __PRIVATE_IndexedDbRemoteDocumentCacheImpl(ee)}class __PRIVATE_IndexedDbRemoteDocumentChangeBuffer extends RemoteDocumentChangeBuffer{constructor(ee,te){super(),this.qs=ee,this.trackRemovals=te,this.$s=new ObjectMap((ee=>ee.toString()),((ee,te)=>ee.isEqual(te)))}applyChanges(ee){const te=[];let ne=0,re=new SortedSet(((ee,te)=>__PRIVATE_primitiveComparator(ee.canonicalString(),te.canonicalString())));return this.changes.forEach(((se,ie)=>{const ae=this.$s.get(se);if(te.push(this.qs.removeEntry(ee,se,ae.readTime)),ie.isValidDocument()){const oe=__PRIVATE_toDbRemoteDocument(this.qs.serializer,ie);re=re.add(se.path.popLast());const ue=__PRIVATE_dbDocumentSize(oe);ne+=ue-ae.size,te.push(this.qs.addEntry(ee,se,oe))}else if(ne-=ae.size,this.trackRemovals){const ne=__PRIVATE_toDbRemoteDocument(this.qs.serializer,ie.convertToNoDocument(SnapshotVersion.min()));te.push(this.qs.addEntry(ee,se,ne))}})),re.forEach((ne=>{te.push(this.qs.indexManager.addToCollectionParentIndex(ee,ne))})),te.push(this.qs.updateMetadata(ee,ne)),PersistencePromise.waitFor(te)}getFromCache(ee,te){return this.qs.Ls(ee,te).next((ee=>(this.$s.set(te,{size:ee.size,readTime:ee.document.readTime}),ee.document)))}getAllFromCache(ee,te){return this.qs.Us(ee,te).next((({documents:ee,ks:te})=>(te.forEach(((te,ne)=>{this.$s.set(te,{size:ne,readTime:ee.get(te).readTime})})),ee)))}}function __PRIVATE_documentGlobalStore(ee){return __PRIVATE_getStore(ee,$r)}function __PRIVATE_remoteDocumentsStore(ee){return __PRIVATE_getStore(ee,Kr)}function __PRIVATE_dbKey(ee){const te=ee.path.toArray();return[te.slice(0,te.length-2),te[te.length-2],te[te.length-1]]}function __PRIVATE_dbCollectionGroupKey(ee,te){const ne=te.documentKey.path.toArray();return[ee,__PRIVATE_toDbTimestampKey(te.readTime),ne.slice(0,ne.length-2),ne.length>0?ne[ne.length-1]:""]}function __PRIVATE_dbKeyComparator(ee,te){const ne=ee.path.toArray(),re=te.path.toArray();let se=0;for(let ee=0;ee<ne.length-2&&ee<re.length-2;++ee)if(se=__PRIVATE_primitiveComparator(ne[ee],re[ee]),se)return se;return se=__PRIVATE_primitiveComparator(ne.length,re.length),se||(se=__PRIVATE_primitiveComparator(ne[ne.length-2],re[re.length-2]),se||__PRIVATE_primitiveComparator(ne[ne.length-1],re[re.length-1]))}class OverlayedDocument{constructor(ee,te){this.overlayedDocument=ee,this.mutatedFields=te}}class LocalDocumentsView{constructor(ee,te,ne,re){this.remoteDocumentCache=ee,this.mutationQueue=te,this.documentOverlayCache=ne,this.indexManager=re}getDocument(ee,te){let ne=null;return this.documentOverlayCache.getOverlay(ee,te).next((re=>(ne=re,this.remoteDocumentCache.getEntry(ee,te)))).next((ee=>(null!==ne&&__PRIVATE_mutationApplyToLocalView(ne.mutation,ee,FieldMask.empty(),Timestamp.now()),ee)))}getDocuments(ee,te){return this.remoteDocumentCache.getEntries(ee,te).next((te=>this.getLocalViewOfDocuments(ee,te,__PRIVATE_documentKeySet()).next((()=>te))))}getLocalViewOfDocuments(ee,te,ne=__PRIVATE_documentKeySet()){const re=__PRIVATE_newOverlayMap();return this.populateOverlays(ee,re,te).next((()=>this.computeViews(ee,te,re,ne).next((ee=>{let te=documentMap();return ee.forEach(((ee,ne)=>{te=te.insert(ee,ne.overlayedDocument)})),te}))))}getOverlayedDocuments(ee,te){const ne=__PRIVATE_newOverlayMap();return this.populateOverlays(ee,ne,te).next((()=>this.computeViews(ee,te,ne,__PRIVATE_documentKeySet())))}populateOverlays(ee,te,ne){const re=[];return ne.forEach((ee=>{te.has(ee)||re.push(ee)})),this.documentOverlayCache.getOverlays(ee,re).next((ee=>{ee.forEach(((ee,ne)=>{te.set(ee,ne)}))}))}computeViews(ee,te,ne,re){let se=__PRIVATE_mutableDocumentMap();const ie=__PRIVATE_newDocumentKeyMap(),ae=function __PRIVATE_newOverlayedDocumentMap(){return __PRIVATE_newDocumentKeyMap()}();return te.forEach(((ee,te)=>{const ae=ne.get(te.key);re.has(te.key)&&(void 0===ae||ae.mutation instanceof __PRIVATE_PatchMutation)?se=se.insert(te.key,te):void 0!==ae?(ie.set(te.key,ae.mutation.getFieldMask()),__PRIVATE_mutationApplyToLocalView(ae.mutation,te,ae.mutation.getFieldMask(),Timestamp.now())):ie.set(te.key,FieldMask.empty())})),this.recalculateAndSaveOverlays(ee,se).next((ee=>(ee.forEach(((ee,te)=>ie.set(ee,te))),te.forEach(((ee,te)=>ae.set(ee,new OverlayedDocument(te,ie.get(ee)??null)))),ae)))}recalculateAndSaveOverlays(ee,te){const ne=__PRIVATE_newDocumentKeyMap();let re=new SortedMap(((ee,te)=>ee-te)),se=__PRIVATE_documentKeySet();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(ee,te).next((ee=>{for(const se of ee)se.keys().forEach((ee=>{const ie=te.get(ee);if(null===ie)return;let ae=ne.get(ee)||FieldMask.empty();ae=se.applyToLocalView(ie,ae),ne.set(ee,ae);const oe=(re.get(se.batchId)||__PRIVATE_documentKeySet()).add(ee);re=re.insert(se.batchId,oe)}))})).next((()=>{const ie=[],ae=re.getReverseIterator();for(;ae.hasNext();){const re=ae.getNext(),oe=re.key,ue=re.value,Be=__PRIVATE_newMutationMap();ue.forEach((ee=>{if(!se.has(ee)){const re=__PRIVATE_calculateOverlayMutation(te.get(ee),ne.get(ee));null!==re&&Be.set(ee,re),se=se.add(ee)}})),ie.push(this.documentOverlayCache.saveOverlays(ee,oe,Be))}return PersistencePromise.waitFor(ie)})).next((()=>ne))}recalculateAndSaveOverlaysForDocumentKeys(ee,te){return this.remoteDocumentCache.getEntries(ee,te).next((te=>this.recalculateAndSaveOverlays(ee,te)))}getDocumentsMatchingQuery(ee,te,ne,re){return __PRIVATE_isPipeline(te)?this.getDocumentsMatchingPipeline(ee,te,ne,re):__PRIVATE_isDocumentQuery$1(te)?this.getDocumentsMatchingDocumentQuery(ee,te.path):__PRIVATE_isCollectionGroupQuery(te)?this.getDocumentsMatchingCollectionGroupQuery(ee,te,ne,re):this.getDocumentsMatchingCollectionQuery(ee,te,ne,re)}getNextDocuments(ee,te,ne,re){return this.remoteDocumentCache.getAllFromCollectionGroup(ee,te,ne,re).next((se=>{const ie=re-se.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(ee,te,ne.largestBatchId,re-se.size):PersistencePromise.resolve(__PRIVATE_newOverlayMap());let ae=Hn,oe=se;return ie.next((te=>PersistencePromise.forEach(te,((te,ne)=>(ae<ne.largestBatchId&&(ae=ne.largestBatchId),se.get(te)?PersistencePromise.resolve():this.remoteDocumentCache.getEntry(ee,te).next((ee=>{oe=oe.insert(te,ee)}))))).next((()=>this.populateOverlays(ee,te,se))).next((()=>this.computeViews(ee,oe,te,__PRIVATE_documentKeySet()))).next((ee=>({batchId:ae,changes:__PRIVATE_convertOverlayedDocumentMapToDocumentMap(ee)})))))}))}getDocumentsMatchingDocumentQuery(ee,te){return this.getDocument(ee,new DocumentKey(te)).next((ee=>{let te=documentMap();return ee.isFoundDocument()&&(te=te.insert(ee.key,ee)),te}))}getDocumentsMatchingCollectionGroupQuery(ee,te,ne,re){const se=te.collectionGroup;let ie=documentMap();return this.indexManager.getCollectionParents(ee,se).next((ae=>PersistencePromise.forEach(ae,(ae=>{const oe=function __PRIVATE_asCollectionQueryAtPath(ee,te){return new __PRIVATE_QueryImpl(te,null,ee.explicitOrderBy.slice(),ee.filters.slice(),ee.limit,ee.limitType,ee.startAt,ee.endAt)}(te,ae.child(se));return this.getDocumentsMatchingCollectionQuery(ee,oe,ne,re).next((ee=>{ee.forEach(((ee,te)=>{ie=ie.insert(ee,te)}))}))})).next((()=>ie))))}getDocumentsMatchingCollectionQuery(ee,te,ne,re){let se;return this.documentOverlayCache.getOverlaysForCollection(ee,te.path,ne.largestBatchId).next((ie=>(se=ie,this.remoteDocumentCache.getDocumentsMatchingQuery(ee,te,ne,se,re)))).next((ee=>this.retrieveMatchingLocalDocuments(se,ee,(ee=>__PRIVATE_queryMatches(te,ee)))))}getDocumentsMatchingPipeline(ee,te,ne,re){if("collection_group"===getPipelineSourceType(te)){const se=getPipelineCollectionGroup(te);let ie=documentMap();return this.indexManager.getCollectionParents(ee,se).next((ae=>PersistencePromise.forEach(ae,(ae=>{const oe=function __PRIVATE_asCollectionPipelineAtPath(ee,te){const ne=ee.stages.map((ee=>ee instanceof J?new H(te.canonicalString(),{}):ee));return new CorePipeline(ee.serializer,ne)}(te,ae.child(se));return this.getDocumentsMatchingPipeline(ee,oe,ne,re).next((ee=>{ee.forEach(((ee,te)=>{ie=ie.insert(ee,te)}))}))})).next((()=>ie))))}{let se;return this.getOverlaysForPipeline(ee,te,ne.largestBatchId).next((ie=>{switch(se=ie,getPipelineSourceType(te)){case"collection":return this.remoteDocumentCache.getDocumentsMatchingQuery(ee,te,ne,se,re);case"documents":let ie=__PRIVATE_documentKeySet();for(const ee of getPipelineDocuments(te))ie=ie.add(DocumentKey.fromPath(ee));return this.remoteDocumentCache.getEntries(ee,ie);case"database":return this.remoteDocumentCache.getAllEntries(ee);default:throw new s("invalid-argument",`Invalid pipeline source to execute offline: ${__PRIVATE_canonifyPipeline(te)}`)}})).next((ee=>this.retrieveMatchingLocalDocuments(se,ee,(ee=>__PRIVATE_pipelineMatches(te,ee)))))}}retrieveMatchingLocalDocuments(ee,te,ne){ee.forEach(((ee,ne)=>{const re=ne.getKey();null===te.get(re)&&(te=te.insert(re,MutableDocument.newInvalidDocument(re)))}));let re=documentMap();return te.forEach(((te,se)=>{const ie=ee.get(te);void 0!==ie&&__PRIVATE_mutationApplyToLocalView(ie.mutation,se,FieldMask.empty(),Timestamp.now()),ne(se)&&(re=re.insert(te,se))})),re}getOverlaysForPipeline(ee,te,ne){switch(getPipelineSourceType(te)){case"collection":return this.documentOverlayCache.getOverlaysForCollection(ee,ResourcePath.fromString(getPipelineCollection(te)),ne);case"collection_group":throw new s("invalid-argument",`Unexpected collection group pipeline: ${__PRIVATE_canonifyPipeline(te)}`);case"documents":return this.documentOverlayCache.getOverlays(ee,getPipelineDocuments(te).map((ee=>DocumentKey.fromPath(ee))));case"database":return this.documentOverlayCache.getAllOverlays(ee,ne);default:throw new s("invalid-argument",`Failed to get overlays for pipeline: ${__PRIVATE_canonifyPipeline(te)}`)}}}class __PRIVATE_MemoryBundleCache{constructor(ee){this.serializer=ee,this.Ks=new Map,this.Ws=new Map}getBundleMetadata(ee,te){return PersistencePromise.resolve(this.Ks.get(te))}saveBundleMetadata(ee,te){return this.Ks.set(te.id,function __PRIVATE_fromBundleMetadata(ee){return{id:ee.id,version:ee.version,createTime:__PRIVATE_fromVersion(ee.createTime)}}(te)),PersistencePromise.resolve()}getNamedQuery(ee,te){return PersistencePromise.resolve(this.Ws.get(te))}saveNamedQuery(ee,te){return this.Ws.set(te.name,function __PRIVATE_fromProtoNamedQuery(ee){return{name:ee.name,query:__PRIVATE_fromBundledQuery(ee.bundledQuery),readTime:__PRIVATE_fromVersion(ee.readTime)}}(te)),PersistencePromise.resolve()}}class __PRIVATE_MemoryDocumentOverlayCache{constructor(){this.overlays=new SortedMap(DocumentKey.comparator),this.Qs=new Map}getOverlay(ee,te){return PersistencePromise.resolve(this.overlays.get(te))}getOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return PersistencePromise.forEach(te,(te=>this.getOverlay(ee,te).next((ee=>{null!==ee&&ne.set(te,ee)})))).next((()=>ne))}getAllOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return this.overlays.forEach(((ee,re)=>{re.largestBatchId>te&&ne.set(ee,re)})),PersistencePromise.resolve(ne)}saveOverlays(ee,te,ne){return ne.forEach(((ne,re)=>{this.Yr(ee,te,re)})),PersistencePromise.resolve()}removeOverlaysForBatchId(ee,te,ne){const re=this.Qs.get(ne);return void 0!==re&&(re.forEach((ee=>this.overlays=this.overlays.remove(ee))),this.Qs.delete(ne)),PersistencePromise.resolve()}getOverlaysForCollection(ee,te,ne){const re=__PRIVATE_newOverlayMap(),se=te.length+1,ie=new DocumentKey(te.child("")),ae=this.overlays.getIteratorFrom(ie);for(;ae.hasNext();){const ee=ae.getNext().value,ie=ee.getKey();if(!te.isPrefixOf(ie.path))break;ie.path.length===se&&ee.largestBatchId>ne&&re.set(ee.getKey(),ee)}return PersistencePromise.resolve(re)}getOverlaysForCollectionGroup(ee,te,ne,re){let se=new SortedMap(((ee,te)=>ee-te));const ie=this.overlays.getIterator();for(;ie.hasNext();){const ee=ie.getNext().value;if(ee.getKey().getCollectionGroup()===te&&ee.largestBatchId>ne){let te=se.get(ee.largestBatchId);null===te&&(te=__PRIVATE_newOverlayMap(),se=se.insert(ee.largestBatchId,te)),te.set(ee.getKey(),ee)}}const ae=__PRIVATE_newOverlayMap(),oe=se.getIterator();for(;oe.hasNext()&&(oe.getNext().value.forEach(((ee,te)=>ae.set(ee,te))),!(ae.size()>=re)););return PersistencePromise.resolve(ae)}Yr(ee,te,ne){const re=this.overlays.get(ne.key);if(null!==re){const ee=this.Qs.get(re.largestBatchId).delete(ne.key);this.Qs.set(re.largestBatchId,ee)}this.overlays=this.overlays.insert(ne.key,new Overlay(te,ne));let se=this.Qs.get(te);void 0===se&&(se=__PRIVATE_documentKeySet(),this.Qs.set(te,se)),this.Qs.set(te,se.add(ne.key))}}class __PRIVATE_MemoryGlobalsCache{constructor(){this.sessionToken=ByteString.EMPTY_BYTE_STRING}getSessionToken(ee){return PersistencePromise.resolve(this.sessionToken)}setSessionToken(ee,te){return this.sessionToken=te,PersistencePromise.resolve()}}class __PRIVATE_ReferenceSet{constructor(){this.Gs=new SortedSet(__PRIVATE_DocReference.zs),this.js=new SortedSet(__PRIVATE_DocReference.Hs)}isEmpty(){return this.Gs.isEmpty()}addReference(ee,te){const ne=new __PRIVATE_DocReference(ee,te);this.Gs=this.Gs.add(ne),this.js=this.js.add(ne)}Js(ee,te){ee.forEach((ee=>this.addReference(ee,te)))}removeReference(ee,te){this.Ys(new __PRIVATE_DocReference(ee,te))}Zs(ee,te){ee.forEach((ee=>this.removeReference(ee,te)))}Xs(ee){const te=new DocumentKey(new ResourcePath([])),ne=new __PRIVATE_DocReference(te,ee),re=new __PRIVATE_DocReference(te,ee+1),se=[];return this.js.forEachInRange([ne,re],(ee=>{this.Ys(ee),se.push(ee.key)})),se}e_(){this.Gs.forEach((ee=>this.Ys(ee)))}Ys(ee){this.Gs=this.Gs.delete(ee),this.js=this.js.delete(ee)}t_(ee){const te=new DocumentKey(new ResourcePath([])),ne=new __PRIVATE_DocReference(te,ee),re=new __PRIVATE_DocReference(te,ee+1);let se=__PRIVATE_documentKeySet();return this.js.forEachInRange([ne,re],(ee=>{se=se.add(ee.key)})),se}containsKey(ee){const te=new __PRIVATE_DocReference(ee,0),ne=this.Gs.firstAfterOrEqual(te);return null!==ne&&ee.isEqual(ne.key)}}class __PRIVATE_DocReference{constructor(ee,te){this.key=ee,this.n_=te}static zs(ee,te){return DocumentKey.comparator(ee.key,te.key)||__PRIVATE_primitiveComparator(ee.n_,te.n_)}static Hs(ee,te){return __PRIVATE_primitiveComparator(ee.n_,te.n_)||DocumentKey.comparator(ee.key,te.key)}}class __PRIVATE_MemoryMutationQueue{constructor(ee,te){this.indexManager=ee,this.referenceDelegate=te,this.mutationQueue=[],this.Qr=1,this.r_=new SortedSet(__PRIVATE_DocReference.zs)}checkEmpty(ee){return PersistencePromise.resolve(0===this.mutationQueue.length)}addMutationBatch(ee,te,ne,re){const se=this.Qr;this.Qr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const ie=new MutationBatch(se,te,ne,re);this.mutationQueue.push(ie);for(const te of re)this.r_=this.r_.add(new __PRIVATE_DocReference(te.key,se)),this.indexManager.addToCollectionParentIndex(ee,te.key.path.popLast());return PersistencePromise.resolve(ie)}lookupMutationBatch(ee,te){return PersistencePromise.resolve(this.i_(te))}getNextMutationBatchAfterBatchId(ee,te){const ne=te+1,re=this.s_(ne),se=re<0?0:re;return PersistencePromise.resolve(this.mutationQueue.length>se?this.mutationQueue[se]:null)}getHighestUnacknowledgedBatchId(){return PersistencePromise.resolve(0===this.mutationQueue.length?vn:this.Qr-1)}getAllMutationBatches(ee){return PersistencePromise.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(ee,te){const ne=new __PRIVATE_DocReference(te,0),re=new __PRIVATE_DocReference(te,Number.POSITIVE_INFINITY),se=[];return this.r_.forEachInRange([ne,re],(ee=>{const te=this.i_(ee.n_);se.push(te)})),PersistencePromise.resolve(se)}getAllMutationBatchesAffectingDocumentKeys(ee,te){let ne=new SortedSet(__PRIVATE_primitiveComparator);return te.forEach((ee=>{const te=new __PRIVATE_DocReference(ee,0),re=new __PRIVATE_DocReference(ee,Number.POSITIVE_INFINITY);this.r_.forEachInRange([te,re],(ee=>{ne=ne.add(ee.n_)}))})),PersistencePromise.resolve(this.__(ne))}getAllMutationBatchesAffectingQuery(ee,te){const ne=te.path,re=ne.length+1;let se=ne;DocumentKey.isDocumentKey(se)||(se=se.child(""));const ie=new __PRIVATE_DocReference(new DocumentKey(se),0);let ae=new SortedSet(__PRIVATE_primitiveComparator);return this.r_.forEachWhile((ee=>{const te=ee.key.path;return!!ne.isPrefixOf(te)&&(te.length===re&&(ae=ae.add(ee.n_)),!0)}),ie),PersistencePromise.resolve(this.__(ae))}__(ee){const te=[];return ee.forEach((ee=>{const ne=this.i_(ee);null!==ne&&te.push(ne)})),te}removeMutationBatch(ee,te){__PRIVATE_hardAssert(0===this.o_(te.batchId,"removed"),55003),this.mutationQueue.shift();let ne=this.r_;return PersistencePromise.forEach(te.mutations,(re=>{const se=new __PRIVATE_DocReference(re.key,te.batchId);return ne=ne.delete(se),this.referenceDelegate.markPotentiallyOrphaned(ee,re.key)})).next((()=>{this.r_=ne}))}jr(ee){}containsKey(ee,te){const ne=new __PRIVATE_DocReference(te,0),re=this.r_.firstAfterOrEqual(ne);return PersistencePromise.resolve(te.isEqual(re&&re.key))}performConsistencyCheck(ee){return this.mutationQueue.length,PersistencePromise.resolve()}o_(ee,te){return this.s_(ee)}s_(ee){return 0===this.mutationQueue.length?0:ee-this.mutationQueue[0].batchId}i_(ee){const te=this.s_(ee);return te<0||te>=this.mutationQueue.length?null:this.mutationQueue[te]}}class __PRIVATE_MemoryRemoteDocumentCacheImpl{constructor(ee){this.a_=ee,this.docs=function __PRIVATE_documentEntryMap(){return new SortedMap(DocumentKey.comparator)}(),this.size=0}setIndexManager(ee){this.indexManager=ee}addEntry(ee,te){const ne=te.key,re=this.docs.get(ne),se=re?re.size:0,ie=this.a_(te);return this.docs=this.docs.insert(ne,{document:te.mutableCopy(),size:ie}),this.size+=ie-se,this.indexManager.addToCollectionParentIndex(ee,ne.path.popLast())}removeEntry(ee){const te=this.docs.get(ee);te&&(this.docs=this.docs.remove(ee),this.size-=te.size)}getEntry(ee,te){const ne=this.docs.get(te);return PersistencePromise.resolve(ne?ne.document.mutableCopy():MutableDocument.newInvalidDocument(te))}getEntries(ee,te){let ne=__PRIVATE_mutableDocumentMap();return te.forEach((ee=>{const te=this.docs.get(ee);ne=ne.insert(ee,te?te.document.mutableCopy():MutableDocument.newInvalidDocument(ee))})),PersistencePromise.resolve(ne)}getAllEntries(ee){let te=__PRIVATE_mutableDocumentMap();return this.docs.forEach(((ee,ne)=>{te=te.insert(ee,ne.document)})),PersistencePromise.resolve(te)}getDocumentsMatchingQuery(ee,te,ne,re){let se,ie;__PRIVATE_isPipeline(te)?(se=ResourcePath.fromString(getPipelineCollection(te)),ie=ee=>__PRIVATE_pipelineMatches(te,ee)):(se=te.path,ie=ee=>__PRIVATE_queryMatches(te,ee));let ae=__PRIVATE_mutableDocumentMap();const oe=new DocumentKey(se.child("__id-9223372036854775808__")),ue=this.docs.getIteratorFrom(oe);for(;ue.hasNext();){const{key:ee,value:{document:te}}=ue.getNext();if(!se.isPrefixOf(ee.path))break;ee.path.length>se.length+1||__PRIVATE_indexOffsetComparator(__PRIVATE_newIndexOffsetFromDocument(te),ne)<=0||(re.has(te.key)||ie(te))&&(ae=ae.insert(te.key,te.mutableCopy()))}return PersistencePromise.resolve(ae)}getAllFromCollectionGroup(ee,te,ne,re){l(9500)}u_(ee,te){return PersistencePromise.forEach(this.docs,(ee=>te(ee)))}newChangeBuffer(ee){return new __PRIVATE_MemoryRemoteDocumentChangeBuffer(this)}getSize(ee){return PersistencePromise.resolve(this.size)}}class __PRIVATE_MemoryRemoteDocumentChangeBuffer extends RemoteDocumentChangeBuffer{constructor(ee){super(),this.qs=ee}applyChanges(ee){const te=[];return this.changes.forEach(((ne,re)=>{re.isValidDocument()?te.push(this.qs.addEntry(ee,re)):this.qs.removeEntry(ne)})),PersistencePromise.waitFor(te)}getFromCache(ee,te){return this.qs.getEntry(ee,te)}getAllFromCache(ee,te){return this.qs.getEntries(ee,te)}}class __PRIVATE_MemoryTargetCache{constructor(ee){this.persistence=ee,this.c_=new ObjectMap((ee=>__PRIVATE_canonifyTargetOrPipeline(ee)),__PRIVATE_targetOrPipelineEqual),this.lastRemoteSnapshotVersion=SnapshotVersion.min(),this.highestTargetId=0,this.l_=0,this.E_=new __PRIVATE_ReferenceSet,this.targetCount=0,this.h_=__PRIVATE_TargetIdGenerator.ys()}forEachTarget(ee,te){return this.c_.forEach(((ee,ne)=>te(ne))),PersistencePromise.resolve()}getLastRemoteSnapshotVersion(ee){return PersistencePromise.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(ee){return PersistencePromise.resolve(this.l_)}allocateTargetId(ee){return this.highestTargetId=this.h_.next(),PersistencePromise.resolve(this.highestTargetId)}setTargetsMetadata(ee,te,ne){return ne&&(this.lastRemoteSnapshotVersion=ne),te>this.l_&&(this.l_=te),PersistencePromise.resolve()}Ss(ee){this.c_.set(ee.target,ee);const te=ee.targetId;te>this.highestTargetId&&(this.h_=new __PRIVATE_TargetIdGenerator(te),this.highestTargetId=te),ee.sequenceNumber>this.l_&&(this.l_=ee.sequenceNumber)}addTargetData(ee,te){return this.Ss(te),this.targetCount+=1,PersistencePromise.resolve()}updateTargetData(ee,te){return this.Ss(te),PersistencePromise.resolve()}removeTargetData(ee,te){return this.c_.delete(te.target),this.E_.Xs(te.targetId),this.targetCount-=1,PersistencePromise.resolve()}removeTargets(ee,te,ne){let re=0;const se=[];return this.c_.forEach(((ie,ae)=>{ae.sequenceNumber<=te&&null===ne.get(ae.targetId)&&(this.c_.delete(ie),se.push(this.removeMatchingKeysForTargetId(ee,ae.targetId)),re++)})),PersistencePromise.waitFor(se).next((()=>re))}getTargetCount(ee){return PersistencePromise.resolve(this.targetCount)}getTargetData(ee,te){const ne=this.c_.get(te)||null;return PersistencePromise.resolve(ne)}addMatchingKeys(ee,te,ne){return this.E_.Js(te,ne),PersistencePromise.resolve()}removeMatchingKeys(ee,te,ne){this.E_.Zs(te,ne);const re=this.persistence.referenceDelegate,se=[];return re&&te.forEach((te=>{se.push(re.markPotentiallyOrphaned(ee,te))})),PersistencePromise.waitFor(se)}removeMatchingKeysForTargetId(ee,te){return this.E_.Xs(te),PersistencePromise.resolve()}getMatchingKeysForTargetId(ee,te){const ne=this.E_.t_(te);return PersistencePromise.resolve(ne)}containsKey(ee,te){return PersistencePromise.resolve(this.E_.containsKey(te))}}class __PRIVATE_MemoryPersistence{constructor(ee,te){this.T_={},this.overlays={},this.P_=new __PRIVATE_ListenSequence(0),this.R_=!1,this.R_=!0,this.I_=new __PRIVATE_MemoryGlobalsCache,this.referenceDelegate=ee(this),this.A_=new __PRIVATE_MemoryTargetCache(this),this.indexManager=new __PRIVATE_MemoryIndexManager,this.remoteDocumentCache=function __PRIVATE_newMemoryRemoteDocumentCache(ee){return new __PRIVATE_MemoryRemoteDocumentCacheImpl(ee)}((ee=>this.referenceDelegate.V_(ee))),this.serializer=new __PRIVATE_LocalSerializer(te),this.d_=new __PRIVATE_MemoryBundleCache(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.R_=!1,Promise.resolve()}get started(){return this.R_}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(ee){return this.indexManager}getDocumentOverlayCache(ee){let te=this.overlays[ee.toKey()];return te||(te=new __PRIVATE_MemoryDocumentOverlayCache,this.overlays[ee.toKey()]=te),te}getMutationQueue(ee,te){let ne=this.T_[ee.toKey()];return ne||(ne=new __PRIVATE_MemoryMutationQueue(te,this.referenceDelegate),this.T_[ee.toKey()]=ne),ne}getGlobalsCache(){return this.I_}getTargetCache(){return this.A_}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.d_}runTransaction(ee,te,ne){__PRIVATE_logDebug("MemoryPersistence","Starting transaction:",ee);const re=new __PRIVATE_MemoryTransaction(this.P_.next());return this.referenceDelegate.f_(),ne(re).next((ee=>this.referenceDelegate.m_(re).next((()=>ee)))).toPromise().then((ee=>(re.raiseOnCommittedEvent(),ee)))}p_(ee,te){return PersistencePromise.or(Object.values(this.T_).map((ne=>()=>ne.containsKey(ee,te))))}}class __PRIVATE_MemoryTransaction extends PersistenceTransaction{constructor(ee){super(),this.currentSequenceNumber=ee}}class __PRIVATE_MemoryEagerDelegate{constructor(ee){this.persistence=ee,this.g_=new __PRIVATE_ReferenceSet,this.y_=null}static w_(ee){return new __PRIVATE_MemoryEagerDelegate(ee)}get b_(){if(this.y_)return this.y_;throw l(60996)}addReference(ee,te,ne){return this.g_.addReference(ne,te),this.b_.delete(ne.toString()),PersistencePromise.resolve()}removeReference(ee,te,ne){return this.g_.removeReference(ne,te),this.b_.add(ne.toString()),PersistencePromise.resolve()}markPotentiallyOrphaned(ee,te){return this.b_.add(te.toString()),PersistencePromise.resolve()}removeTarget(ee,te){this.g_.Xs(te.targetId).forEach((ee=>this.b_.add(ee.toString())));const ne=this.persistence.getTargetCache();return ne.getMatchingKeysForTargetId(ee,te.targetId).next((ee=>{ee.forEach((ee=>this.b_.add(ee.toString())))})).next((()=>ne.removeTargetData(ee,te)))}f_(){this.y_=new Set}m_(ee){const te=this.persistence.getRemoteDocumentCache().newChangeBuffer();return PersistencePromise.forEach(this.b_,(ne=>{const re=DocumentKey.fromPath(ne);return this.v_(ee,re).next((ee=>{ee||te.removeEntry(re,SnapshotVersion.min())}))})).next((()=>(this.y_=null,te.apply(ee))))}updateLimboDocument(ee,te){return this.v_(ee,te).next((ee=>{ee?this.b_.delete(te.toString()):this.b_.add(te.toString())}))}V_(ee){return 0}v_(ee,te){return PersistencePromise.or([()=>PersistencePromise.resolve(this.g_.containsKey(te)),()=>this.persistence.getTargetCache().containsKey(ee,te),()=>this.persistence.p_(ee,te)])}}class __PRIVATE_MemoryLruDelegate{constructor(ee,te){this.persistence=ee,this.S_=new ObjectMap((ee=>__PRIVATE_encodeResourcePath(ee.path)),((ee,te)=>ee.isEqual(te))),this.garbageCollector=__PRIVATE_newLruGarbageCollector(this,te)}static w_(ee,te){return new __PRIVATE_MemoryLruDelegate(ee,te)}f_(){}m_(ee){return PersistencePromise.resolve()}forEachTarget(ee,te){return this.persistence.getTargetCache().forEachTarget(ee,te)}rr(ee){const te=this.xs(ee);return this.persistence.getTargetCache().getTargetCount(ee).next((ee=>te.next((te=>ee+te))))}xs(ee){let te=0;return this.ir(ee,(ee=>{te++})).next((()=>te))}ir(ee,te){return PersistencePromise.forEach(this.S_,((ne,re)=>this.Fs(ee,ne,re).next((ee=>ee?PersistencePromise.resolve():te(re)))))}removeTargets(ee,te,ne){return this.persistence.getTargetCache().removeTargets(ee,te,ne)}removeOrphanedDocuments(ee,te){let ne=0;const re=this.persistence.getRemoteDocumentCache(),se=re.newChangeBuffer();return re.u_(ee,(re=>this.Fs(ee,re,te).next((ee=>{ee||(ne++,se.removeEntry(re,SnapshotVersion.min()))})))).next((()=>se.apply(ee))).next((()=>ne))}markPotentiallyOrphaned(ee,te){return this.S_.set(te,ee.currentSequenceNumber),PersistencePromise.resolve()}removeTarget(ee,te){const ne=te.withSequenceNumber(ee.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(ee,ne)}addReference(ee,te,ne){return this.S_.set(ne,ee.currentSequenceNumber),PersistencePromise.resolve()}removeReference(ee,te,ne){return this.S_.set(ne,ee.currentSequenceNumber),PersistencePromise.resolve()}updateLimboDocument(ee,te){return this.S_.set(te,ee.currentSequenceNumber),PersistencePromise.resolve()}V_(ee){let te=ee.key.toString().length;return ee.isFoundDocument()&&(te+=__PRIVATE_estimateByteSize(ee.data.value)),te}Fs(ee,te,ne){return PersistencePromise.or([()=>this.persistence.p_(ee,te),()=>this.persistence.getTargetCache().containsKey(ee,te),()=>{const ee=this.S_.get(te);return PersistencePromise.resolve(void 0!==ee&&ee>ne)}])}getCacheSize(ee){return this.persistence.getRemoteDocumentCache().getSize(ee)}}class __PRIVATE_SchemaConverter{constructor(ee){this.serializer=ee}Mn(ee,te,ne,re){const se=new __PRIVATE_SimpleDbTransaction("createOrUpgrade",te);ne<1&&re>=1&&(function __PRIVATE_createPrimaryClientStore(ee){ee.createObjectStore(Or)}(ee),function __PRIVATE_createMutationQueue(ee){ee.createObjectStore(Lr,{keyPath:"userId"});ee.createObjectStore(Mr,{keyPath:kr,autoIncrement:!0}).createIndex(Gr,Ur,{unique:!0}),ee.createObjectStore(qr)}(ee),__PRIVATE_createQueryCache(ee),function __PRIVATE_createLegacyRemoteDocumentCache(ee){ee.createObjectStore(Fr)}(ee));let ie=PersistencePromise.resolve();return ne<3&&re>=3&&(0!==ne&&(function __PRIVATE_dropQueryCache(ee){ee.deleteObjectStore(ts),ee.deleteObjectStore(Xr),ee.deleteObjectStore(as)}(ee),__PRIVATE_createQueryCache(ee)),ie=ie.next((()=>function __PRIVATE_writeEmptyTargetGlobalEntry(ee){const te=ee.store(as),ne={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:SnapshotVersion.min().toTimestamp(),targetCount:0};return te.put(is,ne)}(se)))),ne<4&&re>=4&&(0!==ne&&(ie=ie.next((()=>function __PRIVATE_upgradeMutationBatchSchemaAndMigrateData(ee,te){return te.store(Mr).Kn().next((ne=>{ee.deleteObjectStore(Mr),ee.createObjectStore(Mr,{keyPath:kr,autoIncrement:!0}).createIndex(Gr,Ur,{unique:!0});const re=te.store(Mr),se=ne.map((ee=>re.put(ee)));return PersistencePromise.waitFor(se)}))}(ee,se)))),ie=ie.next((()=>{!function __PRIVATE_createClientMetadataStore(ee){ee.createObjectStore(Bs,{keyPath:"clientId"})}(ee)}))),ne<5&&re>=5&&(ie=ie.next((()=>this.D_(se)))),ne<6&&re>=6&&(ie=ie.next((()=>(function __PRIVATE_createDocumentGlobalStore(ee){ee.createObjectStore($r)}(ee),this.x_(se))))),ne<7&&re>=7&&(ie=ie.next((()=>this.C_(se)))),ne<8&&re>=8&&(ie=ie.next((()=>this.F_(ee,se)))),ne<9&&re>=9&&(ie=ie.next((()=>{!function __PRIVATE_dropRemoteDocumentChangesStore(ee){ee.objectStoreNames.contains("remoteDocumentChanges")&&ee.deleteObjectStore("remoteDocumentChanges")}(ee)}))),ne<10&&re>=10&&(ie=ie.next((()=>this.O_(se)))),ne<11&&re>=11&&(ie=ie.next((()=>{!function __PRIVATE_createBundlesStore(ee){ee.createObjectStore(ls,{keyPath:"bundleId"})}(ee),function __PRIVATE_createNamedQueriesStore(ee){ee.createObjectStore(cs,{keyPath:"name"})}(ee)}))),ne<12&&re>=12&&(ie=ie.next((()=>{!function __PRIVATE_createDocumentOverlayStore(ee){const te=ee.createObjectStore(Is,{keyPath:As});te.createIndex(Ps,Rs,{unique:!1}),te.createIndex(Vs,Ds,{unique:!1})}(ee)}))),ne<13&&re>=13&&(ie=ie.next((()=>function __PRIVATE_createRemoteDocumentCache(ee){const te=ee.createObjectStore(Kr,{keyPath:Qr});te.createIndex(jr,Jr),te.createIndex(zr,Wr)}(ee))).next((()=>this.M_(ee,se))).next((()=>ee.deleteObjectStore(Fr)))),ne<14&&re>=14&&(ie=ie.next((()=>this.N_(ee,se)))),ne<15&&re>=15&&(ie=ie.next((()=>function __PRIVATE_createFieldIndex(ee){ee.createObjectStore(_s,{keyPath:"indexId",autoIncrement:!0}).createIndex(hs,"collectionGroup",{unique:!1});ee.createObjectStore(ds,{keyPath:Es}).createIndex(Cs,ps,{unique:!1});ee.createObjectStore(ms,{keyPath:fs}).createIndex(gs,Ts,{unique:!1})}(ee)))),ne<16&&re>=16&&(ie=ie.next((()=>{te.objectStore(ds).clear()})).next((()=>{te.objectStore(ms).clear()}))),ne<17&&re>=17&&(ie=ie.next((()=>{!function __PRIVATE_createGlobalsStore(ee){ee.createObjectStore(ys,{keyPath:"name"})}(ee)}))),ne<18&&re>=18&&isSafariOrWebkit()&&(ie=ie.next((()=>{te.objectStore(ds).clear()})).next((()=>{te.objectStore(ms).clear()}))),ie}x_(ee){let te=0;return ee.store(Fr).jn(((ee,ne)=>{te+=__PRIVATE_dbDocumentSize(ne)})).next((()=>{const ne={byteSize:te};return ee.store($r).put(Yr,ne)}))}D_(ee){const te=ee.store(Lr),ne=ee.store(Mr);return te.Kn().next((te=>PersistencePromise.forEach(te,(te=>{const re=IDBKeyRange.bound([te.userId,vn],[te.userId,te.lastAcknowledgedBatchId]);return ne.Kn(Gr,re).next((ne=>PersistencePromise.forEach(ne,(ne=>{__PRIVATE_hardAssert(ne.userId===te.userId,18650,"Cannot process batch from unexpected user",{batchId:ne.batchId});const re=__PRIVATE_fromDbMutationBatch(this.serializer,ne);return removeMutationBatch(ee,te.userId,re).next((()=>{}))}))))}))))}C_(ee){const te=ee.store(ts),ne=ee.store(Fr);return ee.store(as).get(is).next((ee=>{const re=[];return ne.jn(((ne,se)=>{const ie=new ResourcePath(ne),ae=function __PRIVATE_sentinelKey(ee){return[0,__PRIVATE_encodeResourcePath(ee)]}(ie);re.push(te.get(ae).next((ne=>ne?PersistencePromise.resolve():(ne=>te.put({targetId:0,path:__PRIVATE_encodeResourcePath(ne),sequenceNumber:ee.highestListenSequenceNumber}))(ie))))})).next((()=>PersistencePromise.waitFor(re)))}))}F_(ee,te){ee.createObjectStore(os,{keyPath:us});const ne=te.store(os),re=new __PRIVATE_MemoryCollectionParentIndex,addEntry=ee=>{if(re.add(ee)){const te=ee.lastSegment(),re=ee.popLast();return ne.put({collectionId:te,parent:__PRIVATE_encodeResourcePath(re)})}};return te.store(Fr).jn({zn:!0},((ee,te)=>{const ne=new ResourcePath(ee);return addEntry(ne.popLast())})).next((()=>te.store(qr).jn({zn:!0},(([ee,te,ne],re)=>{const se=__PRIVATE_decodeResourcePath(te);return addEntry(se.popLast())}))))}O_(ee){const te=ee.store(Xr);return te.jn(((ee,ne)=>{const re=__PRIVATE_fromDbTarget(this.serializer,ne),se=__PRIVATE_toDbTarget(this.serializer,re);return te.put(se)}))}M_(ee,te){const ne=te.store(Fr),re=[];return ne.jn(((ee,ne)=>{const se=te.store(Kr),ie=function __PRIVATE_extractKey(ee){return ee.document?new DocumentKey(ResourcePath.fromString(ee.document.name).popFirst(5)):ee.noDocument?DocumentKey.fromSegments(ee.noDocument.path):ee.unknownDocument?DocumentKey.fromSegments(ee.unknownDocument.path):l(36783)}(ne).path.toArray(),ae={prefixPath:ie.slice(0,ie.length-2),collectionGroup:ie[ie.length-2],documentId:ie[ie.length-1],readTime:ne.readTime||[0,0],unknownDocument:ne.unknownDocument,noDocument:ne.noDocument,document:ne.document,hasCommittedMutations:!!ne.hasCommittedMutations};re.push(se.put(ae))})).next((()=>PersistencePromise.waitFor(re)))}N_(ee,te){const ne=te.store(Mr),re=__PRIVATE_newIndexedDbRemoteDocumentCache(this.serializer),se=new __PRIVATE_MemoryPersistence(__PRIVATE_MemoryEagerDelegate.w_,this.serializer.qr);return ne.Kn().next((ee=>{const ne=new Map;return ee.forEach((ee=>{let te=ne.get(ee.userId)??__PRIVATE_documentKeySet();__PRIVATE_fromDbMutationBatch(this.serializer,ee).keys().forEach((ee=>te=te.add(ee))),ne.set(ee.userId,te)})),PersistencePromise.forEach(ne,((ee,ne)=>{const ie=new User(ne),ae=__PRIVATE_IndexedDbDocumentOverlayCache.Kr(this.serializer,ie),oe=se.getIndexManager(ie),ue=__PRIVATE_IndexedDbMutationQueue.Kr(ie,this.serializer,oe,se.referenceDelegate);return new LocalDocumentsView(re,ue,ae,oe).recalculateAndSaveOverlaysForDocumentKeys(new __PRIVATE_IndexedDbTransaction(te,__PRIVATE_ListenSequence.yn),ee).next()}))}))}}function __PRIVATE_createQueryCache(ee){ee.createObjectStore(ts,{keyPath:ns}).createIndex(rs,ss,{unique:!0}),ee.createObjectStore(Xr,{keyPath:"targetId"}).createIndex(Zr,es,{unique:!0}),ee.createObjectStore(as)}const Gs="IndexedDbPersistence",Us=18e5,Hs=5e3,qs="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.",Ks="main";class __PRIVATE_IndexedDbPersistence{constructor(ee,te,ne,re,se,ie,ae,oe,ue,Be,le=18){if(this.allowTabSynchronization=ee,this.persistenceKey=te,this.clientId=ne,this.xt=se,this.window=ie,this.document=ae,this.L_=ue,this.B_=Be,this.U_=le,this.P_=null,this.R_=!1,this.isPrimary=!1,this.networkEnabled=!0,this.k_=null,this.inForeground=!1,this.q_=null,this.K_=null,this.W_=Number.NEGATIVE_INFINITY,this.Q_=ee=>Promise.resolve(),!__PRIVATE_IndexedDbPersistence.Je())throw new s(gn.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new __PRIVATE_IndexedDbLruDelegateImpl(this,re),this.G_=te+Ks,this.serializer=new __PRIVATE_LocalSerializer(oe),this.z_=new __PRIVATE_SimpleDb(this.G_,this.U_,new __PRIVATE_SchemaConverter(this.serializer)),this.I_=new __PRIVATE_IndexedDbGlobalsCache,this.A_=new __PRIVATE_IndexedDbTargetCache(this.referenceDelegate,this.serializer),this.remoteDocumentCache=__PRIVATE_newIndexedDbRemoteDocumentCache(this.serializer),this.d_=new __PRIVATE_IndexedDbBundleCache,this.window&&this.window.localStorage?this.j_=this.window.localStorage:(this.j_=null,!1===Be&&__PRIVATE_logError(Gs,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.H_().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new s(gn.FAILED_PRECONDITION,qs);return this.J_(),this.Y_(),this.Z_(),this.runTransaction("getHighestListenSequenceNumber","readonly",(ee=>this.A_.getHighestSequenceNumber(ee)))})).then((ee=>{this.P_=new __PRIVATE_ListenSequence(ee,this.L_)})).then((()=>{this.R_=!0})).catch((ee=>(this.z_&&this.z_.close(),Promise.reject(ee))))}X_(ee){return this.Q_=async te=>{if(this.started)return ee(te)},ee(this.isPrimary)}setDatabaseDeletedListener(ee){this.z_.Ln((async te=>{null===te.newVersion&&await ee()}))}setNetworkEnabled(ee){this.networkEnabled!==ee&&(this.networkEnabled=ee,this.xt.enqueueAndForget((async()=>{this.started&&await this.H_()})))}H_(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(ee=>__PRIVATE_clientMetadataStore(ee).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.eo(ee).next((ee=>{ee||(this.isPrimary=!1,this.xt.enqueueRetryable((()=>this.Q_(!1))))}))})).next((()=>this.no(ee))).next((te=>this.isPrimary&&!te?this.ro(ee).next((()=>!1)):!!te&&this.io(ee).next((()=>!0)))))).catch((ee=>{if(__PRIVATE_isIndexedDbTransactionError(ee))return __PRIVATE_logDebug(Gs,"Failed to extend owner lease: ",ee),this.isPrimary;if(!this.allowTabSynchronization)throw ee;return __PRIVATE_logDebug(Gs,"Releasing owner lease after error during lease refresh",ee),!1})).then((ee=>{this.isPrimary!==ee&&this.xt.enqueueRetryable((()=>this.Q_(ee))),this.isPrimary=ee}))}eo(ee){return __PRIVATE_primaryClientStore(ee).get(Nr).next((ee=>PersistencePromise.resolve(this.so(ee))))}_o(ee){return __PRIVATE_clientMetadataStore(ee).delete(this.clientId)}async oo(){if(this.isPrimary&&!this.ao(this.W_,Us)){this.W_=Date.now();const ee=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(ee=>{const te=__PRIVATE_getStore(ee,Bs);return te.Kn().next((ee=>{const ne=this.uo(ee,Us),re=ee.filter((ee=>-1===ne.indexOf(ee)));return PersistencePromise.forEach(re,(ee=>te.delete(ee.clientId))).next((()=>re))}))})).catch((()=>[]));if(this.j_)for(const te of ee)this.j_.removeItem(this.co(te.clientId))}}Z_(){this.K_=this.xt.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.H_().then((()=>this.oo())).then((()=>this.Z_()))))}so(ee){return!!ee&&ee.ownerId===this.clientId}no(ee){return this.B_?PersistencePromise.resolve(!0):__PRIVATE_primaryClientStore(ee).get(Nr).next((te=>{if(null!==te&&this.ao(te.leaseTimestampMs,Hs)&&!this.lo(te.ownerId)){if(this.so(te)&&this.networkEnabled)return!0;if(!this.so(te)){if(!te.allowTabSynchronization)throw new s(gn.FAILED_PRECONDITION,qs);return!1}}return!(!this.networkEnabled||!this.inForeground)||__PRIVATE_clientMetadataStore(ee).Kn().next((ee=>void 0===this.uo(ee,Hs).find((ee=>{if(this.clientId!==ee.clientId){const te=!this.networkEnabled&&ee.networkEnabled,ne=!this.inForeground&&ee.inForeground,re=this.networkEnabled===ee.networkEnabled;if(te||ne&&re)return!0}return!1}))))})).next((ee=>(this.isPrimary!==ee&&__PRIVATE_logDebug(Gs,`Client ${ee?"is":"is not"} eligible for a primary lease.`),ee)))}async shutdown(){this.R_=!1,this.Eo(),this.K_&&(this.K_.cancel(),this.K_=null),this.ho(),this.To(),await this.z_.runTransaction("shutdown","readwrite",[Or,Bs],(ee=>{const te=new __PRIVATE_IndexedDbTransaction(ee,__PRIVATE_ListenSequence.yn);return this.ro(te).next((()=>this._o(te)))})),this.z_.close(),this.Po()}uo(ee,te){return ee.filter((ee=>this.ao(ee.updateTimeMs,te)&&!this.lo(ee.clientId)))}Ro(){return this.runTransaction("getActiveClients","readonly",(ee=>__PRIVATE_clientMetadataStore(ee).Kn().next((ee=>this.uo(ee,Us).map((ee=>ee.clientId))))))}get started(){return this.R_}getGlobalsCache(){return this.I_}getMutationQueue(ee,te){return __PRIVATE_IndexedDbMutationQueue.Kr(ee,this.serializer,te,this.referenceDelegate)}getTargetCache(){return this.A_}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(ee){return new __PRIVATE_IndexedDbIndexManager(ee,this.serializer.qr.databaseId)}getDocumentOverlayCache(ee){return __PRIVATE_IndexedDbDocumentOverlayCache.Kr(this.serializer,ee)}getBundleCache(){return this.d_}runTransaction(ee,te,ne){__PRIVATE_logDebug(Gs,"Starting transaction:",ee);const re="readonly"===te?"readonly":"readwrite",se=function __PRIVATE_getObjectStores(ee){return 18===ee?Ns:17===ee?Os:16===ee?Fs:15===ee?xs:14===ee?vs:13===ee?Ss:12===ee?bs:11===ee?ws:void l(60245)}(this.U_);let ie;return this.z_.runTransaction(ee,re,se,(re=>(ie=new __PRIVATE_IndexedDbTransaction(re,this.P_?this.P_.next():__PRIVATE_ListenSequence.yn),"readwrite-primary"===te?this.eo(ie).next((ee=>!!ee||this.no(ie))).next((te=>{if(!te)throw __PRIVATE_logError(`Failed to obtain primary lease for action '${ee}'.`),this.isPrimary=!1,this.xt.enqueueRetryable((()=>this.Q_(!1))),new s(gn.FAILED_PRECONDITION,hr);return ne(ie)})).next((ee=>this.io(ie).next((()=>ee)))):this.Io(ie).next((()=>ne(ie)))))).then((ee=>(ie.raiseOnCommittedEvent(),ee)))}Io(ee){return __PRIVATE_primaryClientStore(ee).get(Nr).next((ee=>{if(null!==ee&&this.ao(ee.leaseTimestampMs,Hs)&&!this.lo(ee.ownerId)&&!this.so(ee)&&!(this.B_||this.allowTabSynchronization&&ee.allowTabSynchronization))throw new s(gn.FAILED_PRECONDITION,qs)}))}io(ee){const te={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return __PRIVATE_primaryClientStore(ee).put(Nr,te)}static Je(){return __PRIVATE_SimpleDb.Je()}ro(ee){const te=__PRIVATE_primaryClientStore(ee);return te.get(Nr).next((ee=>this.so(ee)?(__PRIVATE_logDebug(Gs,"Releasing primary lease."),te.delete(Nr)):PersistencePromise.resolve()))}ao(ee,te){const ne=Date.now();return!(ee<ne-te||ee>ne&&(__PRIVATE_logError(`Detected an update time that is in the future: ${ee} > ${ne}`),1))}J_(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.q_=()=>{this.xt.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.H_())))},this.document.addEventListener("visibilitychange",this.q_),this.inForeground="visible"===this.document.visibilityState)}ho(){this.q_&&(this.document.removeEventListener("visibilitychange",this.q_),this.q_=null)}Y_(){"function"==typeof this.window?.addEventListener&&(this.k_=()=>{this.Eo();const ee=/(?:Version|Mobile)\/1[456]/;isSafari()&&(navigator.appVersion.match(ee)||navigator.userAgent.match(ee))&&this.xt.enterRestrictedMode(!0),this.xt.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.k_))}To(){this.k_&&(this.window.removeEventListener("pagehide",this.k_),this.k_=null)}lo(ee){try{const te=null!==this.j_?.getItem(this.co(ee));return __PRIVATE_logDebug(Gs,`Client '${ee}' ${te?"is":"is not"} zombied in LocalStorage`),te}catch(ee){return __PRIVATE_logError(Gs,"Failed to get zombied client id.",ee),!1}}Eo(){if(this.j_)try{this.j_.setItem(this.co(this.clientId),String(Date.now()))}catch(ee){__PRIVATE_logError("Failed to set zombie client id.",ee)}}Po(){if(this.j_)try{this.j_.removeItem(this.co(this.clientId))}catch(ee){}}co(ee){return`firestore_zombie_${this.persistenceKey}_${ee}`}}function __PRIVATE_primaryClientStore(ee){return __PRIVATE_getStore(ee,Or)}function __PRIVATE_clientMetadataStore(ee){return __PRIVATE_getStore(ee,Bs)}function __PRIVATE_indexedDbStoragePrefix(ee,te){let ne=ee.projectId;return ee.isDefaultDatabase||(ne+="."+ee.database),"firestore/"+te+"/"+ne+"/"}class __PRIVATE_LocalViewChanges{constructor(ee,te,ne,re){this.targetId=ee,this.fromCache=te,this.Ao=ne,this.Vo=re}static fo(ee,te){let ne=__PRIVATE_documentKeySet(),re=__PRIVATE_documentKeySet();for(const ee of te.docChanges)switch(ee.type){case 0:ne=ne.add(ee.doc.key);break;case 1:re=re.add(ee.doc.key)}return new __PRIVATE_LocalViewChanges(ee,te.fromCache,ne,re)}}function __PRIVATE_compareByKey(ee,te){return DocumentKey.comparator(ee.key,te.key)}class QueryContext{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(ee){this._documentReadCount+=ee}}class __PRIVATE_QueryEngine{constructor(){this.mo=!1,this.po=!1,this.yo=100,this.wo=function __PRIVATE_getDefaultRelativeIndexReadCostPerDocument(){return isSafari()?8:__PRIVATE_getAndroidVersion(getUA())>0?6:4}()}initialize(ee,te){this.bo=ee,this.indexManager=te,this.mo=!0}getDocumentsMatchingQuery(ee,te,ne,re){const se={result:null};return this.vo(ee,te).next((ee=>{se.result=ee})).next((()=>{if(!se.result)return this.So(ee,te,re,ne).next((ee=>{se.result=ee}))})).next((()=>{if(se.result)return;const ne=new QueryContext;return this.Do(ee,te,ne).next((re=>{if(se.result=re,this.po)return this.xo(ee,te,ne,re.size)}))})).next((()=>se.result))}xo(ee,te,ne,re){return __PRIVATE_isPipeline(te)?PersistencePromise.resolve():ne.documentReadCount<this.yo?(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","SDK will not create cache indexes for query:",__PRIVATE_stringifyQuery(te),"since it only creates cache indexes for collection contains","more than or equal to",this.yo,"documents"),PersistencePromise.resolve()):(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","Query:",__PRIVATE_stringifyQuery(te),"scans",ne.documentReadCount,"local documents and returns",re,"documents as results."),ne.documentReadCount>this.wo*re?(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","The SDK decides to create cache indexes for query:",__PRIVATE_stringifyQuery(te),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(ee,__PRIVATE_queryToTarget(te))):PersistencePromise.resolve())}vo(ee,te){if(__PRIVATE_isPipeline(te))return PersistencePromise.resolve(null);let ne=te;if(__PRIVATE_queryMatchesAllDocuments(ne))return PersistencePromise.resolve(null);let re=__PRIVATE_queryToTarget(ne);return this.indexManager.getIndexType(ee,re).next((te=>0===te?null:(null!==ne.limit&&1===te&&(ne=__PRIVATE_queryWithLimit(ne,null,"F"),re=__PRIVATE_queryToTarget(ne)),this.indexManager.getDocumentsMatchingTarget(ee,re).next((te=>{const se=__PRIVATE_documentKeySet(...te);return this.bo.getDocuments(ee,se).next((te=>this.indexManager.getMinOffset(ee,re).next((re=>{const ie=this.Co(ne,te);return this.Fo(ne,ie,se,re.readTime)?this.vo(ee,__PRIVATE_queryWithLimit(ne,null,"F")):this.Oo(ee,ie,ne,re)}))))})))))}So(ee,te,ne,re){return(__PRIVATE_isPipeline(te)?function __PRIVATE_pipelineMatchesAllDocuments(ee){for(const te of ee.stages){if(te instanceof v||te instanceof I)return!1;if(te instanceof A){if(te.condition instanceof __PRIVATE_BooleanFunctionExpression&&"exists"===te.condition._expr.name&&te.condition._expr.params[0]instanceof o&&te.condition._expr.params[0].fieldName===Tn)continue;return!1}}return!0}(te):__PRIVATE_queryMatchesAllDocuments(te))||re.isEqual(SnapshotVersion.min())?PersistencePromise.resolve(null):this.bo.getDocuments(ee,ne).next((se=>{const ie=this.Co(te,se);return this.Fo(te,ie,ne,re)?PersistencePromise.resolve(null):(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","Re-using previous result from %s to execute query: %s",re.toString(),__PRIVATE_stringifyQueryOrPipeline(te)),this.Oo(ee,ie,te,__PRIVATE_newIndexOffsetSuccessorFromReadTime(re,Hn)).next((ee=>ee)))}))}Co(ee,te){let ne,re;return __PRIVATE_isPipeline(ee)?(ne=new SortedSet(__PRIVATE_compareByKey),re=te=>__PRIVATE_pipelineMatches(ee,te)):(ne=new SortedSet(__PRIVATE_newQueryComparator(ee)),re=te=>__PRIVATE_queryMatches(ee,te)),te.forEach(((ee,te)=>{re(te)&&(ne=ne.add(te))})),ne}Fo(ee,te,ne,re){if(__PRIVATE_isPipeline(ee))return function __PRIVATE_pipelineHasRanges(ee){return ee.stages.some((ee=>ee instanceof v||ee instanceof I))}(ee);if(null===ee.limit)return!1;if(ne.size!==te.size)return!0;const se="F"===ee.limitType?te.last():te.first();return!!se&&(se.hasPendingWrites||se.version.compareTo(re)>0)}Do(ee,te,ne){return __PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","Using full collection scan to execute query:",__PRIVATE_stringifyQueryOrPipeline(te)),this.bo.getDocumentsMatchingQuery(ee,te,IndexOffset.min(),ne)}Oo(ee,te,ne,re){return this.bo.getDocumentsMatchingQuery(ee,ne,re).next((ee=>(te.forEach((te=>{ee=ee.insert(te.key,te)})),ee)))}}const Qs="LocalStore";class __PRIVATE_LocalStoreImpl{constructor(ee,te,ne,re){this.persistence=ee,this.Mo=te,this.serializer=re,this.No=new SortedMap(__PRIVATE_primitiveComparator),this.Lo=new ObjectMap((ee=>__PRIVATE_canonifyTargetOrPipeline(ee)),__PRIVATE_targetOrPipelineEqual),this.Bo=new Map,this.Uo=ee.getRemoteDocumentCache(),this.A_=ee.getTargetCache(),this.d_=ee.getBundleCache(),this.ko(ne)}ko(ee){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(ee),this.indexManager=this.persistence.getIndexManager(ee),this.mutationQueue=this.persistence.getMutationQueue(ee,this.indexManager),this.localDocuments=new LocalDocumentsView(this.Uo,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Uo.setIndexManager(this.indexManager),this.Mo.initialize(this.localDocuments,this.indexManager)}collectGarbage(ee){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(te=>ee.collect(te,this.No)))}}function __PRIVATE_newLocalStore(ee,te,ne,re){return new __PRIVATE_LocalStoreImpl(ee,te,ne,re)}async function __PRIVATE_localStoreHandleUserChange(ee,te){const ne=__PRIVATE_debugCast(ee);return await ne.persistence.runTransaction("Handle user change","readonly",(ee=>{let re;return ne.mutationQueue.getAllMutationBatches(ee).next((se=>(re=se,ne.ko(te),ne.mutationQueue.getAllMutationBatches(ee)))).next((te=>{const se=[],ie=[];let ae=__PRIVATE_documentKeySet();for(const ee of re){se.push(ee.batchId);for(const te of ee.mutations)ae=ae.add(te.key)}for(const ee of te){ie.push(ee.batchId);for(const te of ee.mutations)ae=ae.add(te.key)}return ne.localDocuments.getDocuments(ee,ae).next((ee=>({qo:ee,removedBatchIds:se,addedBatchIds:ie})))}))}))}function __PRIVATE_localStoreGetLastRemoteSnapshotVersion(ee){const te=__PRIVATE_debugCast(ee);return te.persistence.runTransaction("Get last remote snapshot version","readonly",(ee=>te.A_.getLastRemoteSnapshotVersion(ee)))}function __PRIVATE_populateDocumentChangeBuffer(ee,te,ne){let re=__PRIVATE_documentKeySet(),se=__PRIVATE_documentKeySet();return ne.forEach((ee=>re=re.add(ee))),te.getEntries(ee,re).next((ee=>{let re=__PRIVATE_mutableDocumentMap();return ne.forEach(((ne,ie)=>{const ae=ee.get(ne);ie.isFoundDocument()!==ae.isFoundDocument()&&(se=se.add(ne)),ie.isNoDocument()&&ie.version.isEqual(SnapshotVersion.min())?(te.removeEntry(ne,ie.readTime),re=re.insert(ne,ie)):!ae.isValidDocument()||ie.version.compareTo(ae.version)>0||0===ie.version.compareTo(ae.version)&&ae.hasPendingWrites?(te.addEntry(ie),re=re.insert(ne,ie)):__PRIVATE_logDebug(Qs,"Ignoring outdated watch update for ",ne,". Current version:",ae.version," Watch version:",ie.version)})),{$o:re,Ko:se}}))}function __PRIVATE_localStoreGetNextMutationBatch(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Get next mutation batch","readonly",(ee=>(void 0===te&&(te=vn),ne.mutationQueue.getNextMutationBatchAfterBatchId(ee,te))))}function __PRIVATE_localStoreAllocateTarget(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Allocate target","readwrite",(ee=>{let re;return ne.A_.getTargetData(ee,te).next((se=>se?(re=se,PersistencePromise.resolve(re)):ne.A_.allocateTargetId(ee).next((se=>(re=new TargetData(te,se,"TargetPurposeListen",ee.currentSequenceNumber),ne.A_.addTargetData(ee,re).next((()=>re)))))))})).then((ee=>{const re=ne.No.get(ee.targetId);return(null===re||ee.snapshotVersion.compareTo(re.snapshotVersion)>0)&&(ne.No=ne.No.insert(ee.targetId,ee),ne.Lo.set(te,ee.targetId)),ee}))}async function __PRIVATE_localStoreReleaseTarget(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.No.get(te),ie=ne?"readwrite":"readwrite-primary";try{ne||await re.persistence.runTransaction("Release target",ie,(ee=>re.persistence.referenceDelegate.removeTarget(ee,se)))}catch(ee){if(!__PRIVATE_isIndexedDbTransactionError(ee))throw ee;__PRIVATE_logDebug(Qs,`Failed to update sequence numbers for target ${te}: ${ee}`)}re.No=re.No.remove(te),re.Lo.delete(se.target)}function __PRIVATE_localStoreExecuteQuery(ee,te,ne){const re=__PRIVATE_debugCast(ee);let se=SnapshotVersion.min(),ie=__PRIVATE_documentKeySet();return re.persistence.runTransaction("Execute query","readwrite",(ee=>function __PRIVATE_localStoreGetTargetData(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.Lo.get(ne);return void 0!==se?PersistencePromise.resolve(re.No.get(se)):re.A_.getTargetData(te,ne)}(re,ee,__PRIVATE_isPipeline(te)?te:__PRIVATE_queryToTarget(te)).next((te=>{if(te)return se=te.lastLimboFreeSnapshotVersion,re.A_.getMatchingKeysForTargetId(ee,te.targetId).next((ee=>{ie=ee}))})).next((()=>re.Mo.getDocumentsMatchingQuery(ee,te,ne?se:SnapshotVersion.min(),ne?ie:__PRIVATE_documentKeySet()))).next((ee=>(__PRIVATE_setMaxReadTime(re,ee),{documents:ee,Wo:ie})))))}function __PRIVATE_localStoreGetCachedTarget(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_debugCast(ne.A_),se=ne.No.get(te);return se?Promise.resolve(se.target??null):ne.persistence.runTransaction("Get target data","readonly",(ee=>re.ge(ee,te).next((ee=>ee?.target??null))))}function __PRIVATE_localStoreGetNewDocumentChanges(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.Bo.get(te)||SnapshotVersion.min();return ne.persistence.runTransaction("Get new document changes","readonly",(ee=>ne.Uo.getAllFromCollectionGroup(ee,te,__PRIVATE_newIndexOffsetSuccessorFromReadTime(re,Hn),Number.MAX_SAFE_INTEGER))).then((ee=>(__PRIVATE_setMaxReadTime(ne,ee),ee)))}function __PRIVATE_setMaxReadTime(ee,te){te.forEach(((te,ne)=>{const re=ne.key.getCollectionGroup(),se=ee.Bo.get(re)||SnapshotVersion.min();ne.readTime.compareTo(se)>0&&ee.Bo.set(re,ne.readTime)}))}async function __PRIVATE_localStoreSaveNamedQuery(ee,te,ne=__PRIVATE_documentKeySet()){const re=await __PRIVATE_localStoreAllocateTarget(ee,__PRIVATE_queryToTarget(__PRIVATE_fromBundledQuery(te.bundledQuery))),se=__PRIVATE_debugCast(ee);return se.persistence.runTransaction("Save named query","readwrite",(ee=>{const ie=__PRIVATE_fromVersion(te.readTime);if(re.snapshotVersion.compareTo(ie)>=0)return se.d_.saveNamedQuery(ee,te);const ae=re.withResumeToken(ByteString.EMPTY_BYTE_STRING,ie);return se.No=se.No.insert(ae.targetId,ae),se.A_.updateTargetData(ee,ae).next((()=>se.A_.removeMatchingKeysForTargetId(ee,re.targetId))).next((()=>se.A_.addMatchingKeys(ee,ne,re.targetId))).next((()=>se.d_.saveNamedQuery(ee,te)))}))}class __PRIVATE_SizedBundleElement{constructor(ee,te){this.jo=ee,this.byteLength=te}Ho(){return"metadata"in this.jo}}function __PRIVATE_toByteStreamReaderHelper(ee,te=10240){let ne=0;return{async read(){if(ne<ee.byteLength){const re={value:ee.slice(ne,ne+te),done:!1};return ne+=te,re}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}class __PRIVATE_OnlineStateTracker{constructor(ee,te){this.asyncQueue=ee,this.onlineStateHandler=te,this.state="Unknown",this.Jo=0,this.Yo=null,this.Zo=!0}Xo(){0===this.Jo&&(this.ea("Unknown"),this.Yo=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.Yo=null,this.ta("Backend didn't respond within 10 seconds."),this.ea("Offline"),Promise.resolve()))))}na(ee){"Online"===this.state?this.ea("Unknown"):(this.Jo++,this.Jo>=1&&(this.ra(),this.ta(`Connection failed 1 times. Most recent error: ${ee.toString()}`),this.ea("Offline")))}set(ee){this.ra(),this.Jo=0,"Online"===ee&&(this.Zo=!1),this.ea(ee)}ea(ee){ee!==this.state&&(this.state=ee,this.onlineStateHandler(ee))}ta(ee){const te=`Could not reach Cloud Firestore backend. ${ee}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.Zo?(__PRIVATE_logError(te),this.Zo=!1):__PRIVATE_logDebug("OnlineStateTracker",te)}ra(){null!==this.Yo&&(this.Yo.cancel(),this.Yo=null)}}const js="RemoteStore";class __PRIVATE_RemoteStoreImpl{constructor(ee,te,ne,re,se){this.localStore=ee,this.datastore=te,this.asyncQueue=ne,this.remoteSyncer={},this.ia=[],this.sa=new Map,this._a=new Map,this.oa=new Map,this.aa=new __PRIVATE_TargetIdGenerator(1e3),this.ua=new __PRIVATE_TargetIdGenerator(1001),this.ca=new Set,this.la=[],this.Ea=se,this.Ea.Ke((ee=>{ne.enqueueAndForget((async()=>{__PRIVATE_canUseNetwork(this)&&(__PRIVATE_logDebug(js,"Restarting streams for network reachability change."),await async function __PRIVATE_restartNetwork(ee){const te=__PRIVATE_debugCast(ee);te.ca.add(4),await __PRIVATE_disableNetworkInternal(te),te.ha.set("Unknown"),te.ca.delete(4),await __PRIVATE_enableNetworkInternal(te)}(this))}))})),this.ha=new __PRIVATE_OnlineStateTracker(ne,re)}}async function __PRIVATE_enableNetworkInternal(ee){if(__PRIVATE_canUseNetwork(ee))for(const te of ee.la)await te(!0)}async function __PRIVATE_disableNetworkInternal(ee){for(const te of ee.la)await te(!1)}function __PRIVATE_getRemoteTargetId(ee,te){return ee._a.get(te)||void 0}function __PRIVATE_remoteStoreListen(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_getRemoteTargetId(ne,te.targetId);if(void 0!==re&&ne.sa.has(re))return;const se=function __PRIVATE_allocateRemoteTargetId(ee,te){const ne=__PRIVATE_getRemoteTargetId(ee,te);void 0!==ne&&ee.oa.delete(ne);const re=function __PRIVATE_generateRemoteTargetId(ee,te){return te%2!=0?ee.ua.next():ee.aa.next()}(ee,te);return ee._a.set(te,re),ee.oa.set(re,te),re}(ne,te.targetId);__PRIVATE_logDebug(js,"remoteStoreListen mapping SDK target ID to remote",te.targetId,se);const ie=new TargetData(te.target,se,te.purpose,te.sequenceNumber,te.snapshotVersion,te.lastLimboFreeSnapshotVersion,te.resumeToken);ne.sa.set(se,ie),__PRIVATE_shouldStartWatchStream(ne)?__PRIVATE_startWatchStream(ne):__PRIVATE_ensureWatchStream(ne).Jt()&&__PRIVATE_sendWatchRequest(ne,ie)}function __PRIVATE_remoteStoreUnlisten(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_ensureWatchStream(ne),se=__PRIVATE_getRemoteTargetId(ne,te);__PRIVATE_logDebug(js,"remoteStoreUnlisten removing mapping of SDK target ID to remote",te,se),ne.sa.delete(se),ne._a.delete(te),ne.oa.delete(se),re.Jt()&&__PRIVATE_sendUnwatchRequest(ne,se),0===ne.sa.size&&(re.Jt()?re.Xt():__PRIVATE_canUseNetwork(ne)&&ne.ha.set("Unknown"))}function __PRIVATE_sendWatchRequest(ee,te){if(ee.Ta.H(te.targetId),te.resumeToken.approximateByteSize()>0||te.snapshotVersion.compareTo(SnapshotVersion.min())>0){const ne=ee.oa.get(te.targetId);if(void 0===ne)return void __PRIVATE_logDebug(js,"SDK target ID not found for remote ID: "+te.targetId);const re=ee.remoteSyncer.getRemoteKeysForTarget(ne).size;te=te.withExpectedCount(re)}__PRIVATE_ensureWatchStream(ee).Tn(te)}function __PRIVATE_sendUnwatchRequest(ee,te){ee.Ta.H(te),__PRIVATE_ensureWatchStream(ee).Pn(te)}function __PRIVATE_startWatchStream(ee){ee.Ta=new __PRIVATE_WatchChangeAggregator({getRemoteKeysForTarget:te=>{const ne=ee.oa.get(te);return void 0!==ne?ee.remoteSyncer.getRemoteKeysForTarget(ne):__PRIVATE_documentKeySet()},ge:te=>ee.sa.get(te)||null,Ae:()=>ee.datastore.serializer.databaseId}),__PRIVATE_ensureWatchStream(ee).start(),ee.ha.Xo()}function __PRIVATE_shouldStartWatchStream(ee){return __PRIVATE_canUseNetwork(ee)&&!__PRIVATE_ensureWatchStream(ee).Ht()&&ee.sa.size>0}function __PRIVATE_canUseNetwork(ee){return 0===__PRIVATE_debugCast(ee).ca.size}function __PRIVATE_cleanUpWatchStreamState(ee){ee.Ta=void 0}async function __PRIVATE_onWatchStreamConnected(ee){ee.ha.set("Online")}async function __PRIVATE_onWatchStreamOpen(ee){ee.sa.forEach(((te,ne)=>{__PRIVATE_sendWatchRequest(ee,te)}))}async function __PRIVATE_onWatchStreamClose(ee,te){__PRIVATE_cleanUpWatchStreamState(ee),__PRIVATE_shouldStartWatchStream(ee)?(ee.ha.na(te),__PRIVATE_startWatchStream(ee)):ee.ha.set("Unknown")}async function __PRIVATE_onWatchStreamChange(ee,te,ne){if(ee.ha.set("Online"),te instanceof __PRIVATE_WatchTargetChange&&2===te.state&&te.cause)try{await async function __PRIVATE_handleTargetError(ee,te){const ne=te.cause;for(const re of te.targetIds){if(ee.sa.has(re)){const te=ee.oa.get(re);void 0!==te&&(await ee.remoteSyncer.rejectListen(te,ne),ee._a.delete(te),ee.oa.delete(re)),ee.sa.delete(re)}ee.Ta.removeTarget(re)}}(ee,te)}catch(ne){__PRIVATE_logDebug(js,"Failed to remove targets %s: %s ",te.targetIds.join(","),ne),await __PRIVATE_disableNetworkUntilRecovery(ee,ne)}else if(te instanceof __PRIVATE_DocumentWatchChange?ee.Ta.se(te):te instanceof __PRIVATE_ExistenceFilterChange?ee.Ta.Ee(te):ee.Ta.ae(te),!ne.isEqual(SnapshotVersion.min()))try{const te=await __PRIVATE_localStoreGetLastRemoteSnapshotVersion(ee.localStore);ne.compareTo(te)>=0&&await function __PRIVATE_raiseWatchSnapshot(ee,te){const ne=ee.Ta.de(te);ne.targetChanges.forEach(((ne,re)=>{if(ne.resumeToken.approximateByteSize()>0){const se=ee.sa.get(re);se&&ee.sa.set(re,se.withResumeToken(ne.resumeToken,te))}})),ne.targetMismatches.forEach(((te,ne)=>{const re=ee.sa.get(te);if(!re)return;ee.sa.set(te,re.withResumeToken(ByteString.EMPTY_BYTE_STRING,re.snapshotVersion)),__PRIVATE_sendUnwatchRequest(ee,te);const se=new TargetData(re.target,te,ne,re.sequenceNumber);__PRIVATE_sendWatchRequest(ee,se)}));const re=function __PRIVATE_toSdkRemoteEvent(ee,te){const ne=new Map;te.targetChanges.forEach(((te,re)=>{const se=ee.oa.get(re);void 0!==se&&ne.set(se,te)}));let re=new SortedMap(__PRIVATE_primitiveComparator);return te.targetMismatches.forEach(((te,ne)=>{const se=ee.oa.get(te);void 0!==se&&(re=re.insert(se,ne))})),new RemoteEvent(te.snapshotVersion,ne,re,te.documentUpdates,te.augmentedDocumentUpdates,te.resolvedLimboDocuments)}(ee,ne);return ee.remoteSyncer.applyRemoteEvent(re)}(ee,ne)}catch(te){__PRIVATE_logDebug(js,"Failed to raise snapshot:",te),await __PRIVATE_disableNetworkUntilRecovery(ee,te)}}async function __PRIVATE_disableNetworkUntilRecovery(ee,te,ne){if(!__PRIVATE_isIndexedDbTransactionError(te))throw te;ee.ca.add(1),await __PRIVATE_disableNetworkInternal(ee),ee.ha.set("Offline"),ne||(ne=()=>__PRIVATE_localStoreGetLastRemoteSnapshotVersion(ee.localStore)),ee.asyncQueue.enqueueRetryable((async()=>{__PRIVATE_logDebug(js,"Retrying IndexedDB access"),await ne(),ee.ca.delete(1),await __PRIVATE_enableNetworkInternal(ee)}))}function __PRIVATE_executeWithRecovery(ee,te){return te().catch((ne=>__PRIVATE_disableNetworkUntilRecovery(ee,ne,te)))}async function __PRIVATE_fillWritePipeline(ee){const te=__PRIVATE_debugCast(ee),ne=__PRIVATE_ensureWriteStream(te);let re=te.ia.length>0?te.ia[te.ia.length-1].batchId:vn;for(;__PRIVATE_canAddToWritePipeline(te);)try{const ee=await __PRIVATE_localStoreGetNextMutationBatch(te.localStore,re);if(null===ee){0===te.ia.length&&ne.Xt();break}re=ee.batchId,__PRIVATE_addToWritePipeline(te,ee)}catch(ee){await __PRIVATE_disableNetworkUntilRecovery(te,ee)}__PRIVATE_shouldStartWriteStream(te)&&__PRIVATE_startWriteStream(te)}function __PRIVATE_canAddToWritePipeline(ee){return __PRIVATE_canUseNetwork(ee)&&ee.ia.length<10}function __PRIVATE_addToWritePipeline(ee,te){ee.ia.push(te);const ne=__PRIVATE_ensureWriteStream(ee);ne.Jt()&&ne.Rn&&ne.In(te.mutations)}function __PRIVATE_shouldStartWriteStream(ee){return __PRIVATE_canUseNetwork(ee)&&!__PRIVATE_ensureWriteStream(ee).Ht()&&ee.ia.length>0}function __PRIVATE_startWriteStream(ee){__PRIVATE_ensureWriteStream(ee).start()}async function __PRIVATE_onWriteStreamOpen(ee){__PRIVATE_ensureWriteStream(ee).dn()}async function __PRIVATE_onWriteHandshakeComplete(ee){const te=__PRIVATE_ensureWriteStream(ee);for(const ne of ee.ia)te.In(ne.mutations)}async function __PRIVATE_onMutationResult(ee,te,ne){const re=ee.ia.shift(),se=MutationBatchResult.from(re,te,ne);await __PRIVATE_executeWithRecovery(ee,(()=>ee.remoteSyncer.applySuccessfulWrite(se))),await __PRIVATE_fillWritePipeline(ee)}async function __PRIVATE_onWriteStreamClose(ee,te){te&&__PRIVATE_ensureWriteStream(ee).Rn&&await async function __PRIVATE_handleWriteError(ee,te){if(function __PRIVATE_isPermanentWriteError(ee){return __PRIVATE_isPermanentError(ee)&&ee!==gn.ABORTED}(te.code)){const ne=ee.ia.shift();__PRIVATE_ensureWriteStream(ee).Zt(),await __PRIVATE_executeWithRecovery(ee,(()=>ee.remoteSyncer.rejectFailedWrite(ne.batchId,te))),await __PRIVATE_fillWritePipeline(ee)}}(ee,te),__PRIVATE_shouldStartWriteStream(ee)&&__PRIVATE_startWriteStream(ee)}async function __PRIVATE_remoteStoreHandleCredentialChange(ee,te){const ne=__PRIVATE_debugCast(ee);ne.asyncQueue.verifyOperationInProgress(),__PRIVATE_logDebug(js,"RemoteStore received new credentials");const re=__PRIVATE_canUseNetwork(ne);ne.ca.add(3),await __PRIVATE_disableNetworkInternal(ne),re&&ne.ha.set("Unknown"),await ne.remoteSyncer.handleCredentialChange(te),ne.ca.delete(3),await __PRIVATE_enableNetworkInternal(ne)}async function __PRIVATE_remoteStoreApplyPrimaryState(ee,te){const ne=__PRIVATE_debugCast(ee);te?(ne.ca.delete(2),await __PRIVATE_enableNetworkInternal(ne)):te||(ne.ca.add(2),await __PRIVATE_disableNetworkInternal(ne),ne.ha.set("Unknown"))}function __PRIVATE_ensureWatchStream(ee){return ee.Pa||(ee.Pa=function __PRIVATE_newPersistentWatchStream(ee,te,ne){const re=__PRIVATE_debugCast(ee);return re.mn(),new __PRIVATE_PersistentListenStream(te,re.connection,re.authCredentials,re.appCheckCredentials,re.serializer,ne)}(ee.datastore,ee.asyncQueue,{ut:__PRIVATE_onWatchStreamConnected.bind(null,ee),lt:__PRIVATE_onWatchStreamOpen.bind(null,ee),ht:__PRIVATE_onWatchStreamClose.bind(null,ee),hn:__PRIVATE_onWatchStreamChange.bind(null,ee)}),ee.la.push((async te=>{te?(ee.Pa.Zt(),__PRIVATE_shouldStartWatchStream(ee)?__PRIVATE_startWatchStream(ee):ee.ha.set("Unknown")):(await ee.Pa.stop(),__PRIVATE_cleanUpWatchStreamState(ee))}))),ee.Pa}function __PRIVATE_ensureWriteStream(ee){return ee.Ra||(ee.Ra=function __PRIVATE_newPersistentWriteStream(ee,te,ne){const re=__PRIVATE_debugCast(ee);return re.mn(),new __PRIVATE_PersistentWriteStream(te,re.connection,re.authCredentials,re.appCheckCredentials,re.serializer,ne)}(ee.datastore,ee.asyncQueue,{ut:()=>Promise.resolve(),lt:__PRIVATE_onWriteStreamOpen.bind(null,ee),ht:__PRIVATE_onWriteStreamClose.bind(null,ee),An:__PRIVATE_onWriteHandshakeComplete.bind(null,ee),Vn:__PRIVATE_onMutationResult.bind(null,ee)}),ee.la.push((async te=>{te?(ee.Ra.Zt(),await __PRIVATE_fillWritePipeline(ee)):(await ee.Ra.stop(),ee.ia.length>0&&(__PRIVATE_logDebug(js,`Stopping write stream with ${ee.ia.length} pending writes`),ee.ia=[]))}))),ee.Ra}class __PRIVATE_AsyncObserver{constructor(ee){this.observer=ee,this.muted=!1}next(ee){this.muted||this.observer.next&&this.Ia(this.observer.next,ee)}error(ee){this.muted||(this.observer.error?this.Ia(this.observer.error,ee):__PRIVATE_logError("Uncaught Error in snapshot listener:",ee.toString()))}Aa(){this.muted=!0}Ia(ee,te){setTimeout((()=>{this.muted||ee(te)}),0)}}class DelayedOperation{constructor(ee,te,ne,re,se){this.asyncQueue=ee,this.timerId=te,this.targetTimeMs=ne,this.op=re,this.removalCallback=se,this.deferred=new __PRIVATE_Deferred,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((ee=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(ee,te,ne,re,se){const ie=Date.now()+ne,ae=new DelayedOperation(ee,te,ie,re,se);return ae.start(ne),ae}start(ee){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),ee)}skipDelay(){return this.handleDelayElapsed()}cancel(ee){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new s(gn.CANCELLED,"Operation cancelled"+(ee?": "+ee:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((ee=>this.deferred.resolve(ee)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function __PRIVATE_wrapInUserErrorIfRecoverable(ee,te){if(__PRIVATE_logError("AsyncQueue",`${te}: ${ee}`),__PRIVATE_isIndexedDbTransactionError(ee))return new s(gn.UNAVAILABLE,`${te}: ${ee}`);throw ee}class __PRIVATE_BundleReaderImpl{constructor(ee,te){this.Va=ee,this.serializer=te,this.metadata=new __PRIVATE_Deferred,this.buffer=new Uint8Array,this.da=function __PRIVATE_newTextDecoder(){return new TextDecoder("utf-8")}(),this.fa().then((ee=>{ee&&ee.Ho()?this.metadata.resolve(ee.jo.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(ee?.jo)}`))}),(ee=>this.metadata.reject(ee)))}close(){return this.Va.cancel()}async getMetadata(){return this.metadata.promise}async ma(){return await this.getMetadata(),this.fa()}async fa(){const ee=await this.pa();if(null===ee)return null;const te=this.da.decode(ee),ne=Number(te);isNaN(ne)&&this.ga(`length string (${te}) is not valid number`);const re=await this.ya(ne);return new __PRIVATE_SizedBundleElement(JSON.parse(re),ee.length+ne)}wa(){return this.buffer.findIndex((ee=>ee==="{".charCodeAt(0)))}async pa(){for(;this.wa()<0&&!await this.ba(););if(0===this.buffer.length)return null;const ee=this.wa();ee<0&&this.ga("Reached the end of bundle when a length string is expected.");const te=this.buffer.slice(0,ee);return this.buffer=this.buffer.slice(ee),te}async ya(ee){for(;this.buffer.length<ee;)await this.ba()&&this.ga("Reached the end of bundle when more is expected.");const te=this.da.decode(this.buffer.slice(0,ee));return this.buffer=this.buffer.slice(ee),te}ga(ee){throw this.Va.cancel(),new Error(`Invalid bundle format: ${ee}`)}async ba(){const ee=await this.Va.read();if(!ee.done){const te=new Uint8Array(this.buffer.length+ee.value.length);te.set(this.buffer),te.set(ee.value,this.buffer.length),this.buffer=te}return ee.done}}class __PRIVATE_BundleReaderSyncImpl{constructor(ee,te){this.bundleData=ee,this.serializer=te,this.cursor=0,this.elements=[];let ne=this.ma();if(!ne||!ne.Ho())throw new Error(`The first element of the bundle is not a metadata object, it is\n ${JSON.stringify(ne?.jo)}`);this.metadata=ne;do{ne=this.ma(),null!==ne&&this.elements.push(ne)}while(null!==ne)}getMetadata(){return this.metadata}va(){return this.elements}ma(){if(this.cursor===this.bundleData.length)return null;const ee=this.pa(),te=this.ya(ee);return new __PRIVATE_SizedBundleElement(JSON.parse(te),ee)}ya(ee){if(this.cursor+ee>this.bundleData.length)throw new s(gn.INTERNAL,"Reached the end of bundle when more is expected.");return this.bundleData.slice(this.cursor,this.cursor+=ee)}pa(){const ee=this.cursor;let te=this.cursor;for(;te<this.bundleData.length;){if("{"===this.bundleData[te]){if(te===ee)throw new Error("First character is a bracket and not a number");return this.cursor=te,Number(this.bundleData.slice(ee,te))}te++}throw new Error("Reached the end of bundle when more is expected.")}}const Js="IndexBackfiller";class __PRIVATE_IndexBackfillerScheduler{constructor(ee,te){this.asyncQueue=ee,this.Sa=te,this.task=null}start(){this.Da(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}Da(ee){__PRIVATE_logDebug(Js,`Scheduled in ${ee}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",ee,(async()=>{this.task=null;try{const ee=await this.Sa.xa();__PRIVATE_logDebug(Js,`Documents written: ${ee}`)}catch(ee){__PRIVATE_isIndexedDbTransactionError(ee)?__PRIVATE_logDebug(Js,"Ignoring IndexedDB error during index backfill: ",ee):await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}await this.Da(6e4)}))}}class __PRIVATE_IndexBackfiller{constructor(ee,te){this.localStore=ee,this.persistence=te}async xa(ee=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(te=>this.Ca(te,ee)))}Ca(ee,te){const ne=new Set;let re=te,se=!0;return PersistencePromise.doWhile((()=>!0===se&&re>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(ee).next((te=>{if(null!==te&&!ne.has(te))return __PRIVATE_logDebug(Js,`Processing collection: ${te}`),this.Fa(ee,te,re).next((ee=>{re-=ee,ne.add(te)}));se=!1})))).next((()=>te-re))}Fa(ee,te,ne){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(ee,te).next((re=>this.localStore.localDocuments.getNextDocuments(ee,te,re,ne).next((ne=>{const se=ne.changes;return this.localStore.indexManager.updateIndexEntries(ee,se).next((()=>this.Oa(re,ne))).next((ne=>(__PRIVATE_logDebug(Js,`Updating offset: ${ne}`),this.localStore.indexManager.updateCollectionGroup(ee,te,ne)))).next((()=>se.size))}))))}Oa(ee,te){let ne=ee;return te.changes.forEach(((ee,te)=>{const re=__PRIVATE_newIndexOffsetFromDocument(te);__PRIVATE_indexOffsetComparator(re,ne)>0&&(ne=re)})),new IndexOffset(ne.readTime,ne.documentKey,Math.max(te.batchId,ee.largestBatchId))}}const zs="firestore_clients";function createWebStorageClientStateKey(ee,te){return`${zs}_${ee}_${te}`}const Ws="firestore_mutations";function createWebStorageMutationBatchKey(ee,te,ne){let re=`${Ws}_${ee}_${ne}`;return te.isAuthenticated()&&(re+=`_${te.uid}`),re}const $s="firestore_targets";function createWebStorageQueryTargetMetadataKey(ee,te){return`${$s}_${ee}_${te}`}const Ys="SharedClientState";class __PRIVATE_MutationMetadata{constructor(ee,te,ne,re){this.user=ee,this.batchId=te,this.state=ne,this.error=re}static Ma(ee,te,ne){const re=JSON.parse(ne);let se,ie="object"==typeof re&&-1!==["pending","acknowledged","rejected"].indexOf(re.state)&&(void 0===re.error||"object"==typeof re.error);return ie&&re.error&&(ie="string"==typeof re.error.message&&"string"==typeof re.error.code,ie&&(se=new s(re.error.code,re.error.message))),ie?new __PRIVATE_MutationMetadata(ee,te,re.state,se):(__PRIVATE_logError(Ys,`Failed to parse mutation state for ID '${te}': ${ne}`),null)}Na(){const ee={state:this.state,updateTimeMs:Date.now()};return this.error&&(ee.error={code:this.error.code,message:this.error.message}),JSON.stringify(ee)}}class __PRIVATE_QueryTargetMetadata{constructor(ee,te,ne){this.targetId=ee,this.state=te,this.error=ne}static Ma(ee,te){const ne=JSON.parse(te);let re,se="object"==typeof ne&&-1!==["not-current","current","rejected"].indexOf(ne.state)&&(void 0===ne.error||"object"==typeof ne.error);return se&&ne.error&&(se="string"==typeof ne.error.message&&"string"==typeof ne.error.code,se&&(re=new s(ne.error.code,ne.error.message))),se?new __PRIVATE_QueryTargetMetadata(ee,ne.state,re):(__PRIVATE_logError(Ys,`Failed to parse target state for ID '${ee}': ${te}`),null)}Na(){const ee={state:this.state,updateTimeMs:Date.now()};return this.error&&(ee.error={code:this.error.code,message:this.error.message}),JSON.stringify(ee)}}class __PRIVATE_RemoteClientState{constructor(ee,te){this.clientId=ee,this.activeTargetIds=te}static Ma(ee,te){const ne=JSON.parse(te);let re="object"==typeof ne&&ne.activeTargetIds instanceof Array,se=__PRIVATE_targetIdSet();for(let ee=0;re&&ee<ne.activeTargetIds.length;++ee)re=isSafeInteger(ne.activeTargetIds[ee]),se=se.add(ne.activeTargetIds[ee]);return re?new __PRIVATE_RemoteClientState(ee,se):(__PRIVATE_logError(Ys,`Failed to parse client data for instance '${ee}': ${te}`),null)}}class __PRIVATE_SharedOnlineState{constructor(ee,te){this.clientId=ee,this.onlineState=te}static Ma(ee){const te=JSON.parse(ee);return"object"==typeof te&&-1!==["Unknown","Online","Offline"].indexOf(te.onlineState)&&"string"==typeof te.clientId?new __PRIVATE_SharedOnlineState(te.clientId,te.onlineState):(__PRIVATE_logError(Ys,`Failed to parse online state: ${ee}`),null)}}class __PRIVATE_LocalClientState{constructor(){this.activeTargetIds=__PRIVATE_targetIdSet()}La(ee){this.activeTargetIds=this.activeTargetIds.add(ee)}Ba(ee){this.activeTargetIds=this.activeTargetIds.delete(ee)}Na(){const ee={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(ee)}}class __PRIVATE_WebStorageSharedClientState{constructor(ee,te,ne,re,se){this.window=ee,this.xt=te,this.persistenceKey=ne,this.Ua=re,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.ka=this.qa.bind(this),this.$a=new SortedMap(__PRIVATE_primitiveComparator),this.started=!1,this.Ka=[];const ie=ne.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=se,this.Wa=createWebStorageClientStateKey(this.persistenceKey,this.Ua),this.Qa=function createWebStorageSequenceNumberKey(ee){return`firestore_sequence_number_${ee}`}(this.persistenceKey),this.$a=this.$a.insert(this.Ua,new __PRIVATE_LocalClientState),this.Ga=new RegExp(`^${zs}_${ie}_([^_]*)$`),this.za=new RegExp(`^${Ws}_${ie}_(\\d+)(?:_(.*))?$`),this.ja=new RegExp(`^${$s}_${ie}_(\\d+)$`),this.Ha=function createWebStorageOnlineStateKey(ee){return`firestore_online_state_${ee}`}(this.persistenceKey),this.Ja=function createBundleLoadedKey(ee){return`firestore_bundle_loaded_v2_${ee}`}(this.persistenceKey),this.window.addEventListener("storage",this.ka)}static Je(ee){return!(!ee||!ee.localStorage)}async start(){const ee=await this.syncEngine.Ro();for(const te of ee){if(te===this.Ua)continue;const ee=this.getItem(createWebStorageClientStateKey(this.persistenceKey,te));if(ee){const ne=__PRIVATE_RemoteClientState.Ma(te,ee);ne&&(this.$a=this.$a.insert(ne.clientId,ne))}}this.Ya();const te=this.storage.getItem(this.Ha);if(te){const ee=this.Za(te);ee&&this.Xa(ee)}for(const ee of this.Ka)this.qa(ee);this.Ka=[],this.window.addEventListener("pagehide",(()=>this.shutdown())),this.started=!0}writeSequenceNumber(ee){this.setItem(this.Qa,JSON.stringify(ee))}getAllActiveQueryTargets(){return this.eu(this.$a)}isActiveQueryTarget(ee){let te=!1;return this.$a.forEach(((ne,re)=>{re.activeTargetIds.has(ee)&&(te=!0)})),te}addPendingMutation(ee){this.tu(ee,"pending")}updateMutationState(ee,te,ne){this.tu(ee,te,ne),this.nu(ee)}addLocalQueryTarget(ee,te=!0){let ne="not-current";if(this.isActiveQueryTarget(ee)){const te=this.storage.getItem(createWebStorageQueryTargetMetadataKey(this.persistenceKey,ee));if(te){const re=__PRIVATE_QueryTargetMetadata.Ma(ee,te);re&&(ne=re.state)}}return te&&this.ru.La(ee),this.Ya(),ne}removeLocalQueryTarget(ee){this.ru.Ba(ee),this.Ya()}isLocalQueryTarget(ee){return this.ru.activeTargetIds.has(ee)}clearQueryState(ee){this.removeItem(createWebStorageQueryTargetMetadataKey(this.persistenceKey,ee))}updateQueryState(ee,te,ne){this.iu(ee,te,ne)}handleUserChange(ee,te,ne){te.forEach((ee=>{this.nu(ee)})),this.currentUser=ee,ne.forEach((ee=>{this.addPendingMutation(ee)}))}setOnlineState(ee){this.su(ee)}notifyBundleLoaded(ee){this._u(ee)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.ka),this.removeItem(this.Wa),this.started=!1)}getItem(ee){const te=this.storage.getItem(ee);return __PRIVATE_logDebug(Ys,"READ",ee,te),te}setItem(ee,te){__PRIVATE_logDebug(Ys,"SET",ee,te),this.storage.setItem(ee,te)}removeItem(ee){__PRIVATE_logDebug(Ys,"REMOVE",ee),this.storage.removeItem(ee)}qa(ee){const te=ee;if(te.storageArea===this.storage){if(__PRIVATE_logDebug(Ys,"EVENT",te.key,te.newValue),te.key===this.Wa)return void __PRIVATE_logError("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.xt.enqueueRetryable((async()=>{if(this.started){if(null!==te.key)if(this.Ga.test(te.key)){if(null==te.newValue){const ee=this.ou(te.key);return this.au(ee,null)}{const ee=this.uu(te.key,te.newValue);if(ee)return this.au(ee.clientId,ee)}}else if(this.za.test(te.key)){if(null!==te.newValue){const ee=this.cu(te.key,te.newValue);if(ee)return this.lu(ee)}}else if(this.ja.test(te.key)){if(null!==te.newValue){const ee=this.Eu(te.key,te.newValue);if(ee)return this.hu(ee)}}else if(te.key===this.Ha){if(null!==te.newValue){const ee=this.Za(te.newValue);if(ee)return this.Xa(ee)}}else if(te.key===this.Qa){const ee=function __PRIVATE_fromWebStorageSequenceNumber(ee){let te=__PRIVATE_ListenSequence.yn;if(null!=ee)try{const ne=JSON.parse(ee);__PRIVATE_hardAssert("number"==typeof ne,30636,{Tu:ee}),te=ne}catch(ee){__PRIVATE_logError(Ys,"Failed to read sequence number from WebStorage",ee)}return te}(te.newValue);ee!==__PRIVATE_ListenSequence.yn&&this.sequenceNumberHandler(ee)}else if(te.key===this.Ja){const ee=this.Pu(te.newValue);await Promise.all(ee.map((ee=>this.syncEngine.Ru(ee))))}}else this.Ka.push(te)}))}}get ru(){return this.$a.get(this.Ua)}Ya(){this.setItem(this.Wa,this.ru.Na())}tu(ee,te,ne){const re=new __PRIVATE_MutationMetadata(this.currentUser,ee,te,ne),se=createWebStorageMutationBatchKey(this.persistenceKey,this.currentUser,ee);this.setItem(se,re.Na())}nu(ee){const te=createWebStorageMutationBatchKey(this.persistenceKey,this.currentUser,ee);this.removeItem(te)}su(ee){const te={clientId:this.Ua,onlineState:ee};this.storage.setItem(this.Ha,JSON.stringify(te))}iu(ee,te,ne){const re=createWebStorageQueryTargetMetadataKey(this.persistenceKey,ee),se=new __PRIVATE_QueryTargetMetadata(ee,te,ne);this.setItem(re,se.Na())}_u(ee){const te=JSON.stringify(Array.from(ee));this.setItem(this.Ja,te)}ou(ee){const te=this.Ga.exec(ee);return te?te[1]:null}uu(ee,te){const ne=this.ou(ee);return __PRIVATE_RemoteClientState.Ma(ne,te)}cu(ee,te){const ne=this.za.exec(ee),re=Number(ne[1]),se=void 0!==ne[2]?ne[2]:null;return __PRIVATE_MutationMetadata.Ma(new User(se),re,te)}Eu(ee,te){const ne=this.ja.exec(ee),re=Number(ne[1]);return __PRIVATE_QueryTargetMetadata.Ma(re,te)}Za(ee){return __PRIVATE_SharedOnlineState.Ma(ee)}Pu(ee){return JSON.parse(ee)}async lu(ee){if(ee.user.uid===this.currentUser.uid)return this.syncEngine.Iu(ee.batchId,ee.state,ee.error);__PRIVATE_logDebug(Ys,`Ignoring mutation for non-active user ${ee.user.uid}`)}hu(ee){return this.syncEngine.Au(ee.targetId,ee.state,ee.error)}au(ee,te){const ne=te?this.$a.insert(ee,te):this.$a.remove(ee),re=this.eu(this.$a),se=this.eu(ne),ie=[],ae=[];return se.forEach((ee=>{re.has(ee)||ie.push(ee)})),re.forEach((ee=>{se.has(ee)||ae.push(ee)})),this.syncEngine.Vu(ie,ae).then((()=>{this.$a=ne}))}Xa(ee){this.$a.get(ee.clientId)&&this.onlineStateHandler(ee.onlineState)}eu(ee){let te=__PRIVATE_targetIdSet();return ee.forEach(((ee,ne)=>{te=te.unionWith(ne.activeTargetIds)})),te}}class __PRIVATE_MemorySharedClientState{constructor(){this.du=new __PRIVATE_LocalClientState,this.fu={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(ee){}updateMutationState(ee,te,ne){}addLocalQueryTarget(ee,te=!0){return te&&this.du.La(ee),this.fu[ee]||"not-current"}updateQueryState(ee,te,ne){this.fu[ee]=te}removeLocalQueryTarget(ee){this.du.Ba(ee)}isLocalQueryTarget(ee){return this.du.activeTargetIds.has(ee)}clearQueryState(ee){delete this.fu[ee]}getAllActiveQueryTargets(){return this.du.activeTargetIds}isActiveQueryTarget(ee){return this.du.activeTargetIds.has(ee)}start(){return this.du=new __PRIVATE_LocalClientState,Promise.resolve()}handleUserChange(ee,te,ne){}setOnlineState(ee){}shutdown(){}writeSequenceNumber(ee){}notifyBundleLoaded(ee){}}function __PRIVATE_getWindow(){return"undefined"!=typeof window?window:null}function getDocument(){return"undefined"!=typeof document?document:null}class DocumentSet{static emptySet(ee){return new DocumentSet(ee.comparator)}constructor(ee){this.comparator=ee?(te,ne)=>ee(te,ne)||DocumentKey.comparator(te.key,ne.key):(ee,te)=>DocumentKey.comparator(ee.key,te.key),this.keyedMap=documentMap(),this.sortedSet=new SortedMap(this.comparator)}has(ee){return null!=this.keyedMap.get(ee)}get(ee){return this.keyedMap.get(ee)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(ee){const te=this.keyedMap.get(ee);return te?this.sortedSet.indexOf(te):-1}get size(){return this.sortedSet.size}forEach(ee){this.sortedSet.inorderTraversal(((te,ne)=>(ee(te),!1)))}add(ee){const te=this.delete(ee.key);return te.copy(te.keyedMap.insert(ee.key,ee),te.sortedSet.insert(ee,null))}delete(ee){const te=this.get(ee);return te?this.copy(this.keyedMap.remove(ee),this.sortedSet.remove(te)):this}isEqual(ee){if(!(ee instanceof DocumentSet))return!1;if(this.size!==ee.size)return!1;const te=this.sortedSet.getIterator(),ne=ee.sortedSet.getIterator();for(;te.hasNext();){const ee=te.getNext().key,re=ne.getNext().key;if(!ee.isEqual(re))return!1}return!0}toString(){const ee=[];return this.forEach((te=>{ee.push(te.toString())})),0===ee.length?"DocumentSet ()":"DocumentSet (\n "+ee.join(" \n")+"\n)"}copy(ee,te){const ne=new DocumentSet;return ne.comparator=this.comparator,ne.keyedMap=ee,ne.sortedSet=te,ne}}class __PRIVATE_DocumentChangeSet{constructor(){this.mu=new SortedMap(DocumentKey.comparator)}track(ee){const te=ee.doc.key,ne=this.mu.get(te);ne?0!==ee.type&&3===ne.type?this.mu=this.mu.insert(te,ee):3===ee.type&&1!==ne.type?this.mu=this.mu.insert(te,{type:ne.type,doc:ee.doc}):2===ee.type&&2===ne.type?this.mu=this.mu.insert(te,{type:2,doc:ee.doc}):2===ee.type&&0===ne.type?this.mu=this.mu.insert(te,{type:0,doc:ee.doc}):1===ee.type&&0===ne.type?this.mu=this.mu.remove(te):1===ee.type&&2===ne.type?this.mu=this.mu.insert(te,{type:1,doc:ne.doc}):0===ee.type&&1===ne.type?this.mu=this.mu.insert(te,{type:2,doc:ee.doc}):l(63341,{ye:ee,pu:ne}):this.mu=this.mu.insert(te,ee)}gu(){const ee=[];return this.mu.inorderTraversal(((te,ne)=>{ee.push(ne)})),ee}}class ViewSnapshot{constructor(ee,te,ne,re,se,ie,ae,oe,ue){this.query=ee,this.docs=te,this.oldDocs=ne,this.docChanges=re,this.mutatedKeys=se,this.fromCache=ie,this.syncStateChanged=ae,this.excludesMetadataChanges=oe,this.hasCachedResults=ue}static fromInitialDocuments(ee,te,ne,re,se){const ie=[];return te.forEach((ee=>{ie.push({type:0,doc:ee})})),new ViewSnapshot(ee,te,DocumentSet.emptySet(te),ie,ne,re,!0,!1,se)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(ee){if(!(this.fromCache===ee.fromCache&&this.hasCachedResults===ee.hasCachedResults&&this.syncStateChanged===ee.syncStateChanged&&this.mutatedKeys.isEqual(ee.mutatedKeys)&&__PRIVATE_queryOrPipelineEqual(this.query,ee.query)&&this.docs.isEqual(ee.docs)&&this.oldDocs.isEqual(ee.oldDocs)))return!1;const te=this.docChanges,ne=ee.docChanges;if(te.length!==ne.length)return!1;for(let ee=0;ee<te.length;ee++)if(te[ee].type!==ne[ee].type||!te[ee].doc.isEqual(ne[ee].doc))return!1;return!0}}class __PRIVATE_QueryListenersInfo{constructor(){this.yu=void 0,this.wu=[]}bu(){return this.wu.some((ee=>ee.vu()))}}class __PRIVATE_EventManagerImpl{constructor(){this.queries=__PRIVATE_newQueriesObjectMap(),this.onlineState="Unknown",this.Su=new Set}terminate(){!function __PRIVATE_errorAllTargets(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.queries;ne.queries=__PRIVATE_newQueriesObjectMap(),re.forEach(((ee,ne)=>{for(const ee of ne.wu)ee.onError(te)}))}(this,new s(gn.ABORTED,"Firestore shutting down"))}}function __PRIVATE_newQueriesObjectMap(){return new ObjectMap((ee=>__PRIVATE_canonifyQueryOrPipeline(ee)),__PRIVATE_queryOrPipelineEqual)}async function __PRIVATE_eventManagerListen(ee,te){const ne=__PRIVATE_debugCast(ee);let re=3;const se=te.query;let ie=ne.queries.get(se);ie?!ie.bu()&&te.vu()&&(re=2):(ie=new __PRIVATE_QueryListenersInfo,re=te.vu()?0:1);try{switch(re){case 0:ie.yu=await ne.onListen(se,!0);break;case 1:ie.yu=await ne.onListen(se,!1);break;case 2:await ne.onFirstRemoteStoreListen(se)}}catch(ee){const ne=__PRIVATE_wrapInUserErrorIfRecoverable(ee,`Initialization of query '${__PRIVATE_isPipeline(te.query)?__PRIVATE_canonifyPipeline(te.query):__PRIVATE_stringifyQuery(te.query)}' failed`);return void te.onError(ne)}ne.queries.set(se,ie),ie.wu.push(te),te.Du(ne.onlineState),ie.yu&&te.xu(ie.yu)&&__PRIVATE_raiseSnapshotsInSyncEvent(ne)}async function __PRIVATE_eventManagerUnlisten(ee,te){const ne=__PRIVATE_debugCast(ee),re=te.query;let se=3;const ie=ne.queries.get(re);if(ie){const ee=ie.wu.indexOf(te);ee>=0&&(ie.wu.splice(ee,1),0===ie.wu.length?se=te.vu()?0:1:!ie.bu()&&te.vu()&&(se=2))}switch(se){case 0:return ne.queries.delete(re),ne.onUnlisten(re,!0);case 1:return ne.queries.delete(re),ne.onUnlisten(re,!1);case 2:return ne.onLastRemoteStoreUnlisten(re);default:return}}function __PRIVATE_eventManagerOnWatchChange(ee,te){const ne=__PRIVATE_debugCast(ee);let re=!1;for(const ee of te){const te=ee.query,se=ne.queries.get(te);if(se){for(const te of se.wu)te.xu(ee)&&(re=!0);se.yu=ee}}re&&__PRIVATE_raiseSnapshotsInSyncEvent(ne)}function __PRIVATE_eventManagerOnWatchError(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.queries.get(te);if(se)for(const ee of se.wu)ee.onError(ne);re.queries.delete(te)}function __PRIVATE_raiseSnapshotsInSyncEvent(ee){ee.Su.forEach((ee=>{ee.next()}))}var Xs;!function(ee){ee.Default="default",ee.Cache="cache"}(Xs||(Xs={}));class __PRIVATE_QueryListener{constructor(ee,te,ne){this.query=ee,this.Cu=te,this.Fu=!1,this.Ou=null,this.onlineState="Unknown",this.options=ne||{}}xu(ee){if(!this.options.includeMetadataChanges){const te=[];for(const ne of ee.docChanges)3!==ne.type&&te.push(ne);ee=new ViewSnapshot(ee.query,ee.docs,ee.oldDocs,te,ee.mutatedKeys,ee.fromCache,ee.syncStateChanged,!0,ee.hasCachedResults)}let te=!1;return this.Fu?this.Mu(ee)&&(this.Cu.next(ee),te=!0):this.Nu(ee,this.onlineState)&&(this.Lu(ee),te=!0),this.Ou=ee,te}onError(ee){this.Cu.error(ee)}Du(ee){this.onlineState=ee;let te=!1;return this.Ou&&!this.Fu&&this.Nu(this.Ou,ee)&&(this.Lu(this.Ou),te=!0),te}Nu(ee,te){if(!ee.fromCache)return!0;if(!this.vu())return!0;const ne="Offline"!==te;return(!this.options.waitForSyncWhenOnline||!ne)&&(!ee.docs.isEmpty()||ee.hasCachedResults||"Offline"===te)}Mu(ee){if(ee.docChanges.length>0)return!0;const te=this.Ou&&this.Ou.hasPendingWrites!==ee.hasPendingWrites;return!(!ee.syncStateChanged&&!te)&&!0===this.options.includeMetadataChanges}Lu(ee){ee=ViewSnapshot.fromInitialDocuments(ee.query,ee.docs,ee.mutatedKeys,ee.fromCache,ee.hasCachedResults),this.Fu=!0,this.Cu.next(ee)}vu(){return this.options.source!==Xs.Cache}}class __PRIVATE_BundleConverterImpl{constructor(ee){this.serializer=ee}Qo(ee){return fromName(this.serializer,ee)}Go(ee){return ee.metadata.exists?fromDocument(this.serializer,ee.document,!1):MutableDocument.newNoDocument(this.Qo(ee.metadata.name),this.zo(ee.metadata.readTime))}zo(ee){return __PRIVATE_fromVersion(ee)}}class __PRIVATE_BundleLoader{constructor(ee,te){this.Bu=ee,this.serializer=te,this.Uu=[],this.ku=[],this.collectionGroups=new Set,this.progress=__PRIVATE_bundleInitialProgress(ee)}get queries(){return this.Uu}get documents(){return this.ku}qu(ee){this.progress.bytesLoaded+=ee.byteLength;let te=this.progress.documentsLoaded;if(ee.jo.namedQuery)this.Uu.push(ee.jo.namedQuery);else if(ee.jo.documentMetadata){this.ku.push({metadata:ee.jo.documentMetadata}),ee.jo.documentMetadata.exists||++te;const ne=ResourcePath.fromString(ee.jo.documentMetadata.name);this.collectionGroups.add(ne.get(ne.length-2))}else ee.jo.document&&(this.ku[this.ku.length-1].document=ee.jo.document,++te);return te!==this.progress.documentsLoaded?(this.progress.documentsLoaded=te,{...this.progress}):null}$u(ee){const te=new Map,ne=new __PRIVATE_BundleConverterImpl(this.serializer);for(const re of ee)if(re.metadata.queries){const ee=ne.Qo(re.metadata.name);for(const ne of re.metadata.queries){const re=(te.get(ne)||__PRIVATE_documentKeySet()).add(ee);te.set(ne,re)}}return te}async Ku(ee){const te=await async function __PRIVATE_localStoreApplyBundledDocuments(ee,te,ne,re){const se=__PRIVATE_debugCast(ee);let ie=__PRIVATE_documentKeySet(),ae=__PRIVATE_mutableDocumentMap();for(const ee of ne){const ne=te.Qo(ee.metadata.name);ee.document&&(ie=ie.add(ne));const re=te.Go(ee);re.setReadTime(te.zo(ee.metadata.readTime)),ae=ae.insert(ne,re)}const oe=se.Uo.newChangeBuffer({trackRemovals:!0}),ue=await __PRIVATE_localStoreAllocateTarget(se,function __PRIVATE_umbrellaTarget(ee){return __PRIVATE_queryToTarget(__PRIVATE_newQueryForPath(ResourcePath.fromString(`__bundle__/docs/${ee}`)))}(re));return se.persistence.runTransaction("Apply bundle documents","readwrite",(ee=>__PRIVATE_populateDocumentChangeBuffer(ee,oe,ae).next((te=>(oe.apply(ee),te))).next((te=>se.A_.removeMatchingKeysForTargetId(ee,ue.targetId).next((()=>se.A_.addMatchingKeys(ee,ie,ue.targetId))).next((()=>se.localDocuments.getLocalViewOfDocuments(ee,te.$o,te.Ko))).next((()=>te.$o))))))}(ee,new __PRIVATE_BundleConverterImpl(this.serializer),this.ku,this.Bu.id),ne=this.$u(this.documents);for(const te of this.Uu)await __PRIVATE_localStoreSaveNamedQuery(ee,te,ne.get(te.name));return this.progress.taskState="Success",{progress:this.progress,Wu:this.collectionGroups,Qu:te}}}function __PRIVATE_bundleInitialProgress(ee){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:ee.totalDocuments,totalBytes:ee.totalBytes}}class __PRIVATE_AddedLimboDocument{constructor(ee){this.key=ee}}class __PRIVATE_RemovedLimboDocument{constructor(ee){this.key=ee}}class __PRIVATE_View{constructor(ee,te){this.query=ee,this.Gu=te,this.zu=null,this.hasCachedResults=!1,this.current=!1,this.ju=__PRIVATE_documentKeySet(),this.mutatedKeys=__PRIVATE_documentKeySet(),this.Hu=__PRIVATE_isPipeline(ee)?__PRIVATE_newPipelineComparator(ee):__PRIVATE_newQueryComparator(ee),this.Ju=new DocumentSet(this.Hu)}get Yu(){return this.Gu}Zu(ee,te){const ne=te?te.Xu:new __PRIVATE_DocumentChangeSet,re=te?te.Ju:this.Ju;let se=te?te.mutatedKeys:this.mutatedKeys,ie=re,ae=!1;const[oe,ue]=this.ec(this.query,re);ee.inorderTraversal(((ee,te)=>{const Be=re.get(ee),le=__PRIVATE_queryOrPipelineMatches(this.query,te)?te:null,ce=!!Be&&this.mutatedKeys.has(Be.key),_e=!!le&&(le.hasLocalMutations||this.mutatedKeys.has(le.key)&&le.hasCommittedMutations);let he=!1;Be&&le?Be.data.isEqual(le.data)?ce!==_e&&(ne.track({type:3,doc:le}),he=!0):this.tc(Be,le)||(ne.track({type:2,doc:le}),he=!0,(oe&&this.Hu(le,oe)>0||ue&&this.Hu(le,ue)<0)&&(ae=!0)):!Be&&le?(ne.track({type:0,doc:le}),he=!0):Be&&!le&&(ne.track({type:1,doc:Be}),he=!0,(oe||ue)&&(ae=!0)),he&&(le?(ie=ie.add(le),se=_e?se.add(ee):se.delete(ee)):(ie=ie.delete(ee),se=se.delete(ee)))}));const Be=this.nc(this.query);if(Be)if(__PRIVATE_isPipeline(this.query)){const ee=[];ie.forEach((te=>ee.push(te)));const te=__PRIVATE_runPipeline(this.query,ee);let re=new DocumentSet(__PRIVATE_newPipelineComparator(this.query));for(const ee of te)re=re.add(ee);ie.forEach((ee=>{re.has(ee.key)||(se=se.delete(ee.key),ne.track({type:1,doc:ee}))})),ie=re}else{const ee=this.rc(this.query);for(;ie.size>Be;){const te="F"===ee?ie.last():ie.first();ie=ie.delete(te.key),se=se.delete(te.key),ne.track({type:1,doc:te})}}return{Ju:ie,Xu:ne,Fo:ae,mutatedKeys:se}}nc(ee){return __PRIVATE_isPipeline(ee)?__PRIVATE_getLastEffectiveLimit(ee)?.limit:ee.limit||void 0}rc(ee){if(__PRIVATE_isPipeline(ee)){const te=__PRIVATE_getLastEffectiveLimit(ee);return te&&te.limit<0?"L":"F"}return ee.limitType}ec(ee,te){if(__PRIVATE_isPipeline(ee)){const ne=__PRIVATE_getLastEffectiveLimit(ee)?.limit;return[te.size===ne?te.last():null,null]}return["F"===ee.limitType&&te.size===this.nc(this.query)?te.last():null,"L"===ee.limitType&&te.size===this.nc(this.query)?te.first():null]}tc(ee,te){return ee.hasLocalMutations&&te.hasCommittedMutations&&!te.hasLocalMutations}applyChanges(ee,te,ne,re){const se=this.Ju;this.Ju=ee.Ju,this.mutatedKeys=ee.mutatedKeys;const ie=ee.Xu.gu();ie.sort(((ee,te)=>function __PRIVATE_compareChangeType(ee,te){const order=ee=>{switch(ee){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return l(20277,{ye:ee})}};return order(ee)-order(te)}(ee.type,te.type)||this.Hu(ee.doc,te.doc))),this.sc(ne),re=re??!1;const ae=te&&!re?this._c():[],oe=0===this.ju.size&&this.current&&!re?1:0,ue=oe!==this.zu;return this.zu=oe,0!==ie.length||ue?{snapshot:new ViewSnapshot(this.query,ee.Ju,se,ie,ee.mutatedKeys,0===oe,ue,!1,!!ne&&ne.resumeToken.approximateByteSize()>0),oc:ae}:{oc:ae}}Du(ee){return this.current&&"Offline"===ee?(this.current=!1,this.applyChanges({Ju:this.Ju,Xu:new __PRIVATE_DocumentChangeSet,mutatedKeys:this.mutatedKeys,Fo:!1},!1)):{oc:[]}}ac(ee){return!this.Gu.has(ee)&&!!this.Ju.has(ee)&&!this.Ju.get(ee).hasLocalMutations}sc(ee){ee&&(ee.addedDocuments.forEach((ee=>this.Gu=this.Gu.add(ee))),ee.modifiedDocuments.forEach((ee=>{})),ee.removedDocuments.forEach((ee=>this.Gu=this.Gu.delete(ee))),this.current=ee.current)}_c(){if(!this.current)return[];const ee=this.ju;this.ju=__PRIVATE_documentKeySet(),this.Ju.forEach((ee=>{this.ac(ee.key)&&(this.ju=this.ju.add(ee.key))}));const te=[];return ee.forEach((ee=>{this.ju.has(ee)||te.push(new __PRIVATE_RemovedLimboDocument(ee))})),this.ju.forEach((ne=>{ee.has(ne)||te.push(new __PRIVATE_AddedLimboDocument(ne))})),te}uc(ee){this.Gu=ee.Wo,this.ju=__PRIVATE_documentKeySet();const te=this.Zu(ee.documents);return this.applyChanges(te,!0)}cc(){return ViewSnapshot.fromInitialDocuments(this.query,this.Ju,this.mutatedKeys,0===this.zu,this.hasCachedResults)}}const Zs="SyncEngine";class __PRIVATE_QueryView{constructor(ee,te,ne){this.query=ee,this.targetId=te,this.view=ne}}class LimboResolution{constructor(ee){this.key=ee,this.lc=!1}}class __PRIVATE_SyncEngineImpl{constructor(ee,te,ne,re,se,ie){this.localStore=ee,this.remoteStore=te,this.eventManager=ne,this.sharedClientState=re,this.currentUser=se,this.maxConcurrentLimboResolutions=ie,this.Ec={},this.hc=new ObjectMap((ee=>__PRIVATE_canonifyQueryOrPipeline(ee)),__PRIVATE_queryOrPipelineEqual),this.Tc=new Map,this.Pc=new Set,this.Rc=new SortedMap(DocumentKey.comparator),this.Ic=new Map,this.Ac=new __PRIVATE_ReferenceSet,this.Vc={},this.dc=new Map,this.fc=__PRIVATE_TargetIdGenerator.ws(),this.onlineState="Unknown",this.mc=void 0}get isPrimaryClient(){return!0===this.mc}}async function __PRIVATE_syncEngineListen(ee,te,ne=!0){const re=__PRIVATE_ensureWatchCallbacks(ee);let se;const ie=re.hc.get(te);return ie?(re.sharedClientState.addLocalQueryTarget(ie.targetId),se=ie.view.cc()):se=await __PRIVATE_allocateTargetAndMaybeListen(re,te,ne,!0),se}async function __PRIVATE_triggerRemoteStoreListen(ee,te){const ne=__PRIVATE_ensureWatchCallbacks(ee);await __PRIVATE_allocateTargetAndMaybeListen(ne,te,!0,!1)}async function __PRIVATE_allocateTargetAndMaybeListen(ee,te,ne,re){const se=await __PRIVATE_localStoreAllocateTarget(ee.localStore,__PRIVATE_isPipeline(te)?te:__PRIVATE_queryToTarget(te)),ie=se.targetId,ae=ee.sharedClientState.addLocalQueryTarget(ie,ne);let oe;return re&&(oe=await __PRIVATE_initializeViewAndComputeSnapshot(ee,te,ie,"current"===ae,se.resumeToken)),ee.isPrimaryClient&&ne&&__PRIVATE_remoteStoreListen(ee.remoteStore,se),oe}async function __PRIVATE_initializeViewAndComputeSnapshot(ee,te,ne,re,se){ee.gc=(te,ne,re)=>async function __PRIVATE_applyDocChanges(ee,te,ne,re){let se=te.view.Zu(ne);se.Fo&&(se=await __PRIVATE_localStoreExecuteQuery(ee.localStore,te.query,!1).then((({documents:ee})=>te.view.Zu(ee,se))));const ie=re&&re.targetChanges.get(te.targetId),ae=re&&null!=re.targetMismatches.get(te.targetId),oe=te.view.applyChanges(se,ee.isPrimaryClient,ie,ae);return __PRIVATE_updateTrackedLimbos(ee,te.targetId,oe.oc),oe.snapshot}(ee,te,ne,re);const ie=await __PRIVATE_localStoreExecuteQuery(ee.localStore,te,!0),ae=new __PRIVATE_View(te,ie.Wo),oe=ae.Zu(ie.documents),ue=TargetChange.createSynthesizedTargetChangeForCurrentChange(ne,re&&"Offline"!==ee.onlineState,se),Be=ae.applyChanges(oe,ee.isPrimaryClient,ue);__PRIVATE_updateTrackedLimbos(ee,ne,Be.oc);const le=new __PRIVATE_QueryView(te,ne,ae);return ee.hc.set(te,le),ee.Tc.has(ne)?ee.Tc.get(ne).push(te):ee.Tc.set(ne,[te]),Be.snapshot}async function __PRIVATE_syncEngineUnlisten(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.hc.get(te),ie=re.Tc.get(se.targetId);if(ie.length>1)return re.Tc.set(se.targetId,ie.filter((ee=>!__PRIVATE_queryOrPipelineEqual(ee,te)))),void re.hc.delete(te);re.isPrimaryClient?(re.sharedClientState.removeLocalQueryTarget(se.targetId),re.sharedClientState.isActiveQueryTarget(se.targetId)||await __PRIVATE_localStoreReleaseTarget(re.localStore,se.targetId,!1).then((()=>{re.sharedClientState.clearQueryState(se.targetId),ne&&__PRIVATE_remoteStoreUnlisten(re.remoteStore,se.targetId),__PRIVATE_removeAndCleanupTarget(re,se.targetId)})).catch(__PRIVATE_ignoreIfPrimaryLeaseLoss)):(__PRIVATE_removeAndCleanupTarget(re,se.targetId),await __PRIVATE_localStoreReleaseTarget(re.localStore,se.targetId,!0))}async function __PRIVATE_triggerRemoteStoreUnlisten(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.hc.get(te),se=ne.Tc.get(re.targetId);ne.isPrimaryClient&&1===se.length&&(ne.sharedClientState.removeLocalQueryTarget(re.targetId),__PRIVATE_remoteStoreUnlisten(ne.remoteStore,re.targetId))}async function __PRIVATE_syncEngineApplyRemoteEvent(ee,te){const ne=__PRIVATE_debugCast(ee);try{const ee=await function __PRIVATE_localStoreApplyRemoteEventToLocalCache(ee,te){const ne=__PRIVATE_debugCast(ee),re=te.snapshotVersion;let se=ne.No;return ne.persistence.runTransaction("Apply remote event","readwrite-primary",(ee=>{const ie=ne.Uo.newChangeBuffer({trackRemovals:!0});se=ne.No;const ae=[];te.targetChanges.forEach(((ie,oe)=>{const ue=se.get(oe);if(!ue)return;ae.push(ne.A_.removeMatchingKeys(ee,ie.removedDocuments,oe).next((()=>ne.A_.addMatchingKeys(ee,ie.addedDocuments,oe))));let Be=ue.withSequenceNumber(ee.currentSequenceNumber);null!==te.targetMismatches.get(oe)?Be=Be.withResumeToken(ByteString.EMPTY_BYTE_STRING,SnapshotVersion.min()).withLastLimboFreeSnapshotVersion(SnapshotVersion.min()):ie.resumeToken.approximateByteSize()>0&&(Be=Be.withResumeToken(ie.resumeToken,re)),se=se.insert(oe,Be),function __PRIVATE_shouldPersistTargetData(ee,te,ne){return 0===ee.resumeToken.approximateByteSize()||(te.snapshotVersion.toMicroseconds()-ee.snapshotVersion.toMicroseconds()>=3e8||ne.addedDocuments.size+ne.modifiedDocuments.size+ne.removedDocuments.size>0)}(ue,Be,ie)&&ae.push(ne.A_.updateTargetData(ee,Be))}));let oe=__PRIVATE_mutableDocumentMap(),ue=__PRIVATE_documentKeySet();if(te.documentUpdates.forEach((re=>{te.resolvedLimboDocuments.has(re)&&ae.push(ne.persistence.referenceDelegate.updateLimboDocument(ee,re))})),ae.push(__PRIVATE_populateDocumentChangeBuffer(ee,ie,te.documentUpdates).next((ee=>{oe=ee.$o,ue=ee.Ko}))),!re.isEqual(SnapshotVersion.min())){const te=ne.A_.getLastRemoteSnapshotVersion(ee).next((te=>ne.A_.setTargetsMetadata(ee,ee.currentSequenceNumber,re)));ae.push(te)}return PersistencePromise.waitFor(ae).next((()=>ie.apply(ee))).next((()=>ne.localDocuments.getLocalViewOfDocuments(ee,oe,ue))).next((()=>oe))})).then((ee=>(ne.No=se,ee)))}(ne.localStore,te);te.targetChanges.forEach(((ee,te)=>{const re=ne.Ic.get(te);re&&(__PRIVATE_hardAssert(ee.addedDocuments.size+ee.modifiedDocuments.size+ee.removedDocuments.size<=1,22616),ee.addedDocuments.size>0?re.lc=!0:ee.modifiedDocuments.size>0?__PRIVATE_hardAssert(re.lc,14607):ee.removedDocuments.size>0&&(__PRIVATE_hardAssert(re.lc,42227),re.lc=!1))})),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee,te)}catch(ee){await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}}function __PRIVATE_syncEngineApplyOnlineStateChange(ee,te,ne){const re=__PRIVATE_debugCast(ee);if(re.isPrimaryClient&&0===ne||!re.isPrimaryClient&&1===ne){const ee=[];re.hc.forEach(((ne,re)=>{const se=re.view.Du(te);se.snapshot&&ee.push(se.snapshot)})),function __PRIVATE_eventManagerOnOnlineStateChange(ee,te){const ne=__PRIVATE_debugCast(ee);ne.onlineState=te;let re=!1;ne.queries.forEach(((ee,ne)=>{for(const ee of ne.wu)ee.Du(te)&&(re=!0)})),re&&__PRIVATE_raiseSnapshotsInSyncEvent(ne)}(re.eventManager,te),ee.length&&re.Ec.hn(ee),re.onlineState=te,re.isPrimaryClient&&re.sharedClientState.setOnlineState(te)}}async function __PRIVATE_syncEngineRejectListen(ee,te,ne){const re=__PRIVATE_debugCast(ee);re.sharedClientState.updateQueryState(te,"rejected",ne);const se=re.Ic.get(te),ie=se&&se.key;if(ie){let ee=new SortedMap(DocumentKey.comparator);ee=ee.insert(ie,MutableDocument.newNoDocument(ie,SnapshotVersion.min()));const ne=__PRIVATE_documentKeySet().add(ie),se=new RemoteEvent(SnapshotVersion.min(),new Map,new SortedMap(__PRIVATE_primitiveComparator),ee,__PRIVATE_mutableDocumentMap(),ne);await __PRIVATE_syncEngineApplyRemoteEvent(re,se),re.Rc=re.Rc.remove(ie),re.Ic.delete(te),__PRIVATE_pumpEnqueuedLimboResolutions(re)}else await __PRIVATE_localStoreReleaseTarget(re.localStore,te,!1).then((()=>__PRIVATE_removeAndCleanupTarget(re,te,ne))).catch(__PRIVATE_ignoreIfPrimaryLeaseLoss)}async function __PRIVATE_syncEngineApplySuccessfulWrite(ee,te){const ne=__PRIVATE_debugCast(ee),re=te.batch.batchId;try{const ee=await function __PRIVATE_localStoreAcknowledgeBatch(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Acknowledge batch","readwrite-primary",(ee=>{const re=te.batch.keys(),se=ne.Uo.newChangeBuffer({trackRemovals:!0});return function __PRIVATE_applyWriteToRemoteDocuments(ee,te,ne,re){const se=ne.batch,ie=se.keys();let ae=PersistencePromise.resolve();return ie.forEach((ee=>{ae=ae.next((()=>re.getEntry(te,ee))).next((te=>{const ie=ne.docVersions.get(ee);__PRIVATE_hardAssert(null!==ie,48541),te.version.compareTo(ie)<0&&(se.applyToRemoteDocument(te,ne),te.isValidDocument()&&(te.setReadTime(ne.commitVersion),re.addEntry(te)))}))})),ae.next((()=>ee.mutationQueue.removeMutationBatch(te,se)))}(ne,ee,te,se).next((()=>se.apply(ee))).next((()=>ne.mutationQueue.performConsistencyCheck(ee))).next((()=>ne.documentOverlayCache.removeOverlaysForBatchId(ee,re,te.batch.batchId))).next((()=>ne.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(ee,function __PRIVATE_getKeysWithTransformResults(ee){let te=__PRIVATE_documentKeySet();for(let ne=0;ne<ee.mutationResults.length;++ne)ee.mutationResults[ne].transformResults.length>0&&(te=te.add(ee.batch.mutations[ne].key));return te}(te)))).next((()=>ne.localDocuments.getDocuments(ee,re)))}))}(ne.localStore,te);__PRIVATE_processUserCallback(ne,re,null),__PRIVATE_triggerPendingWritesCallbacks(ne,re),ne.sharedClientState.updateMutationState(re,"acknowledged"),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee)}catch(ee){await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}}async function __PRIVATE_syncEngineRejectFailedWrite(ee,te,ne){const re=__PRIVATE_debugCast(ee);try{const ee=await function __PRIVATE_localStoreRejectBatch(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Reject batch","readwrite-primary",(ee=>{let re;return ne.mutationQueue.lookupMutationBatch(ee,te).next((te=>(__PRIVATE_hardAssert(null!==te,37113),re=te.keys(),ne.mutationQueue.removeMutationBatch(ee,te)))).next((()=>ne.mutationQueue.performConsistencyCheck(ee))).next((()=>ne.documentOverlayCache.removeOverlaysForBatchId(ee,re,te))).next((()=>ne.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(ee,re))).next((()=>ne.localDocuments.getDocuments(ee,re)))}))}(re.localStore,te);__PRIVATE_processUserCallback(re,te,ne),__PRIVATE_triggerPendingWritesCallbacks(re,te),re.sharedClientState.updateMutationState(te,"rejected",ne),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(re,ee)}catch(ne){await __PRIVATE_ignoreIfPrimaryLeaseLoss(ne)}}function __PRIVATE_triggerPendingWritesCallbacks(ee,te){(ee.dc.get(te)||[]).forEach((ee=>{ee.resolve()})),ee.dc.delete(te)}function __PRIVATE_processUserCallback(ee,te,ne){const re=__PRIVATE_debugCast(ee);let se=re.Vc[re.currentUser.toKey()];if(se){const ee=se.get(te);ee&&(ne?ee.reject(ne):ee.resolve(),se=se.remove(te)),re.Vc[re.currentUser.toKey()]=se}}function __PRIVATE_removeAndCleanupTarget(ee,te,ne=null){ee.sharedClientState.removeLocalQueryTarget(te);for(const re of ee.Tc.get(te))ee.hc.delete(re),ne&&ee.Ec.yc(re,ne);ee.Tc.delete(te),ee.isPrimaryClient&&ee.Ac.Xs(te).forEach((te=>{ee.Ac.containsKey(te)||__PRIVATE_removeLimboTarget(ee,te)}))}function __PRIVATE_removeLimboTarget(ee,te){ee.Pc.delete(te.path.canonicalString());const ne=ee.Rc.get(te);null!==ne&&(__PRIVATE_remoteStoreUnlisten(ee.remoteStore,ne),ee.Rc=ee.Rc.remove(te),ee.Ic.delete(ne),__PRIVATE_pumpEnqueuedLimboResolutions(ee))}function __PRIVATE_updateTrackedLimbos(ee,te,ne){for(const re of ne)re instanceof __PRIVATE_AddedLimboDocument?(ee.Ac.addReference(re.key,te),__PRIVATE_trackLimboChange(ee,re)):re instanceof __PRIVATE_RemovedLimboDocument?(__PRIVATE_logDebug(Zs,"Document no longer in limbo: "+re.key),ee.Ac.removeReference(re.key,te),ee.Ac.containsKey(re.key)||__PRIVATE_removeLimboTarget(ee,re.key)):l(19791,{wc:re})}function __PRIVATE_trackLimboChange(ee,te){const ne=te.key,re=ne.path.canonicalString();ee.Rc.get(ne)||ee.Pc.has(re)||(__PRIVATE_logDebug(Zs,"New document in limbo: "+ne),ee.Pc.add(re),__PRIVATE_pumpEnqueuedLimboResolutions(ee))}function __PRIVATE_pumpEnqueuedLimboResolutions(ee){for(;ee.Pc.size>0&&ee.Rc.size<ee.maxConcurrentLimboResolutions;){const te=ee.Pc.values().next().value;ee.Pc.delete(te);const ne=new DocumentKey(ResourcePath.fromString(te)),re=ee.fc.next();ee.Ic.set(re,new LimboResolution(ne)),ee.Rc=ee.Rc.insert(ne,re),__PRIVATE_remoteStoreListen(ee.remoteStore,new TargetData(__PRIVATE_queryToTarget(__PRIVATE_newQueryForPath(ne.path)),re,"TargetPurposeLimboResolution",__PRIVATE_ListenSequence.yn))}}async function __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=[],ie=[],ae=[];re.hc.isEmpty()||(re.hc.forEach(((ee,oe)=>{ae.push(re.gc(oe,te,ne).then((ee=>{if((ee||ne)&&re.isPrimaryClient){const te=ee?!ee.fromCache:ne?.targetChanges.get(oe.targetId)?.current;re.sharedClientState.updateQueryState(oe.targetId,te?"current":"not-current")}if(ee){se.push(ee);const te=__PRIVATE_LocalViewChanges.fo(oe.targetId,ee);ie.push(te)}})))})),await Promise.all(ae),re.Ec.hn(se),await async function __PRIVATE_localStoreNotifyLocalViewChanges(ee,te){const ne=__PRIVATE_debugCast(ee);try{await ne.persistence.runTransaction("notifyLocalViewChanges","readwrite",(ee=>PersistencePromise.forEach(te,(te=>PersistencePromise.forEach(te.Ao,(re=>ne.persistence.referenceDelegate.addReference(ee,te.targetId,re))).next((()=>PersistencePromise.forEach(te.Vo,(re=>ne.persistence.referenceDelegate.removeReference(ee,te.targetId,re)))))))))}catch(ee){if(!__PRIVATE_isIndexedDbTransactionError(ee))throw ee;__PRIVATE_logDebug(Qs,"Failed to update sequence numbers: "+ee)}for(const ee of te){const te=ee.targetId;if(!ee.fromCache){const ee=ne.No.get(te),re=ee.snapshotVersion,se=ee.withLastLimboFreeSnapshotVersion(re);ne.No=ne.No.insert(te,se)}}}(re.localStore,ie))}async function __PRIVATE_syncEngineHandleCredentialChange(ee,te){const ne=__PRIVATE_debugCast(ee);if(!ne.currentUser.isEqual(te)){__PRIVATE_logDebug(Zs,"User change. New user:",te.toKey());const ee=await __PRIVATE_localStoreHandleUserChange(ne.localStore,te);ne.currentUser=te,function __PRIVATE_rejectOutstandingPendingWritesCallbacks(ee,te){ee.dc.forEach((ee=>{ee.forEach((ee=>{ee.reject(new s(gn.CANCELLED,te))}))})),ee.dc.clear()}(ne,"'waitForPendingWrites' promise is rejected due to a user change."),ne.sharedClientState.handleUserChange(te,ee.removedBatchIds,ee.addedBatchIds),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee.qo)}}function __PRIVATE_syncEngineGetRemoteKeysForTarget(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.Ic.get(te);if(re&&re.lc)return __PRIVATE_documentKeySet().add(re.key);{let ee=__PRIVATE_documentKeySet();const re=ne.Tc.get(te);if(!re)return ee;for(const te of re??[]){const re=ne.hc.get(te);ee=ee.unionWith(re.view.Yu)}return ee}}async function __PRIVATE_synchronizeViewAndComputeSnapshot(ee,te){const ne=__PRIVATE_debugCast(ee),re=await __PRIVATE_localStoreExecuteQuery(ne.localStore,te.query,!0),se=te.view.uc(re);return ne.isPrimaryClient&&__PRIVATE_updateTrackedLimbos(ne,te.targetId,se.oc),se}async function __PRIVATE_syncEngineSynchronizeWithChangedDocuments(ee,te){const ne=__PRIVATE_debugCast(ee);return __PRIVATE_localStoreGetNewDocumentChanges(ne.localStore,te).then((ee=>__PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee)))}async function __PRIVATE_syncEngineApplyBatchState(ee,te,ne,re){const se=__PRIVATE_debugCast(ee),ie=await function __PRIVATE_localStoreLookupMutationDocuments(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_debugCast(ne.mutationQueue);return ne.persistence.runTransaction("Lookup mutation documents","readonly",(ee=>re.Wr(ee,te).next((te=>te?ne.localDocuments.getDocuments(ee,te):PersistencePromise.resolve(null)))))}(se.localStore,te);null!==ie?("pending"===ne?await __PRIVATE_fillWritePipeline(se.remoteStore):"acknowledged"===ne||"rejected"===ne?(__PRIVATE_processUserCallback(se,te,re||null),__PRIVATE_triggerPendingWritesCallbacks(se,te),function __PRIVATE_localStoreRemoveCachedMutationBatchMetadata(ee,te){__PRIVATE_debugCast(__PRIVATE_debugCast(ee).mutationQueue).jr(te)}(se.localStore,te)):l(6720,"Unknown batchState",{bc:ne}),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(se,ie)):__PRIVATE_logDebug(Zs,"Cannot apply mutation batch with id: "+te)}async function __PRIVATE_synchronizeQueryViewsAndRaiseSnapshots(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=[],ie=[];for(const ee of te){let te;const ne=re.Tc.get(ee);if(ne&&0!==ne.length){te=await __PRIVATE_localStoreAllocateTarget(re.localStore,__PRIVATE_isPipeline(ne[0])?ne[0]:__PRIVATE_queryToTarget(ne[0]));for(const ee of ne){const te=re.hc.get(ee),ne=await __PRIVATE_synchronizeViewAndComputeSnapshot(re,te);ne.snapshot&&ie.push(ne.snapshot)}}else{const ne=await __PRIVATE_localStoreGetCachedTarget(re.localStore,ee);te=await __PRIVATE_localStoreAllocateTarget(re.localStore,ne),await __PRIVATE_initializeViewAndComputeSnapshot(re,__PRIVATE_synthesizeTargetToQuery(ne),ee,!1,te.resumeToken)}se.push(te)}return re.Ec.hn(ie),se}function __PRIVATE_synthesizeTargetToQuery(ee){return __PRIVATE_targetIsPipelineTarget(ee)?ee:__PRIVATE_newQuery(ee.path,ee.collectionGroup,ee.orderBy,ee.filters,ee.limit,"F",ee.startAt,ee.endAt)}function __PRIVATE_syncEngineGetActiveClients(ee){return function __PRIVATE_localStoreGetActiveClients(ee){return __PRIVATE_debugCast(__PRIVATE_debugCast(ee).persistence).Ro()}(__PRIVATE_debugCast(ee).localStore)}async function __PRIVATE_syncEngineApplyTargetState(ee,te,ne,re){const se=__PRIVATE_debugCast(ee);if(se.mc)return void __PRIVATE_logDebug(Zs,"Ignoring unexpected query state notification.");const ie=se.Tc.get(te);if(ie&&ie.length>0)switch(ne){case"current":case"not-current":{let ee;if(__PRIVATE_isPipeline(ie[0]))switch(getPipelineSourceType(ie[0])){case"collection_group":case"collection":ee=await __PRIVATE_localStoreGetNewDocumentChanges(se.localStore,getPipelineCollectionId(ie[0]));break;case"documents":ee=await function __PRIVATE_localStoreGetDocuments(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_documentKeySet(...getPipelineDocuments(te).map((ee=>DocumentKey.fromPath(ee))));return ne.persistence.runTransaction("Get documents for pipeline","readonly",(ee=>ne.Uo.getEntries(ee,re))).then((ee=>ee))}(se.localStore,ie[0]);break;default:__PRIVATE_logWarn(""),ee=documentMap()}else ee=await __PRIVATE_localStoreGetNewDocumentChanges(se.localStore,function __PRIVATE_queryCollectionGroup(ee){return ee.collectionGroup||(ee.path.length%2==1?ee.path.lastSegment():ee.path.get(ee.path.length-2))}(ie[0]));const re=RemoteEvent.createSynthesizedRemoteEventForCurrentChange(te,"current"===ne,ByteString.EMPTY_BYTE_STRING);await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(se,ee,re);break}case"rejected":await __PRIVATE_localStoreReleaseTarget(se.localStore,te,!0),__PRIVATE_removeAndCleanupTarget(se,te,re);break;default:l(64155,ne)}}async function __PRIVATE_syncEngineApplyActiveTargetsChange(ee,te,ne){const re=__PRIVATE_ensureWatchCallbacks(ee);if(re.mc){for(const ee of te){if(re.Tc.has(ee)&&re.sharedClientState.isActiveQueryTarget(ee)){__PRIVATE_logDebug(Zs,"Adding an already active target "+ee);continue}const te=await __PRIVATE_localStoreGetCachedTarget(re.localStore,ee),ne=await __PRIVATE_localStoreAllocateTarget(re.localStore,te);await __PRIVATE_initializeViewAndComputeSnapshot(re,__PRIVATE_synthesizeTargetToQuery(te),ne.targetId,!1,ne.resumeToken),__PRIVATE_remoteStoreListen(re.remoteStore,ne)}for(const ee of ne)re.Tc.has(ee)&&await __PRIVATE_localStoreReleaseTarget(re.localStore,ee,!1).then((()=>{__PRIVATE_remoteStoreUnlisten(re.remoteStore,ee),__PRIVATE_removeAndCleanupTarget(re,ee)})).catch(__PRIVATE_ignoreIfPrimaryLeaseLoss)}}function __PRIVATE_ensureWatchCallbacks(ee){const te=__PRIVATE_debugCast(ee);return te.remoteStore.remoteSyncer.applyRemoteEvent=__PRIVATE_syncEngineApplyRemoteEvent.bind(null,te),te.remoteStore.remoteSyncer.getRemoteKeysForTarget=__PRIVATE_syncEngineGetRemoteKeysForTarget.bind(null,te),te.remoteStore.remoteSyncer.rejectListen=__PRIVATE_syncEngineRejectListen.bind(null,te),te.Ec.hn=__PRIVATE_eventManagerOnWatchChange.bind(null,te.eventManager),te.Ec.yc=__PRIVATE_eventManagerOnWatchError.bind(null,te.eventManager),te}function __PRIVATE_syncEngineEnsureWriteCallbacks(ee){const te=__PRIVATE_debugCast(ee);return te.remoteStore.remoteSyncer.applySuccessfulWrite=__PRIVATE_syncEngineApplySuccessfulWrite.bind(null,te),te.remoteStore.remoteSyncer.rejectFailedWrite=__PRIVATE_syncEngineRejectFailedWrite.bind(null,te),te}class __PRIVATE_MemoryOfflineComponentProvider{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(ee){this.serializer=__PRIVATE_newSerializer(ee.databaseInfo.databaseId),this.sharedClientState=this.vc(ee),this.persistence=this.Sc(ee),await this.persistence.start(),this.localStore=this.Dc(ee),this.gcScheduler=this.xc(ee,this.localStore),this.indexBackfillerScheduler=this.Cc(ee,this.localStore)}xc(ee,te){return null}Cc(ee,te){return null}Dc(ee){return __PRIVATE_newLocalStore(this.persistence,new __PRIVATE_QueryEngine,ee.initialUser,this.serializer)}Sc(ee){return new __PRIVATE_MemoryPersistence(__PRIVATE_MemoryEagerDelegate.w_,this.serializer)}vc(ee){return new __PRIVATE_MemorySharedClientState}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}__PRIVATE_MemoryOfflineComponentProvider.provider={build:()=>new __PRIVATE_MemoryOfflineComponentProvider};class __PRIVATE_LruGcMemoryOfflineComponentProvider extends __PRIVATE_MemoryOfflineComponentProvider{constructor(ee){super(),this.cacheSizeBytes=ee}xc(ee,te){__PRIVATE_hardAssert(this.persistence.referenceDelegate instanceof __PRIVATE_MemoryLruDelegate,46915);const ne=this.persistence.referenceDelegate.garbageCollector;return new __PRIVATE_LruScheduler(ne,ee.asyncQueue,te)}Sc(ee){const te=void 0!==this.cacheSizeBytes?LruParams.withCacheSize(this.cacheSizeBytes):LruParams.DEFAULT;return new __PRIVATE_MemoryPersistence((ee=>__PRIVATE_MemoryLruDelegate.w_(ee,te)),this.serializer)}}class __PRIVATE_IndexedDbOfflineComponentProvider extends __PRIVATE_MemoryOfflineComponentProvider{constructor(ee,te,ne){super(),this.Fc=ee,this.cacheSizeBytes=te,this.forceOwnership=ne,this.kind="persistent",this.synchronizeTabs=!1}async initialize(ee){await super.initialize(ee),await this.Fc.initialize(this,ee),await __PRIVATE_syncEngineEnsureWriteCallbacks(this.Fc.syncEngine),await __PRIVATE_fillWritePipeline(this.Fc.remoteStore),await this.persistence.X_((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}Dc(ee){return __PRIVATE_newLocalStore(this.persistence,new __PRIVATE_QueryEngine,ee.initialUser,this.serializer)}xc(ee,te){const ne=this.persistence.referenceDelegate.garbageCollector;return new __PRIVATE_LruScheduler(ne,ee.asyncQueue,te)}Cc(ee,te){const ne=new __PRIVATE_IndexBackfiller(te,this.persistence);return new __PRIVATE_IndexBackfillerScheduler(ee.asyncQueue,ne)}Sc(ee){const te=__PRIVATE_indexedDbStoragePrefix(ee.databaseInfo.databaseId,ee.databaseInfo.persistenceKey),ne=void 0!==this.cacheSizeBytes?LruParams.withCacheSize(this.cacheSizeBytes):LruParams.DEFAULT;return new __PRIVATE_IndexedDbPersistence(this.synchronizeTabs,te,ee.clientId,ne,ee.asyncQueue,__PRIVATE_getWindow(),getDocument(),this.serializer,this.sharedClientState,!!this.forceOwnership)}vc(ee){return new __PRIVATE_MemorySharedClientState}}class __PRIVATE_MultiTabOfflineComponentProvider extends __PRIVATE_IndexedDbOfflineComponentProvider{constructor(ee,te){super(ee,te,!1),this.Fc=ee,this.cacheSizeBytes=te,this.synchronizeTabs=!0}async initialize(ee){await super.initialize(ee);const te=this.Fc.syncEngine;this.sharedClientState instanceof __PRIVATE_WebStorageSharedClientState&&(this.sharedClientState.syncEngine={Iu:__PRIVATE_syncEngineApplyBatchState.bind(null,te),Au:__PRIVATE_syncEngineApplyTargetState.bind(null,te),Vu:__PRIVATE_syncEngineApplyActiveTargetsChange.bind(null,te),Ro:__PRIVATE_syncEngineGetActiveClients.bind(null,te),Ru:__PRIVATE_syncEngineSynchronizeWithChangedDocuments.bind(null,te)},await this.sharedClientState.start()),await this.persistence.X_((async ee=>{await async function __PRIVATE_syncEngineApplyPrimaryState(ee,te){const ne=__PRIVATE_debugCast(ee);if(__PRIVATE_ensureWatchCallbacks(ne),__PRIVATE_syncEngineEnsureWriteCallbacks(ne),!0===te&&!0!==ne.mc){const ee=ne.sharedClientState.getAllActiveQueryTargets(),te=await __PRIVATE_synchronizeQueryViewsAndRaiseSnapshots(ne,ee.toArray());ne.mc=!0,await __PRIVATE_remoteStoreApplyPrimaryState(ne.remoteStore,!0);for(const ee of te)__PRIVATE_remoteStoreListen(ne.remoteStore,ee)}else if(!1===te&&!1!==ne.mc){const ee=[];let te=Promise.resolve();ne.Tc.forEach(((re,se)=>{ne.sharedClientState.isLocalQueryTarget(se)?ee.push(se):te=te.then((()=>(__PRIVATE_removeAndCleanupTarget(ne,se),__PRIVATE_localStoreReleaseTarget(ne.localStore,se,!0)))),__PRIVATE_remoteStoreUnlisten(ne.remoteStore,se)})),await te,await __PRIVATE_synchronizeQueryViewsAndRaiseSnapshots(ne,ee),function __PRIVATE_resetLimboDocuments(ee){const te=__PRIVATE_debugCast(ee);te.Ic.forEach(((ee,ne)=>{__PRIVATE_remoteStoreUnlisten(te.remoteStore,ne)})),te.Ac.e_(),te.Ic=new Map,te.Rc=new SortedMap(DocumentKey.comparator)}(ne),ne.mc=!1,await __PRIVATE_remoteStoreApplyPrimaryState(ne.remoteStore,!1)}}(this.Fc.syncEngine,ee),this.gcScheduler&&(ee&&!this.gcScheduler.started?this.gcScheduler.start():ee||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(ee&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():ee||this.indexBackfillerScheduler.stop())}))}vc(ee){const te=__PRIVATE_getWindow();if(!__PRIVATE_WebStorageSharedClientState.Je(te))throw new s(gn.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const ne=__PRIVATE_indexedDbStoragePrefix(ee.databaseInfo.databaseId,ee.databaseInfo.persistenceKey);return new __PRIVATE_WebStorageSharedClientState(te,ee.asyncQueue,ne,ee.clientId,ee.initialUser)}}class OnlineComponentProvider{async initialize(ee,te){this.localStore||(this.localStore=ee.localStore,this.sharedClientState=ee.sharedClientState,this.datastore=this.createDatastore(te),this.remoteStore=this.createRemoteStore(te),this.eventManager=this.createEventManager(te),this.syncEngine=this.createSyncEngine(te,!ee.synchronizeTabs),this.sharedClientState.onlineStateHandler=ee=>__PRIVATE_syncEngineApplyOnlineStateChange(this.syncEngine,ee,1),this.remoteStore.remoteSyncer.handleCredentialChange=__PRIVATE_syncEngineHandleCredentialChange.bind(null,this.syncEngine),await __PRIVATE_remoteStoreApplyPrimaryState(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(ee){return function __PRIVATE_newEventManager(){return new __PRIVATE_EventManagerImpl}()}createDatastore(ee){const te=__PRIVATE_newSerializer(ee.databaseInfo.databaseId),ne=__PRIVATE_newConnection(ee.databaseInfo);return __PRIVATE_newDatastore(ee.authCredentials,ee.appCheckCredentials,ne,te)}createRemoteStore(ee){return function __PRIVATE_newRemoteStore(ee,te,ne,re,se){return new __PRIVATE_RemoteStoreImpl(ee,te,ne,re,se)}(this.localStore,this.datastore,ee.asyncQueue,(ee=>__PRIVATE_syncEngineApplyOnlineStateChange(this.syncEngine,ee,0)),function __PRIVATE_newConnectivityMonitor(){return __PRIVATE_BrowserConnectivityMonitor.Je()?new __PRIVATE_BrowserConnectivityMonitor:new __PRIVATE_NoopConnectivityMonitor}())}createSyncEngine(ee,te){return function __PRIVATE_newSyncEngine(ee,te,ne,re,se,ie,ae){const oe=new __PRIVATE_SyncEngineImpl(ee,te,ne,re,se,ie);return ae&&(oe.mc=!0),oe}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,ee.initialUser,ee.maxConcurrentLimboResolutions,te)}async terminate(){await async function __PRIVATE_remoteStoreShutdown(ee){const te=__PRIVATE_debugCast(ee);__PRIVATE_logDebug(js,"RemoteStore shutting down."),te.ca.add(5),await __PRIVATE_disableNetworkInternal(te),te.Ea.shutdown(),te.ha.set("Unknown")}(this.remoteStore),this.datastore?.terminate(),this.eventManager?.terminate()}}OnlineComponentProvider.provider={build:()=>new OnlineComponentProvider};let ei=class Transaction{constructor(ee){this.datastore=ee,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(ee){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new s(gn.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const te=await async function __PRIVATE_invokeBatchGetDocumentsRpc(ee,te){const ne=__PRIVATE_debugCast(ee),re={documents:te.map((ee=>__PRIVATE_toName(ne.serializer,ee)))},se=await ne.st("BatchGetDocuments",ne.serializer.databaseId,ResourcePath.emptyPath(),re,te.length),ie=new Map;se.forEach((ee=>{const te=function __PRIVATE_fromBatchGetDocumentsResponse(ee,te){return"found"in te?function __PRIVATE_fromFound(ee,te){__PRIVATE_hardAssert(!!te.found,43571),te.found.name,te.found.updateTime;const ne=fromName(ee,te.found.name),re=__PRIVATE_fromVersion(te.found.updateTime),se=te.found.createTime?__PRIVATE_fromVersion(te.found.createTime):SnapshotVersion.min(),ie=new ObjectValue({mapValue:{fields:te.found.fields}});return MutableDocument.newFoundDocument(ne,re,se,ie)}(ee,te):"missing"in te?function __PRIVATE_fromMissing(ee,te){__PRIVATE_hardAssert(!!te.missing,3894),__PRIVATE_hardAssert(!!te.readTime,22933);const ne=fromName(ee,te.missing),re=__PRIVATE_fromVersion(te.readTime);return MutableDocument.newNoDocument(ne,re)}(ee,te):l(7234,{result:te})}(ne.serializer,ee);ie.set(te.key.toString(),te)}));const ae=[];return te.forEach((ee=>{const te=ie.get(ee.toString());__PRIVATE_hardAssert(!!te,55234,{key:ee}),ae.push(te)})),ae}(this.datastore,ee);return te.forEach((ee=>this.recordVersion(ee))),te}set(ee,te){this.write(te.toMutation(ee,this.precondition(ee))),this.writtenDocs.add(ee.toString())}update(ee,te){try{this.write(te.toMutation(ee,this.preconditionForUpdate(ee)))}catch(ee){this.lastTransactionError=ee}this.writtenDocs.add(ee.toString())}delete(ee){this.write(new __PRIVATE_DeleteMutation(ee,this.precondition(ee))),this.writtenDocs.add(ee.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const ee=this.readVersions;this.mutations.forEach((te=>{ee.delete(te.key.toString())})),ee.forEach(((ee,te)=>{const ne=DocumentKey.fromPath(te);this.mutations.push(new __PRIVATE_VerifyMutation(ne,this.precondition(ne)))})),await async function __PRIVATE_invokeCommitRpc(ee,te){const ne=__PRIVATE_debugCast(ee),re={writes:te.map((ee=>toMutation(ne.serializer,ee)))};await ne.tt("Commit",ne.serializer.databaseId,ResourcePath.emptyPath(),re)}(this.datastore,this.mutations),this.committed=!0}recordVersion(ee){let te;if(ee.isFoundDocument())te=ee.version;else{if(!ee.isNoDocument())throw l(50498,{Oc:ee.constructor.name});te=SnapshotVersion.min()}const ne=this.readVersions.get(ee.key.toString());if(ne){if(!te.isEqual(ne))throw new s(gn.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(ee.key.toString(),te)}precondition(ee){const te=this.readVersions.get(ee.toString());return!this.writtenDocs.has(ee.toString())&&te?te.isEqual(SnapshotVersion.min())?Precondition.exists(!1):Precondition.updateTime(te):Precondition.none()}preconditionForUpdate(ee){const te=this.readVersions.get(ee.toString());if(!this.writtenDocs.has(ee.toString())&&te){if(te.isEqual(SnapshotVersion.min()))throw new s(gn.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Precondition.updateTime(te)}return Precondition.exists(!0)}write(ee){this.ensureCommitNotCalled(),this.mutations.push(ee)}ensureCommitNotCalled(){}};class __PRIVATE_TransactionRunner{constructor(ee,te,ne,re,se){this.asyncQueue=ee,this.datastore=te,this.options=ne,this.updateFunction=re,this.deferred=se,this.Mc=ne.maxAttempts,this.jt=new __PRIVATE_ExponentialBackoff(this.asyncQueue,"transaction_retry")}Nc(){this.Mc-=1,this.Lc()}Lc(){this.jt.Ut((async()=>{const ee=new ei(this.datastore),te=this.Bc(ee);te&&te.then((te=>{this.asyncQueue.enqueueAndForget((()=>ee.commit().then((()=>{this.deferred.resolve(te)})).catch((ee=>{this.Uc(ee)}))))})).catch((ee=>{this.Uc(ee)}))}))}Bc(ee){try{const te=this.updateFunction(ee);return!__PRIVATE_isNullOrUndefined(te)&&te.catch&&te.then?te:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(ee){return this.deferred.reject(ee),null}}Uc(ee){this.Mc>0&&this.kc(ee)?(this.Mc-=1,this.asyncQueue.enqueueAndForget((()=>(this.Lc(),Promise.resolve())))):this.deferred.reject(ee)}kc(ee){if("FirebaseError"===ee?.name){const te=ee.code;return"aborted"===te||"failed-precondition"===te||"already-exists"===te||!__PRIVATE_isPermanentError(te)}return!1}}const ti="FirestoreClient";class FirestoreClient{constructor(ee,te,ne,re,se){this.authCredentials=ee,this.appCheckCredentials=te,this.asyncQueue=ne,this._databaseInfo=re,this.user=User.UNAUTHENTICATED,this.clientId=__PRIVATE_AutoId.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=se,this.authCredentials.start(ne,(async ee=>{__PRIVATE_logDebug(ti,"Received user=",ee.uid),await this.authCredentialListener(ee),this.user=ee})),this.appCheckCredentials.start(ne,(ee=>(__PRIVATE_logDebug(ti,"Received new app check token=",ee),this.appCheckCredentialListener(ee,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(ee){this.authCredentialListener=ee}setAppCheckTokenChangeListener(ee){this.appCheckCredentialListener=ee}terminate(){this.asyncQueue.enterRestrictedMode();const ee=new __PRIVATE_Deferred;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),ee.resolve()}catch(te){const ne=__PRIVATE_wrapInUserErrorIfRecoverable(te,"Failed to shutdown persistence");ee.reject(ne)}})),ee.promise}}async function __PRIVATE_setOfflineComponentProvider(ee,te){ee.asyncQueue.verifyOperationInProgress(),__PRIVATE_logDebug(ti,"Initializing OfflineComponentProvider");const ne=ee.configuration;await te.initialize(ne);let re=ne.initialUser;ee.setCredentialChangeListener((async ee=>{re.isEqual(ee)||(await __PRIVATE_localStoreHandleUserChange(te.localStore,ee),re=ee)})),te.persistence.setDatabaseDeletedListener((()=>ee.terminate())),ee._offlineComponents=te}async function __PRIVATE_setOnlineComponentProvider(ee,te){ee.asyncQueue.verifyOperationInProgress();const ne=await __PRIVATE_ensureOfflineComponents(ee);__PRIVATE_logDebug(ti,"Initializing OnlineComponentProvider"),await te.initialize(ne,ee.configuration),ee.setCredentialChangeListener((ee=>__PRIVATE_remoteStoreHandleCredentialChange(te.remoteStore,ee))),ee.setAppCheckTokenChangeListener(((ee,ne)=>__PRIVATE_remoteStoreHandleCredentialChange(te.remoteStore,ne))),ee._onlineComponents=te}async function __PRIVATE_ensureOfflineComponents(ee){if(!ee._offlineComponents)if(ee._uninitializedComponentsProvider){__PRIVATE_logDebug(ti,"Using user provided OfflineComponentProvider");try{await __PRIVATE_setOfflineComponentProvider(ee,ee._uninitializedComponentsProvider._offline)}catch(te){const ne=te;if(!function __PRIVATE_canFallbackFromIndexedDbError(ee){return"FirebaseError"===ee.name?ee.code===gn.FAILED_PRECONDITION||ee.code===gn.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&ee instanceof DOMException)||22===ee.code||20===ee.code||11===ee.code}(ne))throw ne;__PRIVATE_logWarn("Error using user provided cache. Falling back to memory cache: "+ne),await __PRIVATE_setOfflineComponentProvider(ee,new __PRIVATE_MemoryOfflineComponentProvider)}}else __PRIVATE_logDebug(ti,"Using default OfflineComponentProvider"),await __PRIVATE_setOfflineComponentProvider(ee,new __PRIVATE_LruGcMemoryOfflineComponentProvider(void 0));return ee._offlineComponents}async function __PRIVATE_ensureOnlineComponents(ee){return ee._onlineComponents||(ee._uninitializedComponentsProvider?(__PRIVATE_logDebug(ti,"Using user provided OnlineComponentProvider"),await __PRIVATE_setOnlineComponentProvider(ee,ee._uninitializedComponentsProvider._online)):(__PRIVATE_logDebug(ti,"Using default OnlineComponentProvider"),await __PRIVATE_setOnlineComponentProvider(ee,new OnlineComponentProvider))),ee._onlineComponents}function __PRIVATE_getPersistence(ee){return __PRIVATE_ensureOfflineComponents(ee).then((ee=>ee.persistence))}function __PRIVATE_getLocalStore(ee){return __PRIVATE_ensureOfflineComponents(ee).then((ee=>ee.localStore))}function __PRIVATE_getRemoteStore(ee){return __PRIVATE_ensureOnlineComponents(ee).then((ee=>ee.remoteStore))}function __PRIVATE_getSyncEngine(ee){return __PRIVATE_ensureOnlineComponents(ee).then((ee=>ee.syncEngine))}function __PRIVATE_getDatastore(ee){return __PRIVATE_ensureOnlineComponents(ee).then((ee=>ee.datastore))}async function __PRIVATE_getEventManager(ee){const te=await __PRIVATE_ensureOnlineComponents(ee),ne=te.eventManager;return ne.onListen=__PRIVATE_syncEngineListen.bind(null,te.syncEngine),ne.onUnlisten=__PRIVATE_syncEngineUnlisten.bind(null,te.syncEngine),ne.onFirstRemoteStoreListen=__PRIVATE_triggerRemoteStoreListen.bind(null,te.syncEngine),ne.onLastRemoteStoreUnlisten=__PRIVATE_triggerRemoteStoreUnlisten.bind(null,te.syncEngine),ne}function __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(ee,te,ne={}){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_readDocumentViaSnapshotListener(ee,te,ne,re,se){const ie=new __PRIVATE_AsyncObserver({next:oe=>{ie.Aa(),te.enqueueAndForget((()=>__PRIVATE_eventManagerUnlisten(ee,ae)));const ue=oe.docs.has(ne);!ue&&oe.fromCache?se.reject(new s(gn.UNAVAILABLE,"Failed to get document because the client is offline.")):ue&&oe.fromCache&&re&&"server"===re.source?se.reject(new s(gn.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.)')):se.resolve(oe)},error:ee=>se.reject(ee)}),ae=new __PRIVATE_QueryListener(__PRIVATE_newQueryForPath(ne.path),ie,{includeMetadataChanges:!0,waitForSyncWhenOnline:!0});return __PRIVATE_eventManagerListen(ee,ae)}(await __PRIVATE_getEventManager(ee),ee.asyncQueue,te,ne,re))),re.promise}function __PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(ee,te,ne={}){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_executeQueryViaSnapshotListener(ee,te,ne,re,se){const ie=new __PRIVATE_AsyncObserver({next:ne=>{ie.Aa(),te.enqueueAndForget((()=>__PRIVATE_eventManagerUnlisten(ee,ae))),ne.fromCache&&"server"===re.source?se.reject(new s(gn.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.)')):se.resolve(ne)},error:ee=>se.reject(ee)}),ae=new __PRIVATE_QueryListener(ne instanceof __PRIVATE_RealtimePipeline?__PRIVATE_toCorePipeline(ne):ne,ie,{includeMetadataChanges:!0,waitForSyncWhenOnline:!0});return __PRIVATE_eventManagerListen(ee,ae)}(await __PRIVATE_getEventManager(ee),ee.asyncQueue,te,ne,re))),re.promise}function __PRIVATE_firestoreClientWrite(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_syncEngineWrite(ee,te,ne){const re=__PRIVATE_syncEngineEnsureWriteCallbacks(ee);try{const ee=await function __PRIVATE_localStoreWriteLocally(ee,te){const ne=__PRIVATE_debugCast(ee),re=Timestamp.now(),se=te.reduce(((ee,te)=>ee.add(te.key)),__PRIVATE_documentKeySet());let ie,ae;return ne.persistence.runTransaction("Locally write mutations","readwrite",(ee=>{let oe=__PRIVATE_mutableDocumentMap(),ue=__PRIVATE_documentKeySet();return ne.Uo.getEntries(ee,se).next((ee=>{oe=ee,oe.forEach(((ee,te)=>{te.isValidDocument()||(ue=ue.add(ee))}))})).next((()=>ne.localDocuments.getOverlayedDocuments(ee,oe))).next((se=>{ie=se;const ae=[];for(const ee of te){const te=__PRIVATE_mutationExtractBaseValue(ee,ie.get(ee.key).overlayedDocument);null!=te&&ae.push(new __PRIVATE_PatchMutation(ee.key,te,__PRIVATE_extractFieldMask(te.value.mapValue),Precondition.exists(!0)))}return ne.mutationQueue.addMutationBatch(ee,re,ae,te)})).next((te=>{ae=te;const re=te.applyToLocalDocumentSet(ie,ue);return ne.documentOverlayCache.saveOverlays(ee,te.batchId,re)}))})).then((()=>({batchId:ae.batchId,changes:__PRIVATE_convertOverlayedDocumentMapToDocumentMap(ie)})))}(re.localStore,te);re.sharedClientState.addPendingMutation(ee.batchId),function __PRIVATE_addMutationCallback(ee,te,ne){let re=ee.Vc[ee.currentUser.toKey()];re||(re=new SortedMap(__PRIVATE_primitiveComparator)),re=re.insert(te,ne),ee.Vc[ee.currentUser.toKey()]=re}(re,ee.batchId,ne),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(re,ee.changes),await __PRIVATE_fillWritePipeline(re.remoteStore)}catch(ee){const te=__PRIVATE_wrapInUserErrorIfRecoverable(ee,"Failed to persist write");ne.reject(te)}}(await __PRIVATE_getSyncEngine(ee),te,ne))),ne.promise}function __PRIVATE_firestoreClientLoadBundle(ee,te,ne,re){const se=function __PRIVATE_createBundleReader(ee,te){let ne;return ne="string"==typeof ee?__PRIVATE_newTextEncoder().encode(ee):ee,function __PRIVATE_newBundleReader(ee,te){return new __PRIVATE_BundleReaderImpl(ee,te)}(function __PRIVATE_toByteStreamReader(ee,te){if(ee instanceof Uint8Array)return __PRIVATE_toByteStreamReaderHelper(ee,te);if(ee instanceof ArrayBuffer)return __PRIVATE_toByteStreamReaderHelper(new Uint8Array(ee),te);if(ee instanceof ReadableStream)return ee.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(ne),te)}(ne,__PRIVATE_newSerializer(te));ee.asyncQueue.enqueueAndForget((async()=>{!function __PRIVATE_syncEngineLoadBundle(ee,te,ne){const re=__PRIVATE_debugCast(ee);(async function __PRIVATE_loadBundleImpl(ee,te,ne){try{const re=await te.getMetadata();if(await function __PRIVATE_localStoreHasNewerBundle(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_fromVersion(te.createTime);return ne.persistence.runTransaction("hasNewerBundle","readonly",(ee=>ne.d_.getBundleMetadata(ee,te.id))).then((ee=>!!ee&&ee.createTime.compareTo(re)>=0))}(ee.localStore,re))return await te.close(),ne._completeWith(function __PRIVATE_bundleSuccessProgress(ee){return{taskState:"Success",documentsLoaded:ee.totalDocuments,bytesLoaded:ee.totalBytes,totalDocuments:ee.totalDocuments,totalBytes:ee.totalBytes}}(re)),Promise.resolve(new Set);ne._updateProgress(__PRIVATE_bundleInitialProgress(re));const se=new __PRIVATE_BundleLoader(re,te.serializer);let ie=await te.ma();for(;ie;){const ee=await se.qu(ie);ee&&ne._updateProgress(ee),ie=await te.ma()}const ae=await se.Ku(ee.localStore);return await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ee,ae.Qu,void 0),await function __PRIVATE_localStoreSaveBundle(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Save bundle","readwrite",(ee=>ne.d_.saveBundleMetadata(ee,te)))}(ee.localStore,re),ne._completeWith(ae.progress),Promise.resolve(ae.Wu)}catch(ee){return __PRIVATE_logWarn(Zs,`Loading bundle failed with ${ee}`),ne._failWith(ee),Promise.resolve(new Set)}})(re,te,ne).then((ee=>{re.sharedClientState.notifyBundleLoaded(ee)}))}(await __PRIVATE_getSyncEngine(ee),se,re)}))}function __PRIVATE_createBundleReaderSync(ee,te){return function __PRIVATE_newBundleReaderSync(ee,te){return new __PRIVATE_BundleReaderSyncImpl(ee,te)}(ee,te)}class pa{constructor(ee={},te={}){this.qc=ee,this.$c=te,this.Kc=new OptionsUtil({indexMode:{serverName:"index_mode"}})}_readUserData(ee){this.proto=this.Kc.getOptionsProto(ee,this.qc,this.$c)}}class ma{constructor(ee,te){this.pipeline=ee,this.options=te}_toProto(ee){return{pipeline:this.pipeline._toProto(ee),options:this.options.proto}}}const ni="AsyncQueue";class __PRIVATE_AsyncQueueImpl{constructor(ee=Promise.resolve()){this.Wc=[],this.Qc=!1,this.Gc=[],this.zc=null,this.jc=!1,this.Hc=!1,this.Jc=[],this.jt=new __PRIVATE_ExponentialBackoff(this,"async_queue_retry"),this.Yc=()=>{const ee=getDocument();ee&&__PRIVATE_logDebug(ni,"Visibility state changed to "+ee.visibilityState),this.jt.qt()},this.Zc=ee;const te=getDocument();te&&"function"==typeof te.addEventListener&&te.addEventListener("visibilitychange",this.Yc)}get isShuttingDown(){return this.Qc}enqueueAndForget(ee){this.enqueue(ee)}enqueueAndForgetEvenWhileRestricted(ee){this.Xc(),this.el(ee)}enterRestrictedMode(ee){if(!this.Qc){this.Qc=!0,this.Hc=ee||!1;const te=getDocument();te&&"function"==typeof te.removeEventListener&&te.removeEventListener("visibilitychange",this.Yc)}}enqueue(ee){if(this.Xc(),this.Qc)return new Promise((()=>{}));const te=new __PRIVATE_Deferred;return this.el((()=>this.Qc&&this.Hc?Promise.resolve():(ee().then(te.resolve,te.reject),te.promise))).then((()=>te.promise))}enqueueRetryable(ee){this.enqueueAndForget((()=>(this.Wc.push(ee),this.tl())))}async tl(){if(0!==this.Wc.length){try{await this.Wc[0](),this.Wc.shift(),this.jt.reset()}catch(ee){if(!__PRIVATE_isIndexedDbTransactionError(ee))throw ee;__PRIVATE_logDebug(ni,"Operation failed with retryable error: "+ee)}this.Wc.length>0&&this.jt.Ut((()=>this.tl()))}}el(ee){const te=this.Zc.then((()=>(this.jc=!0,ee().catch((ee=>{throw this.zc=ee,this.jc=!1,__PRIVATE_logError("INTERNAL UNHANDLED ERROR: ",__PRIVATE_getMessageOrStack(ee)),ee})).then((ee=>(this.jc=!1,ee))))));return this.Zc=te,te}enqueueAfterDelay(ee,te,ne){this.Xc(),this.Jc.indexOf(ee)>-1&&(te=0);const re=DelayedOperation.createAndSchedule(this,ee,te,ne,(ee=>this.nl(ee)));return this.Gc.push(re),re}Xc(){this.zc&&l(47125,{rl:__PRIVATE_getMessageOrStack(this.zc)})}verifyOperationInProgress(){}async il(){let ee;do{ee=this.Zc,await ee}while(ee!==this.Zc)}sl(ee){for(const te of this.Gc)if(te.timerId===ee)return!0;return!1}_l(ee){return this.il().then((()=>{this.Gc.sort(((ee,te)=>ee.targetTimeMs-te.targetTimeMs));for(const te of this.Gc)if(te.skipDelay(),"all"!==ee&&te.timerId===ee)break;return this.il()}))}ol(ee){this.Jc.push(ee)}nl(ee){const te=this.Gc.indexOf(ee);this.Gc.splice(te,1)}}function __PRIVATE_getMessageOrStack(ee){let te=ee.message||"";return ee.stack&&(te=ee.stack.includes(ee.message)?ee.stack:ee.message+"\n"+ee.stack),te}class LoadBundleTask{constructor(){this._progressObserver={},this._taskCompletionResolver=new __PRIVATE_Deferred,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(ee,te,ne){this._progressObserver={next:ee,error:te,complete:ne}}catch(ee){return this._taskCompletionResolver.promise.catch(ee)}then(ee,te){return this._taskCompletionResolver.promise.then(ee,te)}_completeWith(ee){this._updateProgress(ee),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(ee)}_failWith(ee){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(ee),this._taskCompletionResolver.reject(ee)}_updateProgress(ee){this._lastProgress=ee,this._progressObserver.next&&this._progressObserver.next(ee)}}const ri=-1;class da extends gr{constructor(ee,te,ne,re){super(ee,te,ne,re),this.type="firestore",this._queue=new __PRIVATE_AsyncQueueImpl,this._persistenceKey=re?.name||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){const ee=this._firestoreClient.terminate();this._queue=new __PRIVATE_AsyncQueueImpl(ee),this._firestoreClient=void 0,await ee}}}function initializeFirestore(ee,te,ne){ne||(ne=Sn);const re=_getProvider(ee,"firestore");if(re.isInitialized(ne)){const ee=re.getImmediate({identifier:ne});if(deepEqual(re.getOptions(ne),te))return ee;throw new s(gn.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==te.cacheSizeBytes&&void 0!==te.localCache)throw new s(gn.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==te.cacheSizeBytes&&-1!==te.cacheSizeBytes&&te.cacheSizeBytes<pr)throw new s(gn.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return te.host&&isCloudWorkstation(te.host)&&pingServer(te.host),re.initialize({options:te,instanceIdentifier:ne})}function getFirestore(ee,ne){const re="object"==typeof ee?ee:te(),se="string"==typeof ee?ee:ne||Sn,ie=_getProvider(re,"firestore").getImmediate({identifier:se});if(!ie._initialized){const ee=getDefaultEmulatorHostnameAndPort("firestore");ee&&connectFirestoreEmulator(ie,...ee)}return ie}function oa(ee){if(ee._terminated)throw new s(gn.FAILED_PRECONDITION,"The client has already been terminated.");return ee._firestoreClient||__PRIVATE_configureFirestore(ee),ee._firestoreClient}function __PRIVATE_configureFirestore(ee){const te=ee._freezeSettings(),ne=__PRIVATE_makeDatabaseInfo(ee._databaseId,ee._app?.options.appId||"",ee._persistenceKey,ee._app?.options.apiKey,te);ee._componentsProvider||te.localCache?._offlineComponentProvider&&te.localCache?._onlineComponentProvider&&(ee._componentsProvider={_offline:te.localCache._offlineComponentProvider,_online:te.localCache._onlineComponentProvider}),ee._firestoreClient=new FirestoreClient(ee._authCredentials,ee._appCheckCredentials,ee._queue,ne,ee._componentsProvider&&function __PRIVATE_buildComponentProvider(ee){const te=ee?._online.build();return{_offline:ee?._offline.build(te),_online:te}}(ee._componentsProvider))}function enableIndexedDbPersistence(ee,te){__PRIVATE_logWarn("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const ne=ee._freezeSettings();return __PRIVATE_setPersistenceProviders(ee,OnlineComponentProvider.provider,{build:ee=>new __PRIVATE_IndexedDbOfflineComponentProvider(ee,ne.cacheSizeBytes,te?.forceOwnership)}),Promise.resolve()}async function enableMultiTabIndexedDbPersistence(ee){__PRIVATE_logWarn("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const te=ee._freezeSettings();__PRIVATE_setPersistenceProviders(ee,OnlineComponentProvider.provider,{build:ee=>new __PRIVATE_MultiTabOfflineComponentProvider(ee,te.cacheSizeBytes)})}function __PRIVATE_setPersistenceProviders(ee,te,ne){if((ee=ra(ee,da))._firestoreClient||ee._terminated)throw new s(gn.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(ee._componentsProvider||ee._getSettings().localCache)throw new s(gn.FAILED_PRECONDITION,"SDK cache is already specified.");ee._componentsProvider={_online:te,_offline:ne},__PRIVATE_configureFirestore(ee)}function clearIndexedDbPersistence(ee){if(ee._initialized&&!ee._terminated)throw new s(gn.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const te=new __PRIVATE_Deferred;return ee._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function __PRIVATE_indexedDbClearPersistence(ee){if(!__PRIVATE_SimpleDb.Je())return Promise.resolve();const te=ee+Ks;await __PRIVATE_SimpleDb.delete(te)}(__PRIVATE_indexedDbStoragePrefix(ee._databaseId,ee._persistenceKey)),te.resolve()}catch(ee){te.reject(ee)}})),te.promise}function waitForPendingWrites(ee){return function __PRIVATE_firestoreClientWaitForPendingWrites(ee){const te=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_syncEngineRegisterPendingWritesCallback(ee,te){const ne=__PRIVATE_debugCast(ee);__PRIVATE_canUseNetwork(ne.remoteStore)||__PRIVATE_logDebug(Zs,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const ee=await function __PRIVATE_localStoreGetHighestUnacknowledgedBatchId(ee){const te=__PRIVATE_debugCast(ee);return te.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(ee=>te.mutationQueue.getHighestUnacknowledgedBatchId(ee)))}(ne.localStore);if(ee===vn)return void te.resolve();const re=ne.dc.get(ee)||[];re.push(te),ne.dc.set(ee,re)}catch(ee){const ne=__PRIVATE_wrapInUserErrorIfRecoverable(ee,"Initialization of waitForPendingWrites() operation failed");te.reject(ne)}}(await __PRIVATE_getSyncEngine(ee),te))),te.promise}(oa(ee=ra(ee,da)))}function enableNetwork(ee){return function __PRIVATE_firestoreClientEnableNetwork(ee){return ee.asyncQueue.enqueue((async()=>{const te=await __PRIVATE_getPersistence(ee),ne=await __PRIVATE_getRemoteStore(ee);return te.setNetworkEnabled(!0),function __PRIVATE_remoteStoreEnableNetwork(ee){const te=__PRIVATE_debugCast(ee);return te.ca.delete(0),__PRIVATE_enableNetworkInternal(te)}(ne)}))}(oa(ee=ra(ee,da)))}function disableNetwork(ee){return function __PRIVATE_firestoreClientDisableNetwork(ee){return ee.asyncQueue.enqueue((async()=>{const te=await __PRIVATE_getPersistence(ee),ne=await __PRIVATE_getRemoteStore(ee);return te.setNetworkEnabled(!1),async function __PRIVATE_remoteStoreDisableNetwork(ee){const te=__PRIVATE_debugCast(ee);te.ca.add(0),await __PRIVATE_disableNetworkInternal(te),te.ha.set("Offline")}(ne)}))}(oa(ee=ra(ee,da)))}function terminate(ee){return ne(ee.app,"firestore",ee._databaseId.database),ee._delete()}function loadBundle(ee,te){const ne=oa(ee=ra(ee,da)),re=new LoadBundleTask;return __PRIVATE_firestoreClientLoadBundle(ne,ee._databaseId,te,re),re}function namedQuery(ee,te){return function __PRIVATE_firestoreClientGetNamedQuery(ee,te){return ee.asyncQueue.enqueue((async()=>function __PRIVATE_localStoreGetNamedQuery(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Get named query","readonly",(ee=>ne.d_.getNamedQuery(ee,te)))}(await __PRIVATE_getLocalStore(ee),te)))}(oa(ee=ra(ee,da)),te).then((te=>te?new Query(ee,null,te.query):null))}class AbstractUserDataWriter{convertValue(ee,te="none"){switch(__PRIVATE_typeOrder(ee)){case 0:return null;case 1:return ee.booleanValue;case 2:return __PRIVATE_normalizeNumber(ee.integerValue||ee.doubleValue);case 3:return this.convertTimestamp(ee.timestampValue);case 4:return this.convertServerTimestamp(ee,te);case 5:return ee.stringValue;case 6:return this.convertBytes(__PRIVATE_normalizeByteString(ee.bytesValue));case 7:return this.convertReference(ee.referenceValue);case 8:return this.convertGeoPoint(ee.geoPointValue);case 9:return this.convertArray(ee.arrayValue,te);case 11:return this.convertObject(ee.mapValue,te);case 10:return this.convertVectorValue(ee.mapValue);default:throw l(62114,{value:ee})}}convertObject(ee,te){return this.convertObjectMap(ee.fields,te)}convertObjectMap(ee,te="none"){const ne={};return forEach(ee,((ee,re)=>{ne[ee]=this.convertValue(re,te)})),ne}convertVectorValue(ee){const te=ee.fields?.[Ln].arrayValue?.values?.map((ee=>__PRIVATE_normalizeNumber(ee.doubleValue)));return new n(te)}convertGeoPoint(ee){return new GeoPoint(__PRIVATE_normalizeNumber(ee.latitude),__PRIVATE_normalizeNumber(ee.longitude))}convertArray(ee,te){return(ee.values||[]).map((ee=>this.convertValue(ee,te)))}convertServerTimestamp(ee,te){switch(te){case"previous":const ne=__PRIVATE_getPreviousValue(ee);return null==ne?null:this.convertValue(ne,te);case"estimate":return this.convertTimestamp(__PRIVATE_getLocalWriteTime(ee));default:return null}}convertTimestamp(ee){const te=__PRIVATE_normalizeTimestamp(ee);return new Timestamp(te.seconds,te.nanos)}convertDocumentKey(ee,te){const ne=ResourcePath.fromString(ee);__PRIVATE_hardAssert(__PRIVATE_isValidResourceName(ne),9688,{name:ee});const re=new DatabaseId(ne.get(1),ne.get(3)),se=new DocumentKey(ne.popFirst(5));return re.isEqual(te)||__PRIVATE_logError(`Document ${se} contains a document reference within a different database (${re.projectId}/${re.database}) which is not supported. It will be treated as a reference in the current database (${te.projectId}/${te.database}) instead.`),se}}class ua extends AbstractUserDataWriter{constructor(ee){super(),this.firestore=ee}convertBytes(ee){return new Bytes(ee)}convertReference(ee){const te=this.convertDocumentKey(ee,this.firestore._databaseId);return new X(this.firestore,null,te)}}function _internalQueryToProtoQueryTarget(ee){const te=oa(ra(ee.firestore,da)),ne=te._onlineComponents?.datastore.serializer;return void 0===ne?null:__PRIVATE_toQueryTarget(ne,__PRIVATE_queryToTarget(ee._query)).be}function _internalAggregationQueryToProtoRunAggregationQueryRequest(ee,te){const ne=__PRIVATE_mapToArray(te,((ee,te)=>new __PRIVATE_AggregateImpl(te,ee.aggregateType,ee._internalFieldPath))),re=oa(ra(ee.firestore,da)),se=re._onlineComponents?.datastore.serializer;return void 0===se?null:__PRIVATE_toRunAggregationQueryRequest(se,__PRIVATE_queryToAggregateTarget(ee._query),ne,!0).request}function __PRIVATE_isPartialObserver(ee){return function __PRIVATE_implementsAnyMethods(ee,te){if("object"!=typeof ee||null===ee)return!1;const ne=ee;for(const ee of te)if(ee in ne&&"function"==typeof ne[ee])return!0;return!1}(ee,["next","error","complete"])}const si="@firebase/firestore",ii="4.17.0";class AggregateField{constructor(ee="count",te){this._internalFieldPath=te,this.type="AggregateField",this.aggregateType=ee}}class AggregateQuerySnapshot{constructor(ee,te,ne){this._userDataWriter=te,this._data=ne,this.type="AggregateQuerySnapshot",this.query=ee}data(){return this._userDataWriter.convertObjectMap(this._data)}_fieldsProto(){return new ObjectValue({mapValue:{fields:this._data}}).clone().value.mapValue.fields}}let ai=class DocumentSnapshot{constructor(ee,te,ne,re,se){this._firestore=ee,this._userDataWriter=te,this._key=ne,this._document=re,this._converter=se}get id(){return this._key.path.lastSegment()}get ref(){return new X(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const ee=new oi(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(ee)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(ee){if(this._document){const te=this._document.data.field(ta("DocumentSnapshot.get",ee));if(null!==te)return this._userDataWriter.convertValue(te)}}},oi=class QueryDocumentSnapshot extends ai{data(){return super.data()}};function __PRIVATE_validateHasExplicitOrderByForLimitToLast(ee){if("L"===ee.limitType&&0===ee.explicitOrderBy.length)throw new s(gn.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class AppliableConstraint{}class QueryConstraint extends AppliableConstraint{}function query(ee,te,...ne){let re=[];te instanceof AppliableConstraint&&re.push(te),re=re.concat(ne),function __PRIVATE_validateQueryConstraintArray(ee){const te=ee.filter((ee=>ee instanceof QueryCompositeFilterConstraint)).length,ne=ee.filter((ee=>ee instanceof QueryFieldFilterConstraint)).length;if(te>1||te>0&&ne>0)throw new s(gn.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(re);for(const te of re)ee=te._apply(ee);return ee}class QueryFieldFilterConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this._field=ee,this._op=te,this._value=ne,this.type="where"}static _create(ee,te,ne){return new QueryFieldFilterConstraint(ee,te,ne)}_apply(ee){const te=this._parse(ee);return __PRIVATE_validateNewFieldFilter(ee._query,te),new Query(ee.firestore,ee.converter,__PRIVATE_queryWithAddedFilter(ee._query,te))}_parse(ee){const te=la(ee.firestore),ne=function __PRIVATE_newQueryFilter(ee,te,ne,re,se,ie,ae){let oe;if(se.isKeyField()){if("array-contains"===ie||"array-contains-any"===ie)throw new s(gn.INVALID_ARGUMENT,`Invalid Query. You can't perform '${ie}' queries on documentId().`);if("in"===ie||"not-in"===ie){__PRIVATE_validateDisjunctiveFilterElements(ae,ie);const te=[];for(const ne of ae)te.push(__PRIVATE_parseDocumentIdValue(re,ee,ne));oe={arrayValue:{values:te}}}else oe=__PRIVATE_parseDocumentIdValue(re,ee,ae)}else"in"!==ie&&"not-in"!==ie&&"array-contains-any"!==ie||__PRIVATE_validateDisjunctiveFilterElements(ae,ie),oe=__PRIVATE_parseQueryValue(ne,te,ae,"in"===ie||"not-in"===ie);return FieldFilter.create(se,ie,oe)}(ee._query,"where",te,ee.firestore._databaseId,this._field,this._op,this._value);return ne}}function where(ee,te,ne){const re=te,se=ta("where",ee);return QueryFieldFilterConstraint._create(se,re,ne)}class QueryCompositeFilterConstraint extends AppliableConstraint{constructor(ee,te){super(),this.type=ee,this._queryConstraints=te}static _create(ee,te){return new QueryCompositeFilterConstraint(ee,te)}_parse(ee){const te=this._queryConstraints.map((te=>te._parse(ee))).filter((ee=>ee.getFilters().length>0));return 1===te.length?te[0]:CompositeFilter.create(te,this._getOperator())}_apply(ee){const te=this._parse(ee);return 0===te.getFilters().length?ee:(function __PRIVATE_validateNewFilter(ee,te){let ne=ee;const re=te.getFlattenedFilters();for(const ee of re)__PRIVATE_validateNewFieldFilter(ne,ee),ne=__PRIVATE_queryWithAddedFilter(ne,ee)}(ee._query,te),new Query(ee.firestore,ee.converter,__PRIVATE_queryWithAddedFilter(ee._query,te)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function or(...ee){return ee.forEach((ee=>__PRIVATE_validateQueryFilterConstraint("or",ee))),QueryCompositeFilterConstraint._create("or",ee)}function and(...ee){return ee.forEach((ee=>__PRIVATE_validateQueryFilterConstraint("and",ee))),QueryCompositeFilterConstraint._create("and",ee)}class QueryOrderByConstraint extends QueryConstraint{constructor(ee,te){super(),this._field=ee,this._direction=te,this.type="orderBy"}static _create(ee,te){return new QueryOrderByConstraint(ee,te)}_apply(ee){const te=function __PRIVATE_newQueryOrderBy(ee,te,ne){if(null!==ee.startAt)throw new s(gn.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==ee.endAt)throw new s(gn.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new OrderBy(te,ne)}(ee._query,this._field,this._direction);return new Query(ee.firestore,ee.converter,function __PRIVATE_queryWithAddedOrderBy(ee,te){const ne=ee.explicitOrderBy.concat([te]);return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ne,ee.filters.slice(),ee.limit,ee.limitType,ee.startAt,ee.endAt)}(ee._query,te))}}function orderBy(ee,te="asc"){const ne=te,re=ta("orderBy",ee);return QueryOrderByConstraint._create(re,ne)}class QueryLimitConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this.type=ee,this._limit=te,this._limitType=ne}static _create(ee,te,ne){return new QueryLimitConstraint(ee,te,ne)}_apply(ee){return new Query(ee.firestore,ee.converter,__PRIVATE_queryWithLimit(ee._query,this._limit,this._limitType))}}function limit(ee){return __PRIVATE_validatePositiveNumber("limit",ee),QueryLimitConstraint._create("limit",ee,"F")}function limitToLast(ee){return __PRIVATE_validatePositiveNumber("limitToLast",ee),QueryLimitConstraint._create("limitToLast",ee,"L")}class QueryStartAtConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this.type=ee,this._docOrFields=te,this._inclusive=ne}static _create(ee,te,ne){return new QueryStartAtConstraint(ee,te,ne)}_apply(ee){const te=__PRIVATE_newQueryBoundFromDocOrFields(ee,this.type,this._docOrFields,this._inclusive);return new Query(ee.firestore,ee.converter,function __PRIVATE_queryWithStartAt(ee,te){return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ee.filters.slice(),ee.limit,ee.limitType,te,ee.endAt)}(ee._query,te))}}function startAt(...ee){return QueryStartAtConstraint._create("startAt",ee,!0)}function startAfter(...ee){return QueryStartAtConstraint._create("startAfter",ee,!1)}class QueryEndAtConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this.type=ee,this._docOrFields=te,this._inclusive=ne}static _create(ee,te,ne){return new QueryEndAtConstraint(ee,te,ne)}_apply(ee){const te=__PRIVATE_newQueryBoundFromDocOrFields(ee,this.type,this._docOrFields,this._inclusive);return new Query(ee.firestore,ee.converter,function __PRIVATE_queryWithEndAt(ee,te){return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ee.filters.slice(),ee.limit,ee.limitType,ee.startAt,te)}(ee._query,te))}}function endBefore(...ee){return QueryEndAtConstraint._create("endBefore",ee,!1)}function endAt(...ee){return QueryEndAtConstraint._create("endAt",ee,!0)}function __PRIVATE_newQueryBoundFromDocOrFields(ee,te,ne,re){if(ne[0]=getModularInstance(ne[0]),ne[0]instanceof ai)return function __PRIVATE_newQueryBoundFromDocument(ee,te,ne,re,se){if(!re)throw new s(gn.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${ne}().`);const ie=[];for(const ne of __PRIVATE_queryNormalizedOrderBy(ee))if(ne.field.isKeyField())ie.push(__PRIVATE_refValue(te,re.key));else{const ee=re.data.field(ne.field);if(__PRIVATE_isServerTimestamp(ee))throw new s(gn.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+ne.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===ee){const ee=ne.field.canonicalString();throw new s(gn.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${ee}' (used as the orderBy) does not exist.`)}ie.push(ee)}return new Bound(ie,se)}(ee._query,ee.firestore._databaseId,te,ne[0]._document,re);{const se=la(ee.firestore);return function __PRIVATE_newQueryBoundFromFields(ee,te,ne,re,se,ie){const ae=ee.explicitOrderBy;if(se.length>ae.length)throw new s(gn.INVALID_ARGUMENT,`Too many arguments provided to ${re}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const oe=[];for(let ie=0;ie<se.length;ie++){const ue=se[ie];if(ae[ie].field.isKeyField()){if("string"!=typeof ue)throw new s(gn.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${re}(), but got a ${typeof ue}`);if(!__PRIVATE_isCollectionGroupQuery(ee)&&-1!==ue.indexOf("/"))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${re}() must be a plain document ID, but '${ue}' contains a slash.`);const ne=ee.path.child(ResourcePath.fromString(ue));if(!DocumentKey.isDocumentKey(ne))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${re}() must result in a valid document path, but '${ne}' is not because it contains an odd number of segments.`);const se=new DocumentKey(ne);oe.push(__PRIVATE_refValue(te,se))}else{const ee=__PRIVATE_parseQueryValue(ne,re,ue);oe.push(ee)}}return new Bound(oe,ie)}(ee._query,ee.firestore._databaseId,se,te,ne,re)}}function __PRIVATE_parseDocumentIdValue(ee,te,ne){if("string"==typeof(ne=getModularInstance(ne))){if(""===ne)throw new s(gn.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!__PRIVATE_isCollectionGroupQuery(te)&&-1!==ne.indexOf("/"))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${ne}' contains a '/' character.`);const re=te.path.child(ResourcePath.fromString(ne));if(!DocumentKey.isDocumentKey(re))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${re}' is not because it has an odd number of segments (${re.length}).`);return __PRIVATE_refValue(ee,new DocumentKey(re))}if(ne instanceof X)return __PRIVATE_refValue(ee,ne._key);throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${__PRIVATE_valueDescription(ne)}.`)}function __PRIVATE_validateDisjunctiveFilterElements(ee,te){if(!Array.isArray(ee)||0===ee.length)throw new s(gn.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${te.toString()}' filters.`)}function __PRIVATE_validateNewFieldFilter(ee,te){const ne=function __PRIVATE_findOpInsideFilters(ee,te){for(const ne of ee)for(const ee of ne.getFlattenedFilters())if(te.indexOf(ee.op)>=0)return ee.op;return null}(ee.filters,function __PRIVATE_conflictingOps(ee){switch(ee){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[]}}(te.op));if(null!==ne)throw ne===te.op?new s(gn.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${te.op.toString()}' filter.`):new s(gn.INVALID_ARGUMENT,`Invalid query. You cannot use '${te.op.toString()}' filters with '${ne.toString()}' filters.`)}function __PRIVATE_validateQueryFilterConstraint(ee,te){if(!(te instanceof QueryFieldFilterConstraint||te instanceof QueryCompositeFilterConstraint))throw new s(gn.INVALID_ARGUMENT,`Function ${ee}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}function __PRIVATE_applyFirestoreDataConverter(ee,te,ne){let re;return re=ee?ne&&(ne.merge||ne.mergeFields)?ee.toFirestore(te,ne):ee.toFirestore(te):te,re}class __PRIVATE_LiteUserDataWriter extends AbstractUserDataWriter{constructor(ee){super(),this.firestore=ee}convertBytes(ee){return new Bytes(ee)}convertReference(ee){const te=this.convertDocumentKey(ee,this.firestore._databaseId);return new X(this.firestore,null,te)}}function sum(ee){return new AggregateField("sum",ta("sum",ee))}function average(ee){return new AggregateField("avg",ta("average",ee))}function count(){return new AggregateField("count")}function aggregateFieldEqual(ee,te){return ee instanceof AggregateField&&te instanceof AggregateField&&ee.aggregateType===te.aggregateType&&ee._internalFieldPath?.canonicalString()===te._internalFieldPath?.canonicalString()}function aggregateQuerySnapshotEqual(ee,te){return queryEqual(ee.query,te.query)&&deepEqual(ee.data(),te.data())}function getCountFromServer(ee){return getAggregateFromServer(ee,{count:count()})}function getAggregateFromServer(ee,te){const ne=ra(ee.firestore,da),re=oa(ne),se=__PRIVATE_mapToArray(te,((ee,te)=>new __PRIVATE_AggregateImpl(te,ee.aggregateType,ee._internalFieldPath)));return function __PRIVATE_firestoreClientRunAggregateQuery(ee,te,ne){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>{try{const se=await __PRIVATE_getDatastore(ee);re.resolve(async function __PRIVATE_invokeRunAggregationQueryRpc(ee,te,ne){const re=__PRIVATE_debugCast(ee),{request:se,ve:ie,parent:ae}=__PRIVATE_toRunAggregationQueryRequest(re.serializer,__PRIVATE_queryToAggregateTarget(te),ne);re.connection.Ye||delete se.parent;const oe=(await re.st("RunAggregationQuery",re.serializer.databaseId,ae,se,1)).filter((ee=>!!ee.result));__PRIVATE_hardAssert(1===oe.length,64727);const ue=oe[0].result?.aggregateFields;return Object.keys(ue).reduce(((ee,te)=>(ee[ie[te]]=ue[te],ee)),{})}(se,te,ne))}catch(ee){re.reject(ee)}})),re.promise}(re,ee._query,se).then((te=>function __PRIVATE_convertToAggregateQuerySnapshot(ee,te,ne){const re=new ua(ee);return new AggregateQuerySnapshot(te,re,ne)}(ne,ee,te)))}class __PRIVATE_MemoryLocalCacheImpl{constructor(ee){this.kind="memory",this._onlineComponentProvider=OnlineComponentProvider.provider,this._offlineComponentProvider=ee?.garbageCollector?ee.garbageCollector._offlineComponentProvider:{build:()=>new __PRIVATE_LruGcMemoryOfflineComponentProvider(void 0)}}toJSON(){return{kind:this.kind}}}class __PRIVATE_PersistentLocalCacheImpl{constructor(ee){let te;this.kind="persistent",ee?.tabManager?(ee.tabManager._initialize(ee),te=ee.tabManager):(te=persistentSingleTabManager(void 0),te._initialize(ee)),this._onlineComponentProvider=te._onlineComponentProvider,this._offlineComponentProvider=te._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class __PRIVATE_MemoryEagerGarbageCollectorImpl{constructor(){this.kind="memoryEager",this._offlineComponentProvider=__PRIVATE_MemoryOfflineComponentProvider.provider}toJSON(){return{kind:this.kind}}}class __PRIVATE_MemoryLruGarbageCollectorImpl{constructor(ee){this.kind="memoryLru",this._offlineComponentProvider={build:()=>new __PRIVATE_LruGcMemoryOfflineComponentProvider(ee)}}toJSON(){return{kind:this.kind}}}function memoryEagerGarbageCollector(){return new __PRIVATE_MemoryEagerGarbageCollectorImpl}function memoryLruGarbageCollector(ee){return new __PRIVATE_MemoryLruGarbageCollectorImpl(ee?.cacheSizeBytes)}function memoryLocalCache(ee){return new __PRIVATE_MemoryLocalCacheImpl(ee)}function persistentLocalCache(ee){return new __PRIVATE_PersistentLocalCacheImpl(ee)}class __PRIVATE_SingleTabManagerImpl{constructor(ee){this.forceOwnership=ee,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(ee){this._onlineComponentProvider=OnlineComponentProvider.provider,this._offlineComponentProvider={build:te=>new __PRIVATE_IndexedDbOfflineComponentProvider(te,ee?.cacheSizeBytes,this.forceOwnership)}}}class __PRIVATE_MultiTabManagerImpl{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(ee){this._onlineComponentProvider=OnlineComponentProvider.provider,this._offlineComponentProvider={build:te=>new __PRIVATE_MultiTabOfflineComponentProvider(te,ee?.cacheSizeBytes)}}}function persistentSingleTabManager(ee){return new __PRIVATE_SingleTabManagerImpl(ee?.forceOwnership)}function persistentMultipleTabManager(){return new __PRIVATE_MultiTabManagerImpl}const ui="NOT SUPPORTED";class SnapshotMetadata{constructor(ee,te){this.hasPendingWrites=ee,this.fromCache=te}isEqual(ee){return this.hasPendingWrites===ee.hasPendingWrites&&this.fromCache===ee.fromCache}}class DocumentSnapshot extends ai{constructor(ee,te,ne,re,se,ie){super(ee,te,ne,re,ie),this._firestore=ee,this._firestoreImpl=ee,this.metadata=se}exists(){return super.exists()}data(ee={}){if(this._document){if(this._converter){const te=new QueryDocumentSnapshot(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(te,ee)}return this._userDataWriter.convertValue(this._document.data.value,ee.serverTimestamps)}}get(ee,te={}){if(this._document){const ne=this._document.data.field(ta("DocumentSnapshot.get",ee));if(null!==ne)return this._userDataWriter.convertValue(ne,te.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new s(gn.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");const ee=this._document,te={};return te.type=DocumentSnapshot._jsonSchemaVersion,te.bundle="",te.bundleSource="DocumentSnapshot",te.bundleName=this._key.toString(),ee&&ee.isValidDocument()&&ee.isFoundDocument()?(this._userDataWriter.convertObjectMap(ee.data.value.mapValue.fields,"previous"),te.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED"),te):te}}function documentSnapshotFromJSON(ee,te,ne){if(__PRIVATE_validateJSON(te,DocumentSnapshot._jsonSchema)){if(te.bundle===ui)throw new s(gn.INVALID_ARGUMENT,"The provided JSON object was created in a client environment, which is not supported.");const re=__PRIVATE_newSerializer(ee._databaseId),se=__PRIVATE_createBundleReaderSync(te.bundle,re),ie=se.va(),ae=new __PRIVATE_BundleLoader(se.getMetadata(),re);for(const ee of ie)ae.qu(ee);const oe=ae.documents;if(1!==oe.length)throw new s(gn.INVALID_ARGUMENT,`Expected bundle data to contain 1 document, but it contains ${oe.length} documents.`);const ue=fromDocument(re,oe[0].document),Be=new DocumentKey(ResourcePath.fromString(te.bundleName));return new DocumentSnapshot(ee,new __PRIVATE_LiteUserDataWriter(ee),Be,ue,new SnapshotMetadata(!1,!1),ne||null)}}DocumentSnapshot._jsonSchemaVersion="firestore/documentSnapshot/1.0",DocumentSnapshot._jsonSchema={type:property("string",DocumentSnapshot._jsonSchemaVersion),bundleSource:property("string","DocumentSnapshot"),bundleName:property("string"),bundle:property("string")};class QueryDocumentSnapshot extends DocumentSnapshot{data(ee={}){return super.data(ee)}}class QuerySnapshot{constructor(ee,te,ne,re){this._firestore=ee,this._userDataWriter=te,this._snapshot=re,this.metadata=new SnapshotMetadata(re.hasPendingWrites,re.fromCache),this.query=ne}get docs(){const ee=[];return this.forEach((te=>ee.push(te))),ee}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(ee,te){this._snapshot.docs.forEach((ne=>{ee.call(te,new QueryDocumentSnapshot(this._firestore,this._userDataWriter,ne.key,ne,new SnapshotMetadata(this._snapshot.mutatedKeys.has(ne.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(ee={}){const te=!!ee.includeMetadataChanges;if(te&&this._snapshot.excludesMetadataChanges)throw new s(gn.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===te||(this._cachedChanges=function __PRIVATE_changesFromSnapshot(ee,te){if(ee._snapshot.oldDocs.isEmpty()){let te=0;return ee._snapshot.docChanges.map((ne=>{__PRIVATE_isPipeline(ee._snapshot.query)?__PRIVATE_newPipelineComparator(ee._snapshot.query):__PRIVATE_newQueryComparator(ee.query._query);const re=new QueryDocumentSnapshot(ee._firestore,ee._userDataWriter,ne.doc.key,ne.doc,new SnapshotMetadata(ee._snapshot.mutatedKeys.has(ne.doc.key),ee._snapshot.fromCache),ee.query.converter);return ne.doc,{type:"added",doc:re,oldIndex:-1,newIndex:te++}}))}{let ne=ee._snapshot.oldDocs;return ee._snapshot.docChanges.filter((ee=>te||3!==ee.type)).map((te=>{const re=new QueryDocumentSnapshot(ee._firestore,ee._userDataWriter,te.doc.key,te.doc,new SnapshotMetadata(ee._snapshot.mutatedKeys.has(te.doc.key),ee._snapshot.fromCache),ee.query.converter);let se=-1,ie=-1;return 0!==te.type&&(se=ne.indexOf(te.doc.key),ne=ne.delete(te.doc.key)),1!==te.type&&(ne=ne.add(te.doc),ie=ne.indexOf(te.doc.key)),{type:__PRIVATE_resultChangeType(te.type),doc:re,oldIndex:se,newIndex:ie}}))}}(this,te),this._cachedChangesIncludeMetadataChanges=te),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new s(gn.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");const ee={};ee.type=QuerySnapshot._jsonSchemaVersion,ee.bundleSource="QuerySnapshot",ee.bundleName=__PRIVATE_AutoId.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;const te=[],ne=[],re=[];return this.docs.forEach((ee=>{null!==ee._document&&(te.push(ee._document),ne.push(this._userDataWriter.convertObjectMap(ee._document.data.value.mapValue.fields,"previous")),re.push(ee.ref.path))})),ee.bundle=(this._firestore,this.query._query,ee.bundleName,"NOT SUPPORTED"),ee}}function querySnapshotFromJSON(ee,te,ne){if(__PRIVATE_validateJSON(te,QuerySnapshot._jsonSchema)){if(te.bundle===ui)throw new s(gn.INVALID_ARGUMENT,"The provided JSON object was created in a client environment, which is not supported.");const re=__PRIVATE_newSerializer(ee._databaseId),se=__PRIVATE_createBundleReaderSync(te.bundle,re),ie=se.va(),ae=new __PRIVATE_BundleLoader(se.getMetadata(),re);for(const ee of ie)ae.qu(ee);if(1!==ae.queries.length)throw new s(gn.INVALID_ARGUMENT,`Snapshot data expected 1 query but found ${ae.queries.length} queries.`);const oe=__PRIVATE_fromBundledQuery(ae.queries[0].bundledQuery),ue=__PRIVATE_isPipeline(oe)?__PRIVATE_newPipelineComparator(oe):__PRIVATE_newQueryComparator(oe),Be=ae.documents;let le=new DocumentSet(ue);Be.map((ee=>{const te=fromDocument(re,ee.document);le=le.add(te)}));const ce=ViewSnapshot.fromInitialDocuments(oe,le,__PRIVATE_documentKeySet(),!1,!1),_e=new Query(ee,ne||null,oe);return new QuerySnapshot(ee,new __PRIVATE_LiteUserDataWriter(ee),_e,ce)}}function __PRIVATE_resultChangeType(ee){switch(ee){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return l(61501,{type:ee})}}function snapshotEqual(ee,te){return ee instanceof DocumentSnapshot&&te instanceof DocumentSnapshot?ee._firestore===te._firestore&&ee._key.isEqual(te._key)&&(null===ee._document?null===te._document:ee._document.isEqual(te._document))&&ee._converter===te._converter:ee instanceof QuerySnapshot&&te instanceof QuerySnapshot&&ee._firestore===te._firestore&&queryEqual(ee.query,te.query)&&ee.metadata.isEqual(te.metadata)&&ee._snapshot.isEqual(te._snapshot)}QuerySnapshot._jsonSchemaVersion="firestore/querySnapshot/1.0",QuerySnapshot._jsonSchema={type:property("string",QuerySnapshot._jsonSchemaVersion),bundleSource:property("string","QuerySnapshot"),bundleName:property("string"),bundle:property("string")};const Bi={maxAttempts:5};class WriteBatch{constructor(ee,te){this._firestore=ee,this._commitHandler=te,this._mutations=[],this._committed=!1,this._dataReader=la(ee)}set(ee,te,ne){this._verifyNotCommitted();const re=__PRIVATE_validateReference(ee,this._firestore),se=__PRIVATE_applyFirestoreDataConverter(re.converter,te,ne),ie=__PRIVATE_parseSetData(this._dataReader,"WriteBatch.set",re._key,se,null!==re.converter,ne);return this._mutations.push(ie.toMutation(re._key,Precondition.none())),this}update(ee,te,ne,...re){this._verifyNotCommitted();const se=__PRIVATE_validateReference(ee,this._firestore);let ie;return ie="string"==typeof(te=getModularInstance(te))||te instanceof FieldPath?__PRIVATE_parseUpdateVarargs(this._dataReader,"WriteBatch.update",se._key,te,ne,re):__PRIVATE_parseUpdateData(this._dataReader,"WriteBatch.update",se._key,te),this._mutations.push(ie.toMutation(se._key,Precondition.exists(!0))),this}delete(ee){this._verifyNotCommitted();const te=__PRIVATE_validateReference(ee,this._firestore);return this._mutations=this._mutations.concat(new __PRIVATE_DeleteMutation(te._key,Precondition.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new s(gn.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function __PRIVATE_validateReference(ee,te){if((ee=getModularInstance(ee)).firestore!==te)throw new s(gn.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return ee}let li=class Transaction{constructor(ee,te){this._firestore=ee,this._transaction=te,this._dataReader=la(ee)}get(ee){const te=__PRIVATE_validateReference(ee,this._firestore),ne=new __PRIVATE_LiteUserDataWriter(this._firestore);return this._transaction.lookup([te._key]).then((ee=>{if(!ee||1!==ee.length)return l(24041);const re=ee[0];if(re.isFoundDocument())return new ai(this._firestore,ne,re.key,re,te.converter);if(re.isNoDocument())return new ai(this._firestore,ne,te._key,null,te.converter);throw l(18433,{doc:re})}))}set(ee,te,ne){const re=__PRIVATE_validateReference(ee,this._firestore),se=__PRIVATE_applyFirestoreDataConverter(re.converter,te,ne),ie=__PRIVATE_parseSetData(this._dataReader,"Transaction.set",re._key,se,null!==re.converter,ne);return this._transaction.set(re._key,ie),this}update(ee,te,ne,...re){const se=__PRIVATE_validateReference(ee,this._firestore);let ie;return ie="string"==typeof(te=getModularInstance(te))||te instanceof FieldPath?__PRIVATE_parseUpdateVarargs(this._dataReader,"Transaction.update",se._key,te,ne,re):__PRIVATE_parseUpdateData(this._dataReader,"Transaction.update",se._key,te),this._transaction.update(se._key,ie),this}delete(ee){const te=__PRIVATE_validateReference(ee,this._firestore);return this._transaction.delete(te._key),this}};class Transaction extends li{constructor(ee,te){super(ee,te),this._firestore=ee}get(ee){const te=__PRIVATE_validateReference(ee,this._firestore),ne=new ua(this._firestore);return super.get(ee).then((ee=>new DocumentSnapshot(this._firestore,ne,te._key,ee._document,new SnapshotMetadata(!1,!1),te.converter)))}}function runTransaction(ee,te,ne){ee=ra(ee,da);const re={...Bi,...ne};!function __PRIVATE_validateTransactionOptions(ee){if(ee.maxAttempts<1)throw new s(gn.INVALID_ARGUMENT,"Max attempts must be at least 1")}(re);return function __PRIVATE_firestoreClientTransaction(ee,te,ne){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>{const se=await __PRIVATE_getDatastore(ee);new __PRIVATE_TransactionRunner(ee.asyncQueue,se,ne,te,re).Nc()})),re.promise}(oa(ee),(ne=>te(new Transaction(ee,ne))),re)}function getDoc(ee){ee=ra(ee,X);const te=ra(ee.firestore,da);return __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(oa(te),ee._key).then((ne=>__PRIVATE_convertToDocSnapshot(te,ee,ne)))}function getDocFromCache(ee){ee=ra(ee,X);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return function __PRIVATE_firestoreClientGetDocumentFromLocalCache(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_readDocumentFromCache(ee,te,ne){try{const re=await function __PRIVATE_localStoreReadDocument(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("read document","readonly",(ee=>ne.localDocuments.getDocument(ee,te)))}(ee,te);re.isFoundDocument()?ne.resolve(re):re.isNoDocument()?ne.resolve(null):ne.reject(new s(gn.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(ee){const re=__PRIVATE_wrapInUserErrorIfRecoverable(ee,`Failed to get document '${te} from cache`);ne.reject(re)}}(await __PRIVATE_getLocalStore(ee),te,ne))),ne.promise}(ne,ee._key).then((ne=>new DocumentSnapshot(te,re,ee._key,ne,new SnapshotMetadata(null!==ne&&ne.hasLocalMutations,!0),ee.converter)))}function getDocFromServer(ee){ee=ra(ee,X);const te=ra(ee.firestore,da);return __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(oa(te),ee._key,{source:"server"}).then((ne=>__PRIVATE_convertToDocSnapshot(te,ee,ne)))}function getDocs(ee){ee=ra(ee,Query);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return __PRIVATE_validateHasExplicitOrderByForLimitToLast(ee._query),__PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(ne,ee._query).then((ne=>new QuerySnapshot(te,re,ee,ne)))}function getDocsFromCache(ee){ee=ra(ee,Query);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return function __PRIVATE_firestoreClientGetDocumentsFromLocalCache(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_executeQueryFromCache(ee,te,ne){try{const re=await __PRIVATE_localStoreExecuteQuery(ee,te,!0),se=new __PRIVATE_View(te,re.Wo),ie=se.Zu(re.documents),ae=se.applyChanges(ie,!1);ne.resolve(ae.snapshot)}catch(ee){const re=__PRIVATE_wrapInUserErrorIfRecoverable(ee,`Failed to execute query '${te} against cache`);ne.reject(re)}}(await __PRIVATE_getLocalStore(ee),te,ne))),ne.promise}(ne,ee._query).then((ne=>new QuerySnapshot(te,re,ee,ne)))}function getDocsFromServer(ee){ee=ra(ee,Query);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return __PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(ne,ee._query,{source:"server"}).then((ne=>new QuerySnapshot(te,re,ee,ne)))}function setDoc(ee,te,ne){ee=ra(ee,X);const re=ra(ee.firestore,da),se=__PRIVATE_applyFirestoreDataConverter(ee.converter,te,ne);return executeWrite(re,[__PRIVATE_parseSetData(la(re),"setDoc",ee._key,se,null!==ee.converter,ne).toMutation(ee._key,Precondition.none())])}function updateDoc(ee,te,ne,...re){ee=ra(ee,X);const se=ra(ee.firestore,da),ie=la(se);let ae;return ae="string"==typeof(te=getModularInstance(te))||te instanceof FieldPath?__PRIVATE_parseUpdateVarargs(ie,"updateDoc",ee._key,te,ne,re):__PRIVATE_parseUpdateData(ie,"updateDoc",ee._key,te),executeWrite(se,[ae.toMutation(ee._key,Precondition.exists(!0))])}function deleteDoc(ee){return executeWrite(ra(ee.firestore,da),[new __PRIVATE_DeleteMutation(ee._key,Precondition.none())])}function addDoc(ee,te){const ne=ra(ee.firestore,da),re=doc(ee),se=__PRIVATE_applyFirestoreDataConverter(ee.converter,te);return executeWrite(ne,[__PRIVATE_parseSetData(la(ee.firestore),"addDoc",re._key,se,null!==ee.converter,{}).toMutation(re._key,Precondition.exists(!1))]).then((()=>re))}function onSnapshot(ee,...te){ee=getModularInstance(ee);let ne={includeMetadataChanges:!1,source:"default"},re=0;"object"!=typeof te[re]||__PRIVATE_isPartialObserver(te[re])||(ne=te[re++]);const se={includeMetadataChanges:ne.includeMetadataChanges,source:ne.source};if(__PRIVATE_isPartialObserver(te[re])){const ee=te[re];te[re]=ee.next?.bind(ee),te[re+1]=ee.error?.bind(ee),te[re+2]=ee.complete?.bind(ee)}let ie,ae,oe;if(ee instanceof X)ae=ra(ee.firestore,da),oe=__PRIVATE_newQueryForPath(ee._key.path),ie={next:ne=>{te[re]&&te[re](__PRIVATE_convertToDocSnapshot(ae,ee,ne))},error:te[re+1],complete:te[re+2]};else{const ne=ra(ee,Query);ae=ra(ne.firestore,da),oe=ne._query;const se=new ua(ae);ie={next:ee=>{te[re]&&te[re](new QuerySnapshot(ae,se,ne,ee))},error:te[re+1],complete:te[re+2]},__PRIVATE_validateHasExplicitOrderByForLimitToLast(ee._query)}return function __PRIVATE_firestoreClientListen(ee,te,ne,re){const se=new __PRIVATE_AsyncObserver(re),ie=new __PRIVATE_QueryListener(te,se,ne);return ee.asyncQueue.enqueueAndForget((async()=>__PRIVATE_eventManagerListen(await __PRIVATE_getEventManager(ee),ie))),()=>{se.Aa(),ee.asyncQueue.enqueueAndForget((async()=>__PRIVATE_eventManagerUnlisten(await __PRIVATE_getEventManager(ee),ie)))}}(oa(ae),oe,se,ie)}function onSnapshotResume(ee,te,...ne){const re=getModularInstance(ee),se=function __PRIVATE_normalizeSnapshotJsonFields(ee){const te={bundle:"",bundleName:"",bundleSource:""},ne=["bundle","bundleName","bundleSource"];for(const re of ne){if(!(re in ee)){te.error=`snapshotJson missing required field: ${re}`;break}const ne=ee[re];if("string"!=typeof ne){te.error=`snapshotJson field '${re}' must be a string.`;break}if(0===ne.length){te.error=`snapshotJson field '${re}' cannot be an empty string.`;break}"bundle"===re?te.bundle=ne:"bundleName"===re?te.bundleName=ne:"bundleSource"===re&&(te.bundleSource=ne)}return te}(te);if(se.error)throw new s(gn.INVALID_ARGUMENT,se.error);let ie,ae=0;if("object"!=typeof ne[ae]||__PRIVATE_isPartialObserver(ne[ae])||(ie=ne[ae++]),"QuerySnapshot"===se.bundleSource){let ee=null;if("object"==typeof ne[ae]&&__PRIVATE_isPartialObserver(ne[ae])){const te=ne[ae++];ee={next:te.next,error:te.error,complete:te.complete}}else ee={next:ne[ae++],error:ne[ae++],complete:ne[ae++]};return function __PRIVATE_onSnapshotQuerySnapshotBundle(ee,te,ne,re,se){let ie,ae=!1;return loadBundle(ee,te.bundle).then((()=>namedQuery(ee,te.bundleName))).then((ee=>{ee&&!ae&&(se&&ee.withConverter(se),ie=onSnapshot(ee,ne||{},re))})).catch((ee=>(re.error&&re.error(ee),()=>{}))),()=>{ae||(ae=!0,ie&&ie())}}(re,se,ie,ee,ne[ae])}if("DocumentSnapshot"===se.bundleSource){let ee=null;if("object"==typeof ne[ae]&&__PRIVATE_isPartialObserver(ne[ae])){const te=ne[ae++];ee={next:te.next,error:te.error,complete:te.complete}}else ee={next:ne[ae++],error:ne[ae++],complete:ne[ae++]};return function __PRIVATE_onSnapshotDocumentSnapshotBundle(ee,te,ne,re,se){let ie,ae=!1;return loadBundle(ee,te.bundle).then((()=>{if(!ae){const ae=new X(ee,se||null,DocumentKey.fromPath(te.bundleName));ie=onSnapshot(ae,ne||{},re)}})).catch((ee=>(re.error&&re.error(ee),()=>{}))),()=>{ae||(ae=!0,ie&&ie())}}(re,se,ie,ee,ne[ae])}throw new s(gn.INVALID_ARGUMENT,`unsupported bundle source: ${se.bundleSource}`)}function onSnapshotsInSync(ee,te){return function __PRIVATE_firestoreClientAddSnapshotsInSyncListener(ee,te){const ne=new __PRIVATE_AsyncObserver(te);return ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_addSnapshotsInSyncListener(ee,te){__PRIVATE_debugCast(ee).Su.add(te),te.next()}(await __PRIVATE_getEventManager(ee),ne))),()=>{ne.Aa(),ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_removeSnapshotsInSyncListener(ee,te){__PRIVATE_debugCast(ee).Su.delete(te)}(await __PRIVATE_getEventManager(ee),ne)))}}(oa(ee=ra(ee,da)),__PRIVATE_isPartialObserver(te)?te:{next:te})}function executeWrite(ee,te){return __PRIVATE_firestoreClientWrite(oa(ee),te)}function __PRIVATE_convertToDocSnapshot(ee,te,ne){const re=ne.docs.get(te._key),se=new ua(ee);return new DocumentSnapshot(ee,se,te._key,re,new SnapshotMetadata(ne.hasPendingWrites,ne.fromCache),te.converter)}function writeBatch(ee){return oa(ee=ra(ee,da)),new WriteBatch(ee,(te=>executeWrite(ee,te)))}function setIndexConfiguration(ee,te){const ne=oa(ee=ra(ee,da));if(!ne._uninitializedComponentsProvider||"memory"===ne._uninitializedComponentsProvider._offline.kind)return __PRIVATE_logWarn("Cannot enable indexes when persistence is disabled"),Promise.resolve();const re=function __PRIVATE_parseIndexes(ee){const te="string"==typeof ee?function __PRIVATE_tryParseJson(ee){try{return JSON.parse(ee)}catch(ee){throw new s(gn.INVALID_ARGUMENT,"Failed to parse JSON: "+ee?.message)}}(ee):ee,ne=[];if(Array.isArray(te.indexes))for(const ee of te.indexes){const te=__PRIVATE_tryGetString(ee,"collectionGroup"),re=[];if(Array.isArray(ee.fields))for(const te of ee.fields){const ee=__PRIVATE_fieldPathFromDotSeparatedString("setIndexConfiguration",__PRIVATE_tryGetString(te,"fieldPath"));"CONTAINS"===te.arrayConfig?re.push(new IndexSegment(ee,2)):"ASCENDING"===te.order?re.push(new IndexSegment(ee,0)):"DESCENDING"===te.order&&re.push(new IndexSegment(ee,1))}ne.push(new FieldIndex(FieldIndex.UNKNOWN_ID,te,re,IndexState.empty()))}return ne}(te);return function __PRIVATE_firestoreClientSetIndexConfiguration(ee,te){return ee.asyncQueue.enqueue((async()=>async function __PRIVATE_localStoreConfigureFieldIndexes(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.indexManager,se=[];return ne.persistence.runTransaction("Configure indexes","readwrite",(ee=>re.getFieldIndexes(ee).next((ne=>function __PRIVATE_diffArrays(ee,te,ne,re,se){ee=[...ee],te=[...te],ee.sort(ne),te.sort(ne);const ie=ee.length,ae=te.length;let oe=0,ue=0;for(;oe<ae&&ue<ie;){const ie=ne(ee[ue],te[oe]);ie<0?se(ee[ue++]):ie>0?re(te[oe++]):(oe++,ue++)}for(;oe<ae;)re(te[oe++]);for(;ue<ie;)se(ee[ue++])}(ne,te,__PRIVATE_fieldIndexSemanticComparator,(te=>{se.push(re.addFieldIndex(ee,te))}),(te=>{se.push(re.deleteFieldIndex(ee,te))})))).next((()=>PersistencePromise.waitFor(se)))))}(await __PRIVATE_getLocalStore(ee),te)))}(ne,re)}function __PRIVATE_tryGetString(ee,te){if("string"!=typeof ee[te])throw new s(gn.INVALID_ARGUMENT,"Missing string value for: "+te);return ee[te]}class PersistentCacheIndexManager{constructor(ee){this._firestore=ee,this.type="PersistentCacheIndexManager"}}function getPersistentCacheIndexManager(ee){ee=ra(ee,da);const te=ci.get(ee);if(te)return te;const ne=oa(ee);if("persistent"!==ne._uninitializedComponentsProvider?._offline.kind)return null;const re=new PersistentCacheIndexManager(ee);return ci.set(ee,re),re}function enablePersistentCacheIndexAutoCreation(ee){__PRIVATE_setPersistentCacheIndexAutoCreationEnabled(ee,!0)}function disablePersistentCacheIndexAutoCreation(ee){__PRIVATE_setPersistentCacheIndexAutoCreationEnabled(ee,!1)}function deleteAllPersistentCacheIndexes(ee){(function __PRIVATE_firestoreClientDeleteAllFieldIndexes(ee){return ee.asyncQueue.enqueue((async()=>function __PRIVATE_localStoreDeleteAllFieldIndexes(ee){const te=__PRIVATE_debugCast(ee),ne=te.indexManager;return te.persistence.runTransaction("Delete All Indexes","readwrite",(ee=>ne.deleteAllFieldIndexes(ee)))}(await __PRIVATE_getLocalStore(ee))))})(oa(ee._firestore)).then((ee=>__PRIVATE_logDebug("deleting all persistent cache indexes succeeded"))).catch((ee=>__PRIVATE_logWarn("deleting all persistent cache indexes failed",ee)))}function __PRIVATE_setPersistentCacheIndexAutoCreationEnabled(ee,te){(function __PRIVATE_firestoreClientSetPersistentCacheIndexAutoCreationEnabled(ee,te){return ee.asyncQueue.enqueue((async()=>function __PRIVATE_localStoreSetIndexAutoCreationEnabled(ee,te){__PRIVATE_debugCast(ee).Mo.po=te}(await __PRIVATE_getLocalStore(ee),te)))})(oa(ee._firestore),te).then((ee=>__PRIVATE_logDebug(`setting persistent cache index auto creation isEnabled=${te} succeeded`))).catch((ee=>__PRIVATE_logWarn(`setting persistent cache index auto creation isEnabled=${te} failed`,ee)))}const ci=new WeakMap;class TestingHooks{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(ee){return __PRIVATE_TestingHooksSpiImpl.instance.onExistenceFilterMismatch(ee)}}class __PRIVATE_TestingHooksSpiImpl{constructor(){this.i=new Map}static get instance(){return _i||(_i=new __PRIVATE_TestingHooksSpiImpl,function __PRIVATE_setTestingHooksSpi(ee){if($n)throw new Error("a TestingHooksSpi instance is already set");$n=ee}(_i)),_i}Ie(ee){this.i.forEach((te=>te(ee)))}onExistenceFilterMismatch(ee){const te=Symbol(),ne=this.i;return ne.set(te,ee),()=>ne.delete(te)}}let _i=null;function __PRIVATE_selectablesToMap(ee){return new Map(Object.entries(__PRIVATE_selectablesToObject(ee)))}function __PRIVATE_selectablesToObject(ee){const te={};for(const ne of ee){let ee,re;if("string"==typeof ne?(ee=ne,re=e(ne)):ne instanceof o||ne instanceof c?(ee=ne.alias,re=ne.expr):l(21273,{selectable:ne}),void 0!==te[ee])throw new s("invalid-argument",`Duplicate alias or field '${ee}'`);te[ee]=re}return te}function __PRIVATE_fieldOrExpression(ee){return __PRIVATE_isString$1(ee)?e(ee):function __PRIVATE_valueToDefaultExpr(ee){let te;return u(ee)?i(ee):ee instanceof t?ee:(te=p(ee)?h(ee):ee instanceof Array?b(ee):function __PRIVATE_isPipeline$1(ee){return"object"==typeof ee&&null!==ee&&"function"==typeof ee.toArrayExpression}(ee)?function d(ee){return new __PRIVATE_PipelineValueExpression(ee)}(ee):m(ee,void 0),te)}(ee)}!function __PRIVATE_registerFirestore(ee,te=!0){(function __PRIVATE_setSDKVersion(ee){Cn=ee})(ie),re(new Component("firestore",((ee,{instanceIdentifier:ne,options:re})=>{const se=ee.getProvider("app").getImmediate(),ie=new da(new __PRIVATE_FirebaseAuthCredentialsProvider(ee.getProvider("auth-internal")),new __PRIVATE_FirebaseAppCheckTokenProvider(se,ee.getProvider("app-check-internal")),function __PRIVATE_databaseIdFromApp(ee,te){if(!Object.prototype.hasOwnProperty.apply(ee.options,["projectId"]))throw new s(gn.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new DatabaseId(ee.options.projectId,te)}(se,ne),se);return re={useFetchStreams:te,...re},ie._setSettings(re),ie}),"PUBLIC").setMultipleInstances(!0)),se(si,ii,ee),se(si,ii,"esm2020")}();let hi=class Pipeline{constructor(ee,te,ne,re){this._db=ee,this.userDataReader=te,this._userDataWriter=ne,this.stages=re}_readUserData(ee){this.stages.forEach((te=>{const ne=ee.contextWith({methodName:te._name});te._readUserData(ne)}))}addFields(ee,...te){let ne,re;f(ee)?(ne=[ee,...te],re={}):({fields:ne,...re}=ee);const se=__PRIVATE_selectablesToMap(ne),ie=new w(se,re);return this._addStage(ie)}removeFields(ee,...te){const ne=g(ee)||__PRIVATE_isString$1(ee)?{}:ee,re=(g(ee)||__PRIVATE_isString$1(ee)?[ee,...te]:ee.fields).map((ee=>__PRIVATE_isString$1(ee)?e(ee):ee)),se=new _(re,ne);return this._addStage(se)}define(ee,...te){const ne=T(ee)?{}:ee,re=__PRIVATE_selectablesToMap(T(ee)?[ee,...te]:ee.variables),se=new P(re,ne);return this._addStage(se)}toArrayExpression(){return new x("array",[__PRIVATE_fieldOrExpression(this)])}toScalarExpression(){return new x("scalar",[__PRIVATE_fieldOrExpression(this)])}select(ee,...te){const ne=f(ee)||__PRIVATE_isString$1(ee)?{}:ee,re=__PRIVATE_selectablesToMap(f(ee)||__PRIVATE_isString$1(ee)?[ee,...te]:ee.selections),se=new y(re,ne);return this._addStage(se)}where(ee){const te=E(ee)?{}:ee,ne=E(ee)?ee:ee.condition,re=new A(ne,te);return this._addStage(re)}offset(ee){let te,ne;__PRIVATE_isNumber$1(ee)?(te={},ne=ee):(te=ee,ne=ee.offset);const re=new I(ne,te);return this._addStage(re)}limit(ee){const te=__PRIVATE_isNumber$1(ee)?{}:ee,ne=__PRIVATE_isNumber$1(ee)?ee:ee.limit,re=new v(ne,te);return this._addStage(re)}distinct(ee,...te){const ne=__PRIVATE_isString$1(ee)||f(ee)?{}:ee,re=__PRIVATE_selectablesToMap(__PRIVATE_isString$1(ee)||f(ee)?[ee,...te]:ee.groups),se=new M(re,ne);return this._addStage(se)}aggregate(ee,...te){const ne=O(ee)?{}:ee,re=O(ee)?[ee,...te]:ee.accumulators,se=O(ee)?[]:ee.groups??[],ie=function __PRIVATE_aliasedAggregateToMap(ee){return ee.reduce(((ee,te)=>{if(void 0!==ee.get(te.alias))throw new s("invalid-argument",`Duplicate alias or field '${te.alias}'`);return ee.set(te.alias,te.aggregate),ee}),new Map)}(re),ae=__PRIVATE_selectablesToMap(se),oe=new V(ae,ie,ne);return this._addStage(oe)}findNearest(ee){const te=S(ee.field),ne=function __PRIVATE_vectorToExpr(ee){if(ee instanceof t)return ee;if(ee instanceof n)return i(ee);if(Array.isArray(ee))return i(r(ee));throw new Error("Unsupported value: "+typeof ee)}(ee.vectorValue),re={distanceField:ee.distanceField?S(ee.distanceField):void 0,limit:ee.limit,rawOptions:ee.rawOptions},se=new D(ne,te,ee.distanceMeasure,re);return this._addStage(se)}search(ee){const te=ee.addFields?__PRIVATE_selectablesToObject(ee.addFields):void 0,ne=j(ee.query)?ee.query:q(ee.query),re=F(ee.sort)?[ee.sort]:ee.sort,se={...ee,addFields:te,select:void 0,query:ne,sort:re},ie=new C(se);return this._addStage(ie)}sort(ee,...te){const ne=F(ee)?{}:ee,re=F(ee)?[ee,...te]:ee.orderings,se=new L(re,ne);return this._addStage(se)}replaceWith(ee){const te=__PRIVATE_isString$1(ee)||j(ee)?{}:ee,ne=__PRIVATE_fieldOrExpression(__PRIVATE_isString$1(ee)||j(ee)?ee:ee.map),re=new $(ne,te);return this._addStage(re)}sample(ee){const te=__PRIVATE_isNumber$1(ee)?{}:ee;let ne,re;__PRIVATE_isNumber$1(ee)?(ne=ee,re="documents"):__PRIVATE_isNumber$1(ee.documents)?(ne=ee.documents,re="documents"):(ne=ee.percentage,re="percent");const se=new N(ne,re,te);return this._addStage(se)}union(ee){let te,ne;!function __PRIVATE_isPipeline(ee){return ee instanceof hi}(ee)?({other:ne,...te}=ee):(te={},ne=ee);const re=new U(ne,te);return this._addStage(re)}unnest(ee,te){let ne,re,se;f(ee)?(ne={},re=ee,se=te):({selectable:re,indexField:se,...ne}=ee);const ie=re.alias,ae=re.expr;__PRIVATE_isString$1(se)&&(ne.indexField=G(se,"unnest"));const oe=new W(ie,ae,ne);return this._addStage(oe)}rawStage(ee,te,ne){const re=te.map((ee=>ee instanceof t||ee instanceof k?ee:p(ee)?function B(ee){const te=new Map;for(const ne in ee)if(Object.prototype.hasOwnProperty.call(ee,ne)){const re=ee[ne];te.set(ne,__PRIVATE_valueToDefaultExpr(re))}return new MapValue(te,void 0)}(ee):m(ee,"rawStage"))),se=new K(ee,re,ne??{});return this._addStage(se)}_toProto(ee){return{stages:this.stages.map((te=>te._toProto(ee)))}}_addStage(ee){const te=this.stages.map((ee=>ee));return te.push(ee),this.newPipeline(this._db,te)}newPipeline(ee,te){return new Pipeline(ee,this.userDataReader,this._userDataWriter,te)}};class PipelineSource{constructor(ee,te,ne){this.databaseId=ee,this.userDataReader=te,this._createPipeline=ne}collection(ee){const te=__PRIVATE_isString$1(ee)||z(ee)?{}:ee,ne=__PRIVATE_isString$1(ee)||z(ee)?ee:ee.collection;z(ne)&&this._validateReference(ne);const re=__PRIVATE_isString$1(ne)?ne:ne.path,se=new H(re,te),ie=this.userDataReader.createContext(3,"collection");return se._readUserData(ie),this._createPipeline([se])}collectionGroup(ee){let te,ne;__PRIVATE_isString$1(ee)?(te=ee,ne={}):({collectionId:te,...ne}=ee);const re=new J(te,ne),se=this.userDataReader.createContext(3,"collectionGroup");return re._readUserData(se),this._createPipeline([re])}database(ee){const te=new Q(ee=ee??{}),ne=this.userDataReader.createContext(3,"database");return te._readUserData(ne),this._createPipeline([te])}documents(ee){let te,ne;Array.isArray(ee)?(ne=ee,te={}):({docs:ne,...te}=ee),ne.filter((ee=>ee instanceof X)).forEach((ee=>this._validateReference(ee)));const re=ne.map((ee=>__PRIVATE_isString$1(ee)?ee:ee.path)),se=new Y(re,te),ie=this.userDataReader.createContext(3,"documents");return se._readUserData(ie),this._createPipeline([se])}createFrom(ee){return this._createPipeline(function Z(ee,te){let ne;ne=__PRIVATE_isCollectionGroupQuery(ee)?te.pipeline().collectionGroup(ee.collectionGroup):__PRIVATE_isDocumentQuery$1(ee)?te.pipeline().documents([doc(te,ee.path.canonicalString())]):te.pipeline().collection(ee.path.canonicalString());for(const te of ee.filters)ne=ne.where(__PRIVATE_toPipelineBooleanExpr(te));const re=__PRIVATE_queryNormalizedOrderBy(ee),se=re.map((ee=>e(ee.field.canonicalString()).exists()));ne=se.length>1?ne.where(and$1(se[0],se[1],...se.slice(2))):ne.where(se[0]);const ie=re.map((ee=>"asc"===ee.dir?e(ee.field.canonicalString()).ascending():e(ee.field.canonicalString()).descending()));if(ie.length>0)if("L"===ee.limitType){const te=function __PRIVATE_reverseOrderings(ee){return ee.map((ee=>new Ordering(ee.expr,"ascending"===ee.direction?"descending":"ascending",void 0)))}(ie);ne=ne.sort(te[0],...te.slice(1)),null!==ee.startAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.startAt,ie,"after"))),null!==ee.endAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.endAt,ie,"before"))),ne=ne.limit(ee.limit),ne=ne.sort(ie[0],...ie.slice(1))}else ne=ne.sort(ie[0],...ie.slice(1)),null!==ee.startAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.startAt,ie,"after"))),null!==ee.endAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.endAt,ie,"before"))),null!==ee.limit&&(ne=ne.limit(ee.limit));return ne.stages}(ee._query,ee.firestore))}_validateReference(ee){const te=ee.firestore._databaseId;if(!te.isEqual(this.databaseId))throw new s(gn.INVALID_ARGUMENT,`Invalid ${ee instanceof ea?"CollectionReference":"DocumentReference"}. The project ID ("${te.projectId}") or the database ("${te.database}") does not match the project ID ("${this.databaseId.projectId}") and database ("${this.databaseId.database}") of the target database of this Pipeline.`)}}class PipelineSnapshot{constructor(ee,te,ne){this._pipeline=ee,this._executionTime=ne,this._results=te}get results(){return this._results}get executionTime(){if(void 0===this._executionTime)throw new Error("'executionTime' is expected to exist, but it is undefined");return this._executionTime}}class PipelineResult{constructor(ee,te,ne,re,se,ie,ae){this._ref=ne,this._userDataWriter=ee,this._createTime=re,this._updateTime=se,this._fields=te,this._metadata=ie,this._listenOptions=ae}static fromDocument(ee,te,ne,re,se){return new PipelineResult(ee,te.data,ne,te.createTime.toTimestamp(),te.version.toTimestamp(),re,se)}get ref(){return this._ref}get id(){return this._ref?.id}get createTime(){return this._createTime}get updateTime(){return this._updateTime}data(){return this._userDataWriter.convertValue(this._fields.value,this._listenOptions?.serverTimestampBehavior)}_fieldsProto(){return this._fields.clone().value.mapValue.fields}get(ee){if(void 0===this._fields)return;g(ee)&&(ee=ee.fieldName);const te=this._fields.field(ta("DocumentSnapshot.get",ee));return null!==te?this._userDataWriter.convertValue(te,this._listenOptions?.serverTimestampBehavior):void 0}}class Pipeline extends hi{newPipeline(ee,te){return new Pipeline(ee,this.userDataReader,this._userDataWriter,te)}}da.prototype.pipeline=function(){const ee=la(this);return new PipelineSource(this._databaseId,ee,(te=>new Pipeline(this,ee,new ua(this),te)))};var di=Object.freeze({__proto__:null,AggregateFunction:k,AliasedAggregate:AliasedAggregate,AliasedExpression:c,BooleanExpression:BooleanExpression,Expression:t,Field:o,FunctionExpression:x,Ordering:Ordering,Pipeline:Pipeline,PipelineResult:PipelineResult,PipelineSnapshot:PipelineSnapshot,PipelineSource:PipelineSource,_internalPipelineToExecutePipelineRequestProto:function _internalPipelineToExecutePipelineRequestProto(ee){if(!ee._db)throw new s(gn.FAILED_PRECONDITION,"This pipeline was created without a database and cannot be serialized for execution.");const te=ra(ee._db,da),ne=la(te).createContext(3,"_internalPipelineToExecutePipelineRequestProto");ee._readUserData(ne);const re=function __PRIVATE_getDatastore$1(ee){if(ee._terminated)throw new s(gn.FAILED_PRECONDITION,"The client has already been terminated.");if(!lr.has(ee)){__PRIVATE_logDebug(Br,"Initializing Datastore");const te=__PRIVATE_newConnection(__PRIVATE_makeDatabaseInfo(ee._databaseId,ee.app.options.appId||"",ee._persistenceKey,ee.app.options.apiKey,ee._freezeSettings())),ne=__PRIVATE_newSerializer(ee._databaseId),re=__PRIVATE_newDatastore(ee._authCredentials,ee._appCheckCredentials,te,ne);lr.set(ee,re)}return lr.get(ee)}(te),se=re.serializer;if(void 0===se)return null;const ie=new ma(ee,new pa);return{database:__PRIVATE_getEncodedDatabaseId(se),structuredPipeline:ie._toProto(se)}},abs:function abs(ee){return __PRIVATE_fieldOrExpression$1(ee).abs()},add:function add(ee,te){return __PRIVATE_fieldOrExpression$1(ee).add(__PRIVATE_valueToDefaultExpr(te))},and:and$1,array:b,arrayAgg:function arrayAgg(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayAgg()},arrayAggDistinct:function arrayAggDistinct(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayAggDistinct()},arrayConcat:function arrayConcat(ee,te,...ne){const re=ne.map((ee=>__PRIVATE_valueToDefaultExpr(ee)));return __PRIVATE_fieldOrExpression$1(ee).arrayConcat(__PRIVATE_fieldOrExpression$1(te),...re)},arrayContains:function arrayContains(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.arrayContains(re)},arrayContainsAll:function arrayContainsAll(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayContainsAll(te)},arrayContainsAny:function arrayContainsAny(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayContainsAny(te)},arrayFilter:function arrayFilter(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).arrayFilter(te,ne)},arrayFirst:function arrayFirst(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayFirst()},arrayFirstN:function arrayFirstN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayFirstN(__PRIVATE_valueToDefaultExpr(te))},arrayGet:function arrayGet(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayGet(__PRIVATE_valueToDefaultExpr(te))},arrayIndexOf:function arrayIndexOf(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayIndexOf(__PRIVATE_valueToDefaultExpr(te))},arrayIndexOfAll:function arrayIndexOfAll(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayIndexOfAll(__PRIVATE_valueToDefaultExpr(te))},arrayLast:function arrayLast(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayLast()},arrayLastIndexOf:function arrayLastIndexOf(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayLastIndexOf(__PRIVATE_valueToDefaultExpr(te))},arrayLastN:function arrayLastN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayLastN(__PRIVATE_valueToDefaultExpr(te))},arrayLength:function arrayLength(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayLength()},arrayMaximum:function arrayMaximum(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayMaximum()},arrayMaximumN:function arrayMaximumN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayMaximumN(__PRIVATE_valueToDefaultExpr(te))},arrayMinimum:function arrayMinimum(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayMinimum()},arrayMinimumN:function arrayMinimumN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayMinimumN(__PRIVATE_valueToDefaultExpr(te))},arraySlice:function arraySlice(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).arraySlice(te,ne)},arraySum:function arraySum(ee){return __PRIVATE_fieldOrExpression$1(ee).arraySum()},arrayTransform:function arrayTransform(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).arrayTransform(te,ne)},arrayTransformWithIndex:function arrayTransformWithIndex(ee,te,ne,re){return __PRIVATE_fieldOrExpression$1(ee).arrayTransformWithIndex(te,ne,re)},ascending:ascending,average:function average$1(ee){return __PRIVATE_fieldOrExpression$1(ee).average()},byteLength:function byteLength(ee){return __PRIVATE_fieldOrExpression$1(ee).byteLength()},ceil:function ceil(ee){return __PRIVATE_fieldOrExpression$1(ee).ceil()},charLength:function charLength(ee){return __PRIVATE_fieldOrExpression$1(ee).charLength()},coalesce:function coalesce(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).coalesce(te,...ne)},collectionId:function collectionId(ee){return __PRIVATE_fieldOrExpression$1(ee).collectionId()},concat:function concat(ee,te,...ne){return new x("concat",[__PRIVATE_fieldOrExpression$1(ee),__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr)])},conditional:function conditional(ee,te,ne){return new x("conditional",[ee,te,ne],"conditional")},constant:i,cosineDistance:function cosineDistance(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_vectorToExpr(te);return ne.cosineDistance(re)},count:function count$1(ee){return __PRIVATE_fieldOrExpression$1(ee).count()},countAll:function countAll(){return k._create("count",[],"count")},countDistinct:function countDistinct(ee){return __PRIVATE_fieldOrExpression$1(ee).countDistinct()},countIf:function countIf(ee){return ee.countIf()},currentDocument:function currentDocument(){return new x("current_document",[])},currentTimestamp:function currentTimestamp(){return new x("current_timestamp",[],"currentTimestamp")},descending:descending,divide:function divide(ee,te){const ne="string"==typeof ee?e(ee):ee,re=__PRIVATE_valueToDefaultExpr(te);return ne.divide(re)},documentId:function documentId(ee){return __PRIVATE_valueToDefaultExpr(ee).documentId()},documentMatches:q,dotProduct:function dotProduct(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_vectorToExpr(te);return ne.dotProduct(re)},endsWith:function endsWith(ee,te){return __PRIVATE_fieldOrExpression$1(ee).endsWith(__PRIVATE_valueToDefaultExpr(te))},equal:function equal(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.equal(re)},equalAny:function equalAny(ee,te){return __PRIVATE_fieldOrExpression$1(ee).equalAny(te)},euclideanDistance:function euclideanDistance(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_vectorToExpr(te);return ne.euclideanDistance(re)},execute:function execute(ee){const te=ee instanceof hi?{pipeline:ee}:ee,{pipeline:ne,rawOptions:re,...se}=te;if(!ne._db)return Promise.reject(new s(gn.FAILED_PRECONDITION,"This pipeline was created without a database (e.g., as a subcollection pipeline) and cannot be executed directly. It can only be used as part of another pipeline."));const ie=ra(ne._db,da),ae=oa(ie),oe=la(ie).createContext(3,"execute");ne._readUserData(oe);const ue=new ua(ie),Be=new pa(se,re);return Be._readUserData(oe),function ha(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>{try{const re=await __PRIVATE_getDatastore(ee);ne.resolve(async function __PRIVATE_invokeExecutePipeline(ee,te){const ne=__PRIVATE_debugCast(ee),re={database:__PRIVATE_getEncodedDatabaseId(ne.serializer),structuredPipeline:te._toProto(ne.serializer)},se=await ne.st("ExecutePipeline",ne.serializer.databaseId,ResourcePath.emptyPath(),re),ie=[];return se.forEach((ee=>{if(ee.results&&0!==ee.results.length)return ee.results.forEach((te=>ie.push(__PRIVATE_fromPipelineResponse(ne.serializer,ee,te))));ie.push(__PRIVATE_fromPipelineResponse(ne.serializer,ee))})),ie}(re,te))}catch(ee){ne.reject(ee)}})),ne.promise}(ae,new ma(ne,Be)).then((ee=>{const te=ee.length>0?ee[0].executionTime?.toTimestamp():void 0,re=ee.filter((ee=>!!ee.fields)).map((ee=>new PipelineResult(ue,ee.fields,ee.key?.path?new X(ie,null,ee.key):void 0,ee.createTime?.toTimestamp(),ee.updateTime?.toTimestamp())));return new PipelineSnapshot(ne,re,te)}))},exists:function exists(ee){return __PRIVATE_fieldOrExpression$1(ee).exists()},exp:function exp(ee){return __PRIVATE_fieldOrExpression$1(ee).exp()},field:e,first:function first(ee){return __PRIVATE_fieldOrExpression$1(ee).first()},floor:function floor(ee){return __PRIVATE_fieldOrExpression$1(ee).floor()},geoDistance:function geoDistance(ee,te){return S(ee).geoDistance(te)},greaterThan:greaterThan,greaterThanOrEqual:function greaterThanOrEqual(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.greaterThanOrEqual(re)},ifAbsent:function ifAbsent(ee,te){return __PRIVATE_fieldOrExpression$1(ee).ifAbsent(__PRIVATE_valueToDefaultExpr(te))},ifError:function ifError(ee,te){return ee instanceof BooleanExpression&&te instanceof BooleanExpression?ee.ifError(te).asBoolean():ee.ifError(__PRIVATE_valueToDefaultExpr(te))},ifNull:function ifNull(ee,te){return __PRIVATE_fieldOrExpression$1(ee).ifNull(te)},isAbsent:function isAbsent(ee){return __PRIVATE_fieldOrExpression$1(ee).isAbsent()},isError:function isError(ee){return ee.isError().asBoolean()},isType:function isType(ee,te){return __PRIVATE_fieldOrExpression$1(ee).isType(te)},join:function join(ee,te){return __PRIVATE_fieldOrExpression$1(ee).join(__PRIVATE_valueToDefaultExpr(te))},last:function last(ee){return __PRIVATE_fieldOrExpression$1(ee).last()},length:function length(ee){return __PRIVATE_fieldOrExpression$1(ee).length()},lessThan:lessThan,lessThanOrEqual:function lessThanOrEqual(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.lessThanOrEqual(re)},like:function like(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.like(re)},ln:function ln(ee){return __PRIVATE_fieldOrExpression$1(ee).ln()},log:function log(ee,te){return new x("log",[__PRIVATE_fieldOrExpression$1(ee),__PRIVATE_valueToDefaultExpr(te)])},log10:function log10(ee){return __PRIVATE_fieldOrExpression$1(ee).log10()},logicalMaximum:function logicalMaximum(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).logicalMaximum(__PRIVATE_valueToDefaultExpr(te),...ne.map((ee=>__PRIVATE_valueToDefaultExpr(ee))))},logicalMinimum:function logicalMinimum(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).logicalMinimum(__PRIVATE_valueToDefaultExpr(te),...ne.map((ee=>__PRIVATE_valueToDefaultExpr(ee))))},ltrim:function ltrim(ee,te){return __PRIVATE_fieldOrExpression$1(ee).ltrim(te)},map:h,mapEntries:function mapEntries(ee){return __PRIVATE_fieldOrExpression$1(ee).mapEntries()},mapGet:function mapGet(ee,te){return __PRIVATE_fieldOrExpression$1(ee).mapGet(te)},mapKeys:function mapKeys(ee){return __PRIVATE_fieldOrExpression$1(ee).mapKeys()},mapMerge:function mapMerge(ee,te,...ne){const re=__PRIVATE_valueToDefaultExpr(te),se=ne.map(__PRIVATE_valueToDefaultExpr);return __PRIVATE_fieldOrExpression$1(ee).mapMerge(re,...se)},mapRemove:function mapRemove(ee,te){return __PRIVATE_fieldOrExpression$1(ee).mapRemove(__PRIVATE_valueToDefaultExpr(te))},mapSet:function mapSet(ee,te,ne,...re){return __PRIVATE_fieldOrExpression$1(ee).mapSet(te,ne,...re)},mapValues:function mapValues(ee){return __PRIVATE_fieldOrExpression$1(ee).mapValues()},maximum:function maximum(ee){return __PRIVATE_fieldOrExpression$1(ee).maximum()},minimum:function minimum(ee){return __PRIVATE_fieldOrExpression$1(ee).minimum()},mod:function mod(ee,te){const ne="string"==typeof ee?e(ee):ee,re=__PRIVATE_valueToDefaultExpr(te);return ne.mod(re)},multiply:function multiply(ee,te){return __PRIVATE_fieldOrExpression$1(ee).multiply(__PRIVATE_valueToDefaultExpr(te))},nor:function nor(ee,te,...ne){return new x("nor",[ee,te,...ne],"nor").asBoolean()},not:function not(ee){return ee.not()},notEqual:function notEqual(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.notEqual(re)},notEqualAny:function notEqualAny(ee,te){return __PRIVATE_fieldOrExpression$1(ee).notEqualAny(te)},or:or$1,parent:function parent(ee){return __PRIVATE_valueToDefaultExpr(ee).parent()},pipelineResultEqual:function pipelineResultEqual(ee,te){return ee===te||na(ee._ref,te._ref,ia)&&na(ee._fields,te._fields,((ee,te)=>ee.isEqual(te)))},pow:function pow(ee,te){return __PRIVATE_fieldOrExpression$1(ee).pow(te)},rand:function rand(){return new x("rand",[],"rand")},regexContains:function regexContains(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexContains(re)},regexFind:function regexFind(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexFind(re)},regexFindAll:function regexFindAll(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexFindAll(re)},regexMatch:function regexMatch(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexMatch(re)},reverse:function reverse(ee){return __PRIVATE_fieldOrExpression$1(ee).reverse()},round:function round(ee,te){return void 0===te?__PRIVATE_fieldOrExpression$1(ee).round():__PRIVATE_fieldOrExpression$1(ee).round(__PRIVATE_valueToDefaultExpr(te))},rtrim:function rtrim(ee,te){return __PRIVATE_fieldOrExpression$1(ee).rtrim(te)},score:function score(){return new x("score",[],"score")},split:function split(ee,te){return __PRIVATE_fieldOrExpression$1(ee).split(__PRIVATE_valueToDefaultExpr(te))},sqrt:function sqrt(ee){return __PRIVATE_fieldOrExpression$1(ee).sqrt()},startsWith:function startsWith(ee,te){return __PRIVATE_fieldOrExpression$1(ee).startsWith(__PRIVATE_valueToDefaultExpr(te))},stringConcat:function stringConcat(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).stringConcat(__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr))},stringContains:function stringContains(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.stringContains(re)},stringIndexOf:function stringIndexOf(ee,te){return __PRIVATE_fieldOrExpression$1(ee).stringIndexOf(te)},stringRepeat:function stringRepeat(ee,te){return __PRIVATE_fieldOrExpression$1(ee).stringRepeat(te)},stringReplaceAll:function stringReplaceAll(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).stringReplaceAll(te,ne)},stringReplaceOne:function stringReplaceOne(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).stringReplaceOne(te,ne)},stringReverse:function stringReverse(ee){return __PRIVATE_fieldOrExpression$1(ee).stringReverse()},subcollection:function subcollection(ee){let te,ne;__PRIVATE_isString$1(ee)?(te=ee,ne={}):({path:te,...ne}=ee);const re=new sa(te,ne);return new hi(void 0,void 0,void 0,[re])},substring:function substring(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_valueToDefaultExpr(te),ie=void 0===ne?void 0:__PRIVATE_valueToDefaultExpr(ne);return re.substring(se,ie)},subtract:function subtract(ee,te){const ne="string"==typeof ee?e(ee):ee,re=__PRIVATE_valueToDefaultExpr(te);return ne.subtract(re)},sum:function sum$1(ee){return __PRIVATE_fieldOrExpression$1(ee).sum()},switchOn:function switchOn(ee,te,...ne){return new x("switch_on",[__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr)],"switchOn")},timestampAdd:function timestampAdd(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_valueToDefaultExpr(te),ie=__PRIVATE_valueToDefaultExpr(ne);return re.timestampAdd(se,ie)},timestampDiff:function timestampDiff(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_fieldOrExpression$1(te),ie=__PRIVATE_valueToDefaultExpr(ne);return re.timestampDiff(se,ie)},timestampExtract:function timestampExtract(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).timestampExtract(__PRIVATE_valueToDefaultExpr(te),ne)},timestampSubtract:function timestampSubtract(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_valueToDefaultExpr(te),ie=__PRIVATE_valueToDefaultExpr(ne);return re.timestampSubtract(se,ie)},timestampToUnixMicros:function timestampToUnixMicros(ee){return __PRIVATE_fieldOrExpression$1(ee).timestampToUnixMicros()},timestampToUnixMillis:function timestampToUnixMillis(ee){return __PRIVATE_fieldOrExpression$1(ee).timestampToUnixMillis()},timestampToUnixSeconds:function timestampToUnixSeconds(ee){return __PRIVATE_fieldOrExpression$1(ee).timestampToUnixSeconds()},timestampTruncate:function timestampTruncate(ee,te,ne){const re=__PRIVATE_isString$1(te)?__PRIVATE_valueToDefaultExpr(te):te;return __PRIVATE_fieldOrExpression$1(ee).timestampTruncate(re,ne)},toLower:function toLower(ee){return __PRIVATE_fieldOrExpression$1(ee).toLower()},toUpper:function toUpper(ee){return __PRIVATE_fieldOrExpression$1(ee).toUpper()},trim:function trim(ee,te){return __PRIVATE_fieldOrExpression$1(ee).trim(te)},trunc:function trunc(ee,te){return void 0===te?__PRIVATE_fieldOrExpression$1(ee).trunc():__PRIVATE_fieldOrExpression$1(ee).trunc(__PRIVATE_valueToDefaultExpr(te))},type:function type(ee){return __PRIVATE_fieldOrExpression$1(ee).type()},unixMicrosToTimestamp:function unixMicrosToTimestamp(ee){return __PRIVATE_fieldOrExpression$1(ee).unixMicrosToTimestamp()},unixMillisToTimestamp:function unixMillisToTimestamp(ee){return __PRIVATE_fieldOrExpression$1(ee).unixMillisToTimestamp()},unixSecondsToTimestamp:function unixSecondsToTimestamp(ee){return __PRIVATE_fieldOrExpression$1(ee).unixSecondsToTimestamp()},variable:function variable(ee){return new __PRIVATE_VariableExpression(ee)},vectorLength:function vectorLength(ee){return __PRIVATE_fieldOrExpression$1(ee).vectorLength()},xor:function xor(ee,te,...ne){return new x("xor",[ee,te,...ne],"xor").asBoolean()}});export{AbstractUserDataWriter,AggregateField,AggregateQuerySnapshot,Bytes,ri as CACHE_SIZE_UNLIMITED,ea as CollectionReference,X as DocumentReference,DocumentSnapshot,FieldPath,FieldValue,da as Firestore,s as FirestoreError,GeoPoint,LoadBundleTask,PersistentCacheIndexManager,Query,QueryCompositeFilterConstraint,QueryConstraint,QueryDocumentSnapshot,QueryEndAtConstraint,QueryFieldFilterConstraint,QueryLimitConstraint,QueryOrderByConstraint,QuerySnapshot,QueryStartAtConstraint,SnapshotMetadata,Timestamp,Transaction,n as VectorValue,WriteBatch,__PRIVATE_AutoId as _AutoId,ByteString as _ByteString,DatabaseId as _DatabaseId,DocumentKey as _DocumentKey,__PRIVATE_EmptyAppCheckTokenProvider as _EmptyAppCheckTokenProvider,__PRIVATE_EmptyAuthCredentialsProvider as _EmptyAuthCredentialsProvider,An as _FieldPath,TestingHooks as _TestingHooks,ra as _cast,__PRIVATE_debugAssert as _debugAssert,_internalAggregationQueryToProtoRunAggregationQueryRequest,_internalQueryToProtoQueryTarget,__PRIVATE_isBase64Available as _isBase64Available,__PRIVATE_logWarn as _logWarn,__PRIVATE_validateIsNotUsedTogether as _validateIsNotUsedTogether,addDoc,aggregateFieldEqual,aggregateQuerySnapshotEqual,and,arrayRemove,arrayUnion,average,clearIndexedDbPersistence,collection,collectionGroup,connectFirestoreEmulator,count,deleteAllPersistentCacheIndexes,deleteDoc,deleteField,disableNetwork,disablePersistentCacheIndexAutoCreation,doc,documentId$1 as documentId,documentSnapshotFromJSON,enableIndexedDbPersistence,enableMultiTabIndexedDbPersistence,enableNetwork,enablePersistentCacheIndexAutoCreation,endAt,endBefore,oa as ensureFirestoreConfigured,executeWrite,getAggregateFromServer,getCountFromServer,getDoc,getDocFromCache,getDocFromServer,getDocs,getDocsFromCache,getDocsFromServer,getFirestore,getPersistentCacheIndexManager,increment,initializeFirestore,limit,limitToLast,loadBundle,maximum$1 as maximum,memoryEagerGarbageCollector,memoryLocalCache,memoryLruGarbageCollector,minimum$1 as minimum,namedQuery,onSnapshot,onSnapshotResume,onSnapshotsInSync,or,orderBy,persistentLocalCache,persistentMultipleTabManager,persistentSingleTabManager,di as pipelines,query,queryEqual,querySnapshotFromJSON,ia as refEqual,runTransaction,serverTimestamp,setDoc,setIndexConfiguration,setLogLevel,snapshotEqual,startAfter,startAt,sum,terminate,updateDoc,r as vector,waitForPendingWrites,where,writeBatch};
1
+ import{_isFirebaseServerApp as ee,getApp as te,_getProvider,_removeServiceInstance as ne,_registerComponent as re,registerVersion as se,SDK_VERSION as ie}from"https://www.gstatic.com/firebasejs/12.17.1/firebase-app.js";const stringToByteArray$1=function(ee){const te=[];let ne=0;for(let re=0;re<ee.length;re++){let se=ee.charCodeAt(re);se<128?te[ne++]=se:se<2048?(te[ne++]=se>>6|192,te[ne++]=63&se|128):55296==(64512&se)&&re+1<ee.length&&56320==(64512&ee.charCodeAt(re+1))?(se=65536+((1023&se)<<10)+(1023&ee.charCodeAt(++re)),te[ne++]=se>>18|240,te[ne++]=se>>12&63|128,te[ne++]=se>>6&63|128,te[ne++]=63&se|128):(te[ne++]=se>>12|224,te[ne++]=se>>6&63|128,te[ne++]=63&se|128)}return te},ae={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(ee,te){if(!Array.isArray(ee))throw Error("encodeByteArray takes an array as a parameter");this.init_();const ne=te?this.byteToCharMapWebSafe_:this.byteToCharMap_,re=[];for(let te=0;te<ee.length;te+=3){const se=ee[te],ie=te+1<ee.length,ae=ie?ee[te+1]:0,oe=te+2<ee.length,ue=oe?ee[te+2]:0,Be=se>>2,le=(3&se)<<4|ae>>4;let ce=(15&ae)<<2|ue>>6,_e=63&ue;oe||(_e=64,ie||(ce=64)),re.push(ne[Be],ne[le],ne[ce],ne[_e])}return re.join("")},encodeString(ee,te){return this.HAS_NATIVE_SUPPORT&&!te?btoa(ee):this.encodeByteArray(stringToByteArray$1(ee),te)},decodeString(ee,te){return this.HAS_NATIVE_SUPPORT&&!te?atob(ee):function(ee){const te=[];let ne=0,re=0;for(;ne<ee.length;){const se=ee[ne++];if(se<128)te[re++]=String.fromCharCode(se);else if(se>191&&se<224){const ie=ee[ne++];te[re++]=String.fromCharCode((31&se)<<6|63&ie)}else if(se>239&&se<365){const ie=((7&se)<<18|(63&ee[ne++])<<12|(63&ee[ne++])<<6|63&ee[ne++])-65536;te[re++]=String.fromCharCode(55296+(ie>>10)),te[re++]=String.fromCharCode(56320+(1023&ie))}else{const ie=ee[ne++],ae=ee[ne++];te[re++]=String.fromCharCode((15&se)<<12|(63&ie)<<6|63&ae)}}return te.join("")}(this.decodeStringToByteArray(ee,te))},decodeStringToByteArray(ee,te){this.init_();const ne=te?this.charToByteMapWebSafe_:this.charToByteMap_,re=[];for(let te=0;te<ee.length;){const se=ne[ee.charAt(te++)],ie=te<ee.length?ne[ee.charAt(te)]:0;++te;const ae=te<ee.length?ne[ee.charAt(te)]:64;++te;const oe=te<ee.length?ne[ee.charAt(te)]:64;if(++te,null==se||null==ie||null==ae||null==oe)throw new DecodeBase64StringError;const ue=se<<2|ie>>4;if(re.push(ue),64!==ae){const ee=ie<<4&240|ae>>2;if(re.push(ee),64!==oe){const ee=ae<<6&192|oe;re.push(ee)}}}return re},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let ee=0;ee<this.ENCODED_VALS.length;ee++)this.byteToCharMap_[ee]=this.ENCODED_VALS.charAt(ee),this.charToByteMap_[this.byteToCharMap_[ee]]=ee,this.byteToCharMapWebSafe_[ee]=this.ENCODED_VALS_WEBSAFE.charAt(ee),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[ee]]=ee,ee>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(ee)]=ee,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(ee)]=ee)}}};class DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const base64urlEncodeWithoutPadding=function(ee){return function(ee){const te=stringToByteArray$1(ee);return ae.encodeByteArray(te,!0)}(ee).replace(/\./g,"")};function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}const getDefaultsFromCookie=()=>{if("undefined"==typeof document)return;let ee;try{ee=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(ee){return}const te=ee&&function(ee){try{return ae.decodeString(ee,!0)}catch(ee){console.error("base64Decode failed: ",ee)}return null}(ee[1]);return te&&JSON.parse(te)},getDefaults=()=>{try{return getGlobal().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const ee=process.env.__FIREBASE_DEFAULTS__;return ee?JSON.parse(ee):void 0})()||getDefaultsFromCookie()}catch(ee){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${ee}`)}},getDefaultEmulatorHostnameAndPort=ee=>{const te=(ee=>getDefaults()?.emulatorHosts?.[ee])(ee);if(!te)return;const ne=te.lastIndexOf(":");if(ne<=0||ne+1===te.length)throw new Error(`Invalid host ${te} with no separate hostname and port!`);const re=parseInt(te.substring(ne+1),10);return"["===te[0]?[te.substring(1,ne-1),re]:[te.substring(0,ne),re]};function getUA(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function isNode(){const ee=getDefaults()?.forceEnvironment;if("node"===ee)return!0;if("browser"===ee)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(ee){return!1}}function isSafari(){return!isNode()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function isSafariOrWebkit(){return!isNode()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}class FirebaseError extends Error{constructor(ee,te,ne){super(te),this.code=ee,this.customData=ne,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(ee,te,ne){this.service=ee,this.serviceName=te,this.errors=ne}create(ee,...te){const ne=te[0]||{},re=`${this.service}/${ee}`,se=this.errors[ee],ie=se?function replaceTemplate(ee,te){try{let ne=0,re="";for(;ne<ee.length;){const se=ee.indexOf("{$",ne);if(-1===se){re+=ee.substring(ne);break}const ie=ee.indexOf("}",se+2);if(-1===ie){re+=ee.substring(ne);break}const ae=ee.substring(se+2,ie),oe=te[ae];re+=ee.substring(ne,se)+(null!=oe?String(oe):`<${ae}?>`),ne=ie+1}return re}catch(te){return ee}}(se,ne):"Error",ae=`${this.serviceName}: ${ie} (${re}).`;return new FirebaseError(re,ae,ne)}}function deepEqual(ee,te){if(ee===te)return!0;const ne=Object.keys(ee),re=Object.keys(te);for(const se of ne){if(!re.includes(se))return!1;const ne=ee[se],ie=te[se];if(isObject(ne)&&isObject(ie)){if(!deepEqual(ne,ie))return!1}else if(ne!==ie)return!1}for(const ee of re)if(!ne.includes(ee))return!1;return!0}function isObject(ee){return null!==ee&&"object"==typeof ee}function getModularInstance(ee){return ee&&ee._delegate?ee._delegate:ee}function isCloudWorkstation(ee){try{return(ee.startsWith("http://")||ee.startsWith("https://")?new URL(ee).hostname:ee).endsWith(".cloudworkstations.dev")}catch{return!1}}async function pingServer(ee){return(await fetch(ee,{credentials:"include"})).ok}class Component{constructor(ee,te,ne){this.name=ee,this.instanceFactory=te,this.type=ne,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(ee){return this.instantiationMode=ee,this}setMultipleInstances(ee){return this.multipleInstances=ee,this}setServiceProps(ee){return this.serviceProps=ee,this}setInstanceCreatedCallback(ee){return this.onInstanceCreated=ee,this}}var oe,ue,Be,le="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var ee;function m(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(ee,te,ne){ne||(ne=0);const re=Array(16);if("string"==typeof te)for(var se=0;se<16;++se)re[se]=te.charCodeAt(ne++)|te.charCodeAt(ne++)<<8|te.charCodeAt(ne++)<<16|te.charCodeAt(ne++)<<24;else for(se=0;se<16;++se)re[se]=te[ne++]|te[ne++]<<8|te[ne++]<<16|te[ne++]<<24;te=ee.g[0],ne=ee.g[1],se=ee.g[2];let ie,ae=ee.g[3];ie=te+(ae^ne&(se^ae))+re[0]+3614090360&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[1]+3905402710&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[2]+606105819&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[3]+3250441966&4294967295,ie=te+(ae^(ne=se+(ie<<22&4294967295|ie>>>10))&(se^ae))+re[4]+4118548399&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[5]+1200080426&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[6]+2821735955&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[7]+4249261313&4294967295,ie=te+(ae^(ne=se+(ie<<22&4294967295|ie>>>10))&(se^ae))+re[8]+1770035416&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[9]+2336552879&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[10]+4294925233&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[11]+2304563134&4294967295,ie=te+(ae^(ne=se+(ie<<22&4294967295|ie>>>10))&(se^ae))+re[12]+1804603682&4294967295,ie=ae+(se^(te=ne+(ie<<7&4294967295|ie>>>25))&(ne^se))+re[13]+4254626195&4294967295,ae=te+(ie<<12&4294967295|ie>>>20),ie=se+(ne^ae&(te^ne))+re[14]+2792965006&4294967295,ie=ne+(te^(se=ae+(ie<<17&4294967295|ie>>>15))&(ae^te))+re[15]+1236535329&4294967295,ie=te+(se^ae&((ne=se+(ie<<22&4294967295|ie>>>10))^se))+re[1]+4129170786&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[6]+3225465664&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[11]+643717713&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[0]+3921069994&4294967295,ie=te+(se^ae&((ne=se+(ie<<20&4294967295|ie>>>12))^se))+re[5]+3593408605&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[10]+38016083&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[15]+3634488961&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[4]+3889429448&4294967295,ie=te+(se^ae&((ne=se+(ie<<20&4294967295|ie>>>12))^se))+re[9]+568446438&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[14]+3275163606&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[3]+4107603335&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[8]+1163531501&4294967295,ie=te+(se^ae&((ne=se+(ie<<20&4294967295|ie>>>12))^se))+re[13]+2850285829&4294967295,ie=ae+(ne^se&((te=ne+(ie<<5&4294967295|ie>>>27))^ne))+re[2]+4243563512&4294967295,ae=te+(ie<<9&4294967295|ie>>>23),ie=se+(te^ne&(ae^te))+re[7]+1735328473&4294967295,ie=ne+(ae^te&((se=ae+(ie<<14&4294967295|ie>>>18))^ae))+re[12]+2368359562&4294967295,ie=te+((ne=se+(ie<<20&4294967295|ie>>>12))^se^ae)+re[5]+4294588738&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[8]+2272392833&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[11]+1839030562&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[14]+4259657740&4294967295,ie=te+((ne=se+(ie<<23&4294967295|ie>>>9))^se^ae)+re[1]+2763975236&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[4]+1272893353&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[7]+4139469664&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[10]+3200236656&4294967295,ie=te+((ne=se+(ie<<23&4294967295|ie>>>9))^se^ae)+re[13]+681279174&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[0]+3936430074&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[3]+3572445317&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[6]+76029189&4294967295,ie=te+((ne=se+(ie<<23&4294967295|ie>>>9))^se^ae)+re[9]+3654602809&4294967295,ie=ae+((te=ne+(ie<<4&4294967295|ie>>>28))^ne^se)+re[12]+3873151461&4294967295,ae=te+(ie<<11&4294967295|ie>>>21),ie=se+(ae^te^ne)+re[15]+530742520&4294967295,ie=ne+((se=ae+(ie<<16&4294967295|ie>>>16))^ae^te)+re[2]+3299628645&4294967295,ie=te+(se^((ne=se+(ie<<23&4294967295|ie>>>9))|~ae))+re[0]+4096336452&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[7]+1126891415&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[14]+2878612391&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[5]+4237533241&4294967295,ie=te+(se^((ne=se+(ie<<21&4294967295|ie>>>11))|~ae))+re[12]+1700485571&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[3]+2399980690&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[10]+4293915773&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[1]+2240044497&4294967295,ie=te+(se^((ne=se+(ie<<21&4294967295|ie>>>11))|~ae))+re[8]+1873313359&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[15]+4264355552&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[6]+2734768916&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[13]+1309151649&4294967295,ie=te+(se^((ne=se+(ie<<21&4294967295|ie>>>11))|~ae))+re[4]+4149444226&4294967295,ie=ae+(ne^((te=ne+(ie<<6&4294967295|ie>>>26))|~se))+re[11]+3174756917&4294967295,ae=te+(ie<<10&4294967295|ie>>>22),ie=se+(te^(ae|~ne))+re[2]+718787259&4294967295,ie=ne+(ae^((se=ae+(ie<<15&4294967295|ie>>>17))|~te))+re[9]+3951481745&4294967295,ee.g[0]=ee.g[0]+te&4294967295,ee.g[1]=ee.g[1]+(se+(ie<<21&4294967295|ie>>>11))&4294967295,ee.g[2]=ee.g[2]+se&4294967295,ee.g[3]=ee.g[3]+ae&4294967295}function t(ee,te){this.h=te;const ne=[];let re=!0;for(let se=ee.length-1;se>=0;se--){const ie=0|ee[se];re&&ie==te||(ne[se]=ie,re=!1)}this.g=ne}!function k(ee,te){function c(){}c.prototype=te.prototype,ee.F=te.prototype,ee.prototype=new c,ee.prototype.constructor=ee,ee.D=function(ee,ne,re){for(var se=Array(arguments.length-2),ie=2;ie<arguments.length;ie++)se[ie-2]=arguments[ie];return te.prototype[ne].apply(ee,se)}}(m,(function l(){this.blockSize=-1})),m.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},m.prototype.v=function(ee,te){void 0===te&&(te=ee.length);const ne=te-this.blockSize,re=this.C;let se=this.h,ie=0;for(;ie<te;){if(0==se)for(;ie<=ne;)n(this,ee,ie),ie+=this.blockSize;if("string"==typeof ee){for(;ie<te;)if(re[se++]=ee.charCodeAt(ie++),se==this.blockSize){n(this,re),se=0;break}}else for(;ie<te;)if(re[se++]=ee[ie++],se==this.blockSize){n(this,re),se=0;break}}this.h=se,this.o+=te},m.prototype.A=function(){var ee=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);ee[0]=128;for(var te=1;te<ee.length-8;++te)ee[te]=0;te=8*this.o;for(var ne=ee.length-8;ne<ee.length;++ne)ee[ne]=255&te,te/=256;for(this.v(ee),ee=Array(16),te=0,ne=0;ne<4;++ne)for(let re=0;re<32;re+=8)ee[te++]=this.g[ne]>>>re&255;return ee};var te={};function u(ee){return-128<=ee&&ee<128?function p(ee,ne){var re=te;return Object.prototype.hasOwnProperty.call(re,ee)?re[ee]:re[ee]=ne(ee)}(ee,(function(ee){return new t([0|ee],ee<0?-1:0)})):new t([0|ee],ee<0?-1:0)}function v(ee){if(isNaN(ee)||!isFinite(ee))return ne;if(ee<0)return x(v(-ee));const te=[];let re=1;for(let ne=0;ee>=re;ne++)te[ne]=ee/re|0,re*=4294967296;return new t(te,0)}var ne=u(0),re=u(1),se=u(16777216);function C(ee){if(0!=ee.h)return!1;for(let te=0;te<ee.g.length;te++)if(0!=ee.g[te])return!1;return!0}function B(ee){return-1==ee.h}function x(ee){const te=ee.g.length,ne=[];for(let re=0;re<te;re++)ne[re]=~ee.g[re];return new t(ne,~ee.h).add(re)}function F(ee,te){return ee.add(x(te))}function G(ee,te){for(;(65535&ee[te])!=ee[te];)ee[te+1]+=ee[te]>>>16,ee[te]&=65535,te++}function H(ee,te){this.g=ee,this.h=te}function D(ee,te){if(C(te))throw Error("division by zero");if(C(ee))return new H(ne,ne);if(B(ee))return te=D(x(ee),te),new H(x(te.g),x(te.h));if(B(te))return te=D(ee,x(te)),new H(x(te.g),te.h);if(ee.g.length>30){if(B(ee)||B(te))throw Error("slowDivide_ only works with positive integers.");for(var se=re,ie=te;ie.l(ee)<=0;)se=I(se),ie=I(ie);var ae=J(se,1),oe=J(ie,1);for(ie=J(ie,2),se=J(se,2);!C(ie);){var ue=oe.add(ie);ue.l(ee)<=0&&(ae=ae.add(se),oe=ue),ie=J(ie,1),se=J(se,1)}return te=F(ee,ae.j(te)),new H(ae,te)}for(ae=ne;ee.l(te)>=0;){for(se=Math.max(1,Math.floor(ee.m()/te.m())),ie=(ie=Math.ceil(Math.log(se)/Math.LN2))<=48?1:Math.pow(2,ie-48),ue=(oe=v(se)).j(te);B(ue)||ue.l(ee)>0;)ue=(oe=v(se-=ie)).j(te);C(oe)&&(oe=re),ae=ae.add(oe),ee=F(ee,ue)}return new H(ae,ee)}function I(ee){const te=ee.g.length+1,ne=[];for(let re=0;re<te;re++)ne[re]=ee.i(re)<<1|ee.i(re-1)>>>31;return new t(ne,ee.h)}function J(ee,te){const ne=te>>5;te%=32;const re=ee.g.length-ne,se=[];for(let ie=0;ie<re;ie++)se[ie]=te>0?ee.i(ie+ne)>>>te|ee.i(ie+ne+1)<<32-te:ee.i(ie+ne);return new t(se,ee.h)}(ee=t.prototype).m=function(){if(B(this))return-x(this).m();let ee=0,te=1;for(let ne=0;ne<this.g.length;ne++){const re=this.i(ne);ee+=(re>=0?re:4294967296+re)*te,te*=4294967296}return ee},ee.toString=function(ee){if((ee=ee||10)<2||36<ee)throw Error("radix out of range: "+ee);if(C(this))return"0";if(B(this))return"-"+x(this).toString(ee);const te=v(Math.pow(ee,6));var ne=this;let re="";for(;;){const se=D(ne,te).g;let ie=(((ne=F(ne,se.j(te))).g.length>0?ne.g[0]:ne.h)>>>0).toString(ee);if(C(ne=se))return ie+re;for(;ie.length<6;)ie="0"+ie;re=ie+re}},ee.i=function(ee){return ee<0?0:ee<this.g.length?this.g[ee]:this.h},ee.l=function(ee){return B(ee=F(this,ee))?-1:C(ee)?0:1},ee.abs=function(){return B(this)?x(this):this},ee.add=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];let re=0;for(let se=0;se<=te;se++){let te=re+(65535&this.i(se))+(65535&ee.i(se)),ie=(te>>>16)+(this.i(se)>>>16)+(ee.i(se)>>>16);re=ie>>>16,te&=65535,ie&=65535,ne[se]=ie<<16|te}return new t(ne,-2147483648&ne[ne.length-1]?-1:0)},ee.j=function(ee){if(C(this)||C(ee))return ne;if(B(this))return B(ee)?x(this).j(x(ee)):x(x(this).j(ee));if(B(ee))return x(this.j(x(ee)));if(this.l(se)<0&&ee.l(se)<0)return v(this.m()*ee.m());const te=this.g.length+ee.g.length,re=[];for(var ie=0;ie<2*te;ie++)re[ie]=0;for(ie=0;ie<this.g.length;ie++)for(let te=0;te<ee.g.length;te++){const ne=this.i(ie)>>>16,se=65535&this.i(ie),ae=ee.i(te)>>>16,oe=65535&ee.i(te);re[2*ie+2*te]+=se*oe,G(re,2*ie+2*te),re[2*ie+2*te+1]+=ne*oe,G(re,2*ie+2*te+1),re[2*ie+2*te+1]+=se*ae,G(re,2*ie+2*te+1),re[2*ie+2*te+2]+=ne*ae,G(re,2*ie+2*te+2)}for(ee=0;ee<te;ee++)re[ee]=re[2*ee+1]<<16|re[2*ee];for(ee=te;ee<2*te;ee++)re[ee]=0;return new t(re,0)},ee.B=function(ee){return D(this,ee).h},ee.and=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];for(let re=0;re<te;re++)ne[re]=this.i(re)&ee.i(re);return new t(ne,this.h&ee.h)},ee.or=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];for(let re=0;re<te;re++)ne[re]=this.i(re)|ee.i(re);return new t(ne,this.h|ee.h)},ee.xor=function(ee){const te=Math.max(this.g.length,ee.g.length),ne=[];for(let re=0;re<te;re++)ne[re]=this.i(re)^ee.i(re);return new t(ne,this.h^ee.h)},m.prototype.digest=m.prototype.A,m.prototype.reset=m.prototype.u,m.prototype.update=m.prototype.v,ue=m,t.prototype.add=t.prototype.add,t.prototype.multiply=t.prototype.j,t.prototype.modulo=t.prototype.B,t.prototype.compare=t.prototype.l,t.prototype.toNumber=t.prototype.m,t.prototype.toString=t.prototype.toString,t.prototype.getBits=t.prototype.i,t.fromNumber=v,t.fromString=function y(ee,te){if(0==ee.length)throw Error("number format error: empty string");if((te=te||10)<2||36<te)throw Error("radix out of range: "+te);if("-"==ee.charAt(0))return x(y(ee.substring(1),te));if(ee.indexOf("-")>=0)throw Error('number format error: interior "-" character');const re=v(Math.pow(te,8));let se=ne;for(let ne=0;ne<ee.length;ne+=8){var ie=Math.min(8,ee.length-ne);const ae=parseInt(ee.substring(ne,ne+ie),te);ie<8?(ie=v(Math.pow(te,ie)),se=se.j(ie).add(v(ae))):(se=se.j(re),se=se.add(v(ae)))}return se},oe=t}).apply(void 0!==le?le:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),function(ee){ee[ee.DEBUG=0]="DEBUG",ee[ee.VERBOSE=1]="VERBOSE",ee[ee.INFO=2]="INFO",ee[ee.WARN=3]="WARN",ee[ee.ERROR=4]="ERROR",ee[ee.SILENT=5]="SILENT"}(Be||(Be={}));const ce={debug:Be.DEBUG,verbose:Be.VERBOSE,info:Be.INFO,warn:Be.WARN,error:Be.ERROR,silent:Be.SILENT},_e=Be.INFO,he={[Be.DEBUG]:"log",[Be.VERBOSE]:"log",[Be.INFO]:"info",[Be.WARN]:"warn",[Be.ERROR]:"error"},defaultLogHandler=(ee,te,...ne)=>{if(te<ee.logLevel)return;const re=(new Date).toISOString(),se=he[te];if(!se)throw new Error(`Attempted to log a message with an invalid logType (value: ${te})`);console[se](`[${re}] ${ee.name}:`,...ne)};var de,Ee,Ce,pe,me,fe,ge,Te,Ie,Ae,Pe,Re,Ve,De,ye,we,be,Se,ve,xe,Fe,Oe,Ne,Le="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function __setFunctionName(ee,te,ne){return"symbol"==typeof te&&(te=te.description?"[".concat(te.description,"]"):""),Object.defineProperty(ee,"name",{configurable:!0,value:ne?"".concat(ne," ",te):te})}(function(){var ee,te=Object.defineProperty;var ne=function ba(ee){ee=["object"==typeof globalThis&&globalThis,ee,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Le&&Le];for(var te=0;te<ee.length;++te){var ne=ee[te];if(ne&&ne.Math==Math)return ne}throw Error("Cannot find global object")}(this);function da(ee,re){if(re)e:{var se=ne;ee=ee.split(".");for(var ie=0;ie<ee.length-1;ie++){var ae=ee[ie];if(!(ae in se))break e;se=se[ae]}(re=re(ie=se[ee=ee[ee.length-1]]))!=ie&&null!=re&&te(se,ee,{configurable:!0,writable:!0,value:re})}}da("Symbol.dispose",(function(ee){return ee||Symbol("Symbol.dispose")})),da("Array.prototype.values",(function(ee){return ee||function(){return this[Symbol.iterator]()}})),da("Object.entries",(function(ee){return ee||function(ee){var te,ne=[];for(te in ee)Object.prototype.hasOwnProperty.call(ee,te)&&ne.push([te,ee[te]]);return ne}}));var re=re||{},se=this||self;function n(ee){var te=typeof ee;return"object"==te&&null!=ee||"function"==te}function fa(ee,te,ne){return ee.call.apply(ee.bind,arguments)}function p(ee,te,ne){return(p=fa).apply(null,arguments)}function ha(ee,te){var ne=Array.prototype.slice.call(arguments,1);return function(){var te=ne.slice();return te.push.apply(te,arguments),ee.apply(this,te)}}function t(ee,te){function c(){}c.prototype=te.prototype,ee.Z=te.prototype,ee.prototype=new c,ee.prototype.constructor=ee,ee.Ob=function(ee,ne,re){for(var se=Array(arguments.length-2),ie=2;ie<arguments.length;ie++)se[ie-2]=arguments[ie];return te.prototype[ne].apply(ee,se)}}var ie="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?ee=>ee&&AsyncContext.Snapshot.wrap(ee):ee=>ee;function ja(ee){const te=ee.length;if(te>0){const ne=Array(te);for(let re=0;re<te;re++)ne[re]=ee[re];return ne}return[]}function ka(ee,te){for(let te=1;te<arguments.length;te++){const re=arguments[te];var ne=typeof re;if("array"==(ne="object"!=ne?ne:re?Array.isArray(re)?"array":ne:"null")||"object"==ne&&"number"==typeof re.length){ne=ee.length||0;const te=re.length||0;ee.length=ne+te;for(let se=0;se<te;se++)ee[ne+se]=re[se]}else ee.push(re)}}function ma(ee){se.setTimeout((()=>{throw ee}),0)}function na(){var ee=Be;let te=null;return ee.g&&(te=ee.g,ee.g=ee.g.next,ee.g||(ee.h=null),te.next=null),te}var ae=new class la{constructor(ee,te){this.i=ee,this.j=te,this.h=0,this.g=null}get(){let ee;return this.h>0?(this.h--,ee=this.g,this.g=ee.next,ee.next=null):ee=this.i(),ee}}((()=>new ra),(ee=>ee.reset()));class ra{constructor(){this.next=this.g=this.h=null}set(ee,te){this.h=ee,this.g=te,this.next=null}reset(){this.next=this.g=this.h=null}}let oe,ue=!1,Be=new class pa{constructor(){this.h=this.g=null}add(ee,te){const ne=ae.get();ne.set(ee,te),this.h?this.h.next=ne:this.g=ne,this.h=ne}},ta=()=>{const ee=Promise.resolve(void 0);oe=()=>{ee.then(sa)}};function sa(){for(var ee;ee=na();){try{ee.h.call(ee.g)}catch(ee){ma(ee)}var te=ae;te.j(ee),te.h<100&&(te.h++,ee.next=te.g,te.g=ee)}ue=!1}function w(){this.u=this.u,this.C=this.C}function x(ee,te){this.type=ee,this.g=this.target=te,this.defaultPrevented=!1}w.prototype.u=!1,w.prototype.dispose=function(){this.u||(this.u=!0,this.N())},w.prototype[Symbol.dispose]=function(){this.dispose()},w.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},x.prototype.h=function(){this.defaultPrevented=!0};var le=function(){if(!se.addEventListener||!Object.defineProperty)return!1;var ee=!1,te=Object.defineProperty({},"passive",{get:function(){ee=!0}});try{const c=()=>{};se.addEventListener("test",c,te),se.removeEventListener("test",c,te)}catch(ee){}return ee}();function y(ee){return/^[\s\xa0]*$/.test(ee)}function z(ee,te){x.call(this,ee?ee.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,ee&&this.init(ee,te)}t(z,x),z.prototype.init=function(ee,te){const ne=this.type=ee.type,re=ee.changedTouches&&ee.changedTouches.length?ee.changedTouches[0]:null;this.target=ee.target||ee.srcElement,this.g=te,(te=ee.relatedTarget)||("mouseover"==ne?te=ee.fromElement:"mouseout"==ne&&(te=ee.toElement)),this.relatedTarget=te,re?(this.clientX=void 0!==re.clientX?re.clientX:re.pageX,this.clientY=void 0!==re.clientY?re.clientY:re.pageY,this.screenX=re.screenX||0,this.screenY=re.screenY||0):(this.clientX=void 0!==ee.clientX?ee.clientX:ee.pageX,this.clientY=void 0!==ee.clientY?ee.clientY:ee.pageY,this.screenX=ee.screenX||0,this.screenY=ee.screenY||0),this.button=ee.button,this.key=ee.key||"",this.ctrlKey=ee.ctrlKey,this.altKey=ee.altKey,this.shiftKey=ee.shiftKey,this.metaKey=ee.metaKey,this.pointerId=ee.pointerId||0,this.pointerType=ee.pointerType,this.state=ee.state,this.i=ee,ee.defaultPrevented&&z.Z.h.call(this)},z.prototype.h=function(){z.Z.h.call(this);const ee=this.i;ee.preventDefault?ee.preventDefault():ee.returnValue=!1};var ce="closure_listenable_"+(1e6*Math.random()|0),_e=0;function wa(ee,te,ne,re,se){this.listener=ee,this.proxy=null,this.src=te,this.type=ne,this.capture=!!re,this.ha=se,this.key=++_e,this.da=this.fa=!1}function xa(ee){ee.da=!0,ee.listener=null,ee.proxy=null,ee.src=null,ee.ha=null}function ya(ee,te,ne){for(const re in ee)te.call(ne,ee[re],re,ee)}function Ba(ee){const te={};for(const ne in ee)te[ne]=ee[ne];return te}const he="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function Da(ee,te){let ne,re;for(let te=1;te<arguments.length;te++){for(ne in re=arguments[te],re)ee[ne]=re[ne];for(let te=0;te<he.length;te++)ne=he[te],Object.prototype.hasOwnProperty.call(re,ne)&&(ee[ne]=re[ne])}}function Ea(ee){this.src=ee,this.g={},this.h=0}function Ga(ee,te){const ne=te.type;if(ne in ee.g){var re,se=ee.g[ne],ie=Array.prototype.indexOf.call(se,te,void 0);(re=ie>=0)&&Array.prototype.splice.call(se,ie,1),re&&(xa(te),0==ee.g[ne].length&&(delete ee.g[ne],ee.h--))}}function Fa(ee,te,ne,re){for(let se=0;se<ee.length;++se){const ie=ee[se];if(!ie.da&&ie.listener==te&&ie.capture==!!ne&&ie.ha==re)return se}return-1}Ea.prototype.add=function(ee,te,ne,re,se){const ie=ee.toString();(ee=this.g[ie])||(ee=this.g[ie]=[],this.h++);const ae=Fa(ee,te,re,se);return ae>-1?(te=ee[ae],ne||(te.fa=!1)):((te=new wa(te,this.src,ie,!!re,se)).fa=ne,ee.push(te)),te};var Ie="closure_lm_"+(1e6*Math.random()|0),Ae={};function Ka(ee,te,ne,re,se){if(Array.isArray(te)){for(let ie=0;ie<te.length;ie++)Ka(ee,te[ie],ne,re,se);return null}return ne=Ma(ne),ee&&ee[ce]?ee.J(te,ne,!!n(re)&&!!re.capture,se):function Na(ee,te,ne,re,se,ie){if(!te)throw Error("Invalid event type");const ae=n(se)?!!se.capture:!!se;let oe=Oa(ee);if(oe||(ee[Ie]=oe=new Ea(ee)),ne=oe.add(te,ne,re,ae,ie),ne.proxy)return ne;if(re=function Pa(){function a(te){return ee.call(a.src,a.listener,te)}const ee=Ra;return a}(),ne.proxy=re,re.src=ee,re.listener=ne,ee.addEventListener)le||(se=ae),void 0===se&&(se=!1),ee.addEventListener(te.toString(),re,se);else if(ee.attachEvent)ee.attachEvent(Qa(te.toString()),re);else{if(!ee.addListener||!ee.removeListener)throw Error("addEventListener and attachEvent are unavailable.");ee.addListener(re)}return ne}(ee,te,ne,!1,re,se)}function Sa(ee,te,ne,re,se){if(Array.isArray(te))for(var ie=0;ie<te.length;ie++)Sa(ee,te[ie],ne,re,se);else re=n(re)?!!re.capture:!!re,ne=Ma(ne),ee&&ee[ce]?(ee=ee.i,(ie=String(te).toString())in ee.g&&((ne=Fa(te=ee.g[ie],ne,re,se))>-1&&(xa(te[ne]),Array.prototype.splice.call(te,ne,1),0==te.length&&(delete ee.g[ie],ee.h--)))):ee&&(ee=Oa(ee))&&(te=ee.g[te.toString()],ee=-1,te&&(ee=Fa(te,ne,re,se)),(ne=ee>-1?te[ee]:null)&&Ta(ne))}function Ta(ee){if("number"!=typeof ee&&ee&&!ee.da){var te=ee.src;if(te&&te[ce])Ga(te.i,ee);else{var ne=ee.type,re=ee.proxy;te.removeEventListener?te.removeEventListener(ne,re,ee.capture):te.detachEvent?te.detachEvent(Qa(ne),re):te.addListener&&te.removeListener&&te.removeListener(re),(ne=Oa(te))?(Ga(ne,ee),0==ne.h&&(ne.src=null,te[Ie]=null)):xa(ee)}}}function Qa(ee){return ee in Ae?Ae[ee]:Ae[ee]="on"+ee}function Ra(ee,te){if(ee.da)ee=!0;else{te=new z(te,this);const ne=ee.listener,re=ee.ha||ee.src;ee.fa&&Ta(ee),ee=ne.call(re,te)}return ee}function Oa(ee){return(ee=ee[Ie])instanceof Ea?ee:null}var Pe="__closure_events_fn_"+(1e9*Math.random()>>>0);function Ma(ee){return"function"==typeof ee?ee:(ee[Pe]||(ee[Pe]=function(te){return ee.handleEvent(te)}),ee[Pe])}function C(){w.call(this),this.i=new Ea(this),this.M=this,this.G=null}function D(ee,te){var ne,re=ee.G;if(re)for(ne=[];re;re=re.G)ne.push(re);if(ee=ee.M,re=te.type||te,"string"==typeof te)te=new x(te,ee);else if(te instanceof x)te.target=te.target||ee;else{var se=te;Da(te=new x(re,ee),se)}let ie,ae;if(se=!0,ne)for(ae=ne.length-1;ae>=0;ae--)ie=te.g=ne[ae],se=Va(ie,re,!0,te)&&se;if(ie=te.g=ee,se=Va(ie,re,!0,te)&&se,se=Va(ie,re,!1,te)&&se,ne)for(ae=0;ae<ne.length;ae++)ie=te.g=ne[ae],se=Va(ie,re,!1,te)&&se}function Va(ee,te,ne,re){if(!(te=ee.i.g[String(te)]))return!0;te=te.concat();let se=!0;for(let ie=0;ie<te.length;++ie){const ae=te[ie];if(ae&&!ae.da&&ae.capture==ne){const te=ae.listener,ne=ae.ha||ae.src;ae.fa&&Ga(ee.i,ae),se=!1!==te.call(ne,re)&&se}}return se&&!re.defaultPrevented}function Xa(ee){ee.g=function Wa(ee,te){if("function"!=typeof ee){if(!ee||"function"!=typeof ee.handleEvent)throw Error("Invalid listener argument");ee=p(ee.handleEvent,ee)}return Number(te)>2147483647?-1:se.setTimeout(ee,te||0)}((()=>{ee.g=null,ee.i&&(ee.i=!1,Xa(ee))}),ee.l);const te=ee.h;ee.h=null,ee.m.apply(null,te)}t(C,w),C.prototype[ce]=!0,C.prototype.removeEventListener=function(ee,te,ne,re){Sa(this,ee,te,ne,re)},C.prototype.N=function(){if(C.Z.N.call(this),this.i){var ee=this.i;for(const te in ee.g){const ne=ee.g[te];for(let ee=0;ee<ne.length;ee++)xa(ne[ee]);delete ee.g[te],ee.h--}}this.G=null},C.prototype.J=function(ee,te,ne,re){return this.i.add(String(ee),te,!1,ne,re)},C.prototype.K=function(ee,te,ne,re){return this.i.add(String(ee),te,!0,ne,re)};class Ya extends w{constructor(ee,te){super(),this.m=ee,this.l=te,this.h=null,this.i=!1,this.g=null}j(ee){this.h=arguments,this.g?this.i=!0:Xa(this)}N(){super.N(),this.g&&(se.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function E(ee){w.call(this),this.h=ee,this.g={}}t(E,w);var Re=[];function $a(ee){ya(ee.g,(function(ee,te){this.g.hasOwnProperty(te)&&Ta(ee)}),ee),ee.g={}}E.prototype.N=function(){E.Z.N.call(this),$a(this)},E.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ve=se.JSON.stringify,De=se.JSON.parse,ye=class{stringify(ee){return se.JSON.stringify(ee,void 0)}parse(ee){return se.JSON.parse(ee,void 0)}};function eb(){}function fb(){}var we={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function gb(){x.call(this,"d")}function hb(){x.call(this,"c")}t(gb,x),t(hb,x);var be={},Se=null;function jb(){return Se=Se||new C}function kb(ee){x.call(this,be.Ia,ee)}function lb(ee){const te=jb();D(te,new kb(te))}function mb(ee,te){x.call(this,be.STAT_EVENT,ee),this.stat=te}function J(ee){const te=jb();D(te,new mb(te,ee))}function nb(ee,te){x.call(this,be.Ja,ee),this.size=te}function ob(ee,te){if("function"!=typeof ee)throw Error("Fn must not be null and must be a function");return se.setTimeout((function(){ee()}),te)}function pb(){this.g=!0}function K(ee,te,ne,re){ee.info((function(){return"XMLHTTP TEXT ("+te+"): "+function sb(ee,te){if(!ee.g)return te;if(!te)return null;try{const ie=JSON.parse(te);if(ie)for(ee=0;ee<ie.length;ee++)if(Array.isArray(ie[ee])){var ne=ie[ee];if(!(ne.length<2)){var re=ne[1];if(Array.isArray(re)&&!(re.length<1)){var se=re[0];if("noop"!=se&&"stop"!=se&&"close"!=se)for(let ee=1;ee<re.length;ee++)re[ee]=""}}}return Ve(ie)}catch(ee){return te}}(ee,ne)+(re?" "+re:"")}))}be.Ia="serverreachability",t(kb,x),be.STAT_EVENT="statevent",t(mb,x),be.Ja="timingevent",t(nb,x),pb.prototype.ua=function(){this.g=!1},pb.prototype.info=function(){};var ve,xe={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Fe={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function xb(){}function L(ee){return encodeURIComponent(String(ee))}function yb(ee){var te=1;ee=ee.split(":");const ne=[];for(;te>0&&ee.length;)ne.push(ee.shift()),te--;return ee.length&&ne.push(ee.join(":")),ne}function N(ee,te,ne,re){this.j=ee,this.i=te,this.l=ne,this.S=re||1,this.V=new E(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new zb}function zb(){this.i=null,this.g="",this.h=!1}t(xb,eb),xb.prototype.g=function(){return new XMLHttpRequest},ve=new xb;var Oe={},Ne={};function Cb(ee,te,ne){ee.M=1,ee.A=Db(O(te)),ee.u=ne,ee.R=!0,Eb(ee,null)}function Eb(ee,te){ee.F=Date.now(),Fb(ee),ee.B=O(ee.A);var ne=ee.B,re=ee.S;Array.isArray(re)||(re=[String(re)]),Gb(ne.i,"t",re),ee.C=0,ne=ee.j.L,ee.h=new zb,ee.g=Hb(ee.j,ne?te:null,!ee.u),ee.P>0&&(ee.O=new Ya(p(ee.Y,ee,ee.g),ee.P)),te=ee.V,ne=ee.g,re=ee.ba;var se="readystatechange";Array.isArray(se)||(se&&(Re[0]=se.toString()),se=Re);for(let ee=0;ee<se.length;ee++){const ie=Ka(ne,se[ee],re||te.handleEvent,!1,te.h||te);if(!ie)break;te.g[ie.key]=ie}te=ee.J?Ba(ee.J):{},ee.u?(ee.v||(ee.v="POST"),te["Content-Type"]="application/x-www-form-urlencoded",ee.g.ea(ee.B,ee.v,ee.u,te)):(ee.v="GET",ee.g.ea(ee.B,ee.v,null,te)),lb(),function qb(ee,te,ne,re,se,ie){ee.info((function(){if(ee.g)if(ie){var ae="",oe=ie.split("&");for(let ee=0;ee<oe.length;ee++){var ue=oe[ee].split("=");if(ue.length>1){const ee=ue[0];ue=ue[1];const te=ee.split("_");ae=te.length>=2&&"type"==te[1]?ae+(ee+"=")+ue+"&":ae+(ee+"=redacted&")}}}else ae=null;else ae=ie;return"XMLHTTP REQ ("+re+") [attempt "+se+"]: "+te+"\n"+ne+"\n"+ae}))}(ee.i,ee.v,ee.B,ee.l,ee.S,ee.u)}function Ob(ee){return!!ee.g&&("GET"==ee.v&&2!=ee.M&&ee.j.Aa)}function Nb(ee,te){var ne=ee.C,re=te.indexOf("\n",ne);return-1==re?Ne:(ne=Number(te.substring(ne,re)),isNaN(ne)?Oe:(re+=1)+ne>te.length?Ne:(te=te.slice(re,re+ne),ee.C=re+ne,te))}function Fb(ee){ee.T=Date.now()+ee.H,Sb(ee,ee.H)}function Sb(ee,te){if(null!=ee.D)throw Error("WatchDog timer not null");ee.D=ob(p(ee.aa,ee),te)}function Jb(ee){ee.D&&(se.clearTimeout(ee.D),ee.D=null)}function Mb(ee){0==ee.j.I||ee.K||Qb(ee.j,ee)}function Q(ee){Jb(ee);var te=ee.O;te&&"function"==typeof te.dispose&&te.dispose(),ee.O=null,$a(ee.V),ee.g&&(te=ee.g,ee.g=null,te.abort(),te.dispose())}function Lb(ee,te){try{var ne=ee.j;if(0!=ne.I&&(ne.g==ee||Tb(ne.h,ee)))if(!ee.L&&Tb(ne.h,ee)&&3==ne.I){try{var re=ne.Ba.g.parse(te)}catch(ee){re=null}if(Array.isArray(re)&&3==re.length){var se=re;if(0==se[0]){e:if(!ne.v){if(ne.g){if(!(ne.g.F+3e3<ee.F))break e;Ub(ne),Vb(ne)}Wb(ne),J(18)}}else ne.xa=se[1],0<ne.xa-ne.K&&se[2]<37500&&ne.F&&0==ne.A&&!ne.C&&(ne.C=ob(p(ne.Va,ne),6e3));Xb(ne.h)<=1&&ne.ta&&(ne.ta=void 0)}else R(ne,11)}else if((ee.L||ne.g==ee)&&Ub(ne),!y(te))for(se=ne.Ba.g.parse(te),te=0;te<se.length;te++){let Be=se[te];const le=Be[0];if(!(le<=ne.K))if(ne.K=le,Be=Be[1],2==ne.I)if("c"==Be[0]){ne.M=Be[1],ne.ba=Be[2];const te=Be[3];null!=te&&(ne.ka=te,ne.j.info("VER="+ne.ka));const se=Be[4];null!=se&&(ne.za=se,ne.j.info("SVER="+ne.za));const le=Be[5];null!=le&&"number"==typeof le&&le>0&&(re=1.5*le,ne.O=re,ne.j.info("backChannelRequestTimeoutMs_="+re)),re=ne;const ce=ee.g;if(ce){const ee=ce.g?ce.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(ee){var ie=re.h;ie.g||-1==ee.indexOf("spdy")&&-1==ee.indexOf("quic")&&-1==ee.indexOf("h2")||(ie.j=ie.l,ie.g=new Set,ie.h&&(Yb(ie,ie.h),ie.h=null))}if(re.G){const ee=ce.g?ce.g.getResponseHeader("X-HTTP-Session-Id"):null;ee&&(re.wa=ee,S(re.J,re.G,ee))}}ne.I=3,ne.l&&ne.l.ra(),ne.aa&&(ne.T=Date.now()-ee.F,ne.j.info("Handshake RTT: "+ne.T+"ms"));var ae=ee;if((re=ne).na=Zb(re,re.L?re.ba:null,re.W),ae.L){$b(re.h,ae);var oe=ae,ue=re.O;ue&&(oe.H=ue),oe.D&&(Jb(oe),Fb(oe)),re.g=ae}else ac(re);ne.i.length>0&&bc(ne)}else"stop"!=Be[0]&&"close"!=Be[0]||R(ne,7);else 3==ne.I&&("stop"==Be[0]||"close"==Be[0]?"stop"==Be[0]?R(ne,7):cc(ne):"noop"!=Be[0]&&ne.l&&ne.l.qa(Be),ne.A=0)}lb()}catch(ee){}}N.prototype.ba=function(ee){ee=ee.target;const te=this.O;te&&3==P(ee)?te.j():this.Y(ee)},N.prototype.Y=function(ee){try{if(ee==this.g)e:{const ue=P(this.g),Be=this.g.ya();this.g.ca();if(!(ue<3)&&(3!=ue||this.g&&(this.h.h||this.g.la()||Ib(this.g)))){this.K||4!=ue||7==Be||lb(),Jb(this);var te=this.g.ca();this.X=te;var ne=function Kb(ee){if(!Ob(ee))return ee.g.la();const te=Ib(ee.g);if(""===te)return"";let ne="";const re=te.length,ie=4==P(ee.g);if(!ee.h.i){if("undefined"==typeof TextDecoder)return Q(ee),Mb(ee),"";ee.h.i=new se.TextDecoder}for(let se=0;se<re;se++)ee.h.h=!0,ne+=ee.h.i.decode(te[se],{stream:!(ie&&se==re-1)});return te.length=0,ee.h.g+=ne,ee.C=0,ee.h.g}(this);if(this.o=200==te,function rb(ee,te,ne,re,se,ie,ae){ee.info((function(){return"XMLHTTP RESP ("+re+") [ attempt "+se+"]: "+te+"\n"+ne+"\n"+ie+" "+ae}))}(this.i,this.v,this.B,this.l,this.S,ue,te),this.o){if(this.U&&!this.L){t:{if(this.g){var re,ie=this.g;if((re=ie.g?ie.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!y(re)){var ae=re;break t}}ae=null}if(!(ee=ae)){this.o=!1,this.m=3,J(12),Q(this),Mb(this);break e}K(this.i,this.l,ee,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,Lb(this,ee)}if(this.R){let te;for(ee=!0;!this.K&&this.C<ne.length;){if(te=Nb(this,ne),te==Ne){4==ue&&(this.m=4,J(14),ee=!1),K(this.i,this.l,null,"[Incomplete Response]");break}if(te==Oe){this.m=4,J(15),K(this.i,this.l,ne,"[Invalid Chunk]"),ee=!1;break}K(this.i,this.l,te,null),Lb(this,te)}if(Ob(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=ue||0!=ne.length||this.h.h||(this.m=1,J(16),ee=!1),this.o=this.o&&ee,ee){if(ne.length>0&&!this.W){this.W=!0;var oe=this.j;oe.g==this&&oe.aa&&!oe.P&&(oe.j.info("Great, no buffering proxy detected. Bytes received: "+ne.length),Pb(oe),oe.P=!0,J(11))}}else K(this.i,this.l,ne,"[Invalid Chunked Response]"),Q(this),Mb(this)}else K(this.i,this.l,ne,null),Lb(this,ne);4==ue&&Q(this),this.o&&!this.K&&(4==ue?Qb(this.j,this):(this.o=!1,Fb(this)))}else(function Rb(ee){const te={};ee=(ee.g&&P(ee)>=2&&ee.g.getAllResponseHeaders()||"").split("\r\n");for(let re=0;re<ee.length;re++){if(y(ee[re]))continue;var ne=yb(ee[re]);const se=ne[0];if("string"!=typeof(ne=ne[1]))continue;ne=ne.trim();const ie=te[se]||[];te[se]=ie,ie.push(ne)}!function Aa(ee,te){for(const ne in ee)te.call(void 0,ee[ne],ne,ee)}(te,(function(ee){return ee.join(", ")}))})(this.g),400==te&&ne.indexOf("Unknown SID")>0?(this.m=3,J(12)):(this.m=0,J(13)),Q(this),Mb(this)}}}catch(ee){}},N.prototype.cancel=function(){this.K=!0,Q(this)},N.prototype.aa=function(){this.D=null;const ee=Date.now();ee-this.T>=0?(function tb(ee,te){ee.info((function(){return"TIMEOUT: "+te}))}(this.i,this.B),2!=this.M&&(lb(),J(17)),Q(this),this.m=2,Mb(this)):Sb(this,this.T-ee)};var Me=class{constructor(ee,te){this.g=ee,this.map=te}};function ec(ee){this.l=ee||10,se.PerformanceNavigationTiming?ee=(ee=se.performance.getEntriesByType("navigation")).length>0&&("hq"==ee[0].nextHopProtocol||"h2"==ee[0].nextHopProtocol):ee=!!(se.chrome&&se.chrome.loadTimes&&se.chrome.loadTimes()&&se.chrome.loadTimes().wasFetchedViaSpdy),this.j=ee?this.l:1,this.g=null,this.j>1&&(this.g=new Set),this.h=null,this.i=[]}function fc(ee){return!!ee.h||!!ee.g&&ee.g.size>=ee.j}function Xb(ee){return ee.h?1:ee.g?ee.g.size:0}function Tb(ee,te){return ee.h?ee.h==te:!!ee.g&&ee.g.has(te)}function Yb(ee,te){ee.g?ee.g.add(te):ee.h=te}function $b(ee,te){ee.h&&ee.h==te?ee.h=null:ee.g&&ee.g.has(te)&&ee.g.delete(te)}function hc(ee){if(null!=ee.h)return ee.i.concat(ee.h.G);if(null!=ee.g&&0!==ee.g.size){let te=ee.i;for(const ne of ee.g.values())te=te.concat(ne.G);return te}return ja(ee.i)}ec.prototype.cancel=function(){if(this.i=hc(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const ee of this.g.values())ee.cancel();this.g.clear()}};var ke=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function T(ee){let te;this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1,ee instanceof T?(this.l=ee.l,kc(this,ee.j),this.o=ee.o,this.g=ee.g,lc(this,ee.u),this.h=ee.h,mc(this,nc(ee.i)),this.m=ee.m):ee&&(te=String(ee).match(ke))?(this.l=!1,kc(this,te[1]||"",!0),this.o=oc(te[2]||""),this.g=oc(te[3]||"",!0),lc(this,te[4]),this.h=oc(te[5]||"",!0),mc(this,te[6]||"",!0),this.m=oc(te[7]||"")):(this.l=!1,this.i=new pc(null,this.l))}function O(ee){return new T(ee)}function kc(ee,te,ne){ee.j=ne?oc(te,!0):te,ee.j&&(ee.j=ee.j.replace(/:$/,""))}function lc(ee,te){if(te){if(te=Number(te),isNaN(te)||te<0)throw Error("Bad port number "+te);ee.u=te}else ee.u=null}function mc(ee,te,ne){te instanceof pc?(ee.i=te,function vc(ee,te){te&&!ee.j&&(U(ee),ee.i=null,ee.g.forEach((function(ee,te){const ne=te.toLowerCase();te!=ne&&(yc(this,te),Gb(this,ne,ee))}),ee)),ee.j=te}(ee.i,ee.l)):(ne||(te=qc(te,qe)),ee.i=new pc(te,ee.l))}function S(ee,te,ne){ee.i.set(te,ne)}function Db(ee){return S(ee,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),ee}function oc(ee,te){return ee?te?decodeURI(ee.replace(/%25/g,"%2525")):decodeURIComponent(ee):""}function qc(ee,te,ne){return"string"==typeof ee?(ee=encodeURI(ee).replace(te,xc),ne&&(ee=ee.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),ee):null}function xc(ee){return"%"+((ee=ee.charCodeAt(0))>>4&15).toString(16)+(15&ee).toString(16)}T.prototype.toString=function(){const ee=[];var te=this.j;te&&ee.push(qc(te,Ge,!0),":");var ne=this.g;return(ne||"file"==te)&&(ee.push("//"),(te=this.o)&&ee.push(qc(te,Ge,!0),"@"),ee.push(L(ne).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(ne=this.u)&&ee.push(":",String(ne))),(ne=this.h)&&(this.g&&"/"!=ne.charAt(0)&&ee.push("/"),ee.push(qc(ne,"/"==ne.charAt(0)?He:Ue,!0))),(ne=this.i.toString())&&ee.push("?",ne),(ne=this.m)&&ee.push("#",qc(ne,Ke)),ee.join("")},T.prototype.resolve=function(ee){const te=O(this);let ne=!!ee.j;ne?kc(te,ee.j):ne=!!ee.o,ne?te.o=ee.o:ne=!!ee.g,ne?te.g=ee.g:ne=null!=ee.u;var re=ee.h;if(ne)lc(te,ee.u);else if(ne=!!ee.h){if("/"!=re.charAt(0))if(this.g&&!this.h)re="/"+re;else{var se=te.h.lastIndexOf("/");-1!=se&&(re=te.h.slice(0,se+1)+re)}if(".."==(se=re)||"."==se)re="";else if(-1!=se.indexOf("./")||-1!=se.indexOf("/.")){re=0==se.lastIndexOf("/",0),se=se.split("/");const ee=[];for(let te=0;te<se.length;){const ne=se[te++];"."==ne?re&&te==se.length&&ee.push(""):".."==ne?((ee.length>1||1==ee.length&&""!=ee[0])&&ee.pop(),re&&te==se.length&&ee.push("")):(ee.push(ne),re=!0)}re=ee.join("/")}else re=se}return ne?te.h=re:ne=""!==ee.i.toString(),ne?mc(te,nc(ee.i)):ne=!!ee.m,ne&&(te.m=ee.m),te};var Ge=/[#\/\?@]/g,Ue=/[#\?:]/g,He=/[#\?]/g,qe=/[#\?@]/g,Ke=/#/g;function pc(ee,te){this.h=this.g=null,this.i=ee||null,this.j=!!te}function U(ee){ee.g||(ee.g=new Map,ee.h=0,ee.i&&function jc(ee,te){if(ee){ee=ee.split("&");for(let ne=0;ne<ee.length;ne++){const re=ee[ne].indexOf("=");let se,ie=null;re>=0?(se=ee[ne].substring(0,re),ie=ee[ne].substring(re+1)):se=ee[ne],te(se,ie?decodeURIComponent(ie.replace(/\+/g," ")):"")}}}(ee.i,(function(te,ne){ee.add(decodeURIComponent(te.replace(/\+/g," ")),ne)})))}function yc(ee,te){U(ee),te=V(ee,te),ee.g.has(te)&&(ee.i=null,ee.h-=ee.g.get(te).length,ee.g.delete(te))}function zc(ee,te){return U(ee),te=V(ee,te),ee.g.has(te)}function Ac(ee,te){U(ee);let ne=[];if("string"==typeof te)zc(ee,te)&&(ne=ne.concat(ee.g.get(V(ee,te))));else for(ee=Array.from(ee.g.values()),te=0;te<ee.length;te++)ne=ne.concat(ee[te]);return ne}function Gb(ee,te,ne){yc(ee,te),ne.length>0&&(ee.i=null,ee.g.set(V(ee,te),ja(ne)),ee.h+=ne.length)}function nc(ee){const te=new pc;return te.i=ee.i,ee.g&&(te.g=new Map(ee.g),te.h=ee.h),te}function V(ee,te){return te=String(te),ee.j&&(te=te.toLowerCase()),te}function W(ee,te,ne,re,se){try{se&&(se.onload=null,se.onerror=null,se.onabort=null,se.ontimeout=null),re(ne)}catch(ee){}}function Dc(){this.g=new ye}function Ec(ee){this.i=ee.Sb||null,this.h=ee.ab||!1}function Fc(ee,te){C.call(this),this.H=ee,this.o=te,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function Ic(ee){ee.j.read().then(ee.Ma.bind(ee)).catch(ee.ga.bind(ee))}function Hc(ee){ee.readyState=4,ee.l=null,ee.j=null,ee.B=null,Gc(ee)}function Gc(ee){ee.onreadystatechange&&ee.onreadystatechange.call(ee)}function Jc(ee){let te="";return ya(ee,(function(ee,ne){te+=ne,te+=":",te+=ee,te+="\r\n"})),te}function Kc(ee,te,ne){e:{for(re in ne){var re=!1;break e}re=!0}re||(ne=Jc(ne),"string"==typeof ee?null!=ne&&L(ne):S(ee,te,ne))}function X(ee){C.call(this),this.headers=new Map,this.L=ee||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(ee=pc.prototype).add=function(ee,te){U(this),this.i=null,ee=V(this,ee);let ne=this.g.get(ee);return ne||this.g.set(ee,ne=[]),ne.push(te),this.h+=1,this},ee.forEach=function(ee,te){U(this),this.g.forEach((function(ne,re){ne.forEach((function(ne){ee.call(te,ne,re,this)}),this)}),this)},ee.set=function(ee,te){return U(this),this.i=null,zc(this,ee=V(this,ee))&&(this.h-=this.g.get(ee).length),this.g.set(ee,[te]),this.h+=1,this},ee.get=function(ee,te){return ee&&(ee=Ac(this,ee)).length>0?String(ee[0]):te},ee.toString=function(){if(this.i)return this.i;if(!this.g)return"";const ee=[],te=Array.from(this.g.keys());for(let re=0;re<te.length;re++){var ne=te[re];const se=L(ne);ne=Ac(this,ne);for(let te=0;te<ne.length;te++){let re=se;""!==ne[te]&&(re+="="+L(ne[te])),ee.push(re)}}return this.i=ee.join("&")},t(Ec,eb),Ec.prototype.g=function(){return new Fc(this.i,this.h)},t(Fc,C),(ee=Fc.prototype).open=function(ee,te){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=ee,this.D=te,this.readyState=1,Gc(this)},ee.send=function(ee){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;const te={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};ee&&(te.body=ee),(this.H||se).fetch(new Request(this.D,te)).then(this.Pa.bind(this),this.ga.bind(this))},ee.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),this.readyState>=1&&this.g&&4!=this.readyState&&(this.g=!1,Hc(this)),this.readyState=0},ee.Pa=function(ee){if(this.g&&(this.l=ee,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=ee.headers,this.readyState=2,Gc(this)),this.g&&(this.readyState=3,Gc(this),this.g)))if("arraybuffer"===this.responseType)ee.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==se.ReadableStream&&"body"in ee){if(this.j=ee.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;Ic(this)}else ee.text().then(this.Oa.bind(this),this.ga.bind(this))},ee.Ma=function(ee){if(this.g){if(this.o&&ee.value)this.response.push(ee.value);else if(!this.o){var te=ee.value?ee.value:new Uint8Array(0);(te=this.B.decode(te,{stream:!ee.done}))&&(this.response=this.responseText+=te)}ee.done?Hc(this):Gc(this),3==this.readyState&&Ic(this)}},ee.Oa=function(ee){this.g&&(this.response=this.responseText=ee,Hc(this))},ee.Na=function(ee){this.g&&(this.response=ee,Hc(this))},ee.ga=function(){this.g&&Hc(this)},ee.setRequestHeader=function(ee,te){this.A.append(ee,te)},ee.getResponseHeader=function(ee){return this.h&&this.h.get(ee.toLowerCase())||""},ee.getAllResponseHeaders=function(){if(!this.h)return"";const ee=[],te=this.h.entries();for(var ne=te.next();!ne.done;)ne=ne.value,ee.push(ne[0]+": "+ne[1]),ne=te.next();return ee.join("\r\n")},Object.defineProperty(Fc.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(ee){this.m=ee?"include":"same-origin"}}),t(X,C);var Qe=/^https?$/i,je=["POST","PUT"];function Nc(ee,te){ee.h=!1,ee.g&&(ee.j=!0,ee.g.abort(),ee.j=!1),ee.l=te,ee.o=5,Oc(ee),Pc(ee)}function Oc(ee){ee.A||(ee.A=!0,D(ee,"complete"),D(ee,"error"))}function Qc(ee){if(ee.h&&void 0!==re)if(ee.v&&4==P(ee))setTimeout(ee.Ca.bind(ee),0);else if(D(ee,"readystatechange"),4==P(ee)){ee.h=!1;try{const re=ee.ca();e:switch(re){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var te=!0;break e;default:te=!1}var ne;if(!(ne=te)){var ie;if(ie=0===re){let te=String(ee.D).match(ke)[1]||null;!te&&se.self&&se.self.location&&(te=se.self.location.protocol.slice(0,-1)),ie=!Qe.test(te?te.toLowerCase():"")}ne=ie}if(ne)D(ee,"complete"),D(ee,"success");else{ee.o=6;try{var ae=P(ee)>2?ee.g.statusText:""}catch(ee){ae=""}ee.l=ae+" ["+ee.ca()+"]",Oc(ee)}}finally{Pc(ee)}}}function Pc(ee,te){if(ee.g){ee.m&&(clearTimeout(ee.m),ee.m=null);const ne=ee.g;ee.g=null,te||D(ee,"ready");try{ne.onreadystatechange=null}catch(ee){}}}function P(ee){return ee.g?ee.g.readyState:0}function Ib(ee){try{if(!ee.g)return null;if("response"in ee.g)return ee.g.response;switch(ee.F){case"":case"text":return ee.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in ee.g)return ee.g.mozResponseArrayBuffer}return null}catch(ee){return null}}function Rc(ee,te,ne){return ne&&ne.internalChannelParams&&ne.internalChannelParams[ee]||te}function Sc(ee){this.za=0,this.i=[],this.j=new pb,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Rc("failFast",!1,ee),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Rc("baseRetryDelayMs",5e3,ee),this.Za=Rc("retryDelaySeedMs",1e4,ee),this.Ta=Rc("forwardChannelMaxRetries",2,ee),this.va=Rc("forwardChannelRequestTimeoutMs",2e4,ee),this.ma=ee&&ee.xmlHttpFactory||void 0,this.Ua=ee&&ee.Rb||void 0,this.Aa=ee&&ee.useFetchStreams||!1,this.O=void 0,this.L=ee&&ee.supportsCrossDomainXhr||!1,this.M="",this.h=new ec(ee&&ee.concurrentRequestLimit),this.Ba=new Dc,this.S=ee&&ee.fastHandshake||!1,this.R=ee&&ee.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=ee&&ee.Pb||!1,ee&&ee.ua&&this.j.ua(),ee&&ee.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&ee&&ee.detectBufferingProxy||!1,this.ia=void 0,ee&&ee.longPollingTimeout&&ee.longPollingTimeout>0&&(this.ia=ee.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function cc(ee){if(Tc(ee),3==ee.I){var te=ee.V++,ne=O(ee.J);if(S(ne,"SID",ee.M),S(ne,"RID",te),S(ne,"TYPE","terminate"),Uc(ee,ne),(te=new N(ee,ee.j,te)).M=2,te.A=Db(O(ne)),ne=!1,se.navigator&&se.navigator.sendBeacon)try{ne=se.navigator.sendBeacon(te.A.toString(),"")}catch(ee){}!ne&&se.Image&&((new Image).src=te.A,ne=!0),ne||(te.g=Hb(te.j,null),te.g.ea(te.A)),te.F=Date.now(),Fb(te)}Vc(ee)}function Vb(ee){ee.g&&(Pb(ee),ee.g.cancel(),ee.g=null)}function Tc(ee){Vb(ee),ee.v&&(se.clearTimeout(ee.v),ee.v=null),Ub(ee),ee.h.cancel(),ee.m&&("number"==typeof ee.m&&se.clearTimeout(ee.m),ee.m=null)}function bc(ee){if(!fc(ee.h)&&!ee.m){ee.m=!0;var te=ee.Ea;oe||ta(),ue||(oe(),ue=!0),Be.add(te,ee),ee.D=0}}function Zc(ee,te){var ne;ne=te?te.l:ee.V++;const re=O(ee.J);S(re,"SID",ee.M),S(re,"RID",ne),S(re,"AID",ee.K),Uc(ee,re),ee.u&&ee.o&&Kc(re,ee.u,ee.o),ne=new N(ee,ee.j,ne,ee.D+1),null===ee.u&&(ne.J=ee.o),te&&(ee.i=te.G.concat(ee.i)),te=Yc(ee,ne,1e3),ne.H=Math.round(.5*ee.va)+Math.round(.5*ee.va*Math.random()),Yb(ee.h,ne),Cb(ne,re,te)}function Uc(ee,te){ee.H&&ya(ee.H,(function(ee,ne){S(te,ne,ee)})),ee.l&&ya({},(function(ee,ne){S(te,ne,ee)}))}function Yc(ee,te,ne){ne=Math.min(ee.i.length,ne);const re=ee.l?p(ee.l.Ka,ee.l,ee):null;e:{var se=ee.i;let te=-1;for(;;){const ee=["count="+ne];-1==te?ne>0?(te=se[0].g,ee.push("ofs="+te)):te=0:ee.push("ofs="+te);let oe=!0;for(let ue=0;ue<ne;ue++){var ie=se[ue].g;const ne=se[ue].map;if((ie-=te)<0)te=Math.max(0,se[ue].g-100),oe=!1;else try{ie="req"+ie+"_"||"";try{var ae=ne instanceof Map?ne:Object.entries(ne);for(const[te,ne]of ae){let re=ne;n(ne)&&(re=Ve(ne)),ee.push(ie+te+"="+encodeURIComponent(re))}}catch(te){throw ee.push(ie+"type="+encodeURIComponent("_badmap")),te}}catch(ee){re&&re(ne)}}if(oe){ae=ee.join("&");break e}}ae=void 0}return ee=ee.i.splice(0,ne),te.G=ee,ae}function ac(ee){if(!ee.g&&!ee.v){ee.Y=1;var te=ee.Da;oe||ta(),ue||(oe(),ue=!0),Be.add(te,ee),ee.A=0}}function Wb(ee){return!(ee.g||ee.v||ee.A>=3)&&(ee.Y++,ee.v=ob(p(ee.Da,ee),Xc(ee,ee.A)),ee.A++,!0)}function Pb(ee){null!=ee.B&&(se.clearTimeout(ee.B),ee.B=null)}function $c(ee){ee.g=new N(ee,ee.j,"rpc",ee.Y),null===ee.u&&(ee.g.J=ee.o),ee.g.P=0;var te=O(ee.na);S(te,"RID","rpc"),S(te,"SID",ee.M),S(te,"AID",ee.K),S(te,"CI",ee.F?"0":"1"),!ee.F&&ee.ia&&S(te,"TO",ee.ia),S(te,"TYPE","xmlhttp"),Uc(ee,te),ee.u&&ee.o&&Kc(te,ee.u,ee.o),ee.O&&(ee.g.H=ee.O);var ne=ee.g;ee=ee.ba,ne.M=1,ne.A=Db(O(te)),ne.u=null,ne.R=!0,Eb(ne,ee)}function Ub(ee){null!=ee.C&&(se.clearTimeout(ee.C),ee.C=null)}function Qb(ee,te){var ne=null;if(ee.g==te){Ub(ee),Pb(ee),ee.g=null;var re=2}else{if(!Tb(ee.h,te))return;ne=te.G,$b(ee.h,te),re=1}if(0!=ee.I)if(te.o)if(1==re){ne=te.u?te.u.length:0,te=Date.now()-te.F;var se=ee.D;D(re=jb(),new nb(re,ne)),bc(ee)}else ac(ee);else if(3==(se=te.m)||0==se&&te.X>0||!(1==re&&function Wc(ee,te){return!(Xb(ee.h)>=ee.h.j-(ee.m?1:0)||(ee.m?(ee.i=te.G.concat(ee.i),0):1==ee.I||2==ee.I||ee.D>=(ee.Sa?0:ee.Ta)||(ee.m=ob(p(ee.Ea,ee,te),Xc(ee,ee.D)),ee.D++,0)))}(ee,te)||2==re&&Wb(ee)))switch(ne&&ne.length>0&&(te=ee.h,te.i=te.i.concat(ne)),se){case 1:R(ee,5);break;case 4:R(ee,10);break;case 3:R(ee,6);break;default:R(ee,2)}}function Xc(ee,te){let ne=ee.Qa+Math.floor(Math.random()*ee.Za);return ee.isActive()||(ne*=2),ne*te}function R(ee,te){if(ee.j.info("Error code "+te),2==te){var ne=p(ee.bb,ee),re=ee.Ua;const te=!re;re=new T(re||"//www.google.com/images/cleardot.gif"),se.location&&"http"==se.location.protocol||kc(re,"https"),Db(re),te?function Bc(ee,te){const ne=new pb;if(se.Image){const re=new Image;re.onload=ha(W,ne,"TestLoadImage: loaded",!0,te,re),re.onerror=ha(W,ne,"TestLoadImage: error",!1,te,re),re.onabort=ha(W,ne,"TestLoadImage: abort",!1,te,re),re.ontimeout=ha(W,ne,"TestLoadImage: timeout",!1,te,re),se.setTimeout((function(){re.ontimeout&&re.ontimeout()}),1e4),re.src=ee}else te(!1)}(re.toString(),ne):function Cc(ee,te){new pb;const ne=new AbortController,re=setTimeout((()=>{ne.abort(),W(0,0,!1,te)}),1e4);fetch(ee,{signal:ne.signal}).then((ee=>{clearTimeout(re),ee.ok?W(0,0,!0,te):W(0,0,!1,te)})).catch((()=>{clearTimeout(re),W(0,0,!1,te)}))}(re.toString(),ne)}else J(2);ee.I=0,ee.l&&ee.l.pa(te),Vc(ee),Tc(ee)}function Vc(ee){if(ee.I=0,ee.ja=[],ee.l){const te=hc(ee.h);0==te.length&&0==ee.i.length||(ka(ee.ja,te),ka(ee.ja,ee.i),ee.h.i.length=0,ja(ee.i),ee.i.length=0),ee.l.oa()}}function Zb(ee,te,ne){var re=ne instanceof T?O(ne):new T(ne);if(""!=re.g)te&&(re.g=te+"."+re.g),lc(re,re.u);else{var ie=se.location;re=ie.protocol,te=te?te+"."+ie.hostname:ie.hostname,ie=+ie.port;const ee=new T(null);re&&kc(ee,re),te&&(ee.g=te),ie&&lc(ee,ie),ne&&(ee.h=ne),re=ee}return ne=ee.G,te=ee.wa,ne&&te&&S(re,ne,te),S(re,"VER",ee.ka),Uc(ee,re),re}function Hb(ee,te,ne){if(te&&!ee.L)throw Error("Can't create secondary domain capable XhrIo object.");return(te=ee.Aa&&!ee.ma?new X(new Ec({ab:ne})):new X(ee.ma)).Fa(ee.L),te}function ad(){}function bd(){}function Y(ee,te){C.call(this),this.g=new Sc(te),this.l=ee,this.h=te&&te.messageUrlParams||null,ee=te&&te.messageHeaders||null,te&&te.clientProtocolHeaderRequired&&(ee?ee["X-Client-Protocol"]="webchannel":ee={"X-Client-Protocol":"webchannel"}),this.g.o=ee,ee=te&&te.initMessageHeaders||null,te&&te.messageContentType&&(ee?ee["X-WebChannel-Content-Type"]=te.messageContentType:ee={"X-WebChannel-Content-Type":te.messageContentType}),te&&te.sa&&(ee?ee["X-WebChannel-Client-Profile"]=te.sa:ee={"X-WebChannel-Client-Profile":te.sa}),this.g.U=ee,(ee=te&&te.Qb)&&!y(ee)&&(this.g.u=ee),this.A=te&&te.supportsCrossDomainXhr||!1,this.v=te&&te.sendRawJson||!1,(te=te&&te.httpSessionIdParam)&&!y(te)&&(this.g.G=te,null!==(ee=this.h)&&te in ee&&(te in(ee=this.h)&&delete ee[te])),this.j=new Z(this)}function cd(ee){gb.call(this),ee.__headers__&&(this.headers=ee.__headers__,this.statusCode=ee.__status__,delete ee.__headers__,delete ee.__status__);var te=ee.__sm__;if(te){e:{for(const ne in te){ee=ne;break e}ee=void 0}(this.i=ee)&&(ee=this.i,te=null!==te&&ee in te?te[ee]:void 0),this.data=te}else this.data=ee}function dd(){hb.call(this),this.status=1}function Z(ee){this.g=ee}(ee=X.prototype).Fa=function(ee){this.H=ee},ee.ea=function(ee,te,ne,re){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+ee);te=te?te.toUpperCase():"GET",this.D=ee,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=this.L?this.L.g():ve.g(),this.g.onreadystatechange=ie(p(this.Ca,this));try{this.B=!0,this.g.open(te,String(ee),!0),this.B=!1}catch(ee){return void Nc(this,ee)}if(ee=ne||"",ne=new Map(this.headers),re)if(Object.getPrototypeOf(re)===Object.prototype)for(var ae in re)ne.set(ae,re[ae]);else{if("function"!=typeof re.keys||"function"!=typeof re.get)throw Error("Unknown input type for opt_headers: "+String(re));for(const ee of re.keys())ne.set(ee,re.get(ee))}re=Array.from(ne.keys()).find((ee=>"content-type"==ee.toLowerCase())),ae=se.FormData&&ee instanceof se.FormData,!(Array.prototype.indexOf.call(je,te,void 0)>=0)||re||ae||ne.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[ee,te]of ne)this.g.setRequestHeader(ee,te);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(ee),this.v=!1}catch(ee){Nc(this,ee)}},ee.abort=function(ee){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=ee||7,D(this,"complete"),D(this,"abort"),Pc(this))},ee.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Pc(this,!0)),X.Z.N.call(this)},ee.Ca=function(){this.u||(this.B||this.v||this.j?Qc(this):this.Xa())},ee.Xa=function(){Qc(this)},ee.isActive=function(){return!!this.g},ee.ca=function(){try{return P(this)>2?this.g.status:-1}catch(ee){return-1}},ee.la=function(){try{return this.g?this.g.responseText:""}catch(ee){return""}},ee.La=function(ee){if(this.g){var te=this.g.responseText;return ee&&0==te.indexOf(ee)&&(te=te.substring(ee.length)),De(te)}},ee.ya=function(){return this.o},ee.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(ee=Sc.prototype).ka=8,ee.I=1,ee.connect=function(ee,te,ne,re){J(0),this.W=ee,this.H=te||{},ne&&void 0!==re&&(this.H.OSID=ne,this.H.OAID=re),this.F=this.X,this.J=Zb(this,null,this.W),bc(this)},ee.Ea=function(ee){if(this.m)if(this.m=null,1==this.I){if(!ee){this.V=Math.floor(1e5*Math.random()),ee=this.V++;const se=new N(this,this.j,ee);let ie=this.o;if(this.U&&(ie?(ie=Ba(ie),Da(ie,this.U)):ie=this.U),null!==this.u||this.R||(se.J=ie,ie=null),this.S)e:{for(var te=0,ne=0;ne<this.i.length;ne++){var re=this.i[ne];if(void 0===(re="__data__"in re.map&&"string"==typeof(re=re.map.__data__)?re.length:void 0))break;if((te+=re)>4096){te=ne;break e}if(4096===te||ne===this.i.length-1){te=ne+1;break e}}te=1e3}else te=1e3;te=Yc(this,se,te),S(ne=O(this.J),"RID",ee),S(ne,"CVER",22),this.G&&S(ne,"X-HTTP-Session-Id",this.G),Uc(this,ne),ie&&(this.R?te="headers="+L(Jc(ie))+"&"+te:this.u&&Kc(ne,this.u,ie)),Yb(this.h,se),this.Ra&&S(ne,"TYPE","init"),this.S?(S(ne,"$req",te),S(ne,"SID","null"),se.U=!0,Cb(se,ne,null)):Cb(se,ne,te),this.I=2}}else 3==this.I&&(ee?Zc(this,ee):0==this.i.length||fc(this.h)||Zc(this))},ee.Da=function(){if(this.v=null,$c(this),this.aa&&!(this.P||null==this.g||this.T<=0)){var ee=4*this.T;this.j.info("BP detection timer enabled: "+ee),this.B=ob(p(this.Wa,this),ee)}},ee.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,J(10),Vb(this),$c(this))},ee.Va=function(){null!=this.C&&(this.C=null,Vb(this),Wb(this),J(19))},ee.bb=function(ee){ee?(this.j.info("Successfully pinged google.com"),J(2)):(this.j.info("Failed to ping google.com"),J(1))},ee.isActive=function(){return!!this.l&&this.l.isActive(this)},(ee=ad.prototype).ra=function(){},ee.qa=function(){},ee.pa=function(){},ee.oa=function(){},ee.isActive=function(){return!0},ee.Ka=function(){},bd.prototype.g=function(ee,te){return new Y(ee,te)},t(Y,C),Y.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},Y.prototype.close=function(){cc(this.g)},Y.prototype.o=function(ee){var te=this.g;if("string"==typeof ee){var ne={};ne.__data__=ee,ee=ne}else this.v&&((ne={}).__data__=Ve(ee),ee=ne);te.i.push(new Me(te.Ya++,ee)),3==te.I&&bc(te)},Y.prototype.N=function(){this.g.l=null,delete this.j,cc(this.g),delete this.g,Y.Z.N.call(this)},t(cd,gb),t(dd,hb),t(Z,ad),Z.prototype.ra=function(){D(this.g,"a")},Z.prototype.qa=function(ee){D(this.g,new cd(ee))},Z.prototype.pa=function(ee){D(this.g,new dd)},Z.prototype.oa=function(){D(this.g,"b")},bd.prototype.createWebChannel=bd.prototype.g,Y.prototype.send=Y.prototype.o,Y.prototype.open=Y.prototype.m,Y.prototype.close=Y.prototype.close,Te=function(){return new bd},ge=function(){return jb()},fe=be,me={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},xe.NO_ERROR=0,xe.TIMEOUT=8,xe.HTTP_ERROR=6,pe=xe,Fe.COMPLETE="complete",Ce=Fe,fb.EventType=we,we.OPEN="a",we.CLOSE="b",we.ERROR="c",we.MESSAGE="d",C.prototype.listen=C.prototype.J,Ee=fb,X.prototype.listenOnce=X.prototype.K,X.prototype.getLastError=X.prototype.Ha,X.prototype.getLastErrorCode=X.prototype.ya,X.prototype.getStatus=X.prototype.ca,X.prototype.getResponseJson=X.prototype.La,X.prototype.getResponseText=X.prototype.la,X.prototype.send=X.prototype.ea,X.prototype.setWithCredentials=X.prototype.Fa,de=X}).apply(void 0!==Le?Le:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"function"==typeof SuppressedError&&SuppressedError;var Me=((Ie=class RE2Flags{}).FOLD_CASE=1,Ie.LITERAL=2,Ie.CLASS_NL=4,Ie.DOT_NL=8,Ie.ONE_LINE=16,Ie.NON_GREEDY=32,Ie.PERL_X=64,Ie.UNICODE_GROUPS=128,Ie.WAS_DOLLAR=256,Ie.LOOKBEHIND=512,Ie.MATCH_NL=Ie.CLASS_NL|Ie.DOT_NL,Ie.PERL=Ie.CLASS_NL|Ie.ONE_LINE|Ie.PERL_X|Ie.UNICODE_GROUPS,Ie.POSIX=0,Ie.UNANCHORED=0,Ie.ANCHOR_START=1,Ie.ANCHOR_BOTH=2,Ie);const ke=1,Ge=2,Ue=4,He=8,qe=16,Ke=512,Qe=128,je=new Int32Array(Qe),Je=new Int32Array(Qe),ze=65535;for(let ee=0;ee<Qe;ee++)je[ee]=ee>=97&&ee<=122?ee-32:ee,Je[ee]=ee>=65&&ee<=90?ee+32:ee;var We=(Ae=class{static toUpperCase(ee){if(ee<Qe)return je[ee];const te=String.fromCodePoint(ee).toUpperCase(),ne=te.codePointAt(0)>ze?2:1;if(te.length>ne)return ee;const re=String.fromCodePoint(te.codePointAt(0)).toLowerCase(),se=re.codePointAt(0)>ze?2:1;return re.length>se||re.codePointAt(0)!==ee?ee:te.codePointAt(0)}static toLowerCase(ee){if(ee<Qe)return Je[ee];const te=String.fromCodePoint(ee).toLowerCase(),ne=te.codePointAt(0)>ze?2:1;if(te.length>ne)return ee;const re=String.fromCodePoint(te.codePointAt(0)).toUpperCase(),se=re.codePointAt(0)>ze?2:1;return re.length>se||re.codePointAt(0)!==ee?ee:te.codePointAt(0)}},__setFunctionName(Ae,"Codepoint"),Ae.CODES=new Map([["",7],["\b",8],["\t",9],["\n",10],["\v",11],["\f",12],["\r",13],[" ",32],['"',34],["$",36],["&",38],["'",39],["(",40],[")",41],["*",42],["+",43],["-",45],[".",46],["0",48],["1",49],["2",50],["3",51],["4",52],["5",53],["6",54],["7",55],["8",56],["9",57],[":",58],["<",60],[">",62],["?",63],["A",65],["B",66],["C",67],["F",70],["P",80],["Q",81],["U",85],["Z",90],["[",91],["\\",92],["]",93],["^",94],["_",95],["`",96],["a",97],["b",98],["f",102],["i",105],["m",109],["n",110],["r",114],["s",115],["t",116],["v",118],["x",120],["z",122],["{",123],["|",124],["}",125]]),Ae),$e=class{constructor(ee,te=!1){this.data=ee,this.isStride1=te,this.SIZE=te?2:3}getLo(ee){return this.data[ee*this.SIZE]}getHi(ee){return this.data[ee*this.SIZE+1]}getStride(ee){return this.isStride1?1:this.data[ee*this.SIZE+2]}get length(){return this.data.length/this.SIZE}};const Ye=new Uint8Array(256);for(let ee=0,te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-";ee<64;ee++)Ye[te.charCodeAt(ee)]=ee;const decodeVLQ=ee=>{const te=[];let ne=0,re=0;for(let se=0;se<ee.length;se++){let ie=Ye[ee.charCodeAt(se)];ne|=(31&ie)<<re,32&ie?re+=5:(te.push(ne),ne=0,re=0)}return te},decodeRanges=(ee,te)=>{const ne=decodeVLQ(ee),re=te?ne.length/2:ne.length/3,se=new Uint32Array(3*re);let ie=0,ae=0;for(let ee=0;ee<re;ee++)ie+=ne[ae++],se[3*ee]=ie,ie+=ne[ae++],se[3*ee+1]=ie,se[3*ee+2]=te?1:ne[ae++];return se};var Xe=class{constructor(ee){this.initializer=ee,this.cache=new Map}has(ee){return ee in this.initializer}get(ee){if(this.cache.has(ee))return this.cache.get(ee);const te=this.initializer[ee],ne=te?te():null;return this.cache.set(ee,ne),ne}},Ze=(Pe=class{static get CASE_ORBIT(){return this._CASE_ORBIT||(this._CASE_ORBIT=(ee=>{const te=decodeVLQ(ee),ne=new Map;let re=0;for(let ee=0;ee<te.length;ee+=2){re+=te[ee];const se=te[ee+1],ie=se>>>1^-(1&se);ne.set(re,re+ie)}return ne})("rCgCIgCY+rQI4QiCuuBLgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCCgCBgCBgCBgCBgCBgCBgCB+7OB-BB-BB-BB-BB-BBskQB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BC-BB-BB-BB-BB-BB-BB-BByHBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBDCBBBCBBBCBBCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBxHBCBBBCBBBCBBB3SBmMBkNBCBBBCBBB8MBCBBB6MB6MBCBBC+EB0MB2MBCBBB6MB+MBiGBmNBiNBCBBBmKBikzCBmNBqNBkIBsNBCBBBCBBBCBBB0NBCBBB0NDCBBB0NBCBBByNByNBCBBBCBBB2NBCBBDCBBCwDFCBCBDBCBCBDBCBCBDBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBB9EBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCCBCBDBCBBBhGBvDBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBjICCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBH2iVBCBBBlKBwiVB+jVB+jVBCBBBlMBqEBuEBCBBBCBBBCBBBCBBBCBBB+hVB4hVB8hVBjNB7MC5MB5MCzMC1MB+0yCE5MB20yCC9MBu2yCBwyyCBo0yCChNBlNBo0yCBu-UBi0yCDlNC6-UBpNDrNIu+UDzNCm0yCBzNE0yyCBzNBpEBxNBxNBtEG1NLqxyCBkxyCnFoFrBCBBBCBBDCBBEkIBkIBkICoHHsCCqCBqCBqCCgEC+DB+DBmkOBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCC+BBgCBgCBgCBgCBgCBgCBgCBgCBrCBpCBpCBpCBmjOB-BB8BB-BB-BBgEB-BB-BByBBqgOBsDB-BBtwBB-BB-BB-BBsBBgDBCB-BB-BB-BBeB-BB-BB61OB-BB-BB-DB9DB9DBQB7DBmCE9CBrDBPBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBrFB-EBOBnHB3FB-FCCBBBNBCBBCjIBjIBjIBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB8kMB-BB6kMB-BB-BB-BB-BB-BB-BB-BB-BB-BBokMB-BB-BBkkMBkkMB-BB-BB-BB-BB-BB-BB-BB4jMB-BB-BB-BB-BB-BB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EBCBBBCBoiMBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBJCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBeBCBBBCBBBCBBBCBBBCBBBCBBBCBBBdBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDL-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-C64CgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOCgmOGgmODg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FDg8FBg8FBg8FhVg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBQBQBQBQBQBQDPBPBPBPBPBPjkC7mMB5mMBnmMBjmMBCBlmMB3lMBpiMBk8kCBCBBG-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FD-7FB-7FB-7F6FoglCEsuHRwjlCyDCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCB0DBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBG1DD97OCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQDPBPBPBPBPBPDQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQDPBPBPBPBPBPEQCQCQCQCPCPCPCPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPB0EB0EBsFBsFBsFBsFBoGBoGBgIBgIBgHBgHB8HB8HDQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQCSFPBPBzEBzEBRCxnOFSFrFBrFBrFBrFBREQBQClkOFPBPBnGBnGFQBQCljOCODPBPB-GB-GBNHSF-HB-HB7HB7HBRqJ53OE9tQBrmQH4Bc3BSgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfECBByZ0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzB34BgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CBCBBBt-UBruHBt+UB1iVBviVBCBBBCBBBCBBB3hVB5-UB9hVB7hVCCBBCCBBI9jVB9jVBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBICBBBCBBECBBN-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOC-lOG-lOzoeCBBBCBBBCBBBCBBBCBBBCBl8kCBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBTCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBnECBBBCBBBCBBBCBBBCBBBCBBBCBBDCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBKCBBBCBBBnglCBCBBBCBBBCBBBCBBBCBBECBBBvyyCDCBBBCBBBgDCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBn0yCB90yCB10yCBh0yCBn0yCCjxyCBzyyCBpxyCBg6BBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBB-CBl0yCBvjlCBCBBBCBBBt2yCBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBhkzCZCBB9a-5Bd-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCm6TCBB7gBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCH-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BmlBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvChDwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCFvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvC1DuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCCuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCCuCBuCBuCBuCBuCBuCBuCCuCBuCCtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCCtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCCtCBtCBtCBtCBtCBtCBtCCtCBtCk2BgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEO-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-D+CgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCL-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-B74CgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BhrVgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BhB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BD1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BtxekCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjC")),this._CASE_ORBIT}static get Print(){return this._Print||(this._Print=new $e(decodeRanges("hB9CBjBLBCpWBDFBFGBCCCBSBCsMBClBBDxBBDCBC2BBJaBFFBSVBC-FBCvBBD6BBDkDBP6BBDwBBDOBCbBDCCBJBGfBIqCBCgFBCHBDBBDVBCGBCEEBCBDIBDBBDDBJFFBCCBDBDYBDCBCFBFBBDVBCGBCBBCBBCBBDCCBDBFBBDCBEIIBCBCIIBPBLCBCIBCCBCVBCGBCBBCEBDJBCCBCCBDQQBCBDLBIGBCCBCHBDBBDVBCGBCBBCEBDIBDBBDCBICBFBBCEBDRBLBBCFBECBCDBEBBCCCBEEBEEBBBELBFEBECBCDBDHHPUBGMBCCBCWBCPBDIBCCBCDBIBBCCBCBBDDBDJBIVBCCBCWBCJBCEBDIBCCBCDBIBBGCBCDBDJBCCBNMBCCBCyBBCCBCFBFPBDZBCCBCRBEXBCIBCDDBFBEFFBEBCCCBGBHJBDCBN5BBFcBmBBBCCCBDBCXBCCCBVBDEBCCCBFBCJBDDBhBnCBCjBBFmBBCjBBCOBCMBmBlGBCGGD4LBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBDfBEZBH1CBDFBD-TBCbBE4CBIVBKXBKTBNMBCCBCBBN9CBDJBHJBHNBCKBH4CBIqBBGlCBLeBCLBFLBFEEBoBBDEBMrBBFZBHKBE9BBDgCBCcBDKBHJBHNBDtBBDLBVsCBClFBJ7BBEOBE9BBGqBBDKBJqBBG1QBDFBDlBBDFBDHBCGCBdBD0BBCOBCNBDFBCSBDCBCIBSXBJuBBSBBDaBCMBEhBBPgBBQrEBF5UBXKBWz4BBD9LBGsBBCGGD3BBIBBPXBKGBCGBCGBCGBCGBCGBCGBCGBC9DBjBZBC4CBN1GBbPBC+BBC1CBDmDBGqBBC9CBC1CBKvBBCszcBE2BBK7KBV3FBJ8GBV7BBEJBH3BBJlCBJLBHzDBMdBEtCBCKBFgBBC2BBKNBDJBDmDBZbBLFBDFBDFBKGBCGBC7BBF9DBDJBHj9KBNWBFwBBloItLBDpDBnBGBNEBGZBCEBCCCBCCBCCBoUBhBpBBHyBBCSBCDBFEBCmEBF9FBEFBDFBDFBDCBEGBCGBOBBDLBCZBCSBCBBCOBDNBjB6DBGCBFsBBE3CBCMBEwBwBBsBBjEcBEwBBQbBFjBBKdBGqBBGdBCkBBFNBrB9EBDJBHjBBFjBBFnBBJzBBMLBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBCnCBJIBxBSBCBBGgBBEaBGaBnB3BBFTBDxBBCBBGHBCCBCcBDCBFJBIIBI-BBhBmBBFLBK1BBEcBDaBGZBIDBNGBxCoCB4ByBBOyBBItBBJJBHlBBEcBJBBxGeBCpBBCCBDBBRFBJIBiBtBBJpBBXZBnBbBVWBKtCBFjBBK9BBCEBOYBIJBH0BBCRBJmBBK-CBCTBMRBCuBB-BGBCCCBCBCOBCKBH6BBGJBHDBCHBDBBDVBCGBCBBCEBCJBDBBDCBDHHGGBDGBEEBMJBCDDClBBCJBCDDCDBCJBCBBJBBe7CBCEBfnCBJJBnF1BBDlBBjBkCBMJBHMBU5BBHJBHTBdaBDOBFWB6F7BBlDyCBNHBDDDBGBCBBCdBCBBDLBKJBnCHBDtBBDKBcnCBJyCBOoCBIJB3CHB5ChBBPJBHIBCsBBCNBLcBEfBDVBCNBqCGBCBBCrBBECCBCCBHBJJBHFBCBBCkBBCBBCFBIJBHrBBFJB3HYBIQBCoBBEcB2CQQBwBBO6cBnDuDBCEBMjGBtyCiDBOvhBBRVBL68DBGmSB61G5BBn2B4RBIeBCJBFwCBCJBHdBDFBLlCBLJBCGBCUBGSBxN5BBnG6CBGYBDYBtBqCBF4BBIQBhCEBMGBK1mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBDDBh7D8HBEzNBHWBQQBQtBBDWBKzDB9B1HBLmBBDpCBJvDBWlCB7DTBNTBN2CBKYBoE0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBD9VBQEBCOBxiBeBHFB2GGBCQBDGBCBBCEBG9BBiBxDxDBrBBENBDJBFBBhKeBS5BBGxOxOBoBB3GqBBFhGhGBdBCVBJBBhHGBCDBCBBCOBCkGBDPBqBrCBFJBFBByYjCBtC8BBjGDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBBvIrBBFjDBNOBDOBCOBCkBBLtFB5BcBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBCmDBmgB-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIBnkzVvHB",!1))),this._Print}static get Upper(){return this.CATEGORIES.get("Lu")}},__setFunctionName(Pe,"UnicodeTables"),Pe._CASE_ORBIT=null,Pe._Print=null,Pe.CATEGORIES=new Xe({C:()=>new $e(decodeRanges("AfBgDgBBOrWrWBHHBCBICCVuMuMnBBBzBBBE4B4BBGBcDBHQBXhGhGxBBB8BBBmDNB8BBByBBBQddBCCMEBhBGBsCiFiFJBBDBBXIICCBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBPMMBEB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKMMBDBbEByBPBDBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBjoIBvLBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCB-FCBHBBHBBHBBECBIIIBLBDBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIB-BGGBLBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMBxhBPBXJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBF-6DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBrCHBxDUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIlkzVBxHvw-FB",!1)),Cc:()=>new $e(decodeRanges("AfgDgB",!0)),Cf:()=>new $e(decodeRanges("tFzqBzqBBEBXhGhGyBhMhMBxCxCs5D9-B9-BBDBbEByBEBCJBw03B6H6HBBBimEQQj7IPBhjiBDBwmFHBn0rYffB+CB",!1)),Cn:()=>new $e(decodeRanges("4bBBHDBICCVuMuMnBBBzBBBE4B4BBGBcDBHKBvI9B9BBmDmDBMB8BBByBBBQddBCCMEBjBEBuHJJBDDBXXICCBBBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBbFB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKmDmDNBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBDBvzIBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCC-FCBHBBHBBHBBECBIIIBIBGBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIBlCJBCBBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMB3iBJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBJ76DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBjGUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIm8yVBCdBhD-DBxHvw-BB---BBB---BBB",!1)),Co:()=>new $e(decodeRanges("gg4B-nGh4hc9--BD9--B",!0)),Cs:()=>new $e(decodeRanges("gg2B--B",!0)),L:()=>new $e(decodeRanges("hCZBHZBwBLLFGGBVBCeBCpOBFLBPEBICCiEEBCBBDDBCHHCCBCCCBSBCyCBCqEBJlFBClBBDHHBnBBoCaBFDBuBqBBkBBBCiDBCQQBIIBLLBBBDRRCdBe4CBMZZBfBKBBFGGBUBFKKEYYBXBIKBGXBCGBRpBB7B1BBETTIJBQPBFHBDBBDVBCGBCEEBCBERROBBCCBPBBLJJBEBFBBDVBCGBCBBCBBCBBgBDBCUUBBBRIBCCBCVBCGBCBBCEBETTQBBYMMBGBDBBDVBCGBCBBCEBEffBCCBBBQSSCFBECBCDBEBBCCCBEEBEEBBBELBX1B1BBGBCCBCWBCPBEbbBBBCBBDBBfFFBGBCCBCWBCJBCEBEffBBBCBBQBBSIBCCBCoBBDRRGCBJCBZFBGRBEXBCIBCDDBFB7BvBBCBBNGB7BBBCCCBDBCXBCCCBIBCBBKDDBDBCWWBCBhBgCgCBGBCjBBcEB0DqBBVRRBEBFDBEEEBIIBBBFMBNSSBkBBCGGDqBBCsKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPBR1CBDFBErTBDQBCZBGqCBHHBIRBOSBPRBPMBCCBQzBBkBFFkC4CBIEBDhBBCGGBkCBLeByBdBDEBMrBBFZB3BWBK0BBzC+C+CBtBBSHB3BdBOBBLrBBbjBBqBCBLjBBDKBGqBBDCBqBDBCFBCBBEGGB+FBhC1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGB1DOORMBmDFFDJBCEEBDBHGCBCBCKBDDBGEBF1B1BB8zC8zCBjHBHDBEBBNlBBCGGD3BBIRRBVBKGBCGBCGBCGBCGBCGBCGBCGBxC2O2OBrBrBBDBGBBF1CBHCBC5CBCDBGqBBC9CBSfBxBPBhQ-tGBhCs0VBkCtBBDsIBEPBLBBVuBBReBDlCByBIBDmDBDxCBVQBCCBCDBCWBezBBPxBB-BFBECCBMMBaBLWBacBIuBBdRRBDBCJBLEBCoBBYCBCHBVWBEEEBwBBCEEBDDBDBDCCZCBDKBICBNFBDFBDFBKGBCGBCqBBCNBHyDBej9KBNWBFwBBloItLBDpDBnBGBNEBGCCBIBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBlBZBHZBM4CBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmMcBEwBBwBfBOTBCHBHlBBLdBDjBBFHBxB9EBTjBBFjBBFnBBJzBBNKBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCQQBCBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4ByBBOyBBOjBBnBbBKWB7HpBBHBBRFB5BcBLJJBUBrBRBvBUBcWBN0BB6BBBDOOBrBBhBYBbjBBeDDJiBBENNBuBBPDBWCCkBRBCYBUBBgCGBCCCBCBCOBCJBIuBBnBHBDBBDVBCGBCBBCEBETTNEBfJBCDDClBBCaaCtBtBBzBBTDBVCBfvBBVBBC5F5FBtBBqBDBlBvBBV8B8BBpBBOoCoCBZBmBGB6FrBB1D-BBgBHBDDDBGBCBBCXBQCC-CHBDmBBRCCdLLBmBBIWWMtBBUTTBnCBoGgBBgBIBCkBBSyByBBcBxDGBCBBClBBWaaBEBCBBCfBPYYBqBBlISBQCCBLBChBB9DwCwCB4cBnHjGBtyCgDBQvhBBSFBa68DBGmSB61GdBj3B4RBIeBSuCBSdBTvBBRDBgBUBGSBxNsBB0G-BBhBYBDYBtBqCBGjCjCBLBhCBBCPPBNNB0mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBn7F0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BeBHFBmI9BBzEsBBLGBRiKiKBcBTrBBlPbBlHdBDwGwGBdBCCBCBBCGBDEBKBBhHGBCDBCBBCOBCkGB8BjCBI1lB1lBBCBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQBlqE-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),LC:()=>new $e(decodeRanges("hCZBHZB7BLLBVBCeBCiGBCDBFvGBDZBhGDBDBBECBCHHCCBCCCBSBCyCBCqEBJlFBClBBKoBB44ClBBCGGDqBBDCBhV1CBDFBjkCKBGqBBDCBhCrBBgCMBChBBmD1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGBmIFFDJBCEEBDBHGCBCBCFBFDDBCBGEBF1B1BB8zC8zCB6DBDmDBHDBEBBNlBBCGGzoetBBTbBnEtCBCWBEDBCsCBZBBE2Z2ZBpBBGIBIvCBh6TGBNEBqgBZBHZBmlBvCBhDjBBFjBB1DKBCOBCGBCBBCKBCOBCGBCBBk2ByBBOyBB+CVBLVB74C-BBhrV-BBhBYBDYBtpZ0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BJBCTBHFB2uCjCB",!1)),Ll:()=>new $e(decodeRanges("hDZB7BqBqBBWBCHBC2BCBQCBuBCDECBBBDCCDEEBFFDEEBBBDDDCCCDCCBCCDEECDDBDDBBBHGDCOCBSCBDDCEEC4BCBFBDDDBCCFICBjCBDZBiGCCEEEBBBTccBhBBCBBECBCWCBDBCGDB0B0BBuBBCgBCK0BCDMCBgDCxBoBBo6CqBBDCB5XFBjkCIBC2D2DBqBBgCMBChBBnD0ECBHBCgDCBHBJFBLHBJHBJFBLHBJHBJNBDHBJHBJHBJEBCBBHEEBBBCBBJDBDBBJHBLCBCBBzIEEBEEcKFDBBJDBF2B2Bs1CvBBCEEBGCFCCBCCBEBGiDCBIICFFNlBBCGG0oesBCUaCoEMCBBBC+BCBGBCCCDICFCCDCCBBBCSCGGGCMCFCCDOCbEE2ZqBBGIBIvCBh6TGBNEBqhBZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBnqZZBbGBCRBbZBbDBCCCBFBCKBbZBbZBbZBbZBbZBbZBbZBbZBbbBdYBCFBbYBCFBbYBCFBbYBCFBbYBCFBC15B15BBIBCTBHFB4vChBB",!1)),Lm:()=>new $e(decodeRanges("wVRBFLBPEBICCmEGG-OnHnHlFBBuIBBFgBgBKEEhFoFoF1mBgEgE2R72B72BsDkTkTxOFBvF+BBOjBjBBjBByVOORMBg-CBByHgGgG2OsBsBBDBGiDiDB+C+CBBB34bjnBjnBBEBvIzDzDdBB6DIBxCYYpDDBEBB2OXXqEtDtDWBBoDDBKngVngVuBBBh-BFBCpBBCIB0sBhBhB2K04D04DnrTDB9PCBpBBBnRMBhCBBCPPB9-P9-PBCBCGBCBByhM9BBqGGBud0Q0QsSAB",!1)),Lo:()=>new $e(decodeRanges("qFQQhIFFBCBxGBB7ZaBFDBuBfBCJBkBBBCiDBCZZBLLBBBDRRCdBe4CBMZZBfBWVBrBYBIKBGXBCGBRoBB8B1BBETTIJBROBFHBDBBDVBCGBCEEBCBERROBBCCBPBBLJJBEBFBBDVBCGBCBBCBBCBBgBDBCUUBBBRIBCCBCVBCGBCBBCEBETTQBBYMMBGBDBBDVBCGBCBBCEBEffBCCBBBQSSCFBECBCDBEBBCCCBEEBEEBBBELBX1B1BBGBCCBCWBCPBEbbBBBCBBDBBfFFBGBCCBCWBCJBCEBEffBBBCBBQBBSIBCCBCoBBDRRGCBJCBZFBGRBEXBCIBCDDBFB7BvBBCBBNFB8BBBCCCBDBCXBCCCBIBCBBKDDBDBYDBhBgCgCBGBCjBBcEB0DqBBVRRBEBFDBEEEBIIBBBFMBNyDyDBnKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPByDrTBDQBCZBGqCBHHBIRBOSBPRBPMBCCBQzBBpBkCkCBhBBC0BBIEBDhBBCGGBkCBLeByBdBDEBMrBBFZB3BWBK0BBxFuBBSHB3BdBOBBLrBBbjBBqBCBLdByDDBCFBCBBE7hB7hBBCB4-C3BBZWBKGBCGBCGBCGBCGBCGBCGBCGBoR2B2BF1CBJCCB4CBFGGBpBBC9CBSfBxBPBhQ-tGBhC0wUBC2jBBkCnBBJrIBFPBLBBjCyByBBkCBqFoDoDEGBCCBCDBCWBezBBPxBB-BFBECCBMMBaBLWBacBIuBBuBEBDIBLEBCoBBYCBCHBVPBCFBEEEBwBBCEEBDDBDBDCCZBBEKBIPPBEBDFBDFBKGBCGByEiBBej9KBNWBFwBBloItLBDpDBkCCCBIBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBqDJBCsBBDeBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmMcBEwBBwBfBOTBCHBHlBBLdBDjBBFHBhEtCBjDnBBJzBB9CzBBN2JBKVBLHB5EFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCQQBCBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4FjBBnBDBCxJxJBoBBHBBRCBCBB5BcBLJJBUBrBRBvBUBcWBN0BB6BBBDOOBrBBhBYBbjBBeDDJiBBENNBuBBPDBWCCkBRBCYBUBBgCGBCCCBCBCOBCJBIuBBnBHBDBBDVBCGBCBBCEBETTNEBfJBCDDClBBCaaCtBtBBzBBTDBVCBfvBBVBBC5F5FBtBBqBDBlBvBBV8B8BBpBBOoCoCBZBmBGB6FrBB0GHBDDDBGBCBBCXBQCC-CHBDmBBRCCdLLBmBBIWWMtBBUTTBnCBoGgBBgBIBCkBBSyByBBcBxDGBCBBClBBWaaBEBCBBCfBPYYBnBBCBBlISBQCCBLBChBB9DwCwCB4cBnHjGBtyCgDBQvhBBSFBa68DBGmSB61GdBj3B4RBIeBSuCBSdBTvBB0BUBGSB0NnBB2MqCBGwFwFB0mHBqBfBiDyDBuwIiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBxzI2P2PBrBBiBiKiKBcBTrBBlPaBmHdBDwGwGBdBCCBCBBCGBDEBKiHiHBFBCDBCBBCOBCkGB8pBDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQBlqE-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Lt:()=>new $e(decodeRanges("lOGDnB2sH2sHBGBJHBJHBNQQwBAB",!1)),Lu:()=>new $e(decodeRanges("hCZBmDWBCGBiB2BCDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIJDCMCDQCDDDCCBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBDDBBBEWCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBpCDBNDBNDBNEBMDBnIFFECBDCBDEEBDBHGCBCBDDBLBBG+B+B9zCvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoqZZBbZBbZBbCCBGDBDDBCBCHBbZBbBBCDBDHBCGBcBBCDBCEBCEEBFBcZBbZBbZBbZBbZBbZBfYBiBYBiBYBiBYBiBYBiB2pE2pEBgBB",!1)),M:()=>new $e(decodeRanges("gYvDB0IGBoIsBBCCCBCCBCCpCKBxBUBRmDmDBFBDFBDBBCDBkBffBZB8CKB7BIBKZZBCBCIBCCBCEBsBCB8BIBrBXBCgBB3BCBCRBCGBLBBeCB5BCCBFBDBBDCBKLLBbbDCB5BCCBDBFBBDCBEffBEEMCB5BCCBGBCCBCCBVBBXFBCCB5BCCBFBDBBDCBICBLBBf8B8BBDBECBCDBKpBpBBDB4BCCBFBCCBCDBIBBMBBeCB5BCCBFBCCBCDBIBBMBBQNNBCB4BBBCGBCCBCDBKLLBeeBBBnCFFBEBCCCBGBTBB+BDDBFBNHBjDDDBHBMGBqCBBcECFBByBTBCBBGKBCjBBKlDlDBSBYDBFCBCCBDGBEDBOLBCLLBCBgWCBzdDBdCBeBBfBBhCfBKuBuBBBBC2D2DBjBjB3DLBFLB8GEB6BJBCcBDxBxBBsBBDLBVEBwBQBnBIBNCBfMB5BNBxBTB5ECBCUBFHHDCBnG-BBxWgBB--CCBuEhDhDBeBrRFBqDBB1udDBCJBhBBBxCBBxIEEFYYBDBF0C0CBzBzBBQBbRBOnBnBBGBaMBtBDBwBNBlBkCkCBMBNJJBuBuBBBBzBCCBBBDBBGBBCqBqBBDBGBBtHHBCBBx5TiXiXBOBRPBuejHjH2EEBn0BCBCBBGDBpBCBFmFmFB+R+RBCBiCEB+JBBuCFBnCKByBDB7DCB2BOBqBDDBLLBCBuBKBI+B+BBBBlBNBRBBtBNNBBBxBNBJDBCBB9CLBHDD+ELBWDB4BBBCGBDBBDCBKLLBDDBFBEEBkCIBCDDCDBCEBCPPBzCzCBQBYyCyCBSBsHGBDIBcBBzCQBrDMBmDOBhIOB2HFBCBBDDBCCCBuEuEBFBDGBEddBIBpBGBCDBJKKBJBvBPBnGHBoGHBCHBzCVBCNB7DFBECCBCCBFBCjCjCBDBCBBCEB8KDBKBBCxBxBBFBEEBYmnFmnFHOBpmLRBhuCEB8BGB5gBCCB1BBIDByCMMBslTslTBizEizEBsBBDWB-QEBEFBJHBDGBfDB1ECB89B2BBFxBBJPPXEBCOBxqBGBCQBDGBCBBCEBlDhFhFBFB4L+B+BBCB9PDB-HBB0HDDIBBG7O7OBFBuDGB29lYvHB",!1)),Mc:()=>new $e(decodeRanges("joC4B4BDCBJDBCBBzBBB7BCBHBBDBBLsBsB7BCBjC7B7BBBBJCCB2B2BB7B7BCHHBDDBLLnDBBCBBECBCCBLqBqBBBB+BDB+BBB7BCCBDBDBBCBBKBBdPPB7B7BBBBGCBCCBLrBrBBsCsCBBBHHBTBBrKBBgCsFsFBFFHDDBaaBLLBBBDGBWBBDFBDLLBBB5zBffiEIIBGBCBB7KDBDCBFBBCFBhHBB7BCCKCCBJJBEByExBxBGCCBDBCBB+BffFBBD9B9BDCBCEEBxBxBBGBJBBsFWW35EBB0-dBBD5C5CBzBzBBOBvEBBwBxBxBBFFBDDBBBvDBBDBBZuBuBCuDuDDBBGuHuHBCCBCCBCC0gZCCgEuBuBBBBFBB0DZZB8B8BxBCBKBBO+C+CBBBEBBCrFrFBBBgBBB7BBBCDBDBBDCBKLLB1C1CBBBIDDCDBCBBCmDmDBBBJBBErDrDBBBHCCBCBDuHuHBBBHDBDyDyDBBBJBBCuDuDCBBHoDoDCBBFmImIBBBK4H4HBEBCBBFDDCvEvEBBBJDBF1C1CeBB-BqGqGECCoGPPrDIID2G2GBDBFBBC-K-KBNNxBBBJBBCpvQpvQBBBlxD2BBpDBB0rYBBHFB",!1)),Me:()=>new $e(decodeRanges("okBBB1xF-wB-wBBCBCCBsshBCB",!1)),Mn:()=>new $e(decodeRanges("gYvDB0IEBqIsBBCCCBCCBCCpCKBxBUBRmDmDBFBDFBDBBCDBkBffBZB8CKB7BIBKZZBCBCIBCCBCEBsBCB8BIBrBXBCfB4BCCFHBFEEBFBLBBe7B7BFDBJVVBbbDBB6BFFBFFBDDBBBEffBEEMBB6BFFBDBCBBFVVBXXBEBC7B7BDCCBCBJIIBMMBff+BNNzBEE4BCCBBBGCBCDBIBBMBBe7B7BDHHGBBVBBdBB6BBBFDBJVVBeepCIIBBBC7C7CDGBNHBjDDDBHBMGBqCBBcEC4BNBCEBCBBGKBCjBBKnDnDBCBCFBCBBDBBaBBFCBRDBODDBHHQgWgWBBBzdCBeBBfBBfBBhCBBCGBJDDBJBKuBuBBBBC2D2DBjBjB3DCBFBBKHHBBB8GBBD7B7BCGBCCCDHBHJBDxBxBBMBCeBDLBVDBxBCCBDBCGGpBIBNBBhBDBDBBCCB5BCCBEECCB7BHBDBB5ECBCMBCGBFHHEBBnG-BBxWMBFEEBKB--CCBuEhDhDBeBrRDBsDBB1udFFBIBhBBBxCBBxIEEFaaBGG4EBBbRBOnBnBBGBaKBvBCBxBDDBCBDBBoBkCkCBEBDBBDBBNJJwB0B0BCCBDBBGBBCrBrBBJJvHDDFx5Tx5TiXPBRPBuejHjH2EEBn0BCBCBBGDBpBCBFmFmFB+R+RBCBiCEB+JBBuCFBnCKByBDB8D3B3BBNBqBDDBLLBBByBDBDBBI+B+BBBBlBEBCHB-BNNB1B1BBHBLDBDgDgDBBBDCCBHHD+E+EEHBWBB6BBBEmBmBBFBEEBnCFBOECPBB2CHBDCBCYY1CFBCFFBCCBvHvHBCBHBBCBBcBB2CHBDCCBrDrDCDDBEBCmDmDCDDBCBCEBkIIBCBBhIBBCFFxEDBDBBFhBhBBIBpBFBDDBJKKBEBDCBvBMBCBBnGCCBBBCqGqGBFBCFBCzCzCBUBDGBCBBCBB7DFBECCBCCBFBCpCpCBEEC8K8KBMMB1B1BBDBGCCYmnFmnFHOBpmLLBECBhuCEB8BGB5gBgCgCBCByC5lT5lTBizEizEBsBBDWBhRCBSHBDGBfDB1ECB89B2BBFxBBJPPXEBCOBxqBGBCQBDGBCBBCEBlDhFhFBFB4L+B+BBCB9PDB-HBB0HDDIBBG7O7OBFBuDGB29lYvHB",!1)),N:()=>new $e(decodeRanges("wBJB5DBBGDDBBBitBJBnEJBnGJB9MJB3DJBFFBtDJB3DJB3DJBDFBvDMB0DJBJGBoDJBpDGBISBuDJBhDJB3DJBnCTBtIJBnCJBwWTBybCBwHJBHJBXJBtJJBhEKBmFJBHJB3FJB3CJBnEJBHJB3gBEEBEBHJBnGyBBDEB3W7BBvCVB3TdBqrBqYqYaIBPCB4KDBrEJBfHBCOBhBJBoBOBh7cJB9FJBhKFB7EJBnBJBnGJBXJB3CJB3MJB34UJBuPsBBN4BBSBB2KaBlBDBeJJnEEBrGJBvdHBaGBoBIBsCEBXFBhFBBDPBDtBBhCIB1BBBfCBsCEBpDHBZHBqBGBrKFBxBJBHJB3IeB-EJBrBDBxDGBnEdBhEJB9BJBxEJBITB8HJB3KJB3DJB3LJBnDJBHTBtCLBlNSB+CJB3UJB3CcBkHJBnCJB3BJBnLJBnDUBshBuDBimPJBnpCJB3CJBnEJBCGBvQJBnIWB+KCB6nXJBnuBTBNTBtDYB2iBxBBhqCJBnNJB3PJB4HJBtWIBhEJB4Y6BBCCBCDBtCsBBCOBjeMBk3CJB",!1)),Nd:()=>new $e(decodeRanges("wBJnxBJnEJnGJ9MJ3DJ3DJ3DJ3DJ3DJ3DJ3DJ3DJ3DJhDJ3DJnCJ3IJnCJn6BJnBJtJJhEJnFJHJ3FJ3CJnEJHJnuiBJnVJnBJnGJXJ3CJ3MJ34UJnsBJnkCJHJ9YJhEJ9BJxEJ3IJ3KJ3DJ3LJnDJHTtCJnNJnDJ3UJ3CJ3HJnCJ3BJnLJ3uQJnpCJ3CJnEJ3QJ37XJ12CxBhqCJnNJ3PJ4HJ2aJ30EJ",!0)),Nl:()=>new $e(decodeRanges("u3FCBwzCiBBDDB-zDaaBHBPCBs1dJBxyW0BBtOJJnEEBrhIuDBm8SCB",!1)),No:()=>new $e(decodeRanges("yFBBGDDBBB2pCFB5LFB5DCBmEGB6GGBSIByNJB2hBTB0jBJBhP20B20BEFBHJBnGPBqB3W3WB6BBvCVB3TdBqrB1kB1kBBCBrEJBfHBCOBhBJBoBOBxrdFBymWsBBiCDBSBB2KaBlBDB1pBHBaGBoBIBsCEBXFBhFBBDPBDtBBhCIB1BBBfCBsCEBpDHBZHBqBGBrKFBhLeB-EJBrBDBxDGBnETB8LTBmqBBBvNIBobSB0aUBn8SGB-YWBqhZTBNTBtDYBvqFIBid6BBCCBCDBtCsBBCOBjeMB",!1)),P:()=>new $e(decodeRanges("hBCBCFBCDBLBBEBBbCBCccCkBkBGEELBBEEE-VJJzOFBqBBB0BCCDDDtBBBVBBCBBOCCBBBrCDBnDsBsBBMBqHCB3BOBgBmImIBLLtE5D5D6DnMnMNwLwL7CLLBpFpFBNBCmBmBBCBoCrCrCBDBFBBwDFBsFlTlTBHB4EuTuTtBBBvCCBoCBB+ECBCCBmBKB6JBB5GBBhEGBCFBhFBBLGBdCB9DDB8BEB-BBBhCHBM9Z9ZBWBJTBCMBCLBfBBPBB6TDBeBB+hBNBwCBBgBJB0MVBgCDBhBBB8XDBCBBxDwEwEBtBBCfBDLBkNCBFJBDLBRNNjD7C7CjgdBBuICBkDLL0DFB9LDB3CBBpBCBCyByBBwBwBiDMBRBB9DDB-DBBRBB6HzqUzqUBxGxGBIBXiBBCNBCFFCBB2ECBCFBCDBLBBEBBbCBCccCCCBFB7MCB9UxBxB-MoXoXoGgBgBxIIBnBxDxDBFBjCGB6CDByO-J-JjBlElEBDBtBDB+FGBuDBBCDB-DDBxBBBwCDBFOOCCB5CFBsDrJrJBCCBzDzDBDBLBBCpDpD7HWBqDCBdMBtCjEjEBBB9HpIpIBBB8E9C9CBGB0CCBCEB+CJB4GgDgDBDBrBBBmUBBrCMBwFxjBxjBBDB97CBB8zOBBmEiCiCBDBJpRpRBBBoJDBoK9lT9lTovHEB07C-a-aBAB",!1)),Pc:()=>new $e(decodeRanges("-Cg-Hg-HBUU-u3BBBZCBwHAB",!1)),Pd:()=>new $e(decodeRanges("tB9qB9qB0BiyDiyDmgBqgCqgCBEBiwDDDgBBBFdd-NUUwDxszBxszBBmBmBLqFqFhzD-J-J",!1)),Pe:()=>new $e(decodeRanges("pB0B0BgB+1D+1DC-6B-6BqtC4B4BQ7T7TCff-hBMCxChBhBCGC1MUChCCCiBmhBmhBCECtBGCtNICEGCDBB-ozB6G6GeOCESSCCCrF0B0BgBGD",!1)),Pf:()=>new $e(decodeRanges("7F+6H+6HEddpuDCCFDDQEE",!1)),Pi:()=>new $e(decodeRanges("rFt7Ht7HDBBDaapuDCCFDDQEE",!1)),Po:()=>new $e(decodeRanges("hBCBCCBDECBLLBEEBcclCGGPBBI-V-VJzOzOBEBqB3B3BDDDtBBBVBBCBBOCCBBBrCDBnDsBsBBMBqHCB3BOBgBmImIBLLtE5D5D6DnMnMNwLwL7CLLBpFpFBNBCxDxDrCEBFBBwDFBsFlTlTBHBmY9D9DBBBoCBB+ECBCCBmBFBCDB6JBB5GBBhEGBCFBhFBBLGBdCB9DDB8BEB-BBBhCHBMjajaBJJBGBJIBDDBDCBEKBCCCBIB7kDDBCBBxDwEwEBFFBBBDDDBHBCBBCDDBLLBDBCJBDDBCCCBLBDCBtNCB6B+F+FjgdBBuICBkDLL0DFB9LDB3CBBpBCBCyByBBwBwBiDMBRBB9DDB-DBBRBB6HlxUlxUBFBDXXVBBDDBECBCDBICBHCCB2E2EBBBCCBDECBLLBEEBcclBDDB7M7MBBB9UxBxB-MoXoXoGgBgBxIIBnBxDxDBFBjCGB6CDB0ZlElEBDBtBDB+FGBuDBBCDB-DDBxBBBwCDBFOOCCB5CFBsDrJrJBCCBzDzDBDBLBBCpDpD7HWBqDCBdMBtCjEjEBBB9HpIpIBBB8E9C9CBGB0CCBCEB+CJB4GgDgDBDBrBBBmUBBrCMBwFxjBxjBBDB97CBB8zOBBmEiCiCBDBJpRpRBBBoJDBoK9lT9lTovHEB07C-a-aBAB",!1)),Ps:()=>new $e(decodeRanges("oBzBzBgB-1D-1DC-6B-6B-rCEEnB4B4BQ7T7TCff-hBMCxChBhBCGC1MUChCCCiBmhBmhBCECaTTCECtNICEGCDipzBipzB4GeeCMCESSCCCrFzBzBgBEEDAB",!1)),S:()=>new $e(decodeRanges("kBHHRCBgBCCcCCkBEBCBBDCCBCBDEEfgBgBrODBNNBGGBCCCBPB2DPPBxDxDsErIrIBBB3DCBDDDBvGvGLUUB4H4HIBBpEqLqLBHHB2H2H-DjEjEBGBlEwGwGqBmGmGiGCBQCCBBBDFBVECmEHBCFBCBBGDBmGBBxXJB0WuLuLlL+E+EBgBBiLJBKIBhiBCCBBBMCBOCBOCBOBBmCOOoBCBOCBUhBB-BBBCDBCBBLCCBBBGFBCECFMMBFFBDBGDBC7B7BBFFB2LBFcBD+HBXKByCtCBXnTBtBwBBDeBLyMBX+BBFfBD1LBDpEBmHFBmLBBvBZBC4CBN1GBbPBFOOBNNWBBHBB8CBB0HBBFJBhBlBBKRRBdBMdBJQQBeBLmBBQ-JBhuG-BBx0V2BB6RWBKBBoDBB+EDBLDB+RCBiHPPB+9T+9TpEgBBuLPBhCBB3BHBtBDBjDCCBBBD7E7EHRRBBBgBCCcCCiEGBCGBOBB6JIB6BQBDCBCMBEwBwBBrBB7zBBBwSmWmWBiKiKBGBnjC2kC2kCBbBr6SDBG3qU3qUk7DvHBLCBEzNBHWBQQBgDzDB9B1HBLmBBD7BBGCBXBBIdBF8BBWhCBE7F7FB1CBrbaagBaagBaagBaagBaa9B-PB4BDBzBHBCNBCBBp2BwNwNttCEE+DiOiOBvIvIBqBBFjDBNOBDOBCOBCkBBYgFB5BcBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBC7CBLAB",!1)),Sc:()=>new $e(decodeRanges("kB+D+DBCBqnB8D8DzPBBzPBBI2H2HoImSmS8sClmClmCBgBB37hBkuVkuVtD7E7E8GBBEBB3-HDB-4wBxtCxtC",!1)),Sk:()=>new $e(decodeRanges("+CCCoCHHFEEqQDBNNBGGBCCCBPB2DPPBjoBjoB15FCCBBBMCBOCBOCBOBB9kEBBkzdWBKBBoDBBxePPBniUniUBPB8bCCjF4g9B4g9BBDB",!1)),Sm:()=>new $e(decodeRanges("rBRRBBB+BCCuBFFmBgBgB-XwQwQBBB8xGOOoBCBOCBsEoBoBBDBHlClCBDBGBBFGDIgBgBBDDCgBgBBqIBhBBB7CffBXBpBFB2OKK3BHBwDxKxKBDBDeBLPBhIiEBX+BBFfBDhIBxBUBDFB9+zB5Z5ZCCBlFRRBBB+BCCkEHHBCBitDBBhrwBx+Bx+BagBgBagBgBagBgBagBgBat5Ft5FB-uC-uCBHB",!1)),So:()=>new $e(decodeRanges("mFDDFCCyerIrIBgEgEBvGvGLUUB4H4HkQ2L2LjEFBClElEwGqBqBoMCBQCCBBBDFBVECmEHBCFBCBBGDBmGBBxXJB0WzWzW+EhBBiLJBKIBksBBBCDBCBBLCCBHHBEBCECFMMBPPCBBC7B7BBKKBDBDDBCBBCBBCGBCeBDBBCCCBdBtIHBFTBDGBDwCBCdBanBBHnCBXKByCtCBX2FBCIBC1BBJuDBC3HBtBrBBhC-HBhQvBBWBBHmBBDpEBmHFBmLBBvBZBC4CBN1GBbPBFOOBNNWBBHBBxKBBFJBhBlBBKRRBdBMdBJQQBeBLmBBQ-JBhuG-BBx0V2BBibDBLBBC+R+RBBBqqUPBuLPBhCBB3BHBuBCBlPEEFBBOBB6JIB6BQBDCBCMBEwBwBBrBB7zBBBwSpgBpgBBGBnjC2kC2kCBGBFQBr6SDBG3qU3qUk7DvHBLCBEzNBHWBQPBhDzDB9B1HBLmBBD7BBGCBXBBIdBF8BBWhCBE7F7FB1CBqlB-PB4BDBzBHBCNBCBBp2B96C96CiEyWyWBqBBFjDBNOBDOBCOBCkBBYgFB5BcBOrBBFIBIBBPFB7E6HBG4WBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBB-B3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBC7CBLAB",!1)),Z:()=>new $e(decodeRanges("gBgEgEgvFgsCgsCBJBeBBGwBwBh9DAB",!1)),Zl:()=>new $e(decodeRanges("ohIA",!0)),Zp:()=>new $e(decodeRanges("phIA",!0)),Zs:()=>new $e(decodeRanges("gBgEgEgvFgsCgsCBJBlBwBwBh9DAB",!1)),ASCII_Hex_Digit:()=>new $e(decodeRanges("wBJIFbF",!0)),Alphabetic:()=>new $e(decodeRanges("hCZBHZBwBLLFGGBVBCeBCpOBFLBPEBICC3CeeBQBCBBDDBCHHCCBCCCBSBCyCBCqEBJlFBClBBDHHBnBBoBNBCCCBCCBCCJaBFDBeKBG3BBCGBPlDBCHBFHBFCBLCBDRRBuBBOkDBZgBBKBBFGGBWBDSBUYBIKBGXBCGBIJJBoBBLLBEGBHrCBCPBCCBFOBOSBCHBDBBDVBCGBCEEBCBEHBDBBDBBCJJFBBCEBNBBLFFBBBCFBFBBDVBCGBCBBCBBCBBFEBFBBDBBFIIBCBCSSBEBMCBCIBCCBCVBCGBCBBCEBEIBCCBCBBEQQBCBWDBFCBCHBDBBDVBCGBCBBCEBEHBDBBDBBKBBFBBCEBORRBCCBEBECBCDBEBBCCCBEEBEEBBBELBFEBECBCCBEHHpBMBCCBCWBCPBEHBCCBCCBJBBCCBCBBDDBdDBCHBCCBCWBCJBCEBEHBCCBCCBJBBGCBCDBOCBNMBCCBCoBBDHBCCBCCBCGGBCBIEBXFBCCBCRBEXBCIBCDDBFBJFBCCCBGBTBBO5BBGGBH0B0BBECBDBCXBCCCBRBCCBDEBCHHPDBhBgCgCBGBCjBBFSBFPBCjBBkC2BBCDDBDBR-BBLDBDlBBCGGDqBBCsKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPBR1CBDFBErTBDQBCZBGqCBEKBITBMUBNTBNMBCCBCBBNzBBDSBPFFkC4CBIqBBGlCBLeBCLBFIBYdBDEBMrBBFZB3BbBF+BBDTBzBYYBMMBBByBzBBCOBCHB0BpBBDDBLrBBCKBP2BBXCBLjBBDKBGqBBDCBqBDBCFBCBBEGGB+FBUhBBM1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGB1DOORMBmDFFDJBCEEBDBHGCBCBCKBDDBGEBFSSBnBBuZzBB34BkHBHDBEBBNlBBCGGD3BBIRRBVBKGBCGBCGBCGBCGBCGBCGBCGBCfBwB2O2OBBBaIBIEBDEBF1CBHCBC5CBCDBGqBBC9CBSfBxBPBhQ-tGBhCs0VBkCtBBDsIBEPBLBBVuBBGHBEwDBoBIBDmDBDxCBVUBCgBBZzBBNjCBCtBtBBEBECCBBBLgBBGiBBOcBEyBBCLBQRRBOBLEBC2BBKNBTWBEkCBCCCZCBDPBDDBMFBDFBDFBKGBCGBCqBBCNBH6DBWj9KBNWBFwBBloItLBDpDBnBGBNEBGLBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBlBZBHZBM4CBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmC0BBsIcBEwBBwBfBOdBGqBBGdBDjBBFHBCEBrB9EBTjBBFjBBFnBBJzBBNKBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCDBCBBGHBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4ByBBOyBBOnBBjBbBEGGBVB7HpBBCBBEBBRFBzBCBEcBLJJBUBrBRBvBUBcWBKlCBsBEBL4BBKOOBXBYyBBSDBJiBBEKKB+BBCDBKBBLCCkBRBChBBDHHBCB-BGBCCCBCBCOBCJBI4BBYDBCHBDBBDVBCGBCBBCEBEHBDBBDBBEHHGGBdJBCDDClBBCJBCDDCDBCBBECCtBhCBCCBCDBVCBfhCBDBBC5F5FB0BBDGBaFBjB+BBCEE8B1BBDoCoCBZBDNBWGB6F4BBoD-BBgBHBDDDBGBCBBCdBCBBDBBDDB+CHBDtBBDFBCCCBccBxBBDJBSnCBGTTBnCBoDHB5CgBBgBIBCsBBCGBCyByBBcBDVBCNBqCGBCBBCrBBECCBCCBBBCDDBZZBEBCBBCkBBCBBCDBCYYBqBBlIWBKQBCoBBECBwDwCwCB4cBnDuDBSjGBtyCgDBQvhBBSFBa68DBGmSB61GuBBy2B4RBIeBSuCBSdBTvBBRDBgBUBGSBxNsBB0G-BBhBYBDYBtBqCBF4BBIQBhCBBCNNBFBK1mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBFi7Fi7FBzCBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BeBHFB2GGBCQBDGBCBBCEBG9BBiBxDxDBrBBLGBRiKiKBcBTrBBlPbBlHdBDwGwGBdBCVBJBBhHGBCDBCBBCOBCkGB8BjCBEEE1lBDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1TZBHZBHZB3zD-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Dash:()=>new $e(decodeRanges("tB9qB9qB0BiyDiyDmgBqgCqgCBEB+BoBoBQnMnMlgDDDgBBBFdd-NUUwDxszBxszBBmBmBLqFqFhzD-J-J",!1)),Emoji:()=>new $e(decodeRanges("jBHHGJBwDFFu8HNN5GXX7CFBQBBwLBBNnFnFaKBFCBoGoHoHBLLK7B7BBCBCEBKGDBDDFDDCBBDIEBJJBBBGCCGLBMBBDCCBCCTDDBTTBEBCCCBEEBGGDBBFBBMBBGBBDGGBECBVVBGGBEBCDBDFFDDDBEBCDDCCCHEEHLLBQQDFFCFFBBBCMMBxBxBBBBKeP1LBBwOCBUBB0BFF7mBNN6SCCrrvDrGrGhFBBNBBPDDBIBsCZBCBBYVVDIBWBBvFhBBDvDBDBBCCBDyCBDCBCmIBC+BBMFBCXBIBBDHBNDDBCBDFFBOOBDDJBBKGGBBBNCBJCBDCCFHHEHHB0CBxBlCBGHBDDBEJBECCBEEDJBkHLBF8I8IBtBBCJBC4FBxDMBEKBE4BBCFFBOBDLBFJB",!1)),Emoji_Component:()=>new $e(decodeRanges("jBHHGJB0+H2G2Gsp3B3+8B3+8BBYB8PEBxtBDBtzhY-CB",!1)),Emoji_Modifier:()=>new $e(decodeRanges("7-8DE",!0)),Emoji_Modifier_Base:()=>new $e(decodeRanges("9wJ8G8GRDB4jzD9B9BBBBDDDBBB2DBBDKBWSBEFFBBBCCBICCZqGqGBFFWFFBvFvFBBBEEB0CRRBBBKMMgSDDJHBHKKBIBDCB5B+B+BBCCBCCSCBCMBmHCBrBIB",!1)),Emoji_Presentation:()=>new $e(decodeRanges("64IBBuGDBEDDqQBBWBBzBLBsBUUOJJBSSBGGBJJGWWIBBCFFDIIFBBdkBkBCFFBBBC+B+BBBBZPP8aBB0BFFvlxDrGrG-FDDBIBsCZBCZZVDDBDBCCBWBBvFgBBNIBClCBCVBNqBBFEBNQBEEEBlCBCCCB5FBD+BBODBCXBTbbBOO3C0CBxBlCBHEEBBBDDBEDBMBBIIBkHLBF8I8IBtBBCJBC4FBxDMBEKBE4BBCFFBOBDLBFJB",!1)),Extended_Pictographic:()=>new $e(decodeRanges("pFFFu8HNN5GXX7CFBQBBwLBBNnFnFaKBFCBoGoHoHBLLK7B7BBCBCEBKGDBDDFDDCBBDIEBJJBBBGCCGLBMBBDCCBCCTDDBTTBEBCCCBEEBGGDBBFBBMBBGBBDGGBECBVVBGGBEBCDBDFFDDDBEBCDDCCCHEEHLLBQQDFFCFFBBBCMMBxBxBBBBKeP1LBBwOCBUBB0BFF7mBNN6SCCrrvDoBoBBCBlDLBQBBQPPBmBmBBIBxDBBNBBPDDBIBU3BBcOBLVVDIBCDBKWBH7FBDvDBDBBCCBDyCBDCBCDBG9HBC+BBMFBCXBIBBDHBNDDBCBDFFBOOBDDJBBKGGBBBNCBJCBDCCFHHEHHB0CBxBlCBGHBDQBECCBEBDMB7GlBBNDB5BHBLFBpBHBfBBNDBDNBKmBBNuBBCJBC4FB5CHBPxEBhI9fB",!1)),Hex_Digit:()=>new $e(decodeRanges("wBJIFbFq1-BJIFbF",!0)),Lowercase:()=>new $e(decodeRanges("hDZBwBLLFlBlBBWBCHBC2BCBQCBuBCDECBBBDCCDEEBFFDEEBBBDDDCCCDCCBCCDEECDDBDDBBBHGDCOCBSCBDDCEEC4BCBFBDDDBCCFICBjCBDiBBIBBfEBhDsBsBCEEDDBTccBhBBCBBECBCWCBDBCGDB0B0BBuBBCgBCK0BCDMCBgDCxBoBBo6CqBBCDB5XFBjkCIBC2D2DB+FBiC0ECBHBCgDCBHBJFBLHBJHBJFBLHBJHBJNBDHBJHBJHBJEBCBBHEEBBBCBBJDBDBBJHBLCBCBB6DOORMBuDEEBEEcKFDBBJDBFiBiBBOBFsasaBYBn6BvBBCEEBGCFCCBCCBGBEiDCBIICFFNlBBCGG0oesBCUaCBBBmEMCBBBC8BCBIBCCCDICFCCDCCBBBCSCGGGCMCFCCDOCWDBCCCBBB2ZqBBCNBHvCBh6TGBNEBqhBZBumBnBBpEjBB8EKBCOBCGBCBBkODDBBBCpBBCIBmoByBB+DVB75CfBhsVfB8BYBnqZZBbGBCRBbZBbDBCCCBFBCKBbZBbZBbZBbZBbZBbZBbZBbZBbbBdYBCFBbYBCFBbYBCFBbYBCFBbYBCFBC15B15BBIBCTBHFBmI9BB1lChBB",!1)),Math:()=>new $e(decodeRanges("rBRRBBBgBeeCuBuBFmBmBgB5W5WBBBDbbBDDBBBwQCBuwGccBBBMEEOPPBCBWEBMEBiCMBFEEBFFBDBTFFDJBCDDBEBHEEBDDBCCBBBCFBENBClClCBWBCFBCBBFBBFfBCHHBPPBqIBJDBVBB7CffBZBCZZMGB+NBBNJBFFBFBBDBBEEBPCCDFBMHBGBB6BCCeDBKCBxK-BBhI-PBxBUBDFB9+zB4Z4ZBEBCjFjFRCBeCCeCCkEHHBCBitDBBhrwBwoBwoBBzCBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBDxBBhwFDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBB-uCIB",!1)),Quotation_Mark:()=>new $e(decodeRanges("iBFFkEQQ96HHBaBBowDqOqOBCBOCBixzBDB+FFF7CBB",!1)),Terminal_Punctuation:()=>new $e(decodeRanges("hBLLCMMBEE-ZJJiQ6B6BpCPPCCB1FsBsBBJBCsHsHB3B3BBEBCHBgBmImIB1nB1nBBtFtFFFB4JBB2YHBmY9D9DBBBoCBB+ECBEoBoBBCBDBB7JBBjLDBjFBBLBBCCBeCB8FEB-BBBldYYBKKBBBwlDCBzJOOFLLCBBEBBtNBB8ndBBuICBkHEB-LBB3CBBgD4E4EBBB0ECBgERRB6H6HnxUDDB6B6BBBBCDBqFLLCMMBEEiCDD7hBxBxBnkBoGoG3JBB5EFBlCFB6CDB5dEBtBDB+FGBxDDBgECBiEBBHRRB5C5CBDBtDrJrJB2D2DBBBNBBnLDBEOBqDBB6HCBmQCC8HBB4CBBFBB-MCBuBmUmUBrCrCBspBspBBDB6vRBBmEiCiCBBBLqRqRBoJoJBnwTnwTovHDB",!1)),Uppercase:()=>new $e(decodeRanges("hCZBmDWBCGBiB2BCDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIJDCMCDQCDDDCCBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBDDBBBEWCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBpCDBNDBNDBNEBMDBnIFFECBDCBDEEBDBHGCBCBDDBLBBGbbBOBUzZzZBYBx5BvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoqZZBbZBbZBbCCBGDBDDBCBCHBbZBbBBCDBDHBCGBcBBCDBCEBCEEBFBcZBbZBbZBbZBbZBbZBfYBiBYBiBYBiBYBiBYBiB2pE2pEBgBBvgCZBHZBHZB",!1)),White_Space:()=>new $e(decodeRanges("JEBTlDlDbgvFgvFgsCKBeBBGwBwBh9DAB",!1))}),Pe.SCRIPTS=new Xe({Adlam:()=>new $e(decodeRanges("go6DrCFJFB",!0)),Ahom:()=>new $e(decodeRanges("g4lCaDOFW",!0)),Anatolian_Hieroglyphs:()=>new $e(decodeRanges("ggxCmS",!0)),Arabic:()=>new $e(decodeRanges("gwBEBCFBCNBCCBCfBCJBMZBCrDBChBBxCvBBxHhBBGqCBCcBxy8BtPBDvEBhBPBxDEBCmEBk7DeBkCFBJIBiBFBh43BDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBB",!1)),Armenian:()=>new $e(decodeRanges("xpBlBDxBDCks9BE",!0)),Avestan:()=>new $e(decodeRanges("g4iC1BEG",!0)),Balinese:()=>new $e(decodeRanges("g4GsCCxB",!0)),Bamum:()=>new $e(decodeRanges("g1pB3CpowB4R",!0)),Bassa_Vah:()=>new $e(decodeRanges("w26CdDF",!0)),Batak:()=>new $e(decodeRanges("g+GzBJD",!0)),Bengali:()=>new $e(decodeRanges("gsCDBCHBDBBDVBCGBCEEBCBDIBDBBDDBJFFBCCBDBDYB",!1)),Beria_Erfe:()=>new $e(decodeRanges("g17CYDY",!0)),Bhaiksuki:()=>new $e(decodeRanges("ggnCICsBCNLc",!0)),Bopomofo:()=>new $e(decodeRanges("qXB6wLqBxDf",!0)),Brahmi:()=>new $e(decodeRanges("ggkCtCFjBKA",!0)),Braille:()=>new $e(decodeRanges("ggK-H",!0)),Buginese:()=>new $e(decodeRanges("gwGbDB",!0)),Buhid:()=>new $e(decodeRanges("g6FT",!0)),Canadian_Aboriginal:()=>new $e(decodeRanges("ggF-TxRlC7tgCP",!0)),Carian:()=>new $e(decodeRanges("g1gCwB",!0)),Caucasian_Albanian:()=>new $e(decodeRanges("wphCzBMA",!0)),Chakma:()=>new $e(decodeRanges("gokC0BCR",!0)),Cham:()=>new $e(decodeRanges("gwqB2BKNDJDD",!0)),Cherokee:()=>new $e(decodeRanges("g9E1CDFz7lBvC",!0)),Chorasmian:()=>new $e(decodeRanges("w9jCb",!0)),Common:()=>new $e(decodeRanges("AgCBbFBbuBBCOBCEBYgBgBiOmBBGEBDTB1DKKHCC+THHPEEhB9E9ElQiEiEB6mB6mB2MDBjJwvBwvBBBBoCBBsGBBCumBumBOIIBCBCFBCCBDmYmYBKBD2CBCKBEKBCOBShBB-BlBBCCBDFBCaBCQBqBCBF5UBXKBW-cBhIzTBDpEBhQ9CBzMUBCCCBXBQHBFDB8CBBE7C7CB0E0EBOBhBlBBKxBxBB+BBgBwCBwB5C5CBmFBhuG-BBhoWhBBnDCBmFJB1HhFhFsMPPBzuUzuUBxGxGBIBXiBBCSBCDB0ECCBeBbFBbKBLuBuBBhChCBFBCGBLEBjICBFsBBEIBxCMB0BsBBlHaBltuBDB96D8HBEzNBHWBQQBgDzDB9B1HBLmBBD9BBEQBJBBIdBF8BB2GTBNTBN2CBKYBoE0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBDxBByjFjCBtC8BBjWrBBFjDBNOBDOBCOBCkBBLtFB5BZBCBBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBCmDBnghYffB+CB",!1)),Coptic:()=>new $e(decodeRanges("ifNxkKzDGG",!0)),Cuneiform:()=>new $e(decodeRanges("ggoC5cnDuDCEMjG",!0)),Cypriot:()=>new $e(decodeRanges("ggiCFBDCCBqBBCBBEDD",!1)),Cypro_Minoan:()=>new $e(decodeRanges("w8rCiD",!0)),Cyrillic:()=>new $e(decodeRanges("ggBkEBDoFBx6FKBhFtCtCojEfBhie-CBv8VBBhw4B9BBiBAB",!1)),Deseret:()=>new $e(decodeRanges("gghCvC",!0)),Devanagari:()=>new $e(decodeRanges("goCwCFODZh7nBfhwcJ",!0)),Dives_Akuru:()=>new $e(decodeRanges("gomCGBDDDBGBCBBCdBCBBDLBKJB",!1)),Dogra:()=>new $e(decodeRanges("ggmC7B",!0)),Duployan:()=>new $e(decodeRanges("ggvDqDGMEIIJDD",!0)),Egyptian_Hieroglyphs:()=>new $e(decodeRanges("ggsC1iBL68D",!0)),Elbasan:()=>new $e(decodeRanges("gohCnB",!0)),Elymaic:()=>new $e(decodeRanges("g-jCW",!0)),Ethiopic:()=>new $e(decodeRanges("gwEoCBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBDfBEZBnvGWBKGBCGBCGBCGBCGBCGBCGBCGBjpfFBDFBDFBKGBCGBylvCGBCDBCBBCOB",!1)),Garay:()=>new $e(decodeRanges("gqjClBEcJB",!0)),Georgian:()=>new $e(decodeRanges("glElBBCGGDqBBCDBx8CqBBDCBhiElBBCGG",!1)),Glagolitic:()=>new $e(decodeRanges("ggL-Ch9sDGCQDGCBCE",!0)),Gothic:()=>new $e(decodeRanges("w5gCa",!0)),Grantha:()=>new $e(decodeRanges("g4kCDBCHBDBBDVBCGBCBBCEBDIBDBBDCBDHHGGBDGBEEB",!1)),Greek:()=>new $e(decodeRanges("wbDBCCBDDBCFFCCCBBBCCCBSBC+BBPPBnpGEBzBEBFEB1ChKhKBUBDFBDlBBDFBDHBCGCBdBD0BBCOBCNBDFBCSBDCBCIBoJ-xiB-xiB7uVuCBSgj0Bgj0BBkCB",!1)),Gujarati:()=>new $e(decodeRanges("h0CCBCIBCCBCVBCGBCBBCEBDJBCCBCCBDQQBCBDLBIGB",!1)),Gunjala_Gondi:()=>new $e(decodeRanges("grnCFCBCkBCBCFIJ",!0)),Gurmukhi:()=>new $e(decodeRanges("hwCCBCFBFBBDVBCGBCBBCBBCBBDCCBDBFBBDCBEIIBCBCIIBPB",!1)),Gurung_Khema:()=>new $e(decodeRanges("go4C5B",!0)),Han:()=>new $e(decodeRanges("g0LZBC4CBN1GBwBCCaIBPDBle-tGBhC-vUBhoWtLBDpDBpodBBNGBqgkB-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Hangul:()=>new $e(decodeRanges("goE-HvxHBiI9CyDeiCei3dckUj9KNWFwBl9JeEFDFDFDC",!0)),Hanifi_Rohingya:()=>new $e(decodeRanges("gojCnBJJ",!0)),Hanunoo:()=>new $e(decodeRanges("g5FU",!0)),Hatran:()=>new $e(decodeRanges("gniCSCBGE",!0)),Hebrew:()=>new $e(decodeRanges("xsB2BBJaBFFBpp9BZBCEBCCCBCCBCCBIB",!1)),Hiragana:()=>new $e(decodeRanges("hiM1CBHCBi7-C+IBTeeBBBulQAB",!1)),Imperial_Aramaic:()=>new $e(decodeRanges("giiCVCI",!0)),Inherited:()=>new $e(decodeRanges("gYvDB2IBBlOKBbhXhXBCB8qEtBBDLBlPCBCMBCGBFHHEBBnG-BBtQBBjGgBB65DDBsDBBmrzBPBRNBwejHjH7iEl+uBl+uBBsBBDWBhRCBSHBDGBfDBz6rYvHB",!1)),Inscriptional_Pahlavi:()=>new $e(decodeRanges("g7iCSGH",!0)),Inscriptional_Parthian:()=>new $e(decodeRanges("g6iCVDH",!0)),Javanese:()=>new $e(decodeRanges("gsqBtCDJFB",!0)),Kaithi:()=>new $e(decodeRanges("gkkCiCLA",!0)),Kannada:()=>new $e(decodeRanges("gkDMCCCWCJCEDICCCDIBGCCDDJCC",!0)),Katakana:()=>new $e(decodeRanges("hlM5CBDCBxHPBxGuBBC3CBvgzBJBCsBBzisBDBCGBCBBCgJgJBBBzBPPBCB",!1)),Kawi:()=>new $e(decodeRanges("g4nCQCoBEc",!0)),Kayah_Li:()=>new $e(decodeRanges("goqBtBCA",!0)),Kharoshthi:()=>new $e(decodeRanges("gwiCDCBGHCCCcDCFJII",!0)),Khitan_Small_Script:()=>new $e(decodeRanges("k-7C84G84GB0OBqBAB",!1)),Khmer:()=>new $e(decodeRanges("g8F9CDJHJnPf",!0)),Khojki:()=>new $e(decodeRanges("gwkCRCuB",!0)),Khudawadi:()=>new $e(decodeRanges("w1kC6BGJ",!0)),Kirat_Rai:()=>new $e(decodeRanges("gq7C5B",!0)),Lao:()=>new $e(decodeRanges("h0DBBCCCBDBCXBCCCBVBDEBCCCBFBCJBDDB",!1)),Latin:()=>new $e(decodeRanges("hCZBHZBwBQQGWBCeBCgOBoBEB8wGlBBHwBBGDBGMBClCBiC-HByLOORMBuEBBHccSoBB42CfBj1elDBExCBVOBxZqBBCIBCDB38TGB7gBZBHZBmhCFBCpBBCIBm61BeBHFB",!1)),Lepcha:()=>new $e(decodeRanges("ggH3BEOEC",!0)),Limbu:()=>new $e(decodeRanges("goGeBCLBFLBFEEBKB",!1)),Linear_A:()=>new $e(decodeRanges("gwhC2JKVLH",!0)),Linear_B:()=>new $e(decodeRanges("gggCLCZCSCBCODNjB6D",!0)),Lisu:()=>new $e(decodeRanges("wmpBvBx1eA",!0)),Lycian:()=>new $e(decodeRanges("g0gCc",!0)),Lydian:()=>new $e(decodeRanges("gpiCZGA",!0)),Mahajani:()=>new $e(decodeRanges("wqkCmB",!0)),Makasar:()=>new $e(decodeRanges("g3nCY",!0)),Malayalam:()=>new $e(decodeRanges("goDMCCCyBCCCFFPDZ",!0)),Mandaic:()=>new $e(decodeRanges("giCbDA",!0)),Manichaean:()=>new $e(decodeRanges("g2iCmBFL",!0)),Marchen:()=>new $e(decodeRanges("wjnCfDVCN",!0)),Masaram_Gondi:()=>new $e(decodeRanges("gonCGBCBBCrBBECCBCCBHBJJB",!1)),Medefaidrin:()=>new $e(decodeRanges("gy7C6C",!0)),Meetei_Mayek:()=>new $e(decodeRanges("g3qBWqGtBDJ",!0)),Mende_Kikakui:()=>new $e(decodeRanges("gg6DkGDP",!0)),Meroitic_Cursive:()=>new $e(decodeRanges("gtiCXFTDtB",!0)),Meroitic_Hieroglyphs:()=>new $e(decodeRanges("gsiCf",!0)),Miao:()=>new $e(decodeRanges("g47CqCF4BIQ",!0)),Modi:()=>new $e(decodeRanges("gwlCkCMJ",!0)),Mongolian:()=>new $e(decodeRanges("ggGBBDCCBSBH4CBIqBB2t-BMB",!1)),Mro:()=>new $e(decodeRanges("gy6CeCJFB",!0)),Multani:()=>new $e(decodeRanges("g0kCGBCCCBCBCOBCKB",!1)),Myanmar:()=>new $e(decodeRanges("ggE-EhqmBeiDfxibT",!0)),Nabataean:()=>new $e(decodeRanges("gkiCeJI",!0)),Nag_Mundari:()=>new $e(decodeRanges("wm5DpB",!0)),Nandinagari:()=>new $e(decodeRanges("gtmCHDtBDK",!0)),New_Tai_Lue:()=>new $e(decodeRanges("gsGrBFZHKEB",!0)),Newa:()=>new $e(decodeRanges("gglC7CCE",!0)),Nko:()=>new $e(decodeRanges("g+B6BDC",!0)),Nushu:()=>new $e(decodeRanges("h-7CvsQvsQBqMB",!1)),Nyiakeng_Puachue_Hmong:()=>new $e(decodeRanges("go4DsBENDJFB",!0)),Ogham:()=>new $e(decodeRanges("g0Fc",!0)),Ol_Chiki:()=>new $e(decodeRanges("wiHvB",!0)),Ol_Onal:()=>new $e(decodeRanges("wu5DqBFA",!0)),Old_Hungarian:()=>new $e(decodeRanges("gkjCyBOyBIF",!0)),Old_Italic:()=>new $e(decodeRanges("g4gCjBKC",!0)),Old_North_Arabian:()=>new $e(decodeRanges("g0iCf",!0)),Old_Permic:()=>new $e(decodeRanges("w6gCqB",!0)),Old_Persian:()=>new $e(decodeRanges("g9gCjBFN",!0)),Old_Sogdian:()=>new $e(decodeRanges("g4jCnB",!0)),Old_South_Arabian:()=>new $e(decodeRanges("gziCf",!0)),Old_Turkic:()=>new $e(decodeRanges("ggjCoC",!0)),Old_Uyghur:()=>new $e(decodeRanges("w7jCZ",!0)),Oriya:()=>new $e(decodeRanges("h4CCCHDBDVCGCBCEDIDBDCICFBCEDR",!0)),Osage:()=>new $e(decodeRanges("wlhCjBFjB",!0)),Osmanya:()=>new $e(decodeRanges("gkhCdDJ",!0)),Pahawh_Hmong:()=>new $e(decodeRanges("g46ClCLJCGCUGS",!0)),Palmyrene:()=>new $e(decodeRanges("gjiCf",!0)),Pau_Cin_Hau:()=>new $e(decodeRanges("g2mC4B",!0)),Phags_Pa:()=>new $e(decodeRanges("giqB3B",!0)),Phoenician:()=>new $e(decodeRanges("goiCbEA",!0)),Psalter_Pahlavi:()=>new $e(decodeRanges("g8iCRIDNG",!0)),Rejang:()=>new $e(decodeRanges("wpqBjBMA",!0)),Runic:()=>new $e(decodeRanges("g1FqCEK",!0)),Samaritan:()=>new $e(decodeRanges("ggCtBDO",!0)),Saurashtra:()=>new $e(decodeRanges("gkqBlCJL",!0)),Sharada:()=>new $e(decodeRanges("gskC-ChsCH",!0)),Shavian:()=>new $e(decodeRanges("wihCvB",!0)),Siddham:()=>new $e(decodeRanges("gslC1BDlB",!0)),Sidetic:()=>new $e(decodeRanges("gqiCZ",!0)),SignWriting:()=>new $e(decodeRanges("gg2DrUQECO",!0)),Sinhala:()=>new $e(decodeRanges("hsDCBCRBEXBCIBCDDBFBEFFBEBCCCBGBHJBDCBt-gCTB",!1)),Sogdian:()=>new $e(decodeRanges("w5jCpB",!0)),Sora_Sompeng:()=>new $e(decodeRanges("wmkCYIJ",!0)),Soyombo:()=>new $e(decodeRanges("wymCyC",!0)),Sundanese:()=>new $e(decodeRanges("g8G-BhIH",!0)),Sunuwar:()=>new $e(decodeRanges("g+mChBPJ",!0)),Syloti_Nagri:()=>new $e(decodeRanges("ggqBsB",!0)),Syriac:()=>new $e(decodeRanges("g4BNC7BDCxIK",!0)),Tagalog:()=>new $e(decodeRanges("g4FVKA",!0)),Tagbanwa:()=>new $e(decodeRanges("g7FMCCCB",!0)),Tai_Le:()=>new $e(decodeRanges("wqGdDE",!0)),Tai_Tham:()=>new $e(decodeRanges("gxG+BCcDKHJHN",!0)),Tai_Viet:()=>new $e(decodeRanges("g0qBiCZE",!0)),Tai_Yo:()=>new $e(decodeRanges("g25DeCVJB",!0)),Takri:()=>new $e(decodeRanges("g0lC5BHJ",!0)),Tamil:()=>new $e(decodeRanges("i8CBBCFBECBCDBEBBCCCBEEBEEBBBELBFEBECBCDBDHHPUBm+kCxBBOAB",!1)),Tangsa:()=>new $e(decodeRanges("wz6CuCCJ",!0)),Tangut:()=>new $e(decodeRanges("g-7CgBgBB+3GBhQeBiDyDB",!1)),Telugu:()=>new $e(decodeRanges("ggDMCCCWCPDICCCDIBCCCBDDDJII",!0)),Thaana:()=>new $e(decodeRanges("g8BxB",!0)),Thai:()=>new $e(decodeRanges("hwD5BGb",!0)),Tibetan:()=>new $e(decodeRanges("g4DnCCjBFmBCjBCOCGFB",!0)),Tifinagh:()=>new $e(decodeRanges("wpL3BIBPA",!0)),Tirhuta:()=>new $e(decodeRanges("gklCnCJJ",!0)),Todhri:()=>new $e(decodeRanges("guhCzB",!0)),Tolong_Siki:()=>new $e(decodeRanges("wtnCrBFJ",!0)),Toto:()=>new $e(decodeRanges("w04De",!0)),Tulu_Tigalari:()=>new $e(decodeRanges("g8kCJBCDDClBBCJBCDDCDBCJBCBBJBB",!1)),Ugaritic:()=>new $e(decodeRanges("g8gCdCA",!0)),Unknown:()=>new $e(decodeRanges("4bBBHDBICCVuMuMnBBBzBBBE4B4BBGBcDBHKBvI9B9BBmDmDBMB8BBByBBBQddBCCMEBjBEBuHJJBDDBXXICCBBBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBbFB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKmDmDNBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBjoIBvLBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCC-FCBHBBHBBHBBECBIIIBIBGBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIBlCJBCBBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMB3iBJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBJ76DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBjGUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIm8yVBCdBhD-DBxHvw-FB",!1)),Vai:()=>new $e(decodeRanges("gopBrJ",!0)),Vithkuqi:()=>new $e(decodeRanges("wrhCKCOCGCBCKCOCGCB",!0)),Wancho:()=>new $e(decodeRanges("g24D5BGA",!0)),Warang_Citi:()=>new $e(decodeRanges("glmCyCNA",!0)),Yezidi:()=>new $e(decodeRanges("g0jCpBCCDB",!0)),Yi:()=>new $e(decodeRanges("ggoBskBE2B",!0)),Zanabazar_Square:()=>new $e(decodeRanges("gwmCnC",!0))}),Pe.FOLD_CATEGORIES=new Xe({L:()=>new $e(decodeRanges("laA",!0)),LC:()=>new $e(decodeRanges("laA",!0)),Ll:()=>new $e(decodeRanges("hCZBmDWBCGBiBuBCEECDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIBBCBBCBBCOCDQCDBBCCCBBBC4BCIBBCBBDCCBCBCGC3HrBrBCEEJHHCCBCCCBCCBPBCIBkBJJCUCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBZHBJHBJHBJEBMEBMDBNEBMEBqJEEBHHxC9zC9zCBuBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoyehBB",!1)),Lt:()=>new $e(decodeRanges("kOCCBCCBCClBCCtsHHBJHBJHBMQQwBAB",!1)),Lu:()=>new $e(decodeRanges("hDZB7BqBqBBWBCHBCuBCEECDOCDsBCDECBBBDCCDEEGDDECBDDDCCCDFFDEECDDECCGBBCBBCBBCOCBSCDBBCEECkBCEQCJDDBCCFICBEBCBBCCCBEEBCCBCBCEBDCCBDDIDDCBBEFBGLLBnFnFsBCCEEEBBBvBDBCdBCBBECBCWCBDBCGD1BvBBCgBCK0BCDMCBgDCyBlBBq6CqBBDCB5XFBjkCIBCvHvHERRzD0ECGGGC8CCBHBJFBLHBJHBJFBMGCJHBJNBzBBBNSSBPPBEEpL2B2Bs1CvBBCEEBGCHDDLiDCJCCFNNBkBBCGG0oesBCUaCoEMCE8BCLCCDICFFFCBBDSCMOCFCCDOCb9a9advCBi8UZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBvyehBB",!1)),M:()=>new $e(decodeRanges("5cgBgBlgHAB",!1)),Mn:()=>new $e(decodeRanges("5cgBgBlgHAB",!1)),Emoji:()=>new $e(decodeRanges("8mJA",!0)),Extended_Pictographic:()=>new $e(decodeRanges("8mJA",!0)),Lowercase:()=>new $e(decodeRanges("hCZBmDWBCGBiBuBCEECDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIBBCBBCBBCOCDQCDBBCCCBBBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBJJCUCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBZHBJHBJHBJEBMEBMDBNEBMEBqJEEBHHuBPBUzZzZBYBx5BvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoyehBB",!1)),Math:()=>new $e(decodeRanges("ycGDCHHFMMDDDCHHFAB",!1)),Uppercase:()=>new $e(decodeRanges("hDZB7BqBqBBWBCHBCuBCEECDOCDsBCDECBBBDCCDEEGDDECBDDDCCCDFFDEECDDECCGBBCBBCBBCOCBSCDBBCEECkBCEQCJDDBCCFICBEBCBBCCCBEEBCCBCBCEBDCCBDDIDDCBBEFBGLLBnFnFsBCCEEEBBBvBDBCdBCBBECBCWCBDBCGD1BvBBCgBCK0BCDMCBgDCyBlBBq6CqBBDCB5XFBjkCIBCvHvHERRzD0ECGGGC8CCBHBJFBLHBJHBJFBMGCJHBJNBzBBBNSSBPPBEEpLiBiBBOBFsasaBYBn6BvBBCEEBGCHDDLiDCJCCFNNBkBBCGG0oesBCUaCoEMCE8BCLCCDICFFFCBBDSCMOCFCCDOCb9a9advCBi8UZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBvyehBB",!1))}),Pe.FOLD_SCRIPT=new Xe({Common:()=>new $e(decodeRanges("8cgBgB",!1)),Greek:()=>new $e(decodeRanges("1FwUwU",!1)),Inherited:()=>new $e(decodeRanges("5cgBgBlgHAB",!1))}),Pe),et=(Re=class Unicode{static is32(ee,te){let ne=0,re=ee.length;for(;ne<re;){const se=ne+Math.floor((re-ne)/2),ie=ee.getLo(se),ae=ee.getHi(se);if(ie<=te&&te<=ae){return(te-ie)%ee.getStride(se)==0}te<ie?re=se:ne=se+1}return!1}static is(ee,te){if(te<=Re.MAX_LATIN1){for(let ne=0;ne<ee.length;ne++){if(te>ee.getHi(ne))continue;const re=ee.getLo(ne);if(te<re)return!1;return(te-re)%ee.getStride(ne)==0}return!1}return ee.length>0&&te>=ee.getLo(0)&&Re.is32(ee,te)}static isUpper(ee){if(ee<=Re.MAX_LATIN1){const te=String.fromCodePoint(ee);return te.toUpperCase()===te&&te.toLowerCase()!==te}return Re.is(Ze.Upper,ee)}static isPrint(ee){return ee<=Re.MAX_LATIN1?ee>=32&&ee<Re.MAX_ASCII||ee>=161&&173!==ee:Re.is(Ze.Print,ee)}static simpleFold(ee){if(Ze.CASE_ORBIT.has(ee))return Ze.CASE_ORBIT.get(ee);const te=We.toLowerCase(ee);return te!==ee?te:We.toUpperCase(ee)}static equalsIgnoreCase(ee,te){if(ee===te)return!0;if(ee<0||te<0)return!1;if(ee<=Re.MAX_ASCII&&te<=Re.MAX_ASCII)return 65<=ee&&ee<=90&&(ee|=32),65<=te&&te<=90&&(te|=32),ee===te;for(let ne=Re.simpleFold(ee);ne!==ee;ne=Re.simpleFold(ne))if(ne===te)return!0;return!1}},Re.MAX_RUNE=1114111,Re.MAX_ASCII=127,Re.MAX_LATIN1=255,Re.MAX_BMP=65535,Re.MIN_FOLD=65,Re.MAX_FOLD=125251,Re.MIN_HIGH_SURROGATE=55296,Re.MAX_HIGH_SURROGATE=56319,Re.MIN_LOW_SURROGATE=56320,Re.MAX_LOW_SURROGATE=57343,Re.MIN_SUPPLEMENTARY_CODE_POINT=65536,Re);const tt=new Uint8Array(256);for(let ee=0;ee<256;ee++)tt[ee]=97<=ee&&ee<=122||65<=ee&&ee<=90||48<=ee&&ee<=57||95===ee?1:0;let nt=null,rt=null;var st=(Ve=class Utils{static emptyInts(){return[]}static isByteArray(ee){return Array.isArray(ee)||ee instanceof Uint8Array}static isalnum(ee){return We.CODES.get("0")<=ee&&ee<=We.CODES.get("9")||We.CODES.get("a")<=ee&&ee<=We.CODES.get("z")||We.CODES.get("A")<=ee&&ee<=We.CODES.get("Z")}static unhex(ee){return We.CODES.get("0")<=ee&&ee<=We.CODES.get("9")?ee-We.CODES.get("0"):We.CODES.get("a")<=ee&&ee<=We.CODES.get("f")?ee-We.CODES.get("a")+10:We.CODES.get("A")<=ee&&ee<=We.CODES.get("F")?ee-We.CODES.get("A")+10:-1}static escapeRune(ee){let te="";if(et.isPrint(ee))Ve.METACHARACTERS.indexOf(String.fromCodePoint(ee))>=0&&(te+="\\"),te+=String.fromCodePoint(ee);else switch(ee){case We.CODES.get('"'):te+='\\"';break;case We.CODES.get("\\"):te+="\\\\";break;case We.CODES.get("\t"):te+="\\t";break;case We.CODES.get("\n"):te+="\\n";break;case We.CODES.get("\r"):te+="\\r";break;case We.CODES.get("\b"):te+="\\b";break;case We.CODES.get("\f"):te+="\\f";break;default:{let ne=ee.toString(16);ee<256?(te+="\\x",1===ne.length&&(te+="0"),te+=ne):te+=`\\x{${ne}}`;break}}return te}static stringToRunes(ee){const te=String(ee),ne=[];let re=0;for(;re<te.length;){const ee=te.codePointAt(re);ne.push(ee),re+=ee>et.MAX_BMP?2:1}return ne}static runeToString(ee){return String.fromCodePoint(ee)}static isWordRune(ee){return ee<256&&1===tt[ee]}static emptyOpContext(ee,te){let ne=0;return ee<0&&(ne|=Ve.EMPTY_BEGIN_TEXT|Ve.EMPTY_BEGIN_LINE),10===ee&&(ne|=Ve.EMPTY_BEGIN_LINE),te<0&&(ne|=Ve.EMPTY_END_TEXT|Ve.EMPTY_END_LINE),10===te&&(ne|=Ve.EMPTY_END_LINE),Ve.isWordRune(ee)!==Ve.isWordRune(te)?ne|=Ve.EMPTY_WORD_BOUNDARY:ne|=Ve.EMPTY_NO_WORD_BOUNDARY,ne}static quoteMeta(ee){return ee.split("").map((ee=>Ve.METACHARACTERS.indexOf(ee)>=0?`\\${ee}`:ee)).join("")}static charCount(ee){return ee>et.MAX_BMP?2:1}static toArray(ee){const te=ee.length,ne=new Array(te);for(let re=0;re<te;re++)ne[re]=ee[re];return ne}static stringToUtf8ByteArray(ee){if(globalThis.TextEncoder)return nt||(nt=new TextEncoder),Ve.toArray(nt.encode(ee));{let te=[],ne=0;for(let re=0;re<ee.length;re++){let se=ee.charCodeAt(re);se<128?te[ne++]=se:se<2048?(te[ne++]=se>>6|192,te[ne++]=63&se|128):(64512&se)===et.MIN_HIGH_SURROGATE&&re+1<ee.length&&(64512&ee.charCodeAt(re+1))===et.MIN_LOW_SURROGATE?(se=et.MIN_SUPPLEMENTARY_CODE_POINT+((1023&se)<<10)+(1023&ee.charCodeAt(++re)),te[ne++]=se>>18|240,te[ne++]=se>>12&63|128,te[ne++]=se>>6&63|128,te[ne++]=63&se|128):(te[ne++]=se>>12|224,te[ne++]=se>>6&63|128,te[ne++]=63&se|128)}return te}}static utf8ByteArrayToString(ee){if(globalThis.TextDecoder){rt||(rt=new TextDecoder("utf-8"));const te=ee instanceof Uint8Array?ee:new Uint8Array(ee);return rt.decode(te)}{let te=[],ne=0,re=0;for(;ne<ee.length;){let se=ee[ne++];if(se<128)te[re++]=String.fromCharCode(se);else if(se>191&&se<224){let ie=ee[ne++];te[re++]=String.fromCharCode((31&se)<<6|63&ie)}else if(se>239&&se<365){let ie=((7&se)<<18|(63&ee[ne++])<<12|(63&ee[ne++])<<6|63&ee[ne++])-et.MIN_SUPPLEMENTARY_CODE_POINT;te[re++]=String.fromCharCode(et.MIN_HIGH_SURROGATE+(ie>>10)),te[re++]=String.fromCharCode(et.MIN_LOW_SURROGATE+(1023&ie))}else{let ie=ee[ne++],ae=ee[ne++];te[re++]=String.fromCharCode((15&se)<<12|(63&ie)<<6|63&ae)}}return te.join("")}}},Ve.METACHARACTERS="\\.+*?()|[]{}^$",Ve.EMPTY_BEGIN_LINE=1,Ve.EMPTY_END_LINE=2,Ve.EMPTY_BEGIN_TEXT=4,Ve.EMPTY_END_TEXT=8,Ve.EMPTY_WORD_BOUNDARY=16,Ve.EMPTY_NO_WORD_BOUNDARY=32,Ve.EMPTY_ALL=-1,Ve);const createEnum=(ee=[],te=0)=>{const ne=Object.create(null);for(let re=0;re<ee.length;re++){const se=ee[re],ie=te+re;ne[se]=ie,ne[ie]=se}return Object.freeze(ne)};var it=((De=class MatcherInputBase{getEncoding(){throw Error("not implemented")}asCharSequence(){throw Error("not implemented")}asBytes(){throw Error("not implemented")}length(){throw Error("not implemented")}isUTF8Encoding(){return this.getEncoding()===De.Encoding.UTF_8}isUTF16Encoding(){return this.getEncoding()===De.Encoding.UTF_16}}).Encoding=createEnum(["UTF_16","UTF_8"]),De),at=class extends it{constructor(ee=null){super(),this.bytes=ee}getEncoding(){return it.Encoding.UTF_8}asCharSequence(){return st.utf8ByteArrayToString(this.bytes)}asBytes(){return this.bytes}length(){return this.bytes.length}},ot=class extends it{constructor(ee=null){super(),this.charSequence=ee}getEncoding(){return it.Encoding.UTF_16}asCharSequence(){return this.charSequence}asBytes(){return st.stringToUtf8ByteArray(this.charSequence.toString())}length(){return this.charSequence.length}},ut=class{static utf16(ee){return new ot(ee)}static utf8(ee){return st.isByteArray(ee)?new at(ee):new at(st.stringToUtf8ByteArray(ee))}},Bt=class{static EOF(){return-8}constructor(){this.end=0}canCheckPrefix(){return!0}endPos(){return this.end}hasString(){return!1}hasAnyString(){return!1}prefixLength(){return 0}},lt=class extends Bt{constructor(ee,te=0,ne=ee.length){super(),this.bytes=ee,this.start=te,this.end=ne}hasString(ee,te){const ne=ee.bytes;if(0===ne.length)return!0;const re=this.indexOf(this.bytes,ne,this.start+te);return-1!==re&&re<=this.end-ne.length}hasAnyString(ee,te){return!!ee.ac8&&ee.ac8.searchUTF8(this.bytes,this.start+te,this.end)}step(ee){if((ee+=this.start)>=this.end)return Bt.EOF();const te=255&this.bytes[ee];if(te<128)return te<<3|1;if(te>=194&&te<=223&&ee+1<this.end){const ne=255&this.bytes[ee+1];return 128!=(192&ne)?te<<3|1:((31&te)<<6|63&ne)<<3|2}if(te>=224&&te<=239&&ee+2<this.end){const ne=255&this.bytes[ee+1];if(128!=(192&ne))return te<<3|1;const re=255&this.bytes[ee+2];return 128!=(192&re)?te<<3|1:((15&te)<<12|(63&ne)<<6|63&re)<<3|3}if(te>=240&&te<=244&&ee+3<this.end){const ne=255&this.bytes[ee+1];if(128!=(192&ne))return te<<3|1;const re=255&this.bytes[ee+2];if(128!=(192&re))return te<<3|1;const se=255&this.bytes[ee+3];return 128!=(192&se)?te<<3|1:((7&te)<<18|(63&ne)<<12|(63&re)<<6|63&se)<<3|4}return te<<3|1}index(ee,te){te+=this.start;const ne=this.indexOf(this.bytes,ee.prefixUTF8,te);return ne<0?ne:ne-te}context(ee){let te=-1;if((ee+=this.start)>this.start&&ee<=this.end){let ne=ee-1;if(te=this.bytes[ne--],te>=128){let re=ee-4;for(re<this.start&&(re=this.start);ne>=re&&128==(192&this.bytes[ne]);)ne--;ne<this.start&&(ne=this.start),te=this.step(ne-this.start)>>3}}const ne=ee<this.end?this.step(ee-this.start)>>3:-1;return st.emptyOpContext(te,ne)}indexOf(ee,te,ne=0){let re=te.length;if(0===re)return ne<=this.end?ne:-1;const se=te[0];let ie=this.end-re;const ae="function"==typeof ee.indexOf;let oe=ne;for(;oe<=ie;){if(ae){if(oe=ee.indexOf(se,oe),-1===oe||oe>ie)return-1}else{for(;oe<=ie&&ee[oe]!==se;)oe++;if(oe>ie)return-1}let ne=!0;for(let se=1;se<re;se++)if(ee[oe+se]!==te[se]){ne=!1;break}if(ne)return oe;oe++}return-1}prefixLength(ee){return ee.prefixUTF8.length}},ct=class extends Bt{constructor(ee,te=0,ne=ee.length){super(),this.charSequence=ee,this.start=te,this.end=ne}hasString(ee,te){const ne=this.charSequence.indexOf(ee.str,this.start+te);return-1!==ne&&ne<=this.end-ee.str.length}hasAnyString(ee,te){return!!ee.ac16&&ee.ac16.searchUTF16(this.charSequence,this.start+te,this.end)}step(ee){if((ee+=this.start)>=this.end)return Bt.EOF();const te=this.charSequence.charCodeAt(ee);if(te<et.MIN_HIGH_SURROGATE||te>et.MAX_HIGH_SURROGATE||ee+1>=this.end)return te<<3|1;const ne=this.charSequence.charCodeAt(ee+1);return ne>=et.MIN_LOW_SURROGATE&&ne<=et.MAX_LOW_SURROGATE?1024*(te-et.MIN_HIGH_SURROGATE)+(ne-et.MIN_LOW_SURROGATE)+et.MIN_SUPPLEMENTARY_CODE_POINT<<3|2:te<<3|1}index(ee,te){te+=this.start;const ne=this.charSequence.indexOf(ee.prefix,te);return ne<0||ne>this.end-ee.prefix.length?-1:ne-te}context(ee){const te=(ee+=this.start)>this.start&&ee<=this.end?this.charSequence.charCodeAt(ee-1):-1,ne=ee<this.end?this.charSequence.charCodeAt(ee):-1;return st.emptyOpContext(te,ne)}prefixLength(ee){return ee.prefix.length}},_t=class{static fromUTF8(ee,te=0,ne=ee.length){return new lt(ee,te,ne)}static fromUTF16(ee,te=0,ne=ee.length){return new ct(ee,te,ne)}},ht=class extends Error{constructor(ee){super(ee),this.name="RE2JSException"}},dt=class extends ht{constructor(ee,te=null){let ne=`error parsing regexp: ${ee}`;te&&(ne+=`: \`${te}\``),super(ne),this.name="RE2JSSyntaxException",this.message=ne,this.error=ee,this.input=te}getDescription(){return this.error}getPattern(){return this.input}},Et=class extends ht{constructor(ee){super(ee),this.name="RE2JSCompileException"}},Ct=class extends ht{constructor(ee){super(ee),this.name="RE2JSGroupException"}},pt=class extends ht{constructor(ee){super(ee),this.name="RE2JSFlagsException"}},mt=class extends ht{constructor(ee){super(ee),this.name="RE2JSInternalException"}},ft=(ye=class Matcher{static quoteReplacement(ee,te=!1){return te?ee.indexOf("\\")<0&&ee.indexOf("$")<0?ee:ee.split("").map((ee=>{const te=ee.codePointAt(0);return te===We.CODES.get("\\")||te===We.CODES.get("$")?`\\${ee}`:ee})).join(""):ee.indexOf("$")<0?ee:ee.split("").map((ee=>ee.codePointAt(0)===We.CODES.get("$")?"$$":ee)).join("")}constructor(ee,te){if(null===ee)throw new Error("pattern is null");this.patternInput=ee;const ne=this.patternInput.re2();this.patternGroupCount=ne.numberOfCapturingGroups(),this.groups=[],this.namedGroups=ne.namedGroups,this.numberOfInstructions=ne.numberOfInstructions(),te instanceof it?this.resetMatcherInput(te):st.isByteArray(te)?this.resetMatcherInput(ut.utf8(te)):this.resetMatcherInput(ut.utf16(te))}pattern(){return this.patternInput}reset(){return this.matcherInputLength=this.matcherInput.length(),this.appendPos=0,this.hasMatch=!1,this.hasGroups=!1,this.anchorFlag=0,this}resetMatcherInput(ee){if(null===ee)throw new Error("input is null");return this.matcherInput=ee,this.reset(),this}start(ee=0){if("string"==typeof ee){const te=this.namedGroups[ee];if(!Number.isFinite(te))throw new Ct(`group '${ee}' not found`);ee=te}return this.loadGroup(ee),this.groups[2*ee]}end(ee=0){if("string"==typeof ee){const te=this.namedGroups[ee];if(!Number.isFinite(te))throw new Ct(`group '${ee}' not found`);ee=te}return this.loadGroup(ee),this.groups[2*ee+1]}programSize(){return this.numberOfInstructions}group(ee=0){if("string"==typeof ee){const te=this.namedGroups[ee];if(!Number.isFinite(te))throw new Ct(`group '${ee}' not found`);ee=te}const te=this.start(ee),ne=this.end(ee);return te<0&&ne<0?null:this.substring(te,ne)}getNamedGroups(){if(!this.hasMatch)throw new Ct("perhaps no match attempted");const ee=Object.create(null);for(const te of Object.keys(this.namedGroups))ee[te]=this.group(te);return ee}groupCount(){return this.patternGroupCount}loadGroup(ee){if(ee<0||ee>this.patternGroupCount)throw new Ct(`Group index out of bounds: ${ee}`);if(!this.hasMatch)throw new Ct("perhaps no match attempted");if(0===ee||this.hasGroups)return;const te=this.matcherInputLength,ne=this.patternInput.re2().matchMachineInput(this.matcherInput,this.groups[0],te,this.anchorFlag,1+this.patternGroupCount);if(!ne[0])throw new Ct("inconsistency in matching group data");this.groups=ne[1],this.hasGroups=!0}matches(){return this.genMatch(0,Me.ANCHOR_BOTH)}lookingAt(){return this.genMatch(0,Me.ANCHOR_START)}find(ee=null){if(null!==ee){if(ee<0||ee>this.matcherInputLength)throw new Ct(`start index out of bounds: ${ee}`);return this.reset(),this.genMatch(ee,0)}if(ee=0,this.hasMatch&&(ee=this.groups[1],this.groups[0]===this.groups[1])){const te=(this.matcherInput.isUTF16Encoding()?_t.fromUTF16(this.matcherInput.asCharSequence(),0,this.matcherInputLength):_t.fromUTF8(this.matcherInput.asBytes(),0,this.matcherInputLength)).step(ee);te<0?ee++:ee+=7&te}return this.genMatch(ee,Me.UNANCHORED)}genMatch(ee,te){const ne=this.patternInput.re2().matchMachineInput(this.matcherInput,ee,this.matcherInputLength,te,1);return!!ne[0]&&(this.groups=ne[1],this.hasMatch=!0,this.hasGroups=0===this.patternGroupCount,this.anchorFlag=te,!0)}substring(ee,te){return this.matcherInput.isUTF8Encoding()?st.utf8ByteArrayToString(this.matcherInput.asBytes().slice(ee,te)):this.matcherInput.asCharSequence().substring(ee,te).toString()}inputLength(){return this.matcherInputLength}appendReplacement(ee,te=!1){let ne="";const re=this.start(),se=this.end();return this.appendPos<re&&(ne+=this.substring(this.appendPos,re)),this.appendPos=se,ne+=te?this.appendReplacementInternalJava(ee):this.appendReplacementInternalJs(ee),ne}appendReplacementInternalJava(ee){let te="",ne=0;const re=ee.length;for(let se=0;se<re-1;se++)if(ee.codePointAt(se)!==We.CODES.get("\\")){if(ee.codePointAt(se)===We.CODES.get("$")){let ie=ee.codePointAt(se+1);if(We.CODES.get("0")<=ie&&ie<=We.CODES.get("9")){let ae=ie-We.CODES.get("0");for(ne<se&&(te+=ee.substring(ne,se)),se+=2;se<re&&(ie=ee.codePointAt(se),!(ie<We.CODES.get("0")||ie>We.CODES.get("9")||10*ae+ie-We.CODES.get("0")>this.patternGroupCount));se++)ae=10*ae+ie-We.CODES.get("0");if(ae>this.patternGroupCount)throw new Ct(`n > number of groups: ${ae}`);const oe=this.group(ae);null!==oe&&(te+=oe),ne=se,se--;continue}if(ie===We.CODES.get("{")){ne<se&&(te+=ee.substring(ne,se)),se++;let re=se+1;for(;re<ee.length&&ee.codePointAt(re)!==We.CODES.get("}")&&ee.codePointAt(re)!==We.CODES.get(" ");)re++;if(re===ee.length||ee.codePointAt(re)!==We.CODES.get("}"))throw new Ct("named capture group is missing trailing '}'");const ie=ee.substring(se+1,re),ae=this.group(ie);null!==ae&&(te+=ae),ne=re+1,se=re;continue}}}else ne<se&&(te+=ee.substring(ne,se)),se++,ne=se;return ne<re&&(te+=ee.substring(ne,re)),te}appendReplacementInternalJs(ee){let te="",ne=0;const re=ee.length;for(let se=0;se<re-1;se++)if(ee.codePointAt(se)===We.CODES.get("$")){let ie=ee.codePointAt(se+1);if(We.CODES.get("$")===ie){ne<se&&(te+=ee.substring(ne,se)),te+="$",se++,ne=se+1;continue}if(We.CODES.get("&")===ie){ne<se&&(te+=ee.substring(ne,se));const re=this.group(0);te+=null!==re?re:"$&",se++,ne=se+1;continue}if(We.CODES.get("`")===ie){ne<se&&(te+=ee.substring(ne,se)),te+=this.substring(0,this.start(0)),se++,ne=se+1;continue}if(We.CODES.get("'")===ie){ne<se&&(te+=ee.substring(ne,se)),te+=this.substring(this.end(0),this.matcherInputLength),se++,ne=se+1;continue}if(We.CODES.get("1")<=ie&&ie<=We.CODES.get("9")){let ae=ie-We.CODES.get("0");for(ne<se&&(te+=ee.substring(ne,se)),se+=2;se<re&&(ie=ee.codePointAt(se),!(ie<We.CODES.get("0")||ie>We.CODES.get("9")||10*ae+ie-We.CODES.get("0")>this.patternGroupCount));se++)ae=10*ae+ie-We.CODES.get("0");if(ae>this.patternGroupCount){te+=`$${ae}`,ne=se,se--;continue}const oe=this.group(ae);null!==oe&&(te+=oe),ne=se,se--;continue}if(ie===We.CODES.get("<")){ne<se&&(te+=ee.substring(ne,se)),se++;let re=se+1;for(;re<ee.length&&ee.codePointAt(re)!==We.CODES.get(">")&&ee.codePointAt(re)!==We.CODES.get(" ");)re++;if(re===ee.length||ee.codePointAt(re)!==We.CODES.get(">")){te+=ee.substring(se-1,re+1),ne=re+1,se=re;continue}const ie=ee.substring(se+1,re);if(Object.prototype.hasOwnProperty.call(this.namedGroups,ie)){const ee=this.group(ie);null!==ee&&(te+=ee)}else te+=`$<${ie}>`;ne=re+1,se=re;continue}}return ne<re&&(te+=ee.substring(ne,re)),te}appendTail(){return this.substring(this.appendPos,this.matcherInputLength)}replaceAll(ee,te=!1){return this.replace(ee,!0,te)}replaceFirst(ee,te=!1){return this.replace(ee,!1,te)}replace(ee,te=!0,ne=!1){let re="";this.reset();const se="function"==typeof ee,ie=Object.keys(this.namedGroups).length>0;let ae=null;if(se){if(this.groupCount()>=ye.MAX_REPLACER_ARGS)throw new Ct("Too many capture groups to safely invoke replacer function");ae=this.matcherInput.isUTF8Encoding()?this.matcherInput.asBytes():this.matcherInput.asCharSequence()}for(;this.find()&&(re+=se?this.appendReplacementFunc(ee,ie,ae):this.appendReplacement(ee,ne),te););return re+=this.appendTail(),re}appendReplacementFunc(ee,te,ne){let re="";const se=this.start(),ie=this.end();this.appendPos<se&&(re+=this.substring(this.appendPos,se)),this.appendPos=ie;const ae=this.buildReplacerArgs(se,te,ne);return re+=String(ee(...ae)),re}buildReplacerArgs(ee,te,ne){const re=[this.group(0)],se=this.groupCount();for(let ee=1;ee<=se;ee++){const te=this.start(ee);te<0?re.push(void 0):re.push(this.substring(te,this.end(ee)))}if(re.push(ee),re.push(ne),te){const ee=this.getNamedGroups();for(const te in ee)null===ee[te]&&(ee[te]=void 0);re.push(ee)}return re}},ye.MAX_REPLACER_ARGS=65535,ye),gt=(we=class Inst{static isRuneOp(ee){return we.RUNE<=ee&&ee<=we.RUNE_ANY_NOT_NL}static escapeRunes(ee){let te='"';for(let ne of ee)te+=st.escapeRune(ne);return te+='"',te}constructor(ee){this.op=ee,this.out=0,this.arg=0,this.runes=[],this.next=null}matchRune(ee){if(1===this.runes.length){const te=this.runes[0];return this.arg&Me.FOLD_CASE?et.equalsIgnoreCase(te,ee):ee===te}const te=this.runes.length;if(0===te)return!1;if(2===te||4===te||6===te||8===te){for(let ne=0;ne<te;ne+=2){if(ee<this.runes[ne])return!1;if(ee<=this.runes[ne+1])return!0}return!1}let ne=0,re=te>>1;for(;re>1;){const te=re>>1;ne+=this.runes[ne+te<<1]<=ee?te:0,re-=te}ne+=this.runes[ne<<1]<=ee?1:0;const se=ne-1;return se>=0&&ee<=this.runes[se<<1|1]}matchRunePos(ee){if(1===this.runes.length){const te=this.runes[0];return this.arg&Me.FOLD_CASE?et.equalsIgnoreCase(te,ee)?0:-1:ee===te?0:-1}const te=this.runes.length;if(0===te)return-1;if(2===te||4===te||6===te||8===te){for(let ne=0;ne<te;ne+=2){if(ee<this.runes[ne])return-1;if(ee<=this.runes[ne+1])return Math.floor(ne/2)}return-1}let ne=0,re=te>>1;for(;re>1;){const te=re>>1;ne+=this.runes[ne+te<<1]<=ee?te:0,re-=te}ne+=this.runes[ne<<1]<=ee?1:0;const se=ne-1;return se>=0&&ee<=this.runes[se<<1|1]?se:-1}toString(){switch(this.op){case we.ALT:return`alt -> ${this.out}, ${this.arg}`;case we.ALT_MATCH:return`altmatch -> ${this.out}, ${this.arg}`;case we.CAPTURE:return`cap ${this.arg} -> ${this.out}`;case we.EMPTY_WIDTH:return`empty ${this.arg} -> ${this.out}`;case we.MATCH:return"match"+(0!==this.arg?` ${this.arg}`:"");case we.FAIL:return"fail";case we.NOP:return`nop -> ${this.out}`;case we.LB_WRITE:return`lbwrite ${this.arg} -> ${this.out}`;case we.LB_CHECK:return`lbcheck ${this.arg} -> ${this.out}`;case we.RUNE:return null===this.runes?"rune <null>":["rune ",we.escapeRunes(this.runes),this.arg&Me.FOLD_CASE?"/i":""," -> ",this.out].join("");case we.RUNE1:return`rune1 ${we.escapeRunes(this.runes)} -> ${this.out}`;case we.RUNE_ANY:return`any -> ${this.out}`;case we.RUNE_ANY_NOT_NL:return`anynotnl -> ${this.out}`;default:throw new Error("unhandled case in Inst.toString")}}},we.ALT=1,we.ALT_MATCH=2,we.CAPTURE=3,we.EMPTY_WIDTH=4,we.FAIL=5,we.MATCH=6,we.NOP=7,we.RUNE=8,we.RUNE1=9,we.RUNE_ANY=10,we.RUNE_ANY_NOT_NL=11,we.LB_WRITE=12,we.LB_CHECK=13,we),Tt=class{constructor(){this.inst=null,this.cap=null}},It=class{constructor(ee){this.sparse=new Int32Array(ee),this.densePcs=new Int32Array(ee),this.denseThreads=new Array(ee),this.size=0}contains(ee){const te=this.sparse[ee];return te<this.size&&this.densePcs[te]===ee}isEmpty(){return 0===this.size}add(ee){const te=this.size++;return this.sparse[ee]=te,this.denseThreads[te]=null,this.densePcs[te]=ee,te}clear(){for(let ee=0;ee<this.size;ee++)this.denseThreads[ee]=null;this.size=0}toString(){let ee="{";for(let te=0;te<this.size;te++)0!==te&&(ee+=", "),ee+=this.densePcs[te];return ee+="}",ee}},At=(be=class Machine{static fromRE2(ee){const te=new be;return te.prog=ee.prog,te.re2=ee,te.q0=new It(te.prog.numInst()),te.q1=new It(te.prog.numInst()),te.pool=[],te.poolSize=0,te.matched=!1,te.matchcap=new Int32Array(te.prog.numCap<2?2:te.prog.numCap),te.ncap=0,te}static fromMachine(ee){return be.fromRE2(ee.re2)}constructor(){this.prog=null,this.re2=null,this.q0=null,this.q1=null,this.pool=[],this.poolSize=0,this.matched=!1,this.matchcap=null,this.ncap=0,this.lbTable=null}init(ee){this.ncap=ee,ee>this.matchcap.length?this.initNewCap(ee):this.resetCap(),this.prog.numLb>0&&((!this.lbTable||this.lbTable.length<this.prog.numLb+1)&&(this.lbTable=new Int32Array(this.prog.numLb+1)),this.lbTable.fill(-1))}resetCap(){for(let ee=0;ee<this.poolSize;ee++)this.pool[ee].cap.fill(-1)}initNewCap(ee){for(let te=0;te<this.poolSize;te++){this.pool[te].cap=new Int32Array(ee).fill(-1)}this.matchcap=new Int32Array(ee).fill(-1)}submatches(){return 0===this.ncap?st.emptyInts():st.toArray(this.matchcap.subarray(0,this.ncap))}alloc(ee){if(0===this.poolSize){const ee=this.matchcap.length;for(let te=0;te<be.THREADS_CHUNK_SIZE;te++){const te=new Tt;te.cap=new Int32Array(ee),this.pool[this.poolSize++]=te}}this.poolSize--;const te=this.pool[this.poolSize];return te.inst=ee,te}freeQueue(ee,te=0){for(let ne=te;ne<ee.size;ne++){const te=ee.denseThreads[ne];null!==te&&(this.pool[this.poolSize++]=te)}ee.clear()}freeThread(ee){this.pool[this.poolSize++]=ee}match(ee,te,ne){const re=this.re2.cond;if(re===st.EMPTY_ALL)return!1;if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return!1;this.matched=!1,this.matchcap.fill(-1);let se,ie=this.prog.numLb>0?0:te,ae=te,oe=this.q0,ue=this.q1,Be=ee.step(ie),le=Be>>3,ce=7&Be,_e=-1,he=0;for(Be!==Bt.EOF()&&(Be=ee.step(ie+ce),_e=Be>>3,he=7&Be),se=0===ie?st.emptyOpContext(-1,le):ee.context(ie);;){if(oe.isEmpty()){if(re&st.EMPTY_BEGIN_TEXT&&0!==ie)break;if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==ie)break;if(this.matched)break;if(0===this.prog.numLb&&0!==this.re2.prefix.length&&_e!==this.re2.prefixRune&&ee.canCheckPrefix()){const te=ee.index(this.re2,ie);if(te<0)break;ie+=te,Be=ee.step(ie),le=Be>>3,ce=7&Be,Be=ee.step(ie+ce),_e=Be>>3,he=7&Be}}if(0===ie&&this.prog.numLb>0)for(let ee=0;ee<this.prog.lbStarts.length;ee++)this.add(oe,this.prog.lbStarts[ee],ie,this.matchcap,se,null);this.matched||0!==ie&&ne!==Me.UNANCHORED||ie>=ae&&(this.ncap>0&&(this.matchcap[0]=ie),this.add(oe,this.prog.start,ie,this.matchcap,se,null));const te=ie+ce;if(se=ee.context(te),this.step(oe,ue,ie,te,le,se,ne,ie===ee.endPos()),0===ce)break;if(0===this.ncap&&this.matched)break;ie+=ce,le=_e,ce=he,-1!==le&&(Be=ee.step(ie+ce),_e=Be>>3,he=7&Be);const de=oe;oe=ue,ue=de}return this.freeQueue(ue),this.matched}matchSet(ee,te,ne){const re=this.re2.cond;if(re===st.EMPTY_ALL)return[];if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return[];let se=this.prog.numLb>0?0:te,ie=te,ae=this.q0,oe=this.q1,ue=ee.step(se),Be=ue>>3,le=7&ue,ce=-1,_e=0;ue!==Bt.EOF()&&(ue=ee.step(se+le),ce=ue>>3,_e=7&ue);let he=0===se?st.emptyOpContext(-1,Be):ee.context(se);const de=new Set;for(;;){if(ae.isEmpty()){if(re&st.EMPTY_BEGIN_TEXT&&0!==se)break;if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==se)break}if(0===se&&this.prog.numLb>0)for(let ee=0;ee<this.prog.lbStarts.length;ee++)this.add(ae,this.prog.lbStarts[ee],se,this.matchcap,he,null);0!==se&&ne!==Me.UNANCHORED||se>=ie&&this.add(ae,this.prog.start,se,this.matchcap,he,null);const te=se+le;he=ee.context(te);for(let re=0;re<ae.size;re++){let ie=ae.denseThreads[re];if(null===ie)continue;const ue=ie.inst;let le=!1;switch(ue.op){case gt.MATCH:if(ne===Me.ANCHOR_BOTH&&se!==ee.endPos())break;de.add(ue.arg);break;case gt.RUNE:le=ue.matchRune(Be);break;case gt.RUNE1:le=Be===ue.runes[0];break;case gt.RUNE_ANY:le=!0;break;case gt.RUNE_ANY_NOT_NL:le=Be!==We.CODES.get("\n");break;default:throw new mt("bad inst")}le&&(ie=this.add(oe,ue.out,te,ie.cap,he,ie)),null!==ie&&(this.freeThread(ie),ae.denseThreads[re]=null)}if(ae.clear(),0===le)break;se+=le,Be=ce,le=_e,-1!==Be&&(ue=ee.step(se+le),ce=ue>>3,_e=7&ue);const Ee=ae;ae=oe,oe=Ee}return this.freeQueue(oe),Array.from(de).sort(((ee,te)=>ee-te))}step(ee,te,ne,re,se,ie,ae,oe){const ue=this.re2.longest;for(let Be=0;Be<ee.size;Be++){let le=ee.denseThreads[Be];if(null===le)continue;if(ue&&this.matched&&this.ncap>0&&this.matchcap[0]<le.cap[0]){this.freeThread(le);continue}const ce=le.inst;let _e=!1;switch(ce.op){case gt.MATCH:if(ae===Me.ANCHOR_BOTH&&!oe)break;this.ncap>0&&(!ue||!this.matched||this.matchcap[1]<ne)&&(le.cap[1]=ne,this.matchcap.set(le.cap.subarray(0,this.ncap))),ue||this.freeQueue(ee,Be+1),this.matched=!0;break;case gt.RUNE:_e=ce.matchRune(se);break;case gt.RUNE1:_e=se===ce.runes[0];break;case gt.RUNE_ANY:_e=!0;break;case gt.RUNE_ANY_NOT_NL:_e=se!==We.CODES.get("\n");break;default:throw new mt("bad inst")}_e&&(le=this.add(te,ce.out,re,le.cap,ie,le)),null!==le&&(this.freeThread(le),ee.denseThreads[Be]=null)}ee.clear()}add(ee,te,ne,re,se,ie){for(;;){if(0===te)return ie;if(ee.contains(te))return ie;const ae=ee.add(te),oe=this.prog.inst[te];switch(oe.op){case gt.FAIL:return ie;case gt.ALT:case gt.ALT_MATCH:ie=this.add(ee,oe.out,ne,re,se,ie),te=oe.arg;continue;case gt.EMPTY_WIDTH:if(!(oe.arg&~se)){te=oe.out;continue}return ie;case gt.NOP:te=oe.out;continue;case gt.CAPTURE:if(oe.arg<this.ncap){const te=re[oe.arg];return re[oe.arg]=ne,this.add(ee,oe.out,ne,re,se,null),re[oe.arg]=te,ie}te=oe.out;continue;case gt.LB_WRITE:this.lbTable[Math.abs(oe.arg)]=ne,te=oe.out;continue;case gt.LB_CHECK:if(oe.arg>0){if(this.lbTable[oe.arg]===ne){te=oe.out;continue}}else if(this.lbTable[-oe.arg]!==ne){te=oe.out;continue}return ie;case gt.MATCH:case gt.RUNE:case gt.RUNE1:case gt.RUNE_ANY:case gt.RUNE_ANY_NOT_NL:if(null===ie?ie=this.alloc(oe):ie.inst=oe,this.ncap>0&&ie.cap!==re)for(let ee=0;ee<this.ncap;ee++)ie.cap[ee]=re[ee];return ee.denseThreads[ae]=ie,ie=null;default:throw new Error("unhandled")}}}},be.THREADS_CHUNK_SIZE=128,be);const hashPCs=ee=>{let te=-2128831035;for(let ne=0;ne<ee.length;ne++)te^=ee[ne],te=Math.imul(te,16777619);return te},arraysEqual=(ee,te)=>{if(ee.length!==te.length)return!1;for(let ne=0;ne<ee.length;ne++)if(ee[ne]!==te[ne])return!1;return!0};var Pt=class{constructor(ee,te,ne=[]){this.nfaStates=ee,this.isMatch=te,this.matchIDs=ne,this.nextLatin1=new Array(et.MAX_LATIN1+1).fill(null),this.nextLatin1Anchored=new Array(et.MAX_LATIN1+1).fill(null),this.transKeys=[],this.transVals=[],this.lastSeen=0}},Rt=(Se=class DFA{constructor(ee,te=8388608){this.prog=ee,this.stateCache=new Map,this.stateCount=0,this.startState=null,this.stateLimit=Math.max(1,Math.floor(te/Se.STATE_MEMORY_ESTIMATE)),this.cacheClears=0,this.failed=!1,this.clock=0}computeClosure(ee){const te=new Set,ne=[...ee];let re=!1;const se=[];for(;ne.length>0;){const ee=ne.pop();if(te.has(ee))continue;te.add(ee);const ie=this.prog.getInst(ee);switch(ie.op){case gt.MATCH:re=!0,se.includes(ie.arg)||se.push(ie.arg);break;case gt.ALT:case gt.ALT_MATCH:ne.push(ie.out),ne.push(ie.arg);break;case gt.NOP:case gt.CAPTURE:ne.push(ie.out);break;case gt.EMPTY_WIDTH:case gt.LB_WRITE:case gt.LB_CHECK:return null}}const ie=Int32Array.from(te).sort();return se.sort(((ee,te)=>ee-te)),{pcs:ie,isMatch:re,matchIDs:se}}getState(ee){const te=this.computeClosure(ee);if(!te)return null;const ne=te.pcs,re=hashPCs(ne);let se=this.stateCache.get(re);if(se)for(let ee=0;ee<se.length;ee++){const te=se[ee];if(arraysEqual(te.nfaStates,ne))return te.lastSeen=++this.clock,te}else se=[],this.stateCache.set(re,se);if(this.failed)return null;if(this.stateCount>=this.stateLimit){if(this.cacheClears++,this.cacheClears>=Se.MAX_CACHE_CLEARS)return this.failed=!0,this.stateCache.clear(),this.stateCount=0,this.startState=null,null;this.evictCache(),se=this.stateCache.get(re),se||(se=[],this.stateCache.set(re,se))}const ie=new Pt(ne,te.isMatch,te.matchIDs);return ie.lastSeen=++this.clock,se.push(ie),this.stateCount++,ie}evictCache(){const ee=[];for(const te of this.stateCache.values())for(let ne=0;ne<te.length;ne++)ee.push(te[ne]);ee.sort(((ee,te)=>ee.lastSeen-te.lastSeen));const te=Math.max(1,Math.floor(this.stateLimit/2)),ne=ee.length-te,re=ee.slice(ne),se=new Set(re);this.stateCache.clear(),this.stateCount=0;for(let ee=0;ee<re.length;ee++){const te=re[ee];te.nextLatin1.fill(null),te.nextLatin1Anchored.fill(null),te.transKeys.length=0,te.transVals.length=0;const ne=hashPCs(te.nfaStates);let se=this.stateCache.get(ne);se||(se=[],this.stateCache.set(ne,se)),se.push(te),this.stateCount++}this.startState&&!se.has(this.startState)&&(this.startState=null)}step(ee,te,ne){if(te<=et.MAX_LATIN1)if(ne===Me.UNANCHORED){const ne=ee.nextLatin1[te];if(null!==ne)return ne}else{const ne=ee.nextLatin1Anchored[te];if(null!==ne)return ne}else{const re=te+(ne===Me.UNANCHORED?0:et.MAX_RUNE+1),se=ee.transKeys,ie=se.length;for(let te=0;te<ie;te++)if(se[te]===re)return ee.transVals[te]}const re=[];for(let ne=0;ne<ee.nfaStates.length;ne++){const se=ee.nfaStates[ne],ie=this.prog.getInst(se);gt.isRuneOp(ie.op)&&ie.matchRune(te)&&re.push(ie.out)}ne===Me.UNANCHORED&&re.push(this.prog.start);const se=this.getState(re);if(te<=et.MAX_LATIN1)ne===Me.UNANCHORED?ee.nextLatin1[te]=se:ee.nextLatin1Anchored[te]=se;else{const re=te+(ne===Me.UNANCHORED?0:et.MAX_RUNE+1);ee.transKeys.push(re),ee.transVals.push(se)}return se}match(ee,te,ne){if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return!1;if(!this.startState&&(this.startState=this.getState([this.prog.start]),!this.startState))return null;let re=ee.endPos(),se=this.startState;if(se.isMatch){if(ne!==Me.ANCHOR_BOTH)return!0;if(te===re)return!0}let ie=te;for(;ie<re;){const te=ee.step(ie),ae=te>>3,oe=7&te;if(0===oe)break;if(se=ne===Me.UNANCHORED&&ae<=et.MAX_LATIN1&&se.nextLatin1[ae]||this.step(se,ae,ne),null===se)return null;if(se.lastSeen=++this.clock,se.isMatch){if(ne!==Me.ANCHOR_BOTH)return!0;if(ie+oe===re)return!0}if(0===se.nfaStates.length&&ne!==Me.UNANCHORED)return!1;ie+=oe}return!1}matchSet(ee,te,ne){if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return[];if(!this.startState&&(this.startState=this.getState([this.prog.start]),!this.startState))return null;let re=ee.endPos(),se=this.startState;const ie=new Set,checkMatch=(ee,te)=>{ee.isMatch&&(ne===Me.ANCHOR_BOTH?te===re&&ee.matchIDs.forEach((ee=>ie.add(ee))):ee.matchIDs.forEach((ee=>ie.add(ee))))};checkMatch(se,te);let ae=te;for(;ae<re;){const te=ee.step(ae),re=te>>3,ie=7&te;if(0===ie)break;if(se=ne===Me.UNANCHORED&&re<=et.MAX_LATIN1&&se.nextLatin1[re]||this.step(se,re,ne),null===se)return null;if(se.lastSeen=++this.clock,ae+=ie,checkMatch(se,ae),0===se.nfaStates.length&&ne!==Me.UNANCHORED)break}return Array.from(ie).sort(((ee,te)=>ee-te))}},Se.MAX_CACHE_CLEARS=5,Se.STATE_MEMORY_ESTIMATE=838,Se);var Vt=class{constructor(){this.end=0,this.cap=new Int32Array(0),this.matchcap=new Int32Array(0),this.ncap=0,this.jobPc=new Int32Array(256),this.jobArg=new Uint8Array(256),this.jobPos=new Int32Array(256),this.jobLen=0,this.visited=new Uint32Array(0)}reset(ee,te,ne){this.end=te,this.jobLen=0,this.ncap=ne;const re=ee.numInst()*(te+1)+32-1>>>5;this.visited.length<re?this.visited=new Uint32Array(re):this.visited.fill(0,0,re),this.cap.length<ne?this.cap=new Int32Array(ne).fill(-1):this.cap.fill(-1,0,ne),this.matchcap.length<ne?this.matchcap=new Int32Array(ne).fill(-1):this.matchcap.fill(-1,0,ne)}shouldVisit(ee,te){const ne=ee*(this.end+1)+te,re=ne>>>5,se=1<<(31&ne);return!(this.visited[re]&se)&&(this.visited[re]|=se,!0)}push(ee,te,ne,re){if(ee.prog.getInst(te).op!==gt.FAIL&&(re||this.shouldVisit(te,ne))){if(this.jobLen>=this.jobPc.length){const ee=2*this.jobPc.length,te=new Int32Array(ee);te.set(this.jobPc),this.jobPc=te;const ne=new Uint8Array(ee);ne.set(this.jobArg),this.jobArg=ne;const re=new Int32Array(ee);re.set(this.jobPos),this.jobPos=re}this.jobPc[this.jobLen]=te,this.jobArg[this.jobLen]=re?1:0,this.jobPos[this.jobLen]=ne,this.jobLen++}}tryBacktrack(ee,te,ne,re,se){const ie=ee.longest;for(this.push(ee,ne,re,!1);this.jobLen>0;){this.jobLen--;let ne=this.jobPc[this.jobLen],re=1===this.jobArg[this.jobLen],ae=this.jobPos[this.jobLen],oe=!0;for(;oe||this.shouldVisit(ne,ae);){oe=!1;const ue=ee.prog.getInst(ne);switch(ue.op){case gt.FAIL:throw new mt("unexpected InstFail");case gt.ALT:if(re){re=!1,ne=ue.arg;continue}this.push(ee,ne,ae,!0),ne=ue.out;continue;case gt.ALT_MATCH:{const te=ee.prog.getInst(ue.out);if(gt.isRuneOp(te.op)){this.push(ee,ue.arg,ae,!1),ne=ue.arg,ae=this.end;continue}this.push(ee,ue.out,this.end,!1),ne=ue.out;continue}case gt.RUNE:{const ee=te.step(ae);if(ee===Bt.EOF())break;if(!ue.matchRune(ee>>3))break;ae+=7&ee,ne=ue.out;continue}case gt.RUNE1:{const ee=te.step(ae);if(ee===Bt.EOF())break;if(ee>>3!==ue.runes[0])break;ae+=7&ee,ne=ue.out;continue}case gt.RUNE_ANY_NOT_NL:{const ee=te.step(ae);if(ee===Bt.EOF())break;if(ee>>3==10)break;ae+=7&ee,ne=ue.out;continue}case gt.RUNE_ANY:{const ee=te.step(ae);if(ee===Bt.EOF())break;ae+=7&ee,ne=ue.out;continue}case gt.CAPTURE:if(re){this.cap[ue.arg]=ae;break}ue.arg<this.ncap&&(this.push(ee,ne,this.cap[ue.arg],!0),this.cap[ue.arg]=ae),ne=ue.out;continue;case gt.EMPTY_WIDTH:{const ee=te.context(ae);if(ue.arg&~ee)break;ne=ue.out;continue}case gt.NOP:ne=ue.out;continue;case gt.MATCH:{if(se===Me.ANCHOR_BOTH&&ae!==this.end)break;if(0===this.ncap)return!0;this.ncap>1&&(this.cap[1]=ae);const ee=this.matchcap[1];if((-1===ee||ie&&ae>0&&ae>ee)&&this.matchcap.set(this.cap),!ie)return!0;if(ae===this.end)return!0;break}case gt.LB_WRITE:case gt.LB_CHECK:throw new mt("Backtracker cannot evaluate Lookbehind instructions");default:throw new mt("bad inst")}break}}return ie&&this.matchcap.length>1&&this.matchcap[1]>=0}};const Dt=[];var yt=class Backtracker{static shouldBacktrack(ee){return ee.numInst()<=500}static maxBitStateLen(ee){return Backtracker.shouldBacktrack(ee)?Math.floor(262144/ee.numInst()):0}static execute(ee,te,ne,re,se){const ie=ee.cond;if(ie===st.EMPTY_ALL)return null;if((re===Me.ANCHOR_START||re===Me.ANCHOR_BOTH)&&0!==ne)return null;if(ie&st.EMPTY_BEGIN_TEXT&&0!==ne)return null;const ae=Dt.length>0?Dt.pop():new Vt,oe=te.endPos();ae.reset(ee.prog,oe,se);let ue=!1;if(ie&st.EMPTY_BEGIN_TEXT||re===Me.ANCHOR_START||re===Me.ANCHOR_BOTH)ae.ncap>0&&(ae.cap[0]=ne),ae.tryBacktrack(ee,te,ee.prog.start,ne,re)&&(ue=!0);else{let se=-1;for(;ne<=oe&&0!==se;ne+=se){if(ee.prefix.length>0){const re=te.index(ee,ne);if(re<0)break;ne+=re}if(ae.ncap>0&&(ae.cap[0]=ne),ae.tryBacktrack(ee,te,ee.prog.start,ne,re)){ue=!0;break}const ie=te.step(ne);se=ie===Bt.EOF()?0:7&ie}}if(!ue)return Dt.push(ae),null;const Be=0===se?[]:st.toArray(ae.matchcap.subarray(0,se));return Dt.push(ae),Be}},wt=class{constructor(ee){this.sparse=new Uint32Array(ee),this.dense=new Uint32Array(ee),this.size=0,this.nextIndex=0}empty(){return this.nextIndex>=this.size}next(){return this.dense[this.nextIndex++]}clear(){this.size=0,this.nextIndex=0}contains(ee){return ee<this.sparse.length&&this.sparse[ee]<this.size&&this.dense[this.sparse[ee]]===ee}insert(ee){this.contains(ee)||this.insertNew(ee)}insertNew(ee){ee>=this.sparse.length||(this.sparse[ee]=this.size,this.dense[this.size]=ee,this.size++)}};var bt=class{constructor(ee){this.start=ee.start,this.numCap=ee.numCap,this.inst=new Array(ee.inst.length);for(let te=0;te<ee.inst.length;te++){const ne=ee.inst[te],re=new gt(ne.op);re.out=ne.out,re.arg=ne.arg,re.runes=ne.runes?ne.runes.slice():[],re.next=null,this.inst[te]=re}}};var St=class OnePass{static compile(ee){if(0===ee.start)return null;if(ee.numLb>0)return null;const te=ee.inst[ee.start];if(te.op!==gt.EMPTY_WIDTH||!(te.arg&st.EMPTY_BEGIN_TEXT))return null;let ne=!1;for(let te=0;te<ee.inst.length;te++)if(ee.inst[te].op===gt.ALT||ee.inst[te].op===gt.ALT_MATCH){ne=!0;break}for(let te=0;te<ee.inst.length;te++){const re=ee.inst[te],se=ee.inst[re.out].op;switch(re.op){case gt.ALT:case gt.ALT_MATCH:if(se===gt.MATCH||ee.inst[re.arg].op===gt.MATCH)return null;break;case gt.EMPTY_WIDTH:if(se===gt.MATCH){if((re.arg&st.EMPTY_END_TEXT)===st.EMPTY_END_TEXT)continue;return null}break;default:if(se===gt.MATCH&&ne)return null}}let re=(ee=>{const te=new bt(ee);for(let ee=0;ee<te.inst.length;ee++){const ne=te.inst[ee];if(ne.op!==gt.ALT&&ne.op!==gt.ALT_MATCH)continue;let re="out",se="arg",ie=te.inst[ne[se]];if(ie.op!==gt.ALT&&ie.op!==gt.ALT_MATCH&&(re="arg",se="out",ie=te.inst[ne[se]],ie.op!==gt.ALT&&ie.op!==gt.ALT_MATCH))continue;const ae=te.inst[ne[re]];if(ae.op===gt.ALT||ae.op===gt.ALT_MATCH)continue;let oe="out",ue="arg",Be=!1;ie.out===ee?Be=!0:ie.arg===ee&&(Be=!0,oe="arg",ue="out"),Be&&(ie[oe]=ne[re]),ne[re]===ie[oe]&&(ne[se]=ie[ue])}return te})(ee);return re=(ee=>{if(ee.inst.length>=1e3)return null;const te=new wt(ee.inst.length),ne=new wt(ee.inst.length),re=new Array(ee.inst.length),se=new Array(ee.inst.length).fill(!1),check=ie=>{let ae=!0;const oe=ee.inst[ie];if(ne.contains(ie))return!0;switch(ne.insert(ie),oe.op){case gt.ALT:case gt.ALT_MATCH:{ae=check(oe.out)&&check(oe.arg);let ee=se[oe.out],te=se[oe.arg];if(ee&&te)return!1;if(te){const ne=oe.out;oe.out=oe.arg,oe.arg=ne;const re=ee;ee=te,te=re}ee&&(se[ie]=!0,oe.op=gt.ALT_MATCH);const ne=((ee,te,ne,re)=>{const se=ee.length,ie=te.length;let ae=0,oe=0;const ue=[],Be=[];let le=!0,ce=-1;const extend=se=>{const ie=se?ee:te,le=se?ae:oe,_e=se?ne:re;return!(ce>0&&ie[le]<=ue[ce]||(ue.push(ie[le],ie[le+1]),se?ae+=2:oe+=2,ce+=2,Be.push(_e),0))};for(;ae<se||oe<ie;)if(le=oe>=ie?extend(!0):ae>=se||te[oe]<ee[ae]?extend(!1):extend(!0),!le)return null;return{merged:ue,next:Be}})(re[oe.out]||[],re[oe.arg]||[],oe.out,oe.arg);if(!ne)return!1;re[ie]=ne.merged,oe.next=new Uint32Array(ne.next);break}case gt.CAPTURE:case gt.EMPTY_WIDTH:case gt.NOP:ae=check(oe.out),se[ie]=se[oe.out],re[ie]=re[oe.out]?re[oe.out].slice():[],oe.next=new Uint32Array(Math.floor(re[ie].length/2)+1).fill(oe.out);break;case gt.MATCH:case gt.FAIL:se[ie]=oe.op===gt.MATCH;break;case gt.RUNE:{if(se[ie]=!1,oe.next&&oe.next.length>0)break;if(te.insert(oe.out),!oe.runes||0===oe.runes.length){re[ie]=[],oe.next=new Uint32Array([oe.out]);break}let ee=[];if(1===oe.runes.length&&oe.arg&Me.FOLD_CASE){const te=oe.runes[0];ee.push(te,te);for(let ne=et.simpleFold(te);ne!==te;ne=et.simpleFold(ne))ee.push(ne,ne);ee.sort(((ee,te)=>ee-te))}else for(let te=0;te<oe.runes.length;te++)ee.push(oe.runes[te]);re[ie]=ee,oe.next=new Uint32Array(Math.floor(ee.length/2)+1).fill(oe.out),oe.op=gt.RUNE;break}case gt.RUNE1:{if(se[ie]=!1,oe.next&&oe.next.length>0)break;te.insert(oe.out);let ee=[];if(oe.arg&Me.FOLD_CASE){const te=oe.runes[0];ee.push(te,te);for(let ne=et.simpleFold(te);ne!==te;ne=et.simpleFold(ne))ee.push(ne,ne);ee.sort(((ee,te)=>ee-te))}else ee.push(oe.runes[0],oe.runes[0]);re[ie]=ee,oe.next=new Uint32Array(Math.floor(ee.length/2)+1).fill(oe.out),oe.op=gt.RUNE;break}case gt.RUNE_ANY:if(se[ie]=!1,oe.next&&oe.next.length>0)break;te.insert(oe.out),re[ie]=[0,et.MAX_RUNE],oe.next=new Uint32Array([oe.out]);break;case gt.RUNE_ANY_NOT_NL:if(se[ie]=!1,oe.next&&oe.next.length>0)break;te.insert(oe.out),re[ie]=[0,9,11,et.MAX_RUNE],oe.next=new Uint32Array(Math.floor(re[ie].length/2)+1).fill(oe.out)}return ae};for(te.clear(),te.insert(ee.start);!te.empty();)if(ne.clear(),!check(te.next()))return null;for(let te=0;te<ee.inst.length;te++)re[te]&&(ee.inst[te].runes=re[te]);return ee})(re),null!==re&&((ee,te)=>{for(let ne=0;ne<te.inst.length;ne++){const re=te.inst[ne];switch(re.op){case gt.ALT:case gt.ALT_MATCH:case gt.RUNE:break;case gt.CAPTURE:case gt.EMPTY_WIDTH:case gt.NOP:case gt.MATCH:case gt.FAIL:ee.inst[ne].next=null;break;case gt.RUNE1:case gt.RUNE_ANY:case gt.RUNE_ANY_NOT_NL:ee.inst[ne].next=null,ee.inst[ne].op=re.op,ee.inst[ne].runes=re.runes?re.runes.slice():[]}}})(re,ee),re}static next(ee,te){const ne=ee.matchRunePos(te);return ne>=0?ee.next[ne]:ee.op===gt.ALT_MATCH?ee.out:0}static execute(ee,te,ne,re,se){const ie=ee.onepass;if(!ie)return null;const ae=new Int32Array(se).fill(-1);let oe=!1,ue=te.step(ne),Be=ue>>3,le=7&ue,ce=Bt.EOF(),_e=-1,he=0;ue!==Bt.EOF()&&(ce=te.step(ne+le),ce!==Bt.EOF()&&(_e=ce>>3,he=7&ce));let de,Ee=0===ne?st.emptyOpContext(-1,Be):te.context(ne),Ce=ie.start;for(;;){switch(de=ie.inst[Ce],Ce=de.out,de.op){case gt.MATCH:return re===Me.ANCHOR_BOTH&&ne!==te.endPos()?null:(oe=!0,ae.length>0&&(ae[0]=0,ae[1]=ne),0===se?[]:st.toArray(ae));case gt.RUNE:if(!de.matchRune(Be))return null;break;case gt.RUNE1:if(Be!==de.runes[0])return null;break;case gt.RUNE_ANY:break;case gt.RUNE_ANY_NOT_NL:if(10===Be)return null;break;case gt.ALT:case gt.ALT_MATCH:Ce=OnePass.next(de,Be);continue;case gt.FAIL:return null;case gt.NOP:continue;case gt.EMPTY_WIDTH:if(de.arg&~Ee)return null;continue;case gt.CAPTURE:de.arg<ae.length&&(ae[de.arg]=ne);continue;default:throw new mt("bad inst")}if(0===le)break;Ee=st.emptyOpContext(Be,_e),ne+=le,Be=_e,le=he,-1!==Be&&(ce=te.step(ne+le),ce!==Bt.EOF()?(_e=ce>>3,he=7&ce):(_e=-1,he=0))}return oe?0===se?[]:st.toArray(ae):null}},vt=(ve=class Regexp{static isPseudoOp(ee){return ee>=ve.Op.LEFT_PAREN}static emptySubs(){return[]}static quoteIfHyphen(ee){return ee===We.CODES.get("-")?"\\":""}static fromRegexp(ee){const te=new ve(ee.op);return te.flags=ee.flags,te.subs=ee.subs,te.runes=ee.runes,te.cap=ee.cap,te.min=ee.min,te.max=ee.max,te.name=ee.name,te.namedGroups=ee.namedGroups,te.lb=ee.lb,te}constructor(ee){this.op=ee,this.flags=0,this.subs=ve.emptySubs(),this.runes=[],this.min=0,this.max=0,this.cap=0,this.name=null,this.namedGroups=Object.create(null),this.lb=0}reinit(){this.flags=0,this.subs=ve.emptySubs(),this.runes=[],this.cap=0,this.min=0,this.max=0,this.name=null,this.namedGroups=Object.create(null),this.lb=0}toString(){return this.appendTo()}appendTo(){let ee="";switch(this.op){case ve.Op.NO_MATCH:ee+="[^\\x00-\\x{10FFFF}]";break;case ve.Op.EMPTY_MATCH:ee+="(?:)";break;case ve.Op.STAR:case ve.Op.PLUS:case ve.Op.QUEST:case ve.Op.REPEAT:{const te=this.subs[0];switch(te.op>ve.Op.CAPTURE||te.op===ve.Op.LITERAL&&te.runes.length>1?ee+=`(?:${te.appendTo()})`:ee+=te.appendTo(),this.op){case ve.Op.STAR:ee+="*";break;case ve.Op.PLUS:ee+="+";break;case ve.Op.QUEST:ee+="?";break;case ve.Op.REPEAT:ee+=`{${this.min}`,this.min!==this.max&&(ee+=",",this.max>=0&&(ee+=this.max)),ee+="}"}this.flags&Me.NON_GREEDY&&(ee+="?");break}case ve.Op.CONCAT:for(let te of this.subs)te.op===ve.Op.ALTERNATE?ee+=`(?:${te.appendTo()})`:ee+=te.appendTo();break;case ve.Op.ALTERNATE:{let te="";for(let ne of this.subs)ee+=te,te="|",ee+=ne.appendTo();break}case ve.Op.LITERAL:this.flags&Me.FOLD_CASE&&(ee+="(?i:");for(let te of this.runes)ee+=st.escapeRune(te);this.flags&Me.FOLD_CASE&&(ee+=")");break;case ve.Op.ANY_CHAR_NOT_NL:ee+="(?-s:.)";break;case ve.Op.ANY_CHAR:ee+="(?s:.)";break;case ve.Op.PLB:ee+=`(?<=${this.subs[0].appendTo()})`;break;case ve.Op.NLB:ee+=`(?<!${this.subs[0].appendTo()})`;break;case ve.Op.CAPTURE:null===this.name||0===this.name.length?ee+="(":ee+=`(?P<${this.name}>`,this.subs[0].op!==ve.Op.EMPTY_MATCH&&(ee+=this.subs[0].appendTo()),ee+=")";break;case ve.Op.BEGIN_TEXT:ee+="\\A";break;case ve.Op.END_TEXT:this.flags&Me.WAS_DOLLAR?ee+="(?-m:$)":ee+="\\z";break;case ve.Op.BEGIN_LINE:ee+="^";break;case ve.Op.END_LINE:ee+="$";break;case ve.Op.WORD_BOUNDARY:ee+="\\b";break;case ve.Op.NO_WORD_BOUNDARY:ee+="\\B";break;case ve.Op.CHAR_CLASS:if(this.runes.length%2!=0){ee+="[invalid char class]";break}if(ee+="[",0===this.runes.length)ee+="^\\x00-\\x{10FFFF}";else if(0===this.runes[0]&&this.runes[this.runes.length-1]===et.MAX_RUNE){ee+="^";for(let te=1;te<this.runes.length-1;te+=2){const ne=this.runes[te]+1,re=this.runes[te+1]-1;ee+=ve.quoteIfHyphen(ne),ee+=st.escapeRune(ne),ne!==re&&(ee+="-",ee+=ve.quoteIfHyphen(re),ee+=st.escapeRune(re))}}else for(let te=0;te<this.runes.length;te+=2){const ne=this.runes[te],re=this.runes[te+1];ee+=ve.quoteIfHyphen(ne),ee+=st.escapeRune(ne),ne!==re&&(ee+="-",ee+=ve.quoteIfHyphen(re),ee+=st.escapeRune(re))}ee+="]";break;default:ee+=this.op}return ee}maxCap(){let ee=0;if(this.op===ve.Op.CAPTURE&&(ee=this.cap),null!==this.subs)for(let te of this.subs){const ne=te.maxCap();ee<ne&&(ee=ne)}return ee}equals(ee){if(!(null!==ee&&ee instanceof ve))return!1;if(this.op!==ee.op)return!1;switch(this.op){case ve.Op.END_TEXT:if((this.flags&Me.WAS_DOLLAR)!=(ee.flags&Me.WAS_DOLLAR))return!1;break;case ve.Op.LITERAL:case ve.Op.CHAR_CLASS:if(null===this.runes&&null===ee.runes)break;if(null===this.runes||null===ee.runes)return!1;if(this.runes.length!==ee.runes.length)return!1;for(let te=0;te<this.runes.length;te++)if(this.runes[te]!==ee.runes[te])return!1;break;case ve.Op.ALTERNATE:case ve.Op.CONCAT:if(this.subs.length!==ee.subs.length)return!1;for(let te=0;te<this.subs.length;++te)if(!this.subs[te].equals(ee.subs[te]))return!1;break;case ve.Op.STAR:case ve.Op.PLUS:case ve.Op.QUEST:if((this.flags&Me.NON_GREEDY)!=(ee.flags&Me.NON_GREEDY)||!this.subs[0].equals(ee.subs[0]))return!1;break;case ve.Op.REPEAT:if((this.flags&Me.NON_GREEDY)!=(ee.flags&Me.NON_GREEDY)||this.min!==ee.min||this.max!==ee.max||!this.subs[0].equals(ee.subs[0]))return!1;break;case ve.Op.CAPTURE:if(this.cap!==ee.cap||(null===this.name?null!==ee.name:this.name!==ee.name)||!this.subs[0].equals(ee.subs[0]))return!1;break;case ve.Op.PLB:case ve.Op.NLB:if(this.lb!==ee.lb||!this.subs[0].equals(ee.subs[0]))return!1}return!0}},ve.Op=createEnum(["NO_MATCH","EMPTY_MATCH","LITERAL","CHAR_CLASS","ANY_CHAR_NOT_NL","ANY_CHAR","BEGIN_LINE","END_LINE","BEGIN_TEXT","END_TEXT","WORD_BOUNDARY","NO_WORD_BOUNDARY","CAPTURE","STAR","PLUS","QUEST","REPEAT","CONCAT","ALTERNATE","PLB","NLB","LEFT_PAREN","VERTICAL_BAR"]),ve),xt=class{constructor(ee){this.next=[Object.create(null)],this.fail=[0],this.match=[!1];for(const te of ee){let ee=0;for(let ne=0;ne<te.length;ne++){const re=te[ne];re in this.next[ee]||(this.next.push(Object.create(null)),this.fail.push(0),this.match.push(!1),this.next[ee][re]=this.next.length-1),ee=this.next[ee][re]}this.match[ee]=!0}const te=[];for(const ee in this.next[0])if(Object.prototype.hasOwnProperty.call(this.next[0],ee)){const ne=this.next[0][ee];this.fail[ne]=0,te.push(ne)}for(;te.length>0;){const ee=te.shift();for(const ne in this.next[ee])if(Object.prototype.hasOwnProperty.call(this.next[ee],ne)){const re=this.next[ee][ne];let se=this.fail[ee];for(;0!==se&&!(ne in this.next[se]);)se=this.fail[se];ne in this.next[se]?this.fail[re]=this.next[se][ne]:this.fail[re]=0,this.match[re]=this.match[re]||this.match[this.fail[re]],te.push(re)}}}searchUTF16(ee,te,ne){let re=0;for(let se=te;se<ne;se++){const te=ee.charCodeAt(se);for(;0!==re&&!(te in this.next[re]);)re=this.fail[re];if(te in this.next[re]&&(re=this.next[re][te]),this.match[re])return!0}return!1}searchUTF8(ee,te,ne){let re=0;for(let se=te;se<ne;se++){const te=ee[se];for(;0!==re&&!(te in this.next[re]);)re=this.fail[re];if(te in this.next[re]&&(re=this.next[re][te]),this.match[re])return!0}return!1}},Ft=(xe=class Prefilter{constructor(ee){this.type=ee,this.subs=[],this.str="",this.bytes=null,this.ac16=null,this.ac8=null}eval(ee,te){switch(this.type){case xe.Type.NONE:return!0;case xe.Type.EXACT:return ee.hasString(this,te);case xe.Type.AND:for(let ne=0;ne<this.subs.length;ne++)if(!this.subs[ne].eval(ee,te))return!1;return!0;case xe.Type.OR:if(this.ac16&&this.ac8)return ee.hasAnyString(this,te);for(let ne=0;ne<this.subs.length;ne++)if(this.subs[ne].eval(ee,te))return!0;return!1;default:return!0}}},xe.Type={NONE:0,EXACT:1,AND:2,OR:3},xe),Ot=class PrefilterTree{static build(ee){const te=PrefilterTree.fromRegexp(ee);return PrefilterTree.simplify(te)}static fromRegexp(ee){if(!ee)return new Ft(Ft.Type.NONE);switch(ee.op){case vt.Op.PLB:case vt.Op.NLB:case vt.Op.NO_MATCH:case vt.Op.EMPTY_MATCH:case vt.Op.BEGIN_LINE:case vt.Op.END_LINE:case vt.Op.BEGIN_TEXT:case vt.Op.END_TEXT:case vt.Op.WORD_BOUNDARY:case vt.Op.NO_WORD_BOUNDARY:case vt.Op.CHAR_CLASS:case vt.Op.ANY_CHAR_NOT_NL:case vt.Op.ANY_CHAR:return new Ft(Ft.Type.NONE);case vt.Op.LITERAL:{if(0===ee.runes.length||ee.flags&Me.FOLD_CASE)return new Ft(Ft.Type.NONE);const te=new Ft(Ft.Type.EXACT);let ne="";for(let te=0;te<ee.runes.length;te++)ne+=String.fromCodePoint(ee.runes[te]);return te.str=ne,te.bytes=st.stringToUtf8ByteArray(te.str),te}case vt.Op.CAPTURE:case vt.Op.PLUS:return PrefilterTree.fromRegexp(ee.subs[0]);case vt.Op.REPEAT:return ee.min>=1?PrefilterTree.fromRegexp(ee.subs[0]):new Ft(Ft.Type.NONE);case vt.Op.CONCAT:{const te=new Ft(Ft.Type.AND);for(const ne of ee.subs)te.subs.push(PrefilterTree.fromRegexp(ne));return te}case vt.Op.ALTERNATE:{const te=new Ft(Ft.Type.OR);for(const ne of ee.subs)te.subs.push(PrefilterTree.fromRegexp(ne));return te}default:return new Ft(Ft.Type.NONE)}}static simplify(ee){if(ee.type===Ft.Type.EXACT||ee.type===Ft.Type.NONE)return ee;if(ee.type===Ft.Type.AND){const te=[];for(const ne of ee.subs){const ee=PrefilterTree.simplify(ne);if(ee.type!==Ft.Type.NONE)if(ee.type===Ft.Type.AND)for(let ne=0;ne<ee.subs.length;ne++)te.push(ee.subs[ne]);else te.push(ee)}return 0===te.length?new Ft(Ft.Type.NONE):1===te.length?te[0]:(ee.subs=te,ee)}if(ee.type===Ft.Type.OR){const te=[];for(const ne of ee.subs){const ee=PrefilterTree.simplify(ne);if(ee.type===Ft.Type.NONE)return new Ft(Ft.Type.NONE);if(ee.type===Ft.Type.OR)for(let ne=0;ne<ee.subs.length;ne++)te.push(ee.subs[ne]);else te.push(ee)}if(0===te.length)return new Ft(Ft.Type.NONE);if(1===te.length)return te[0];const ne=new Set,re=[];for(const ee of te)ee.type===Ft.Type.EXACT?ne.has(ee.str)||(ne.add(ee.str),re.push(ee)):re.push(ee);ee.subs=re;let se=!0;for(const ee of re)if(ee.type!==Ft.Type.EXACT){se=!1;break}return se&&re.length>1&&(ee.ac16=new xt(re.map((ee=>{const te=[];for(let ne=0;ne<ee.str.length;ne++)te.push(ee.str.charCodeAt(ne));return te}))),ee.ac8=new xt(re.map((ee=>ee.bytes)))),ee}return ee}},Nt=class{constructor(ee=0,te=0){this.head=ee,this.tail=te}},Lt=class{constructor(){this.inst=[],this.start=0,this.numCap=2,this.lbStarts=[],this.numLb=0}getInst(ee){return this.inst[ee]}numInst(){return this.inst.length}addInst(ee){this.inst.push(new gt(ee))}skipNop(ee){let te=this.inst[ee];for(;te.op===gt.NOP||te.op===gt.CAPTURE;)te=this.inst[ee],ee=te.out;return te}prefix(){let ee="",te=this.skipNop(this.start);if(!gt.isRuneOp(te.op)||1!==te.runes.length)return[te.op===gt.MATCH,ee];for(;gt.isRuneOp(te.op)&&1===te.runes.length&&!(te.arg&Me.FOLD_CASE);)ee+=String.fromCodePoint(te.runes[0]),te=this.skipNop(te.out);return[te.op===gt.MATCH,ee]}startCond(){let ee=0,te=this.start;e:for(;;){const ne=this.inst[te];switch(ne.op){case gt.EMPTY_WIDTH:ee|=ne.arg;break;case gt.FAIL:return-1;case gt.CAPTURE:case gt.NOP:break;default:break e}te=ne.out}return ee}patch(ee,te){let ne=ee.head;for(;0!==ne;){const ee=this.inst[ne>>1];1&ne?(ne=ee.arg,ee.arg=te):(ne=ee.out,ee.out=te)}}append(ee,te){if(0===ee.head)return te;if(0===te.head)return ee;const ne=this.inst[ee.tail>>1];return 1&ee.tail?ne.arg=te.head:ne.out=te.head,new Nt(ee.head,te.tail)}toString(){let ee="";for(let te=0;te<this.inst.length;te++){const ne=ee.length;ee+=te,te===this.start&&(ee+="*"),ee+=" ".substring(ee.length-ne),ee+=this.inst[te],ee+="\n"}return ee}},Mt=class{constructor(ee=0,te=new Nt,ne=!1){this.i=ee,this.out=te,this.nullable=ne}},kt=class Compiler{static ANY_RUNE_NOT_NL(){return[0,We.CODES.get("\n")-1,We.CODES.get("\n")+1,et.MAX_RUNE]}static ANY_RUNE(){return[0,et.MAX_RUNE]}static compileRegexp(ee){const te=new Compiler,ne=te.compile(ee);return te.prog.patch(ne.out,te.newInst(gt.MATCH).i),te.prog.start=ne.i,te.prog}static compileSet(ee){const te=new Compiler;if(0===ee.length)return te.prog.start=te.newInst(gt.FAIL).i,te.prog;let ne=[];for(let re=0;re<ee.length;re++){const se=te.compile(ee[re]),ie=te.newInst(gt.MATCH);te.prog.getInst(ie.i).arg=re,te.prog.patch(se.out,ie.i),ne.push(se.i)}let re=ne[0];for(let ee=1;ee<ne.length;ee++){const se=te.newInst(gt.ALT),ie=te.prog.getInst(se.i);ie.out=re,ie.arg=ne[ee],re=se.i}return te.prog.start=re,te.prog}constructor(){this.prog=new Lt,this.newInst(gt.FAIL)}newInst(ee){return this.prog.addInst(ee),new Mt(this.prog.numInst()-1,new Nt,!0)}nop(){const ee=this.newInst(gt.NOP);return ee.out=new Nt(ee.i<<1,ee.i<<1),ee}fail(){return new Mt}cap(ee){const te=this.newInst(gt.CAPTURE);return te.out=new Nt(te.i<<1,te.i<<1),this.prog.getInst(te.i).arg=ee,this.prog.numCap<ee+1&&(this.prog.numCap=ee+1),te}cat(ee,te){return 0===ee.i||0===te.i?this.fail():(this.prog.patch(ee.out,te.i),new Mt(ee.i,te.out,ee.nullable&&te.nullable))}alt(ee,te){if(0===ee.i)return te;if(0===te.i)return ee;const ne=this.newInst(gt.ALT),re=this.prog.getInst(ne.i);return re.out=ee.i,re.arg=te.i,ne.out=this.prog.append(ee.out,te.out),ne.nullable=ee.nullable||te.nullable,ne}loop(ee,te){const ne=this.newInst(gt.ALT),re=this.prog.getInst(ne.i);return te?(re.arg=ee.i,ne.out=new Nt(ne.i<<1,ne.i<<1)):(re.out=ee.i,ne.out=new Nt(ne.i<<1|1,ne.i<<1|1)),this.prog.patch(ee.out,ne.i),ne}quest(ee,te){const ne=this.newInst(gt.ALT),re=this.prog.getInst(ne.i);return te?(re.arg=ee.i,ne.out=new Nt(ne.i<<1,ne.i<<1)):(re.out=ee.i,ne.out=new Nt(ne.i<<1|1,ne.i<<1|1)),ne.out=this.prog.append(ne.out,ee.out),ne}star(ee,te){return ee.nullable?this.quest(this.plus(ee,te),te):this.loop(ee,te)}plus(ee,te){return new Mt(ee.i,this.loop(ee,te).out,ee.nullable)}empty(ee){const te=this.newInst(gt.EMPTY_WIDTH);return this.prog.getInst(te.i).arg=ee,te.out=new Nt(te.i<<1,te.i<<1),te}rune(ee,te){const ne=this.newInst(gt.RUNE);ne.nullable=!1;const re=this.prog.getInst(ne.i);return re.runes=ee,te&=Me.FOLD_CASE,1===ee.length&&et.simpleFold(ee[0])!==ee[0]||(te&=~Me.FOLD_CASE),re.arg=te,ne.out=new Nt(ne.i<<1,ne.i<<1),!(te&Me.FOLD_CASE)&&1===ee.length||2===ee.length&&ee[0]===ee[1]?re.op=gt.RUNE1:2===ee.length&&0===ee[0]&&ee[1]===et.MAX_RUNE?re.op=gt.RUNE_ANY:4===ee.length&&0===ee[0]&&ee[1]===We.CODES.get("\n")-1&&ee[2]===We.CODES.get("\n")+1&&ee[3]===et.MAX_RUNE&&(re.op=gt.RUNE_ANY_NOT_NL),ne}lookBehind(ee,te){const ne=this.newInst(gt.LB_WRITE);this.prog.getInst(ne.i).arg=te;const re=this.rune(Compiler.ANY_RUNE(),0),se=this.star(re,!0),ie=this.cat(se,ee);this.prog.patch(ie.out,ne.i);const ae=this.newInst(gt.LB_CHECK);return this.prog.getInst(ae.i).arg=te,this.prog.lbStarts.push(ie.i),Math.abs(te)>this.prog.numLb&&(this.prog.numLb=Math.abs(te)),ae.out=new Nt(ae.i<<1,ae.i<<1),ae}compile(ee){switch(ee.op){case vt.Op.NO_MATCH:return this.fail();case vt.Op.EMPTY_MATCH:return this.nop();case vt.Op.LITERAL:if(0===ee.runes.length)return this.nop();{let te=null;for(let ne of ee.runes){const re=this.rune([ne],ee.flags);te=null===te?re:this.cat(te,re)}return te}case vt.Op.CHAR_CLASS:return this.rune(ee.runes,ee.flags);case vt.Op.ANY_CHAR_NOT_NL:return this.rune(Compiler.ANY_RUNE_NOT_NL(),0);case vt.Op.ANY_CHAR:return this.rune(Compiler.ANY_RUNE(),0);case vt.Op.BEGIN_LINE:return this.empty(st.EMPTY_BEGIN_LINE);case vt.Op.END_LINE:return this.empty(st.EMPTY_END_LINE);case vt.Op.BEGIN_TEXT:return this.empty(st.EMPTY_BEGIN_TEXT);case vt.Op.END_TEXT:return this.empty(st.EMPTY_END_TEXT);case vt.Op.WORD_BOUNDARY:return this.empty(st.EMPTY_WORD_BOUNDARY);case vt.Op.NO_WORD_BOUNDARY:return this.empty(st.EMPTY_NO_WORD_BOUNDARY);case vt.Op.PLB:case vt.Op.NLB:return this.lookBehind(this.compile(ee.subs[0]),ee.lb);case vt.Op.CAPTURE:{const te=this.cap(ee.cap<<1),ne=this.compile(ee.subs[0]),re=this.cap(ee.cap<<1|1);return this.cat(this.cat(te,ne),re)}case vt.Op.STAR:return this.star(this.compile(ee.subs[0]),!!(ee.flags&Me.NON_GREEDY));case vt.Op.PLUS:return this.plus(this.compile(ee.subs[0]),!!(ee.flags&Me.NON_GREEDY));case vt.Op.QUEST:return this.quest(this.compile(ee.subs[0]),!!(ee.flags&Me.NON_GREEDY));case vt.Op.CONCAT:if(0===ee.subs.length)return this.nop();{let te=null;for(let ne of ee.subs){const ee=this.compile(ne);te=null===te?ee:this.cat(te,ee)}return te}case vt.Op.ALTERNATE:if(0===ee.subs.length)return this.nop();{let te=null;for(let ne of ee.subs){const ee=this.compile(ne);te=null===te?ee:this.alt(te,ee)}return te}default:throw new Et("regexp: unhandled case in compile")}}},Gt=class Simplify{static simplify(ee){if(null===ee)return null;switch(ee.op){case vt.Op.PLB:case vt.Op.NLB:case vt.Op.CAPTURE:{const te=Simplify.simplify(ee.subs[0]);if(te!==ee.subs[0]){const ne=vt.fromRegexp(ee);return ne.runes=[],ne.subs=[te],ne}return ee}case vt.Op.CONCAT:case vt.Op.ALTERNATE:{const te=[];let ne=!1;for(let re=0;re<ee.subs.length;re++){const se=ee.subs[re],ie=Simplify.simplify(se);if(ie!==se&&(ne=!0),ee.op===vt.Op.CONCAT){if(ie.op===vt.Op.NO_MATCH)return new vt(vt.Op.NO_MATCH);if(ie.op===vt.Op.EMPTY_MATCH){ne=!0;continue}if(ie.op===vt.Op.CONCAT){ne=!0;for(let ee=0;ee<ie.subs.length;ee++)te.push(ie.subs[ee]);continue}}else if(ee.op===vt.Op.ALTERNATE){if(ie.op===vt.Op.NO_MATCH){ne=!0;continue}if(ie.op===vt.Op.ALTERNATE){ne=!0;for(let ee=0;ee<ie.subs.length;ee++)te.push(ie.subs[ee]);continue}}te.push(ie)}if(ne){if(0===te.length)return new vt(ee.op===vt.Op.CONCAT?vt.Op.EMPTY_MATCH:vt.Op.NO_MATCH);if(1===te.length)return te[0];const ne=vt.fromRegexp(ee);return ne.runes=[],ne.subs=te,ne}return ee}case vt.Op.CHAR_CLASS:return null===ee.runes?ee:0===ee.runes.length?new vt(vt.Op.NO_MATCH):2===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===et.MAX_RUNE?new vt(vt.Op.ANY_CHAR):4===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===We.CODES.get("\n")-1&&ee.runes[2]===We.CODES.get("\n")+1&&ee.runes[3]===et.MAX_RUNE?new vt(vt.Op.ANY_CHAR_NOT_NL):ee;case vt.Op.STAR:case vt.Op.PLUS:case vt.Op.QUEST:{const te=Simplify.simplify(ee.subs[0]);return Simplify.simplify1(ee.op,ee.flags,te,ee)}case vt.Op.REPEAT:{if(0===ee.min&&0===ee.max)return new vt(vt.Op.EMPTY_MATCH);const te=Simplify.simplify(ee.subs[0]);if(-1===ee.max){if(0===ee.min)return Simplify.simplify1(vt.Op.STAR,ee.flags,te,null);if(1===ee.min)return Simplify.simplify1(vt.Op.PLUS,ee.flags,te,null);const ne=new vt(vt.Op.CONCAT),re=[];for(let ne=0;ne<ee.min-1;ne++)re.push(te);return re.push(Simplify.simplify1(vt.Op.PLUS,ee.flags,te,null)),ne.subs=re.slice(0),Simplify.simplify(ne)}if(1===ee.min&&1===ee.max)return te;let ne=null;if(ee.min>0){ne=[];for(let re=0;re<ee.min;re++)ne.push(te)}if(ee.max>ee.min){let re=Simplify.simplify1(vt.Op.QUEST,ee.flags,te,null);for(let ne=ee.min+1;ne<ee.max;ne++){const ne=new vt(vt.Op.CONCAT);ne.subs=[te,re],re=Simplify.simplify1(vt.Op.QUEST,ee.flags,ne,null)}if(null===ne)return re;ne.push(re)}if(null!==ne){const ee=new vt(vt.Op.CONCAT);return ee.subs=ne.slice(0),Simplify.simplify(ee)}return new vt(vt.Op.NO_MATCH)}}return ee}static simplify1(ee,te,ne,re){if(ne.op===vt.Op.EMPTY_MATCH)return ne;if(ne.op===vt.Op.NO_MATCH)return ee===vt.Op.PLUS?ne:new vt(vt.Op.EMPTY_MATCH);if(ee===ne.op&&(te&Me.NON_GREEDY)==(ne.flags&Me.NON_GREEDY))return ne;if(null!==re&&re.op===ee&&(re.flags&Me.NON_GREEDY)==(te&Me.NON_GREEDY)&&ne===re.subs[0])return re;const se=new vt(ee);return se.flags=te,se.subs=[ne],se}},Ut=class{constructor(ee,te){this.sign=ee,this.cls=te}};const Ht=[48,57],qt=[9,10,12,13,32,32],Kt=[48,57,65,90,95,95,97,122],Qt=new Map([["\\d",new Ut(1,Ht)],["\\D",new Ut(-1,Ht)],["\\s",new Ut(1,qt)],["\\S",new Ut(-1,qt)],["\\w",new Ut(1,Kt)],["\\W",new Ut(-1,Kt)]]),jt=[48,57,65,90,97,122],Jt=[65,90,97,122],zt=[0,127],Wt=[9,9,32,32],$t=[0,31,127,127],Yt=[48,57],Xt=[33,126],Zt=[97,122],en=[32,126],tn=[33,47,58,64,91,96,123,126],nn=[9,13,32,32],rn=[65,90],sn=[48,57,65,90,95,95,97,122],an=[48,57,65,70,97,102],on=new Map([["[:alnum:]",new Ut(1,jt)],["[:^alnum:]",new Ut(-1,jt)],["[:alpha:]",new Ut(1,Jt)],["[:^alpha:]",new Ut(-1,Jt)],["[:ascii:]",new Ut(1,zt)],["[:^ascii:]",new Ut(-1,zt)],["[:blank:]",new Ut(1,Wt)],["[:^blank:]",new Ut(-1,Wt)],["[:cntrl:]",new Ut(1,$t)],["[:^cntrl:]",new Ut(-1,$t)],["[:digit:]",new Ut(1,Yt)],["[:^digit:]",new Ut(-1,Yt)],["[:graph:]",new Ut(1,Xt)],["[:^graph:]",new Ut(-1,Xt)],["[:lower:]",new Ut(1,Zt)],["[:^lower:]",new Ut(-1,Zt)],["[:print:]",new Ut(1,en)],["[:^print:]",new Ut(-1,en)],["[:punct:]",new Ut(1,tn)],["[:^punct:]",new Ut(-1,tn)],["[:space:]",new Ut(1,nn)],["[:^space:]",new Ut(-1,nn)],["[:upper:]",new Ut(1,rn)],["[:^upper:]",new Ut(-1,rn)],["[:word:]",new Ut(1,sn)],["[:^word:]",new Ut(-1,sn)],["[:xdigit:]",new Ut(1,an)],["[:^xdigit:]",new Ut(-1,an)]]);var un=class CharClass{static charClassToString(ee,te){let ne="[";for(let re=0;re<te;re+=2){re>0&&(ne+=" ");const te=ee[re],se=ee[re+1];ne+=te===se?`0x${te.toString(16)}`:`0x${te.toString(16)}-0x${se.toString(16)}`}return ne+="]",ne}static cmp(ee,te,ne,re){const se=ee[te]-ne;return 0!==se?se:re-ee[te+1]}static qsortIntPair(ee,te,ne){const re=(te+ne)/2&-2,se=ee[re],ie=ee[re+1];let ae=te,oe=ne;for(;ae<=oe;){for(;ae<ne&&CharClass.cmp(ee,ae,se,ie)<0;)ae+=2;for(;oe>te&&CharClass.cmp(ee,oe,se,ie)>0;)oe-=2;if(ae<=oe){if(ae!==oe){let te=ee[ae];ee[ae]=ee[oe],ee[oe]=te,te=ee[ae+1],ee[ae+1]=ee[oe+1],ee[oe+1]=te}ae+=2,oe-=2}}te<oe&&CharClass.qsortIntPair(ee,te,oe),ae<ne&&CharClass.qsortIntPair(ee,ae,ne)}constructor(ee=st.emptyInts()){this.r=ee,this.len=ee.length}toArray(){return this.len===this.r.length?this.r:this.r.slice(0,this.len)}cleanClass(){if(this.len<4)return this;CharClass.qsortIntPair(this.r,0,this.len-2);let ee=2;for(let te=2;te<this.len;te+=2){const ne=this.r[te],re=this.r[te+1];ne<=this.r[ee-1]+1?re>this.r[ee-1]&&(this.r[ee-1]=re):(this.r[ee]=ne,this.r[ee+1]=re,ee+=2)}return this.len=ee,this}appendLiteral(ee,te){return te&Me.FOLD_CASE?this.appendFoldedRange(ee,ee):this.appendRange(ee,ee)}appendRange(ee,te){if(this.len>0)for(let ne=2;ne<=4;ne+=2)if(this.len>=ne){const re=this.r[this.len-ne],se=this.r[this.len-ne+1];if(ee<=se+1&&re<=te+1)return ee<re&&(this.r[this.len-ne]=ee),te>se&&(this.r[this.len-ne+1]=te),this}return this.r[this.len++]=ee,this.r[this.len++]=te,this}appendFoldedRange(ee,te){if(ee<=et.MIN_FOLD&&te>=et.MAX_FOLD)return this.appendRange(ee,te);if(te<et.MIN_FOLD||ee>et.MAX_FOLD)return this.appendRange(ee,te);ee<et.MIN_FOLD&&(this.appendRange(ee,et.MIN_FOLD-1),ee=et.MIN_FOLD),te>et.MAX_FOLD&&(this.appendRange(et.MAX_FOLD+1,te),te=et.MAX_FOLD);for(let ne=ee;ne<=te;ne++){this.appendRange(ne,ne);for(let ee=et.simpleFold(ne);ee!==ne;ee=et.simpleFold(ee))this.appendRange(ee,ee)}return this}appendClass(ee){for(let te=0;te<ee.length;te+=2)this.appendRange(ee[te],ee[te+1]);return this}appendFoldedClass(ee){for(let te=0;te<ee.length;te+=2)this.appendFoldedRange(ee[te],ee[te+1]);return this}appendNegatedClass(ee){let te=0;for(let ne=0;ne<ee.length;ne+=2){const re=ee[ne],se=ee[ne+1];te<=re-1&&this.appendRange(te,re-1),te=se+1}return te<=et.MAX_RUNE&&this.appendRange(te,et.MAX_RUNE),this}appendTable(ee){for(let te=0;te<ee.length;++te){const ne=ee.getLo(te),re=ee.getHi(te),se=ee.getStride(te);if(1!==se)for(let ee=ne;ee<=re;ee+=se)this.appendRange(ee,ee);else this.appendRange(ne,re)}return this}appendNegatedTable(ee){let te=0;for(let ne=0;ne<ee.length;++ne){const re=ee.getLo(ne),se=ee.getHi(ne),ie=ee.getStride(ne);if(1!==ie)for(let ee=re;ee<=se;ee+=ie)te<=ee-1&&this.appendRange(te,ee-1),te=ee+1;else te<=re-1&&this.appendRange(te,re-1),te=se+1}return te<=et.MAX_RUNE&&this.appendRange(te,et.MAX_RUNE),this}appendTableWithSign(ee,te){return te<0?this.appendNegatedTable(ee):this.appendTable(ee)}negateClass(){let ee=0,te=0;for(let ne=0;ne<this.len;ne+=2){const re=this.r[ne],se=this.r[ne+1];ee<=re-1&&(this.r[te]=ee,this.r[te+1]=re-1,te+=2),ee=se+1}return this.len=te,ee<=et.MAX_RUNE&&(this.r[this.len++]=ee,this.r[this.len++]=et.MAX_RUNE),this}appendClassWithSign(ee,te){return te<0?this.appendNegatedClass(ee):this.appendClass(ee)}appendGroup(ee,te){let ne=ee.cls;return te&&(ne=(new CharClass).appendFoldedClass(ne).cleanClass().toArray()),this.appendClassWithSign(ne,ee.sign)}toString(){return CharClass.charClassToString(this.r,this.len)}},Bn=class{constructor(ee){this.str=ee,this.position=0}pos(){return this.position}rewindTo(ee){this.position=ee}more(){return this.position<this.str.length}peek(){return this.str.codePointAt(this.position)}skip(ee){this.position+=ee}skipString(ee){this.position+=ee.length}pop(){const ee=this.str.codePointAt(this.position);return this.position+=st.charCount(ee),ee}lookingAt(ee){return this.str.startsWith(ee,this.position)}rest(){return this.str.substring(this.position)}from(ee){return this.str.substring(ee,this.position)}toString(){return this.rest()}},cn=(Fe=class Parser{static unicodeTable(ee){return"Any"===ee?{tab:Fe.ANY_TABLE,fold:Fe.ANY_TABLE,sign:1}:"Ascii"===ee?{tab:Fe.ASCII_TABLE,fold:Fe.ASCII_FOLD_TABLE,sign:1}:"Assigned"===ee?{tab:Ze.CATEGORIES.get("Cn"),fold:Ze.CATEGORIES.get("Cn"),sign:-1}:"Lc"===ee?{tab:Ze.CATEGORIES.get("LC"),fold:Ze.FOLD_CATEGORIES.get("LC"),sign:1}:Ze.CATEGORIES.has(ee)?{tab:Ze.CATEGORIES.get(ee),fold:Ze.FOLD_CATEGORIES.get(ee),sign:1}:Ze.SCRIPTS.has(ee)?{tab:Ze.SCRIPTS.get(ee),fold:Ze.FOLD_SCRIPT.get(ee),sign:1}:null}static minFoldRune(ee){if(ee<et.MIN_FOLD||ee>et.MAX_FOLD)return ee;let te=ee;const ne=ee;for(ee=et.simpleFold(ee);ee!==ne;ee=et.simpleFold(ee))te>ee&&(te=ee);return te}static leadingRegexp(ee){if(ee.op===vt.Op.EMPTY_MATCH)return null;if(ee.op===vt.Op.CONCAT&&ee.subs.length>0){const te=ee.subs[0];return te.op===vt.Op.EMPTY_MATCH?null:te}return ee}static literalRegexp(ee,te){const ne=new vt(vt.Op.LITERAL);return ne.flags=te,ne.runes=st.stringToRunes(ee),ne}static parse(ee,te){return new Fe(ee,te).parseInternal()}static parseRepeat(ee){const te=ee.pos();if(!ee.more()||!ee.lookingAt("{"))return-1;ee.skip(1);const ne=Fe.parseInt(ee);if(-1===ne)return-1;if(!ee.more())return-1;let re;if(ee.lookingAt(",")){if(ee.skip(1),!ee.more())return-1;if(ee.lookingAt("}"))re=-1;else if(-1===(re=Fe.parseInt(ee)))return-1}else re=ne;if(!ee.more()||!ee.lookingAt("}"))return-1;if(ee.skip(1),ne<0||ne>1e3||-2===re||re>1e3||re>=0&&ne>re)throw new dt(Fe.ERR_INVALID_REPEAT_SIZE,ee.from(te));return ne<<16|re&et.MAX_BMP}static isValidCaptureName(ee){if(0===ee.length)return!1;for(let te=0;te<ee.length;te++){const ne=ee.codePointAt(te);if(ne!==We.CODES.get("_")&&!st.isalnum(ne))return!1}return!0}static parseInt(ee){const te=ee.pos();for(;ee.more()&&ee.peek()>=We.CODES.get("0")&&ee.peek()<=We.CODES.get("9");)ee.skip(1);const ne=ee.from(te);return 0===ne.length||ne.length>1&&ne.codePointAt(0)===We.CODES.get("0")?-1:ne.length>8?-2:parseInt(ne,10)}static isCharClass(ee){return ee.op===vt.Op.LITERAL&&1===ee.runes.length||ee.op===vt.Op.CHAR_CLASS||ee.op===vt.Op.ANY_CHAR_NOT_NL||ee.op===vt.Op.ANY_CHAR}static matchRune(ee,te){switch(ee.op){case vt.Op.LITERAL:return 1===ee.runes.length&&ee.runes[0]===te;case vt.Op.CHAR_CLASS:for(let ne=0;ne<ee.runes.length;ne+=2)if(ee.runes[ne]<=te&&te<=ee.runes[ne+1])return!0;return!1;case vt.Op.ANY_CHAR_NOT_NL:return te!==We.CODES.get("\n");case vt.Op.ANY_CHAR:return!0}return!1}static mergeCharClass(ee,te){switch(ee.op){case vt.Op.ANY_CHAR:break;case vt.Op.ANY_CHAR_NOT_NL:Fe.matchRune(te,We.CODES.get("\n"))&&(ee.op=vt.Op.ANY_CHAR);break;case vt.Op.CHAR_CLASS:te.op===vt.Op.LITERAL?ee.runes=new un(ee.runes).appendLiteral(te.runes[0],te.flags).toArray():ee.runes=new un(ee.runes).appendClass(te.runes).toArray();break;case vt.Op.LITERAL:if(te.runes[0]===ee.runes[0]&&te.flags===ee.flags)break;ee.op=vt.Op.CHAR_CLASS,ee.runes=(new un).appendLiteral(ee.runes[0],ee.flags).appendLiteral(te.runes[0],te.flags).toArray()}}static parseEscape(ee){const te=ee.pos();if(ee.skip(1),!ee.more())throw new dt(Fe.ERR_TRAILING_BACKSLASH);let ne=ee.pop();e:switch(ne){case We.CODES.get("1"):case We.CODES.get("2"):case We.CODES.get("3"):case We.CODES.get("4"):case We.CODES.get("5"):case We.CODES.get("6"):case We.CODES.get("7"):if(!ee.more()||ee.peek()<We.CODES.get("0")||ee.peek()>We.CODES.get("7"))break;case We.CODES.get("0"):{let te=ne-We.CODES.get("0");for(let ne=1;ne<3&&!(!ee.more()||ee.peek()<We.CODES.get("0")||ee.peek()>We.CODES.get("7"));ne++)te=8*te+ee.peek()-We.CODES.get("0"),ee.skip(1);return te}case We.CODES.get("x"):{if(!ee.more())break;if(ne=ee.pop(),ne===We.CODES.get("{")){let te=0,re=0;for(;;){if(!ee.more())break e;if(ne=ee.pop(),ne===We.CODES.get("}"))break;const se=st.unhex(ne);if(se<0)break e;if(re=16*re+se,re>et.MAX_RUNE)break e;te++}if(0===te)break e;return re}const te=st.unhex(ne);if(!ee.more())break;ne=ee.pop();const re=st.unhex(ne);if(te<0||re<0)break;return 16*te+re}case We.CODES.get("a"):return We.CODES.get("");case We.CODES.get("f"):return We.CODES.get("\f");case We.CODES.get("n"):return We.CODES.get("\n");case We.CODES.get("r"):return We.CODES.get("\r");case We.CODES.get("t"):return We.CODES.get("\t");case We.CODES.get("v"):return We.CODES.get("\v");default:if(ne<=et.MAX_ASCII&&!st.isalnum(ne))return ne}throw new dt(Fe.ERR_INVALID_ESCAPE,ee.from(te))}static parseClassChar(ee,te){if(!ee.more())throw new dt(Fe.ERR_MISSING_BRACKET,ee.from(te));return ee.lookingAt("\\")?Fe.parseEscape(ee):ee.pop()}static concatRunes(ee,te){for(let ne=0;ne<te.length;ne++)ee.push(te[ne]);return ee}static hasCapture(ee){if(null===ee)return!1;if(ee.op===vt.Op.CAPTURE)return!0;if(ee.subs)for(let te of ee.subs)if(Fe.hasCapture(te))return!0;return!1}constructor(ee,te=0){this.wholeRegexp=ee,this.flags=te,this.numCap=0,this.namedGroups=Object.create(null),this.stack=[],this.free=null,this.numRegexp=0,this.numRunes=0,this.repeats=0,this.height=null,this.size=null,this.nlb=0}newRegexp(ee){let te=this.free;return null!==te&&null!==te.subs&&te.subs.length>0?(this.free=te.subs[0],te.reinit(),te.op=ee):(te=new vt(ee),this.numRegexp+=1),te}reuse(ee){null!==this.height&&this.height.has(ee)&&this.height.delete(ee),null!==ee.subs&&ee.subs.length>0&&(ee.subs[0]=this.free),this.free=ee}checkLimits(ee){if(this.numRunes>Fe.MAX_RUNES)throw new dt(Fe.ERR_LARGE);this.checkSize(ee),this.checkHeight(ee)}checkSize(ee){if(null===this.size){if(0===this.repeats&&(this.repeats=1),ee.op===vt.Op.REPEAT){let te=ee.max;-1===te&&(te=ee.min),te<=0&&(te=1),te>Math.floor(Fe.MAX_SIZE/this.repeats)?this.repeats=Fe.MAX_SIZE:this.repeats*=te}if(this.numRegexp<Math.floor(Fe.MAX_SIZE/this.repeats))return;this.size=new Map;for(let ee of this.stack)this.checkSize(ee)}if(this.calcSize(ee,!0)>Fe.MAX_SIZE)throw new dt(Fe.ERR_LARGE)}calcSize(ee,te=!1){if(!te&&null!==this.size&&this.size.has(ee))return this.size.get(ee);let ne=0;switch(ee.op){case vt.Op.LITERAL:ne=ee.runes.length;break;case vt.Op.PLB:case vt.Op.NLB:case vt.Op.CAPTURE:case vt.Op.STAR:ne=2+this.calcSize(ee.subs[0]);break;case vt.Op.PLUS:case vt.Op.QUEST:ne=1+this.calcSize(ee.subs[0]);break;case vt.Op.CONCAT:for(let te of ee.subs)ne+=this.calcSize(te);break;case vt.Op.ALTERNATE:for(let te of ee.subs)ne+=this.calcSize(te);ee.subs.length>1&&(ne=ne+ee.subs.length-1);break;case vt.Op.REPEAT:{let te=this.calcSize(ee.subs[0]);if(-1===ee.max){ne=0===ee.min?2+te:1+ee.min*te;break}ne=ee.max*te+(ee.max-ee.min);break}}return ne=Math.max(1,ne),null===this.size&&(this.size=new Map),this.size.set(ee,ne),ne}checkHeight(ee){if(!(this.numRegexp<Fe.MAX_HEIGHT)){if(null===this.height){this.height=new Map;for(let ee of this.stack)this.checkHeight(ee)}if(this.calcHeight(ee,!0)>Fe.MAX_HEIGHT)throw new dt(Fe.ERR_NESTING_DEPTH)}}calcHeight(ee,te=!1){if(!te&&null!==this.height&&this.height.has(ee))return this.height.get(ee);let ne=1;for(let te of ee.subs){const ee=this.calcHeight(te);ne<1+ee&&(ne=1+ee)}return null===this.height&&(this.height=new Map),this.height.set(ee,ne),ne}pop(){return this.stack.pop()}popToPseudo(){const ee=this.stack.length;let te=ee;for(;te>0&&!vt.isPseudoOp(this.stack[te-1].op);)te--;const ne=this.stack.slice(te,ee);return this.stack=this.stack.slice(0,te),ne}push(ee){if(this.numRunes+=ee.runes.length,ee.op===vt.Op.CHAR_CLASS&&2===ee.runes.length&&ee.runes[0]===ee.runes[1]){if(this.maybeConcat(ee.runes[0],this.flags&~Me.FOLD_CASE))return null;ee.op=vt.Op.LITERAL,ee.runes=[ee.runes[0]],ee.flags=this.flags&~Me.FOLD_CASE}else if(ee.op===vt.Op.CHAR_CLASS&&4===ee.runes.length&&ee.runes[0]===ee.runes[1]&&ee.runes[2]===ee.runes[3]&&et.simpleFold(ee.runes[0])===ee.runes[2]&&et.simpleFold(ee.runes[2])===ee.runes[0]||ee.op===vt.Op.CHAR_CLASS&&2===ee.runes.length&&ee.runes[0]+1===ee.runes[1]&&et.simpleFold(ee.runes[0])===ee.runes[1]&&et.simpleFold(ee.runes[1])===ee.runes[0]){if(this.maybeConcat(ee.runes[0],this.flags|Me.FOLD_CASE))return null;ee.op=vt.Op.LITERAL,ee.runes=[ee.runes[0]],ee.flags=this.flags|Me.FOLD_CASE}else this.maybeConcat(-1,0);return this.stack.push(ee),this.checkLimits(ee),ee}maybeConcat(ee,te){const ne=this.stack.length;if(ne<2)return!1;const re=this.stack[ne-1],se=this.stack[ne-2];return re.op===vt.Op.LITERAL&&se.op===vt.Op.LITERAL&&(re.flags&Me.FOLD_CASE)==(se.flags&Me.FOLD_CASE)&&(se.runes=Fe.concatRunes(se.runes,re.runes),ee>=0?(re.runes=[ee],re.flags=te,!0):(this.pop(),this.reuse(re),!1))}newLiteral(ee,te){const ne=this.newRegexp(vt.Op.LITERAL);return ne.flags=te,te&Me.FOLD_CASE&&(ee=Fe.minFoldRune(ee)),ne.runes=[ee],ne}literal(ee){this.push(this.newLiteral(ee,this.flags))}op(ee){const te=this.newRegexp(ee);return te.flags=this.flags,this.push(te)}repeat(ee,te,ne,re,se,ie){let ae=this.flags;if(ae&Me.PERL_X&&(se.more()&&se.lookingAt("?")&&(se.skip(1),ae^=Me.NON_GREEDY),-1!==ie))throw new dt(Fe.ERR_INVALID_REPEAT_OP,se.from(ie));const oe=this.stack.length;if(0===oe)throw new dt(Fe.ERR_MISSING_REPEAT_ARGUMENT,se.from(re));const ue=this.stack[oe-1];if(vt.isPseudoOp(ue.op))throw new dt(Fe.ERR_MISSING_REPEAT_ARGUMENT,se.from(re));const Be=this.newRegexp(ee);if(Be.min=te,Be.max=ne,Be.flags=ae,Be.subs=[ue],this.stack[oe-1]=Be,this.checkLimits(Be),ee===vt.Op.REPEAT&&(te>=2||ne>=2)&&!this.repeatIsValid(Be,1e3))throw new dt(Fe.ERR_INVALID_REPEAT_SIZE,se.from(re))}repeatIsValid(ee,te){if(ee.op===vt.Op.REPEAT){let ne=ee.max;if(0===ne)return!0;if(ne<0&&(ne=ee.min),ne>te)return!1;ne>0&&(te=Math.trunc(te/ne))}for(let ne of ee.subs)if(!this.repeatIsValid(ne,te))return!1;return!0}concat(){this.maybeConcat(-1,0);const ee=this.popToPseudo();return 0===ee.length?this.push(this.newRegexp(vt.Op.EMPTY_MATCH)):this.push(this.collapse(ee,vt.Op.CONCAT))}alternate(){const ee=this.popToPseudo();return ee.length>0&&this.cleanAlt(ee[ee.length-1]),0===ee.length?this.push(this.newRegexp(vt.Op.NO_MATCH)):this.push(this.collapse(ee,vt.Op.ALTERNATE))}cleanAlt(ee){ee.op===vt.Op.CHAR_CLASS&&(ee.runes=new un(ee.runes).cleanClass().toArray(),2===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===et.MAX_RUNE?(ee.runes=[],ee.op=vt.Op.ANY_CHAR):4===ee.runes.length&&0===ee.runes[0]&&ee.runes[1]===We.CODES.get("\n")-1&&ee.runes[2]===We.CODES.get("\n")+1&&ee.runes[3]===et.MAX_RUNE&&(ee.runes=[],ee.op=vt.Op.ANY_CHAR_NOT_NL))}collapse(ee,te){if(1===ee.length)return ee[0];let ne=0;for(let re of ee)ne+=re.op===te?re.subs.length:1;let re=new Array(ne).fill(null),se=0;for(let ne of ee)if(ne.op===te){for(let ee=0;ee<ne.subs.length;ee++)re[se++]=ne.subs[ee];this.reuse(ne)}else re[se++]=ne;let ie=this.newRegexp(te);if(ie.subs=re,te===vt.Op.ALTERNATE&&(ie.subs=this.factor(ie.subs),1===ie.subs.length)){const ee=ie;ie=ie.subs[0],this.reuse(ee)}return ie}factor(ee){if(ee.length<2)return ee;let te=0,ne=ee.length,re=0,se=null,ie=0,ae=0,oe=0;for(let ue=0;ue<=ne;ue++){let Be=null,le=0,ce=0;if(ue<ne){let ne=ee[te+ue];if(ne.op===vt.Op.CONCAT&&ne.subs.length>0&&(ne=ne.subs[0]),ne.op===vt.Op.LITERAL&&(Be=ne.runes,le=ne.runes.length,ce=ne.flags&Me.FOLD_CASE),ce===ae){let ee=0;for(;ee<ie&&ee<le&&se[ee]===Be[ee];)ee++;if(ee>0){ie=ee;continue}}}if(ue===oe);else if(ue===oe+1)ee[re++]=ee[te+oe];else{const ne=this.newRegexp(vt.Op.LITERAL);ne.flags=ae,ne.runes=se.slice(0,ie);for(let ne=oe;ne<ue;ne++)ee[te+ne]=this.removeLeadingString(ee[te+ne],ie),this.checkLimits(ee[te+ne]);const Be=this.collapse(ee.slice(te+oe,te+ue),vt.Op.ALTERNATE),le=this.newRegexp(vt.Op.CONCAT);le.subs=[ne,Be],ee[re++]=le}oe=ue,se=Be,ie=le,ae=ce}ne=re,te=0,oe=0,re=0;let ue=null;for(let se=0;se<=ne;se++){let ie=null;if(!(se<ne&&(ie=Fe.leadingRegexp(ee[te+se]),null!==ue&&ue.equals(ie)&&(Fe.isCharClass(ue)||ue.op===vt.Op.REPEAT&&ue.min===ue.max&&Fe.isCharClass(ue.subs[0]))))){if(se===oe);else if(se===oe+1)ee[re++]=ee[te+oe];else{const ne=ue;for(let ne=oe;ne<se;ne++){const re=ne!==oe;ee[te+ne]=this.removeLeadingRegexp(ee[te+ne],re),this.checkLimits(ee[te+ne])}const ie=this.collapse(ee.slice(te+oe,te+se),vt.Op.ALTERNATE),ae=this.newRegexp(vt.Op.CONCAT);ae.subs=[ne,ie],ee[re++]=ae}oe=se,ue=ie}}ne=re,te=0,oe=0,re=0;for(let se=0;se<=ne;se++)if(!(se<ne&&Fe.isCharClass(ee[te+se]))){if(se===oe);else if(se===oe+1)ee[re++]=ee[te+oe];else{let ne=oe;for(let re=oe+1;re<se;re++){const se=ee[te+ne],ie=ee[te+re];(se.op<ie.op||se.op===ie.op&&(null!==se.runes?se.runes.length:0)<(null!==ie.runes?ie.runes.length:0))&&(ne=re)}const ie=ee[te+oe];ee[te+oe]=ee[te+ne],ee[te+ne]=ie;for(let ne=oe+1;ne<se;ne++)Fe.mergeCharClass(ee[te+oe],ee[te+ne]),this.reuse(ee[te+ne]);this.cleanAlt(ee[te+oe]),ee[re++]=ee[te+oe]}se<ne&&(ee[re++]=ee[te+se]),oe=se+1}ne=re,te=0,oe=0,re=0;for(let se=0;se<ne;++se)se+1<ne&&ee[te+se].op===vt.Op.EMPTY_MATCH&&ee[te+se+1].op===vt.Op.EMPTY_MATCH||(ee[re++]=ee[te+se]);return ne=re,te=0,ee.slice(te,ne)}removeLeadingString(ee,te){if(ee.op===vt.Op.CONCAT&&ee.subs.length>0){const ne=this.removeLeadingString(ee.subs[0],te);if(ee.subs[0]=ne,ne.op===vt.Op.EMPTY_MATCH)switch(this.reuse(ne),ee.subs.length){case 0:case 1:ee.op=vt.Op.EMPTY_MATCH,ee.subs=vt.emptySubs();break;case 2:{const te=ee;ee=ee.subs[1],this.reuse(te);break}default:ee.subs=ee.subs.slice(1,ee.subs.length)}return ee}return ee.op===vt.Op.LITERAL&&(ee.runes=ee.runes.slice(te,ee.runes.length),0===ee.runes.length&&(ee.op=vt.Op.EMPTY_MATCH)),ee}removeLeadingRegexp(ee,te){if(ee.op===vt.Op.CONCAT&&ee.subs.length>0){switch(te&&this.reuse(ee.subs[0]),ee.subs=ee.subs.slice(1,ee.subs.length),ee.subs.length){case 0:ee.op=vt.Op.EMPTY_MATCH,ee.subs=vt.emptySubs();break;case 1:{const te=ee;ee=ee.subs[0],this.reuse(te);break}}return ee}return te&&this.reuse(ee),this.newRegexp(vt.Op.EMPTY_MATCH)}parseInternal(){if(this.flags&Me.LITERAL)return Fe.literalRegexp(this.wholeRegexp,this.flags);let ee=-1,te=-1,ne=-1;const re=new Bn(this.wholeRegexp);for(;re.more();){let se=-1;e:switch(re.peek()){case We.CODES.get("("):if(this.flags&Me.LOOKBEHIND){if(re.lookingAt("(?<=")){this.parsePosLookBehind(),re.skip(4);break}if(re.lookingAt("(?<!")){this.parseNegLookBehind(),re.skip(4);break}}if(this.flags&Me.PERL_X&&re.lookingAt("(?")){this.parsePerlFlags(re);break}this.op(vt.Op.LEFT_PAREN).cap=++this.numCap,re.skip(1);break;case We.CODES.get("|"):this.parseVerticalBar(),re.skip(1);break;case We.CODES.get(")"):this.parseRightParen(),re.skip(1);break;case We.CODES.get("^"):this.flags&Me.ONE_LINE?this.op(vt.Op.BEGIN_TEXT):this.op(vt.Op.BEGIN_LINE),re.skip(1);break;case We.CODES.get("$"):this.flags&Me.ONE_LINE?this.op(vt.Op.END_TEXT).flags|=Me.WAS_DOLLAR:this.op(vt.Op.END_LINE),re.skip(1);break;case We.CODES.get("."):this.flags&Me.DOT_NL?this.op(vt.Op.ANY_CHAR):this.op(vt.Op.ANY_CHAR_NOT_NL),re.skip(1);break;case We.CODES.get("["):this.parseClass(re);break;case We.CODES.get("*"):case We.CODES.get("+"):case We.CODES.get("?"):{se=re.pos();let ie=null;switch(re.pop()){case We.CODES.get("*"):ie=vt.Op.STAR;break;case We.CODES.get("+"):ie=vt.Op.PLUS;break;case We.CODES.get("?"):ie=vt.Op.QUEST}this.repeat(ie,te,ne,se,re,ee);break}case We.CODES.get("{"):{se=re.pos();const ie=Fe.parseRepeat(re);if(ie<0){re.rewindTo(se),this.literal(re.pop());break}te=ie>>16,ne=(ie&et.MAX_BMP)<<16>>16,this.repeat(vt.Op.REPEAT,te,ne,se,re,ee);break}case We.CODES.get("\\"):{const ee=re.pos();if(re.skip(1),this.flags&Me.PERL_X&&re.more())switch(re.pop()){case We.CODES.get("A"):this.op(vt.Op.BEGIN_TEXT);break e;case We.CODES.get("b"):this.op(vt.Op.WORD_BOUNDARY);break e;case We.CODES.get("B"):this.op(vt.Op.NO_WORD_BOUNDARY);break e;case We.CODES.get("C"):throw new dt(Fe.ERR_INVALID_ESCAPE,"\\C");case We.CODES.get("Q"):{let ee=re.rest();const te=ee.indexOf("\\E");te>=0?(ee=ee.substring(0,te),re.skipString(ee),re.skipString("\\E")):re.skipString(ee);let ne=0;for(;ne<ee.length;){const te=ee.codePointAt(ne);this.literal(te),ne+=st.charCount(te)}break e}case We.CODES.get("z"):this.op(vt.Op.END_TEXT);break e;default:re.rewindTo(ee)}else re.rewindTo(ee);const te=this.newRegexp(vt.Op.CHAR_CLASS);if(te.flags=this.flags,re.lookingAt("\\p")||re.lookingAt("\\P")){const ee=new un;if(this.parseUnicodeClass(re,ee)){te.runes=ee.toArray(),this.push(te);break e}}const ne=new un;if(this.parsePerlClassEscape(re,ne)){te.runes=ne.toArray(),this.push(te);break e}re.rewindTo(ee),this.reuse(te),this.literal(Fe.parseEscape(re));break}default:this.literal(re.pop())}ee=se}if(this.concat(),this.swapVerticalBar()&&this.pop(),this.alternate(),1!==this.stack.length)throw new dt(Fe.ERR_MISSING_PAREN,this.wholeRegexp);return this.stack[0].namedGroups=this.namedGroups,this.stack[0]}parsePerlFlags(ee){const te=ee.pos(),ne=ee.rest();if(ne.startsWith("(?P<")||ne.startsWith("(?<")){const te="P"===ne.charAt(2)?4:3,re=ne.indexOf(">");if(re<0)throw new dt(Fe.ERR_INVALID_NAMED_CAPTURE,ne);const se=ne.substring(te,re);if(ee.skipString(se),ee.skip(te+1),!Fe.isValidCaptureName(se))throw new dt(Fe.ERR_INVALID_NAMED_CAPTURE,ne.substring(0,re+1));const ie=this.op(vt.Op.LEFT_PAREN);if(ie.cap=++this.numCap,this.namedGroups[se])throw new dt(Fe.ERR_DUPLICATE_NAMED_CAPTURE,se);return this.namedGroups[se]=this.numCap,void(ie.name=se)}ee.skip(2);let re=this.flags,se=1,ie=!1;e:for(;ee.more();){const te=ee.pop();switch(te){case We.CODES.get("i"):re|=Me.FOLD_CASE,ie=!0;break;case We.CODES.get("m"):re&=~Me.ONE_LINE,ie=!0;break;case We.CODES.get("s"):re|=Me.DOT_NL,ie=!0;break;case We.CODES.get("U"):re|=Me.NON_GREEDY,ie=!0;break;case We.CODES.get("-"):if(se<0)break e;se=-1,re=~re,ie=!1;break;case We.CODES.get(":"):case We.CODES.get(")"):if(se<0){if(!ie)break e;re=~re}return te===We.CODES.get(":")&&this.op(vt.Op.LEFT_PAREN),void(this.flags=re);default:break e}}throw new dt(Fe.ERR_INVALID_PERL_OP,ee.from(te))}parsePosLookBehind(){const ee=this.newRegexp(vt.Op.LEFT_PAREN);return ee.flags=this.flags,ee.lb=++this.nlb,this.push(ee)}parseNegLookBehind(){const ee=this.newRegexp(vt.Op.LEFT_PAREN);return ee.flags=this.flags,ee.lb=-++this.nlb,this.push(ee)}parseVerticalBar(){this.concat(),this.swapVerticalBar()||this.op(vt.Op.VERTICAL_BAR)}swapVerticalBar(){const ee=this.stack.length;if(ee>=3&&this.stack[ee-2].op===vt.Op.VERTICAL_BAR&&Fe.isCharClass(this.stack[ee-1])&&Fe.isCharClass(this.stack[ee-3])){let te=this.stack[ee-1],ne=this.stack[ee-3];if(te.op>ne.op){const re=ne;ne=te,te=re,this.stack[ee-3]=ne}return Fe.mergeCharClass(ne,te),this.reuse(te),this.pop(),!0}if(ee>=2){const te=this.stack[ee-1],ne=this.stack[ee-2];if(ne.op===vt.Op.VERTICAL_BAR)return ee>=3&&this.cleanAlt(this.stack[ee-3]),this.stack[ee-2]=te,this.stack[ee-1]=ne,!0}return!1}parseRightParen(){if(this.concat(),this.swapVerticalBar()&&this.pop(),this.alternate(),this.stack.length<2)throw new dt(Fe.ERR_UNEXPECTED_PAREN,this.wholeRegexp);const ee=this.pop(),te=this.pop();if(te.op!==vt.Op.LEFT_PAREN)throw new dt(Fe.ERR_UNEXPECTED_PAREN,this.wholeRegexp);if(this.flags=te.flags,0!==te.lb){if(Fe.hasCapture(ee))throw new dt(Fe.ERR_INVALID_CAPTURE_IN_LOOKBEHIND,this.wholeRegexp);return te.lb>0?te.op=vt.Op.PLB:te.op=vt.Op.NLB,te.subs=[ee],void this.push(te)}0===te.cap?this.push(ee):(te.op=vt.Op.CAPTURE,te.subs=[ee],this.push(te))}parsePerlClassEscape(ee,te){const ne=ee.pos();if(!(this.flags&Me.PERL_X&&ee.more()&&ee.pop()===We.CODES.get("\\")&&ee.more()))return!1;ee.pop();const re=ee.from(ne),se=Qt.has(re)?Qt.get(re):null;return null!==se&&(te.appendGroup(se,!!(this.flags&Me.FOLD_CASE)),!0)}parseNamedClass(ee,te){const ne=ee.rest(),re=ne.indexOf(":]");if(re<0)return!1;const se=ne.substring(0,re+2);ee.skipString(se);const ie=on.has(se)?on.get(se):null;if(null===ie)throw new dt(Fe.ERR_INVALID_CHAR_RANGE,se);return te.appendGroup(ie,!!(this.flags&Me.FOLD_CASE)),!0}parseUnicodeClass(ee,te){const ne=ee.pos();if(!(this.flags&Me.UNICODE_GROUPS)||!ee.lookingAt("\\p")&&!ee.lookingAt("\\P"))return!1;ee.skip(1);let re,se=1,ie=ee.pop();if(ie===We.CODES.get("P")&&(se=-1),!ee.more())throw ee.rewindTo(ne),new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.rest());if(ie=ee.pop(),ie!==We.CODES.get("{"))re=st.runeToString(ie);else{const te=ee.rest(),se=te.indexOf("}");if(se<0)throw ee.rewindTo(ne),new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.rest());re=te.substring(0,se),ee.skipString(re),ee.skip(1)}0!==re.length&&re.codePointAt(0)===We.CODES.get("^")&&(se=0-se,re=re.substring(1));const ae=Fe.unicodeTable(re);if(null===ae)throw new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.from(ne));ae.sign<0&&(se=0-se);const oe=ae.tab,ue=ae.fold;if(this.flags&Me.FOLD_CASE&&null!==ue){const ee=(new un).appendTable(oe).appendTable(ue).cleanClass().toArray();te.appendClassWithSign(ee,se)}else te.appendTableWithSign(oe,se);return!0}parseClass(ee){const te=ee.pos();ee.skip(1);const ne=this.newRegexp(vt.Op.CHAR_CLASS);ne.flags=this.flags;const re=new un;let se=1;ee.more()&&ee.lookingAt("^")&&(se=-1,ee.skip(1),this.flags&Me.CLASS_NL||re.appendRange(We.CODES.get("\n"),We.CODES.get("\n")));let ie=!0;for(;!ee.more()||ee.peek()!==We.CODES.get("]")||ie;){if(ee.more()&&ee.lookingAt("-")&&!(this.flags&Me.PERL_X)&&!ie){const ne=ee.rest();if("-"===ne||!ne.startsWith("-]"))throw ee.rewindTo(te),new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.rest())}ie=!1;const ne=ee.pos();if(ee.lookingAt("[:")){if(this.parseNamedClass(ee,re))continue;ee.rewindTo(ne)}if(this.parseUnicodeClass(ee,re))continue;if(this.parsePerlClassEscape(ee,re))continue;ee.rewindTo(ne);const se=Fe.parseClassChar(ee,te);let ae=se;if(ee.more()&&ee.lookingAt("-"))if(ee.skip(1),ee.more()&&ee.lookingAt("]"))ee.skip(-1);else if(ae=Fe.parseClassChar(ee,te),ae<se)throw new dt(Fe.ERR_INVALID_CHAR_RANGE,ee.from(ne));this.flags&Me.FOLD_CASE?re.appendFoldedRange(se,ae):re.appendRange(se,ae)}ee.skip(1),re.cleanClass(),se<0&&re.negateClass(),ne.runes=re.toArray(),this.push(ne)}},Fe.ERR_INTERNAL_ERROR="regexp/syntax: internal error",Fe.ERR_INVALID_CHAR_RANGE="invalid character class range",Fe.ERR_INVALID_ESCAPE="invalid escape sequence",Fe.ERR_INVALID_NAMED_CAPTURE="invalid named capture",Fe.ERR_INVALID_PERL_OP="invalid or unsupported Perl syntax",Fe.ERR_INVALID_REPEAT_OP="invalid nested repetition operator",Fe.ERR_INVALID_REPEAT_SIZE="invalid repeat count",Fe.ERR_MISSING_BRACKET="missing closing ]",Fe.ERR_MISSING_PAREN="missing closing )",Fe.ERR_MISSING_REPEAT_ARGUMENT="missing argument to repetition operator",Fe.ERR_TRAILING_BACKSLASH="trailing backslash at end of expression",Fe.ERR_DUPLICATE_NAMED_CAPTURE="duplicate capture group name",Fe.ERR_UNEXPECTED_PAREN="unexpected )",Fe.ERR_NESTING_DEPTH="expression nests too deeply",Fe.ERR_LARGE="expression too large",Fe.ERR_INVALID_CAPTURE_IN_LOOKBEHIND="invalid capture in lookbehind",Fe.MAX_HEIGHT=1e3,Fe.MAX_SIZE=3355443,Fe.MAX_RUNES=33554432,Fe.ANY_TABLE=new $e(new Uint32Array([0,et.MAX_RUNE,1])),Fe.ASCII_TABLE=new $e(new Uint32Array([0,127,1])),Fe.ASCII_FOLD_TABLE=new $e(new Uint32Array([0,127,1,383,383,1,8490,8490,1])),Fe),_n=class{constructor(ee){this.value=ee}get(){return this.value}set(ee){this.value=ee}compareAndSet(ee,te){return this.value===ee&&(this.value=te,!0)}},hn=class RE2{static initTest(ee){const te=RE2.compile(ee),ne=new RE2(te.expr,te.prog,te.numSubexp,te.longest);return ne.cond=te.cond,ne.prefix=te.prefix,ne.prefixUTF8=te.prefixUTF8,ne.prefixComplete=te.prefixComplete,ne.prefixRune=te.prefixRune,ne.prefilter=te.prefilter,ne}static compile(ee){return RE2.compileImpl(ee,Me.PERL,!1)}static compilePOSIX(ee){return RE2.compileImpl(ee,Me.POSIX,!0)}static compileImpl(ee,te,ne){let re=cn.parse(ee,te);const se=re.maxCap();re=Gt.simplify(re);const ie=Ot.build(re),ae=kt.compileRegexp(re),oe=new RE2(ee,ae,se,ne);oe.prefilter=ie.type===Ft.Type.NONE?null:ie;const[ue,Be]=ae.prefix();return oe.prefixComplete=ue,oe.prefix=Be,oe.prefixUTF8=st.stringToUtf8ByteArray(oe.prefix),oe.prefix.length>0&&(oe.prefixRune=oe.prefix.codePointAt(0)),oe.namedGroups=re.namedGroups,oe}static match(ee,te){return RE2.compile(ee).match(te)}constructor(ee,te,ne=0,re=0){this.expr=ee,this.prog=te,this.numSubexp=ne,this.longest=re,this.cond=te.startCond(),this.prefix=null,this.prefixUTF8=null,this.prefixComplete=!1,this.prefixRune=0,this.pooled=new _n,this.dfa=new Rt(this.prog),this.onepass=St.compile(this.prog),this.prefilter=null}matchPrefixComplete(ee,te,ne,re){if((ne===Me.ANCHOR_START||ne===Me.ANCHOR_BOTH)&&0!==te)return null;let se=-1,ie=-1;const ae=ee.prefixLength(this);if(ne===Me.UNANCHORED){const ne=ee.index(this,te);if(ne<0)return null;se=te+ne,ie=se+ae}else if(ne===Me.ANCHOR_BOTH){if(ee.endPos()!==ae)return null;if(0!==ee.index(this,0))return null;se=0,ie=ae}else if(ne===Me.ANCHOR_START){if(0!==ee.index(this,0))return null;se=0,ie=ae}if(se<0)return null;if(re>0){const ee=new Int32Array(re).fill(-1);return ee[0]=se,ee[1]=ie,Array.from(ee)}return[]}executeEngine(ee,te,ne,re){if(this.prefixComplete&&(0===re||0===this.numSubexp))return this.matchPrefixComplete(ee,te,ne,re);if(null!==this.prefilter&&ne===Me.UNANCHORED&&!this.prefilter.eval(ee,te))return null;if(null!==this.onepass)return St.execute(this,ee,te,ne,re);if(re>0)return 0===this.prog.numLb&&ee.endPos()<=yt.maxBitStateLen(this.prog)?yt.execute(this,ee,te,ne,re):this.doExecuteNFA(ee,te,ne,re);if(0===this.prog.numLb){const se=this.dfa.match(ee,te,ne);if(null!==se)return se?[]:null;if(ee.endPos()<=yt.maxBitStateLen(this.prog))return yt.execute(this,ee,te,ne,re)}return this.doExecuteNFA(ee,te,ne,re)}numberOfCapturingGroups(){return this.numSubexp}numberOfInstructions(){return this.prog.numInst()}get(){let ee;do{ee=this.pooled.get()}while(ee&&!this.pooled.compareAndSet(ee,ee.next));return ee}reset(){this.pooled.set(null)}put(ee,te){let ne=this.pooled.get();do{ne=this.pooled.get(),!te&&ne&&(ee=At.fromMachine(ee),te=!0),ee.next!==ne&&(ee.next=ne)}while(!this.pooled.compareAndSet(ne,ee))}toString(){return this.expr}doExecuteNFA(ee,te,ne,re){let se=this.get(),ie=!1;se?null!==se.next&&(se=At.fromMachine(se),ie=!0):(se=At.fromRE2(this),ie=!0),se.init(re);const ae=se.match(ee,te,ne)?se.submatches():null;return this.put(se,ie),ae}match(ee){return null!==this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,0)}matchWithGroup(ee,te,ne,re,se){return ee instanceof it||(ee=st.isByteArray(ee)?ut.utf8(ee):ut.utf16(ee)),this.matchMachineInput(ee,te,ne,re,se)}matchMachineInput(ee,te,ne,re,se){if(te>ne)return[!1,null];const ie=ee.isUTF16Encoding()?_t.fromUTF16(ee.asCharSequence(),0,ne):_t.fromUTF8(ee.asBytes(),0,ne),ae=this.executeEngine(ie,te,re,2*se);return null===ae?[!1,null]:[!0,ae]}matchUTF8(ee){return null!==this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,0)}replaceAll(ee,te){return this.replaceAllFunc(ee,(()=>te),2*ee.length+1)}replaceFirst(ee,te){return this.replaceAllFunc(ee,(()=>te),1)}replaceAllFunc(ee,te,ne){let re=0,se=0,ie="";const ae=_t.fromUTF16(ee);let oe=0;for(;se<=ee.length;){const ue=this.executeEngine(ae,se,Me.UNANCHORED,2);if(null===ue||0===ue.length)break;ie+=ee.substring(re,ue[0]),(ue[1]>re||0===ue[0])&&(ie+=te(ee.substring(ue[0],ue[1])),oe++),re=ue[1];const Be=7&ae.step(se);if(se+Be>ue[1]?se+=Be:se+1>ue[1]?se++:se=ue[1],oe>=ne)break}return ie+=ee.substring(re),ie}pad(ee){if(null===ee)return null;let te=2*(1+this.numSubexp);if(ee.length<te){let ne=new Array(te).fill(-1);for(let te=0;te<ee.length;te++)ne[te]=ee[te];ee=ne}return ee}allMatches(ee,te,ne=ee=>ee){let re=[];const se=ee.endPos();te<0&&(te=se+1);let ie=0,ae=0,oe=-1;for(;ae<te&&ie<=se;){const te=this.executeEngine(ee,ie,Me.UNANCHORED,this.prog.numCap);if(null===te||0===te.length)break;let ue=!0;if(te[1]===ie){te[0]===oe&&(ue=!1);const ne=ee.step(ie);ne<0?ie=se+1:ie+=7&ne}else ie=te[1];oe=te[1],ue&&(re.push(ne(this.pad(te))),ae++)}return re}findUTF8(ee){const te=this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,2);return null===te?null:ee.slice(te[0],te[1])}findUTF8Index(ee){const te=this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,2);return null===te?null:te.slice(0,2)}find(ee){const te=this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,2);return null===te?"":ee.substring(te[0],te[1])}findIndex(ee){return this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,2)}findUTF8Submatch(ee){const te=this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,this.prog.numCap);if(null===te)return null;const ne=new Array(1+this.numSubexp).fill(null);for(let re=0;re<ne.length;re++)2*re<te.length&&te[2*re]>=0&&(ne[re]=ee.slice(te[2*re],te[2*re+1]));return ne}findUTF8SubmatchIndex(ee){return this.pad(this.executeEngine(_t.fromUTF8(ee),0,Me.UNANCHORED,this.prog.numCap))}findSubmatch(ee){const te=this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,this.prog.numCap);if(null===te)return null;const ne=new Array(1+this.numSubexp).fill(null);for(let re=0;re<ne.length;re++)2*re<te.length&&te[2*re]>=0&&(ne[re]=ee.substring(te[2*re],te[2*re+1]));return ne}findSubmatchIndex(ee){return this.pad(this.executeEngine(_t.fromUTF16(ee),0,Me.UNANCHORED,this.prog.numCap))}findAllUTF8(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te,(te=>ee.slice(te[0],te[1])));return 0===ne.length?null:ne}findAllUTF8Index(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te,(ee=>ee.slice(0,2)));return 0===ne.length?null:ne}findAll(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te,(te=>ee.substring(te[0],te[1])));return 0===ne.length?null:ne}findAllIndex(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te,(ee=>ee.slice(0,2)));return 0===ne.length?null:ne}findAllUTF8Submatch(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te,(te=>{let ne=new Array(te.length/2|0).fill(null);for(let re=0;re<ne.length;re++)te[2*re]>=0&&(ne[re]=ee.slice(te[2*re],te[2*re+1]));return ne}));return 0===ne.length?null:ne}findAllUTF8SubmatchIndex(ee,te){const ne=this.allMatches(_t.fromUTF8(ee),te);return 0===ne.length?null:ne}findAllSubmatch(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te,(te=>{let ne=new Array(te.length/2|0).fill(null);for(let re=0;re<ne.length;re++)te[2*re]>=0&&(ne[re]=ee.substring(te[2*re],te[2*re+1]));return ne}));return 0===ne.length?null:ne}findAllSubmatchIndex(ee,te){const ne=this.allMatches(_t.fromUTF16(ee),te);return 0===ne.length?null:ne}};(Oe=class RE2Set{constructor(ee=Oe.UNANCHORED,te=0,ne=8388608){this.anchor=ee,this.jsFlags=te,this.maxMem=ne;let re=Me.PERL;te&He&&(re&=~Me.UNICODE_GROUPS),te&Ke&&(re|=Me.LOOKBEHIND),this.re2Flags=re,this.regexps=[],this.prog=null,this.dfa=null,this.dummyRe2=null}add(ee){if(this.prog)throw new Et("Cannot add patterns after compile");let te=ee;this.jsFlags&ke&&(te=`(?i)${te}`),this.jsFlags&Ge&&(te=`(?s)${te}`),this.jsFlags&Ue&&(te=`(?m)${te}`);const ne=cn.parse(te,this.re2Flags);return this.regexps.push(Gt.simplify(ne)),this.regexps.length-1}compile(){this.prog||(this.prog=kt.compileSet(this.regexps),this.dfa=new Rt(this.prog,this.maxMem),this.dummyRe2={prog:this.prog,cond:this.prog.startCond(),prefix:"",prefixRune:0,longest:!1})}match(ee){this.prog||this.compile();const te=st.isByteArray(ee)?_t.fromUTF8(ee):_t.fromUTF16(ee);let ne=Me.UNANCHORED;this.anchor===Oe.ANCHOR_START?ne=Me.ANCHOR_START:this.anchor===Oe.ANCHOR_BOTH&&(ne=Me.ANCHOR_BOTH);const re=this.dfa.matchSet(te,0,ne);if(null!==re)return re;const se=At.fromRE2(this.dummyRe2);return se.init(0),se.matchSet(te,0,ne)}}).UNANCHORED=Me.UNANCHORED,Oe.ANCHOR_START=Me.ANCHOR_START,Oe.ANCHOR_BOTH=Me.ANCHOR_BOTH;var dn=class TranslateRegExpString{static isHexadecimal(ee){return"0"<=ee&&ee<="9"||"A"<=ee&&ee<="F"||"a"<=ee&&ee<="f"}static translate(ee){let te="";if(ee instanceof RegExp&&(ee.ignoreCase&&(te+="i"),ee.multiline&&(te+="m"),ee.dotAll&&(te+="s"),ee=ee.source),"string"!=typeof ee)return ee;let ne="",re=!1,se=ee.length;0===se&&(ne="(?:)",re=!0);let ie=!1,ae=0;for(;ae<se;){let te=ee[ae];if("\\"===te){if(ae+1<se)switch(te=ee[ae+1],te){case"\\":ne+="\\\\",ae+=2;continue;case"c":if(ae+2<se){let te=ee[ae+2].charCodeAt(0);if(te>=65&&te<=90||te>=97&&te<=122){let ee=te%32;ne+="\\x",ne+=(ee>>4).toString(16).toUpperCase(),ne+=(15&ee).toString(16).toUpperCase(),ae+=3,re=!0;continue}}ne+="c",ae+=2,re=!0;continue;case"u":if(ae+2<se)if("{"===ee[ae+2]){let te=ae+3,ie=!1,oe=!1;for(;te<se;){const ne=ee[te];if("}"===ne){oe=!0;break}if(!TranslateRegExpString.isHexadecimal(ne))break;ie=!0,te++}if(oe&&ie){ne+="\\x",ae+=2,re=!0;continue}}else if(ae+5<se){let te=!0;for(let ne=0;ne<4;ne++)if(!TranslateRegExpString.isHexadecimal(ee[ae+2+ne])){te=!1;break}if(te){ne+="\\x{"+ee.substring(ae+2,ae+6)+"}",ae+=6,re=!0;continue}}ne+="u",ae+=2,re=!0;continue;case"x":{let te=!1;if(ae+2<se&&"{"===ee[ae+2]){let ne=ae+3,re=!1,ie=!1;for(;ne<se;){const te=ee[ne];if("}"===te){ie=!0;break}if(!TranslateRegExpString.isHexadecimal(te))break;re=!0,ne++}ie&&re&&(te=!0)}else ae+3<se&&TranslateRegExpString.isHexadecimal(ee[ae+2])&&TranslateRegExpString.isHexadecimal(ee[ae+3])&&(te=!0);te?(ne+="\\x",ae+=2):(ne+="x",ae+=2,re=!0);continue}case"n":case"r":case"t":case"a":case"f":case"v":case"d":case"D":case"s":case"S":case"w":case"W":case"b":case"B":case"p":case"P":case"A":case"z":case"Q":case"E":case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":ne+="\\"+te,ae+=2;continue;default:{let te=ee.codePointAt(ae+1);if(te>=48&&te<=57||te>=65&&te<=90||te>=97&&te<=122){let se=st.charCount(te);ne+=ee.substring(ae+1,ae+1+se),ae+=se+1,re=!0}else{ne+="\\";let re=st.charCount(te);ne+=ee.substring(ae+1,ae+1+re),ae+=re+1}continue}}}else{if("/"===te){ne+="\\/",ae+=1,re=!0;continue}if("["===te)ie=!0;else if("]"===te)ie=!1;else if(!ie&&"("===te&&ae+2<se&&"?"===ee[ae+1]&&"<"===ee[ae+2]&&ae+3<se&&!"=!>)".includes(ee[ae+3])){ne+="(?P<",ae+=3,re=!0;continue}}let oe=ee.codePointAt(ae),ue=st.charCount(oe);ne+=ee.substring(ae,ae+ue),ae+=ue}const oe=re?ne:ee;return te.length>0?`(?${te})${oe}`:oe}},En=(Ne=class RE2JS{static quote(ee){return st.quoteMeta(ee)}static quoteReplacement(ee,te=!1){return ft.quoteReplacement(ee,te)}static translateRegExp(ee){return dn.translate(ee)}static compile(ee,te=0){let ne=ee;if(te&Ne.CASE_INSENSITIVE&&(ne=`(?i)${ne}`),te&Ne.DOTALL&&(ne=`(?s)${ne}`),te&Ne.MULTILINE&&(ne=`(?m)${ne}`),te&~(Ne.MULTILINE|Ne.DOTALL|Ne.CASE_INSENSITIVE|Ne.DISABLE_UNICODE_GROUPS|Ne.LONGEST_MATCH|Ne.LOOKBEHINDS))throw new pt("Flags should only be a combination of MULTILINE, DOTALL, CASE_INSENSITIVE, DISABLE_UNICODE_GROUPS, LONGEST_MATCH, LOOKBEHINDS");let re=Me.PERL;te&Ne.DISABLE_UNICODE_GROUPS&&(re&=~Me.UNICODE_GROUPS),te&Ne.LOOKBEHINDS&&(re|=Me.LOOKBEHIND);const se=new Ne(ee,te);return se.re2Input=hn.compileImpl(ne,re,!!(te&Ne.LONGEST_MATCH)),se}static matches(ee,te){return Ne.compile(ee).testExact(te)}static initTest(ee,te,ne){if(null==ee)throw new Error("pattern is null");if(null==ne)throw new Error("re2 is null");const re=new Ne(ee,te);return re.re2Input=ne,re}constructor(ee,te){this.patternInput=ee,this.flagsInput=te,this.re2Input=null}reset(){this.re2Input.reset()}flags(){return this.flagsInput}pattern(){return this.patternInput}re2(){return this.re2Input}matches(ee){return this.testExact(ee)}matcher(ee){return st.isByteArray(ee)&&(ee=ut.utf8(ee)),new ft(this,ee)}test(ee){return st.isByteArray(ee)?this.re2Input.matchUTF8(ee):this.re2Input.match(ee)}testExact(ee){const te=st.isByteArray(ee)?_t.fromUTF8(ee):_t.fromUTF16(ee);return null!==this.re2Input.executeEngine(te,0,Me.ANCHOR_BOTH,0)}split(ee,te=0){const ne=this.matcher(ee),re=[];let se=0,ie=0;for(;ne.find();)if(0!==ie||0!==ne.end()){if(te>0&&re.length===te-1)break;if(ie===ne.start()){if(0===te){se+=1,ie=ne.end();continue}}else for(;se>0;)re.push(""),se-=1;re.push(ne.substring(ie,ne.start())),ie=ne.end()}else ie=ne.end();if(0===te&&ie!==ne.inputLength()){for(;se>0;)re.push(""),se-=1;re.push(ne.substring(ie,ne.inputLength()))}return 0===te&&0!==re.length||re.push(ne.substring(ie,ne.inputLength())),re}*matchAll(ee){const te=this.matcher(ee);for(;te.find();){const ne=[te.group(0)];for(let ee=1;ee<=te.groupCount();ee++){const re=te.group(ee);ne.push(null===re?void 0:re)}ne.index=te.start(0),ne.input=ee;const re=this.namedGroups();if(Object.keys(re).length>0){const ee=te.getNamedGroups();for(const te in ee)null===ee[te]&&(ee[te]=void 0);ne.groups=ee}else ne.groups=void 0;yield ne}}toString(){return this.patternInput}programSize(){return this.re2Input.numberOfInstructions()}groupCount(){return this.re2Input.numberOfCapturingGroups()}namedGroups(){return this.re2Input.namedGroups}equals(ee){return this===ee||null!==ee&&this.constructor===ee.constructor&&(this.flagsInput===ee.flagsInput&&this.patternInput===ee.patternInput)}},Ne.CASE_INSENSITIVE=ke,Ne.DOTALL=Ge,Ne.MULTILINE=Ue,Ne.DISABLE_UNICODE_GROUPS=He,Ne.LONGEST_MATCH=qe,Ne.LOOKBEHINDS=Ke,Ne);let Cn="12.17.1";const pn=new class Logger{constructor(ee){this.name=ee,this._logLevel=_e,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(ee){if(!(ee in Be))throw new TypeError(`Invalid value "${ee}" assigned to \`logLevel\``);this._logLevel=ee}setLogLevel(ee){this._logLevel="string"==typeof ee?ce[ee]:ee}get logHandler(){return this._logHandler}set logHandler(ee){if("function"!=typeof ee)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=ee}get userLogHandler(){return this._userLogHandler}set userLogHandler(ee){this._userLogHandler=ee}debug(...ee){this._userLogHandler&&this._userLogHandler(this,Be.DEBUG,...ee),this._logHandler(this,Be.DEBUG,...ee)}log(...ee){this._userLogHandler&&this._userLogHandler(this,Be.VERBOSE,...ee),this._logHandler(this,Be.VERBOSE,...ee)}info(...ee){this._userLogHandler&&this._userLogHandler(this,Be.INFO,...ee),this._logHandler(this,Be.INFO,...ee)}warn(...ee){this._userLogHandler&&this._userLogHandler(this,Be.WARN,...ee),this._logHandler(this,Be.WARN,...ee)}error(...ee){this._userLogHandler&&this._userLogHandler(this,Be.ERROR,...ee),this._logHandler(this,Be.ERROR,...ee)}}("@firebase/firestore");function __PRIVATE_getLogLevel(){return pn.logLevel}function setLogLevel(ee){pn.setLogLevel(ee)}function __PRIVATE_logDebug(ee,...te){if(pn.logLevel<=Be.DEBUG){const ne=te.map(__PRIVATE_argToString);pn.debug(`Firestore (${Cn}): ${ee}`,...ne)}}function __PRIVATE_logError(ee,...te){if(pn.logLevel<=Be.ERROR){const ne=te.map(__PRIVATE_argToString);pn.error(`Firestore (${Cn}): ${ee}`,...ne)}}function __PRIVATE_logWarn(ee,...te){if(pn.logLevel<=Be.WARN){const ne=te.map(__PRIVATE_argToString);pn.warn(`Firestore (${Cn}): ${ee}`,...ne)}}function __PRIVATE_argToString(ee){if("string"==typeof ee)return ee;try{return function __PRIVATE_formatJSON(ee){return JSON.stringify(ee)}(ee)}catch(te){return ee}}function l(ee,te,ne){let re="Unexpected state";"string"==typeof te?re=te:ne=te,__PRIVATE__fail(ee,re,ne)}function __PRIVATE__fail(ee,te,ne){let re=`FIRESTORE (${Cn}) INTERNAL ASSERTION FAILED: ${te} (ID: ${ee.toString(16)})`;if(void 0!==ne)try{re+=" CONTEXT: "+JSON.stringify(ne)}catch(ee){re+=" CONTEXT: "+ne}throw __PRIVATE_logError(re),new Error(re)}function __PRIVATE_hardAssert(ee,te,ne,re){let se="Unexpected state";"string"==typeof ne?se=ne:re=ne,ee||__PRIVATE__fail(te,se,re)}function __PRIVATE_debugAssert(ee,te){ee||l(57014,te)}function __PRIVATE_debugCast(ee,te){return ee}function __PRIVATE_randomBytes(ee){const te="undefined"!=typeof self&&(self.crypto||self.msCrypto),ne=new Uint8Array(ee);if(te&&"function"==typeof te.getRandomValues)te.getRandomValues(ne);else for(let te=0;te<ee;te++)ne[te]=Math.floor(256*Math.random());return ne}class __PRIVATE_AutoId{static newId(){const ee=62*Math.floor(256/62);let te="";for(;te.length<20;){const ne=__PRIVATE_randomBytes(40);for(let re=0;re<ne.length;++re)te.length<20&&ne[re]<ee&&(te+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(ne[re]%62))}return te}}function __PRIVATE_primitiveComparator(ee,te){return ee<te?-1:ee>te?1:0}function __PRIVATE_compareUtf8Strings(ee,te){const ne=Math.min(ee.length,te.length);for(let re=0;re<ne;re++){const ne=ee.charAt(re),se=te.charAt(re);if(ne!==se)return __PRIVATE_isSurrogate(ne)===__PRIVATE_isSurrogate(se)?__PRIVATE_primitiveComparator(ne,se):__PRIVATE_isSurrogate(ne)?1:-1}return __PRIVATE_primitiveComparator(ee.length,te.length)}const mn=55296,fn=57343;function __PRIVATE_isSurrogate(ee){const te=ee.charCodeAt(0);return te>=mn&&te<=fn}function __PRIVATE_arrayEquals(ee,te,ne){return ee.length===te.length&&ee.every(((ee,re)=>ne(ee,te[re])))}function na(ee,te,ne){return void 0===ee&&void 0===te||void 0!==ee&&void 0!==te&&ne(ee,te)}function __PRIVATE_immediateSuccessor(ee){return ee+"\0"}class SortedMap{constructor(ee,te){this.comparator=ee,this.root=te||LLRBNode.EMPTY}insert(ee,te){return new SortedMap(this.comparator,this.root.insert(ee,te,this.comparator).copy(null,null,LLRBNode.BLACK,null,null))}remove(ee){return new SortedMap(this.comparator,this.root.remove(ee,this.comparator).copy(null,null,LLRBNode.BLACK,null,null))}get(ee){let te=this.root;for(;!te.isEmpty();){const ne=this.comparator(ee,te.key);if(0===ne)return te.value;ne<0?te=te.left:ne>0&&(te=te.right)}return null}indexOf(ee){let te=0,ne=this.root;for(;!ne.isEmpty();){const re=this.comparator(ee,ne.key);if(0===re)return te+ne.left.size;re<0?ne=ne.left:(te+=ne.left.size+1,ne=ne.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(ee){return this.root.inorderTraversal(ee)}forEach(ee){this.inorderTraversal(((te,ne)=>(ee(te,ne),!1)))}toString(){const ee=[];return this.inorderTraversal(((te,ne)=>(ee.push(`${te}:${ne}`),!1))),`{${ee.join(", ")}}`}reverseTraversal(ee){return this.root.reverseTraversal(ee)}getIterator(){return new SortedMapIterator(this.root,null,this.comparator,!1)}getIteratorFrom(ee){return new SortedMapIterator(this.root,ee,this.comparator,!1)}getReverseIterator(){return new SortedMapIterator(this.root,null,this.comparator,!0)}getReverseIteratorFrom(ee){return new SortedMapIterator(this.root,ee,this.comparator,!0)}}class SortedMapIterator{constructor(ee,te,ne,re){this.isReverse=re,this.nodeStack=[];let se=1;for(;!ee.isEmpty();)if(se=te?ne(ee.key,te):1,te&&re&&(se*=-1),se<0)ee=this.isReverse?ee.left:ee.right;else{if(0===se){this.nodeStack.push(ee);break}this.nodeStack.push(ee),ee=this.isReverse?ee.right:ee.left}}getNext(){let ee=this.nodeStack.pop();const te={key:ee.key,value:ee.value};if(this.isReverse)for(ee=ee.left;!ee.isEmpty();)this.nodeStack.push(ee),ee=ee.right;else for(ee=ee.right;!ee.isEmpty();)this.nodeStack.push(ee),ee=ee.left;return te}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const ee=this.nodeStack[this.nodeStack.length-1];return{key:ee.key,value:ee.value}}}class LLRBNode{constructor(ee,te,ne,re,se){this.key=ee,this.value=te,this.color=null!=ne?ne:LLRBNode.RED,this.left=null!=re?re:LLRBNode.EMPTY,this.right=null!=se?se:LLRBNode.EMPTY,this.size=this.left.size+1+this.right.size}copy(ee,te,ne,re,se){return new LLRBNode(null!=ee?ee:this.key,null!=te?te:this.value,null!=ne?ne:this.color,null!=re?re:this.left,null!=se?se:this.right)}isEmpty(){return!1}inorderTraversal(ee){return this.left.inorderTraversal(ee)||ee(this.key,this.value)||this.right.inorderTraversal(ee)}reverseTraversal(ee){return this.right.reverseTraversal(ee)||ee(this.key,this.value)||this.left.reverseTraversal(ee)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(ee,te,ne){let re=this;const se=ne(ee,re.key);return re=se<0?re.copy(null,null,null,re.left.insert(ee,te,ne),null):0===se?re.copy(null,te,null,null,null):re.copy(null,null,null,null,re.right.insert(ee,te,ne)),re.fixUp()}removeMin(){if(this.left.isEmpty())return LLRBNode.EMPTY;let ee=this;return ee.left.isRed()||ee.left.left.isRed()||(ee=ee.moveRedLeft()),ee=ee.copy(null,null,null,ee.left.removeMin(),null),ee.fixUp()}remove(ee,te){let ne,re=this;if(te(ee,re.key)<0)re.left.isEmpty()||re.left.isRed()||re.left.left.isRed()||(re=re.moveRedLeft()),re=re.copy(null,null,null,re.left.remove(ee,te),null);else{if(re.left.isRed()&&(re=re.rotateRight()),re.right.isEmpty()||re.right.isRed()||re.right.left.isRed()||(re=re.moveRedRight()),0===te(ee,re.key)){if(re.right.isEmpty())return LLRBNode.EMPTY;ne=re.right.min(),re=re.copy(ne.key,ne.value,null,null,re.right.removeMin())}re=re.copy(null,null,null,null,re.right.remove(ee,te))}return re.fixUp()}isRed(){return this.color}fixUp(){let ee=this;return ee.right.isRed()&&!ee.left.isRed()&&(ee=ee.rotateLeft()),ee.left.isRed()&&ee.left.left.isRed()&&(ee=ee.rotateRight()),ee.left.isRed()&&ee.right.isRed()&&(ee=ee.colorFlip()),ee}moveRedLeft(){let ee=this.colorFlip();return ee.right.left.isRed()&&(ee=ee.copy(null,null,null,null,ee.right.rotateRight()),ee=ee.rotateLeft(),ee=ee.colorFlip()),ee}moveRedRight(){let ee=this.colorFlip();return ee.left.left.isRed()&&(ee=ee.rotateRight(),ee=ee.colorFlip()),ee}rotateLeft(){const ee=this.copy(null,null,LLRBNode.RED,null,this.right.left);return this.right.copy(null,null,this.color,ee,null)}rotateRight(){const ee=this.copy(null,null,LLRBNode.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,ee)}colorFlip(){const ee=this.left.copy(null,null,!this.left.color,null,null),te=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,ee,te)}checkMaxDepth(){const ee=this.check();return Math.pow(2,ee)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw l(43730,{key:this.key,value:this.value});if(this.right.isRed())throw l(14113,{key:this.key,value:this.value});const ee=this.left.check();if(ee!==this.right.check())throw l(27949);return ee+(this.isRed()?0:1)}}LLRBNode.EMPTY=null,LLRBNode.RED=!0,LLRBNode.BLACK=!1,LLRBNode.EMPTY=new class LLRBEmptyNode{constructor(){this.size=0}get key(){throw l(57766)}get value(){throw l(16141)}get color(){throw l(16727)}get left(){throw l(29726)}get right(){throw l(36894)}copy(ee,te,ne,re,se){return this}insert(ee,te,ne){return new LLRBNode(ee,te)}remove(ee,te){return this}isEmpty(){return!0}inorderTraversal(ee){return!1}reverseTraversal(ee){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class SortedSet{constructor(ee){this.comparator=ee,this.data=new SortedMap(this.comparator)}has(ee){return null!==this.data.get(ee)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(ee){return this.data.indexOf(ee)}forEach(ee){this.data.inorderTraversal(((te,ne)=>(ee(te),!1)))}forEachInRange(ee,te){const ne=this.data.getIteratorFrom(ee[0]);for(;ne.hasNext();){const re=ne.getNext();if(this.comparator(re.key,ee[1])>=0)return;te(re.key)}}forEachWhile(ee,te){let ne;for(ne=void 0!==te?this.data.getIteratorFrom(te):this.data.getIterator();ne.hasNext();)if(!ee(ne.getNext().key))return}firstAfterOrEqual(ee){const te=this.data.getIteratorFrom(ee);return te.hasNext()?te.getNext().key:null}getIterator(){return new SortedSetIterator(this.data.getIterator())}getIteratorFrom(ee){return new SortedSetIterator(this.data.getIteratorFrom(ee))}add(ee){return this.copy(this.data.remove(ee).insert(ee,!0))}delete(ee){return this.has(ee)?this.copy(this.data.remove(ee)):this}isEmpty(){return this.data.isEmpty()}unionWith(ee){let te=this;return te.size<ee.size&&(te=ee,ee=this),ee.forEach((ee=>{te=te.add(ee)})),te}isEqual(ee){if(!(ee instanceof SortedSet))return!1;if(this.size!==ee.size)return!1;const te=this.data.getIterator(),ne=ee.data.getIterator();for(;te.hasNext();){const ee=te.getNext().key,re=ne.getNext().key;if(0!==this.comparator(ee,re))return!1}return!0}toArray(){const ee=[];return this.forEach((te=>{ee.push(te)})),ee}toString(){const ee=[];return this.forEach((te=>ee.push(te))),"SortedSet("+ee.toString()+")"}copy(ee){const te=new SortedSet(this.comparator);return te.data=ee,te}}class SortedSetIterator{constructor(ee){this.iter=ee}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function __PRIVATE_advanceIterator(ee){return ee.hasNext()?ee.getNext():void 0}const gn={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class s extends FirebaseError{constructor(ee,te){super(ee,te),this.code=ee,this.message=te,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}const Tn="__name__";class BasePath{constructor(ee,te,ne){void 0===te?te=0:te>ee.length&&l(637,{offset:te,range:ee.length}),void 0===ne?ne=ee.length-te:ne>ee.length-te&&l(1746,{length:ne,range:ee.length-te}),this.segments=ee,this.offset=te,this.len=ne}get length(){return this.len}isEqual(ee){return 0===BasePath.comparator(this,ee)}child(ee){const te=this.segments.slice(this.offset,this.limit());return ee instanceof BasePath?ee.forEach((ee=>{te.push(ee)})):te.push(ee),this.construct(te)}limit(){return this.offset+this.length}popFirst(ee){return ee=void 0===ee?1:ee,this.construct(this.segments,this.offset+ee,this.length-ee)}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(ee){return this.segments[this.offset+ee]}isEmpty(){return 0===this.length}isPrefixOf(ee){if(ee.length<this.length)return!1;for(let te=0;te<this.length;te++)if(this.get(te)!==ee.get(te))return!1;return!0}isImmediateParentOf(ee){if(this.length+1!==ee.length)return!1;for(let te=0;te<this.length;te++)if(this.get(te)!==ee.get(te))return!1;return!0}forEach(ee){for(let te=this.offset,ne=this.limit();te<ne;te++)ee(this.segments[te])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(ee,te){const ne=Math.min(ee.length,te.length);for(let re=0;re<ne;re++){const ne=BasePath.compareSegments(ee.get(re),te.get(re));if(0!==ne)return ne}return __PRIVATE_primitiveComparator(ee.length,te.length)}static compareSegments(ee,te){const ne=BasePath.isNumericId(ee),re=BasePath.isNumericId(te);return ne&&!re?-1:!ne&&re?1:ne&&re?BasePath.extractNumericId(ee).compare(BasePath.extractNumericId(te)):__PRIVATE_compareUtf8Strings(ee,te)}static isNumericId(ee){return ee.startsWith("__id")&&ee.endsWith("__")}static extractNumericId(ee){return oe.fromString(ee.substring(4,ee.length-2))}}class ResourcePath extends BasePath{construct(ee,te,ne){return new ResourcePath(ee,te,ne)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toStringWithLeadingSlash(){return`/${this.canonicalString()}`}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...ee){const te=[];for(const ne of ee){if(ne.indexOf("//")>=0)throw new s(gn.INVALID_ARGUMENT,`Invalid segment (${ne}). Paths must not contain // in them.`);te.push(...ne.split("/").filter((ee=>ee.length>0)))}return new ResourcePath(te)}static emptyPath(){return new ResourcePath([])}}const In=/^[_a-zA-Z][_a-zA-Z0-9]*$/;let An=class FieldPath extends BasePath{construct(ee,te,ne){return new FieldPath(ee,te,ne)}static isValidIdentifier(ee){return In.test(ee)}canonicalString(){return this.toArray().map((ee=>(ee=ee.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),FieldPath.isValidIdentifier(ee)||(ee="`"+ee+"`"),ee))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Tn}static keyField(){return new FieldPath([Tn])}static fromServerFormat(ee){const te=[];let ne="",re=0;const __PRIVATE_addCurrentSegment=()=>{if(0===ne.length)throw new s(gn.INVALID_ARGUMENT,`Invalid field path (${ee}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);te.push(ne),ne=""};let se=!1;for(;re<ee.length;){const te=ee[re];if("\\"===te){if(re+1===ee.length)throw new s(gn.INVALID_ARGUMENT,"Path has trailing escape character: "+ee);const te=ee[re+1];if("\\"!==te&&"."!==te&&"`"!==te)throw new s(gn.INVALID_ARGUMENT,"Path has invalid escape sequence: "+ee);ne+=te,re+=2}else"`"===te?(se=!se,re++):"."!==te||se?(ne+=te,re++):(__PRIVATE_addCurrentSegment(),re++)}if(__PRIVATE_addCurrentSegment(),se)throw new s(gn.INVALID_ARGUMENT,"Unterminated ` in path: "+ee);return new FieldPath(te)}static emptyPath(){return new FieldPath([])}};class FieldMask{constructor(ee){this.fields=ee,ee.sort(An.comparator)}static empty(){return new FieldMask([])}unionWith(ee){let te=new SortedSet(An.comparator);for(const ee of this.fields)te=te.add(ee);for(const ne of ee)te=te.add(ne);return new FieldMask(te.toArray())}covers(ee){for(const te of this.fields)if(te.isPrefixOf(ee))return!0;return!1}isEqual(ee){return __PRIVATE_arrayEquals(this.fields,ee.fields,((ee,te)=>ee.isEqual(te)))}}function __PRIVATE_objectSize(ee){let te=0;for(const ne in ee)Object.prototype.hasOwnProperty.call(ee,ne)&&te++;return te}function forEach(ee,te){for(const ne in ee)Object.prototype.hasOwnProperty.call(ee,ne)&&te(ne,ee[ne])}function __PRIVATE_mapToArray(ee,te){const ne=[];for(const re in ee)Object.prototype.hasOwnProperty.call(ee,re)&&ne.push(te(ee[re],re,ee));return ne}function isEmpty(ee){for(const te in ee)if(Object.prototype.hasOwnProperty.call(ee,te))return!1;return!0}class DocumentKey{constructor(ee){this.path=ee}static fromPath(ee){return new DocumentKey(ResourcePath.fromString(ee))}static fromName(ee){return new DocumentKey(ResourcePath.fromString(ee).popFirst(5))}static empty(){return new DocumentKey(ResourcePath.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(ee){return this.path.length>=2&&this.path.get(this.path.length-2)===ee}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(ee){return null!==ee&&0===ResourcePath.comparator(this.path,ee.path)}toString(){return this.path.toString()}static comparator(ee,te){return ResourcePath.comparator(ee.path,te.path)}static isDocumentKey(ee){return ee.length%2==0}static fromSegments(ee){return new DocumentKey(new ResourcePath(ee.slice()))}}function __PRIVATE_validateNonEmptyArgument(ee,te,ne){if(!ne)throw new s(gn.INVALID_ARGUMENT,`Function ${ee}() cannot be called with an empty ${te}.`)}function __PRIVATE_validateIsNotUsedTogether(ee,te,ne,re){if(!0===te&&!0===re)throw new s(gn.INVALID_ARGUMENT,`${ee} and ${ne} cannot be used together.`)}function __PRIVATE_validateDocumentPath(ee){if(!DocumentKey.isDocumentKey(ee))throw new s(gn.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${ee} has ${ee.length}.`)}function __PRIVATE_validateCollectionPath(ee){if(DocumentKey.isDocumentKey(ee))throw new s(gn.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${ee} has ${ee.length}.`)}function p(ee){return"object"==typeof ee&&null!==ee&&(Object.getPrototypeOf(ee)===Object.prototype||null===Object.getPrototypeOf(ee))}function __PRIVATE_valueDescription(ee){if(void 0===ee)return"undefined";if(null===ee)return"null";if("string"==typeof ee)return ee.length>20&&(ee=`${ee.substring(0,20)}...`),JSON.stringify(ee);if("number"==typeof ee||"boolean"==typeof ee)return""+ee;if("object"==typeof ee){if(ee instanceof Array)return"an array";{const te=function __PRIVATE_tryGetCustomObjectType(ee){return ee.constructor?ee.constructor.name:null}(ee);return te?`a custom ${te} object`:"an object"}}return"function"==typeof ee?"a function":l(12329,{type:typeof ee})}function ra(ee,te){if("_delegate"in ee&&(ee=ee._delegate),!(ee instanceof te)){if(te.name===ee.constructor.name)throw new s(gn.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const ne=__PRIVATE_valueDescription(ee);throw new s(gn.INVALID_ARGUMENT,`Expected type '${te.name}', but it was: ${ne}`)}}return ee}function __PRIVATE_validatePositiveNumber(ee,te){if(te<=0)throw new s(gn.INVALID_ARGUMENT,`Function ${ee}() requires a positive number, but it was: ${te}.`)}function property(ee,te){const ne={typeString:ee};return te&&(ne.value=te),ne}function __PRIVATE_validateJSON(ee,te){if(!p(ee))throw new s(gn.INVALID_ARGUMENT,"JSON must be an object");let ne;for(const re in te)if(te[re]){const se=te[re].typeString,ie="value"in te[re]?{value:te[re].value}:void 0;if(!(re in ee)){ne=`JSON missing required field: '${re}'`;break}const ae=ee[re];if(se&&typeof ae!==se){ne=`JSON field '${re}' must be a ${se}.`;break}if(void 0!==ie&&ae!==ie.value){ne=`Expected '${re}' field to equal '${ie.value}'`;break}}if(ne)throw new s(gn.INVALID_ARGUMENT,ne);return!0}const Pn=-62135596800,Rn=1e6;class Timestamp{static now(){return Timestamp.fromMillis(Date.now())}static fromDate(ee){return Timestamp.fromMillis(ee.getTime())}static fromMillis(ee){const te=Math.floor(ee/1e3),ne=Math.floor((ee-1e3*te)*Rn);return new Timestamp(te,ne)}constructor(ee,te){if(this.seconds=ee,this.nanoseconds=te,te<0)throw new s(gn.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+te);if(te>=1e9)throw new s(gn.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+te);if(ee<Pn)throw new s(gn.INVALID_ARGUMENT,"Timestamp seconds out of range: "+ee);if(ee>=253402300800)throw new s(gn.INVALID_ARGUMENT,"Timestamp seconds out of range: "+ee)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/Rn}_compareTo(ee){return this.seconds===ee.seconds?__PRIVATE_primitiveComparator(this.nanoseconds,ee.nanoseconds):__PRIVATE_primitiveComparator(this.seconds,ee.seconds)}isEqual(ee){return ee.seconds===this.seconds&&ee.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:Timestamp._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,Timestamp._jsonSchema))return new Timestamp(ee.seconds,ee.nanoseconds)}valueOf(){const ee=this.seconds-Pn;return String(ee).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}Timestamp._jsonSchemaVersion="firestore/timestamp/1.0",Timestamp._jsonSchema={type:property("string",Timestamp._jsonSchemaVersion),seconds:property("number"),nanoseconds:property("number")};class __PRIVATE_Base64DecodeError extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function __PRIVATE_isBase64Available(){return"undefined"!=typeof atob}class ByteString{constructor(ee){this.binaryString=ee}static fromBase64String(ee){const te=function __PRIVATE_decodeBase64(ee){try{return atob(ee)}catch(ee){throw"undefined"!=typeof DOMException&&ee instanceof DOMException?new __PRIVATE_Base64DecodeError("Invalid base64 string: "+ee):ee}}(ee);return new ByteString(te)}static fromUint8Array(ee){const te=function __PRIVATE_binaryStringFromUint8Array(ee){let te="";for(let ne=0;ne<ee.length;++ne)te+=String.fromCharCode(ee[ne]);return te}(ee);return new ByteString(te)}[Symbol.iterator](){let ee=0;return{next:()=>ee<this.binaryString.length?{value:this.binaryString.charCodeAt(ee++),done:!1}:{value:void 0,done:!0}}}toBase64(){return function __PRIVATE_encodeBase64(ee){return btoa(ee)}(this.binaryString)}toUint8Array(){return function __PRIVATE_uint8ArrayFromBinaryString(ee){const te=new Uint8Array(ee.length);for(let ne=0;ne<ee.length;ne++)te[ne]=ee.charCodeAt(ne);return te}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(ee){return __PRIVATE_primitiveComparator(this.binaryString,ee.binaryString)}isEqual(ee){return this.binaryString===ee.binaryString}}ByteString.EMPTY_BYTE_STRING=new ByteString("");const Vn=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function __PRIVATE_normalizeTimestamp(ee){if(__PRIVATE_hardAssert(!!ee,39018),"string"==typeof ee){let te=0;const ne=Vn.exec(ee);if(__PRIVATE_hardAssert(!!ne,46558,{timestamp:ee}),ne[1]){let ee=ne[1];ee=(ee+"000000000").substr(0,9),te=Number(ee)}const re=new Date(ee);return{seconds:Math.floor(re.getTime()/1e3),nanos:te}}return{seconds:__PRIVATE_normalizeNumber(ee.seconds),nanos:__PRIVATE_normalizeNumber(ee.nanos)}}function __PRIVATE_normalizeNumber(ee){return"number"==typeof ee?ee:"string"==typeof ee?Number(ee):0}function __PRIVATE_normalizeByteString(ee){return"string"==typeof ee?ByteString.fromBase64String(ee):ByteString.fromUint8Array(ee)}const Dn="server_timestamp",yn="__type__",wn="__previous_value__",bn="__local_write_time__";function __PRIVATE_isServerTimestamp(ee){const te=(ee?.mapValue?.fields||{})[yn]?.stringValue;return te===Dn}function __PRIVATE_getPreviousValue(ee){const te=ee.mapValue.fields[wn];return __PRIVATE_isServerTimestamp(te)?__PRIVATE_getPreviousValue(te):te}function __PRIVATE_getLocalWriteTime(ee){const te=__PRIVATE_normalizeTimestamp(ee.mapValue.fields[bn].timestampValue);return new Timestamp(te.seconds,te.nanos)}class DatabaseInfo{constructor(ee,te,ne,re,se,ie,ae,oe,ue,Be,le,ce,_e){this.databaseId=ee,this.appId=te,this.persistenceKey=ne,this.host=re,this.ssl=se,this.forceLongPolling=ie,this.autoDetectLongPolling=ae,this.longPollingOptions=oe,this.useFetchStreams=ue,this.isUsingEmulator=Be,this.apiKey=le,this._customHeaders=ce,this.grpcFlowControlWindow=_e}}const Sn="(default)";class DatabaseId{constructor(ee,te){this.projectId=ee,this.database=te||Sn}static empty(){return new DatabaseId("","")}get isDefaultDatabase(){return this.database===Sn}isEqual(ee){return ee instanceof DatabaseId&&ee.projectId===this.projectId&&ee.database===this.database}}const vn=-1;function __PRIVATE_isNullOrUndefined(ee){return null==ee}function __PRIVATE_isNegativeZero(ee){return 0===ee&&1/ee==-1/0}function __PRIVATE_isNumber$1(ee){return"number"==typeof ee}function isSafeInteger(ee){return"number"==typeof ee&&Number.isInteger(ee)&&!__PRIVATE_isNegativeZero(ee)&&ee<=Number.MAX_SAFE_INTEGER&&ee>=Number.MIN_SAFE_INTEGER}function __PRIVATE_isString$1(ee){return"string"==typeof ee}const xn="__type__",Fn="__max__",On={mapValue:{fields:{__type__:{stringValue:Fn}}}},Nn="__vector__",Ln="value",Mn={nullValue:"NULL_VALUE"},kn={booleanValue:!0},Gn={booleanValue:!1};function __PRIVATE_typeOrder(ee){return"nullValue"in ee?0:"booleanValue"in ee?1:"integerValue"in ee||"doubleValue"in ee?2:"timestampValue"in ee?3:"stringValue"in ee?5:"bytesValue"in ee?6:"referenceValue"in ee?7:"geoPointValue"in ee?8:"arrayValue"in ee?9:"mapValue"in ee?__PRIVATE_isServerTimestamp(ee)?4:__PRIVATE_isMaxValue(ee)?9007199254740991:__PRIVATE_isVectorValue(ee)?10:11:l(28295,{value:ee})}function __PRIVATE_valueEquals$1(ee,te,ne){if(ee===te)return!0;const re=__PRIVATE_typeOrder(ee);if(re!==__PRIVATE_typeOrder(te))return!1;switch(re){case 0:case 9007199254740991:return!0;case 1:return ee.booleanValue===te.booleanValue;case 4:return __PRIVATE_getLocalWriteTime(ee).isEqual(__PRIVATE_getLocalWriteTime(te));case 3:return function __PRIVATE_timestampEquals(ee,te){if("string"==typeof ee.timestampValue&&"string"==typeof te.timestampValue&&ee.timestampValue.length===te.timestampValue.length)return ee.timestampValue===te.timestampValue;const ne=__PRIVATE_normalizeTimestamp(ee.timestampValue),re=__PRIVATE_normalizeTimestamp(te.timestampValue);return ne.seconds===re.seconds&&ne.nanos===re.nanos}(ee,te);case 5:return ee.stringValue===te.stringValue;case 6:return function __PRIVATE_blobEquals(ee,te){return __PRIVATE_normalizeByteString(ee.bytesValue).isEqual(__PRIVATE_normalizeByteString(te.bytesValue))}(ee,te);case 7:return ee.referenceValue===te.referenceValue;case 8:return function __PRIVATE_geoPointEquals(ee,te){return __PRIVATE_normalizeNumber(ee.geoPointValue.latitude)===__PRIVATE_normalizeNumber(te.geoPointValue.latitude)&&__PRIVATE_normalizeNumber(ee.geoPointValue.longitude)===__PRIVATE_normalizeNumber(te.geoPointValue.longitude)}(ee,te);case 2:return function __PRIVATE_numberEquals(ee,te,ne){if("integerValue"in ee&&"integerValue"in te)return __PRIVATE_normalizeNumber(ee.integerValue)===__PRIVATE_normalizeNumber(te.integerValue);let re,se;if("doubleValue"in ee&&"doubleValue"in te)re=__PRIVATE_normalizeNumber(ee.doubleValue),se=__PRIVATE_normalizeNumber(te.doubleValue);else{if(!ne?.t)return!1;re=__PRIVATE_normalizeNumber(ee.integerValue??ee.doubleValue),se=__PRIVATE_normalizeNumber(te.integerValue??te.doubleValue)}return re===se?!!ne?.i||__PRIVATE_isNegativeZero(re)===__PRIVATE_isNegativeZero(se):!(void 0!==ne&&!ne.o)&&isNaN(re)&&isNaN(se)}(ee,te,ne);case 9:return __PRIVATE_arrayEquals(ee.arrayValue.values||[],te.arrayValue.values||[],((ee,te)=>__PRIVATE_valueEquals$1(ee,te,ne)));case 10:case 11:return function __PRIVATE_objectEquals(ee,te,ne){const re=ee.mapValue.fields||{},se=te.mapValue.fields||{};if(__PRIVATE_objectSize(re)!==__PRIVATE_objectSize(se))return!1;for(const ee in re)if(re.hasOwnProperty(ee)&&(void 0===se[ee]||!__PRIVATE_valueEquals$1(re[ee],se[ee],ne)))return!1;return!0}(ee,te,ne);default:return l(52216,{left:ee})}}function __PRIVATE_arrayValueContains(ee,te){return void 0!==(ee.values||[]).find((ee=>__PRIVATE_valueEquals$1(ee,te)))}function __PRIVATE_valueCompare(ee,te){if(ee===te)return 0;const ne=__PRIVATE_typeOrder(ee),re=__PRIVATE_typeOrder(te);if(ne!==re)return __PRIVATE_primitiveComparator(ne,re);switch(ne){case 0:case 9007199254740991:return 0;case 1:return __PRIVATE_primitiveComparator(ee.booleanValue,te.booleanValue);case 2:return function __PRIVATE_compareNumbers(ee,te){const ne=__PRIVATE_normalizeNumber(ee.integerValue||ee.doubleValue),re=__PRIVATE_normalizeNumber(te.integerValue||te.doubleValue);return ne<re?-1:ne>re?1:ne===re?0:isNaN(ne)?isNaN(re)?0:-1:1}(ee,te);case 3:return __PRIVATE_compareTimestamps(ee.timestampValue,te.timestampValue);case 4:return __PRIVATE_compareTimestamps(__PRIVATE_getLocalWriteTime(ee),__PRIVATE_getLocalWriteTime(te));case 5:return __PRIVATE_compareUtf8Strings(ee.stringValue,te.stringValue);case 6:return function __PRIVATE_compareBlobs(ee,te){const ne=__PRIVATE_normalizeByteString(ee),re=__PRIVATE_normalizeByteString(te);return ne.compareTo(re)}(ee.bytesValue,te.bytesValue);case 7:return function __PRIVATE_compareReferences(ee,te){const ne=ee.split("/"),re=te.split("/");for(let ee=0;ee<ne.length&&ee<re.length;ee++){const te=__PRIVATE_primitiveComparator(ne[ee],re[ee]);if(0!==te)return te}return __PRIVATE_primitiveComparator(ne.length,re.length)}(ee.referenceValue,te.referenceValue);case 8:return function __PRIVATE_compareGeoPoints(ee,te){const ne=__PRIVATE_primitiveComparator(__PRIVATE_normalizeNumber(ee.latitude),__PRIVATE_normalizeNumber(te.latitude));return 0!==ne?ne:__PRIVATE_primitiveComparator(__PRIVATE_normalizeNumber(ee.longitude),__PRIVATE_normalizeNumber(te.longitude))}(ee.geoPointValue,te.geoPointValue);case 9:return __PRIVATE_compareArrays(ee.arrayValue,te.arrayValue);case 10:return function __PRIVATE_compareVectors(ee,te){const ne=ee.fields||{},re=te.fields||{},se=ne[Ln]?.arrayValue,ie=re[Ln]?.arrayValue,ae=__PRIVATE_primitiveComparator(se?.values?.length||0,ie?.values?.length||0);return 0!==ae?ae:__PRIVATE_compareArrays(se,ie)}(ee.mapValue,te.mapValue);case 11:return function __PRIVATE_compareMaps(ee,te){if(ee===On.mapValue&&te===On.mapValue)return 0;if(ee===On.mapValue)return 1;if(te===On.mapValue)return-1;const ne=ee.fields||{},re=Object.keys(ne),se=te.fields||{},ie=Object.keys(se);re.sort(),ie.sort();for(let ee=0;ee<re.length&&ee<ie.length;++ee){const te=__PRIVATE_compareUtf8Strings(re[ee],ie[ee]);if(0!==te)return te;const ae=__PRIVATE_valueCompare(ne[re[ee]],se[ie[ee]]);if(0!==ae)return ae}return __PRIVATE_primitiveComparator(re.length,ie.length)}(ee.mapValue,te.mapValue);default:throw l(23264,{u:ne})}}function __PRIVATE_compareTimestamps(ee,te){if("string"==typeof ee&&"string"==typeof te&&ee.length===te.length)return __PRIVATE_primitiveComparator(ee,te);const ne=__PRIVATE_normalizeTimestamp(ee),re=__PRIVATE_normalizeTimestamp(te),se=__PRIVATE_primitiveComparator(ne.seconds,re.seconds);return 0!==se?se:__PRIVATE_primitiveComparator(ne.nanos,re.nanos)}function __PRIVATE_compareArrays(ee,te){const ne=ee.values||[],re=te.values||[];for(let ee=0;ee<ne.length&&ee<re.length;++ee){const te=__PRIVATE_valueCompare(ne[ee],re[ee]);if(void 0!==te&&0!==te)return te}return __PRIVATE_primitiveComparator(ne.length,re.length)}function canonicalId(ee){return __PRIVATE_canonifyValue(ee)}function __PRIVATE_canonifyValue(ee){return"nullValue"in ee?"null":"booleanValue"in ee?""+ee.booleanValue:"integerValue"in ee?""+ee.integerValue:"doubleValue"in ee?""+ee.doubleValue:"timestampValue"in ee?function __PRIVATE_canonifyTimestamp(ee){const te=__PRIVATE_normalizeTimestamp(ee);return`time(${te.seconds},${te.nanos})`}(ee.timestampValue):"stringValue"in ee?ee.stringValue:"bytesValue"in ee?function __PRIVATE_canonifyByteString(ee){return __PRIVATE_normalizeByteString(ee).toBase64()}(ee.bytesValue):"referenceValue"in ee?function __PRIVATE_canonifyReference(ee){return DocumentKey.fromName(ee).toString()}(ee.referenceValue):"geoPointValue"in ee?function __PRIVATE_canonifyGeoPoint(ee){return`geo(${ee.latitude},${ee.longitude})`}(ee.geoPointValue):"arrayValue"in ee?function __PRIVATE_canonifyArray(ee){let te="[",ne=!0;for(const re of ee.values||[])ne?ne=!1:te+=",",te+=__PRIVATE_canonifyValue(re);return te+"]"}(ee.arrayValue):"mapValue"in ee?function __PRIVATE_canonifyMap(ee){const te=Object.keys(ee.fields||{}).sort();let ne="{",re=!0;for(const se of te)re?re=!1:ne+=",",ne+=`${se}:${__PRIVATE_canonifyValue(ee.fields[se])}`;return ne+"}"}(ee.mapValue):l(61005,{value:ee})}function __PRIVATE_estimateByteSize(ee){switch(__PRIVATE_typeOrder(ee)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:const te=__PRIVATE_getPreviousValue(ee);return te?16+__PRIVATE_estimateByteSize(te):16;case 5:return 2*ee.stringValue.length;case 6:return __PRIVATE_normalizeByteString(ee.bytesValue).approximateByteSize();case 7:return ee.referenceValue.length;case 9:return function __PRIVATE_estimateArrayByteSize(ee){return(ee.values||[]).reduce(((ee,te)=>ee+__PRIVATE_estimateByteSize(te)),0)}(ee.arrayValue);case 10:case 11:return function __PRIVATE_estimateMapByteSize(ee){let te=0;return forEach(ee.fields,((ee,ne)=>{te+=ee.length+__PRIVATE_estimateByteSize(ne)})),te}(ee.mapValue);default:throw l(13486,{value:ee})}}function __PRIVATE_refValue(ee,te){return{referenceValue:`projects/${ee.projectId}/databases/${ee.database}/documents/${te.path.canonicalString()}`}}function isInteger(ee){return!!ee&&"integerValue"in ee}function __PRIVATE_isDouble(ee){return!!ee&&"doubleValue"in ee}function R(ee){return isInteger(ee)||__PRIVATE_isDouble(ee)}function isArray(ee){return!!ee&&"arrayValue"in ee}function __PRIVATE_isNullValue(ee){return!!ee&&"nullValue"in ee}function __PRIVATE_isNanValue(ee){return!!ee&&"doubleValue"in ee&&isNaN(Number(ee.doubleValue))}function __PRIVATE_isMapValue(ee){return!!ee&&"mapValue"in ee}function __PRIVATE_isVectorValue(ee){const te=(ee?.mapValue?.fields||{})[xn]?.stringValue;return te===Nn}function __PRIVATE_getVectorValue(ee){return(ee?.mapValue?.fields||{})[Ln]?.arrayValue}function __PRIVATE_deepClone(ee){if(ee.geoPointValue)return{geoPointValue:{...ee.geoPointValue}};if(ee.timestampValue&&"object"==typeof ee.timestampValue)return{timestampValue:{...ee.timestampValue}};if(ee.mapValue){const te={mapValue:{fields:{}}};return forEach(ee.mapValue.fields,((ee,ne)=>te.mapValue.fields[ee]=__PRIVATE_deepClone(ne))),te}if(ee.arrayValue){const te={arrayValue:{values:[]}};for(let ne=0;ne<(ee.arrayValue.values||[]).length;++ne)te.arrayValue.values[ne]=__PRIVATE_deepClone(ee.arrayValue.values[ne]);return te}return{...ee}}function __PRIVATE_isMaxValue(ee){return(((ee.mapValue||{}).fields||{}).__type__||{}).stringValue===Fn}const Un={mapValue:{fields:{[xn]:{stringValue:Nn},[Ln]:{arrayValue:{}}}}};function __PRIVATE_valuesGetLowerBound(ee){return"nullValue"in ee?Mn:"booleanValue"in ee?{booleanValue:!1}:"integerValue"in ee||"doubleValue"in ee?{doubleValue:NaN}:"timestampValue"in ee?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in ee?{stringValue:""}:"bytesValue"in ee?{bytesValue:""}:"referenceValue"in ee?__PRIVATE_refValue(DatabaseId.empty(),DocumentKey.empty()):"geoPointValue"in ee?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in ee?{arrayValue:{}}:"mapValue"in ee?__PRIVATE_isVectorValue(ee)?Un:{mapValue:{}}:l(35942,{value:ee})}function __PRIVATE_valuesGetUpperBound(ee){return"nullValue"in ee?{booleanValue:!1}:"booleanValue"in ee?{doubleValue:NaN}:"integerValue"in ee||"doubleValue"in ee?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in ee?{stringValue:""}:"stringValue"in ee?{bytesValue:""}:"bytesValue"in ee?__PRIVATE_refValue(DatabaseId.empty(),DocumentKey.empty()):"referenceValue"in ee?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in ee?{arrayValue:{}}:"arrayValue"in ee?Un:"mapValue"in ee?__PRIVATE_isVectorValue(ee)?{mapValue:{}}:On:l(61959,{value:ee})}function __PRIVATE_lowerBoundCompare(ee,te){const ne=__PRIVATE_valueCompare(ee.value,te.value);return 0!==ne?ne:ee.inclusive&&!te.inclusive?-1:!ee.inclusive&&te.inclusive?1:0}function __PRIVATE_upperBoundCompare(ee,te){const ne=__PRIVATE_valueCompare(ee.value,te.value);return 0!==ne?ne:ee.inclusive&&!te.inclusive?1:!ee.inclusive&&te.inclusive?-1:0}class ObjectValue{constructor(ee){this.value=ee}static empty(){return new ObjectValue({mapValue:{}})}field(ee){if(ee.isEmpty())return this.value;{let te=this.value;for(let ne=0;ne<ee.length-1;++ne)if(te=(te.mapValue.fields||{})[ee.get(ne)],!__PRIVATE_isMapValue(te))return null;return te=(te.mapValue.fields||{})[ee.lastSegment()],te||null}}set(ee,te){this.getFieldsMap(ee.popLast())[ee.lastSegment()]=__PRIVATE_deepClone(te)}setAll(ee){let te=An.emptyPath(),ne={},re=[];ee.forEach(((ee,se)=>{if(!te.isImmediateParentOf(se)){const ee=this.getFieldsMap(te);this.applyChanges(ee,ne,re),ne={},re=[],te=se.popLast()}ee?ne[se.lastSegment()]=__PRIVATE_deepClone(ee):re.push(se.lastSegment())}));const se=this.getFieldsMap(te);this.applyChanges(se,ne,re)}delete(ee){const te=this.field(ee.popLast());__PRIVATE_isMapValue(te)&&te.mapValue.fields&&delete te.mapValue.fields[ee.lastSegment()]}isEqual(ee){return __PRIVATE_valueEquals$1(this.value,ee.value)}getFieldsMap(ee){let te=this.value;te.mapValue.fields||(te.mapValue={fields:{}});for(let ne=0;ne<ee.length;++ne){let re=te.mapValue.fields[ee.get(ne)];__PRIVATE_isMapValue(re)&&re.mapValue.fields||(re={mapValue:{fields:{}}},te.mapValue.fields[ee.get(ne)]=re),te=re}return te.mapValue.fields}applyChanges(ee,te,ne){forEach(te,((te,ne)=>ee[te]=ne));for(const te of ne)delete ee[te]}clone(){return new ObjectValue(__PRIVATE_deepClone(this.value))}}function __PRIVATE_extractFieldMask(ee){const te=[];return forEach(ee.fields,((ee,ne)=>{const re=new An([ee]);if(__PRIVATE_isMapValue(ne)){const ee=__PRIVATE_extractFieldMask(ne.mapValue).fields;if(0===ee.length)te.push(re);else for(const ne of ee)te.push(re.child(ne))}else te.push(re)})),new FieldMask(te)}function __PRIVATE_toDouble(ee,te){if(ee.useProto3Json){if(isNaN(te))return{doubleValue:"NaN"};if(te===1/0)return{doubleValue:"Infinity"};if(te===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:__PRIVATE_isNegativeZero(te)?"-0":te}}function __PRIVATE_toInteger(ee){return{integerValue:""+ee}}function toNumber(ee,te,ne){return isSafeInteger(te)?__PRIVATE_toInteger(te):__PRIVATE_toDouble(ee,te)}class TransformOperation{constructor(){this._=void 0}}function __PRIVATE_applyTransformOperationToLocalView(ee,te,ne){return ee instanceof __PRIVATE_ServerTimestampTransform?function serverTimestamp$1(ee,te){const ne={fields:{[yn]:{stringValue:Dn},[bn]:{timestampValue:{seconds:ee.seconds,nanos:ee.nanoseconds}}}};return te&&__PRIVATE_isServerTimestamp(te)&&(te=__PRIVATE_getPreviousValue(te)),te&&(ne.fields[wn]=te),{mapValue:ne}}(ne,te):ee instanceof __PRIVATE_ArrayUnionTransformOperation?__PRIVATE_applyArrayUnionTransformOperation(ee,te):ee instanceof __PRIVATE_ArrayRemoveTransformOperation?__PRIVATE_applyArrayRemoveTransformOperation(ee,te):ee instanceof __PRIVATE_NumericIncrementTransformOperation?function __PRIVATE_applyNumericIncrementTransformOperationToLocalView(ee,te){const ne=__PRIVATE_computeTransformOperationBaseValue(ee,te),re=asNumber(ne)+asNumber(ee.l);return isInteger(ne)&&isInteger(ee.l)?__PRIVATE_toInteger(re):__PRIVATE_toDouble(ee.serializer,re)}(ee,te):ee instanceof __PRIVATE_NumericMinimumTransformOperation?function __PRIVATE_applyNumericMinimumTransformOperationToLocalView(ee,te){return __PRIVATE_applyNumericTransformOperationToLocalView(ee,te,Math.min)}(ee,te):ee instanceof __PRIVATE_NumericMaximumTransformOperation?function __PRIVATE_applyNumericMaximumTransformOperationToLocalView(ee,te){return __PRIVATE_applyNumericTransformOperationToLocalView(ee,te,Math.max)}(ee,te):void 0}function __PRIVATE_applyTransformOperationToRemoteDocument(ee,te,ne){return ee instanceof __PRIVATE_ArrayUnionTransformOperation?__PRIVATE_applyArrayUnionTransformOperation(ee,te):ee instanceof __PRIVATE_ArrayRemoveTransformOperation?__PRIVATE_applyArrayRemoveTransformOperation(ee,te):ne}function __PRIVATE_computeTransformOperationBaseValue(ee,te){return ee instanceof __PRIVATE_NumericIncrementTransformOperation?R(te)?te:{integerValue:0}:null}class __PRIVATE_ServerTimestampTransform extends TransformOperation{}class __PRIVATE_ArrayUnionTransformOperation extends TransformOperation{constructor(ee){super(),this.elements=ee}}function __PRIVATE_applyArrayUnionTransformOperation(ee,te){const ne=__PRIVATE_coercedFieldValuesArray(te);for(const te of ee.elements)ne.some((ee=>__PRIVATE_valueEquals$1(ee,te)))||ne.push(te);return{arrayValue:{values:ne}}}class __PRIVATE_ArrayRemoveTransformOperation extends TransformOperation{constructor(ee){super(),this.elements=ee}}function __PRIVATE_applyArrayRemoveTransformOperation(ee,te){let ne=__PRIVATE_coercedFieldValuesArray(te);for(const te of ee.elements)ne=ne.filter((ee=>!__PRIVATE_valueEquals$1(ee,te)));return{arrayValue:{values:ne}}}class __PRIVATE_NumericTransformOperation extends TransformOperation{constructor(ee,te){super(),this.serializer=ee,this.l=te}}class __PRIVATE_NumericIncrementTransformOperation extends __PRIVATE_NumericTransformOperation{}class __PRIVATE_NumericMinimumTransformOperation extends __PRIVATE_NumericTransformOperation{}class __PRIVATE_NumericMaximumTransformOperation extends __PRIVATE_NumericTransformOperation{}function __PRIVATE_applyNumericTransformOperationToLocalView(ee,te,ne){if(!R(te))return ee.l;const re=ne(asNumber(te),asNumber(ee.l));return isInteger(te)&&isInteger(ee.l)?__PRIVATE_toInteger(re):__PRIVATE_toDouble(ee.serializer,re)}function asNumber(ee){return __PRIVATE_normalizeNumber(ee.integerValue||ee.doubleValue)}function __PRIVATE_coercedFieldValuesArray(ee){return isArray(ee)&&ee.arrayValue.values?ee.arrayValue.values.slice():[]}class FieldTransform{constructor(ee,te){this.field=ee,this.transform=te}}class MutationResult{constructor(ee,te){this.version=ee,this.transformResults=te}}class Precondition{constructor(ee,te){this.updateTime=ee,this.exists=te}static none(){return new Precondition}static exists(ee){return new Precondition(void 0,ee)}static updateTime(ee){return new Precondition(ee)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(ee){return this.exists===ee.exists&&(this.updateTime?!!ee.updateTime&&this.updateTime.isEqual(ee.updateTime):!ee.updateTime)}}function __PRIVATE_preconditionIsValidForDocument(ee,te){return void 0!==ee.updateTime?te.isFoundDocument()&&te.version.isEqual(ee.updateTime):void 0===ee.exists||ee.exists===te.isFoundDocument()}class Mutation{}function __PRIVATE_calculateOverlayMutation(ee,te){if(!ee.hasLocalMutations||te&&0===te.fields.length)return null;if(null===te)return ee.isNoDocument()?new __PRIVATE_DeleteMutation(ee.key,Precondition.none()):new __PRIVATE_SetMutation(ee.key,ee.data,Precondition.none());{const ne=ee.data,re=ObjectValue.empty();let se=new SortedSet(An.comparator);for(let ee of te.fields)if(!se.has(ee)){let te=ne.field(ee);null===te&&ee.length>1&&(ee=ee.popLast(),te=ne.field(ee)),null===te?re.delete(ee):re.set(ee,te),se=se.add(ee)}return new __PRIVATE_PatchMutation(ee.key,re,new FieldMask(se.toArray()),Precondition.none())}}function __PRIVATE_mutationApplyToRemoteDocument(ee,te,ne){ee instanceof __PRIVATE_SetMutation?function __PRIVATE_setMutationApplyToRemoteDocument(ee,te,ne){const re=ee.value.clone(),se=__PRIVATE_serverTransformResults(ee.fieldTransforms,te,ne.transformResults);re.setAll(se),te.convertToFoundDocument(ne.version,re).setHasCommittedMutations()}(ee,te,ne):ee instanceof __PRIVATE_PatchMutation?function __PRIVATE_patchMutationApplyToRemoteDocument(ee,te,ne){if(!__PRIVATE_preconditionIsValidForDocument(ee.precondition,te))return void te.convertToUnknownDocument(ne.version);const re=__PRIVATE_serverTransformResults(ee.fieldTransforms,te,ne.transformResults),se=te.data;se.setAll(__PRIVATE_getPatch(ee)),se.setAll(re),te.convertToFoundDocument(ne.version,se).setHasCommittedMutations()}(ee,te,ne):function __PRIVATE_deleteMutationApplyToRemoteDocument(ee,te,ne){te.convertToNoDocument(ne.version).setHasCommittedMutations()}(0,te,ne)}function __PRIVATE_mutationApplyToLocalView(ee,te,ne,re){return ee instanceof __PRIVATE_SetMutation?function __PRIVATE_setMutationApplyToLocalView(ee,te,ne,re){if(!__PRIVATE_preconditionIsValidForDocument(ee.precondition,te))return ne;const se=ee.value.clone(),ie=__PRIVATE_localTransformResults(ee.fieldTransforms,re,te);return se.setAll(ie),te.convertToFoundDocument(te.version,se).setHasLocalMutations(),null}(ee,te,ne,re):ee instanceof __PRIVATE_PatchMutation?function __PRIVATE_patchMutationApplyToLocalView(ee,te,ne,re){if(!__PRIVATE_preconditionIsValidForDocument(ee.precondition,te))return ne;const se=__PRIVATE_localTransformResults(ee.fieldTransforms,re,te),ie=te.data;return ie.setAll(__PRIVATE_getPatch(ee)),ie.setAll(se),te.convertToFoundDocument(te.version,ie).setHasLocalMutations(),null===ne?null:ne.unionWith(ee.fieldMask.fields).unionWith(ee.fieldTransforms.map((ee=>ee.field)))}(ee,te,ne,re):function __PRIVATE_deleteMutationApplyToLocalView(ee,te,ne){return __PRIVATE_preconditionIsValidForDocument(ee.precondition,te)?(te.convertToNoDocument(te.version).setHasLocalMutations(),null):ne}(ee,te,ne)}function __PRIVATE_mutationExtractBaseValue(ee,te){let ne=null;for(const re of ee.fieldTransforms){const ee=te.data.field(re.field),se=__PRIVATE_computeTransformOperationBaseValue(re.transform,ee||null);null!=se&&(null===ne&&(ne=ObjectValue.empty()),ne.set(re.field,se))}return ne||null}function __PRIVATE_mutationEquals(ee,te){return ee.type===te.type&&!!ee.key.isEqual(te.key)&&!!ee.precondition.isEqual(te.precondition)&&!!function __PRIVATE_fieldTransformsAreEqual(ee,te){return void 0===ee&&void 0===te||!(!ee||!te)&&__PRIVATE_arrayEquals(ee,te,((ee,te)=>function __PRIVATE_fieldTransformEquals(ee,te){return ee.field.isEqual(te.field)&&function __PRIVATE_transformOperationEquals(ee,te){return ee instanceof __PRIVATE_ArrayUnionTransformOperation&&te instanceof __PRIVATE_ArrayUnionTransformOperation||ee instanceof __PRIVATE_ArrayRemoveTransformOperation&&te instanceof __PRIVATE_ArrayRemoveTransformOperation?__PRIVATE_arrayEquals(ee.elements,te.elements,__PRIVATE_valueEquals$1):ee instanceof __PRIVATE_NumericIncrementTransformOperation&&te instanceof __PRIVATE_NumericIncrementTransformOperation||ee instanceof __PRIVATE_NumericMinimumTransformOperation&&te instanceof __PRIVATE_NumericMinimumTransformOperation||ee instanceof __PRIVATE_NumericMaximumTransformOperation&&te instanceof __PRIVATE_NumericMaximumTransformOperation?__PRIVATE_valueEquals$1(ee.l,te.l):ee instanceof __PRIVATE_ServerTimestampTransform&&te instanceof __PRIVATE_ServerTimestampTransform}(ee.transform,te.transform)}(ee,te)))}(ee.fieldTransforms,te.fieldTransforms)&&(0===ee.type?ee.value.isEqual(te.value):1!==ee.type||ee.data.isEqual(te.data)&&ee.fieldMask.isEqual(te.fieldMask))}class __PRIVATE_SetMutation extends Mutation{constructor(ee,te,ne,re=[]){super(),this.key=ee,this.value=te,this.precondition=ne,this.fieldTransforms=re,this.type=0}getFieldMask(){return null}}class __PRIVATE_PatchMutation extends Mutation{constructor(ee,te,ne,re,se=[]){super(),this.key=ee,this.data=te,this.fieldMask=ne,this.precondition=re,this.fieldTransforms=se,this.type=1}getFieldMask(){return this.fieldMask}}function __PRIVATE_getPatch(ee){const te=new Map;return ee.fieldMask.fields.forEach((ne=>{if(!ne.isEmpty()){const re=ee.data.field(ne);te.set(ne,re)}})),te}function __PRIVATE_serverTransformResults(ee,te,ne){const re=new Map;__PRIVATE_hardAssert(ee.length===ne.length,32656,{h:ne.length,T:ee.length});for(let se=0;se<ne.length;se++){const ie=ee[se],ae=ie.transform,oe=te.data.field(ie.field);re.set(ie.field,__PRIVATE_applyTransformOperationToRemoteDocument(ae,oe,ne[se]))}return re}function __PRIVATE_localTransformResults(ee,te,ne){const re=new Map;for(const se of ee){const ee=se.transform,ie=ne.data.field(se.field);re.set(se.field,__PRIVATE_applyTransformOperationToLocalView(ee,ie,te))}return re}class __PRIVATE_DeleteMutation extends Mutation{constructor(ee,te){super(),this.key=ee,this.precondition=te,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class __PRIVATE_VerifyMutation extends Mutation{constructor(ee,te){super(),this.key=ee,this.precondition=te,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class __PRIVATE_AggregateImpl{constructor(ee,te,ne){this.alias=ee,this.aggregateType=te,this.fieldPath=ne}}class Bound{constructor(ee,te){this.position=ee,this.inclusive=te}}function __PRIVATE_boundCompareToDocument(ee,te,ne){let re=0;for(let se=0;se<ee.position.length;se++){const ie=te[se],ae=ee.position[se];if(re=ie.field.isKeyField()?DocumentKey.comparator(DocumentKey.fromName(ae.referenceValue),ne.key):__PRIVATE_valueCompare(ae,ne.data.field(ie.field)),"desc"===ie.dir&&(re*=-1),0!==re)break}return re}function __PRIVATE_boundEquals(ee,te){if(null===ee)return null===te;if(null===te)return!1;if(ee.inclusive!==te.inclusive||ee.position.length!==te.position.length)return!1;for(let ne=0;ne<ee.position.length;ne++)if(!__PRIVATE_valueEquals$1(ee.position[ne],te.position[ne]))return!1;return!0}class Filter{}class FieldFilter extends Filter{constructor(ee,te,ne){super(),this.field=ee,this.op=te,this.value=ne}static create(ee,te,ne){return ee.isKeyField()?"in"===te||"not-in"===te?this.createKeyFieldInFilter(ee,te,ne):new __PRIVATE_KeyFieldFilter(ee,te,ne):"array-contains"===te?new __PRIVATE_ArrayContainsFilter(ee,ne):"in"===te?new __PRIVATE_InFilter(ee,ne):"not-in"===te?new __PRIVATE_NotInFilter(ee,ne):"array-contains-any"===te?new __PRIVATE_ArrayContainsAnyFilter(ee,ne):new FieldFilter(ee,te,ne)}static createKeyFieldInFilter(ee,te,ne){return"in"===te?new __PRIVATE_KeyFieldInFilter(ee,ne):new __PRIVATE_KeyFieldNotInFilter(ee,ne)}matches(ee){const te=ee.data.field(this.field);return"!="===this.op?null!==te&&void 0===te.nullValue&&this.matchesComparison(__PRIVATE_valueCompare(te,this.value)):null!==te&&__PRIVATE_typeOrder(this.value)===__PRIVATE_typeOrder(te)&&this.matchesComparison(__PRIVATE_valueCompare(te,this.value))}matchesComparison(ee){switch(this.op){case"<":return ee<0;case"<=":return ee<=0;case"==":return 0===ee;case"!=":return 0!==ee;case">":return ee>0;case">=":return ee>=0;default:return l(47266,{operator:this.op})}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class CompositeFilter extends Filter{constructor(ee,te){super(),this.filters=ee,this.op=te,this.P=null}static create(ee,te){return new CompositeFilter(ee,te)}matches(ee){return __PRIVATE_compositeFilterIsConjunction(this)?void 0===this.filters.find((te=>!te.matches(ee))):void 0!==this.filters.find((te=>te.matches(ee)))}getFlattenedFilters(){return null!==this.P||(this.P=this.filters.reduce(((ee,te)=>ee.concat(te.getFlattenedFilters())),[])),this.P}getFilters(){return Object.assign([],this.filters)}}function __PRIVATE_compositeFilterIsConjunction(ee){return"and"===ee.op}function __PRIVATE_compositeFilterIsDisjunction(ee){return"or"===ee.op}function __PRIVATE_compositeFilterIsFlatConjunction(ee){return __PRIVATE_compositeFilterIsFlat(ee)&&__PRIVATE_compositeFilterIsConjunction(ee)}function __PRIVATE_compositeFilterIsFlat(ee){for(const te of ee.filters)if(te instanceof CompositeFilter)return!1;return!0}function __PRIVATE_canonifyFilter(ee){if(ee instanceof FieldFilter)return ee.field.canonicalString()+ee.op.toString()+canonicalId(ee.value);if(__PRIVATE_compositeFilterIsFlatConjunction(ee))return ee.filters.map((ee=>__PRIVATE_canonifyFilter(ee))).join(",");{const te=ee.filters.map((ee=>__PRIVATE_canonifyFilter(ee))).join(",");return`${ee.op}(${te})`}}function __PRIVATE_filterEquals(ee,te){return ee instanceof FieldFilter?function __PRIVATE_fieldFilterEquals(ee,te){return te instanceof FieldFilter&&ee.op===te.op&&ee.field.isEqual(te.field)&&__PRIVATE_valueEquals$1(ee.value,te.value)}(ee,te):ee instanceof CompositeFilter?function __PRIVATE_compositeFilterEquals(ee,te){return te instanceof CompositeFilter&&ee.op===te.op&&ee.filters.length===te.filters.length&&ee.filters.reduce(((ee,ne,re)=>ee&&__PRIVATE_filterEquals(ne,te.filters[re])),!0)}(ee,te):void l(19439)}function __PRIVATE_compositeFilterWithAddedFilters(ee,te){const ne=ee.filters.concat(te);return CompositeFilter.create(ne,ee.op)}function __PRIVATE_stringifyFilter(ee){return ee instanceof FieldFilter?function __PRIVATE_stringifyFieldFilter(ee){return`${ee.field.canonicalString()} ${ee.op} ${canonicalId(ee.value)}`}(ee):ee instanceof CompositeFilter?function __PRIVATE_stringifyCompositeFilter(ee){return ee.op.toString()+" {"+ee.getFilters().map(__PRIVATE_stringifyFilter).join(" ,")+"}"}(ee):"Filter"}class __PRIVATE_KeyFieldFilter extends FieldFilter{constructor(ee,te,ne){super(ee,te,ne),this.key=DocumentKey.fromName(ne.referenceValue)}matches(ee){const te=DocumentKey.comparator(ee.key,this.key);return this.matchesComparison(te)}}class __PRIVATE_KeyFieldInFilter extends FieldFilter{constructor(ee,te){super(ee,"in",te),this.keys=__PRIVATE_extractDocumentKeysFromArrayValue("in",te)}matches(ee){return this.keys.some((te=>te.isEqual(ee.key)))}}class __PRIVATE_KeyFieldNotInFilter extends FieldFilter{constructor(ee,te){super(ee,"not-in",te),this.keys=__PRIVATE_extractDocumentKeysFromArrayValue("not-in",te)}matches(ee){return!this.keys.some((te=>te.isEqual(ee.key)))}}function __PRIVATE_extractDocumentKeysFromArrayValue(ee,te){return(te.arrayValue?.values||[]).map((ee=>DocumentKey.fromName(ee.referenceValue)))}class __PRIVATE_ArrayContainsFilter extends FieldFilter{constructor(ee,te){super(ee,"array-contains",te)}matches(ee){const te=ee.data.field(this.field);return isArray(te)&&__PRIVATE_arrayValueContains(te.arrayValue,this.value)}}class __PRIVATE_InFilter extends FieldFilter{constructor(ee,te){super(ee,"in",te)}matches(ee){const te=ee.data.field(this.field);return null!==te&&__PRIVATE_arrayValueContains(this.value.arrayValue,te)}}class __PRIVATE_NotInFilter extends FieldFilter{constructor(ee,te){super(ee,"not-in",te)}matches(ee){if(__PRIVATE_arrayValueContains(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const te=ee.data.field(this.field);return null!==te&&void 0===te.nullValue&&!__PRIVATE_arrayValueContains(this.value.arrayValue,te)}}class __PRIVATE_ArrayContainsAnyFilter extends FieldFilter{constructor(ee,te){super(ee,"array-contains-any",te)}matches(ee){const te=ee.data.field(this.field);return!(!isArray(te)||!te.arrayValue.values)&&te.arrayValue.values.some((ee=>__PRIVATE_arrayValueContains(this.value.arrayValue,ee)))}}class OrderBy{constructor(ee,te="asc"){this.field=ee,this.dir=te}}function __PRIVATE_orderByEquals(ee,te){return ee.dir===te.dir&&ee.field.isEqual(te.field)}class SnapshotVersion{static fromTimestamp(ee){return new SnapshotVersion(ee)}static min(){return new SnapshotVersion(new Timestamp(0,0))}static max(){return new SnapshotVersion(new Timestamp(253402300799,999999999))}constructor(ee){this.timestamp=ee}compareTo(ee){return this.timestamp._compareTo(ee.timestamp)}isEqual(ee){return this.timestamp.isEqual(ee.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class MutableDocument{constructor(ee,te,ne,re,se,ie,ae){this.key=ee,this.documentType=te,this.version=ne,this.readTime=re,this.createTime=se,this.data=ie,this.documentState=ae}static newInvalidDocument(ee){return new MutableDocument(ee,0,SnapshotVersion.min(),SnapshotVersion.min(),SnapshotVersion.min(),ObjectValue.empty(),0)}static newFoundDocument(ee,te,ne,re){return new MutableDocument(ee,1,te,SnapshotVersion.min(),ne,re,0)}static newNoDocument(ee,te){return new MutableDocument(ee,2,te,SnapshotVersion.min(),SnapshotVersion.min(),ObjectValue.empty(),0)}static newUnknownDocument(ee,te){return new MutableDocument(ee,3,te,SnapshotVersion.min(),SnapshotVersion.min(),ObjectValue.empty(),2)}convertToFoundDocument(ee,te){return!this.createTime.isEqual(SnapshotVersion.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=ee),this.version=ee,this.documentType=1,this.data=te,this.documentState=0,this}convertToNoDocument(ee){return this.version=ee,this.documentType=2,this.data=ObjectValue.empty(),this.documentState=0,this}convertToUnknownDocument(ee){return this.version=ee,this.documentType=3,this.data=ObjectValue.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=SnapshotVersion.min(),this}setReadTime(ee){return this.readTime=ee,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(ee){return ee instanceof MutableDocument&&this.key.isEqual(ee.key)&&this.version.isEqual(ee.version)&&this.documentType===ee.documentType&&this.documentState===ee.documentState&&this.data.isEqual(ee.data)}mutableCopy(){return new MutableDocument(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}})`}}const Hn=-1;class FieldIndex{constructor(ee,te,ne,re){this.indexId=ee,this.collectionGroup=te,this.fields=ne,this.indexState=re}}function __PRIVATE_fieldIndexGetArraySegment(ee){return ee.fields.find((ee=>2===ee.kind))}function __PRIVATE_fieldIndexGetDirectionalSegments(ee){return ee.fields.filter((ee=>2!==ee.kind))}function __PRIVATE_fieldIndexSemanticComparator(ee,te){let ne=__PRIVATE_primitiveComparator(ee.collectionGroup,te.collectionGroup);if(0!==ne)return ne;for(let re=0;re<Math.min(ee.fields.length,te.fields.length);++re)if(ne=__PRIVATE_indexSegmentComparator(ee.fields[re],te.fields[re]),0!==ne)return ne;return __PRIVATE_primitiveComparator(ee.fields.length,te.fields.length)}FieldIndex.UNKNOWN_ID=-1;class IndexSegment{constructor(ee,te){this.fieldPath=ee,this.kind=te}}function __PRIVATE_indexSegmentComparator(ee,te){const ne=An.comparator(ee.fieldPath,te.fieldPath);return 0!==ne?ne:__PRIVATE_primitiveComparator(ee.kind,te.kind)}class IndexState{constructor(ee,te){this.sequenceNumber=ee,this.offset=te}static empty(){return new IndexState(0,IndexOffset.min())}}function __PRIVATE_newIndexOffsetSuccessorFromReadTime(ee,te){const ne=ee.toTimestamp().seconds,re=ee.toTimestamp().nanoseconds+1,se=SnapshotVersion.fromTimestamp(1e9===re?new Timestamp(ne+1,0):new Timestamp(ne,re));return new IndexOffset(se,DocumentKey.empty(),te)}function __PRIVATE_newIndexOffsetFromDocument(ee){return new IndexOffset(ee.readTime,ee.key,Hn)}class IndexOffset{constructor(ee,te,ne){this.readTime=ee,this.documentKey=te,this.largestBatchId=ne}static min(){return new IndexOffset(SnapshotVersion.min(),DocumentKey.empty(),Hn)}static max(){return new IndexOffset(SnapshotVersion.max(),DocumentKey.empty(),Hn)}}function __PRIVATE_indexOffsetComparator(ee,te){let ne=ee.readTime.compareTo(te.readTime);return 0!==ne?ne:(ne=DocumentKey.comparator(ee.documentKey,te.documentKey),0!==ne?ne:__PRIVATE_primitiveComparator(ee.largestBatchId,te.largestBatchId))}class __PRIVATE_TargetImpl{constructor(ee,te=null,ne=[],re=[],se=null,ie=null,ae=null){this.path=ee,this.collectionGroup=te,this.orderBy=ne,this.filters=re,this.limit=se,this.startAt=ie,this.endAt=ae,this.R=null}}function __PRIVATE_newTarget(ee,te=null,ne=[],re=[],se=null,ie=null,ae=null){return new __PRIVATE_TargetImpl(ee,te,ne,re,se,ie,ae)}function __PRIVATE_canonifyTarget(ee){const te=__PRIVATE_debugCast(ee);if(null===te.R){let ee=te.path.canonicalString();null!==te.collectionGroup&&(ee+="|cg:"+te.collectionGroup),ee+="|f:",ee+=te.filters.map((ee=>__PRIVATE_canonifyFilter(ee))).join(","),ee+="|ob:",ee+=te.orderBy.map((ee=>function __PRIVATE_canonifyOrderBy(ee){return ee.field.canonicalString()+ee.dir}(ee))).join(","),__PRIVATE_isNullOrUndefined(te.limit)||(ee+="|l:",ee+=te.limit),te.startAt&&(ee+="|lb:",ee+=te.startAt.inclusive?"b:":"a:",ee+=te.startAt.position.map((ee=>canonicalId(ee))).join(",")),te.endAt&&(ee+="|ub:",ee+=te.endAt.inclusive?"a:":"b:",ee+=te.endAt.position.map((ee=>canonicalId(ee))).join(",")),te.R=ee}return te.R}function __PRIVATE_targetEquals(ee,te){if(ee.limit!==te.limit)return!1;if(ee.orderBy.length!==te.orderBy.length)return!1;for(let ne=0;ne<ee.orderBy.length;ne++)if(!__PRIVATE_orderByEquals(ee.orderBy[ne],te.orderBy[ne]))return!1;if(ee.filters.length!==te.filters.length)return!1;for(let ne=0;ne<ee.filters.length;ne++)if(!__PRIVATE_filterEquals(ee.filters[ne],te.filters[ne]))return!1;return ee.collectionGroup===te.collectionGroup&&!!ee.path.isEqual(te.path)&&!!__PRIVATE_boundEquals(ee.startAt,te.startAt)&&__PRIVATE_boundEquals(ee.endAt,te.endAt)}function __PRIVATE_targetIsPipelineTarget(ee){return!!ee.isCorePipeline}function __PRIVATE_targetIsDocumentTarget(ee){return!!ee.path&&DocumentKey.isDocumentKey(ee.path)&&null===ee.collectionGroup&&0===ee.filters.length}function __PRIVATE_targetGetFieldFiltersForPath(ee,te){return ee.filters.filter((ee=>ee instanceof FieldFilter&&ee.field.isEqual(te)))}function __PRIVATE_targetGetAscendingBound(ee,te,ne){let re=Mn,se=!0;for(const ne of __PRIVATE_targetGetFieldFiltersForPath(ee,te)){let ee=Mn,te=!0;switch(ne.op){case"<":case"<=":ee=__PRIVATE_valuesGetLowerBound(ne.value);break;case"==":case"in":case">=":ee=ne.value;break;case">":ee=ne.value,te=!1;break;case"!=":case"not-in":ee=Mn}__PRIVATE_lowerBoundCompare({value:re,inclusive:se},{value:ee,inclusive:te})<0&&(re=ee,se=te)}if(null!==ne)for(let ie=0;ie<ee.orderBy.length;++ie)if(ee.orderBy[ie].field.isEqual(te)){const ee=ne.position[ie];__PRIVATE_lowerBoundCompare({value:re,inclusive:se},{value:ee,inclusive:ne.inclusive})<0&&(re=ee,se=ne.inclusive);break}return{value:re,inclusive:se}}function __PRIVATE_targetGetDescendingBound(ee,te,ne){let re=On,se=!0;for(const ne of __PRIVATE_targetGetFieldFiltersForPath(ee,te)){let ee=On,te=!0;switch(ne.op){case">=":case">":ee=__PRIVATE_valuesGetUpperBound(ne.value),te=!1;break;case"==":case"in":case"<=":ee=ne.value;break;case"<":ee=ne.value,te=!1;break;case"!=":case"not-in":ee=On}__PRIVATE_upperBoundCompare({value:re,inclusive:se},{value:ee,inclusive:te})>0&&(re=ee,se=te)}if(null!==ne)for(let ie=0;ie<ee.orderBy.length;++ie)if(ee.orderBy[ie].field.isEqual(te)){const ee=ne.position[ie];__PRIVATE_upperBoundCompare({value:re,inclusive:se},{value:ee,inclusive:ne.inclusive})>0&&(re=ee,se=ne.inclusive);break}return{value:re,inclusive:se}}class __PRIVATE_QueryImpl{constructor(ee,te=null,ne=[],re=[],se=null,ie="F",ae=null,oe=null){this.path=ee,this.collectionGroup=te,this.explicitOrderBy=ne,this.filters=re,this.limit=se,this.limitType=ie,this.startAt=ae,this.endAt=oe,this.I=null,this.A=null,this.V=null,this.startAt,this.endAt}}function __PRIVATE_newQuery(ee,te,ne,re,se,ie,ae,oe){return new __PRIVATE_QueryImpl(ee,te,ne,re,se,ie,ae,oe)}function __PRIVATE_newQueryForPath(ee){return new __PRIVATE_QueryImpl(ee)}function __PRIVATE_queryMatchesAllDocuments(ee){return 0===ee.filters.length&&null===ee.limit&&null==ee.startAt&&null==ee.endAt&&(0===ee.explicitOrderBy.length||1===ee.explicitOrderBy.length&&ee.explicitOrderBy[0].field.isKeyField())}function __PRIVATE_isDocumentQuery$1(ee){return DocumentKey.isDocumentKey(ee.path)&&null===ee.collectionGroup&&0===ee.filters.length}function __PRIVATE_isCollectionGroupQuery(ee){return null!==ee.collectionGroup}function __PRIVATE_queryNormalizedOrderBy(ee){const te=__PRIVATE_debugCast(ee);if(null===te.I){te.I=[];const ee=new Set;for(const ne of te.explicitOrderBy)te.I.push(ne),ee.add(ne.field.canonicalString());const ne=te.explicitOrderBy.length>0?te.explicitOrderBy[te.explicitOrderBy.length-1].dir:"asc",re=function __PRIVATE_getInequalityFilterFields(ee){let te=new SortedSet(An.comparator);return ee.filters.forEach((ee=>{ee.getFlattenedFilters().forEach((ee=>{ee.isInequality()&&(te=te.add(ee.field))}))})),te}(te);re.forEach((re=>{ee.has(re.canonicalString())||re.isKeyField()||te.I.push(new OrderBy(re,ne))})),ee.has(An.keyField().canonicalString())||te.I.push(new OrderBy(An.keyField(),ne))}return te.I}function __PRIVATE_queryToTarget(ee){const te=__PRIVATE_debugCast(ee);return te.A||(te.A=__PRIVATE__queryToTarget(te,__PRIVATE_queryNormalizedOrderBy(ee))),te.A}function __PRIVATE_queryToAggregateTarget(ee){const te=__PRIVATE_debugCast(ee);return te.V||(te.V=__PRIVATE__queryToTarget(te,ee.explicitOrderBy)),te.V}function __PRIVATE__queryToTarget(ee,te){if("F"===ee.limitType)return __PRIVATE_newTarget(ee.path,ee.collectionGroup,te,ee.filters,ee.limit,ee.startAt,ee.endAt);{te=te.map((ee=>{const te="desc"===ee.dir?"asc":"desc";return new OrderBy(ee.field,te)}));const ne=ee.endAt?new Bound(ee.endAt.position,ee.endAt.inclusive):null,re=ee.startAt?new Bound(ee.startAt.position,ee.startAt.inclusive):null;return __PRIVATE_newTarget(ee.path,ee.collectionGroup,te,ee.filters,ee.limit,ne,re)}}function __PRIVATE_queryWithAddedFilter(ee,te){const ne=ee.filters.concat([te]);return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ne,ee.limit,ee.limitType,ee.startAt,ee.endAt)}function __PRIVATE_queryWithLimit(ee,te,ne){return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ee.filters.slice(),te,ne,ee.startAt,ee.endAt)}function __PRIVATE_queryEquals(ee,te){return __PRIVATE_targetEquals(__PRIVATE_queryToTarget(ee),__PRIVATE_queryToTarget(te))&&ee.limitType===te.limitType}function __PRIVATE_stringifyQuery(ee){return`Query(target=${function __PRIVATE_stringifyTarget(ee){let te=ee.path.canonicalString();return null!==ee.collectionGroup&&(te+=" collectionGroup="+ee.collectionGroup),ee.filters.length>0&&(te+=`, filters: [${ee.filters.map((ee=>__PRIVATE_stringifyFilter(ee))).join(", ")}]`),__PRIVATE_isNullOrUndefined(ee.limit)||(te+=", limit: "+ee.limit),ee.orderBy.length>0&&(te+=`, orderBy: [${ee.orderBy.map((ee=>function __PRIVATE_stringifyOrderBy(ee){return`${ee.field.canonicalString()} (${ee.dir})`}(ee))).join(", ")}]`),ee.startAt&&(te+=", startAt: ",te+=ee.startAt.inclusive?"b:":"a:",te+=ee.startAt.position.map((ee=>canonicalId(ee))).join(",")),ee.endAt&&(te+=", endAt: ",te+=ee.endAt.inclusive?"a:":"b:",te+=ee.endAt.position.map((ee=>canonicalId(ee))).join(",")),`Target(${te})`}(__PRIVATE_queryToTarget(ee))}; limitType=${ee.limitType})`}function __PRIVATE_queryMatches(ee,te){return te.isFoundDocument()&&function __PRIVATE_queryMatchesPathAndCollectionGroup(ee,te){const ne=te.key.path;return null!==ee.collectionGroup?te.key.hasCollectionId(ee.collectionGroup)&&ee.path.isPrefixOf(ne):DocumentKey.isDocumentKey(ee.path)?ee.path.isEqual(ne):ee.path.isImmediateParentOf(ne)}(ee,te)&&function __PRIVATE_queryMatchesOrderBy(ee,te){for(const ne of __PRIVATE_queryNormalizedOrderBy(ee))if(!ne.field.isKeyField()&&null===te.data.field(ne.field))return!1;return!0}(ee,te)&&function __PRIVATE_queryMatchesFilters(ee,te){for(const ne of ee.filters)if(!ne.matches(te))return!1;return!0}(ee,te)&&function __PRIVATE_queryMatchesBounds(ee,te){return!(ee.startAt&&!function __PRIVATE_boundSortsBeforeDocument(ee,te,ne){const re=__PRIVATE_boundCompareToDocument(ee,te,ne);return ee.inclusive?re<=0:re<0}(ee.startAt,__PRIVATE_queryNormalizedOrderBy(ee),te))&&!(ee.endAt&&!function __PRIVATE_boundSortsAfterDocument(ee,te,ne){const re=__PRIVATE_boundCompareToDocument(ee,te,ne);return ee.inclusive?re>=0:re>0}(ee.endAt,__PRIVATE_queryNormalizedOrderBy(ee),te))}(ee,te)}function __PRIVATE_newQueryComparator(ee){return(te,ne)=>{let re=!1;for(const se of __PRIVATE_queryNormalizedOrderBy(ee)){const ee=__PRIVATE_compareDocs(se,te,ne);if(0!==ee)return ee;re=re||se.field.isKeyField()}return 0}}function __PRIVATE_compareDocs(ee,te,ne){const re=ee.field.isKeyField()?DocumentKey.comparator(te.key,ne.key):function __PRIVATE_compareDocumentsByField(ee,te,ne){const re=te.data.field(ee),se=ne.data.field(ee);return null!==re&&null!==se?__PRIVATE_valueCompare(re,se):l(42886)}(ee.field,te,ne);switch(ee.dir){case"asc":return re;case"desc":return-1*re;default:return l(19790,{direction:ee.dir})}}class ExistenceFilter{constructor(ee,te){this.count=ee,this.unchangedNames=te}}var qn,Kn;function __PRIVATE_isPermanentError(ee){switch(ee){case gn.OK:return l(64938);case gn.CANCELLED:case gn.UNKNOWN:case gn.DEADLINE_EXCEEDED:case gn.RESOURCE_EXHAUSTED:case gn.INTERNAL:case gn.UNAVAILABLE:case gn.UNAUTHENTICATED:return!1;case gn.INVALID_ARGUMENT:case gn.NOT_FOUND:case gn.ALREADY_EXISTS:case gn.PERMISSION_DENIED:case gn.FAILED_PRECONDITION:case gn.ABORTED:case gn.OUT_OF_RANGE:case gn.UNIMPLEMENTED:case gn.DATA_LOSS:return!0;default:return l(15467,{code:ee})}}function __PRIVATE_mapCodeFromRpcCode(ee){if(void 0===ee)return __PRIVATE_logError("GRPC error has no .code"),gn.UNKNOWN;switch(ee){case qn.OK:return gn.OK;case qn.CANCELLED:return gn.CANCELLED;case qn.UNKNOWN:return gn.UNKNOWN;case qn.DEADLINE_EXCEEDED:return gn.DEADLINE_EXCEEDED;case qn.RESOURCE_EXHAUSTED:return gn.RESOURCE_EXHAUSTED;case qn.INTERNAL:return gn.INTERNAL;case qn.UNAVAILABLE:return gn.UNAVAILABLE;case qn.UNAUTHENTICATED:return gn.UNAUTHENTICATED;case qn.INVALID_ARGUMENT:return gn.INVALID_ARGUMENT;case qn.NOT_FOUND:return gn.NOT_FOUND;case qn.ALREADY_EXISTS:return gn.ALREADY_EXISTS;case qn.PERMISSION_DENIED:return gn.PERMISSION_DENIED;case qn.FAILED_PRECONDITION:return gn.FAILED_PRECONDITION;case qn.ABORTED:return gn.ABORTED;case qn.OUT_OF_RANGE:return gn.OUT_OF_RANGE;case qn.UNIMPLEMENTED:return gn.UNIMPLEMENTED;case qn.DATA_LOSS:return gn.DATA_LOSS;default:return l(39323,{code:ee})}}(Kn=qn||(qn={}))[Kn.OK=0]="OK",Kn[Kn.CANCELLED=1]="CANCELLED",Kn[Kn.UNKNOWN=2]="UNKNOWN",Kn[Kn.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",Kn[Kn.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",Kn[Kn.NOT_FOUND=5]="NOT_FOUND",Kn[Kn.ALREADY_EXISTS=6]="ALREADY_EXISTS",Kn[Kn.PERMISSION_DENIED=7]="PERMISSION_DENIED",Kn[Kn.UNAUTHENTICATED=16]="UNAUTHENTICATED",Kn[Kn.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",Kn[Kn.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",Kn[Kn.ABORTED=10]="ABORTED",Kn[Kn.OUT_OF_RANGE=11]="OUT_OF_RANGE",Kn[Kn.UNIMPLEMENTED=12]="UNIMPLEMENTED",Kn[Kn.INTERNAL=13]="INTERNAL",Kn[Kn.UNAVAILABLE=14]="UNAVAILABLE",Kn[Kn.DATA_LOSS=15]="DATA_LOSS";class ObjectMap{constructor(ee,te){this.mapKeyFn=ee,this.equalsFn=te,this.inner={},this.innerSize=0}get(ee){const te=this.mapKeyFn(ee),ne=this.inner[te];if(void 0!==ne)for(const[te,re]of ne)if(this.equalsFn(te,ee))return re}has(ee){return void 0!==this.get(ee)}set(ee,te){const ne=this.mapKeyFn(ee),re=this.inner[ne];if(void 0===re)return this.inner[ne]=[[ee,te]],void this.innerSize++;for(let ne=0;ne<re.length;ne++)if(this.equalsFn(re[ne][0],ee))return void(re[ne]=[ee,te]);re.push([ee,te]),this.innerSize++}delete(ee){const te=this.mapKeyFn(ee),ne=this.inner[te];if(void 0===ne)return!1;for(let re=0;re<ne.length;re++)if(this.equalsFn(ne[re][0],ee))return 1===ne.length?delete this.inner[te]:ne.splice(re,1),this.innerSize--,!0;return!1}forEach(ee){forEach(this.inner,((te,ne)=>{for(const[te,re]of ne)ee(te,re)}))}isEmpty(){return isEmpty(this.inner)}size(){return this.innerSize}}const Qn=new SortedMap(DocumentKey.comparator);function __PRIVATE_mutableDocumentMap(){return Qn}const jn=new SortedMap(DocumentKey.comparator);function documentMap(...ee){let te=jn;for(const ne of ee)te=te.insert(ne.key,ne);return te}function __PRIVATE_convertOverlayedDocumentMapToDocumentMap(ee){let te=jn;return ee.forEach(((ee,ne)=>te=te.insert(ee,ne.overlayedDocument))),te}function __PRIVATE_newOverlayMap(){return __PRIVATE_newDocumentKeyMap()}function __PRIVATE_newMutationMap(){return __PRIVATE_newDocumentKeyMap()}function __PRIVATE_newDocumentKeyMap(){return new ObjectMap((ee=>ee.toString()),((ee,te)=>ee.isEqual(te)))}const Jn=new SortedMap(DocumentKey.comparator),zn=new SortedSet(DocumentKey.comparator);function __PRIVATE_documentKeySet(...ee){let te=zn;for(const ne of ee)te=te.add(ne);return te}const Wn=new SortedSet(__PRIVATE_primitiveComparator);function __PRIVATE_targetIdSet(){return Wn}let $n=null;function __PRIVATE_newTextEncoder(){return new TextEncoder}const Yn=new oe([4294967295,4294967295],0);function __PRIVATE_getMd5HashValue(ee){const te=__PRIVATE_newTextEncoder().encode(ee),ne=new ue;return ne.update(te),new Uint8Array(ne.digest())}function __PRIVATE_get64BitUints(ee){const te=new DataView(ee.buffer),ne=te.getUint32(0,!0),re=te.getUint32(4,!0),se=te.getUint32(8,!0),ie=te.getUint32(12,!0);return[new oe([ne,re],0),new oe([se,ie],0)]}class BloomFilter{constructor(ee,te,ne){if(this.bitmap=ee,this.padding=te,this.hashCount=ne,te<0||te>=8)throw new __PRIVATE_BloomFilterError(`Invalid padding: ${te}`);if(ne<0)throw new __PRIVATE_BloomFilterError(`Invalid hash count: ${ne}`);if(ee.length>0&&0===this.hashCount)throw new __PRIVATE_BloomFilterError(`Invalid hash count: ${ne}`);if(0===ee.length&&0!==te)throw new __PRIVATE_BloomFilterError(`Invalid padding when bitmap length is 0: ${te}`);this.m=8*ee.length-te,this.p=oe.fromNumber(this.m)}v(ee,te,ne){let re=ee.add(te.multiply(oe.fromNumber(ne)));return 1===re.compare(Yn)&&(re=new oe([re.getBits(0),re.getBits(1)],0)),re.modulo(this.p).toNumber()}S(ee){return!!(this.bitmap[Math.floor(ee/8)]&1<<ee%8)}mightContain(ee){if(0===this.m)return!1;const te=__PRIVATE_getMd5HashValue(ee),[ne,re]=__PRIVATE_get64BitUints(te);for(let ee=0;ee<this.hashCount;ee++){const te=this.v(ne,re,ee);if(!this.S(te))return!1}return!0}static create(ee,te,ne){const re=ee%8==0?0:8-ee%8,se=new Uint8Array(Math.ceil(ee/8)),ie=new BloomFilter(se,re,te);return ne.forEach((ee=>ie.insert(ee))),ie}insert(ee){if(0===this.m)return;const te=__PRIVATE_getMd5HashValue(ee),[ne,re]=__PRIVATE_get64BitUints(te);for(let ee=0;ee<this.hashCount;ee++){const te=this.v(ne,re,ee);this.D(te)}}D(ee){const te=Math.floor(ee/8),ne=ee%8;this.bitmap[te]|=1<<ne}}class __PRIVATE_BloomFilterError extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class RemoteEvent{constructor(ee,te,ne,re,se,ie){this.snapshotVersion=ee,this.targetChanges=te,this.targetMismatches=ne,this.documentUpdates=re,this.augmentedDocumentUpdates=se,this.resolvedLimboDocuments=ie}static createSynthesizedRemoteEventForCurrentChange(ee,te,ne){const re=new Map;return re.set(ee,TargetChange.createSynthesizedTargetChangeForCurrentChange(ee,te,ne)),new RemoteEvent(SnapshotVersion.min(),re,new SortedMap(__PRIVATE_primitiveComparator),__PRIVATE_mutableDocumentMap(),__PRIVATE_mutableDocumentMap(),__PRIVATE_documentKeySet())}}class TargetChange{constructor(ee,te,ne,re,se){this.resumeToken=ee,this.current=te,this.addedDocuments=ne,this.modifiedDocuments=re,this.removedDocuments=se}static createSynthesizedTargetChangeForCurrentChange(ee,te,ne){return new TargetChange(ne,te,__PRIVATE_documentKeySet(),__PRIVATE_documentKeySet(),__PRIVATE_documentKeySet())}}class __PRIVATE_DocumentWatchChange{constructor(ee,te,ne,re){this.C=ee,this.removedTargetIds=te,this.key=ne,this.F=re}}class __PRIVATE_ExistenceFilterChange{constructor(ee,te){this.targetId=ee,this.O=te}}class __PRIVATE_WatchTargetChange{constructor(ee,te,ne=ByteString.EMPTY_BYTE_STRING,re=null){this.state=ee,this.targetIds=te,this.resumeToken=ne,this.cause=re}}class __PRIVATE_TargetState{constructor(ee){this.targetId=ee,this.M=0,this.N=__PRIVATE_snapshotChangesMap(),this.L=ByteString.EMPTY_BYTE_STRING,this.B=!1,this.U=!0}get current(){return this.B}get resumeToken(){return this.L}get k(){return 0!==this.M}get q(){return this.U}$(ee){ee.approximateByteSize()>0&&(this.U=!0,this.L=ee)}K(){let ee=__PRIVATE_documentKeySet(),te=__PRIVATE_documentKeySet(),ne=__PRIVATE_documentKeySet();return this.N.forEach(((re,se)=>{switch(se){case 0:ee=ee.add(re);break;case 2:te=te.add(re);break;case 1:ne=ne.add(re);break;default:l(38017,{changeType:se})}})),new TargetChange(this.L,this.B,ee,te,ne)}W(){this.U=!1,this.N=__PRIVATE_snapshotChangesMap()}G(ee,te){this.U=!0,this.N=this.N.insert(ee,te)}j(ee){this.U=!0,this.N=this.N.remove(ee)}H(){this.M+=1}J(){this.M-=1,__PRIVATE_hardAssert(this.M>=0,3241,{M:this.M,targetId:this.targetId})}Y(){this.U=!0,this.B=!0}}const Xn="WatchChangeAggregator";class __PRIVATE_WatchChangeAggregator{constructor(ee){this.Z=ee,this.X=new Map,this.ee=__PRIVATE_mutableDocumentMap(),this.te=__PRIVATE_documentTargetMap(),this.ne=__PRIVATE_mutableDocumentMap(),this.re=__PRIVATE_documentTargetMap(),this.ie=new SortedMap(__PRIVATE_primitiveComparator)}se(ee){for(const te of ee.C)ee.F&&ee.F.isFoundDocument()?this._e(te,ee.F):this.oe(te,ee.key,ee.F);for(const te of ee.removedTargetIds)this.oe(te,ee.key,ee.F)}ae(ee){this.forEachTarget(ee,(te=>{const ne=this.X.get(te);if(ne)switch(ee.state){case 0:this.ue(te)&&ne.$(ee.resumeToken);break;case 1:ne.J(),ne.k||ne.W(),ne.$(ee.resumeToken);break;case 2:ne.J(),ne.k||this.removeTarget(te);break;case 3:this.ue(te)&&(ne.Y(),ne.$(ee.resumeToken));break;case 4:this.ue(te)&&(this.ce(te),ne.$(ee.resumeToken));break;default:l(56790,{state:ee.state})}else __PRIVATE_logDebug(Xn,`handleTargetChange received targetChange for untracked target ID (${te}) with state (${ee.state})`)}))}forEachTarget(ee,te){ee.targetIds.length>0?ee.targetIds.forEach(te):this.X.forEach(((ee,ne)=>{this.ue(ne)&&te(ne)}))}le(ee){return __PRIVATE_targetIsPipelineTarget(ee)?"documents"===ee.getPipelineSourceType()&&1===ee.getPipelineDocuments()?.length:__PRIVATE_targetIsDocumentTarget(ee)}Ee(ee){const te=ee.targetId,ne=ee.O.count,re=this.he(te);if(re){const se=re.target;if(this.le(se))if(0===ne){const ee=new DocumentKey(__PRIVATE_targetIsPipelineTarget(se)?ResourcePath.fromString(se.getPipelineDocuments()[0]):se.path);this.oe(te,ee,MutableDocument.newNoDocument(ee,SnapshotVersion.min()))}else __PRIVATE_hardAssert(1===ne,20013,"Single document existence filter with count: "+ne);else{const re=this.Te(te);if(re!==ne){const ne=this.Pe(ee),se=ne?this.Re(ne,ee,re):1;if(0!==se){this.ce(te);const ee=2===se?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.ie=this.ie.insert(te,ee)}$n?.Ie(function __PRIVATE_createExistenceFilterMismatchInfoForTestingHooks(ee,te,ne,re,se){const ie={localCacheCount:ee,existenceFilterCount:te.count,databaseId:ne.database,projectId:ne.projectId},ae=te.unchangedNames;return ae&&(ie.bloomFilter={applied:0===se,hashCount:ae?.hashCount??0,bitmapLength:ae?.bits?.bitmap?.length??0,padding:ae?.bits?.padding??0,mightContain:ee=>re?.mightContain(ee)??!1}),ie}(re,ee.O,this.Z.Ae(),ne,se))}}}}Pe(ee){const te=ee.O.unchangedNames;if(!te||!te.bits)return null;const{bits:{bitmap:ne="",padding:re=0},hashCount:se=0}=te;let ie,ae;try{ie=__PRIVATE_normalizeByteString(ne).toUint8Array()}catch(ee){if(ee instanceof __PRIVATE_Base64DecodeError)return __PRIVATE_logWarn("Decoding the base64 bloom filter in existence filter failed ("+ee.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw ee}try{ae=new BloomFilter(ie,re,se)}catch(ee){return __PRIVATE_logWarn(ee instanceof __PRIVATE_BloomFilterError?"BloomFilter error: ":"Applying bloom filter failed: ",ee),null}return 0===ae.m?null:ae}Re(ee,te,ne){return te.O.count===ne-this.Ve(ee,te.targetId)?0:2}Ve(ee,te){const ne=this.Z.getRemoteKeysForTarget(te);let re=0;return ne.forEach((ne=>{const se=this.Z.Ae(),ie=`projects/${se.projectId}/databases/${se.database}/documents/${ne.path.canonicalString()}`;ee.mightContain(ie)||(this.oe(te,ne,null),re++)})),re}de(ee){const te=new Map;this.X.forEach(((ne,re)=>{const se=this.he(re);if(se){if(ne.current&&this.le(se.target)){const te=__PRIVATE_targetIsPipelineTarget(se.target)?ResourcePath.fromString(se.target.getPipelineDocuments()[0]):se.target.path,ne=new DocumentKey(te);this.fe(ne).has(re)||this.me(re,ne)||this.oe(re,ne,MutableDocument.newNoDocument(ne,ee))}ne.q&&(te.set(re,ne.K()),ne.W())}}));let ne=__PRIVATE_documentKeySet();this.re.forEach(((ee,te)=>{let re=!0;te.forEachWhile((ee=>{const te=this.he(ee);return!te||"TargetPurposeLimboResolution"===te.purpose||(re=!1,!1)})),re&&(ne=ne.add(ee))})),this.ee.forEach(((te,ne)=>ne.setReadTime(ee))),this.ne.forEach(((te,ne)=>ne.setReadTime(ee)));const re=new RemoteEvent(ee,te,this.ie,this.ee,this.ne,ne);return this.ee=__PRIVATE_mutableDocumentMap(),this.te=__PRIVATE_documentTargetMap(),this.ne=__PRIVATE_mutableDocumentMap(),this.re=__PRIVATE_documentTargetMap(),this.ie=new SortedMap(__PRIVATE_primitiveComparator),re}_e(ee,te){const ne=this.X.get(ee);if(!ne||!this.ue(ee))return void __PRIVATE_logDebug(Xn,`addDocumentToTarget received document for unknown inactive target (${ee})`);const re=this.me(ee,te.key)?2:0;ne.G(te.key,re),__PRIVATE_targetIsPipelineTarget(this.he(ee).target)&&"exact"!==this.he(ee).target.getPipelineFlavor()?this.ne=this.ne.insert(te.key,te):this.ee=this.ee.insert(te.key,te),this.te=this.te.insert(te.key,this.fe(te.key).add(ee)),this.re=this.re.insert(te.key,this.pe(te.key).add(ee))}oe(ee,te,ne){const re=this.X.get(ee);re&&this.ue(ee)?(this.me(ee,te)?re.G(te,1):re.j(te),this.re=this.re.insert(te,this.pe(te).delete(ee)),this.re=this.re.insert(te,this.pe(te).add(ee)),ne&&(__PRIVATE_targetIsPipelineTarget(this.he(ee).target)&&"exact"!==this.he(ee).target.getPipelineFlavor()?this.ne=this.ne.insert(te,ne):this.ee=this.ee.insert(te,ne))):__PRIVATE_logDebug(Xn,`removeDocumentFromTarget received document for unknown or inactive target (${ee})`)}removeTarget(ee){this.X.delete(ee)}Te(ee){const te=this.X.get(ee);if(!te)return 0;const ne=te.K();return this.Z.getRemoteKeysForTarget(ee).size+ne.addedDocuments.size-ne.removedDocuments.size}H(ee){let te=this.X.get(ee);te||(__PRIVATE_logDebug(Xn,`recordPendingTargetRequest set up tracking for target ID ${ee}`),te=new __PRIVATE_TargetState(ee),this.X.set(ee,te)),te.H()}pe(ee){let te=this.re.get(ee);return te||(te=new SortedSet(__PRIVATE_primitiveComparator),this.re=this.re.insert(ee,te)),te}fe(ee){let te=this.te.get(ee);return te||(te=new SortedSet(__PRIVATE_primitiveComparator),this.te=this.te.insert(ee,te)),te}ue(ee){const te=null!==this.he(ee);return te||__PRIVATE_logDebug(Xn,"Detected inactive target",ee),te}he(ee){const te=this.X.get(ee);return void 0===te||te.k?null:this.Z.ge(ee)}ce(ee){this.X.set(ee,new __PRIVATE_TargetState(ee)),this.Z.getRemoteKeysForTarget(ee).forEach((te=>{this.oe(ee,te,null)}))}me(ee,te){return this.Z.getRemoteKeysForTarget(ee).has(te)}}function __PRIVATE_documentTargetMap(){return new SortedMap(DocumentKey.comparator)}function __PRIVATE_snapshotChangesMap(){return new SortedMap(DocumentKey.comparator)}const Zn={asc:"ASCENDING",desc:"DESCENDING"},er={"<":"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"},tr={and:"AND",or:"OR"};class JsonProtoSerializer{constructor(ee,te){this.databaseId=ee,this.useProto3Json=te}}function __PRIVATE_toInt32Proto(ee,te){return ee.useProto3Json||__PRIVATE_isNullOrUndefined(te)?te:{value:te}}function toTimestamp(ee,te){return ee.useProto3Json?`${new Date(1e3*te.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+te.nanoseconds).slice(-9)}Z`:{seconds:""+te.seconds,nanos:te.nanoseconds}}function fromTimestamp(ee){const te=__PRIVATE_normalizeTimestamp(ee);return new Timestamp(te.seconds,te.nanos)}function __PRIVATE_toBytes(ee,te){return ee.useProto3Json?te.toBase64():te.toUint8Array()}function __PRIVATE_toVersion(ee,te){return toTimestamp(ee,te.toTimestamp())}function __PRIVATE_fromVersion(ee){return __PRIVATE_hardAssert(!!ee,49232),SnapshotVersion.fromTimestamp(fromTimestamp(ee))}function __PRIVATE_toResourceName(ee,te){return __PRIVATE_toResourcePath(ee,te).canonicalString()}function __PRIVATE_toResourcePath(ee,te){const ne=function __PRIVATE_fullyQualifiedPrefixPath(ee){return new ResourcePath(["projects",ee.projectId,"databases",ee.database])}(ee).child("documents");return void 0===te?ne:ne.child(te)}function __PRIVATE_fromResourceName(ee){const te=ResourcePath.fromString(ee);return __PRIVATE_hardAssert(__PRIVATE_isValidResourceName(te),10190,{key:te.toString()}),te}function __PRIVATE_toName(ee,te){return __PRIVATE_toResourceName(ee.databaseId,te.path)}function fromName(ee,te){const ne=__PRIVATE_fromResourceName(te);if(ne.get(1)!==ee.databaseId.projectId)throw new s(gn.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+ne.get(1)+" vs "+ee.databaseId.projectId);if(ne.get(3)!==ee.databaseId.database)throw new s(gn.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+ne.get(3)+" vs "+ee.databaseId.database);return new DocumentKey(__PRIVATE_extractLocalPathFromResourceName(ne))}function __PRIVATE_toQueryPath(ee,te){return __PRIVATE_toResourceName(ee.databaseId,te)}function __PRIVATE_fromQueryPath(ee){const te=__PRIVATE_fromResourceName(ee);return 4===te.length?ResourcePath.emptyPath():__PRIVATE_extractLocalPathFromResourceName(te)}function __PRIVATE_getEncodedDatabaseId(ee){return new ResourcePath(["projects",ee.databaseId.projectId,"databases",ee.databaseId.database]).canonicalString()}function __PRIVATE_extractLocalPathFromResourceName(ee){return __PRIVATE_hardAssert(ee.length>4&&"documents"===ee.get(4),29091,{key:ee.toString()}),ee.popFirst(5)}function __PRIVATE_toMutationDocument(ee,te,ne){return{name:__PRIVATE_toName(ee,te),fields:ne.value.mapValue.fields}}function __PRIVATE_fromPipelineResponse(ee,te,ne){const re={};te.transaction?.length&&(re.transaction=te.transaction);const se=te.executionTime?__PRIVATE_fromVersion(te.executionTime):void 0;return re.executionTime=se,ne&&(re.key=ne.name?fromName(ee,ne.name):void 0,re.fields=new ObjectValue({mapValue:{fields:ne.fields}}),re.createTime=ne.createTime?__PRIVATE_fromVersion(ne.createTime):void 0,re.updateTime=ne.updateTime?__PRIVATE_fromVersion(ne.updateTime):void 0),re}function fromDocument(ee,te,ne){const re=fromName(ee,te.name),se=__PRIVATE_fromVersion(te.updateTime),ie=te.createTime?__PRIVATE_fromVersion(te.createTime):SnapshotVersion.min(),ae=new ObjectValue({mapValue:{fields:te.fields}}),oe=MutableDocument.newFoundDocument(re,se,ie,ae);return ne&&oe.setHasCommittedMutations(),ne?oe.setHasCommittedMutations():oe}function toMutation(ee,te){let ne;if(te instanceof __PRIVATE_SetMutation)ne={update:__PRIVATE_toMutationDocument(ee,te.key,te.value)};else if(te instanceof __PRIVATE_DeleteMutation)ne={delete:__PRIVATE_toName(ee,te.key)};else if(te instanceof __PRIVATE_PatchMutation)ne={update:__PRIVATE_toMutationDocument(ee,te.key,te.data),updateMask:__PRIVATE_toDocumentMask(te.fieldMask)};else{if(!(te instanceof __PRIVATE_VerifyMutation))return l(16599,{we:te.type});ne={verify:__PRIVATE_toName(ee,te.key)}}return te.fieldTransforms.length>0&&(ne.updateTransforms=te.fieldTransforms.map((ee=>function __PRIVATE_toFieldTransform(ee,te){const ne=te.transform;if(ne instanceof __PRIVATE_ServerTimestampTransform)return{fieldPath:te.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(ne instanceof __PRIVATE_ArrayUnionTransformOperation)return{fieldPath:te.field.canonicalString(),appendMissingElements:{values:ne.elements}};if(ne instanceof __PRIVATE_ArrayRemoveTransformOperation)return{fieldPath:te.field.canonicalString(),removeAllFromArray:{values:ne.elements}};if(ne instanceof __PRIVATE_NumericIncrementTransformOperation)return{fieldPath:te.field.canonicalString(),increment:ne.l};if(ne instanceof __PRIVATE_NumericMinimumTransformOperation)return{fieldPath:te.field.canonicalString(),minimum:ne.l};if(ne instanceof __PRIVATE_NumericMaximumTransformOperation)return{fieldPath:te.field.canonicalString(),maximum:ne.l};throw l(20930,{transform:te.transform})}(0,ee)))),te.precondition.isNone||(ne.currentDocument=function __PRIVATE_toPrecondition(ee,te){return void 0!==te.updateTime?{updateTime:__PRIVATE_toVersion(ee,te.updateTime)}:void 0!==te.exists?{exists:te.exists}:l(27497)}(ee,te.precondition)),ne}function __PRIVATE_fromMutation(ee,te){const ne=te.currentDocument?function __PRIVATE_fromPrecondition(ee){return void 0!==ee.updateTime?Precondition.updateTime(__PRIVATE_fromVersion(ee.updateTime)):void 0!==ee.exists?Precondition.exists(ee.exists):Precondition.none()}(te.currentDocument):Precondition.none(),re=te.updateTransforms?te.updateTransforms.map((te=>function __PRIVATE_fromFieldTransform(ee,te){let ne=null;if("setToServerValue"in te)__PRIVATE_hardAssert("REQUEST_TIME"===te.setToServerValue,16630,{proto:te}),ne=new __PRIVATE_ServerTimestampTransform;else if("appendMissingElements"in te){const ee=te.appendMissingElements.values||[];ne=new __PRIVATE_ArrayUnionTransformOperation(ee)}else if("removeAllFromArray"in te){const ee=te.removeAllFromArray.values||[];ne=new __PRIVATE_ArrayRemoveTransformOperation(ee)}else"increment"in te?ne=new __PRIVATE_NumericIncrementTransformOperation(ee,te.increment):"minimum"in te?ne=new __PRIVATE_NumericMinimumTransformOperation(ee,te.minimum):"maximum"in te?ne=new __PRIVATE_NumericMaximumTransformOperation(ee,te.maximum):l(16584,{proto:te});const re=An.fromServerFormat(te.fieldPath);return new FieldTransform(re,ne)}(ee,te))):[];if(te.update){te.update.name;const se=fromName(ee,te.update.name),ie=new ObjectValue({mapValue:{fields:te.update.fields}});if(te.updateMask){const ee=function __PRIVATE_fromDocumentMask(ee){const te=ee.fieldPaths||[];return new FieldMask(te.map((ee=>An.fromServerFormat(ee))))}(te.updateMask);return new __PRIVATE_PatchMutation(se,ie,ee,ne,re)}return new __PRIVATE_SetMutation(se,ie,ne,re)}if(te.delete){const re=fromName(ee,te.delete);return new __PRIVATE_DeleteMutation(re,ne)}if(te.verify){const re=fromName(ee,te.verify);return new __PRIVATE_VerifyMutation(re,ne)}return l(1463,{proto:te})}function __PRIVATE_toDocumentsTarget(ee,te){return{documents:[__PRIVATE_toQueryPath(ee,te.path)]}}function __PRIVATE_toQueryTarget(ee,te){const ne={structuredQuery:{}},re=te.path;let se;null!==te.collectionGroup?(se=re,ne.structuredQuery.from=[{collectionId:te.collectionGroup,allDescendants:!0}]):(se=re.popLast(),ne.structuredQuery.from=[{collectionId:re.lastSegment()}]),ne.parent=__PRIVATE_toQueryPath(ee,se);const ie=function __PRIVATE_toFilters(ee){if(0!==ee.length)return __PRIVATE_toFilter(CompositeFilter.create(ee,"and"))}(te.filters);ie&&(ne.structuredQuery.where=ie);const ae=function __PRIVATE_toOrder(ee){if(0!==ee.length)return ee.map((ee=>function __PRIVATE_toPropertyOrder(ee){return{field:__PRIVATE_toFieldPathReference(ee.field),direction:__PRIVATE_toDirection(ee.dir)}}(ee)))}(te.orderBy);ae&&(ne.structuredQuery.orderBy=ae);const oe=__PRIVATE_toInt32Proto(ee,te.limit);return null!==oe&&(ne.structuredQuery.limit=oe),te.startAt&&(ne.structuredQuery.startAt=function __PRIVATE_toStartAtCursor(ee){return{before:ee.inclusive,values:ee.position}}(te.startAt)),te.endAt&&(ne.structuredQuery.endAt=function __PRIVATE_toEndAtCursor(ee){return{before:!ee.inclusive,values:ee.position}}(te.endAt)),{be:ne,parent:se}}function __PRIVATE_toRunAggregationQueryRequest(ee,te,ne,re){const{be:se,parent:ie}=__PRIVATE_toQueryTarget(ee,te),ae={},oe=[];let ue=0;return ne.forEach((ee=>{const te=re?ee.alias:"aggregate_"+ue++;ae[te]=ee.alias,"count"===ee.aggregateType?oe.push({alias:te,count:{}}):"avg"===ee.aggregateType?oe.push({alias:te,avg:{field:__PRIVATE_toFieldPathReference(ee.fieldPath)}}):"sum"===ee.aggregateType&&oe.push({alias:te,sum:{field:__PRIVATE_toFieldPathReference(ee.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:oe,structuredQuery:se.structuredQuery},parent:se.parent},ve:ae,parent:ie}}function __PRIVATE_convertQueryTargetToQuery(ee){let te=__PRIVATE_fromQueryPath(ee.parent);const ne=ee.structuredQuery,re=ne.from?ne.from.length:0;let se=null;if(re>0){__PRIVATE_hardAssert(1===re,65062);const ee=ne.from[0];ee.allDescendants?se=ee.collectionId:te=te.child(ee.collectionId)}let ie=[];ne.where&&(ie=function __PRIVATE_fromFilters(ee){const te=__PRIVATE_fromFilter(ee);return te instanceof CompositeFilter&&__PRIVATE_compositeFilterIsFlatConjunction(te)?te.getFilters():[te]}(ne.where));let ae=[];ne.orderBy&&(ae=function __PRIVATE_fromOrder(ee){return ee.map((ee=>function __PRIVATE_fromPropertyOrder(ee){return new OrderBy(__PRIVATE_fromFieldPathReference(ee.field),function __PRIVATE_fromDirection(ee){switch(ee){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(ee.direction))}(ee)))}(ne.orderBy));let oe=null;ne.limit&&(oe=function __PRIVATE_fromInt32Proto(ee){let te;return te="object"==typeof ee?ee.value:ee,__PRIVATE_isNullOrUndefined(te)?null:te}(ne.limit));let ue=null;ne.startAt&&(ue=function __PRIVATE_fromStartAtCursor(ee){const te=!!ee.before,ne=ee.values||[];return new Bound(ne,te)}(ne.startAt));let Be=null;return ne.endAt&&(Be=function __PRIVATE_fromEndAtCursor(ee){const te=!ee.before,ne=ee.values||[];return new Bound(ne,te)}(ne.endAt)),__PRIVATE_newQuery(te,se,ae,ie,oe,"F",ue,Be)}function __PRIVATE_toPipelineTarget(ee,te){return{structuredPipeline:{pipeline:{stages:te.stages.map((te=>te._toProto(ee)))}}}}function __PRIVATE_fromFilter(ee){return void 0!==ee.unaryFilter?function __PRIVATE_fromUnaryFilter(ee){switch(ee.unaryFilter.op){case"IS_NAN":const te=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(te,"==",{doubleValue:NaN});case"IS_NULL":const ne=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(ne,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const re=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(re,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const se=__PRIVATE_fromFieldPathReference(ee.unaryFilter.field);return FieldFilter.create(se,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return l(61313);default:return l(60726)}}(ee):void 0!==ee.fieldFilter?function __PRIVATE_fromFieldFilter(ee){return FieldFilter.create(__PRIVATE_fromFieldPathReference(ee.fieldFilter.field),function __PRIVATE_fromOperatorName(ee){switch(ee){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 l(58110);default:return l(50506)}}(ee.fieldFilter.op),ee.fieldFilter.value)}(ee):void 0!==ee.compositeFilter?function __PRIVATE_fromCompositeFilter(ee){return CompositeFilter.create(ee.compositeFilter.filters.map((ee=>__PRIVATE_fromFilter(ee))),function __PRIVATE_fromCompositeOperatorName(ee){switch(ee){case"AND":return"and";case"OR":return"or";default:return l(1026)}}(ee.compositeFilter.op))}(ee):l(30097,{filter:ee})}function __PRIVATE_toDirection(ee){return Zn[ee]}function __PRIVATE_toOperatorName(ee){return er[ee]}function __PRIVATE_toCompositeOperatorName(ee){return tr[ee]}function __PRIVATE_toFieldPathReference(ee){return{fieldPath:ee.canonicalString()}}function __PRIVATE_fromFieldPathReference(ee){return An.fromServerFormat(ee.fieldPath)}function __PRIVATE_toFilter(ee){return ee instanceof FieldFilter?function __PRIVATE_toUnaryOrFieldFilter(ee){if("=="===ee.op){if(__PRIVATE_isNanValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NAN"}};if(__PRIVATE_isNullValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NULL"}}}else if("!="===ee.op){if(__PRIVATE_isNanValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NOT_NAN"}};if(__PRIVATE_isNullValue(ee.value))return{unaryFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:__PRIVATE_toFieldPathReference(ee.field),op:__PRIVATE_toOperatorName(ee.op),value:ee.value}}}(ee):ee instanceof CompositeFilter?function __PRIVATE_toCompositeFilter(ee){const te=ee.getFilters().map((ee=>__PRIVATE_toFilter(ee)));return 1===te.length?te[0]:{compositeFilter:{op:__PRIVATE_toCompositeOperatorName(ee.op),filters:te}}}(ee):l(54877,{filter:ee})}function __PRIVATE_toDocumentMask(ee){const te=[];return ee.fields.forEach((ee=>te.push(ee.canonicalString()))),{fieldPaths:te}}function __PRIVATE_isValidResourceName(ee){return ee.length>=4&&"projects"===ee.get(0)&&"databases"===ee.get(2)}function __PRIVATE_isProtoValueSerializable(ee){return!!ee&&"function"==typeof ee._toProto&&"ProtoValue"===ee._protoValueType}function toMapValue(ee,te){const ne={fields:{}};return te.forEach(((te,re)=>{if("string"!=typeof re)throw new Error(`Cannot encode map with non-string key: ${re}`);ne.fields[re]=te._toProto(ee)})),{mapValue:ne}}function __PRIVATE_toStringValue(ee){return{stringValue:ee}}function __PRIVATE_toPipelineValue(ee){return{pipelineValue:ee}}function __PRIVATE_newSerializer(ee){return new JsonProtoSerializer(ee,!0)}class Bytes{constructor(ee){this._byteString=ee}static fromBase64String(ee){try{return new Bytes(ByteString.fromBase64String(ee))}catch(ee){throw new s(gn.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+ee)}}static fromUint8Array(ee){return new Bytes(ByteString.fromUint8Array(ee))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(ee){return this._byteString.isEqual(ee._byteString)}toJSON(){return{type:Bytes._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,Bytes._jsonSchema))return Bytes.fromBase64String(ee.bytes)}}Bytes._jsonSchemaVersion="firestore/bytes/1.0",Bytes._jsonSchema={type:property("string",Bytes._jsonSchemaVersion),bytes:property("string")};class FieldPath{constructor(...ee){for(let te=0;te<ee.length;++te)if(0===ee[te].length)throw new s(gn.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new An(ee)}isEqual(ee){return this._internalPath.isEqual(ee._internalPath)}}function documentId$1(){return new FieldPath(Tn)}class FieldValue{constructor(ee){this._methodName=ee}}class GeoPoint{constructor(ee,te){if(!isFinite(ee)||ee<-90||ee>90)throw new s(gn.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+ee);if(!isFinite(te)||te<-180||te>180)throw new s(gn.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+te);this._lat=ee,this._long=te}get latitude(){return this._lat}get longitude(){return this._long}isEqual(ee){return this._lat===ee._lat&&this._long===ee._long}_compareTo(ee){return __PRIVATE_primitiveComparator(this._lat,ee._lat)||__PRIVATE_primitiveComparator(this._long,ee._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:GeoPoint._jsonSchemaVersion}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,GeoPoint._jsonSchema))return new GeoPoint(ee.latitude,ee.longitude)}}GeoPoint._jsonSchemaVersion="firestore/geoPoint/1.0",GeoPoint._jsonSchema={type:property("string",GeoPoint._jsonSchemaVersion),latitude:property("number"),longitude:property("number")};class User{constructor(ee){this.uid=ee}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(ee){return ee.uid===this.uid}}User.UNAUTHENTICATED=new User(null),User.GOOGLE_CREDENTIALS=new User("google-credentials-uid"),User.FIRST_PARTY=new User("first-party-uid"),User.MOCK_USER=new User("mock-user");class __PRIVATE_Deferred{constructor(){this.promise=new Promise(((ee,te)=>{this.resolve=ee,this.reject=te}))}}class __PRIVATE_OAuthToken{constructor(ee,te){this.user=te,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${ee}`)}}class __PRIVATE_EmptyAuthCredentialsProvider{getToken(){return Promise.resolve(null)}invalidateToken(){}start(ee,te){ee.enqueueRetryable((()=>te(User.UNAUTHENTICATED)))}shutdown(){}}class __PRIVATE_EmulatorAuthCredentialsProvider{constructor(ee){this.token=ee,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(ee,te){this.changeListener=te,ee.enqueueRetryable((()=>te(this.token.user)))}shutdown(){this.changeListener=null}}class __PRIVATE_FirebaseAuthCredentialsProvider{constructor(ee){this.Se=ee,this.currentUser=User.UNAUTHENTICATED,this.De=0,this.forceRefresh=!1,this.auth=null}start(ee,te){__PRIVATE_hardAssert(void 0===this.xe,42304);let ne=this.De;const __PRIVATE_guardedChangeListener=ee=>this.De!==ne?(ne=this.De,te(ee)):Promise.resolve();let re=new __PRIVATE_Deferred;this.xe=()=>{this.De++,this.currentUser=this.Ce(),re.resolve(),re=new __PRIVATE_Deferred,ee.enqueueRetryable((()=>__PRIVATE_guardedChangeListener(this.currentUser)))};const __PRIVATE_awaitNextToken=()=>{const te=re;ee.enqueueRetryable((async()=>{await te.promise,await __PRIVATE_guardedChangeListener(this.currentUser)}))},__PRIVATE_registerAuth=ee=>{__PRIVATE_logDebug("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=ee,this.xe&&(this.auth.addAuthTokenListener(this.xe),__PRIVATE_awaitNextToken())};this.Se.onInit((ee=>__PRIVATE_registerAuth(ee))),setTimeout((()=>{if(!this.auth){const ee=this.Se.getImmediate({optional:!0});ee?__PRIVATE_registerAuth(ee):(__PRIVATE_logDebug("FirebaseAuthCredentialsProvider","Auth not yet detected"),re.resolve(),re=new __PRIVATE_Deferred)}}),0),__PRIVATE_awaitNextToken()}getToken(){const ee=this.De,te=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(te).then((te=>this.De!==ee?(__PRIVATE_logDebug("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):te?(__PRIVATE_hardAssert("string"==typeof te.accessToken,31837,{Fe:te}),new __PRIVATE_OAuthToken(te.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.xe&&this.auth.removeAuthTokenListener(this.xe),this.xe=void 0}Ce(){const ee=this.auth&&this.auth.getUid();return __PRIVATE_hardAssert(null===ee||"string"==typeof ee,2055,{Oe:ee}),new User(ee)}}class __PRIVATE_FirstPartyToken{constructor(ee,te,ne){this.Me=ee,this.Ne=te,this.Le=ne,this.type="FirstParty",this.user=User.FIRST_PARTY,this.Be=new Map}Ue(){return this.Le?this.Le():null}get headers(){this.Be.set("X-Goog-AuthUser",this.Me);const ee=this.Ue();return ee&&this.Be.set("Authorization",ee),this.Ne&&this.Be.set("X-Goog-Iam-Authorization-Token",this.Ne),this.Be}}class __PRIVATE_FirstPartyAuthCredentialsProvider{constructor(ee,te,ne){this.Me=ee,this.Ne=te,this.Le=ne}getToken(){return Promise.resolve(new __PRIVATE_FirstPartyToken(this.Me,this.Ne,this.Le))}start(ee,te){ee.enqueueRetryable((()=>te(User.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class AppCheckToken{constructor(ee){this.value=ee,this.type="AppCheck",this.headers=new Map,ee&&ee.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class __PRIVATE_FirebaseAppCheckTokenProvider{constructor(te,ne){this.ke=ne,this.forceRefresh=!1,this.appCheck=null,this.qe=null,this.$e=null,ee(te)&&te.settings.appCheckToken&&(this.$e=te.settings.appCheckToken)}start(ee,te){__PRIVATE_hardAssert(void 0===this.xe,3512);const onTokenChanged=ee=>{null!=ee.error&&__PRIVATE_logDebug("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${ee.error.message}`);const ne=ee.token!==this.qe;return this.qe=ee.token,__PRIVATE_logDebug("FirebaseAppCheckTokenProvider",`Received ${ne?"new":"existing"} token.`),ne?te(ee.token):Promise.resolve()};this.xe=te=>{ee.enqueueRetryable((()=>onTokenChanged(te)))};const __PRIVATE_registerAppCheck=ee=>{__PRIVATE_logDebug("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=ee,this.xe&&this.appCheck.addTokenListener(this.xe)};this.ke.onInit((ee=>__PRIVATE_registerAppCheck(ee))),setTimeout((()=>{if(!this.appCheck){const ee=this.ke.getImmediate({optional:!0});ee?__PRIVATE_registerAppCheck(ee):__PRIVATE_logDebug("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){if(this.$e)return Promise.resolve(new AppCheckToken(this.$e));const ee=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(ee).then((ee=>ee?(__PRIVATE_hardAssert("string"==typeof ee.token,44558,{tokenResult:ee}),this.qe=ee.token,new AppCheckToken(ee.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.xe&&this.appCheck.removeTokenListener(this.xe),this.xe=void 0}}class __PRIVATE_EmptyAppCheckTokenProvider{getToken(){return Promise.resolve(new AppCheckToken(""))}invalidateToken(){}start(ee,te){}shutdown(){}}function __PRIVATE_cloneLongPollingOptions(ee){const te={};return void 0!==ee.timeoutSeconds&&(te.timeoutSeconds=ee.timeoutSeconds),te}class __PRIVATE_NoopConnectivityMonitor{Ke(ee){}shutdown(){}}const nr="ConnectivityMonitor";class __PRIVATE_BrowserConnectivityMonitor{constructor(){this.We=()=>this.Qe(),this.Ge=()=>this.ze(),this.je=[],this.He()}Ke(ee){this.je.push(ee)}shutdown(){window.removeEventListener("online",this.We),window.removeEventListener("offline",this.Ge)}He(){window.addEventListener("online",this.We),window.addEventListener("offline",this.Ge)}Qe(){__PRIVATE_logDebug(nr,"Network connectivity changed: AVAILABLE");for(const ee of this.je)ee(0)}ze(){__PRIVATE_logDebug(nr,"Network connectivity changed: UNAVAILABLE");for(const ee of this.je)ee(1)}static Je(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let rr=null;function __PRIVATE_generateUniqueDebugId(){return null===rr?rr=function __PRIVATE_generateInitialUniqueDebugId(){return 268435456+Math.round(2147483648*Math.random())}():rr++,"0x"+rr.toString(16)}const sr="RestConnection",ir={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class __PRIVATE_RestConnection{get Ye(){return!1}constructor(ee){this.databaseInfo=ee,this.databaseId=ee.databaseId;const te=ee.ssl?"https":"http",ne=encodeURIComponent(this.databaseId.projectId),re=encodeURIComponent(this.databaseId.database);this.Ze=te+"://"+ee.host,this.Xe=`projects/${ne}/databases/${re}`,this.et=this.databaseId.database===Sn?`project_id=${ne}`:`project_id=${ne}&database_id=${re}`}tt(ee,te,ne,re,se){const ie=__PRIVATE_generateUniqueDebugId(),ae=this.nt(ee,te.toUriEncodedString());__PRIVATE_logDebug(sr,`Sending RPC '${ee}' ${ie}:`,ae,ne);const oe={"google-cloud-resource-prefix":this.Xe,"x-goog-request-params":this.et};this.rt(oe,re,se);const{host:ue}=new URL(ae),Be=isCloudWorkstation(ue);return this.it(ee,ae,oe,ne,Be).then((te=>(__PRIVATE_logDebug(sr,`Received RPC '${ee}' ${ie}: `,te),te)),(te=>{throw __PRIVATE_logWarn(sr,`RPC '${ee}' ${ie} failed with error: `,te,"url: ",ae,"request:",ne),te}))}st(ee,te,ne,re,se,ie){return this.tt(ee,te,ne,re,se)}rt(ee,te,ne){if(ee["X-Goog-Api-Client"]=function __PRIVATE_getGoogApiClientValue(){return"gl-js/ fire/"+Cn}(),ee["Content-Type"]="text/plain",this.databaseInfo.appId&&(ee["X-Firebase-GMPID"]=this.databaseInfo.appId),te&&te.headers.forEach(((te,ne)=>ee[ne]=te)),ne&&ne.headers.forEach(((te,ne)=>ee[ne]=te)),this.databaseInfo._customHeaders)for(const te of Object.keys(this.databaseInfo._customHeaders))ee[te]=this.databaseInfo._customHeaders[te]}nt(ee,te){const ne=ir[ee];let re=`${this.Ze}/v1/${te}:${ne}`;return this.databaseInfo.apiKey&&(re=`${re}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),re}terminate(){}}class __PRIVATE_StreamBridge{constructor(ee){this._t=ee._t,this.ot=ee.ot}ut(ee){this.ct=ee}lt(ee){this.Et=ee}ht(ee){this.Tt=ee}onMessage(ee){this.Pt=ee}close(){this.ot()}send(ee){this._t(ee)}Rt(){this.ct()}It(){this.Et()}At(ee){this.Tt(ee)}Vt(ee){this.Pt(ee)}}const ar="WebChannelConnection",__PRIVATE_unguardedEventListen=(ee,te,ne)=>{ee.listen(te,(ee=>{try{ne(ee)}catch(ee){setTimeout((()=>{throw ee}),0)}}))};class __PRIVATE_WebChannelConnection extends __PRIVATE_RestConnection{constructor(ee){super(ee),this.dt=[],this.forceLongPolling=ee.forceLongPolling,this.autoDetectLongPolling=ee.autoDetectLongPolling,this.useFetchStreams=ee.useFetchStreams,this.longPollingOptions=ee.longPollingOptions}static ft(){if(!__PRIVATE_WebChannelConnection.gt){const ee=ge();__PRIVATE_unguardedEventListen(ee,fe.STAT_EVENT,(ee=>{ee.stat===me.PROXY?__PRIVATE_logDebug(ar,"STAT_EVENT: detected buffering proxy"):ee.stat===me.NOPROXY&&__PRIVATE_logDebug(ar,"STAT_EVENT: detected no buffering proxy")})),__PRIVATE_WebChannelConnection.gt=!0}}it(ee,te,ne,re,se){const ie=__PRIVATE_generateUniqueDebugId();return new Promise(((se,ae)=>{const oe=new de;oe.setWithCredentials(!0),oe.listenOnce(Ce.COMPLETE,(()=>{try{switch(oe.getLastErrorCode()){case pe.NO_ERROR:const te=oe.getResponseJson();__PRIVATE_logDebug(ar,`XHR for RPC '${ee}' ${ie} received:`,JSON.stringify(te)),se(te);break;case pe.TIMEOUT:__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} timed out`),ae(new s(gn.DEADLINE_EXCEEDED,"Request time out"));break;case pe.HTTP_ERROR:const ne=oe.getStatus();if(__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} failed with status:`,ne,"response text:",oe.getResponseText()),ne>0){let ee=oe.getResponseJson();Array.isArray(ee)&&(ee=ee[0]);const te=ee?.error;if(te&&te.status&&te.message){const ee=function __PRIVATE_mapCodeFromHttpResponseErrorStatus(ee){const te=ee.toLowerCase().replace(/_/g,"-");return Object.values(gn).indexOf(te)>=0?te:gn.UNKNOWN}(te.status);ae(new s(ee,te.message))}else ae(new s(gn.UNKNOWN,"Server responded with status "+oe.getStatus()))}else ae(new s(gn.UNAVAILABLE,"Connection failed."));break;default:l(9055,{yt:ee,streamId:ie,wt:oe.getLastErrorCode(),bt:oe.getLastError()})}}finally{__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} completed.`)}}));const ue=JSON.stringify(re);__PRIVATE_logDebug(ar,`RPC '${ee}' ${ie} sending request:`,re),oe.send(te,"POST",ue,ne,15)}))}vt(ee,te,ne){const re=__PRIVATE_generateUniqueDebugId(),se=[this.Ze,"/","google.firestore.v1.Firestore","/",ee,"/channel"],ie=this.createWebChannelTransport(),ae={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},oe=this.longPollingOptions.timeoutSeconds;void 0!==oe&&(ae.longPollingTimeout=Math.round(1e3*oe)),this.useFetchStreams&&(ae.useFetchStreams=!0),this.rt(ae.initMessageHeaders,te,ne),ae.encodeInitMessageHeaders=!0;const ue=se.join("");__PRIVATE_logDebug(ar,`Creating RPC '${ee}' stream ${re}: ${ue}`,ae);const Be=ie.createWebChannel(ue,ae);this.St(Be);let le=!1,ce=!1;const _e=new __PRIVATE_StreamBridge({_t:te=>{ce?__PRIVATE_logDebug(ar,`Not sending because RPC '${ee}' stream ${re} is closed:`,te):(le||(__PRIVATE_logDebug(ar,`Opening RPC '${ee}' stream ${re} transport.`),Be.open(),le=!0),__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} sending:`,te),Be.send(te))},ot:()=>Be.close()});return __PRIVATE_unguardedEventListen(Be,Ee.EventType.OPEN,(()=>{ce||(__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} transport opened.`),_e.Rt())})),__PRIVATE_unguardedEventListen(Be,Ee.EventType.CLOSE,(()=>{ce||(ce=!0,__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} transport closed`),_e.At(),this.Dt(Be))})),__PRIVATE_unguardedEventListen(Be,Ee.EventType.ERROR,(te=>{ce||(ce=!0,__PRIVATE_logWarn(ar,`RPC '${ee}' stream ${re} transport errored. Name:`,te.name,"Message:",te.message),_e.At(new s(gn.UNAVAILABLE,"The operation could not be completed")))})),__PRIVATE_unguardedEventListen(Be,Ee.EventType.MESSAGE,(te=>{if(!ce){const ne=te.data[0];__PRIVATE_hardAssert(!!ne,16349);const se=ne,ie=se?.error||se[0]?.error;if(ie){__PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} received error:`,ie);const te=ie.status;let ne=function __PRIVATE_mapCodeFromRpcStatus(ee){const te=qn[ee];if(void 0!==te)return __PRIVATE_mapCodeFromRpcCode(te)}(te),se=ie.message;"NOT_FOUND"===te&&se.includes("database")&&se.includes("does not exist")&&se.includes(this.databaseId.database)&&__PRIVATE_logWarn(`Database '${this.databaseId.database}' not found. Please check your project configuration.`),void 0===ne&&(ne=gn.INTERNAL,se="Unknown error status: "+te+" with message "+ie.message),ce=!0,_e.At(new s(ne,se)),Be.close()}else __PRIVATE_logDebug(ar,`RPC '${ee}' stream ${re} received:`,ne),_e.Vt(ne)}})),__PRIVATE_WebChannelConnection.ft(),setTimeout((()=>{_e.It()}),0),_e}terminate(){this.dt.forEach((ee=>ee.close())),this.dt=[]}St(ee){this.dt.push(ee)}Dt(ee){this.dt=this.dt.filter((te=>te===ee))}rt(ee,te,ne){super.rt(ee,te,ne),this.databaseInfo.apiKey&&(ee["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return Te()}}function __PRIVATE_newConnection(ee){return new __PRIVATE_WebChannelConnection(ee)}__PRIVATE_WebChannelConnection.gt=!1;class __PRIVATE_ExponentialBackoff{constructor(ee,te,ne=1e3,re=1.5,se=6e4){this.xt=ee,this.timerId=te,this.Ct=ne,this.Ft=re,this.Ot=se,this.Mt=0,this.Nt=null,this.Lt=Date.now(),this.reset()}reset(){this.Mt=0}Bt(){this.Mt=this.Ot}Ut(ee){this.cancel();const te=Math.floor(this.Mt+this.kt()),ne=Math.max(0,Date.now()-this.Lt),re=Math.max(0,te-ne);re>0&&__PRIVATE_logDebug("ExponentialBackoff",`Backing off for ${re} ms (base delay: ${this.Mt} ms, delay with jitter: ${te} ms, last attempt: ${ne} ms ago)`),this.Nt=this.xt.enqueueAfterDelay(this.timerId,re,(()=>(this.Lt=Date.now(),ee()))),this.Mt*=this.Ft,this.Mt<this.Ct&&(this.Mt=this.Ct),this.Mt>this.Ot&&(this.Mt=this.Ot)}qt(){null!==this.Nt&&(this.Nt.skipDelay(),this.Nt=null)}cancel(){null!==this.Nt&&(this.Nt.cancel(),this.Nt=null)}kt(){return(Math.random()-.5)*this.Mt}}const ur="PersistentStream";class __PRIVATE_PersistentStream{constructor(ee,te,ne,re,se,ie,ae,oe){this.xt=ee,this.$t=ne,this.Kt=re,this.connection=se,this.authCredentialsProvider=ie,this.appCheckCredentialsProvider=ae,this.listener=oe,this.state=0,this.Wt=0,this.Qt=null,this.Gt=null,this.stream=null,this.zt=0,this.jt=new __PRIVATE_ExponentialBackoff(ee,te)}Ht(){return 1===this.state||5===this.state||this.Jt()}Jt(){return 2===this.state||3===this.state}start(){this.zt=0,4!==this.state?this.auth():this.Yt()}async stop(){this.Ht()&&await this.close(0)}Zt(){this.state=0,this.jt.reset()}Xt(){this.Jt()&&null===this.Qt&&(this.Qt=this.xt.enqueueAfterDelay(this.$t,6e4,(()=>this.en())))}tn(ee){this.nn(),this.stream.send(ee)}async en(){if(this.Jt())return this.close(0)}nn(){this.Qt&&(this.Qt.cancel(),this.Qt=null)}rn(){this.Gt&&(this.Gt.cancel(),this.Gt=null)}async close(ee,te){this.nn(),this.rn(),this.jt.cancel(),this.Wt++,4!==ee?this.jt.reset():te&&te.code===gn.RESOURCE_EXHAUSTED?(__PRIVATE_logError(te.toString()),__PRIVATE_logError("Using maximum backoff delay to prevent overloading the backend."),this.jt.Bt()):te&&te.code===gn.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.sn(),this.stream.close(),this.stream=null),this.state=ee,await this.listener.ht(te)}sn(){}auth(){this.state=1;const ee=this._n(this.Wt),te=this.Wt;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([ee,ne])=>{this.Wt===te&&this.an(ee,ne)}),(te=>{ee((()=>{const ee=new s(gn.UNKNOWN,"Fetching auth token failed: "+te.message);return this.un(ee)}))}))}an(ee,te){const ne=this._n(this.Wt);this.stream=this.cn(ee,te),this.stream.ut((()=>{ne((()=>this.listener.ut()))})),this.stream.lt((()=>{ne((()=>(this.state=2,this.Gt=this.xt.enqueueAfterDelay(this.Kt,1e4,(()=>(this.Jt()&&(this.state=3),Promise.resolve()))),this.listener.lt())))})),this.stream.ht((ee=>{ne((()=>this.un(ee)))})),this.stream.onMessage((ee=>{ne((()=>1==++this.zt?this.En(ee):this.onNext(ee)))}))}Yt(){this.state=5,this.jt.Ut((async()=>{this.state=0,this.start()}))}un(ee){return __PRIVATE_logDebug(ur,`close with error: ${ee}`),this.stream=null,this.close(4,ee)}_n(ee){return te=>{this.xt.enqueueAndForget((()=>this.Wt===ee?te():(__PRIVATE_logDebug(ur,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class __PRIVATE_PersistentListenStream extends __PRIVATE_PersistentStream{constructor(ee,te,ne,re,se,ie){super(ee,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",te,ne,re,ie),this.serializer=se}cn(ee,te){return this.connection.vt("Listen",ee,te)}En(ee){return this.onNext(ee)}onNext(ee){this.jt.reset();const te=function __PRIVATE_fromWatchChange(ee,te){let ne;if("targetChange"in te){te.targetChange;const re=function __PRIVATE_fromWatchTargetChangeState(ee){return"NO_CHANGE"===ee?0:"ADD"===ee?1:"REMOVE"===ee?2:"CURRENT"===ee?3:"RESET"===ee?4:l(39313,{state:ee})}(te.targetChange.targetChangeType||"NO_CHANGE"),se=te.targetChange.targetIds||[],ie=function __PRIVATE_fromBytes(ee,te){return ee.useProto3Json?(__PRIVATE_hardAssert(void 0===te||"string"==typeof te,58123),ByteString.fromBase64String(te||"")):(__PRIVATE_hardAssert(void 0===te||te instanceof Buffer||te instanceof Uint8Array,16193),ByteString.fromUint8Array(te||new Uint8Array))}(ee,te.targetChange.resumeToken),ae=te.targetChange.cause,oe=ae&&function __PRIVATE_fromRpcStatus(ee){const te=void 0===ee.code?gn.UNKNOWN:__PRIVATE_mapCodeFromRpcCode(ee.code);return new s(te,ee.message||"")}(ae);ne=new __PRIVATE_WatchTargetChange(re,se,ie,oe||null)}else if("documentChange"in te){te.documentChange;const re=te.documentChange;re.document,re.document.name,re.document.updateTime;const se=fromName(ee,re.document.name),ie=__PRIVATE_fromVersion(re.document.updateTime),ae=re.document.createTime?__PRIVATE_fromVersion(re.document.createTime):SnapshotVersion.min(),oe=new ObjectValue({mapValue:{fields:re.document.fields}}),ue=MutableDocument.newFoundDocument(se,ie,ae,oe),Be=re.targetIds||[],le=re.removedTargetIds||[];ne=new __PRIVATE_DocumentWatchChange(Be,le,ue.key,ue)}else if("documentDelete"in te){te.documentDelete;const re=te.documentDelete;re.document;const se=fromName(ee,re.document),ie=re.readTime?__PRIVATE_fromVersion(re.readTime):SnapshotVersion.min(),ae=MutableDocument.newNoDocument(se,ie),oe=re.removedTargetIds||[];ne=new __PRIVATE_DocumentWatchChange([],oe,ae.key,ae)}else if("documentRemove"in te){te.documentRemove;const re=te.documentRemove;re.document;const se=fromName(ee,re.document),ie=re.removedTargetIds||[];ne=new __PRIVATE_DocumentWatchChange([],ie,se,null)}else{if(!("filter"in te))return l(11601,{ye:te});{te.filter;const ee=te.filter;ee.targetId;const{count:re=0,unchangedNames:se}=ee,ie=new ExistenceFilter(re,se),ae=ee.targetId;ne=new __PRIVATE_ExistenceFilterChange(ae,ie)}}return ne}(this.serializer,ee),ne=function __PRIVATE_versionFromListenResponse(ee){if(!("targetChange"in ee))return SnapshotVersion.min();const te=ee.targetChange;return te.targetIds&&te.targetIds.length?SnapshotVersion.min():te.readTime?__PRIVATE_fromVersion(te.readTime):SnapshotVersion.min()}(ee);return this.listener.hn(te,ne)}Tn(ee){const te={};te.database=__PRIVATE_getEncodedDatabaseId(this.serializer),te.addTarget=function __PRIVATE_toTarget(ee,te){let ne;const re=te.target;if(ne=__PRIVATE_targetIsPipelineTarget(re)?{pipelineQuery:__PRIVATE_toPipelineTarget(ee,re)}:__PRIVATE_targetIsDocumentTarget(re)?{documents:__PRIVATE_toDocumentsTarget(ee,re)}:{query:__PRIVATE_toQueryTarget(ee,re).be},ne.targetId=te.targetId,te.resumeToken.approximateByteSize()>0){ne.resumeToken=__PRIVATE_toBytes(ee,te.resumeToken);const re=__PRIVATE_toInt32Proto(ee,te.expectedCount);null!==re&&(ne.expectedCount=re)}else if(te.snapshotVersion.compareTo(SnapshotVersion.min())>0){ne.readTime=toTimestamp(ee,te.snapshotVersion.toTimestamp());const re=__PRIVATE_toInt32Proto(ee,te.expectedCount);null!==re&&(ne.expectedCount=re)}return ne}(this.serializer,ee);const ne=function __PRIVATE_toListenRequestLabels(ee,te){const ne=function __PRIVATE_toLabel(ee){switch(ee){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return l(28987,{purpose:ee})}}(te.purpose);return null==ne?null:{"goog-listen-tags":ne}}(this.serializer,ee);ne&&(te.labels=ne),this.tn(te)}Pn(ee){const te={};te.database=__PRIVATE_getEncodedDatabaseId(this.serializer),te.removeTarget=ee,this.tn(te)}}class __PRIVATE_PersistentWriteStream extends __PRIVATE_PersistentStream{constructor(ee,te,ne,re,se,ie){super(ee,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",te,ne,re,ie),this.serializer=se}get Rn(){return this.zt>0}start(){this.lastStreamToken=void 0,super.start()}sn(){this.Rn&&this.In([])}cn(ee,te){return this.connection.vt("Write",ee,te)}En(ee){return __PRIVATE_hardAssert(!!ee.streamToken,31322),this.lastStreamToken=ee.streamToken,__PRIVATE_hardAssert(!ee.writeResults||0===ee.writeResults.length,55816),this.listener.An()}onNext(ee){__PRIVATE_hardAssert(!!ee.streamToken,12678),this.lastStreamToken=ee.streamToken,this.jt.reset();const te=function __PRIVATE_fromWriteResults(ee,te){return ee&&ee.length>0?(__PRIVATE_hardAssert(void 0!==te,14353),ee.map((ee=>function __PRIVATE_fromWriteResult(ee,te){let ne=ee.updateTime?__PRIVATE_fromVersion(ee.updateTime):__PRIVATE_fromVersion(te);return ne.isEqual(SnapshotVersion.min())&&(ne=__PRIVATE_fromVersion(te)),new MutationResult(ne,ee.transformResults||[])}(ee,te)))):[]}(ee.writeResults,ee.commitTime),ne=__PRIVATE_fromVersion(ee.commitTime);return this.listener.Vn(ne,te)}dn(){const ee={};ee.database=__PRIVATE_getEncodedDatabaseId(this.serializer),this.tn(ee)}In(ee){const te={streamToken:this.lastStreamToken,writes:ee.map((ee=>toMutation(this.serializer,ee)))};this.tn(te)}}class Datastore{}class __PRIVATE_DatastoreImpl extends Datastore{constructor(ee,te,ne,re){super(),this.authCredentials=ee,this.appCheckCredentials=te,this.connection=ne,this.serializer=re,this.fn=!1}mn(){if(this.fn)throw new s(gn.FAILED_PRECONDITION,"The client has already been terminated.")}tt(ee,te,ne,re){return this.mn(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([se,ie])=>this.connection.tt(ee,__PRIVATE_toResourcePath(te,ne),re,se,ie))).catch((ee=>{throw"FirebaseError"===ee.name?(ee.code===gn.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),ee):new s(gn.UNKNOWN,ee.toString())}))}st(ee,te,ne,re,se){return this.mn(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([ie,ae])=>this.connection.st(ee,__PRIVATE_toResourcePath(te,ne),re,ie,ae,se))).catch((ee=>{throw"FirebaseError"===ee.name?(ee.code===gn.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),ee):new s(gn.UNKNOWN,ee.toString())}))}terminate(){this.fn=!0,this.connection.terminate()}}function __PRIVATE_newDatastore(ee,te,ne,re){return new __PRIVATE_DatastoreImpl(ee,te,ne,re)}const Br="ComponentProvider",lr=new Map;function __PRIVATE_makeDatabaseInfo(ee,te,ne,re,se){return new DatabaseInfo(ee,te,ne,se.host,se.ssl,se.experimentalForceLongPolling,se.experimentalAutoDetectLongPolling,__PRIVATE_cloneLongPollingOptions(se.experimentalLongPollingOptions),se.useFetchStreams,se.isUsingEmulator,re,se._customHeaders,se.grpcFlowControlWindow)}const cr={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0},_r=41943040;class LruParams{static withCacheSize(ee){return new LruParams(ee,LruParams.DEFAULT_COLLECTION_PERCENTILE,LruParams.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(ee,te,ne){this.cacheSizeCollectionThreshold=ee,this.percentileToCollect=te,this.maximumSequenceNumbersToCollect=ne}}LruParams.DEFAULT_COLLECTION_PERCENTILE=10,LruParams.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,LruParams.DEFAULT=new LruParams(_r,LruParams.DEFAULT_COLLECTION_PERCENTILE,LruParams.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),LruParams.DISABLED=new LruParams(-1,0,0);class __PRIVATE_ListenSequence{constructor(ee,te){this.previousValue=ee,te&&(te.sequenceNumberHandler=ee=>this.pn(ee),this.gn=ee=>te.writeSequenceNumber(ee))}pn(ee){return this.previousValue=Math.max(ee,this.previousValue),this.previousValue}next(){const ee=++this.previousValue;return this.gn&&this.gn(ee),ee}}__PRIVATE_ListenSequence.yn=-1;const hr="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class PersistenceTransaction{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(ee){this.onCommittedListeners.push(ee)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((ee=>ee()))}}async function __PRIVATE_ignoreIfPrimaryLeaseLoss(ee){if(ee.code!==gn.FAILED_PRECONDITION||ee.message!==hr)throw ee;__PRIVATE_logDebug("LocalStore","Unexpectedly lost primary lease")}class PersistencePromise{constructor(ee){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,ee((ee=>{this.isDone=!0,this.result=ee,this.nextCallback&&this.nextCallback(ee)}),(ee=>{this.isDone=!0,this.error=ee,this.catchCallback&&this.catchCallback(ee)}))}catch(ee){return this.next(void 0,ee)}next(ee,te){return this.callbackAttached&&l(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(te,this.error):this.wrapSuccess(ee,this.result):new PersistencePromise(((ne,re)=>{this.nextCallback=te=>{this.wrapSuccess(ee,te).next(ne,re)},this.catchCallback=ee=>{this.wrapFailure(te,ee).next(ne,re)}}))}toPromise(){return new Promise(((ee,te)=>{this.next(ee,te)}))}wrapUserFunction(ee){try{const te=ee();return te instanceof PersistencePromise?te:PersistencePromise.resolve(te)}catch(ee){return PersistencePromise.reject(ee)}}wrapSuccess(ee,te){return ee?this.wrapUserFunction((()=>ee(te))):PersistencePromise.resolve(te)}wrapFailure(ee,te){return ee?this.wrapUserFunction((()=>ee(te))):PersistencePromise.reject(te)}static resolve(ee){return new PersistencePromise(((te,ne)=>{te(ee)}))}static reject(ee){return new PersistencePromise(((te,ne)=>{ne(ee)}))}static waitFor(ee){return new PersistencePromise(((te,ne)=>{let re=0,se=0,ie=!1;ee.forEach((ee=>{++re,ee.next((()=>{++se,ie&&se===re&&te()}),(ee=>ne(ee)))})),ie=!0,se===re&&te()}))}static or(ee){let te=PersistencePromise.resolve(!1);for(const ne of ee)te=te.next((ee=>ee?PersistencePromise.resolve(ee):ne()));return te}static forEach(ee,te){const ne=[];return ee.forEach(((ee,re)=>{ne.push(te.call(this,ee,re))})),this.waitFor(ne)}static mapArray(ee,te){return new PersistencePromise(((ne,re)=>{const se=ee.length,ie=new Array(se);let ae=0;for(let oe=0;oe<se;oe++){const ue=oe;te(ee[ue]).next((ee=>{ie[ue]=ee,++ae,ae===se&&ne(ie)}),(ee=>re(ee)))}}))}static doWhile(ee,te){return new PersistencePromise(((ne,re)=>{const process=()=>{!0===ee()?te().next((()=>{process()}),re):ne()};process()}))}}const dr="SimpleDb";class __PRIVATE_SimpleDbTransaction{static open(ee,te,ne,re){try{return new __PRIVATE_SimpleDbTransaction(te,ee.transaction(re,ne))}catch(ee){throw new __PRIVATE_IndexedDbTransactionError(te,ee)}}constructor(ee,te){this.action=ee,this.transaction=te,this.aborted=!1,this.wn=new __PRIVATE_Deferred,this.transaction.oncomplete=()=>{this.wn.resolve()},this.transaction.onabort=()=>{te.error?this.wn.reject(new __PRIVATE_IndexedDbTransactionError(ee,te.error)):this.wn.resolve()},this.transaction.onerror=te=>{const ne=__PRIVATE_checkForAndReportiOSError(te.target.error);this.wn.reject(new __PRIVATE_IndexedDbTransactionError(ee,ne))}}get bn(){return this.wn.promise}abort(ee){ee&&this.wn.reject(ee),this.aborted||(__PRIVATE_logDebug(dr,"Aborting transaction:",ee?ee.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}vn(){const ee=this.transaction;this.aborted||"function"!=typeof ee.commit||ee.commit()}store(ee){const te=this.transaction.objectStore(ee);return new __PRIVATE_SimpleDbStore(te)}}class __PRIVATE_SimpleDb{static delete(ee){return __PRIVATE_logDebug(dr,"Removing database:",ee),__PRIVATE_wrapRequest(getGlobal().indexedDB.deleteDatabase(ee)).toPromise()}static Je(){if(!function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(ee){return!1}}())return!1;if(__PRIVATE_SimpleDb.Sn())return!0;const ee=getUA(),te=__PRIVATE_SimpleDb.Dn(ee),ne=0<te&&te<10,re=__PRIVATE_getAndroidVersion(ee),se=0<re&&re<4.5;return!(ee.indexOf("MSIE ")>0||ee.indexOf("Trident/")>0||ee.indexOf("Edge/")>0||ne||se)}static Sn(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static xn(ee,te){return ee.store(te)}static Dn(ee){const te=ee.match(/i(?:phone|pad|pod) os ([\d_]+)/i),ne=te?te[1].split("_").slice(0,2).join("."):"-1";return Number(ne)}constructor(ee,te,ne){this.name=ee,this.version=te,this.Cn=ne,this.Fn=null,12.2===__PRIVATE_SimpleDb.Dn(getUA())&&__PRIVATE_logError("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async On(ee){return this.db||(__PRIVATE_logDebug(dr,"Opening database:",this.name),this.db=await new Promise(((te,ne)=>{const re=indexedDB.open(this.name,this.version);re.onsuccess=ee=>{const ne=ee.target.result;te(ne)},re.onblocked=()=>{ne(new __PRIVATE_IndexedDbTransactionError(ee,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},re.onerror=te=>{const re=te.target.error;"VersionError"===re.name?ne(new s(gn.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"===re.name?ne(new s(gn.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: "+re)):ne(new __PRIVATE_IndexedDbTransactionError(ee,re))},re.onupgradeneeded=ee=>{__PRIVATE_logDebug(dr,'Database "'+this.name+'" requires upgrade from version:',ee.oldVersion);const te=ee.target.result;this.Cn.Mn(te,re.transaction,ee.oldVersion,this.version).next((()=>{__PRIVATE_logDebug(dr,"Database upgrade to version "+this.version+" complete")}))}}))),this.Nn&&(this.db.onversionchange=ee=>this.Nn(ee)),this.db}Ln(ee){this.Nn=ee,this.db&&(this.db.onversionchange=te=>ee(te))}async runTransaction(ee,te,ne,re){const se="readonly"===te;let ie=0;for(;;){++ie;try{this.db=await this.On(ee);const te=__PRIVATE_SimpleDbTransaction.open(this.db,ee,se?"readonly":"readwrite",ne),ie=re(te).next((ee=>(te.vn(),ee))).catch((ee=>(te.abort(ee),PersistencePromise.reject(ee)))).toPromise();return ie.catch((()=>{})),await te.bn,ie}catch(ee){const te=ee,ne="FirebaseError"!==te.name&&ie<3;if(__PRIVATE_logDebug(dr,"Transaction failed with error:",te.message,"Retrying:",ne),this.close(),!ne)return Promise.reject(te)}}}close(){this.db&&this.db.close(),this.db=void 0}}function __PRIVATE_getAndroidVersion(ee){const te=ee.match(/Android ([\d.]+)/i),ne=te?te[1].split(".").slice(0,2).join("."):"-1";return Number(ne)}class __PRIVATE_IterationController{constructor(ee){this.Bn=ee,this.Un=!1,this.kn=null}get isDone(){return this.Un}get qn(){return this.kn}set cursor(ee){this.Bn=ee}done(){this.Un=!0}$n(ee){this.kn=ee}delete(){return __PRIVATE_wrapRequest(this.Bn.delete())}}class __PRIVATE_IndexedDbTransactionError extends s{constructor(ee,te){super(gn.UNAVAILABLE,`IndexedDB transaction '${ee}' failed: ${te}`),this.name="IndexedDbTransactionError"}}function __PRIVATE_isIndexedDbTransactionError(ee){return"IndexedDbTransactionError"===ee.name}class __PRIVATE_SimpleDbStore{constructor(ee){this.store=ee}put(ee,te){let ne;return void 0!==te?(__PRIVATE_logDebug(dr,"PUT",this.store.name,ee,te),ne=this.store.put(te,ee)):(__PRIVATE_logDebug(dr,"PUT",this.store.name,"<auto-key>",ee),ne=this.store.put(ee)),__PRIVATE_wrapRequest(ne)}add(ee){return __PRIVATE_logDebug(dr,"ADD",this.store.name,ee,ee),__PRIVATE_wrapRequest(this.store.add(ee))}get(ee){return __PRIVATE_wrapRequest(this.store.get(ee)).next((te=>(void 0===te&&(te=null),__PRIVATE_logDebug(dr,"GET",this.store.name,ee,te),te)))}delete(ee){return __PRIVATE_logDebug(dr,"DELETE",this.store.name,ee),__PRIVATE_wrapRequest(this.store.delete(ee))}count(){return __PRIVATE_logDebug(dr,"COUNT",this.store.name),__PRIVATE_wrapRequest(this.store.count())}Kn(ee,te){const ne=this.options(ee,te),re=ne.index?this.store.index(ne.index):this.store;if("function"==typeof re.getAll){const ee=re.getAll(ne.range);return new PersistencePromise(((te,ne)=>{ee.onerror=ee=>{ne(ee.target.error)},ee.onsuccess=ee=>{te(ee.target.result)}}))}{const ee=this.cursor(ne),te=[];return this.Wn(ee,((ee,ne)=>{te.push(ne)})).next((()=>te))}}Qn(ee,te){const ne=this.store.getAll(ee,null===te?void 0:te);return new PersistencePromise(((ee,te)=>{ne.onerror=ee=>{te(ee.target.error)},ne.onsuccess=te=>{ee(te.target.result)}}))}Gn(ee,te){__PRIVATE_logDebug(dr,"DELETE ALL",this.store.name);const ne=this.options(ee,te);ne.zn=!1;const re=this.cursor(ne);return this.Wn(re,((ee,te,ne)=>ne.delete()))}jn(ee,te){let ne;te?ne=ee:(ne={},te=ee);const re=this.cursor(ne);return this.Wn(re,te)}Hn(ee){const te=this.cursor({});return new PersistencePromise(((ne,re)=>{te.onerror=ee=>{const te=__PRIVATE_checkForAndReportiOSError(ee.target.error);re(te)},te.onsuccess=te=>{const re=te.target.result;re?ee(re.primaryKey,re.value).next((ee=>{ee?re.continue():ne()})):ne()}}))}Wn(ee,te){const ne=[];return new PersistencePromise(((re,se)=>{ee.onerror=ee=>{se(ee.target.error)},ee.onsuccess=ee=>{const se=ee.target.result;if(!se)return void re();const ie=new __PRIVATE_IterationController(se),ae=te(se.primaryKey,se.value,ie);if(ae instanceof PersistencePromise){const ee=ae.catch((ee=>(ie.done(),PersistencePromise.reject(ee))));ne.push(ee)}ie.isDone?re():null===ie.qn?se.continue():se.continue(ie.qn)}})).next((()=>PersistencePromise.waitFor(ne)))}options(ee,te){let ne;return void 0!==ee&&("string"==typeof ee?ne=ee:te=ee),{index:ne,range:te}}cursor(ee){let te="next";if(ee.reverse&&(te="prev"),ee.index){const ne=this.store.index(ee.index);return ee.zn?ne.openKeyCursor(ee.range,te):ne.openCursor(ee.range,te)}return this.store.openCursor(ee.range,te)}}function __PRIVATE_wrapRequest(ee){return new PersistencePromise(((te,ne)=>{ee.onsuccess=ee=>{const ne=ee.target.result;te(ne)},ee.onerror=ee=>{const te=__PRIVATE_checkForAndReportiOSError(ee.target.error);ne(te)}}))}let Er=!1;function __PRIVATE_checkForAndReportiOSError(ee){const te=__PRIVATE_SimpleDb.Dn(getUA());if(te>=12.2&&te<13){const te="An internal error was encountered in the Indexed Database server";if(ee.message.indexOf(te)>=0){const ee=new s("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${te}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Er||(Er=!0,setTimeout((()=>{throw ee}),0)),ee}}return ee}const Cr="LruGarbageCollector",pr=1048576;function __PRIVATE_bufferEntryComparator([ee,te],[ne,re]){const se=__PRIVATE_primitiveComparator(ee,ne);return 0===se?__PRIVATE_primitiveComparator(te,re):se}class __PRIVATE_RollingSequenceNumberBuffer{constructor(ee){this.Jn=ee,this.buffer=new SortedSet(__PRIVATE_bufferEntryComparator),this.Yn=0}Zn(){return++this.Yn}Xn(ee){const te=[ee,this.Zn()];if(this.buffer.size<this.Jn)this.buffer=this.buffer.add(te);else{const ee=this.buffer.last();__PRIVATE_bufferEntryComparator(te,ee)<0&&(this.buffer=this.buffer.delete(ee).add(te))}}get maxValue(){return this.buffer.last()[0]}}class __PRIVATE_LruScheduler{constructor(ee,te,ne){this.garbageCollector=ee,this.asyncQueue=te,this.localStore=ne,this.er=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.tr(6e4)}stop(){this.er&&(this.er.cancel(),this.er=null)}get started(){return null!==this.er}tr(ee){__PRIVATE_logDebug(Cr,`Garbage collection scheduled in ${ee}ms`),this.er=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",ee,(async()=>{this.er=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(ee){__PRIVATE_isIndexedDbTransactionError(ee)?__PRIVATE_logDebug(Cr,"Ignoring IndexedDB error during garbage collection: ",ee):await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}await this.tr(3e5)}))}}class __PRIVATE_LruGarbageCollectorImpl{constructor(ee,te){this.nr=ee,this.params=te}calculateTargetCount(ee,te){return this.nr.rr(ee).next((ee=>Math.floor(te/100*ee)))}nthSequenceNumber(ee,te){if(0===te)return PersistencePromise.resolve(__PRIVATE_ListenSequence.yn);const ne=new __PRIVATE_RollingSequenceNumberBuffer(te);return this.nr.forEachTarget(ee,(ee=>ne.Xn(ee.sequenceNumber))).next((()=>this.nr.ir(ee,(ee=>ne.Xn(ee))))).next((()=>ne.maxValue))}removeTargets(ee,te,ne){return this.nr.removeTargets(ee,te,ne)}removeOrphanedDocuments(ee,te){return this.nr.removeOrphanedDocuments(ee,te)}collect(ee,te){return-1===this.params.cacheSizeCollectionThreshold?(__PRIVATE_logDebug("LruGarbageCollector","Garbage collection skipped; disabled"),PersistencePromise.resolve(cr)):this.getCacheSize(ee).next((ne=>ne<this.params.cacheSizeCollectionThreshold?(__PRIVATE_logDebug("LruGarbageCollector",`Garbage collection skipped; Cache size ${ne} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),cr):this.sr(ee,te)))}getCacheSize(ee){return this.nr.getCacheSize(ee)}sr(ee,te){let ne,re,se,ie,ae,oe,ue;const le=Date.now();return this.calculateTargetCount(ee,this.params.percentileToCollect).next((te=>(te>this.params.maximumSequenceNumbersToCollect?(__PRIVATE_logDebug("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${te}`),re=this.params.maximumSequenceNumbersToCollect):re=te,ie=Date.now(),this.nthSequenceNumber(ee,re)))).next((re=>(ne=re,ae=Date.now(),this.removeTargets(ee,ne,te)))).next((te=>(se=te,oe=Date.now(),this.removeOrphanedDocuments(ee,ne)))).next((ee=>(ue=Date.now(),__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${ie-le}ms\n\tDetermined least recently used ${re} in `+(ae-ie)+"ms\n"+`\tRemoved ${se} targets in `+(oe-ae)+"ms\n"+`\tRemoved ${ee} documents in `+(ue-oe)+"ms\n"+`Total Duration: ${ue-le}ms`),PersistencePromise.resolve({didRun:!0,sequenceNumbersCollected:re,targetsRemoved:se,documentsRemoved:ee}))))}}function __PRIVATE_newLruGarbageCollector(ee,te){return new __PRIVATE_LruGarbageCollectorImpl(ee,te)}const mr="firestore.googleapis.com",fr=!0;class FirestoreSettingsImpl{constructor(ee){if(void 0===ee.host){if(void 0!==ee.ssl)throw new s(gn.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=mr,this.ssl=fr}else this.host=ee.host,this.ssl=ee.ssl??fr;if(this.isUsingEmulator=void 0!==ee.emulatorOptions,this.credentials=ee.credentials,this.ignoreUndefinedProperties=!!ee.ignoreUndefinedProperties,this.localCache=ee.localCache,ee._customHeaders&&(this._customHeaders={...ee._customHeaders}),void 0===ee.cacheSizeBytes)this.cacheSizeBytes=_r;else{if(-1!==ee.cacheSizeBytes&&ee.cacheSizeBytes<pr)throw new s(gn.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=ee.cacheSizeBytes}if(__PRIVATE_validateIsNotUsedTogether("experimentalForceLongPolling",ee.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",ee.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!ee.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===ee.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!ee.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=__PRIVATE_cloneLongPollingOptions(ee.experimentalLongPollingOptions??{}),function __PRIVATE_validateLongPollingOptions(ee){if(void 0!==ee.timeoutSeconds){if(isNaN(ee.timeoutSeconds))throw new s(gn.INVALID_ARGUMENT,`invalid long polling timeout: ${ee.timeoutSeconds} (must not be NaN)`);if(ee.timeoutSeconds<5)throw new s(gn.INVALID_ARGUMENT,`invalid long polling timeout: ${ee.timeoutSeconds} (minimum allowed value is 5)`);if(ee.timeoutSeconds>30)throw new s(gn.INVALID_ARGUMENT,`invalid long polling timeout: ${ee.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!ee.useFetchStreams,void 0!==ee.grpcFlowControlWindow){if("number"!=typeof ee.grpcFlowControlWindow||ee.grpcFlowControlWindow<=0||ee.grpcFlowControlWindow>2147483647||!Number.isInteger(ee.grpcFlowControlWindow))throw new s(gn.INVALID_ARGUMENT,"grpcFlowControlWindow must be a positive integer and cannot exceed 2147483647");this.grpcFlowControlWindow=ee.grpcFlowControlWindow}}isEqual(ee){return this.host===ee.host&&this.ssl===ee.ssl&&this.credentials===ee.credentials&&this.cacheSizeBytes===ee.cacheSizeBytes&&this.experimentalForceLongPolling===ee.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===ee.experimentalAutoDetectLongPolling&&function __PRIVATE_longPollingOptionsEqual(ee,te){return ee.timeoutSeconds===te.timeoutSeconds}(this.experimentalLongPollingOptions,ee.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===ee.ignoreUndefinedProperties&&this.useFetchStreams===ee.useFetchStreams&&this.grpcFlowControlWindow===ee.grpcFlowControlWindow&&function __PRIVATE_customHeadersEqual(ee,te){if(ee===te)return!0;if(!ee||!te)return!1;const ne=Object.keys(ee),re=Object.keys(te);if(ne.length!==re.length)return!1;for(const re of ne)if(ee[re]!==te[re])return!1;return!0}(this._customHeaders,ee._customHeaders)}}let gr=class Firestore{constructor(ee,te,ne,re){this._authCredentials=ee,this._appCheckCredentials=te,this._databaseId=ne,this._app=re,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new FirestoreSettingsImpl({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new s(gn.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(ee){if(this._settingsFrozen)throw new s(gn.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new FirestoreSettingsImpl(ee),this._emulatorOptions=ee.emulatorOptions||{},void 0!==ee.credentials&&(this._authCredentials=function __PRIVATE_makeAuthCredentialsProvider(ee){if(!ee)return new __PRIVATE_EmptyAuthCredentialsProvider;switch(ee.type){case"firstParty":return new __PRIVATE_FirstPartyAuthCredentialsProvider(ee.sessionIndex||"0",ee.iamToken||null,ee.authTokenFactory||null);case"provider":return ee.client;default:throw new s(gn.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(ee.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 function __PRIVATE_removeComponents(ee){const te=lr.get(ee);te&&(__PRIVATE_logDebug(Br,"Removing Datastore"),lr.delete(ee),te.terminate())}(this),Promise.resolve()}};function connectFirestoreEmulator(ee,te,ne,re={}){ee=ra(ee,gr);const se=isCloudWorkstation(te),ie=ee._getSettings(),ae={...ie,emulatorOptions:ee._getEmulatorOptions()},oe=`${te}:${ne}`;se&&pingServer(`https://${oe}`),ie.host!==mr&&ie.host!==oe&&__PRIVATE_logWarn("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");const ue={...ie,host:oe,ssl:se,emulatorOptions:re};if(!deepEqual(ue,ae)&&(ee._setSettings(ue),re.mockUserToken)){let te,ne;if("string"==typeof re.mockUserToken)te=re.mockUserToken,ne=User.MOCK_USER;else{te=function createMockUserToken(ee,te){if(ee.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const ne=te||"demo-project",re=ee.iat||0,se=ee.sub||ee.user_id;if(!se)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const ie={iss:`https://securetoken.google.com/${ne}`,aud:ne,iat:re,exp:re+3600,auth_time:re,sub:se,user_id:se,firebase:{sign_in_provider:"custom",identities:{}},...ee};return[base64urlEncodeWithoutPadding(JSON.stringify({alg:"none",type:"JWT"})),base64urlEncodeWithoutPadding(JSON.stringify(ie)),""].join(".")}(re.mockUserToken,ee._app?.options.projectId);const se=re.mockUserToken.sub||re.mockUserToken.user_id;if(!se)throw new s(gn.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");ne=new User(se)}ee._authCredentials=new __PRIVATE_EmulatorAuthCredentialsProvider(new __PRIVATE_OAuthToken(te,ne))}}class Query{constructor(ee,te,ne){this.converter=te,this._query=ne,this.type="query",this.firestore=ee}withConverter(ee){return new Query(this.firestore,ee,this._query)}}class X{constructor(ee,te,ne){this.converter=te,this._key=ne,this.type="document",this.firestore=ee}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new ea(this.firestore,this.converter,this._key.path.popLast())}withConverter(ee){return new X(this.firestore,ee,this._key)}toJSON(){return{type:X._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(ee,te,ne){if(__PRIVATE_validateJSON(te,X._jsonSchema))return new X(ee,ne||null,new DocumentKey(ResourcePath.fromString(te.referencePath)))}}X._jsonSchemaVersion="firestore/documentReference/1.0",X._jsonSchema={type:property("string",X._jsonSchemaVersion),referencePath:property("string")};class ea extends Query{constructor(ee,te,ne){super(ee,te,__PRIVATE_newQueryForPath(ne)),this._path=ne,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const ee=this._path.popLast();return ee.isEmpty()?null:new X(this.firestore,null,new DocumentKey(ee))}withConverter(ee){return new ea(this.firestore,ee,this._path)}}function z(ee){return ee instanceof ea}function collection(ee,te,...ne){if(ee=getModularInstance(ee),__PRIVATE_validateNonEmptyArgument("collection","path",te),ee instanceof gr){const re=ResourcePath.fromString(te,...ne);return __PRIVATE_validateCollectionPath(re),new ea(ee,null,re)}{if(!(ee instanceof X||ee instanceof ea))throw new s(gn.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const re=ee._path.child(ResourcePath.fromString(te,...ne));return __PRIVATE_validateCollectionPath(re),new ea(ee.firestore,null,re)}}function collectionGroup(ee,te){if(ee=ra(ee,gr),__PRIVATE_validateNonEmptyArgument("collectionGroup","collection id",te),te.indexOf("/")>=0)throw new s(gn.INVALID_ARGUMENT,`Invalid collection ID '${te}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Query(ee,null,function __PRIVATE_newQueryForCollectionGroup(ee){return new __PRIVATE_QueryImpl(ResourcePath.emptyPath(),ee)}(te))}function doc(ee,te,...ne){if(ee=getModularInstance(ee),1===arguments.length&&(te=__PRIVATE_AutoId.newId()),__PRIVATE_validateNonEmptyArgument("doc","path",te),ee instanceof gr){const re=ResourcePath.fromString(te,...ne);return __PRIVATE_validateDocumentPath(re),new X(ee,null,new DocumentKey(re))}{if(!(ee instanceof X||ee instanceof ea))throw new s(gn.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const re=ee._path.child(ResourcePath.fromString(te,...ne));return __PRIVATE_validateDocumentPath(re),new X(ee.firestore,ee instanceof ea?ee.converter:null,new DocumentKey(re))}}function ia(ee,te){return ee=getModularInstance(ee),te=getModularInstance(te),(ee instanceof X||ee instanceof ea)&&(te instanceof X||te instanceof ea)&&ee.firestore===te.firestore&&ee.path===te.path&&ee.converter===te.converter}function queryEqual(ee,te){return ee=getModularInstance(ee),te=getModularInstance(te),ee instanceof Query&&te instanceof Query&&ee.firestore===te.firestore&&__PRIVATE_queryEquals(ee._query,te._query)&&ee.converter===te.converter}class n{constructor(ee){this._values=(ee||[]).map((ee=>ee))}toArray(){return this._values.map((ee=>ee))}isEqual(ee){return function __PRIVATE_isPrimitiveArrayEqual(ee,te){if(ee.length!==te.length)return!1;for(let ne=0;ne<ee.length;++ne)if(ee[ne]!==te[ne])return!1;return!0}(this._values,ee._values)}toJSON(){return{type:n._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(ee){if(__PRIVATE_validateJSON(ee,n._jsonSchema)){if(Array.isArray(ee.vectorValues)&&ee.vectorValues.every((ee=>"number"==typeof ee)))return new n(ee.vectorValues);throw new s(gn.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}n._jsonSchemaVersion="firestore/vectorValue/1.0",n._jsonSchema={type:property("string",n._jsonSchemaVersion),vectorValues:property("object")};const Tr=/^__.*__$/;class ParsedSetData{constructor(ee,te,ne){this.data=ee,this.fieldMask=te,this.fieldTransforms=ne}toMutation(ee,te){return null!==this.fieldMask?new __PRIVATE_PatchMutation(ee,this.data,this.fieldMask,te,this.fieldTransforms):new __PRIVATE_SetMutation(ee,this.data,te,this.fieldTransforms)}}class ParsedUpdateData{constructor(ee,te,ne){this.data=ee,this.fieldMask=te,this.fieldTransforms=ne}toMutation(ee,te){return new __PRIVATE_PatchMutation(ee,this.data,this.fieldMask,te,this.fieldTransforms)}}function __PRIVATE_isWrite(ee){switch(ee){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw l(40011,{dataSource:ee})}}class ParseContextImpl{constructor(ee,te,ne,re,se,ie){this.settings=ee,this.databaseId=te,this.serializer=ne,this.ignoreUndefinedProperties=re,void 0===se&&this.validatePath(),this.fieldTransforms=se||[],this.fieldMask=ie||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(ee){return new ParseContextImpl({...this.settings,...ee},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(ee){const te=this.path?.child(ee),ne=this.contextWith({path:te,arrayElement:!1});return ne.validatePathSegment(ee),ne}childContextForFieldPath(ee){const te=this.path?.child(ee),ne=this.contextWith({path:te,arrayElement:!1});return ne.validatePath(),ne}childContextForArray(ee){return this.contextWith({path:void 0,arrayElement:!0})}createError(ee){return createError(ee,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(ee){return void 0!==this.fieldMask.find((te=>ee.isPrefixOf(te)))||void 0!==this.fieldTransforms.find((te=>ee.isPrefixOf(te.field)))}validatePath(){if(this.path)for(let ee=0;ee<this.path.length;ee++)this.validatePathSegment(this.path.get(ee))}validatePathSegment(ee){if(0===ee.length)throw this.createError("Document fields must not be empty");if(__PRIVATE_isWrite(this.dataSource)&&Tr.test(ee))throw this.createError('Document fields cannot begin and end with "__"')}}class UserDataReader{constructor(ee,te,ne){this.databaseId=ee,this.ignoreUndefinedProperties=te,this.serializer=ne||__PRIVATE_newSerializer(ee)}createContext(ee,te,ne,re=!1){return new ParseContextImpl({dataSource:ee,methodName:te,targetDoc:ne,path:An.emptyPath(),arrayElement:!1,hasConverter:re},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function la(ee){const te=ee._freezeSettings(),ne=__PRIVATE_newSerializer(ee._databaseId);return new UserDataReader(ee._databaseId,!!te.ignoreUndefinedProperties,ne)}function __PRIVATE_parseSetData(ee,te,ne,re,se,ie={}){const ae=ee.createContext(ie.merge||ie.mergeFields?2:0,te,ne,se);__PRIVATE_validatePlainObject("Data must be an object, but it was:",ae,re);const oe=__PRIVATE_parseObject(re,ae);let ue,Be;if(ie.merge)ue=new FieldMask(ae.fieldMask),Be=ae.fieldTransforms;else if(ie.mergeFields){const ee=[];for(const re of ie.mergeFields){const se=ta(te,re,ne);if(!ae.contains(se))throw new s(gn.INVALID_ARGUMENT,`Field '${se}' is specified in your field mask but missing from your input data.`);__PRIVATE_fieldMaskContains(ee,se)||ee.push(se)}ue=new FieldMask(ee),Be=ae.fieldTransforms.filter((ee=>ue.covers(ee.field)))}else ue=null,Be=ae.fieldTransforms;return new ParsedSetData(new ObjectValue(oe),ue,Be)}class __PRIVATE_DeleteFieldValueImpl extends FieldValue{_toFieldTransform(ee){if(2!==ee.dataSource)throw 1===ee.dataSource?ee.createError(`${this._methodName}() can only appear at the top level of your update data`):ee.createError(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return ee.fieldMask.push(ee.path),null}isEqual(ee){return ee instanceof __PRIVATE_DeleteFieldValueImpl}}function __PRIVATE_createSentinelChildContext(ee,te,ne){return new ParseContextImpl({dataSource:3,targetDoc:te.settings.targetDoc,methodName:ee._methodName,arrayElement:ne},te.databaseId,te.serializer,te.ignoreUndefinedProperties)}class __PRIVATE_ServerTimestampFieldValueImpl extends FieldValue{_toFieldTransform(ee){return new FieldTransform(ee.path,new __PRIVATE_ServerTimestampTransform)}isEqual(ee){return ee instanceof __PRIVATE_ServerTimestampFieldValueImpl}}class __PRIVATE_ArrayUnionFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this._r=te}_toFieldTransform(ee){const te=__PRIVATE_createSentinelChildContext(this,ee,!0),ne=this._r.map((ee=>__PRIVATE_parseData(ee,te))),re=new __PRIVATE_ArrayUnionTransformOperation(ne);return new FieldTransform(ee.path,re)}isEqual(ee){return ee instanceof __PRIVATE_ArrayUnionFieldValueImpl&&deepEqual(this._r,ee._r)}}class __PRIVATE_ArrayRemoveFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this._r=te}_toFieldTransform(ee){const te=__PRIVATE_createSentinelChildContext(this,ee,!0),ne=this._r.map((ee=>__PRIVATE_parseData(ee,te))),re=new __PRIVATE_ArrayRemoveTransformOperation(ne);return new FieldTransform(ee.path,re)}isEqual(ee){return ee instanceof __PRIVATE_ArrayRemoveFieldValueImpl&&deepEqual(this._r,ee._r)}}class __PRIVATE_NumericIncrementFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this.ar=te}_toFieldTransform(ee){const te=new __PRIVATE_NumericIncrementTransformOperation(ee.serializer,toNumber(ee.serializer,this.ar));return new FieldTransform(ee.path,te)}isEqual(ee){return ee instanceof __PRIVATE_NumericIncrementFieldValueImpl&&(this.ar===ee.ar||Number.isNaN(this.ar)&&Number.isNaN(ee.ar))}}class __PRIVATE_NumericMinimumFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this.ar=te}_toFieldTransform(ee){const te=new __PRIVATE_NumericMinimumTransformOperation(ee.serializer,toNumber(ee.serializer,this.ar));return new FieldTransform(ee.path,te)}isEqual(ee){return ee instanceof __PRIVATE_NumericMinimumFieldValueImpl&&(this.ar===ee.ar||Number.isNaN(this.ar)&&Number.isNaN(ee.ar))}}class __PRIVATE_NumericMaximumFieldValueImpl extends FieldValue{constructor(ee,te){super(ee),this.ar=te}_toFieldTransform(ee){const te=new __PRIVATE_NumericMaximumTransformOperation(ee.serializer,toNumber(ee.serializer,this.ar));return new FieldTransform(ee.path,te)}isEqual(ee){return ee instanceof __PRIVATE_NumericMaximumFieldValueImpl&&(this.ar===ee.ar||Number.isNaN(this.ar)&&Number.isNaN(ee.ar))}}function __PRIVATE_parseUpdateData(ee,te,ne,re){const se=ee.createContext(1,te,ne);__PRIVATE_validatePlainObject("Data must be an object, but it was:",se,re);const ie=[],ae=ObjectValue.empty();forEach(re,((ee,re)=>{const oe=__PRIVATE_fieldPathFromDotSeparatedString(te,ee,ne);re=getModularInstance(re);const ue=se.childContextForFieldPath(oe);if(re instanceof __PRIVATE_DeleteFieldValueImpl)ie.push(oe);else{const ee=__PRIVATE_parseData(re,ue);null!=ee&&(ie.push(oe),ae.set(oe,ee))}}));const oe=new FieldMask(ie);return new ParsedUpdateData(ae,oe,se.fieldTransforms)}function __PRIVATE_parseUpdateVarargs(ee,te,ne,re,se,ie){const ae=ee.createContext(1,te,ne),oe=[ta(te,re,ne)],ue=[se];if(ie.length%2!=0)throw new s(gn.INVALID_ARGUMENT,`Function ${te}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let ee=0;ee<ie.length;ee+=2)oe.push(ta(te,ie[ee])),ue.push(ie[ee+1]);const Be=[],le=ObjectValue.empty();for(let ee=oe.length-1;ee>=0;--ee)if(!__PRIVATE_fieldMaskContains(Be,oe[ee])){const te=oe[ee];let ne=ue[ee];ne=getModularInstance(ne);const re=ae.childContextForFieldPath(te);if(ne instanceof __PRIVATE_DeleteFieldValueImpl)Be.push(te);else{const ee=__PRIVATE_parseData(ne,re);null!=ee&&(Be.push(te),le.set(te,ee))}}const ce=new FieldMask(Be);return new ParsedUpdateData(le,ce,ae.fieldTransforms)}function __PRIVATE_parseQueryValue(ee,te,ne,re=!1){return __PRIVATE_parseData(ne,ee.createContext(re?4:3,te))}function __PRIVATE_parseData(ee,te,ne){if(__PRIVATE_looksLikeJsonObject(ee=getModularInstance(ee)))return __PRIVATE_validatePlainObject("Unsupported field value:",te,ee),__PRIVATE_parseObject(ee,te);if(ee instanceof FieldValue)return function __PRIVATE_parseSentinelFieldValue(ee,te){if(!__PRIVATE_isWrite(te.dataSource))throw te.createError(`${ee._methodName}() can only be used with update() and set()`);if(!te.path)throw te.createError(`${ee._methodName}() is not currently supported inside arrays`);const ne=ee._toFieldTransform(te);ne&&te.fieldTransforms.push(ne)}(ee,te),null;if(void 0===ee&&te.ignoreUndefinedProperties)return null;if(te.path&&te.fieldMask.push(te.path),ee instanceof Array){if(te.settings.arrayElement&&4!==te.dataSource)throw te.createError("Nested arrays are not supported");return function __PRIVATE_parseArray(ee,te){const ne=[];let re=0;for(const se of ee){let ee=__PRIVATE_parseData(se,te.childContextForArray(re));null==ee&&(ee={nullValue:"NULL_VALUE"}),ne.push(ee),re++}return{arrayValue:{values:ne}}}(ee,te)}return function __PRIVATE_parseScalarValue(ee,te){if(null===(ee=getModularInstance(ee)))return{nullValue:"NULL_VALUE"};if("number"==typeof ee)return toNumber(te.serializer,ee);if("boolean"==typeof ee)return{booleanValue:ee};if("string"==typeof ee)return{stringValue:ee};if(ee instanceof Date){const ne=Timestamp.fromDate(ee);return{timestampValue:toTimestamp(te.serializer,ne)}}if(ee instanceof Timestamp){const ne=new Timestamp(ee.seconds,1e3*Math.floor(ee.nanoseconds/1e3));return{timestampValue:toTimestamp(te.serializer,ne)}}if(ee instanceof GeoPoint)return{geoPointValue:{latitude:ee.latitude,longitude:ee.longitude}};if(ee instanceof Bytes)return{bytesValue:__PRIVATE_toBytes(te.serializer,ee._byteString)};if(ee instanceof X){const ne=te.databaseId,re=ee.firestore._databaseId;if(!re.isEqual(ne))throw te.createError(`Document reference is for database ${re.projectId}/${re.database} but should be for database ${ne.projectId}/${ne.database}`);return{referenceValue:__PRIVATE_toResourceName(ee.firestore._databaseId||te.databaseId,ee._key.path)}}if(ee instanceof n)return function __PRIVATE_parseVectorValue(ee,te){const ne=ee instanceof n?ee.toArray():ee,re={fields:{[xn]:{stringValue:Nn},[Ln]:{arrayValue:{values:ne.map((ee=>{if("number"!=typeof ee)throw te.createError("VectorValues must only contain numeric values.");return __PRIVATE_toDouble(te.serializer,ee)}))}}}};return{mapValue:re}}(ee,te);if(__PRIVATE_isProtoValueSerializable(ee))return ee._toProto(te.serializer);throw te.createError(`Unsupported field value: ${__PRIVATE_valueDescription(ee)}`)}(ee,te)}function __PRIVATE_parseObject(ee,te){const ne={};return isEmpty(ee)?te.path&&te.path.length>0&&te.fieldMask.push(te.path):forEach(ee,((ee,re)=>{const se=__PRIVATE_parseData(re,te.childContextForField(ee));null!=se&&(ne[ee]=se)})),{mapValue:{fields:ne}}}function __PRIVATE_looksLikeJsonObject(ee){return!("object"!=typeof ee||null===ee||ee instanceof Array||ee instanceof Date||ee instanceof Timestamp||ee instanceof GeoPoint||ee instanceof Bytes||ee instanceof X||ee instanceof FieldValue||ee instanceof n||__PRIVATE_isProtoValueSerializable(ee))}function __PRIVATE_validatePlainObject(ee,te,ne){if(!__PRIVATE_looksLikeJsonObject(ne)||!p(ne)){const re=__PRIVATE_valueDescription(ne);throw"an object"===re?te.createError(ee+" a custom object"):te.createError(ee+" "+re)}}function ta(ee,te,ne){if((te=getModularInstance(te))instanceof FieldPath)return te._internalPath;if("string"==typeof te)return __PRIVATE_fieldPathFromDotSeparatedString(ee,te);throw createError("Field path arguments must be of type string or ",ee,!1,void 0,ne)}const Ir=new RegExp("[~\\*/\\[\\]]");function __PRIVATE_fieldPathFromDotSeparatedString(ee,te,ne){if(te.search(Ir)>=0)throw createError(`Invalid field path (${te}). Paths must not contain '~', '*', '/', '[', or ']'`,ee,!1,void 0,ne);try{return new FieldPath(...te.split("."))._internalPath}catch(re){throw createError(`Invalid field path (${te}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,ee,!1,void 0,ne)}}function createError(ee,te,ne,re,se){const ie=re&&!re.isEmpty(),ae=void 0!==se;let oe=`Function ${te}() called with invalid data`;ne&&(oe+=" (via `toFirestore()`)"),oe+=". ";let ue="";return(ie||ae)&&(ue+=" (found",ie&&(ue+=` in field ${re}`),ae&&(ue+=` in document ${se}`),ue+=")"),new s(gn.INVALID_ARGUMENT,oe+ee+ue)}function __PRIVATE_fieldMaskContains(ee,te){return ee.some((ee=>ee.isEqual(te)))}function __PRIVATE_isUserData(ee){return"function"==typeof ee._readUserData}class OptionsUtil{constructor(ee){this.optionDefinitions=ee}_getKnownOptions(ee,te){const ne=ObjectValue.empty();for(const re in this.optionDefinitions)if(this.optionDefinitions.hasOwnProperty(re)){const se=this.optionDefinitions[re];if(re in ee){const ie=ee[re];let ae;se.nestedOptions&&p(ie)?ae={mapValue:{fields:new OptionsUtil(se.nestedOptions).getOptionsProto(te,ie)}}:ie&&(ae=__PRIVATE_parseData(ie,te)??void 0),ae&&ne.set(An.fromServerFormat(se.serverName),ae)}}return ne}getOptionsProto(ee,te,ne){const re=this._getKnownOptions(te,ee);if(ne){const te=new Map(__PRIVATE_mapToArray(ne,((te,ne)=>[An.fromServerFormat(ne),void 0!==te?__PRIVATE_parseData(te,ee):null])));re.setAll(te)}return re.value.mapValue.fields??{}}}function u(ee){return"object"==typeof ee&&null!==ee&&!!("nullValue"in ee&&(null===ee.nullValue||"NULL_VALUE"===ee.nullValue)||"booleanValue"in ee&&(null===ee.booleanValue||"boolean"==typeof ee.booleanValue)||"integerValue"in ee&&(null===ee.integerValue||"number"==typeof ee.integerValue||"string"==typeof ee.integerValue)||"doubleValue"in ee&&(null===ee.doubleValue||"number"==typeof ee.doubleValue)||"timestampValue"in ee&&(null===ee.timestampValue||function __PRIVATE_isITimestamp(ee){return"object"==typeof ee&&null!==ee&&"seconds"in ee&&(null===ee.seconds||"number"==typeof ee.seconds||"string"==typeof ee.seconds)&&"nanos"in ee&&(null===ee.nanos||"number"==typeof ee.nanos)}(ee.timestampValue))||"stringValue"in ee&&(null===ee.stringValue||"string"==typeof ee.stringValue)||"bytesValue"in ee&&(null===ee.bytesValue||ee.bytesValue instanceof Uint8Array)||"referenceValue"in ee&&(null===ee.referenceValue||"string"==typeof ee.referenceValue)||"geoPointValue"in ee&&(null===ee.geoPointValue||function __PRIVATE_isILatLng(ee){return"object"==typeof ee&&null!==ee&&"latitude"in ee&&(null===ee.latitude||"number"==typeof ee.latitude)&&"longitude"in ee&&(null===ee.longitude||"number"==typeof ee.longitude)}(ee.geoPointValue))||"arrayValue"in ee&&(null===ee.arrayValue||function __PRIVATE_isIArrayValue(ee){return"object"==typeof ee&&null!==ee&&!(!("values"in ee)||null!==ee.values&&!Array.isArray(ee.values))}(ee.arrayValue))||"mapValue"in ee&&(null===ee.mapValue||function __PRIVATE_isIMapValue(ee){return"object"==typeof ee&&null!==ee&&!(!("fields"in ee)||null!==ee.fields&&!p(ee.fields))}(ee.mapValue))||"fieldReferenceValue"in ee&&(null===ee.fieldReferenceValue||"string"==typeof ee.fieldReferenceValue)||"functionValue"in ee&&(null===ee.functionValue||function __PRIVATE_isIFunction(ee){return"object"==typeof ee&&null!==ee&&!(!("name"in ee)||null!==ee.name&&"string"!=typeof ee.name||!("args"in ee)||null!==ee.args&&!Array.isArray(ee.args))}(ee.functionValue))||"pipelineValue"in ee&&(null===ee.pipelineValue||function __PRIVATE_isIPipeline(ee){return"object"==typeof ee&&null!==ee&&!(!("stages"in ee)||null!==ee.stages&&!Array.isArray(ee.stages))}(ee.pipelineValue)))}function deleteField(){return new __PRIVATE_DeleteFieldValueImpl("deleteField")}function serverTimestamp(){return new __PRIVATE_ServerTimestampFieldValueImpl("serverTimestamp")}function arrayUnion(...ee){return new __PRIVATE_ArrayUnionFieldValueImpl("arrayUnion",ee)}function arrayRemove(...ee){return new __PRIVATE_ArrayRemoveFieldValueImpl("arrayRemove",ee)}function increment(ee){return new __PRIVATE_NumericIncrementFieldValueImpl("increment",ee)}function minimum$1(ee){return new __PRIVATE_NumericMinimumFieldValueImpl("minimum",ee)}function maximum$1(ee){return new __PRIVATE_NumericMaximumFieldValueImpl("maximum",ee)}function r(ee){return new n(ee)}function __PRIVATE_valueToDefaultExpr(ee){let te;return ee instanceof t?ee:(te=p(ee)?__PRIVATE__map(ee):ee instanceof Array?b(ee):m(ee,void 0),te)}function __PRIVATE_vectorToExpr(ee){if(ee instanceof t)return ee;if(ee instanceof n)return i(ee);if(Array.isArray(ee))return i(r(ee));throw new Error("Unsupported value: "+typeof ee)}function __PRIVATE_fieldOrExpression$1(ee){return __PRIVATE_isString$1(ee)?e(ee):__PRIVATE_valueToDefaultExpr(ee)}class t{constructor(){this._protoValueType="ProtoValue"}add(ee){return new x("add",[this,__PRIVATE_valueToDefaultExpr(ee)],"add")}asBoolean(){if(this instanceof BooleanExpression)return this;if(this instanceof Constant)return new __PRIVATE_BooleanConstant(this);if(this instanceof o)return new __PRIVATE_BooleanField(this);if(this instanceof x)return new __PRIVATE_BooleanFunctionExpression(this);throw new s("invalid-argument",`Conversion of type ${typeof this} to BooleanExpression not supported.`)}subtract(ee){return new x("subtract",[this,__PRIVATE_valueToDefaultExpr(ee)],"subtract")}multiply(ee){return new x("multiply",[this,__PRIVATE_valueToDefaultExpr(ee)],"multiply")}divide(ee){return new x("divide",[this,__PRIVATE_valueToDefaultExpr(ee)],"divide")}mod(ee){return new x("mod",[this,__PRIVATE_valueToDefaultExpr(ee)],"mod")}equal(ee){return new x("equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"equal").asBoolean()}notEqual(ee){return new x("not_equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"notEqual").asBoolean()}lessThan(ee){return new x("less_than",[this,__PRIVATE_valueToDefaultExpr(ee)],"lessThan").asBoolean()}lessThanOrEqual(ee){return new x("less_than_or_equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"lessThanOrEqual").asBoolean()}greaterThan(ee){return new x("greater_than",[this,__PRIVATE_valueToDefaultExpr(ee)],"greaterThan").asBoolean()}greaterThanOrEqual(ee){return new x("greater_than_or_equal",[this,__PRIVATE_valueToDefaultExpr(ee)],"greaterThanOrEqual").asBoolean()}arrayConcat(ee,...te){const ne=[ee,...te].map((ee=>__PRIVATE_valueToDefaultExpr(ee)));return new x("array_concat",[this,...ne],"arrayConcat")}arrayContains(ee){return new x("array_contains",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayContains").asBoolean()}arrayContainsAll(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"arrayContainsAll"):ee;return new x("array_contains_all",[this,te],"arrayContainsAll").asBoolean()}arrayContainsAny(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"arrayContainsAny"):ee;return new x("array_contains_any",[this,te],"arrayContainsAny").asBoolean()}arrayReverse(){return new x("array_reverse",[this])}arrayLength(){return new x("array_length",[this],"arrayLength")}equalAny(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"equalAny"):ee;return new x("equal_any",[this,te],"equalAny").asBoolean()}notEqualAny(ee){const te=Array.isArray(ee)?new __PRIVATE_ListOfExprs(ee.map(__PRIVATE_valueToDefaultExpr),"notEqualAny"):ee;return new x("not_equal_any",[this,te],"notEqualAny").asBoolean()}exists(){return new x("exists",[this],"exists").asBoolean()}charLength(){return new x("char_length",[this],"charLength")}like(ee){return new x("like",[this,__PRIVATE_valueToDefaultExpr(ee)],"like").asBoolean()}regexContains(ee){return new x("regex_contains",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexContains").asBoolean()}regexFind(ee){return new x("regex_find",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexFind")}regexFindAll(ee){return new x("regex_find_all",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexFindAll")}regexMatch(ee){return new x("regex_match",[this,__PRIVATE_valueToDefaultExpr(ee)],"regexMatch").asBoolean()}stringContains(ee){return new x("string_contains",[this,__PRIVATE_valueToDefaultExpr(ee)],"stringContains").asBoolean()}startsWith(ee){return new x("starts_with",[this,__PRIVATE_valueToDefaultExpr(ee)],"startsWith").asBoolean()}endsWith(ee){return new x("ends_with",[this,__PRIVATE_valueToDefaultExpr(ee)],"endsWith").asBoolean()}toLower(){return new x("to_lower",[this],"toLower")}toUpper(){return new x("to_upper",[this],"toUpper")}trim(ee){const te=[this];return ee&&te.push(__PRIVATE_valueToDefaultExpr(ee)),new x("trim",te,"trim")}ltrim(ee){const te=[this];return ee&&te.push(__PRIVATE_valueToDefaultExpr(ee)),new x("ltrim",te,"ltrim")}rtrim(ee){const te=[this];return ee&&te.push(__PRIVATE_valueToDefaultExpr(ee)),new x("rtrim",te,"rtrim")}type(){return new x("type",[this])}isType(ee){return new x("is_type",[this,i(ee)],"isType").asBoolean()}stringConcat(ee,...te){const ne=[ee,...te].map(__PRIVATE_valueToDefaultExpr);return new x("string_concat",[this,...ne],"stringConcat")}stringIndexOf(ee){return new x("string_index_of",[this,__PRIVATE_valueToDefaultExpr(ee)],"stringIndexOf")}stringRepeat(ee){return new x("string_repeat",[this,__PRIVATE_valueToDefaultExpr(ee)],"stringRepeat")}stringReplaceAll(ee,te){return new x("string_replace_all",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"stringReplaceAll")}stringReplaceOne(ee,te){return new x("string_replace_one",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"stringReplaceOne")}concat(ee,...te){const ne=[ee,...te].map(__PRIVATE_valueToDefaultExpr);return new x("concat",[this,...ne],"concat")}reverse(){return new x("reverse",[this],"reverse")}arrayFilter(ee,te){return new x("array_filter",[this,__PRIVATE_valueToDefaultExpr(ee),te],"arrayFilter")}arrayTransform(ee,te){return new x("array_transform",[this,__PRIVATE_valueToDefaultExpr(ee),te],"arrayTransform")}arrayTransformWithIndex(ee,te,ne){return new x("array_transform",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te),ne],"arrayTransformWithIndex")}arraySlice(ee,te){const ne=[this,__PRIVATE_valueToDefaultExpr(ee)];return void 0!==te&&ne.push(__PRIVATE_valueToDefaultExpr(te)),new x("array_slice",ne,"arraySlice")}arrayFirst(){return new x("array_first",[this],"arrayFirst")}arrayFirstN(ee){return new x("array_first_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayFirstN")}arrayLast(){return new x("array_last",[this],"arrayLast")}arrayLastN(ee){return new x("array_last_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayLastN")}arrayMaximum(){return new x("maximum",[this],"arrayMaximum")}arrayMaximumN(ee){return new x("maximum_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayMaximumN")}arrayMinimum(){return new x("minimum",[this],"arrayMinimum")}arrayMinimumN(ee){return new x("minimum_n",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayMinimumN")}arrayIndexOf(ee){return new x("array_index_of",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr("first")],"arrayIndexOf")}arrayLastIndexOf(ee){return new x("array_index_of",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr("last")],"arrayLastIndexOf")}arrayIndexOfAll(ee){return new x("array_index_of_all",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayIndexOfAll")}byteLength(){return new x("byte_length",[this],"byteLength")}ceil(){return new x("ceil",[this])}floor(){return new x("floor",[this])}abs(){return new x("abs",[this])}exp(){return new x("exp",[this])}mapGet(ee){return new x("map_get",[this,i(ee)],"mapGet")}mapSet(ee,te,...ne){const re=[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr)];return new x("map_set",re,"mapSet")}mapKeys(){return new x("map_keys",[this],"mapKeys")}mapValues(){return new x("map_values",[this],"mapValues")}mapEntries(){return new x("map_entries",[this],"mapEntries")}getField(ee){return new x("get_field",[this,__PRIVATE_valueToDefaultExpr(ee)],"get_field")}count(){return k._create("count",[this],"count")}sum(){return k._create("sum",[this],"sum")}average(){return k._create("average",[this],"average")}minimum(){return k._create("minimum",[this],"minimum")}maximum(){return k._create("maximum",[this],"maximum")}first(){return k._create("first",[this],"first")}last(){return k._create("last",[this],"last")}arrayAgg(){return k._create("array_agg",[this],"arrayAgg")}arrayAggDistinct(){return k._create("array_agg_distinct",[this],"arrayAggDistinct")}countDistinct(){return k._create("count_distinct",[this],"countDistinct")}logicalMaximum(ee,...te){const ne=[ee,...te];return new x("maximum",[this,...ne.map(__PRIVATE_valueToDefaultExpr)],"logicalMaximum")}logicalMinimum(ee,...te){const ne=[ee,...te];return new x("minimum",[this,...ne.map(__PRIVATE_valueToDefaultExpr)],"minimum")}vectorLength(){return new x("vector_length",[this],"vectorLength")}cosineDistance(ee){return new x("cosine_distance",[this,__PRIVATE_vectorToExpr(ee)],"cosineDistance")}dotProduct(ee){return new x("dot_product",[this,__PRIVATE_vectorToExpr(ee)],"dotProduct")}euclideanDistance(ee){return new x("euclidean_distance",[this,__PRIVATE_vectorToExpr(ee)],"euclideanDistance")}unixMicrosToTimestamp(){return new x("unix_micros_to_timestamp",[this],"unixMicrosToTimestamp")}timestampToUnixMicros(){return new x("timestamp_to_unix_micros",[this],"timestampToUnixMicros")}unixMillisToTimestamp(){return new x("unix_millis_to_timestamp",[this],"unixMillisToTimestamp")}timestampToUnixMillis(){return new x("timestamp_to_unix_millis",[this],"timestampToUnixMillis")}unixSecondsToTimestamp(){return new x("unix_seconds_to_timestamp",[this],"unixSecondsToTimestamp")}timestampToUnixSeconds(){return new x("timestamp_to_unix_seconds",[this],"timestampToUnixSeconds")}timestampAdd(ee,te){return new x("timestamp_add",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"timestampAdd")}timestampSubtract(ee,te){return new x("timestamp_subtract",[this,__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te)],"timestampSubtract")}timestampDiff(ee,te){return new x("timestamp_diff",[this,__PRIVATE_fieldOrExpression$1(ee),__PRIVATE_valueToDefaultExpr(te)],"timestampDiff")}timestampExtract(ee,te){const ne=[this,__PRIVATE_valueToDefaultExpr(ee)];return te&&ne.push(__PRIVATE_valueToDefaultExpr(te)),new x("timestamp_extract",ne,"timestampExtract")}documentId(){return new x("document_id",[this],"documentId")}parent(){return new x("parent",[this],"parent")}substring(ee,te){const ne=__PRIVATE_valueToDefaultExpr(ee);return new x("substring",void 0===te?[this,ne]:[this,ne,__PRIVATE_valueToDefaultExpr(te)],"substring")}arrayGet(ee){return new x("array_get",[this,__PRIVATE_valueToDefaultExpr(ee)],"arrayGet")}isError(){return new x("is_error",[this],"isError").asBoolean()}ifError(ee){const te=new x("if_error",[this,__PRIVATE_valueToDefaultExpr(ee)],"ifError");return ee instanceof BooleanExpression?te.asBoolean():te}isAbsent(){return new x("is_absent",[this],"isAbsent").asBoolean()}mapRemove(ee){return new x("map_remove",[this,__PRIVATE_valueToDefaultExpr(ee)],"mapRemove")}mapMerge(ee,...te){const ne=__PRIVATE_valueToDefaultExpr(ee),re=te.map(__PRIVATE_valueToDefaultExpr);return new x("map_merge",[this,ne,...re],"mapMerge")}pow(ee){return new x("pow",[this,__PRIVATE_valueToDefaultExpr(ee)])}trunc(ee){return void 0===ee?new x("trunc",[this]):new x("trunc",[this,__PRIVATE_valueToDefaultExpr(ee)],"trunc")}round(ee){return void 0===ee?new x("round",[this]):new x("round",[this,__PRIVATE_valueToDefaultExpr(ee)],"round")}collectionId(){return new x("collection_id",[this])}length(){return new x("length",[this])}ln(){return new x("ln",[this])}sqrt(){return new x("sqrt",[this])}stringReverse(){return new x("string_reverse",[this])}ifAbsent(ee){return new x("if_absent",[this,__PRIVATE_valueToDefaultExpr(ee)],"ifAbsent")}ifNull(ee){return new x("if_null",[this,__PRIVATE_valueToDefaultExpr(ee)],"ifNull")}coalesce(ee,...te){return new x("coalesce",[this,__PRIVATE_valueToDefaultExpr(ee),...te.map(__PRIVATE_valueToDefaultExpr)],"coalesce")}join(ee){return new x("join",[this,__PRIVATE_valueToDefaultExpr(ee)],"join")}log10(){return new x("log10",[this])}arraySum(){return new x("sum",[this])}split(ee){return new x("split",[this,__PRIVATE_valueToDefaultExpr(ee)])}timestampTruncate(ee,te){const ne=[this,__PRIVATE_valueToDefaultExpr(ee)];return te&&ne.push(__PRIVATE_valueToDefaultExpr(te)),new x("timestamp_trunc",ne)}ascending(){return ascending(this)}descending(){return descending(this)}as(ee){return new c(this,ee,"as")}}class k{constructor(ee,te){this.name=ee,this.params=te,this.exprType="AggregateFunction",this._protoValueType="ProtoValue"}static _create(ee,te,ne){const re=new k(ee,te);return re._methodName=ne,re}as(ee){return new AliasedAggregate(this,ee,"as")}_toProto(ee){return{functionValue:{name:this.name,args:this.params.map((te=>te._toProto(ee)))}}}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,this.params.forEach((te=>te._readUserData(ee)))}}class AliasedAggregate{constructor(ee,te,ne){this.aggregate=ee,this.alias=te,this._methodName=ne}_readUserData(ee){this.aggregate._readUserData(ee)}}class c{constructor(ee,te,ne){this.expr=ee,this.alias=te,this._methodName=ne,this.exprType="AliasedExpression",this.selectable=!0}_readUserData(ee){this.expr._readUserData(ee)}}class __PRIVATE_ListOfExprs extends t{constructor(ee,te){super(),this.ur=ee,this._methodName=te,this.expressionType="ListOfExpressions"}_toProto(ee){return{arrayValue:{values:this.ur.map((te=>te._toProto(ee)))}}}_readUserData(ee){this.ur.forEach((te=>te._readUserData(ee)))}}class o extends t{constructor(ee,te){super(),this.fieldPath=ee,this._methodName=te,this.expressionType="Field",this.selectable=!0}get _fieldPath(){return this.fieldPath}get fieldName(){return this.fieldPath.canonicalString()}get alias(){return this.fieldName}get expr(){return this}geoDistance(ee){return new x("geo_distance",[this,__PRIVATE_valueToDefaultExpr(ee)],"geoDistance")}_toProto(ee){return{fieldReferenceValue:this.fieldPath.canonicalString()}}_readUserData(ee){}}function e(ee){return G(ee,"field")}function G(ee,te){return new o("string"==typeof ee?Tn===ee?documentId$1()._internalPath:ta("field",ee):ee._internalPath,te)}class Constant extends t{constructor(ee,te){super(),this.value=ee,this._methodName=te,this.expressionType="Constant"}static _fromProto(ee){const te=new Constant(ee,void 0);return te._protoValue=ee,te}_toProto(ee){return __PRIVATE_hardAssert(void 0!==this._protoValue,237),this._protoValue}_getValue(){return this._protoValue}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,u(this._protoValue)||(this._protoValue=__PRIVATE_parseData(this.value,ee))}}function i(ee,te){return m(ee,"constant")}function m(ee,te){const ne=new Constant(ee,te);return"boolean"==typeof ee?new __PRIVATE_BooleanConstant(ne):ne}class MapValue extends t{constructor(ee,te){super(),this.cr=ee,this._methodName=te,this.expressionType="Constant"}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,this.cr.forEach((te=>{te._readUserData(ee)}))}_toProto(ee){return toMapValue(ee,this.cr)}}class x extends t{constructor(ee,te,ne,re){super(),this.name=ee,this.params=te,this.expressionType="Function",this._optionsProto=void 0,void 0!==ne&&(this._methodName=ne),void 0!==re&&(this._options=re)}get _optionsUtil(){return new OptionsUtil({})}_toProto(ee){const te={functionValue:{name:this.name,args:this.params.map((te=>te._toProto(ee)))}};return this._optionsProto&&(te.functionValue.options=this._optionsProto),te}_readUserData(ee){ee=this._methodName?ee.contextWith({methodName:this._methodName}):ee,this.params.forEach((te=>te._readUserData(ee))),this._options&&(this._optionsProto=this._optionsUtil.getOptionsProto(ee,this._options))}}class BooleanExpression extends t{get _methodName(){return this._expr._methodName}countIf(){return k._create("count_if",[this],"countIf")}not(){return new x("not",[this],"not").asBoolean()}conditional(ee,te){return new x("conditional",[this,ee,te],"conditional")}ifError(ee){const te=__PRIVATE_valueToDefaultExpr(ee),ne=new x("if_error",[this,te],"ifError");return te instanceof BooleanExpression?ne.asBoolean():ne}_toProto(ee){return this._expr._toProto(ee)}_readUserData(ee){this._expr._readUserData(ee)}}class __PRIVATE_BooleanFunctionExpression extends BooleanExpression{constructor(ee){super(),this._expr=ee,this.expressionType="Function"}}class __PRIVATE_BooleanConstant extends BooleanExpression{constructor(ee){super(),this._expr=ee,this.expressionType="Constant"}_getValue(){return this._expr._getValue()}}class __PRIVATE_BooleanField extends BooleanExpression{constructor(ee){super(),this._expr=ee,this.expressionType="Field"}}function h(ee){return __PRIVATE__map(ee)}function __PRIVATE__map(ee,te){const ne=[];for(const te in ee)if(Object.prototype.hasOwnProperty.call(ee,te)){const re=ee[te];ne.push(i(te)),ne.push(__PRIVATE_valueToDefaultExpr(re))}return new x("map",ne,"map")}function b(ee){return function __PRIVATE__array(ee,te){return new x("array",ee.map((ee=>__PRIVATE_valueToDefaultExpr(ee))),te)}(ee,"array")}function lessThan(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.lessThan(re)}function greaterThan(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.greaterThan(re)}function and$1(ee,te,...ne){return new x("and",[ee,te,...ne],"and").asBoolean()}function or$1(ee,te,...ne){return new x("or",[ee,te,...ne],"xor").asBoolean()}class __PRIVATE_VariableExpression extends t{constructor(ee){super(),this.name=ee,this.expressionType="Variable"}_toProto(ee){return{variableReferenceValue:this.name}}_readUserData(ee){}}class __PRIVATE_PipelineValueExpression extends t{constructor(ee){super(),this.pipeline=ee,this.expressionType="PipelineValue"}_toProto(ee){return __PRIVATE_toPipelineValue(this.pipeline._toProto(ee))}_readUserData(ee){this.pipeline._readUserData(ee)}}function q(ee){return new x("document_matches",[__PRIVATE_valueToDefaultExpr(ee)],"documentMatches").asBoolean()}function ascending(ee){return new Ordering(__PRIVATE_fieldOrExpression$1(ee),"ascending","ascending")}function descending(ee){return new Ordering(__PRIVATE_fieldOrExpression$1(ee),"descending","descending")}class Ordering{constructor(ee,te,ne){this.expr=ee,this.direction=te,this._methodName=ne,this._protoValueType="ProtoValue"}_toProto(ee){return{mapValue:{fields:{direction:__PRIVATE_toStringValue(this.direction),expression:this.expr._toProto(ee)}}}}_readUserData(ee){this.expr._readUserData(ee)}}function f(ee){const te=ee;return te.selectable&&__PRIVATE_isString$1(te.alias)&&j(te.expr)}function F(ee){const te=ee;return null!=te&&j(te.expr)&&("ascending"===te.direction||"descending"===te.direction)}function O(ee){const te=ee;return __PRIVATE_isString$1(te.alias)&&te.aggregate instanceof k}function j(ee){return ee instanceof t}function E(ee){return ee instanceof BooleanExpression}function T(ee){return ee instanceof c}function g(ee){return ee instanceof o}function S(ee){return __PRIVATE_isString$1(ee)?e(ee):ee}class Stage{constructor(ee){this.optionsProto=void 0,({rawOptions:this.rawOptions,...this.knownOptions}=ee)}_readUserData(ee){this.optionsProto=this._optionsUtil.getOptionsProto(ee,this.knownOptions,this.rawOptions)}_toProto(ee){return{name:this._name,options:this.optionsProto}}}class w extends Stage{get _name(){return"add_fields"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.fields=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.fields)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.fields,ee)}}class _ extends Stage{get _name(){return"remove_fields"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.fields=ee}_toProto(ee){return{...super._toProto(ee),args:this.fields.map((te=>te._toProto(ee)))}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.fields,ee)}}class P extends Stage{get _name(){return"let"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.lr=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.lr)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.lr,ee)}}class V extends Stage{get _name(){return"aggregate"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te,ne){super(ne),this.groups=ee,this.accumulators=te}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.accumulators),toMapValue(ee,this.groups)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.groups,ee),__PRIVATE_readUserDataHelper(this.accumulators,ee)}}class M extends Stage{get _name(){return"distinct"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.groups=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.groups)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.groups,ee)}}class H extends Stage{get _name(){return"collection"}get _optionsUtil(){return new OptionsUtil({forceIndex:{serverName:"force_index"}})}constructor(ee,te){super(te),this.Er=ee.startsWith("/")?ee:"/"+ee}_toProto(ee){return{...super._toProto(ee),args:[{referenceValue:this.Er}]}}_readUserData(ee){super._readUserData(ee)}}class J extends Stage{get _name(){return"collection_group"}get _optionsUtil(){return new OptionsUtil({forceIndex:{serverName:"force_index"}})}constructor(ee,te){super(te),this.collectionId=ee}_toProto(ee){return{...super._toProto(ee),args:[{referenceValue:""},{stringValue:this.collectionId}]}}_readUserData(ee){super._readUserData(ee)}}class sa extends Stage{get _name(){return"subcollection"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.path=ee}_toProto(ee){return{...super._toProto(ee),args:[{stringValue:this.path}]}}_readUserData(ee){super._readUserData(ee)}}class Q extends Stage{get _name(){return"database"}get _optionsUtil(){return new OptionsUtil({})}_toProto(ee){return{...super._toProto(ee)}}_readUserData(ee){super._readUserData(ee)}}class Y extends Stage{get _name(){return"documents"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){if(super(te),!ee||0===ee.length)throw new s(gn.INVALID_ARGUMENT,"Empty document paths are not allowed in DocumentsSource");const ne=ee.map((ee=>ee.startsWith("/")?ee:"/"+ee)),re=new Set(ne);if(re.size!==ne.length)throw new s(gn.INVALID_ARGUMENT,"Duplicate document paths are not allowed in DocumentsSource");this.hr=ne,this.Tr=re}_toProto(ee){return{...super._toProto(ee),args:this.hr.map((ee=>({referenceValue:ee})))}}_readUserData(ee){super._readUserData(ee)}}class A extends Stage{get _name(){return"where"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.condition=ee}_toProto(ee){return{...super._toProto(ee),args:[this.condition._toProto(ee)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.condition,ee)}}class D extends Stage{get _name(){return"find_nearest"}get _optionsUtil(){return new OptionsUtil({limit:{serverName:"limit"},distanceField:{serverName:"distance_field"}})}constructor(ee,te,ne,re){super(re),this.vectorValue=ee,this.field=te,this.distanceMeasure=ne}_toProto(ee){return{...super._toProto(ee),args:[this.field._toProto(ee),this.vectorValue._toProto(ee),__PRIVATE_toStringValue(this.distanceMeasure)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.vectorValue,ee),__PRIVATE_readUserDataHelper(this.field,ee)}}class v extends Stage{get _name(){return"limit"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){__PRIVATE_hardAssert(!isNaN(ee)&&ee!==1/0&&ee!==-1/0,34860),super(te),this.limit=ee}_toProto(ee){return{...super._toProto(ee),args:[toNumber(ee,this.limit)]}}}class I extends Stage{get _name(){return"offset"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.offset=ee}_toProto(ee){return{...super._toProto(ee),args:[toNumber(ee,this.offset)]}}}class y extends Stage{get _name(){return"select"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.selections=ee}_toProto(ee){return{...super._toProto(ee),args:[toMapValue(ee,this.selections)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.selections,ee)}}class L extends Stage{get _name(){return"sort"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.orderings=ee}_toProto(ee){return{...super._toProto(ee),args:this.orderings.map((te=>te._toProto(ee)))}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.orderings,ee)}}class N extends Stage{get _name(){return"sample"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te,ne){super(ne),this.rate=ee,this.mode=te}_toProto(ee){return{...super._toProto(ee),args:[toNumber(ee,this.rate),__PRIVATE_toStringValue(this.mode)]}}_readUserData(ee){super._readUserData(ee)}}class U extends Stage{get _name(){return"union"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.other=ee}_toProto(ee){return{...super._toProto(ee),args:[__PRIVATE_toPipelineValue(this.other._toProto(ee))]}}_readUserData(ee){this.other._readUserData(ee),super._readUserData(ee)}}class W extends Stage{get _name(){return"unnest"}get _optionsUtil(){return new OptionsUtil({indexField:{serverName:"index_field"}})}constructor(ee,te,ne){super(ne),this.alias=ee,this.expr=te}_toProto(ee){return{...super._toProto(ee),args:[this.expr._toProto(ee),e(this.alias)._toProto(ee)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.expr,ee)}}class $ extends Stage{get _name(){return"replace_with"}get _optionsUtil(){return new OptionsUtil({})}constructor(ee,te){super(te),this.map=ee}_toProto(ee){return{...super._toProto(ee),args:[this.map._toProto(ee),__PRIVATE_toStringValue($.Pr)]}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.map,ee)}}$.Pr="full_replace";class C extends Stage{constructor(ee){super(ee),this.Rr=ee}get _name(){return"search"}get _optionsUtil(){return new OptionsUtil({query:{serverName:"query"},limit:{serverName:"limit"},retrievalDepth:{serverName:"retrieval_depth"},sort:{serverName:"sort"},addFields:{serverName:"add_fields"},select:{serverName:"select"},offset:{serverName:"offset"},Ir:{serverName:"query_enhancement"},languageCode:{serverName:"language_code"}})}_toProto(ee){return{...super._toProto(ee),args:[]}}_readUserData(ee){__PRIVATE_readUserDataHelper(this.Rr.query,ee),this.Rr.addFields&&__PRIVATE_readUserDataHelper(this.Rr.addFields,ee),this.Rr.select&&__PRIVATE_readUserDataHelper(this.Rr.select,ee),this.Rr.sort&&__PRIVATE_readUserDataHelper(this.Rr.sort,ee),super._readUserData(ee)}}class K extends Stage{constructor(ee,te,ne){super({rawOptions:ne}),this.name=ee,this.params=te}_toProto(ee){return{name:this.name,args:this.params.map((te=>te._toProto(ee))),options:this.optionsProto}}_readUserData(ee){super._readUserData(ee),__PRIVATE_readUserDataHelper(this.params,ee)}get _name(){return this.name}get _optionsUtil(){return new OptionsUtil({})}}function __PRIVATE_readUserDataHelper(ee,te){return __PRIVATE_isUserData(ee)?ee._readUserData(te):Array.isArray(ee)||ee instanceof Map?ee.forEach((ee=>ee._readUserData(te))):Object.values(ee).forEach((ee=>ee._readUserData(te))),ee}class __PRIVATE_RealtimePipeline{constructor(ee,te,ne,re){this._db=ee,this.userDataReader=te,this._userDataWriter=ne,this.stages=re}Ar(ee,te){const ne=this.userDataReader.createContext(3,ee);return __PRIVATE_isUserData(te)?te._readUserData(ne):(Array.isArray(te),te.forEach((ee=>ee._readUserData(ne)))),te}where(ee){const te=this.stages.map((ee=>ee));return this.Ar("where",ee),te.push(new A(ee,{})),new __PRIVATE_RealtimePipeline(this._db,this.userDataReader,this._userDataWriter,te)}limit(ee){const te=this.stages.map((ee=>ee));return te.push(new v(ee,{})),new __PRIVATE_RealtimePipeline(this._db,this.userDataReader,this._userDataWriter,te)}sort(ee,...te){const ne=this.stages.map((ee=>ee));return"orderings"in ee?ne.push(new L(this.Ar("sort",ee.orderings),{})):ne.push(new L(this.Ar("sort",[ee,...te]),{})),new __PRIVATE_RealtimePipeline(this._db,this.userDataReader,this._userDataWriter,ne)}Vr(ee){return{pipeline:{stages:this.stages.map((te=>te._toProto(ee)))}}}}class __PRIVATE_EvaluateResult{constructor(ee,te){this.type=ee,this.value=te}static dr(){return new __PRIVATE_EvaluateResult("ERROR",void 0)}static mr(){return new __PRIVATE_EvaluateResult("UNSET",void 0)}static pr(){return new __PRIVATE_EvaluateResult("NULL",Mn)}static newValue(ee){return __PRIVATE_isNullValue(ee)?new __PRIVATE_EvaluateResult("NULL",Mn):function __PRIVATE_isBoolean(ee){return!!ee&&"booleanValue"in ee}(ee)?new __PRIVATE_EvaluateResult("BOOLEAN",ee):isInteger(ee)?new __PRIVATE_EvaluateResult("INT",ee):__PRIVATE_isDouble(ee)?new __PRIVATE_EvaluateResult("DOUBLE",ee):function __PRIVATE_isTimestampValue(ee){return!!ee&&"timestampValue"in ee&&!!ee.timestampValue}(ee)?new __PRIVATE_EvaluateResult("TIMESTAMP",ee):function __PRIVATE_isString(ee){return!!ee&&"stringValue"in ee}(ee)?new __PRIVATE_EvaluateResult("STRING",ee):function __PRIVATE_isBytes(ee){return!!ee&&"bytesValue"in ee}(ee)?new __PRIVATE_EvaluateResult("BYTES",ee):ee.referenceValue?new __PRIVATE_EvaluateResult("REFERENCE",ee):ee.geoPointValue?new __PRIVATE_EvaluateResult("GEO_POINT",ee):isArray(ee)?new __PRIVATE_EvaluateResult("ARRAY",ee):__PRIVATE_isVectorValue(ee)?new __PRIVATE_EvaluateResult("VECTOR",ee):__PRIVATE_isMapValue(ee)?new __PRIVATE_EvaluateResult("MAP",ee):new __PRIVATE_EvaluateResult("ERROR",void 0)}gr(){return"ERROR"===this.type||"UNSET"===this.type}yr(){return"NULL"===this.type}}function __PRIVATE_valueOrUndefined(ee){if(!ee.gr())return ee.value}function __PRIVATE_unwrapExpression(ee){return ee instanceof BooleanExpression?ee._expr:ee}function __PRIVATE_toEvaluable(ee){if((ee=__PRIVATE_unwrapExpression(ee))instanceof o)return new __PRIVATE_CoreField(ee);if(ee instanceof Constant)return new __PRIVATE_CoreConstant(ee);if(ee instanceof __PRIVATE_ListOfExprs)return new __PRIVATE_CoreListOfExprs(ee);if(ee instanceof x){if("add"===ee.name)return new __PRIVATE_CoreAdd(ee);if("subtract"===ee.name)return new __PRIVATE_CoreSubtract(ee);if("multiply"===ee.name)return new __PRIVATE_CoreMultiply(ee);if("divide"===ee.name)return new __PRIVATE_CoreDivide(ee);if("mod"===ee.name)return new __PRIVATE_CoreMod(ee);if("and"===ee.name)return new __PRIVATE_CoreAnd(ee);if("equal"===ee.name)return new __PRIVATE_CoreEq(ee);if("not_equal"===ee.name)return new __PRIVATE_CoreNeq(ee);if("less_than"===ee.name)return new __PRIVATE_CoreLt(ee);if("less_than_or_equal"===ee.name)return new __PRIVATE_CoreLte(ee);if("greater_than"===ee.name)return new __PRIVATE_CoreGt(ee);if("greater_than_or_equal"===ee.name)return new __PRIVATE_CoreGte(ee);if("array_concat"===ee.name)return new __PRIVATE_CoreArrayConcat(ee);if("array_reverse"===ee.name)return new __PRIVATE_CoreArrayReverse(ee);if("array_contains"===ee.name)return new __PRIVATE_CoreArrayContains(ee);if("array_contains_all"===ee.name)return new __PRIVATE_CoreArrayContainsAll(ee);if("array_contains_any"===ee.name)return new __PRIVATE_CoreArrayContainsAny(ee);if("array_length"===ee.name)return new __PRIVATE_CoreArrayLength(ee);if("array_element"===ee.name)return new __PRIVATE_CoreArrayElement(ee);if("equal_any"===ee.name)return new __PRIVATE_CoreEqAny(ee);if("not_equal_any"===ee.name)return new __PRIVATE_CoreNotEqAny(ee);if("is_nan"===ee.name)return new __PRIVATE_CoreIsNan(ee);if("is_not_nan"===ee.name)return new __PRIVATE_CoreIsNotNan(ee);if("is_null"===ee.name)return new __PRIVATE_CoreIsNull(ee);if("is_not_null"===ee.name)return new __PRIVATE_CoreIsNotNull(ee);if("is_error"===ee.name)return new __PRIVATE_CoreIsError(ee);if("exists"===ee.name)return new __PRIVATE_CoreExists(ee);if("not"===ee.name)return new __PRIVATE_CoreNot(ee);if("or"===ee.name)return new __PRIVATE_CoreOr(ee);if("xor"===ee.name)return new __PRIVATE_CoreXor(ee);if("conditional"===ee.name)return new __PRIVATE_CoreCond(ee);if("maximum"===ee.name)return new __PRIVATE_CoreLogicalMaximum(ee);if("minimum"===ee.name)return new __PRIVATE_CoreLogicalMinimum(ee);if("reverse"===ee.name)return new __PRIVATE_CoreReverse(ee);if("replace_first"===ee.name)return new __PRIVATE_CoreReplaceFirst(ee);if("replace_all"===ee.name)return new __PRIVATE_CoreReplaceAll(ee);if("char_length"===ee.name)return new __PRIVATE_CoreCharLength(ee);if("byte_length"===ee.name)return new __PRIVATE_CoreByteLength(ee);if("like"===ee.name)return new __PRIVATE_CoreLike(ee);if("regex_contains"===ee.name)return new __PRIVATE_CoreRegexContains(ee);if("regex_match"===ee.name)return new __PRIVATE_CoreRegexMatch(ee);if("string_contains"===ee.name)return new __PRIVATE_CoreStrContains(ee);if("starts_with"===ee.name)return new __PRIVATE_CoreStartsWith(ee);if("ends_with"===ee.name)return new __PRIVATE_CoreEndsWith(ee);if("to_lower"===ee.name)return new __PRIVATE_CoreToLower(ee);if("to_upper"===ee.name)return new __PRIVATE_CoreToUpper(ee);if("trim"===ee.name)return new __PRIVATE_CoreTrim(ee);if("string_concat"===ee.name)return new __PRIVATE_CoreStrConcat(ee);if("map_get"===ee.name)return new __PRIVATE_CoreMapGet(ee);if("cosine_distance"===ee.name)return new __PRIVATE_CoreCosineDistance(ee);if("dot_product"===ee.name)return new __PRIVATE_CoreDotProduct(ee);if("euclidean_distance"===ee.name)return new __PRIVATE_CoreEuclideanDistance(ee);if("vector_length"===ee.name)return new __PRIVATE_CoreVectorLength(ee);if("unix_micros_to_timestamp"===ee.name)return new __PRIVATE_CoreUnixMicrosToTimestamp(ee);if("timestamp_to_unix_micros"===ee.name)return new __PRIVATE_CoreTimestampToUnixMicros(ee);if("unix_millis_to_timestamp"===ee.name)return new __PRIVATE_CoreUnixMillisToTimestamp(ee);if("timestamp_to_unix_millis"===ee.name)return new __PRIVATE_CoreTimestampToUnixMillis(ee);if("unix_seconds_to_timestamp"===ee.name)return new __PRIVATE_CoreUnixSecondsToTimestamp(ee);if("timestamp_to_unix_seconds"===ee.name)return new __PRIVATE_CoreTimestampToUnixSeconds(ee);if("timestamp_add"===ee.name)return new __PRIVATE_CoreTimestampAdd(ee);if("timestamp_subtract"===ee.name)return new __PRIVATE_CoreTimestampSub(ee)}throw new Error(`Unknown Expr : ${ee}`)}class __PRIVATE_CoreField{constructor(ee){this.expr=ee}evaluate(ee,te){if(this.expr.fieldName===Tn)return __PRIVATE_EvaluateResult.newValue({referenceValue:__PRIVATE_toName(ee.serializer,te.key)});if("__update_time__"===this.expr.fieldName)return __PRIVATE_EvaluateResult.newValue({timestampValue:__PRIVATE_toVersion(ee.serializer,te.version)});if("__create_time__"===this.expr.fieldName)return __PRIVATE_EvaluateResult.newValue({timestampValue:__PRIVATE_toVersion(ee.serializer,te.createTime)});const ne=te.data.field(this.expr._fieldPath);return ne?__PRIVATE_isServerTimestamp(ne)?__PRIVATE_EvaluateResult.newValue(function __PRIVATE_getServerTimestampValue(ee,te){if("estimate"===ee.serverTimestampBehavior)return{timestampValue:__PRIVATE_toVersion(ee.serializer,SnapshotVersion.fromTimestamp(__PRIVATE_getLocalWriteTime(te)))};if("previous"===ee.serverTimestampBehavior){const ee=__PRIVATE_getPreviousValue(te);if(ee)return ee}return{nullValue:"NULL_VALUE"}}(ee,ne)):__PRIVATE_EvaluateResult.newValue(ne):__PRIVATE_EvaluateResult.mr()}}class __PRIVATE_CoreConstant{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_EvaluateResult.newValue(this.expr._getValue())}}class __PRIVATE_CoreListOfExprs{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.ur.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));return ne.some((ee=>ee.gr()))?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({arrayValue:{values:ne.map((ee=>ee.value))}})}}function __PRIVATE_asDouble(ee){return __PRIVATE_isDouble(ee)?Number(ee.doubleValue):Number(ee.integerValue)}function __PRIVATE_asBigInt(ee){return BigInt(ee.integerValue)}const Ar=BigInt("0x7fffffffffffffff"),Pr=-BigInt("0x8000000000000000");class __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(this.expr.params.length>=2,24778);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te),re=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);let se=this.wr(ne,re);for(const ne of this.expr.params.slice(2)){const re=__PRIVATE_toEvaluable(ne).evaluate(ee,te);se=this.wr(se,re)}return se}wr(ee,te){if(ee.gr()||te.gr())return __PRIVATE_EvaluateResult.dr();if(ee.yr()||te.yr())return __PRIVATE_EvaluateResult.pr();const ne=ee.value,re=te.value;if(!__PRIVATE_isDouble(ne)&&!isInteger(ne)||!__PRIVATE_isDouble(re)&&!isInteger(re))return __PRIVATE_EvaluateResult.dr();if(__PRIVATE_isDouble(ne)||__PRIVATE_isDouble(re)){const ee=this.br(ne,re);return ee?__PRIVATE_EvaluateResult.newValue(ee):__PRIVATE_EvaluateResult.dr()}if(isInteger(ne)&&isInteger(re)){const ee=this.vr(ne,re);return void 0===ee?__PRIVATE_EvaluateResult.dr():"number"==typeof ee?__PRIVATE_EvaluateResult.newValue({doubleValue:ee}):ee<Pr||ee>Ar?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({integerValue:`${ee}`})}return __PRIVATE_EvaluateResult.dr()}}function __PRIVATE_strictValueEquals(ee,te){return __PRIVATE_typeOrder(ee)!==__PRIVATE_typeOrder(te)?"TYPE_MISMATCH":__PRIVATE_isNanValue(ee)||__PRIVATE_isNanValue(te)?"NOT_EQ":__PRIVATE_isNullValue(ee)&&__PRIVATE_isNullValue(te)?"EQ":__PRIVATE_isNullValue(ee)||__PRIVATE_isNullValue(te)?"NULL":isArray(ee)&&isArray(te)?function __PRIVATE_strictArrayValueEquals(ee,te){if(ee.values?.length!==te.values?.length)return"NOT_EQ";let ne=!1;for(let re=0;re<(ee.values?.length??0);re++){const se=ee.values[re],ie=te.values[re];switch(__PRIVATE_strictValueEquals(se,ie)){case"EQ":break;case"NOT_EQ":case"TYPE_MISMATCH":return"NOT_EQ";case"NULL":ne=!0;break;default:l(44609,{Sr:se,Dr:ie})}}return ne?"NULL":"EQ"}(ee.arrayValue,te.arrayValue):__PRIVATE_isVectorValue(ee)&&__PRIVATE_isVectorValue(te)||__PRIVATE_isMapValue(ee)&&__PRIVATE_isMapValue(te)?function __PRIVATE_strictObjectValueEquals(ee,te){const ne=ee.fields||{},re=te.fields||{};if(__PRIVATE_objectSize(ne)!==__PRIVATE_objectSize(re))return"NOT_EQ";let se=!1;for(const ee in ne)if(ne.hasOwnProperty(ee)){if(void 0===re[ee])return"NOT_EQ";switch(__PRIVATE_strictValueEquals(ne[ee],re[ee])){case"NOT_EQ":case"TYPE_MISMATCH":return"NOT_EQ";case"NULL":se=!0}}return se?"NULL":"EQ"}(ee.mapValue,te.mapValue):function __PRIVATE_valueEquals(ee,te){return __PRIVATE_valueEquals$1(ee,te,{o:!1,t:!0,i:!0})}(ee,te)?"EQ":"NOT_EQ"}class __PRIVATE_CoreAdd extends __PRIVATE_BigIntOrDoubleArithmetics{vr(ee,te){return __PRIVATE_asBigInt(ee)+__PRIVATE_asBigInt(te)}br(ee,te){return{doubleValue:__PRIVATE_asDouble(ee)+__PRIVATE_asDouble(te)}}}class __PRIVATE_CoreSubtract extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){return __PRIVATE_asBigInt(ee)-__PRIVATE_asBigInt(te)}br(ee,te){return{doubleValue:__PRIVATE_asDouble(ee)-__PRIVATE_asDouble(te)}}}class __PRIVATE_CoreMultiply extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){return __PRIVATE_asBigInt(ee)*__PRIVATE_asBigInt(te)}br(ee,te){return{doubleValue:__PRIVATE_asDouble(ee)*__PRIVATE_asDouble(te)}}}class __PRIVATE_CoreDivide extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){const ne=__PRIVATE_asBigInt(te);if(ne!==BigInt(0))return __PRIVATE_asBigInt(ee)/ne}br(ee,te){const ne=__PRIVATE_asDouble(te);return 0===ne?{doubleValue:__PRIVATE_isNegativeZero(ne)?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY}:{doubleValue:__PRIVATE_asDouble(ee)/ne}}}class __PRIVATE_CoreMod extends __PRIVATE_BigIntOrDoubleArithmetics{constructor(ee){super(ee),this.expr=ee}vr(ee,te){const ne=__PRIVATE_asBigInt(te);if(ne!==BigInt(0))return __PRIVATE_asBigInt(ee)%ne}br(ee,te){const ne=__PRIVATE_asDouble(te);if(0!==ne)return{doubleValue:__PRIVATE_asDouble(ee)%ne}}}class __PRIVATE_CoreAnd{constructor(ee){this.expr=ee}evaluate(ee,te){let ne=!1,re=!1;for(const se of this.expr.params){const ie=__PRIVATE_toEvaluable(se).evaluate(ee,te);switch(ie.type){case"BOOLEAN":if(!ie.value?.booleanValue)return __PRIVATE_EvaluateResult.newValue(Gn);break;case"NULL":re=!0;break;default:ne=!0}}return ne?__PRIVATE_EvaluateResult.dr():re?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(kn)}}class __PRIVATE_CoreNot{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,9634);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"BOOLEAN":return __PRIVATE_EvaluateResult.newValue({booleanValue:!ne.value?.booleanValue});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreOr{constructor(ee){this.expr=ee}evaluate(ee,te){let ne=!1,re=!1;for(const se of this.expr.params){const ie=__PRIVATE_toEvaluable(se).evaluate(ee,te);switch(ie.type){case"BOOLEAN":if(ie.value?.booleanValue)return __PRIVATE_EvaluateResult.newValue(kn);break;case"NULL":re=!0;break;default:ne=!0}}return ne?__PRIVATE_EvaluateResult.dr():re?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreXor{constructor(ee){this.expr=ee}evaluate(ee,te){let ne=!1,re=!1;for(const se of this.expr.params){const ie=__PRIVATE_toEvaluable(se).evaluate(ee,te);switch(ie.type){case"BOOLEAN":ne=__PRIVATE_CoreXor.xor(ne,!!ie.value?.booleanValue);break;case"NULL":re=!0;break;default:return __PRIVATE_EvaluateResult.dr()}}return re?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue({booleanValue:ne})}static xor(ee,te){return(ee||te)&&!(ee&&te)}}class __PRIVATE_CoreEqAny{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,55094);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"NULL":ne=!0;break;case"ERROR":case"UNSET":return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();for(const ee of se.value?.arrayValue?.values??[])switch(__PRIVATE_isNullValue(re.value)&&__PRIVATE_isNullValue(ee)?"EQ":__PRIVATE_strictValueEquals(re.value,ee)){case"EQ":return __PRIVATE_EvaluateResult.newValue(kn);case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":ne=!0;break;default:l(44608,{value:re.value,candidate:ee})}return ne?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreNotEqAny{constructor(ee){this.expr=ee}evaluate(ee,te){return new __PRIVATE_CoreNot(new x("not",[new x("equal_any",this.expr.params)])).evaluate(ee,te)}}class __PRIVATE_CoreIsNan{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,23322);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"INT":return __PRIVATE_EvaluateResult.newValue(Gn);case"DOUBLE":return __PRIVATE_EvaluateResult.newValue({booleanValue:isNaN(__PRIVATE_asDouble(ne.value))});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreIsNotNan{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(1===this.expr.params.length,50406),new __PRIVATE_CoreNot(new x("not",[new x("is_nan",this.expr.params)])).evaluate(ee,te)}}class __PRIVATE_CoreIsNull{constructor(ee){this.expr=ee}evaluate(ee,te){switch(__PRIVATE_hardAssert(1===this.expr.params.length,23123),__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te).type){case"NULL":return __PRIVATE_EvaluateResult.newValue(kn);case"UNSET":case"ERROR":return __PRIVATE_EvaluateResult.dr();default:return __PRIVATE_EvaluateResult.newValue(Gn)}}}class __PRIVATE_CoreIsNotNull{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(1===this.expr.params.length,23167),new __PRIVATE_CoreNot(new x("not",[new x("is_null",this.expr.params)])).evaluate(ee,te)}}class __PRIVATE_CoreIsError{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(1===this.expr.params.length,5228),"ERROR"===__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te).type?__PRIVATE_EvaluateResult.newValue(kn):__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreExists{constructor(ee){this.expr=ee}evaluate(ee,te){switch(__PRIVATE_hardAssert(1===this.expr.params.length,6877),__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te).type){case"ERROR":return __PRIVATE_EvaluateResult.dr();case"UNSET":return __PRIVATE_EvaluateResult.newValue(Gn);default:return __PRIVATE_EvaluateResult.newValue(kn)}}}class __PRIVATE_CoreCond{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(3===this.expr.params.length,11706);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"BOOLEAN":return ne.value?.booleanValue?__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te):__PRIVATE_toEvaluable(this.expr.params[2]).evaluate(ee,te);case"NULL":return __PRIVATE_toEvaluable(this.expr.params[2]).evaluate(ee,te);default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreLogicalMaximum{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.params.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));let re;for(const ee of ne)switch(ee.type){case"ERROR":case"UNSET":case"NULL":continue;default:re=void 0===re||__PRIVATE_valueCompare(ee.value,re.value)>0?ee:re}return void 0===re?__PRIVATE_EvaluateResult.pr():re}}class __PRIVATE_CoreLogicalMinimum{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.params.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));let re;for(const ee of ne)switch(ee.type){case"ERROR":case"UNSET":case"NULL":continue;default:re=void 0===re||__PRIVATE_valueCompare(ee.value,re.value)<0?ee:re}return void 0===re?__PRIVATE_EvaluateResult.pr():re}}class __PRIVATE_ComparisonBase{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,31033,`${this.expr.name}() function should have exactly 2 params`);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"ERROR":case"UNSET":return __PRIVATE_EvaluateResult.dr()}const re=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(re.type){case"ERROR":case"UNSET":return __PRIVATE_EvaluateResult.dr()}return this.Cr(ne,re)}}class __PRIVATE_CoreEq extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){if(ee.yr()&&te.yr())return __PRIVATE_EvaluateResult.newValue(kn);if(ee.yr()||te.yr())return __PRIVATE_EvaluateResult.newValue(Gn);if(__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value))return __PRIVATE_EvaluateResult.newValue(Gn);if(__PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value))return __PRIVATE_EvaluateResult.newValue(Gn);switch(__PRIVATE_strictValueEquals(ee.value,te.value)){case"EQ":return __PRIVATE_EvaluateResult.newValue(kn);case"NOT_EQ":return __PRIVATE_EvaluateResult.newValue(Gn);case"NULL":return __PRIVATE_EvaluateResult.pr();default:l(44615,{left:ee,right:te})}}}class __PRIVATE_CoreNeq extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){switch(__PRIVATE_strictValueEquals(ee.value,te.value)){case"EQ":return __PRIVATE_EvaluateResult.newValue(Gn);case"NOT_EQ":case"TYPE_MISMATCH":return __PRIVATE_EvaluateResult.newValue(kn);case"NULL":return __PRIVATE_EvaluateResult.pr();default:l(44614,{left:ee,right:te})}}}class __PRIVATE_CoreLt extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)<0})}}class __PRIVATE_CoreLte extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):"EQ"===__PRIVATE_strictValueEquals(ee.value,te.value)?__PRIVATE_EvaluateResult.newValue(kn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)<0})}}class __PRIVATE_CoreGt extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)>0})}}class __PRIVATE_CoreGte extends __PRIVATE_ComparisonBase{constructor(ee){super(ee),this.expr=ee}Cr(ee,te){return __PRIVATE_typeOrder(ee.value)!==__PRIVATE_typeOrder(te.value)||__PRIVATE_isNanValue(ee.value)||__PRIVATE_isNanValue(te.value)?__PRIVATE_EvaluateResult.newValue(Gn):"EQ"===__PRIVATE_strictValueEquals(ee.value,te.value)?__PRIVATE_EvaluateResult.newValue(kn):__PRIVATE_EvaluateResult.newValue({booleanValue:__PRIVATE_valueCompare(ee.value,te.value)>0})}}class __PRIVATE_CoreArrayConcat{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreArrayReverse{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,216);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"ARRAY":{const ee=ne.value.arrayValue?.values??[];return __PRIVATE_EvaluateResult.newValue({arrayValue:{values:[...ee].reverse()}})}default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreArrayContains{constructor(ee){this.expr=ee}evaluate(ee,te){return __PRIVATE_hardAssert(2===this.expr.params.length,52884),new __PRIVATE_CoreEqAny(new x("eq_any",[this.expr.params[1],this.expr.params[0]])).evaluate(ee,te)}}class __PRIVATE_CoreArrayContainsAll{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,1392);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const ie=se.value?.arrayValue?.values??[],ae=re.value?.arrayValue?.values??[];for(const ee of ie){let te=!1;ne=!1;for(const re of ae){switch(__PRIVATE_isNullValue(ee)&&__PRIVATE_isNullValue(re)?"EQ":__PRIVATE_strictValueEquals(ee,re)){case"EQ":te=!0;break;case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":ne=!0;break;default:l(44613,{value:re,search:ee})}if(te)break}if(!te)return __PRIVATE_EvaluateResult.newValue(Gn)}return __PRIVATE_EvaluateResult.newValue(kn)}}class __PRIVATE_CoreArrayContainsAny{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,2680);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"ARRAY":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const ie=se.value?.arrayValue?.values??[],ae=re.value?.arrayValue?.values??[];for(const ee of ae)for(const te of ie)switch(__PRIVATE_isNullValue(ee)&&__PRIVATE_isNullValue(te)?"EQ":__PRIVATE_strictValueEquals(ee,te)){case"EQ":return __PRIVATE_EvaluateResult.newValue(kn);case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":ne=!0;break;default:l(60403,{value:ee,search:te})}return ne?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue(Gn)}}class __PRIVATE_CoreArrayLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,38605);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"ARRAY":return __PRIVATE_EvaluateResult.newValue({integerValue:`${ne.value?.arrayValue?.values?.length??0}`});default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreArrayElement{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreReverse{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,1508);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"BYTES":{const ee=ne.value?.bytesValue;if("string"==typeof ee){const te=ByteString.fromBase64String(ee).toUint8Array();return te.reverse(),__PRIVATE_EvaluateResult.newValue({bytesValue:ByteString.fromUint8Array(te).toBase64()})}return __PRIVATE_EvaluateResult.newValue({bytesValue:new Uint8Array(ee).reverse()})}case"STRING":{const ee=ne.value?.stringValue,te=new Intl.__PRIVATE_Segmenter(void 0,{granularity:"grapheme"}).segment(ee),re=Array.from(te,(ee=>ee.segment)).reverse();return __PRIVATE_EvaluateResult.newValue({stringValue:re.join("")})}default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreReplaceFirst{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreReplaceAll{constructor(ee){this.expr=ee}evaluate(ee,te){throw new Error("Unimplemented")}}class __PRIVATE_CoreCharLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,19400);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"NULL":return __PRIVATE_EvaluateResult.pr();case"STRING":{const ee=function __PRIVATE_getUnicodePointCount(ee){let te=0;for(let ne=0;ne<ee.length;ne++){const re=ee.codePointAt(ne);if(void 0===re)return;if(re<=65535)if(re>=55296&&re<=57343)if(re<=56319){const re=ee.codePointAt(ne+1);void 0!==re&&re>=56320&&re<=57343?(te+=1,ne++):te+=1}else te+=1;else te+=1;else{if(!(re<=1114111))return;te+=1,ne++}}return te}(ne.value.stringValue);return void 0===ee?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({integerValue:ee})}default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreByteLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,8486);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"BYTES":{const ee=ne.value?.bytesValue;return"string"==typeof ee?__PRIVATE_EvaluateResult.newValue({integerValue:ByteString.fromBase64String(ee).toUint8Array().length}):__PRIVATE_EvaluateResult.newValue({integerValue:new Uint8Array(ee).length})}case"STRING":{const ee=function __PRIVATE_getUtf8ByteLength(ee){let te=0;for(let ne=0;ne<ee.length;ne++){const re=ee.codePointAt(ne);if(void 0===re)return;if(re>=55296&&re<=57343){if(!(re<=56319))return;{const re=ee.codePointAt(ne+1);if(void 0===re||!(re>=56320&&re<=57343))return;te+=4,ne++}}else if(re<=127)te+=1;else if(re<=2047)te+=2;else if(re<=65535)te+=3;else{if(!(re<=1114111))return;te+=4,ne++}}return te}(ne.value?.stringValue);return void 0===ee?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({integerValue:ee})}case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_StringSearchFunctionBase{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,39773,`${this.expr.name}() function should have exactly two parameters`);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"STRING":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"STRING":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}return ne?__PRIVATE_EvaluateResult.pr():this.Fr(re.value?.stringValue,se.value?.stringValue)}}class __PRIVATE_CoreLike extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){try{const ne=function __PRIVATE_likeToRegex(ee){let te="";for(let ne=0;ne<ee.length;ne++){const re=ee.charAt(ne);switch(re){case"_":te+=".";break;case"%":te+=".*";break;case"\\":case".":case"*":case"?":case"+":case"^":case"$":case"|":case"(":case")":case"[":case"]":case"{":case"}":te+="\\"+re;break;default:te+=re}}return"^"+te+"$"}(te),re=En.compile(ne);return __PRIVATE_EvaluateResult.newValue({booleanValue:re.matches(ee)})}catch(ee){return __PRIVATE_logWarn(`Invalid LIKE pattern converted to regex: ${te}, returning error. Error: ${ee}`),__PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreRegexContains extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){try{const ne=En.compile(te);return __PRIVATE_EvaluateResult.newValue({booleanValue:ne.test(ee)})}catch(ee){return __PRIVATE_logWarn(`Invalid regex pattern found in regex_contains: ${te}, returning error`),__PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreRegexMatch extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){try{return __PRIVATE_EvaluateResult.newValue({booleanValue:En.compile(te).matches(ee)})}catch(ee){return __PRIVATE_logWarn(`Invalid regex pattern found in regex_match: ${te}, returning error`),__PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreStrContains extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){return __PRIVATE_EvaluateResult.newValue({booleanValue:ee.includes(te)})}}class __PRIVATE_CoreStartsWith extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){return __PRIVATE_EvaluateResult.newValue({booleanValue:ee.startsWith(te)})}}class __PRIVATE_CoreEndsWith extends __PRIVATE_StringSearchFunctionBase{Fr(ee,te){return __PRIVATE_EvaluateResult.newValue({booleanValue:ee.endsWith(te)})}}class __PRIVATE_CoreToLower{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,29079);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"STRING":return __PRIVATE_EvaluateResult.newValue({stringValue:ne.value?.stringValue?.toLowerCase()});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreToUpper{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,60487);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"STRING":return __PRIVATE_EvaluateResult.newValue({stringValue:ne.value?.stringValue?.toUpperCase()});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreTrim{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,28544);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"STRING":return __PRIVATE_EvaluateResult.newValue({stringValue:ne.value?.stringValue?.trim()});case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreStrConcat{constructor(ee){this.expr=ee}evaluate(ee,te){const ne=this.expr.params.map((ne=>__PRIVATE_toEvaluable(ne).evaluate(ee,te)));let re="",se=!1;for(const ee of ne)switch(ee.type){case"STRING":re+=ee.value.stringValue;break;case"NULL":se=!0;break;default:return __PRIVATE_EvaluateResult.dr()}return se?__PRIVATE_EvaluateResult.pr():__PRIVATE_EvaluateResult.newValue({stringValue:re})}}class __PRIVATE_CoreMapGet{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,4483);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"UNSET":return __PRIVATE_EvaluateResult.mr();case"MAP":break;default:return __PRIVATE_EvaluateResult.dr()}const re=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);if("STRING"!==re.type)return __PRIVATE_EvaluateResult.dr();const se=ne.value?.mapValue?.fields?.[re.value?.stringValue];return void 0===se?__PRIVATE_EvaluateResult.mr():__PRIVATE_EvaluateResult.newValue(se)}}class __PRIVATE_DistanceBase{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(2===this.expr.params.length,25231,`${this.expr.name}() function should have exactly 2 params`);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"VECTOR":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);switch(se.type){case"VECTOR":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const ie=__PRIVATE_getVectorValue(re.value),ae=__PRIVATE_getVectorValue(se.value);if(void 0===ie||void 0===ae||ie.values?.length!==ae.values?.length)return __PRIVATE_EvaluateResult.dr();const oe=this.Or(ie,ae);return void 0===oe||isNaN(oe)?__PRIVATE_EvaluateResult.dr():__PRIVATE_EvaluateResult.newValue({doubleValue:oe})}}class __PRIVATE_CoreCosineDistance extends __PRIVATE_DistanceBase{Or(ee,te){const ne=ee?.values??[],re=te?.values??[];if(0===ne.length)return;let se=0,ie=0,ae=0;for(let ee=0;ee<ne.length;ee++){if(!R(ne[ee])||!R(re[ee]))return;const te=__PRIVATE_asDouble(ne[ee]),oe=__PRIVATE_asDouble(re[ee]);se+=te*oe,ie+=te*te,ae+=oe*oe}const oe=Math.sqrt(ie)*Math.sqrt(ae);return 0!==oe?1-Math.max(-1,Math.min(1,se/oe)):void 0}}class __PRIVATE_CoreDotProduct extends __PRIVATE_DistanceBase{Or(ee,te){const ne=ee?.values??[],re=te?.values??[];if(0===ne.length)return 0;let se=0;for(let ee=0;ee<ne.length;ee++){if(!R(ne[ee])||!R(re[ee]))return;se+=__PRIVATE_asDouble(ne[ee])*__PRIVATE_asDouble(re[ee])}return se}}class __PRIVATE_CoreEuclideanDistance extends __PRIVATE_DistanceBase{Or(ee,te){const ne=ee?.values??[],re=te?.values??[];if(0===ne.length)return 0;let se=0;for(let ee=0;ee<ne.length;ee++){if(!R(ne[ee])||!R(re[ee]))return;const te=__PRIVATE_asDouble(ne[ee]),ie=__PRIVATE_asDouble(re[ee]);se+=Math.pow(te-ie,2)}return Math.sqrt(se)}}class __PRIVATE_CoreVectorLength{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,39044);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"VECTOR":{const ee=__PRIVATE_getVectorValue(ne.value);return __PRIVATE_EvaluateResult.newValue({integerValue:ee?.values?.length??0})}case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}const Rr=BigInt(-62135596800),Vr=BigInt(253402300799),Dr=BigInt(1e3),yr=BigInt(1e6),wr=Rr*Dr,br=Vr*Dr+BigInt(999),Sr=Rr*yr,vr=Vr*yr+BigInt(999999);function __PRIVATE_isMicrosInBounds(ee){return ee>=Sr&&ee<=vr}function __PRIVATE_isSecondsInBounds(ee){return ee>=Rr&&ee<=Vr}function __PRIVATE_isTimestampInBounds(ee,te){const ne=BigInt(ee);return!(ne<Rr||ne>Vr||te<0||te>=1e9||ne===Rr&&0!==te||ne===Vr&&te>999999999)}function __PRIVATE_adjustTimestamp(ee,te){return te<0?{seconds:ee-1,nanos:te+1e9}:{seconds:ee,nanos:te}}function __PRIVATE_timestampToMicros(ee){return BigInt(ee.seconds)*yr+BigInt(Math.trunc(ee.nanoseconds/1e3))}class __PRIVATE_UnixToTimestamp{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,49262,`${this.expr.name}() function should have exactly one parameter`);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"INT":return this.toTimestamp(BigInt(ne.value.integerValue));case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}}}class __PRIVATE_CoreUnixMicrosToTimestamp extends __PRIVATE_UnixToTimestamp{toTimestamp(ee){if(!__PRIVATE_isMicrosInBounds(ee))return __PRIVATE_EvaluateResult.dr();let te=Number(ee/yr),ne=Number(ee%yr*BigInt(1e3));const re=__PRIVATE_adjustTimestamp(te,ne);return te=re.seconds,ne=re.nanos,__PRIVATE_isTimestampInBounds(te,ne)?__PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:te,nanos:ne}}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreUnixMillisToTimestamp extends __PRIVATE_UnixToTimestamp{toTimestamp(ee){if(!function __PRIVATE_isMillisInBounds(ee){return ee>=wr&&ee<=br}(ee))return __PRIVATE_EvaluateResult.dr();let te=Number(ee/Dr),ne=Number(ee%Dr*BigInt(1e6));const re=__PRIVATE_adjustTimestamp(te,ne);return te=re.seconds,ne=re.nanos,__PRIVATE_isTimestampInBounds(te,ne)?__PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:te,nanos:ne}}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreUnixSecondsToTimestamp extends __PRIVATE_UnixToTimestamp{toTimestamp(ee){if(!__PRIVATE_isSecondsInBounds(ee))return __PRIVATE_EvaluateResult.dr();const te=Number(ee);return __PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:te,nanos:0}})}}class __PRIVATE_TimestampToUnix{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(1===this.expr.params.length,1265,`${this.expr.name}() function should have exactly one parameter`);const ne=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(ne.type){case"TIMESTAMP":break;case"NULL":return __PRIVATE_EvaluateResult.pr();default:return __PRIVATE_EvaluateResult.dr()}const re=fromTimestamp(ne.value.timestampValue);return __PRIVATE_isTimestampInBounds(re.seconds,re.nanoseconds)?this.Mr(re):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreTimestampToUnixMicros extends __PRIVATE_TimestampToUnix{Mr(ee){const te=__PRIVATE_timestampToMicros(ee);return __PRIVATE_isMicrosInBounds(te)?__PRIVATE_EvaluateResult.newValue({integerValue:`${te.toString()}`}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_CoreTimestampToUnixMillis extends __PRIVATE_TimestampToUnix{Mr(ee){const te=__PRIVATE_timestampToMicros(ee),ne=te/BigInt(1e3),re=te%BigInt(1e3);return ne>BigInt(0)||re===BigInt(0)?__PRIVATE_EvaluateResult.newValue({integerValue:ne.toString()}):__PRIVATE_EvaluateResult.newValue({integerValue:(ne-BigInt(1)).toString()})}}class __PRIVATE_CoreTimestampToUnixSeconds extends __PRIVATE_TimestampToUnix{Mr(ee){const te=BigInt(ee.seconds);return __PRIVATE_isSecondsInBounds(te)?__PRIVATE_EvaluateResult.newValue({integerValue:te.toString()}):__PRIVATE_EvaluateResult.dr()}}class __PRIVATE_TimestampArithmetic{constructor(ee){this.expr=ee}evaluate(ee,te){__PRIVATE_hardAssert(3===this.expr.params.length,2775,`${this.expr.name}() function should have exactly 3 parameters`);let ne=!1;const re=__PRIVATE_toEvaluable(this.expr.params[0]).evaluate(ee,te);switch(re.type){case"TIMESTAMP":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const se=__PRIVATE_toEvaluable(this.expr.params[1]).evaluate(ee,te);let ie;switch(se.type){case"STRING":if(ie=function __PRIVATE_asTimeUnit(ee){switch(ee){case"microsecond":return"microsecond";case"millisecond":return"millisecond";case"second":return"second";case"minute":return"minute";case"hour":return"hour";case"day":return"day";default:return}}(se.value.stringValue),void 0===ie)return __PRIVATE_EvaluateResult.dr();break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}const ae=__PRIVATE_toEvaluable(this.expr.params[2]).evaluate(ee,te);switch(ae.type){case"INT":break;case"NULL":ne=!0;break;default:return __PRIVATE_EvaluateResult.dr()}if(ne)return __PRIVATE_EvaluateResult.pr();const oe=BigInt(ae.value.integerValue);let ue;try{switch(ie){case"microsecond":ue=oe;break;case"millisecond":ue=oe*BigInt(1e3);break;case"second":ue=oe*BigInt(1e6);break;case"minute":ue=oe*BigInt(6e7);break;case"hour":ue=oe*BigInt(36e8);break;case"day":ue=oe*BigInt(864e8);break;default:return __PRIVATE_EvaluateResult.dr()}if("microsecond"!==ie&&oe!==BigInt(0)&&ue/oe!==BigInt(this.Nr(ie)))return __PRIVATE_EvaluateResult.dr()}catch(ee){return __PRIVATE_logWarn(`Error during timestamp arithmetic: ${ee}`),__PRIVATE_EvaluateResult.dr()}const Be=fromTimestamp(re.value.timestampValue);if(!__PRIVATE_isTimestampInBounds(Be.seconds,Be.nanoseconds))return __PRIVATE_EvaluateResult.dr();const le=__PRIVATE_timestampToMicros(Be),ce=this.Lr(le,ue);if(!__PRIVATE_isMicrosInBounds(ce))return __PRIVATE_EvaluateResult.dr();const _e=Number(ce/yr),he=ce%yr,de=Number((he<0?he+yr:he)*BigInt(1e3)),Ee=he<0?_e-1:_e;return __PRIVATE_isTimestampInBounds(Ee,de)?__PRIVATE_EvaluateResult.newValue({timestampValue:{seconds:Ee,nanos:de}}):__PRIVATE_EvaluateResult.dr()}Nr(ee){switch(ee){case"millisecond":return 1e3;case"second":return 1e6;case"minute":return 6e7;case"hour":return 36e8;case"day":return 864e8;default:return 1}}}class __PRIVATE_CoreTimestampAdd extends __PRIVATE_TimestampArithmetic{Lr(ee,te){return ee+te}}class __PRIVATE_CoreTimestampSub extends __PRIVATE_TimestampArithmetic{Lr(ee,te){return ee-te}}class CorePipeline{constructor(ee,te,ne){this.serializer=ee,this.stages=te,this.listenOptions=ne,this.isCorePipeline=!0}getPipelineCollection(){return getPipelineCollection(this)}getPipelineCollectionGroup(){return getPipelineCollectionGroup(this)}getPipelineCollectionId(){return getPipelineCollectionId(this)}getPipelineDocuments(){return getPipelineDocuments(this)}getPipelineFlavor(){return function getPipelineFlavor(ee){let te="exact";return ee.stages.forEach(((ne,re)=>{ne._name!==M.name&&ne._name!==V.name||(te="keyless"),ne._name===y.name&&"exact"===te&&(te="augmented"),ne._name===w.name&&re<ee.stages.length-1&&"exact"===te&&(te="augmented")})),te}(this)}getPipelineSourceType(){return getPipelineSourceType(this)}}function getPipelineSourceType(ee){const te=ee.stages[0];return te instanceof H||te instanceof J||te instanceof Q||te instanceof Y?te._name:"unknown"}function getPipelineCollection(ee){if("collection"===getPipelineSourceType(ee))return ee.stages[0].Er}function getPipelineCollectionGroup(ee){if("collection_group"===getPipelineSourceType(ee))return ee.stages[0].collectionId}function getPipelineCollectionId(ee){switch(getPipelineSourceType(ee)){case"collection":return ResourcePath.fromString(getPipelineCollection(ee)).lastSegment();case"collection_group":return getPipelineCollectionGroup(ee);default:return}}function getPipelineDocuments(ee){if("documents"===getPipelineSourceType(ee))return ee.stages[0].hr}function __PRIVATE_toPipelineBooleanExpr(ee){if(ee instanceof FieldFilter){const te=e(ee.field.toString()),ne=ee.value;switch(ee.op){case"<":return and$1(te.exists(),te.lessThan(Constant._fromProto(ne)));case"<=":return and$1(te.exists(),te.lessThanOrEqual(Constant._fromProto(ne)));case">":return and$1(te.exists(),te.greaterThan(Constant._fromProto(ne)));case">=":return and$1(te.exists(),te.greaterThanOrEqual(Constant._fromProto(ne)));case"==":return and$1(te.exists(),te.equal(Constant._fromProto(ne)));case"!=":return te.notEqual(Constant._fromProto(ne));case"array-contains":return and$1(te.exists(),te.arrayContains(Constant._fromProto(ne)));case"in":{const ee=ne?.arrayValue?.values?.map((ee=>Constant._fromProto(ee)));return ee?1===ee.length?and$1(te.exists(),te.equal(ee[0])):and$1(te.exists(),te.equalAny(ee)):and$1(te.exists(),te.equalAny([]))}case"array-contains-any":{const ee=ne?.arrayValue?.values?.map((ee=>Constant._fromProto(ee)));return and$1(te.exists(),te.arrayContainsAny(ee))}case"not-in":{const ee=ne?.arrayValue?.values?.map((ee=>Constant._fromProto(ee)));return ee?1===ee.length?te.notEqual(ee[0]):te.notEqualAny(ee):te.notEqualAny([])}default:l(36935)}}else if(ee instanceof CompositeFilter)switch(ee.op){case"and":{const te=ee.getFilters().map((ee=>__PRIVATE_toPipelineBooleanExpr(ee)));return and$1(te[0],te[1],...te.slice(2))}case"or":{const te=ee.getFilters().map((ee=>__PRIVATE_toPipelineBooleanExpr(ee)));return or$1(te[0],te[1],...te.slice(2))}default:l(35306)}throw new Error(`Failed to convert filter to pipeline conditions: ${ee}`)}function __PRIVATE_whereConditionsFromCursor(ee,te,ne){const re="before"===ne?lessThan:greaterThan,se=ee.position.map((ee=>Constant._fromProto(ee))),ie=se.length;let ae=te[ie-1].expr,oe=se[ie-1],ue=re(ae,oe);ee.inclusive&&(ue=or$1(ue,ae.equal(oe)));for(let ee=ie-2;ee>=0;ee--)ae=te[ee].expr,oe=se[ee],ue=or$1(re(ae,oe),and$1(ae.equal(oe),ue));return ue}function __PRIVATE_canonifyExpr(ee){if((ee=__PRIVATE_unwrapExpression(ee))instanceof o)return`fld(${ee.fieldName})`;if(ee instanceof Constant)return`cst(${function __PRIVATE_canonifyConstantValue(ee){return null===ee?"null":"number"==typeof ee?ee.toString():"string"==typeof ee?`"${ee}"`:ee instanceof X?`ref(${ee.path})`:ee instanceof n?`vec(${JSON.stringify(ee)})`:JSON.stringify(ee)}(ee.value)})`;if(ee instanceof x)return`fn(${ee.name},[${ee.params.map(__PRIVATE_canonifyExpr).join(",")}])`;if("ListOfExpressions"===ee.expressionType)return`list([${ee.ur.map(__PRIVATE_canonifyExpr).join(",")}])`;throw new Error(`Unrecognized expr ${JSON.stringify(ee,null,2)}`)}function __PRIVATE_canonifyExprMap(ee){return`${Array.from(ee.entries()).sort().map((([ee,te])=>`${ee}=${__PRIVATE_canonifyExpr(te)}`)).join(",")}`}function __PRIVATE_canonifyPipeline(ee){return ee.stages.map((ee=>function __PRIVATE_canonifyStage(ee){if(ee instanceof w)return`${ee._name}(${__PRIVATE_canonifyExprMap(ee.fields)})`;if(ee instanceof V){let te=`${ee._name}(${__PRIVATE_canonifyExprMap(ee.accumulators)})`;return ee.groups.size>0&&(te+=`grouping(${__PRIVATE_canonifyExprMap(ee.groups)})`),te}if(ee instanceof M)return`${ee._name}(${__PRIVATE_canonifyExprMap(ee.groups)})`;if(ee instanceof H)return`${ee._name}(${ee.Er})`;if(ee instanceof J)return`${ee._name}(${ee.collectionId})`;if(ee instanceof Q)return`${ee._name}()`;if(ee instanceof Y)return`${ee._name}(${ee.hr.sort()})`;if(ee instanceof A)return`${ee._name}(${__PRIVATE_canonifyExpr(ee.condition)})`;if(ee instanceof v)return`${ee._name}(${ee.limit})`;if(ee instanceof L)return`${ee._name}(${function __PRIVATE_canonifySortOrderings(ee){return ee.map((ee=>`${__PRIVATE_canonifyExpr(ee.expr)}${ee.direction}`)).join(",")}(ee.orderings)})`;throw new Error(`Unrecognized stage ${ee._name}`)}(ee))).join("|")}function __PRIVATE_pipelineEq(ee,te){return __PRIVATE_canonifyPipeline(ee)===__PRIVATE_canonifyPipeline(te)}function __PRIVATE_isPipeline(ee){return ee instanceof CorePipeline}function __PRIVATE_stringifyQueryOrPipeline(ee){return __PRIVATE_isPipeline(ee)?__PRIVATE_canonifyPipeline(ee):__PRIVATE_stringifyQuery(ee)}function __PRIVATE_canonifyQueryOrPipeline(ee){return __PRIVATE_isPipeline(ee)?__PRIVATE_canonifyPipeline(ee):function __PRIVATE_canonifyQuery(ee){return`${__PRIVATE_canonifyTarget(__PRIVATE_queryToTarget(ee))}|lt:${ee.limitType}`}(ee)}function __PRIVATE_queryOrPipelineEqual(ee,te){return ee instanceof CorePipeline&&te instanceof CorePipeline?__PRIVATE_pipelineEq(ee,te):!(ee instanceof CorePipeline&&!(te instanceof CorePipeline)||!(ee instanceof CorePipeline)&&te instanceof CorePipeline)&&__PRIVATE_queryEquals(ee,te)}function __PRIVATE_canonifyTargetOrPipeline(ee){return __PRIVATE_targetIsPipelineTarget(ee)?__PRIVATE_canonifyPipeline(ee):__PRIVATE_canonifyTarget(ee)}function __PRIVATE_targetOrPipelineEqual(ee,te){return ee instanceof CorePipeline&&te instanceof CorePipeline?__PRIVATE_pipelineEq(ee,te):!(ee instanceof CorePipeline&&!(te instanceof CorePipeline)||!(ee instanceof CorePipeline)&&te instanceof CorePipeline)&&__PRIVATE_targetEquals(ee,te)}function __PRIVATE_toCorePipeline(ee,te){const ne=function __PRIVATE_rewriteStages(ee){let te=!1;const ne=[];for(const re of ee)if(re instanceof L)if(te=!0,re.orderings.some((ee=>ee.expr instanceof o&&ee.expr.fieldName===Tn)))ne.push(re);else{const ee=re.orderings.map((ee=>ee));ee.push(e(Tn).ascending()),ne.push(new L(ee,{}))}else re instanceof v?(te||(ne.push(new L([e(Tn).ascending()],{})),te=!0),ne.push(re)):ne.push(re);return te||ne.push(new L([e(Tn).ascending()],{})),ne}(ee.stages);if(ee.userDataReader){const te=ee.userDataReader.createContext(3,"toCorePipeline");ne.forEach((ee=>ee._readUserData(te)))}return new CorePipeline(ee.userDataReader.serializer,ne,te)}class MutationBatch{constructor(ee,te,ne,re){this.batchId=ee,this.localWriteTime=te,this.baseMutations=ne,this.mutations=re}applyToRemoteDocument(ee,te){const ne=te.mutationResults;for(let te=0;te<this.mutations.length;te++){const re=this.mutations[te];re.key.isEqual(ee.key)&&__PRIVATE_mutationApplyToRemoteDocument(re,ee,ne[te])}}applyToLocalView(ee,te){for(const ne of this.baseMutations)ne.key.isEqual(ee.key)&&(te=__PRIVATE_mutationApplyToLocalView(ne,ee,te,this.localWriteTime));for(const ne of this.mutations)ne.key.isEqual(ee.key)&&(te=__PRIVATE_mutationApplyToLocalView(ne,ee,te,this.localWriteTime));return te}applyToLocalDocumentSet(ee,te){const ne=__PRIVATE_newMutationMap();return this.mutations.forEach((re=>{const se=ee.get(re.key),ie=se.overlayedDocument;let ae=this.applyToLocalView(ie,se.mutatedFields);ae=te.has(re.key)?null:ae;const oe=__PRIVATE_calculateOverlayMutation(ie,ae);null!==oe&&ne.set(re.key,oe),ie.isValidDocument()||ie.convertToNoDocument(SnapshotVersion.min())})),ne}keys(){return this.mutations.reduce(((ee,te)=>ee.add(te.key)),__PRIVATE_documentKeySet())}isEqual(ee){return this.batchId===ee.batchId&&__PRIVATE_arrayEquals(this.mutations,ee.mutations,((ee,te)=>__PRIVATE_mutationEquals(ee,te)))&&__PRIVATE_arrayEquals(this.baseMutations,ee.baseMutations,((ee,te)=>__PRIVATE_mutationEquals(ee,te)))}}class MutationBatchResult{constructor(ee,te,ne,re){this.batch=ee,this.commitVersion=te,this.mutationResults=ne,this.docVersions=re}static from(ee,te,ne){__PRIVATE_hardAssert(ee.mutations.length===ne.length,58842,{Br:ee.mutations.length,Ur:ne.length});let re=function __PRIVATE_documentVersionMap(){return Jn}();const se=ee.mutations;for(let ee=0;ee<se.length;ee++)re=re.insert(se[ee].key,ne[ee].version);return new MutationBatchResult(ee,te,ne,re)}}const xr="";function __PRIVATE_encodeResourcePath(ee){let te="";for(let ne=0;ne<ee.length;ne++)te.length>0&&(te=__PRIVATE_encodeSeparator(te)),te=__PRIVATE_encodeSegment(ee.get(ne),te);return __PRIVATE_encodeSeparator(te)}function __PRIVATE_encodeSegment(ee,te){let ne=te;const re=ee.length;for(let te=0;te<re;te++){const re=ee.charAt(te);switch(re){case"\0":ne+="";break;case xr:ne+="";break;default:ne+=re}}return ne}function __PRIVATE_encodeSeparator(ee){return ee+xr+""}function __PRIVATE_decodeResourcePath(ee){const te=ee.length;if(__PRIVATE_hardAssert(te>=2,64408,{path:ee}),2===te)return __PRIVATE_hardAssert(ee.charAt(0)===xr&&""===ee.charAt(1),56145,{path:ee}),ResourcePath.emptyPath();const __PRIVATE_lastReasonableEscapeIndex=te-2,ne=[];let re="";for(let se=0;se<te;){const te=ee.indexOf(xr,se);switch((te<0||te>__PRIVATE_lastReasonableEscapeIndex)&&l(50515,{path:ee}),ee.charAt(te+1)){case"":const ie=ee.substring(se,te);let ae;0===re.length?ae=ie:(re+=ie,ae=re,re=""),ne.push(ae);break;case"":re+=ee.substring(se,te),re+="\0";break;case"":re+=ee.substring(se,te+1);break;default:l(61167,{path:ee})}se=te+2}return new ResourcePath(ne)}const Fr="remoteDocuments",Or="owner",Nr="owner",Lr="mutationQueues",Mr="mutations",kr="batchId",Gr="userMutationsIndex",Ur=["userId","batchId"];function __PRIVATE_newDbDocumentMutationPrefixForPath(ee,te){return[ee,__PRIVATE_encodeResourcePath(te)]}function __PRIVATE_newDbDocumentMutationKey(ee,te,ne){return[ee,__PRIVATE_encodeResourcePath(te),ne]}const Hr={},qr="documentMutations",Kr="remoteDocumentsV14",Qr=["prefixPath","collectionGroup","readTime","documentId"],jr="documentKeyIndex",Jr=["prefixPath","collectionGroup","documentId"],zr="collectionGroupIndex",Wr=["collectionGroup","readTime","prefixPath","documentId"],$r="remoteDocumentGlobal",Yr="remoteDocumentGlobalKey",Xr="targets",Zr="queryTargetsIndex",es=["canonicalId","targetId"],ts="targetDocuments",ns=["targetId","path"],rs="documentTargetsIndex",ss=["path","targetId"],is="targetGlobalKey",as="targetGlobal",os="collectionParents",us=["collectionId","parent"],Bs="clientMetadata",ls="bundles",cs="namedQueries",_s="indexConfiguration",hs="collectionGroupIndex",ds="indexState",Es=["indexId","uid"],Cs="sequenceNumberIndex",ps=["uid","sequenceNumber"],ms="indexEntries",fs=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],gs="documentKeyIndex",Ts=["indexId","uid","orderedDocumentKey"],Is="documentOverlays",As=["userId","collectionPath","documentId"],Ps="collectionPathOverlayIndex",Rs=["userId","collectionPath","largestBatchId"],Vs="collectionGroupOverlayIndex",Ds=["userId","collectionGroup","largestBatchId"],ys="globals",ws=[Lr,Mr,qr,Fr,Xr,Or,as,ts,Bs,$r,os,ls,cs],bs=[...ws,Is],Ss=[Lr,Mr,qr,Kr,Xr,Or,as,ts,Bs,$r,os,ls,cs,Is],vs=Ss,xs=[...vs,_s,ds,ms],Fs=xs,Os=[...xs,ys],Ns=Os;function removeMutationBatch(ee,te,ne){const re=ee.store(Mr),se=ee.store(qr),ie=[],ae=IDBKeyRange.only(ne.batchId);let oe=0;const ue=re.jn({range:ae},((ee,te,ne)=>(oe++,ne.delete())));ie.push(ue.next((()=>{__PRIVATE_hardAssert(1===oe,47070,{batchId:ne.batchId})})));const Be=[];for(const ee of ne.mutations){const re=__PRIVATE_newDbDocumentMutationKey(te,ee.key.path,ne.batchId);ie.push(se.delete(re)),Be.push(ee.key)}return PersistencePromise.waitFor(ie).next((()=>Be))}function __PRIVATE_dbDocumentSize(ee){if(!ee)return 0;let te;if(ee.document)te=ee.document;else if(ee.unknownDocument)te=ee.unknownDocument;else{if(!ee.noDocument)throw l(14731);te=ee.noDocument}return JSON.stringify(te).length}class __PRIVATE_IndexedDbTransaction extends PersistenceTransaction{constructor(ee,te){super(),this.kr=ee,this.currentSequenceNumber=te}}function __PRIVATE_getStore(ee,te){const ne=__PRIVATE_debugCast(ee);return __PRIVATE_SimpleDb.xn(ne.kr,te)}class Overlay{constructor(ee,te){this.largestBatchId=ee,this.mutation=te}getKey(){return this.mutation.key}isEqual(ee){return null!==ee&&this.mutation===ee.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}class TargetData{constructor(ee,te,ne,re,se=SnapshotVersion.min(),ie=SnapshotVersion.min(),ae=ByteString.EMPTY_BYTE_STRING,oe=null){this.target=ee,this.targetId=te,this.purpose=ne,this.sequenceNumber=re,this.snapshotVersion=se,this.lastLimboFreeSnapshotVersion=ie,this.resumeToken=ae,this.expectedCount=oe}withSequenceNumber(ee){return new TargetData(this.target,this.targetId,this.purpose,ee,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(ee,te){return new TargetData(this.target,this.targetId,this.purpose,this.sequenceNumber,te,this.lastLimboFreeSnapshotVersion,ee,null)}withExpectedCount(ee){return new TargetData(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,ee)}withLastLimboFreeSnapshotVersion(ee){return new TargetData(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,ee,this.resumeToken,this.expectedCount)}}class __PRIVATE_LocalSerializer{constructor(ee){this.qr=ee}}function __PRIVATE_toDbRemoteDocument(ee,te){const ne=te.key,re={prefixPath:ne.getCollectionPath().popLast().toArray(),collectionGroup:ne.collectionGroup,documentId:ne.path.lastSegment(),readTime:__PRIVATE_toDbTimestampKey(te.readTime),hasCommittedMutations:te.hasCommittedMutations};if(te.isFoundDocument())re.document=function __PRIVATE_toDocument(ee,te){return{name:__PRIVATE_toName(ee,te.key),fields:te.data.value.mapValue.fields,updateTime:toTimestamp(ee,te.version.toTimestamp()),createTime:toTimestamp(ee,te.createTime.toTimestamp())}}(ee.qr,te);else if(te.isNoDocument())re.noDocument={path:ne.path.toArray(),readTime:__PRIVATE_toDbTimestamp(te.version)};else{if(!te.isUnknownDocument())return l(57904,{document:te});re.unknownDocument={path:ne.path.toArray(),version:__PRIVATE_toDbTimestamp(te.version)}}return re}function __PRIVATE_toDbTimestampKey(ee){const te=ee.toTimestamp();return[te.seconds,te.nanoseconds]}function __PRIVATE_toDbTimestamp(ee){const te=ee.toTimestamp();return{seconds:te.seconds,nanoseconds:te.nanoseconds}}function __PRIVATE_fromDbTimestamp(ee){const te=new Timestamp(ee.seconds,ee.nanoseconds);return SnapshotVersion.fromTimestamp(te)}function __PRIVATE_fromDbMutationBatch(ee,te){const ne=(te.baseMutations||[]).map((te=>__PRIVATE_fromMutation(ee.qr,te)));for(let ee=0;ee<te.mutations.length-1;++ee){const ne=te.mutations[ee];if(ee+1<te.mutations.length&&void 0!==te.mutations[ee+1].transform){const re=te.mutations[ee+1];ne.updateTransforms=re.transform.fieldTransforms,te.mutations.splice(ee+1,1),++ee}}const re=te.mutations.map((te=>__PRIVATE_fromMutation(ee.qr,te))),se=Timestamp.fromMillis(te.localWriteTimeMs);return new MutationBatch(te.batchId,se,ne,re)}function __PRIVATE_fromDbTarget(ee,te){const ne=__PRIVATE_fromDbTimestamp(te.readTime),re=void 0!==te.lastLimboFreeSnapshotVersion?__PRIVATE_fromDbTimestamp(te.lastLimboFreeSnapshotVersion):SnapshotVersion.min();let se;return se=function __PRIVATE_isPipelineQueryTarget(ee){return void 0!==ee.structuredPipeline}(te.query)?function __PRIVATE_fromPipelineTarget(ee,te){const ne=ee.structuredPipeline;__PRIVATE_hardAssert((ne?.pipeline?.stages??[]).length>0,1845);const re=ne?.pipeline?.stages.map(__PRIVATE_stageFromProto);return new CorePipeline(te,re)}(te.query,ee.qr):function __PRIVATE_isDocumentQuery(ee){return void 0!==ee.documents}(te.query)?function __PRIVATE_fromDocumentsTarget(ee){const te=ee.documents.length;return __PRIVATE_hardAssert(1===te,1966,{count:te}),__PRIVATE_queryToTarget(__PRIVATE_newQueryForPath(__PRIVATE_fromQueryPath(ee.documents[0])))}(te.query):function __PRIVATE_fromQueryTarget(ee){return __PRIVATE_queryToTarget(__PRIVATE_convertQueryTargetToQuery(ee))}(te.query),new TargetData(se,te.targetId,"TargetPurposeListen",te.lastListenSequenceNumber,ne,re,ByteString.fromBase64String(te.resumeToken))}function __PRIVATE_toDbTarget(ee,te){const ne=__PRIVATE_toDbTimestamp(te.snapshotVersion),re=__PRIVATE_toDbTimestamp(te.lastLimboFreeSnapshotVersion);let se;se=__PRIVATE_targetIsPipelineTarget(te.target)?__PRIVATE_toPipelineTarget(ee.qr,te.target):__PRIVATE_targetIsDocumentTarget(te.target)?__PRIVATE_toDocumentsTarget(ee.qr,te.target):__PRIVATE_toQueryTarget(ee.qr,te.target).be;const ie=te.resumeToken.toBase64();return{targetId:te.targetId,canonicalId:__PRIVATE_canonifyTargetOrPipeline(te.target),readTime:ne,resumeToken:ie,lastListenSequenceNumber:te.sequenceNumber,lastLimboFreeSnapshotVersion:re,query:se}}function __PRIVATE_fromBundledQuery(ee){const te=__PRIVATE_convertQueryTargetToQuery({parent:ee.parent,structuredQuery:ee.structuredQuery});return"LAST"===ee.limitType?__PRIVATE_queryWithLimit(te,te.limit,"L"):te}function __PRIVATE_fromDbDocumentOverlay(ee,te){return new Overlay(te.largestBatchId,__PRIVATE_fromMutation(ee.qr,te.overlayMutation))}function __PRIVATE_toDbDocumentOverlayKey(ee,te){const ne=te.path.lastSegment();return[ee,__PRIVATE_encodeResourcePath(te.path.popLast()),ne]}function __PRIVATE_toDbIndexState(ee,te,ne,re){return{indexId:ee,uid:te,sequenceNumber:ne,readTime:__PRIVATE_toDbTimestamp(re.readTime),documentKey:__PRIVATE_encodeResourcePath(re.documentKey.path),largestBatchId:re.largestBatchId}}function __PRIVATE_stageFromProto(ee){switch(ee.name){case"collection":return new H(ee.args[0].referenceValue,{});case"collection_group":return new J(ee.args[1].stringValue,{});case"database":return new Q({});case"documents":return new Y(ee.args.map((ee=>ee.referenceValue)),{});case"where":return new A(__PRIVATE_exprFromProto(ee.args[0]),{});case"limit":{const te=ee.args[0].integerValue??ee.args[0].doubleValue;return new v("number"==typeof te?te:Number(te),{})}case"sort":return new L(ee.args.map((ee=>function __PRIVATE_orderingFromProto(ee){const te=ee.mapValue?.fields;return new Ordering(__PRIVATE_exprFromProto(te.expression),te.direction?.stringValue,"orderingFromProto")}(ee))),{});default:throw new Error(`Stage type: ${ee.name} not supported.`)}}function __PRIVATE_exprFromProto(ee){return ee.fieldReferenceValue?new o(ta("_exprFromProto",ee.fieldReferenceValue),"_exprFromProto"):ee.functionValue?function __PRIVATE_functionFromProto(ee){return new x(ee.functionValue.name,ee.functionValue.args?.map(__PRIVATE_exprFromProto)||[])}(ee):Constant._fromProto(ee)}class __PRIVATE_IndexedDbMutationQueue{constructor(ee,te,ne,re){this.userId=ee,this.serializer=te,this.indexManager=ne,this.referenceDelegate=re,this.$r={}}static Kr(ee,te,ne,re){__PRIVATE_hardAssert(""!==ee.uid,64387);const se=ee.isAuthenticated()?ee.uid:"";return new __PRIVATE_IndexedDbMutationQueue(se,te,ne,re)}checkEmpty(ee){let te=!0;const ne=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return __PRIVATE_mutationsStore(ee).jn({index:Gr,range:ne},((ee,ne,re)=>{te=!1,re.done()})).next((()=>te))}addMutationBatch(ee,te,ne,re){const se=__PRIVATE_documentMutationsStore(ee),ie=__PRIVATE_mutationsStore(ee);return ie.add({}).next((ae=>{__PRIVATE_hardAssert("number"==typeof ae,49019);const oe=new MutationBatch(ae,te,ne,re),ue=function __PRIVATE_toDbMutationBatch(ee,te,ne){const re=ne.baseMutations.map((te=>toMutation(ee.qr,te))),se=ne.mutations.map((te=>toMutation(ee.qr,te)));return{userId:te,batchId:ne.batchId,localWriteTimeMs:ne.localWriteTime.toMillis(),baseMutations:re,mutations:se}}(this.serializer,this.userId,oe),Be=[];let le=new SortedSet(((ee,te)=>__PRIVATE_primitiveComparator(ee.canonicalString(),te.canonicalString())));for(const ee of re){const te=__PRIVATE_newDbDocumentMutationKey(this.userId,ee.key.path,ae);le=le.add(ee.key.path.popLast()),Be.push(ie.put(ue)),Be.push(se.put(te,Hr))}return le.forEach((te=>{Be.push(this.indexManager.addToCollectionParentIndex(ee,te))})),ee.addOnCommittedListener((()=>{this.$r[ae]=oe.keys()})),PersistencePromise.waitFor(Be).next((()=>oe))}))}lookupMutationBatch(ee,te){return __PRIVATE_mutationsStore(ee).get(te).next((ee=>ee?(__PRIVATE_hardAssert(ee.userId===this.userId,48,"Unexpected user for mutation batch",{userId:ee.userId,batchId:te}),__PRIVATE_fromDbMutationBatch(this.serializer,ee)):null))}Wr(ee,te){return this.$r[te]?PersistencePromise.resolve(this.$r[te]):this.lookupMutationBatch(ee,te).next((ee=>{if(ee){const ne=ee.keys();return this.$r[te]=ne,ne}return null}))}getNextMutationBatchAfterBatchId(ee,te){const ne=te+1,re=IDBKeyRange.lowerBound([this.userId,ne]);let se=null;return __PRIVATE_mutationsStore(ee).jn({index:Gr,range:re},((ee,te,re)=>{te.userId===this.userId&&(__PRIVATE_hardAssert(te.batchId>=ne,47524,{Qr:ne}),se=__PRIVATE_fromDbMutationBatch(this.serializer,te)),re.done()})).next((()=>se))}getHighestUnacknowledgedBatchId(ee){const te=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let ne=vn;return __PRIVATE_mutationsStore(ee).jn({index:Gr,range:te,reverse:!0},((ee,te,re)=>{ne=te.batchId,re.done()})).next((()=>ne))}getAllMutationBatches(ee){const te=IDBKeyRange.bound([this.userId,vn],[this.userId,Number.POSITIVE_INFINITY]);return __PRIVATE_mutationsStore(ee).Kn(Gr,te).next((ee=>ee.map((ee=>__PRIVATE_fromDbMutationBatch(this.serializer,ee)))))}getAllMutationBatchesAffectingDocumentKey(ee,te){const ne=__PRIVATE_newDbDocumentMutationPrefixForPath(this.userId,te.path),re=IDBKeyRange.lowerBound(ne),se=[];return __PRIVATE_documentMutationsStore(ee).jn({range:re},((ne,re,ie)=>{const[ae,oe,ue]=ne,Be=__PRIVATE_decodeResourcePath(oe);if(ae===this.userId&&te.path.isEqual(Be))return __PRIVATE_mutationsStore(ee).get(ue).next((ee=>{if(!ee)throw l(61480,{Gr:ne,batchId:ue});__PRIVATE_hardAssert(ee.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:ee.userId,batchId:ue}),se.push(__PRIVATE_fromDbMutationBatch(this.serializer,ee))}));ie.done()})).next((()=>se))}getAllMutationBatchesAffectingDocumentKeys(ee,te){let ne=new SortedSet(__PRIVATE_primitiveComparator);const re=[];return te.forEach((te=>{const se=__PRIVATE_newDbDocumentMutationPrefixForPath(this.userId,te.path),ie=IDBKeyRange.lowerBound(se),ae=__PRIVATE_documentMutationsStore(ee).jn({range:ie},((ee,re,se)=>{const[ie,ae,oe]=ee,ue=__PRIVATE_decodeResourcePath(ae);ie===this.userId&&te.path.isEqual(ue)?ne=ne.add(oe):se.done()}));re.push(ae)})),PersistencePromise.waitFor(re).next((()=>this.zr(ee,ne)))}getAllMutationBatchesAffectingQuery(ee,te){const ne=te.path,re=ne.length+1,se=__PRIVATE_newDbDocumentMutationPrefixForPath(this.userId,ne),ie=IDBKeyRange.lowerBound(se);let ae=new SortedSet(__PRIVATE_primitiveComparator);return __PRIVATE_documentMutationsStore(ee).jn({range:ie},((ee,te,se)=>{const[ie,oe,ue]=ee,Be=__PRIVATE_decodeResourcePath(oe);ie===this.userId&&ne.isPrefixOf(Be)?Be.length===re&&(ae=ae.add(ue)):se.done()})).next((()=>this.zr(ee,ae)))}zr(ee,te){const ne=[],re=[];return te.forEach((te=>{re.push(__PRIVATE_mutationsStore(ee).get(te).next((ee=>{if(null===ee)throw l(35274,{batchId:te});__PRIVATE_hardAssert(ee.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:ee.userId,batchId:te}),ne.push(__PRIVATE_fromDbMutationBatch(this.serializer,ee))})))})),PersistencePromise.waitFor(re).next((()=>ne))}removeMutationBatch(ee,te){return removeMutationBatch(ee.kr,this.userId,te).next((ne=>(ee.addOnCommittedListener((()=>{this.jr(te.batchId)})),PersistencePromise.forEach(ne,(te=>this.referenceDelegate.markPotentiallyOrphaned(ee,te))))))}jr(ee){delete this.$r[ee]}performConsistencyCheck(ee){return this.checkEmpty(ee).next((te=>{if(!te)return PersistencePromise.resolve();const ne=IDBKeyRange.lowerBound(function __PRIVATE_newDbDocumentMutationPrefixForUser(ee){return[ee]}(this.userId)),re=[];return __PRIVATE_documentMutationsStore(ee).jn({range:ne},((ee,te,ne)=>{if(ee[0]===this.userId){const te=__PRIVATE_decodeResourcePath(ee[1]);re.push(te)}else ne.done()})).next((()=>{__PRIVATE_hardAssert(0===re.length,56720,{Hr:re.map((ee=>ee.canonicalString()))})}))}))}containsKey(ee,te){return __PRIVATE_mutationQueueContainsKey(ee,this.userId,te)}Jr(ee){return __PRIVATE_mutationQueuesStore(ee).get(this.userId).next((ee=>ee||{userId:this.userId,lastAcknowledgedBatchId:vn,lastStreamToken:""}))}}function __PRIVATE_mutationQueueContainsKey(ee,te,ne){const re=__PRIVATE_newDbDocumentMutationPrefixForPath(te,ne.path),se=re[1],ie=IDBKeyRange.lowerBound(re);let ae=!1;return __PRIVATE_documentMutationsStore(ee).jn({range:ie,zn:!0},((ee,ne,re)=>{const[ie,oe,ue]=ee;ie===te&&oe===se&&(ae=!0),re.done()})).next((()=>ae))}function __PRIVATE_mutationsStore(ee){return __PRIVATE_getStore(ee,Mr)}function __PRIVATE_documentMutationsStore(ee){return __PRIVATE_getStore(ee,qr)}function __PRIVATE_mutationQueuesStore(ee){return __PRIVATE_getStore(ee,Lr)}class __PRIVATE_IndexedDbBundleCache{getBundleMetadata(ee,te){return __PRIVATE_bundlesStore(ee).get(te).next((ee=>{if(ee)return function __PRIVATE_fromDbBundle(ee){return{id:ee.bundleId,createTime:__PRIVATE_fromDbTimestamp(ee.createTime),version:ee.version}}(ee)}))}saveBundleMetadata(ee,te){return __PRIVATE_bundlesStore(ee).put(function __PRIVATE_toDbBundle(ee){return{bundleId:ee.id,createTime:__PRIVATE_toDbTimestamp(__PRIVATE_fromVersion(ee.createTime)),version:ee.version}}(te))}getNamedQuery(ee,te){return __PRIVATE_namedQueriesStore(ee).get(te).next((ee=>{if(ee)return function __PRIVATE_fromDbNamedQuery(ee){return{name:ee.name,query:__PRIVATE_fromBundledQuery(ee.bundledQuery),readTime:__PRIVATE_fromDbTimestamp(ee.readTime)}}(ee)}))}saveNamedQuery(ee,te){return __PRIVATE_namedQueriesStore(ee).put(function __PRIVATE_toDbNamedQuery(ee){return{name:ee.name,readTime:__PRIVATE_toDbTimestamp(__PRIVATE_fromVersion(ee.readTime)),bundledQuery:ee.bundledQuery}}(te))}}function __PRIVATE_bundlesStore(ee){return __PRIVATE_getStore(ee,ls)}function __PRIVATE_namedQueriesStore(ee){return __PRIVATE_getStore(ee,cs)}class __PRIVATE_IndexedDbDocumentOverlayCache{constructor(ee,te){this.serializer=ee,this.userId=te}static Kr(ee,te){const ne=te.uid||"";return new __PRIVATE_IndexedDbDocumentOverlayCache(ee,ne)}getOverlay(ee,te){return __PRIVATE_documentOverlayStore(ee).get(__PRIVATE_toDbDocumentOverlayKey(this.userId,te)).next((ee=>ee?__PRIVATE_fromDbDocumentOverlay(this.serializer,ee):null))}getOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return PersistencePromise.forEach(te,(te=>this.getOverlay(ee,te).next((ee=>{null!==ee&&ne.set(te,ee)})))).next((()=>ne))}getAllOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return __PRIVATE_documentOverlayStore(ee).jn(((ee,re)=>{const se=__PRIVATE_fromDbDocumentOverlay(this.serializer,re);se.largestBatchId>te&&ne.set(se.getKey(),se)})).next((()=>ne))}saveOverlays(ee,te,ne){const re=[];return ne.forEach(((ne,se)=>{const ie=new Overlay(te,se);re.push(this.Yr(ee,ie))})),PersistencePromise.waitFor(re)}removeOverlaysForBatchId(ee,te,ne){const re=new Set;te.forEach((ee=>re.add(__PRIVATE_encodeResourcePath(ee.getCollectionPath()))));const se=[];return re.forEach((te=>{const re=IDBKeyRange.bound([this.userId,te,ne],[this.userId,te,ne+1],!1,!0);se.push(__PRIVATE_documentOverlayStore(ee).Gn(Ps,re))})),PersistencePromise.waitFor(se)}getOverlaysForCollection(ee,te,ne){const re=__PRIVATE_newOverlayMap(),se=__PRIVATE_encodeResourcePath(te),ie=IDBKeyRange.bound([this.userId,se,ne],[this.userId,se,Number.POSITIVE_INFINITY],!0);return __PRIVATE_documentOverlayStore(ee).Kn(Ps,ie).next((ee=>{for(const te of ee){const ee=__PRIVATE_fromDbDocumentOverlay(this.serializer,te);re.set(ee.getKey(),ee)}return re}))}getOverlaysForCollectionGroup(ee,te,ne,re){const se=__PRIVATE_newOverlayMap();let ie;const ae=IDBKeyRange.bound([this.userId,te,ne],[this.userId,te,Number.POSITIVE_INFINITY],!0);return __PRIVATE_documentOverlayStore(ee).jn({index:Vs,range:ae},((ee,te,ne)=>{const ae=__PRIVATE_fromDbDocumentOverlay(this.serializer,te);se.size()<re||ae.largestBatchId===ie?(se.set(ae.getKey(),ae),ie=ae.largestBatchId):ne.done()})).next((()=>se))}Yr(ee,te){return __PRIVATE_documentOverlayStore(ee).put(function __PRIVATE_toDbDocumentOverlay(ee,te,ne){const[re,se,ie]=__PRIVATE_toDbDocumentOverlayKey(te,ne.mutation.key);return{userId:te,collectionPath:se,documentId:ie,collectionGroup:ne.mutation.key.getCollectionGroup(),largestBatchId:ne.largestBatchId,overlayMutation:toMutation(ee.qr,ne.mutation)}}(this.serializer,this.userId,te))}}function __PRIVATE_documentOverlayStore(ee){return __PRIVATE_getStore(ee,Is)}class __PRIVATE_IndexedDbGlobalsCache{Zr(ee){return __PRIVATE_getStore(ee,ys)}getSessionToken(ee){return this.Zr(ee).get("sessionToken").next((ee=>{const te=ee?.value;return te?ByteString.fromUint8Array(te):ByteString.EMPTY_BYTE_STRING}))}setSessionToken(ee,te){return this.Zr(ee).put({name:"sessionToken",value:te.toUint8Array()})}}class __PRIVATE_FirestoreIndexValueWriter{constructor(){}Xr(ee,te){this.ei(ee,te),te.ti()}ei(ee,te){if("nullValue"in ee)this.ni(te,5);else if("booleanValue"in ee)this.ni(te,10),te.ri(ee.booleanValue?1:0);else if("integerValue"in ee)this.ni(te,15),te.ri(__PRIVATE_normalizeNumber(ee.integerValue));else if("doubleValue"in ee){const ne=__PRIVATE_normalizeNumber(ee.doubleValue);isNaN(ne)?this.ni(te,13):(this.ni(te,15),__PRIVATE_isNegativeZero(ne)?te.ri(0):te.ri(ne))}else if("timestampValue"in ee){let ne=ee.timestampValue;this.ni(te,20),"string"==typeof ne&&(ne=__PRIVATE_normalizeTimestamp(ne)),te.ii(`${ne.seconds||""}`),te.ri(ne.nanos||0)}else if("stringValue"in ee)this.si(ee.stringValue,te),this._i(te);else if("bytesValue"in ee)this.ni(te,30),te.oi(__PRIVATE_normalizeByteString(ee.bytesValue)),this._i(te);else if("referenceValue"in ee)this.ai(ee.referenceValue,te);else if("geoPointValue"in ee){const ne=ee.geoPointValue;this.ni(te,45),te.ri(ne.latitude||0),te.ri(ne.longitude||0)}else"mapValue"in ee?__PRIVATE_isMaxValue(ee)?this.ni(te,Number.MAX_SAFE_INTEGER):__PRIVATE_isVectorValue(ee)?this.ui(ee.mapValue,te):(this.ci(ee.mapValue,te),this._i(te)):"arrayValue"in ee?(this.li(ee.arrayValue,te),this._i(te)):l(19022,{Ei:ee})}si(ee,te){this.ni(te,25),this.hi(ee,te)}hi(ee,te){te.ii(ee)}ci(ee,te){const ne=ee.fields||{};this.ni(te,55);for(const ee of Object.keys(ne))this.si(ee,te),this.ei(ne[ee],te)}ui(ee,te){const ne=ee.fields||{};this.ni(te,53);const re=Ln,se=ne[re].arrayValue?.values?.length||0;this.ni(te,15),te.ri(__PRIVATE_normalizeNumber(se)),this.si(re,te),this.ei(ne[re],te)}li(ee,te){const ne=ee.values||[];this.ni(te,50);for(const ee of ne)this.ei(ee,te)}ai(ee,te){this.ni(te,37),DocumentKey.fromName(ee).path.forEach((ee=>{this.ni(te,60),this.hi(ee,te)}))}ni(ee,te){ee.ri(te)}_i(ee){ee.ri(2)}}__PRIVATE_FirestoreIndexValueWriter.Ti=new __PRIVATE_FirestoreIndexValueWriter;const Ls=255;function __PRIVATE_numberOfLeadingZerosInByte(ee){if(0===ee)return 8;let te=0;return ee>>4||(te+=4,ee<<=4),ee>>6||(te+=2,ee<<=2),ee>>7||(te+=1),te}function __PRIVATE_unsignedNumLength(ee){const te=64-function __PRIVATE_numberOfLeadingZeros(ee){let te=0;for(let ne=0;ne<8;++ne){const re=__PRIVATE_numberOfLeadingZerosInByte(255&ee[ne]);if(te+=re,8!==re)break}return te}(ee);return Math.ceil(te/8)}class __PRIVATE_OrderedCodeWriter{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Pi(ee){const te=ee[Symbol.iterator]();let ne=te.next();for(;!ne.done;)this.Ri(ne.value),ne=te.next();this.Ii()}Ai(ee){const te=ee[Symbol.iterator]();let ne=te.next();for(;!ne.done;)this.Vi(ne.value),ne=te.next();this.di()}fi(ee){for(const te of ee){const ee=te.charCodeAt(0);if(ee<128)this.Ri(ee);else if(ee<2048)this.Ri(960|ee>>>6),this.Ri(128|63&ee);else if(te<"\ud800"||"\udbff"<te)this.Ri(480|ee>>>12),this.Ri(128|63&ee>>>6),this.Ri(128|63&ee);else{const ee=te.codePointAt(0);this.Ri(240|ee>>>18),this.Ri(128|63&ee>>>12),this.Ri(128|63&ee>>>6),this.Ri(128|63&ee)}}this.Ii()}mi(ee){for(const te of ee){const ee=te.charCodeAt(0);if(ee<128)this.Vi(ee);else if(ee<2048)this.Vi(960|ee>>>6),this.Vi(128|63&ee);else if(te<"\ud800"||"\udbff"<te)this.Vi(480|ee>>>12),this.Vi(128|63&ee>>>6),this.Vi(128|63&ee);else{const ee=te.codePointAt(0);this.Vi(240|ee>>>18),this.Vi(128|63&ee>>>12),this.Vi(128|63&ee>>>6),this.Vi(128|63&ee)}}this.di()}pi(ee){const te=this.gi(ee),ne=__PRIVATE_unsignedNumLength(te);this.yi(1+ne),this.buffer[this.position++]=255&ne;for(let ee=te.length-ne;ee<te.length;++ee)this.buffer[this.position++]=255&te[ee]}wi(ee){const te=this.gi(ee),ne=__PRIVATE_unsignedNumLength(te);this.yi(1+ne),this.buffer[this.position++]=~(255&ne);for(let ee=te.length-ne;ee<te.length;++ee)this.buffer[this.position++]=~(255&te[ee])}bi(){this.Si(Ls),this.Si(255)}Di(){this.xi(Ls),this.xi(255)}reset(){this.position=0}seed(ee){this.yi(ee.length),this.buffer.set(ee,this.position),this.position+=ee.length}Ci(){return this.buffer.slice(0,this.position)}gi(ee){const te=function __PRIVATE_doubleToLongBits(ee){const te=new DataView(new ArrayBuffer(8));return te.setFloat64(0,ee,!1),new Uint8Array(te.buffer)}(ee),ne=!!(128&te[0]);te[0]^=ne?255:128;for(let ee=1;ee<te.length;++ee)te[ee]^=ne?255:0;return te}Ri(ee){const te=255&ee;0===te?(this.Si(0),this.Si(255)):te===Ls?(this.Si(Ls),this.Si(0)):this.Si(te)}Vi(ee){const te=255&ee;0===te?(this.xi(0),this.xi(255)):te===Ls?(this.xi(Ls),this.xi(0)):this.xi(ee)}Ii(){this.Si(0),this.Si(1)}di(){this.xi(0),this.xi(1)}Si(ee){this.yi(1),this.buffer[this.position++]=ee}xi(ee){this.yi(1),this.buffer[this.position++]=~ee}yi(ee){const te=ee+this.position;if(te<=this.buffer.length)return;let ne=2*this.buffer.length;ne<te&&(ne=te);const re=new Uint8Array(ne);re.set(this.buffer),this.buffer=re}}class __PRIVATE_AscendingIndexByteEncoder{constructor(ee){this.Fi=ee}oi(ee){this.Fi.Pi(ee)}ii(ee){this.Fi.fi(ee)}ri(ee){this.Fi.pi(ee)}ti(){this.Fi.bi()}}class __PRIVATE_DescendingIndexByteEncoder{constructor(ee){this.Fi=ee}oi(ee){this.Fi.Ai(ee)}ii(ee){this.Fi.mi(ee)}ri(ee){this.Fi.wi(ee)}ti(){this.Fi.Di()}}class __PRIVATE_IndexByteEncoder{constructor(){this.Fi=new __PRIVATE_OrderedCodeWriter,this.ascending=new __PRIVATE_AscendingIndexByteEncoder(this.Fi),this.descending=new __PRIVATE_DescendingIndexByteEncoder(this.Fi)}seed(ee){this.Fi.seed(ee)}Oi(ee){return 0===ee?this.ascending:this.descending}Ci(){return this.Fi.Ci()}reset(){this.Fi.reset()}}class __PRIVATE_IndexEntry{constructor(ee,te,ne,re){this.Mi=ee,this.Ni=te,this.Li=ne,this.Bi=re}Ui(){const ee=this.Bi.length,te=0===ee||255===this.Bi[ee-1]?ee+1:ee,ne=new Uint8Array(te);return ne.set(this.Bi,0),te!==ee?ne.set([0],this.Bi.length):++ne[ne.length-1],new __PRIVATE_IndexEntry(this.Mi,this.Ni,this.Li,ne)}ki(ee,te,ne){return{indexId:this.Mi,uid:ee,arrayValue:__PRIVATE_encodeKeySafeBytes(this.Li),directionalValue:__PRIVATE_encodeKeySafeBytes(this.Bi),orderedDocumentKey:__PRIVATE_encodeKeySafeBytes(te),documentKey:ne.path.toArray()}}qi(ee,te,ne){const re=this.ki(ee,te,ne);return[re.indexId,re.uid,re.arrayValue,re.directionalValue,re.orderedDocumentKey,re.documentKey]}}function __PRIVATE_indexEntryComparator(ee,te){let ne=ee.Mi-te.Mi;return 0!==ne?ne:(ne=__PRIVATE_compareByteArrays(ee.Li,te.Li),0!==ne?ne:(ne=__PRIVATE_compareByteArrays(ee.Bi,te.Bi),0!==ne?ne:DocumentKey.comparator(ee.Ni,te.Ni)))}function __PRIVATE_compareByteArrays(ee,te){for(let ne=0;ne<ee.length&&ne<te.length;++ne){const re=ee[ne]-te[ne];if(0!==re)return re}return ee.length-te.length}function __PRIVATE_encodeKeySafeBytes(ee){return isSafariOrWebkit()?function __PRIVATE_encodeUint8ArrayToSortableString(ee){let te="";for(let ne=0;ne<ee.length;ne++)te+=String.fromCharCode(ee[ne]);return te}(ee):ee}function __PRIVATE_decodeKeySafeBytes(ee){return"string"!=typeof ee?ee:function __PRIVATE_decodeSortableStringToUint8Array(ee){const te=new Uint8Array(ee.length);for(let ne=0;ne<ee.length;ne++)te[ne]=ee.charCodeAt(ne);return te}(ee)}class __PRIVATE_TargetIndexMatcher{constructor(ee){this.$i=new SortedSet(((ee,te)=>An.comparator(ee.field,te.field))),this.collectionId=null!=ee.collectionGroup?ee.collectionGroup:ee.path.lastSegment(),this.Ki=ee.orderBy,this.Wi=[];for(const te of ee.filters){const ee=te;ee.isInequality()?this.$i=this.$i.add(ee):this.Wi.push(ee)}}get Qi(){return this.$i.size>1}Gi(ee){if(__PRIVATE_hardAssert(ee.collectionGroup===this.collectionId,49279),this.Qi)return!1;const te=__PRIVATE_fieldIndexGetArraySegment(ee);if(void 0!==te&&!this.zi(te))return!1;const ne=__PRIVATE_fieldIndexGetDirectionalSegments(ee);let re=new Set,se=0,ie=0;for(;se<ne.length&&this.zi(ne[se]);++se)re=re.add(ne[se].fieldPath.canonicalString());if(se===ne.length)return!0;if(this.$i.size>0){const ee=this.$i.getIterator().getNext();if(!re.has(ee.field.canonicalString())){const te=ne[se];if(!this.ji(ee,te)||!this.Hi(this.Ki[ie++],te))return!1}++se}for(;se<ne.length;++se){const ee=ne[se];if(ie>=this.Ki.length||!this.Hi(this.Ki[ie++],ee))return!1}return!0}Ji(){if(this.Qi)return null;let ee=new SortedSet(An.comparator);const te=[];for(const ne of this.Wi)if(!ne.field.isKeyField())if("array-contains"===ne.op||"array-contains-any"===ne.op)te.push(new IndexSegment(ne.field,2));else{if(ee.has(ne.field))continue;ee=ee.add(ne.field),te.push(new IndexSegment(ne.field,0))}for(const ne of this.Ki)ne.field.isKeyField()||ee.has(ne.field)||(ee=ee.add(ne.field),te.push(new IndexSegment(ne.field,"asc"===ne.dir?0:1)));return new FieldIndex(FieldIndex.UNKNOWN_ID,this.collectionId,te,IndexState.empty())}zi(ee){for(const te of this.Wi)if(this.ji(te,ee))return!0;return!1}ji(ee,te){if(void 0===ee||!ee.field.isEqual(te.fieldPath))return!1;const ne="array-contains"===ee.op||"array-contains-any"===ee.op;return 2===te.kind===ne}Hi(ee,te){return!!ee.field.isEqual(te.fieldPath)&&(0===te.kind&&"asc"===ee.dir||1===te.kind&&"desc"===ee.dir)}}function __PRIVATE_computeInExpansion(ee){if(__PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,20012),ee instanceof FieldFilter){if(ee instanceof __PRIVATE_InFilter){const te=ee.value.arrayValue?.values?.map((te=>FieldFilter.create(ee.field,"==",te)))||[];return CompositeFilter.create(te,"or")}return ee}const te=ee.filters.map((ee=>__PRIVATE_computeInExpansion(ee)));return CompositeFilter.create(te,ee.op)}function __PRIVATE_getDnfTerms(ee){if(0===ee.getFilters().length)return[];const te=__PRIVATE_computeDistributedNormalForm(__PRIVATE_computeInExpansion(ee));return __PRIVATE_hardAssert(__PRIVATE_isDisjunctiveNormalForm(te),7391),__PRIVATE_isSingleFieldFilter(te)||__PRIVATE_isFlatConjunction(te)?[te]:te.getFilters()}function __PRIVATE_isSingleFieldFilter(ee){return ee instanceof FieldFilter}function __PRIVATE_isFlatConjunction(ee){return ee instanceof CompositeFilter&&__PRIVATE_compositeFilterIsFlatConjunction(ee)}function __PRIVATE_isDisjunctiveNormalForm(ee){return __PRIVATE_isSingleFieldFilter(ee)||__PRIVATE_isFlatConjunction(ee)||function __PRIVATE_isDisjunctionOfFieldFiltersAndFlatConjunctions(ee){if(ee instanceof CompositeFilter&&__PRIVATE_compositeFilterIsDisjunction(ee)){for(const te of ee.getFilters())if(!__PRIVATE_isSingleFieldFilter(te)&&!__PRIVATE_isFlatConjunction(te))return!1;return!0}return!1}(ee)}function __PRIVATE_computeDistributedNormalForm(ee){if(__PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,34018),ee instanceof FieldFilter)return ee;if(1===ee.filters.length)return __PRIVATE_computeDistributedNormalForm(ee.filters[0]);const te=ee.filters.map((ee=>__PRIVATE_computeDistributedNormalForm(ee)));let ne=CompositeFilter.create(te,ee.op);return ne=__PRIVATE_applyAssociation(ne),__PRIVATE_isDisjunctiveNormalForm(ne)?ne:(__PRIVATE_hardAssert(ne instanceof CompositeFilter,64498),__PRIVATE_hardAssert(__PRIVATE_compositeFilterIsConjunction(ne),40251),__PRIVATE_hardAssert(ne.filters.length>1,57927),ne.filters.reduce(((ee,te)=>__PRIVATE_applyDistribution(ee,te))))}function __PRIVATE_applyDistribution(ee,te){let ne;return __PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,38388),__PRIVATE_hardAssert(te instanceof FieldFilter||te instanceof CompositeFilter,25473),ne=ee instanceof FieldFilter?te instanceof FieldFilter?function __PRIVATE_applyDistributionFieldFilters(ee,te){return CompositeFilter.create([ee,te],"and")}(ee,te):__PRIVATE_applyDistributionFieldAndCompositeFilters(ee,te):te instanceof FieldFilter?__PRIVATE_applyDistributionFieldAndCompositeFilters(te,ee):function __PRIVATE_applyDistributionCompositeFilters(ee,te){if(__PRIVATE_hardAssert(ee.filters.length>0&&te.filters.length>0,48005),__PRIVATE_compositeFilterIsConjunction(ee)&&__PRIVATE_compositeFilterIsConjunction(te))return __PRIVATE_compositeFilterWithAddedFilters(ee,te.getFilters());const ne=__PRIVATE_compositeFilterIsDisjunction(ee)?ee:te,re=__PRIVATE_compositeFilterIsDisjunction(ee)?te:ee,se=ne.filters.map((ee=>__PRIVATE_applyDistribution(ee,re)));return CompositeFilter.create(se,"or")}(ee,te),__PRIVATE_applyAssociation(ne)}function __PRIVATE_applyDistributionFieldAndCompositeFilters(ee,te){if(__PRIVATE_compositeFilterIsConjunction(te))return __PRIVATE_compositeFilterWithAddedFilters(te,ee.getFilters());{const ne=te.filters.map((te=>__PRIVATE_applyDistribution(ee,te)));return CompositeFilter.create(ne,"or")}}function __PRIVATE_applyAssociation(ee){if(__PRIVATE_hardAssert(ee instanceof FieldFilter||ee instanceof CompositeFilter,11850),ee instanceof FieldFilter)return ee;const te=ee.getFilters();if(1===te.length)return __PRIVATE_applyAssociation(te[0]);if(__PRIVATE_compositeFilterIsFlat(ee))return ee;const ne=te.map((ee=>__PRIVATE_applyAssociation(ee))),re=[];return ne.forEach((te=>{te instanceof FieldFilter?re.push(te):te instanceof CompositeFilter&&(te.op===ee.op?re.push(...te.filters):re.push(te))})),1===re.length?re[0]:CompositeFilter.create(re,ee.op)}class __PRIVATE_MemoryIndexManager{constructor(){this.Yi=new __PRIVATE_MemoryCollectionParentIndex}addToCollectionParentIndex(ee,te){return this.Yi.add(te),PersistencePromise.resolve()}getCollectionParents(ee,te){return PersistencePromise.resolve(this.Yi.getEntries(te))}addFieldIndex(ee,te){return PersistencePromise.resolve()}deleteFieldIndex(ee,te){return PersistencePromise.resolve()}deleteAllFieldIndexes(ee){return PersistencePromise.resolve()}createTargetIndexes(ee,te){return PersistencePromise.resolve()}getDocumentsMatchingTarget(ee,te){return PersistencePromise.resolve(null)}getIndexType(ee,te){return PersistencePromise.resolve(0)}getFieldIndexes(ee,te){return PersistencePromise.resolve([])}getNextCollectionGroupToUpdate(ee){return PersistencePromise.resolve(null)}getMinOffset(ee,te){return PersistencePromise.resolve(IndexOffset.min())}getMinOffsetFromCollectionGroup(ee,te){return PersistencePromise.resolve(IndexOffset.min())}updateCollectionGroup(ee,te,ne){return PersistencePromise.resolve()}updateIndexEntries(ee,te){return PersistencePromise.resolve()}}class __PRIVATE_MemoryCollectionParentIndex{constructor(){this.index={}}add(ee){const te=ee.lastSegment(),ne=ee.popLast(),re=this.index[te]||new SortedSet(ResourcePath.comparator),se=!re.has(ne);return this.index[te]=re.add(ne),se}has(ee){const te=ee.lastSegment(),ne=ee.popLast(),re=this.index[te];return re&&re.has(ne)}getEntries(ee){return(this.index[ee]||new SortedSet(ResourcePath.comparator)).toArray()}}const Ms="IndexedDbIndexManager",ks=new Uint8Array(0);class __PRIVATE_IndexedDbIndexManager{constructor(ee,te){this.databaseId=te,this.Zi=new __PRIVATE_MemoryCollectionParentIndex,this.Xi=new ObjectMap((ee=>__PRIVATE_canonifyTarget(ee)),((ee,te)=>__PRIVATE_targetEquals(ee,te))),this.uid=ee.uid||""}addToCollectionParentIndex(ee,te){if(!this.Zi.has(te)){const ne=te.lastSegment(),re=te.popLast();ee.addOnCommittedListener((()=>{this.Zi.add(te)}));const se={collectionId:ne,parent:__PRIVATE_encodeResourcePath(re)};return __PRIVATE_collectionParentsStore(ee).put(se)}return PersistencePromise.resolve()}getCollectionParents(ee,te){const ne=[],re=IDBKeyRange.bound([te,""],[__PRIVATE_immediateSuccessor(te),""],!1,!0);return __PRIVATE_collectionParentsStore(ee).Kn(re).next((ee=>{for(const re of ee){if(re.collectionId!==te)break;ne.push(__PRIVATE_decodeResourcePath(re.parent))}return ne}))}addFieldIndex(ee,te){const ne=__PRIVATE_indexConfigurationStore(ee),re=function __PRIVATE_toDbIndexConfiguration(ee){return{indexId:ee.indexId,collectionGroup:ee.collectionGroup,fields:ee.fields.map((ee=>[ee.fieldPath.canonicalString(),ee.kind]))}}(te);delete re.indexId;const se=ne.add(re);if(te.indexState){const ne=__PRIVATE_indexStateStore(ee);return se.next((ee=>{ne.put(__PRIVATE_toDbIndexState(ee,this.uid,te.indexState.sequenceNumber,te.indexState.offset))}))}return se.next()}deleteFieldIndex(ee,te){const ne=__PRIVATE_indexConfigurationStore(ee),re=__PRIVATE_indexStateStore(ee),se=__PRIVATE_indexEntriesStore(ee);return ne.delete(te.indexId).next((()=>re.delete(IDBKeyRange.bound([te.indexId],[te.indexId+1],!1,!0)))).next((()=>se.delete(IDBKeyRange.bound([te.indexId],[te.indexId+1],!1,!0))))}deleteAllFieldIndexes(ee){const te=__PRIVATE_indexConfigurationStore(ee),ne=__PRIVATE_indexEntriesStore(ee),re=__PRIVATE_indexStateStore(ee);return te.Gn().next((()=>ne.Gn())).next((()=>re.Gn()))}createTargetIndexes(ee,te){return PersistencePromise.forEach(this.es(te),(te=>this.getIndexType(ee,te).next((ne=>{if(0===ne||1===ne){const ne=new __PRIVATE_TargetIndexMatcher(te).Ji();if(null!=ne)return this.addFieldIndex(ee,ne)}}))))}getDocumentsMatchingTarget(ee,te){const ne=__PRIVATE_indexEntriesStore(ee);let re=!0;const se=new Map;return PersistencePromise.forEach(this.es(te),(te=>this.ts(ee,te).next((ee=>{re&&(re=!!ee),se.set(te,ee)})))).next((()=>{if(re){let ee=__PRIVATE_documentKeySet();const re=[];return PersistencePromise.forEach(se,((se,ie)=>{__PRIVATE_logDebug(Ms,`Using index ${function __PRIVATE_fieldIndexToString(ee){return`id=${ee.indexId}|cg=${ee.collectionGroup}|f=${ee.fields.map((ee=>`${ee.fieldPath}:${ee.kind}`)).join(",")}`}(se)} to execute ${__PRIVATE_canonifyTarget(te)}`);const ae=function __PRIVATE_targetGetArrayValues(ee,te){const ne=__PRIVATE_fieldIndexGetArraySegment(te);if(void 0===ne)return null;for(const te of __PRIVATE_targetGetFieldFiltersForPath(ee,ne.fieldPath))switch(te.op){case"array-contains-any":return te.value.arrayValue.values||[];case"array-contains":return[te.value]}return null}(ie,se),oe=function __PRIVATE_targetGetNotInValues(ee,te){const ne=new Map;for(const re of __PRIVATE_fieldIndexGetDirectionalSegments(te))for(const te of __PRIVATE_targetGetFieldFiltersForPath(ee,re.fieldPath))switch(te.op){case"==":case"in":ne.set(re.fieldPath.canonicalString(),te.value);break;case"not-in":case"!=":return ne.set(re.fieldPath.canonicalString(),te.value),Array.from(ne.values())}return null}(ie,se),ue=function __PRIVATE_targetGetLowerBound(ee,te){const ne=[];let re=!0;for(const se of __PRIVATE_fieldIndexGetDirectionalSegments(te)){const te=0===se.kind?__PRIVATE_targetGetAscendingBound(ee,se.fieldPath,ee.startAt):__PRIVATE_targetGetDescendingBound(ee,se.fieldPath,ee.startAt);ne.push(te.value),re&&(re=te.inclusive)}return new Bound(ne,re)}(ie,se),Be=function __PRIVATE_targetGetUpperBound(ee,te){const ne=[];let re=!0;for(const se of __PRIVATE_fieldIndexGetDirectionalSegments(te)){const te=0===se.kind?__PRIVATE_targetGetDescendingBound(ee,se.fieldPath,ee.endAt):__PRIVATE_targetGetAscendingBound(ee,se.fieldPath,ee.endAt);ne.push(te.value),re&&(re=te.inclusive)}return new Bound(ne,re)}(ie,se),le=this.ns(se,ie,ue),ce=this.ns(se,ie,Be),_e=this.rs(se,ie,oe),he=this.ss(se.indexId,ae,le,ue.inclusive,ce,Be.inclusive,_e);return PersistencePromise.forEach(he,(se=>ne.Qn(se,te.limit).next((te=>{te.forEach((te=>{const ne=DocumentKey.fromSegments(te.documentKey);ee.has(ne)||(ee=ee.add(ne),re.push(ne))}))}))))})).next((()=>re))}return PersistencePromise.resolve(null)}))}es(ee){let te=this.Xi.get(ee);return te||(te=0===ee.filters.length?[ee]:__PRIVATE_getDnfTerms(CompositeFilter.create(ee.filters,"and")).map((te=>__PRIVATE_newTarget(ee.path,ee.collectionGroup,ee.orderBy,te.getFilters(),ee.limit,ee.startAt,ee.endAt))),this.Xi.set(ee,te),te)}ss(ee,te,ne,re,se,ie,ae){const oe=(null!=te?te.length:1)*Math.max(ne.length,se.length),ue=oe/(null!=te?te.length:1),Be=[];for(let le=0;le<oe;++le){const oe=te?this._s(te[le/ue]):ks,ce=this.us(ee,oe,ne[le%ue],re),_e=this.cs(ee,oe,se[le%ue],ie),he=ae.map((te=>this.us(ee,oe,te,!0)));Be.push(...this.createRange(ce,_e,he))}return Be}us(ee,te,ne,re){const se=new __PRIVATE_IndexEntry(ee,DocumentKey.empty(),te,ne);return re?se:se.Ui()}cs(ee,te,ne,re){const se=new __PRIVATE_IndexEntry(ee,DocumentKey.empty(),te,ne);return re?se.Ui():se}ts(ee,te){const ne=new __PRIVATE_TargetIndexMatcher(te),re=null!=te.collectionGroup?te.collectionGroup:te.path.lastSegment();return this.getFieldIndexes(ee,re).next((ee=>{let te=null;for(const re of ee)ne.Gi(re)&&(!te||re.fields.length>te.fields.length)&&(te=re);return te}))}getIndexType(ee,te){let ne=2;const re=this.es(te);return PersistencePromise.forEach(re,(te=>this.ts(ee,te).next((ee=>{ee?0!==ne&&ee.fields.length<function __PRIVATE_targetGetSegmentCount(ee){let te=new SortedSet(An.comparator),ne=!1;for(const re of ee.filters)for(const ee of re.getFlattenedFilters())ee.field.isKeyField()||("array-contains"===ee.op||"array-contains-any"===ee.op?ne=!0:te=te.add(ee.field));for(const ne of ee.orderBy)ne.field.isKeyField()||(te=te.add(ne.field));return te.size+(ne?1:0)}(te)&&(ne=1):ne=0})))).next((()=>function __PRIVATE_targetHasLimit(ee){return null!==ee.limit}(te)&&re.length>1&&2===ne?1:ne))}ls(ee,te){const ne=new __PRIVATE_IndexByteEncoder;for(const re of __PRIVATE_fieldIndexGetDirectionalSegments(ee)){const ee=te.data.field(re.fieldPath);if(null==ee)return null;const se=ne.Oi(re.kind);__PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,se)}return ne.Ci()}_s(ee){const te=new __PRIVATE_IndexByteEncoder;return __PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,te.Oi(0)),te.Ci()}Es(ee,te){const ne=new __PRIVATE_IndexByteEncoder;return __PRIVATE_FirestoreIndexValueWriter.Ti.Xr(__PRIVATE_refValue(this.databaseId,te),ne.Oi(function __PRIVATE_fieldIndexGetKeyOrder(ee){const te=__PRIVATE_fieldIndexGetDirectionalSegments(ee);return 0===te.length?0:te[te.length-1].kind}(ee))),ne.Ci()}rs(ee,te,ne){if(null===ne)return[];let re=[];re.push(new __PRIVATE_IndexByteEncoder);let se=0;for(const ie of __PRIVATE_fieldIndexGetDirectionalSegments(ee)){const ee=ne[se++];for(const ne of re)if(this.hs(te,ie.fieldPath)&&isArray(ee))re=this.Ts(re,ie,ee);else{const te=ne.Oi(ie.kind);__PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,te)}}return this.Ps(re)}ns(ee,te,ne){return this.rs(ee,te,ne.position)}Ps(ee){const te=[];for(let ne=0;ne<ee.length;++ne)te[ne]=ee[ne].Ci();return te}Ts(ee,te,ne){const re=[...ee],se=[];for(const ee of ne.arrayValue.values||[])for(const ne of re){const re=new __PRIVATE_IndexByteEncoder;re.seed(ne.Ci()),__PRIVATE_FirestoreIndexValueWriter.Ti.Xr(ee,re.Oi(te.kind)),se.push(re)}return se}hs(ee,te){return!!ee.filters.find((ee=>ee instanceof FieldFilter&&ee.field.isEqual(te)&&("in"===ee.op||"not-in"===ee.op)))}getFieldIndexes(ee,te){const ne=__PRIVATE_indexConfigurationStore(ee),re=__PRIVATE_indexStateStore(ee);return(te?ne.Kn(hs,IDBKeyRange.bound(te,te)):ne.Kn()).next((ee=>{const te=[];return PersistencePromise.forEach(ee,(ee=>re.get([ee.indexId,this.uid]).next((ne=>{te.push(function __PRIVATE_fromDbIndexConfiguration(ee,te){const ne=te?new IndexState(te.sequenceNumber,new IndexOffset(__PRIVATE_fromDbTimestamp(te.readTime),new DocumentKey(__PRIVATE_decodeResourcePath(te.documentKey)),te.largestBatchId)):IndexState.empty(),re=ee.fields.map((([ee,te])=>new IndexSegment(An.fromServerFormat(ee),te)));return new FieldIndex(ee.indexId,ee.collectionGroup,re,ne)}(ee,ne))})))).next((()=>te))}))}getNextCollectionGroupToUpdate(ee){return this.getFieldIndexes(ee).next((ee=>0===ee.length?null:(ee.sort(((ee,te)=>{const ne=ee.indexState.sequenceNumber-te.indexState.sequenceNumber;return 0!==ne?ne:__PRIVATE_primitiveComparator(ee.collectionGroup,te.collectionGroup)})),ee[0].collectionGroup)))}updateCollectionGroup(ee,te,ne){const re=__PRIVATE_indexConfigurationStore(ee),se=__PRIVATE_indexStateStore(ee);return this.Rs(ee).next((ee=>re.Kn(hs,IDBKeyRange.bound(te,te)).next((te=>PersistencePromise.forEach(te,(te=>se.put(__PRIVATE_toDbIndexState(te.indexId,this.uid,ee,ne))))))))}updateIndexEntries(ee,te){const ne=new Map;return PersistencePromise.forEach(te,((te,re)=>{const se=ne.get(te.collectionGroup);return(se?PersistencePromise.resolve(se):this.getFieldIndexes(ee,te.collectionGroup)).next((se=>(ne.set(te.collectionGroup,se),PersistencePromise.forEach(se,(ne=>this.Is(ee,te,ne).next((te=>{const se=this.As(re,ne);return te.isEqual(se)?PersistencePromise.resolve():this.Vs(ee,re,ne,te,se)})))))))}))}ds(ee,te,ne,re){return __PRIVATE_indexEntriesStore(ee).put(re.ki(this.uid,this.Es(ne,te.key),te.key))}fs(ee,te,ne,re){return __PRIVATE_indexEntriesStore(ee).delete(re.qi(this.uid,this.Es(ne,te.key),te.key))}Is(ee,te,ne){const re=__PRIVATE_indexEntriesStore(ee);let se=new SortedSet(__PRIVATE_indexEntryComparator);return re.jn({index:gs,range:IDBKeyRange.only([ne.indexId,this.uid,__PRIVATE_encodeKeySafeBytes(this.Es(ne,te))])},((ee,re)=>{se=se.add(new __PRIVATE_IndexEntry(ne.indexId,te,__PRIVATE_decodeKeySafeBytes(re.arrayValue),__PRIVATE_decodeKeySafeBytes(re.directionalValue)))})).next((()=>se))}As(ee,te){let ne=new SortedSet(__PRIVATE_indexEntryComparator);const re=this.ls(te,ee);if(null==re)return ne;const se=__PRIVATE_fieldIndexGetArraySegment(te);if(null!=se){const ie=ee.data.field(se.fieldPath);if(isArray(ie))for(const se of ie.arrayValue.values||[])ne=ne.add(new __PRIVATE_IndexEntry(te.indexId,ee.key,this._s(se),re))}else ne=ne.add(new __PRIVATE_IndexEntry(te.indexId,ee.key,ks,re));return ne}Vs(ee,te,ne,re,se){__PRIVATE_logDebug(Ms,"Updating index entries for document '%s'",te.key);const ie=[];return function __PRIVATE_diffSortedSets(ee,te,ne,re,se){const ie=ee.getIterator(),ae=te.getIterator();let oe=__PRIVATE_advanceIterator(ie),ue=__PRIVATE_advanceIterator(ae);for(;oe||ue;){let ee=!1,te=!1;if(oe&&ue){const re=ne(oe,ue);re<0?te=!0:re>0&&(ee=!0)}else null!=oe?te=!0:ee=!0;ee?(re(ue),ue=__PRIVATE_advanceIterator(ae)):te?(se(oe),oe=__PRIVATE_advanceIterator(ie)):(oe=__PRIVATE_advanceIterator(ie),ue=__PRIVATE_advanceIterator(ae))}}(re,se,__PRIVATE_indexEntryComparator,(re=>{ie.push(this.ds(ee,te,ne,re))}),(re=>{ie.push(this.fs(ee,te,ne,re))})),PersistencePromise.waitFor(ie)}Rs(ee){let te=1;return __PRIVATE_indexStateStore(ee).jn({index:Cs,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((ee,ne,re)=>{re.done(),te=ne.sequenceNumber+1})).next((()=>te))}createRange(ee,te,ne){ne=ne.sort(((ee,te)=>__PRIVATE_indexEntryComparator(ee,te))).filter(((ee,te,ne)=>!te||0!==__PRIVATE_indexEntryComparator(ee,ne[te-1])));const re=[];re.push(ee);for(const se of ne){const ne=__PRIVATE_indexEntryComparator(se,ee),ie=__PRIVATE_indexEntryComparator(se,te);if(0===ne)re[0]=ee.Ui();else if(ne>0&&ie<0)re.push(se),re.push(se.Ui());else if(ie>0)break}re.push(te);const se=[];for(let ee=0;ee<re.length;ee+=2){if(this.ps(re[ee],re[ee+1]))return[];const te=re[ee].qi(this.uid,ks,DocumentKey.empty()),ne=re[ee+1].qi(this.uid,ks,DocumentKey.empty());se.push(IDBKeyRange.bound(te,ne))}return se}ps(ee,te){return __PRIVATE_indexEntryComparator(ee,te)>0}getMinOffsetFromCollectionGroup(ee,te){return this.getFieldIndexes(ee,te).next(__PRIVATE_getMinOffsetFromFieldIndexes)}getMinOffset(ee,te){return PersistencePromise.mapArray(this.es(te),(te=>this.ts(ee,te).next((ee=>ee||l(44426))))).next(__PRIVATE_getMinOffsetFromFieldIndexes)}}function __PRIVATE_collectionParentsStore(ee){return __PRIVATE_getStore(ee,os)}function __PRIVATE_indexEntriesStore(ee){return __PRIVATE_getStore(ee,ms)}function __PRIVATE_indexConfigurationStore(ee){return __PRIVATE_getStore(ee,_s)}function __PRIVATE_indexStateStore(ee){return __PRIVATE_getStore(ee,ds)}function __PRIVATE_getMinOffsetFromFieldIndexes(ee){__PRIVATE_hardAssert(0!==ee.length,28825);let te=ee[0].indexState.offset,ne=te.largestBatchId;for(let re=1;re<ee.length;re++){const se=ee[re].indexState.offset;__PRIVATE_indexOffsetComparator(se,te)<0&&(te=se),ne<se.largestBatchId&&(ne=se.largestBatchId)}return new IndexOffset(te.readTime,te.documentKey,ne)}class __PRIVATE_TargetIdGenerator{constructor(ee){this.gs=ee}next(){return this.gs+=2,this.gs}static ys(){return new __PRIVATE_TargetIdGenerator(0)}static ws(){return new __PRIVATE_TargetIdGenerator(-1)}}class __PRIVATE_IndexedDbTargetCache{constructor(ee,te){this.referenceDelegate=ee,this.serializer=te}allocateTargetId(ee){return this.bs(ee).next((te=>{const ne=new __PRIVATE_TargetIdGenerator(te.highestTargetId);return te.highestTargetId=ne.next(),this.vs(ee,te).next((()=>te.highestTargetId))}))}getLastRemoteSnapshotVersion(ee){return this.bs(ee).next((ee=>SnapshotVersion.fromTimestamp(new Timestamp(ee.lastRemoteSnapshotVersion.seconds,ee.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(ee){return this.bs(ee).next((ee=>ee.highestListenSequenceNumber))}setTargetsMetadata(ee,te,ne){return this.bs(ee).next((re=>(re.highestListenSequenceNumber=te,ne&&(re.lastRemoteSnapshotVersion=ne.toTimestamp()),te>re.highestListenSequenceNumber&&(re.highestListenSequenceNumber=te),this.vs(ee,re))))}addTargetData(ee,te){return this.Ss(ee,te).next((()=>this.bs(ee).next((ne=>(ne.targetCount+=1,this.Ds(te,ne),this.vs(ee,ne))))))}updateTargetData(ee,te){return this.Ss(ee,te)}removeTargetData(ee,te){return this.removeMatchingKeysForTargetId(ee,te.targetId).next((()=>__PRIVATE_targetsStore(ee).delete(te.targetId))).next((()=>this.bs(ee))).next((te=>(__PRIVATE_hardAssert(te.targetCount>0,8065),te.targetCount-=1,this.vs(ee,te))))}removeTargets(ee,te,ne){let re=0;const se=[];return __PRIVATE_targetsStore(ee).jn(((ie,ae)=>{const oe=__PRIVATE_fromDbTarget(this.serializer,ae);oe.sequenceNumber<=te&&null===ne.get(oe.targetId)&&(re++,se.push(this.removeTargetData(ee,oe)))})).next((()=>PersistencePromise.waitFor(se))).next((()=>re))}forEachTarget(ee,te){return __PRIVATE_targetsStore(ee).jn(((ee,ne)=>{const re=__PRIVATE_fromDbTarget(this.serializer,ne);te(re)}))}bs(ee){return __PRIVATE_globalTargetStore(ee).get(is).next((ee=>(__PRIVATE_hardAssert(null!==ee,2888),ee)))}vs(ee,te){return __PRIVATE_globalTargetStore(ee).put(is,te)}Ss(ee,te){return __PRIVATE_targetsStore(ee).put(__PRIVATE_toDbTarget(this.serializer,te))}Ds(ee,te){let ne=!1;return ee.targetId>te.highestTargetId&&(te.highestTargetId=ee.targetId,ne=!0),ee.sequenceNumber>te.highestListenSequenceNumber&&(te.highestListenSequenceNumber=ee.sequenceNumber,ne=!0),ne}getTargetCount(ee){return this.bs(ee).next((ee=>ee.targetCount))}getTargetData(ee,te){const ne=__PRIVATE_canonifyTargetOrPipeline(te),re=IDBKeyRange.bound([ne,Number.NEGATIVE_INFINITY],[ne,Number.POSITIVE_INFINITY]);let se=null;return __PRIVATE_targetsStore(ee).jn({range:re,index:Zr},((ee,ne,re)=>{const ie=__PRIVATE_fromDbTarget(this.serializer,ne);__PRIVATE_targetOrPipelineEqual(te,ie.target)&&(se=ie,re.done())})).next((()=>se))}addMatchingKeys(ee,te,ne){const re=[],se=__PRIVATE_documentTargetStore(ee);return te.forEach((te=>{const ie=__PRIVATE_encodeResourcePath(te.path);re.push(se.put({targetId:ne,path:ie})),re.push(this.referenceDelegate.addReference(ee,ne,te))})),PersistencePromise.waitFor(re)}removeMatchingKeys(ee,te,ne){const re=__PRIVATE_documentTargetStore(ee);return PersistencePromise.forEach(te,(te=>{const se=__PRIVATE_encodeResourcePath(te.path);return PersistencePromise.waitFor([re.delete([ne,se]),this.referenceDelegate.removeReference(ee,ne,te)])}))}removeMatchingKeysForTargetId(ee,te){const ne=__PRIVATE_documentTargetStore(ee),re=IDBKeyRange.bound([te],[te+1],!1,!0);return ne.delete(re)}getMatchingKeysForTargetId(ee,te){const ne=IDBKeyRange.bound([te],[te+1],!1,!0),re=__PRIVATE_documentTargetStore(ee);let se=__PRIVATE_documentKeySet();return re.jn({range:ne,zn:!0},((ee,te,ne)=>{const re=__PRIVATE_decodeResourcePath(ee[1]),ie=new DocumentKey(re);se=se.add(ie)})).next((()=>se))}containsKey(ee,te){const ne=__PRIVATE_encodeResourcePath(te.path),re=IDBKeyRange.bound([ne],[__PRIVATE_immediateSuccessor(ne)],!1,!0);let se=0;return __PRIVATE_documentTargetStore(ee).jn({index:rs,zn:!0,range:re},(([ee,te],ne,re)=>{0!==ee&&(se++,re.done())})).next((()=>se>0))}ge(ee,te){return __PRIVATE_targetsStore(ee).get(te).next((ee=>ee?__PRIVATE_fromDbTarget(this.serializer,ee):null))}}function __PRIVATE_targetsStore(ee){return __PRIVATE_getStore(ee,Xr)}function __PRIVATE_globalTargetStore(ee){return __PRIVATE_getStore(ee,as)}function __PRIVATE_documentTargetStore(ee){return __PRIVATE_getStore(ee,ts)}class __PRIVATE_IndexedDbLruDelegateImpl{constructor(ee,te){this.db=ee,this.garbageCollector=__PRIVATE_newLruGarbageCollector(this,te)}rr(ee){const te=this.xs(ee);return this.db.getTargetCache().getTargetCount(ee).next((ee=>te.next((te=>ee+te))))}xs(ee){let te=0;return this.ir(ee,(ee=>{te++})).next((()=>te))}forEachTarget(ee,te){return this.db.getTargetCache().forEachTarget(ee,te)}ir(ee,te){return this.Cs(ee,((ee,ne)=>te(ne)))}addReference(ee,te,ne){return __PRIVATE_writeSentinelKey(ee,ne)}removeReference(ee,te,ne){return __PRIVATE_writeSentinelKey(ee,ne)}removeTargets(ee,te,ne){return this.db.getTargetCache().removeTargets(ee,te,ne)}markPotentiallyOrphaned(ee,te){return __PRIVATE_writeSentinelKey(ee,te)}Fs(ee,te){return function __PRIVATE_mutationQueuesContainKey(ee,te){let ne=!1;return __PRIVATE_mutationQueuesStore(ee).Hn((re=>__PRIVATE_mutationQueueContainsKey(ee,re,te).next((ee=>(ee&&(ne=!0),PersistencePromise.resolve(!ee)))))).next((()=>ne))}(ee,te)}removeOrphanedDocuments(ee,te){const ne=this.db.getRemoteDocumentCache().newChangeBuffer(),re=[];let se=0;return this.Cs(ee,((ie,ae)=>{if(ae<=te){const te=this.Fs(ee,ie).next((te=>{if(!te)return se++,ne.getEntry(ee,ie).next((()=>(ne.removeEntry(ie,SnapshotVersion.min()),__PRIVATE_documentTargetStore(ee).delete(function __PRIVATE_sentinelKey$1(ee){return[0,__PRIVATE_encodeResourcePath(ee.path)]}(ie)))))}));re.push(te)}})).next((()=>PersistencePromise.waitFor(re))).next((()=>ne.apply(ee))).next((()=>se))}removeTarget(ee,te){const ne=te.withSequenceNumber(ee.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(ee,ne)}updateLimboDocument(ee,te){return __PRIVATE_writeSentinelKey(ee,te)}Cs(ee,te){const ne=__PRIVATE_documentTargetStore(ee);let re,se=__PRIVATE_ListenSequence.yn;return ne.jn({index:rs},(([ee,ne],{path:ie,sequenceNumber:ae})=>{0===ee?(se!==__PRIVATE_ListenSequence.yn&&te(new DocumentKey(__PRIVATE_decodeResourcePath(re)),se),se=ae,re=ie):se=__PRIVATE_ListenSequence.yn})).next((()=>{se!==__PRIVATE_ListenSequence.yn&&te(new DocumentKey(__PRIVATE_decodeResourcePath(re)),se)}))}getCacheSize(ee){return this.db.getRemoteDocumentCache().getSize(ee)}}function __PRIVATE_writeSentinelKey(ee,te){return __PRIVATE_documentTargetStore(ee).put(function __PRIVATE_sentinelRow(ee,te){return{targetId:0,path:__PRIVATE_encodeResourcePath(ee.path),sequenceNumber:te}}(te,ee.currentSequenceNumber))}function __PRIVATE_runPipeline(ee,te){let ne=te;for(const te of ee.stages)ne=evaluate({serializer:ee.serializer,serverTimestampBehavior:ee.listenOptions?.serverTimestampBehavior},te,ne);return ne}function __PRIVATE_pipelineMatches(ee,te){return __PRIVATE_runPipeline(ee,[te]).length>0}function __PRIVATE_queryOrPipelineMatches(ee,te){return __PRIVATE_isPipeline(ee)?__PRIVATE_pipelineMatches(ee,te):__PRIVATE_queryMatches(ee,te)}function evaluate(ee,te,ne){if(te instanceof H)return function __PRIVATE_evaluateCollection(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()&&`/${ee.key.getCollectionPath().canonicalString()}`===te.Er))}(0,te,ne);if(te instanceof A)return function __PRIVATE_evaluateWhere(ee,te,ne){return ne.filter((ne=>{const re=__PRIVATE_valueOrUndefined(__PRIVATE_toEvaluable(te.condition).evaluate(ee,ne));return void 0!==re&&__PRIVATE_valueEquals$1(re,kn)}))}(ee,te,ne);if(te instanceof J)return function __PRIVATE_evaluateCollectionGroup(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()&&ee.key.getCollectionPath().lastSegment()===te.collectionId))}(0,te,ne);if(te instanceof Q)return function __PRIVATE_evaluateDatabase(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()))}(0,0,ne);if(te instanceof Y)return function __PRIVATE_evaluateDocuments(ee,te,ne){return ne.filter((ee=>ee.isFoundDocument()&&te.Tr.has(ee.key.path.toStringWithLeadingSlash())))}(0,te,ne);if(te instanceof v)return function __PRIVATE_evaluateLimit(ee,te,ne){return ne.slice(0,te.limit)}(0,te,ne);if(te instanceof L)return function __PRIVATE_evaluateSort(ee,te,ne){const re=te.orderings.map((ee=>({Os:__PRIVATE_toEvaluable(ee.expr),direction:ee.direction})));return[...ne].sort(((te,ne)=>{for(const{Os:se,direction:ie}of re){const re=__PRIVATE_valueOrUndefined(se.evaluate(ee,te)),ae=__PRIVATE_valueOrUndefined(se.evaluate(ee,ne)),oe=__PRIVATE_valueCompare(re??Mn,ae??Mn);if(0!==oe)return"ascending"===ie?oe:-oe}return 0}))}(ee,te,ne);throw new Error(`Unknown stage: ${te._name}`)}function __PRIVATE_newPipelineComparator(ee){const te=function __PRIVATE_lastEffectiveSort(ee){for(let te=ee.stages.length-1;te>=0;te--){const ne=ee.stages[te];if(ne instanceof L)return ne.orderings}throw new Error("Pipeline must contain at least one Sort stage")}(ee);return(ne,re)=>{for(const se of te){const te=__PRIVATE_valueOrUndefined(__PRIVATE_toEvaluable(se.expr).evaluate({serializer:ee.serializer},ne)),ie=__PRIVATE_valueOrUndefined(__PRIVATE_toEvaluable(se.expr).evaluate({serializer:ee.serializer},re)),ae=__PRIVATE_valueCompare(te||Mn,ie||Mn);if(0!==ae)return"ascending"===se.direction?ae:-ae}return 0}}function __PRIVATE_getLastEffectiveLimit(ee){for(let te=ee.stages.length-1;te>=0;te--){const ne=ee.stages[te];if(ne instanceof v)return{limit:ne.limit}}}class RemoteDocumentChangeBuffer{constructor(){this.changes=new ObjectMap((ee=>ee.toString()),((ee,te)=>ee.isEqual(te))),this.changesApplied=!1}addEntry(ee){this.assertNotApplied(),this.changes.set(ee.key,ee)}removeEntry(ee,te){this.assertNotApplied(),this.changes.set(ee,MutableDocument.newInvalidDocument(ee).setReadTime(te))}getEntry(ee,te){this.assertNotApplied();const ne=this.changes.get(te);return void 0!==ne?PersistencePromise.resolve(ne):this.getFromCache(ee,te)}getEntries(ee,te){return this.getAllFromCache(ee,te)}apply(ee){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(ee)}assertNotApplied(){}}class __PRIVATE_IndexedDbRemoteDocumentCacheImpl{constructor(ee){this.serializer=ee}setIndexManager(ee){this.indexManager=ee}addEntry(ee,te,ne){return __PRIVATE_remoteDocumentsStore(ee).put(ne)}removeEntry(ee,te,ne){return __PRIVATE_remoteDocumentsStore(ee).delete(function __PRIVATE_dbReadTimeKey(ee,te){const ne=ee.path.toArray();return[ne.slice(0,ne.length-2),ne[ne.length-2],__PRIVATE_toDbTimestampKey(te),ne[ne.length-1]]}(te,ne))}updateMetadata(ee,te){return this.getMetadata(ee).next((ne=>(ne.byteSize+=te,this.Ms(ee,ne))))}getEntry(ee,te){let ne=MutableDocument.newInvalidDocument(te);return __PRIVATE_remoteDocumentsStore(ee).jn({index:jr,range:IDBKeyRange.only(__PRIVATE_dbKey(te))},((ee,re)=>{ne=this.Ns(te,re)})).next((()=>ne))}Ls(ee,te){let ne={size:0,document:MutableDocument.newInvalidDocument(te)};return __PRIVATE_remoteDocumentsStore(ee).jn({index:jr,range:IDBKeyRange.only(__PRIVATE_dbKey(te))},((ee,re)=>{ne={document:this.Ns(te,re),size:__PRIVATE_dbDocumentSize(re)}})).next((()=>ne))}getEntries(ee,te){let ne=__PRIVATE_mutableDocumentMap();return this.Bs(ee,te,((ee,te)=>{const re=this.Ns(ee,te);ne=ne.insert(ee,re)})).next((()=>ne))}getAllEntries(ee){let te=__PRIVATE_mutableDocumentMap();return __PRIVATE_remoteDocumentsStore(ee).jn(((ee,ne)=>{const re=this.Ns(DocumentKey.fromSegments(ne.prefixPath.concat(ne.collectionGroup,ne.documentId)),ne);te=te.insert(re.key,re)})).next((()=>te))}Us(ee,te){let ne=__PRIVATE_mutableDocumentMap(),re=new SortedMap(DocumentKey.comparator);return this.Bs(ee,te,((ee,te)=>{const se=this.Ns(ee,te);ne=ne.insert(ee,se),re=re.insert(ee,__PRIVATE_dbDocumentSize(te))})).next((()=>({documents:ne,ks:re})))}Bs(ee,te,ne){if(te.isEmpty())return PersistencePromise.resolve();let re=new SortedSet(__PRIVATE_dbKeyComparator);te.forEach((ee=>re=re.add(ee)));const se=IDBKeyRange.bound(__PRIVATE_dbKey(re.first()),__PRIVATE_dbKey(re.last())),ie=re.getIterator();let ae=ie.getNext();return __PRIVATE_remoteDocumentsStore(ee).jn({index:jr,range:se},((ee,te,re)=>{const se=DocumentKey.fromSegments([...te.prefixPath,te.collectionGroup,te.documentId]);for(;ae&&__PRIVATE_dbKeyComparator(ae,se)<0;)ne(ae,null),ae=ie.getNext();ae&&ae.isEqual(se)&&(ne(ae,te),ae=ie.hasNext()?ie.getNext():null),ae?re.$n(__PRIVATE_dbKey(ae)):re.done()})).next((()=>{for(;ae;)ne(ae,null),ae=ie.hasNext()?ie.getNext():null}))}getDocumentsMatchingQuery(ee,te,ne,re,se){const ie=__PRIVATE_isPipeline(te)?ResourcePath.fromString(getPipelineCollection(te)):te.path,ae=[ie.popLast().toArray(),ie.lastSegment(),__PRIVATE_toDbTimestampKey(ne.readTime),ne.documentKey.path.isEmpty()?"":ne.documentKey.path.lastSegment()],oe=[ie.popLast().toArray(),ie.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return __PRIVATE_remoteDocumentsStore(ee).Kn(IDBKeyRange.bound(ae,oe,!0)).next((ee=>{se?.incrementDocumentReadCount(ee.length);let ne=__PRIVATE_mutableDocumentMap();for(const se of ee){const ee=this.Ns(DocumentKey.fromSegments(se.prefixPath.concat(se.collectionGroup,se.documentId)),se);ee.isFoundDocument()&&(__PRIVATE_queryOrPipelineMatches(te,ee)||re.has(ee.key))&&(ne=ne.insert(ee.key,ee))}return ne}))}getAllFromCollectionGroup(ee,te,ne,re){let se=__PRIVATE_mutableDocumentMap();const ie=__PRIVATE_dbCollectionGroupKey(te,ne),ae=__PRIVATE_dbCollectionGroupKey(te,IndexOffset.max());return __PRIVATE_remoteDocumentsStore(ee).jn({index:zr,range:IDBKeyRange.bound(ie,ae,!0)},((ee,te,ne)=>{const ie=this.Ns(DocumentKey.fromSegments(te.prefixPath.concat(te.collectionGroup,te.documentId)),te);se=se.insert(ie.key,ie),se.size===re&&ne.done()})).next((()=>se))}newChangeBuffer(ee){return new __PRIVATE_IndexedDbRemoteDocumentChangeBuffer(this,!!ee&&ee.trackRemovals)}getSize(ee){return this.getMetadata(ee).next((ee=>ee.byteSize))}getMetadata(ee){return __PRIVATE_documentGlobalStore(ee).get(Yr).next((ee=>(__PRIVATE_hardAssert(!!ee,20021),ee)))}Ms(ee,te){return __PRIVATE_documentGlobalStore(ee).put(Yr,te)}Ns(ee,te){if(te){const ee=function __PRIVATE_fromDbRemoteDocument(ee,te){let ne;if(te.document)ne=fromDocument(ee.qr,te.document,!!te.hasCommittedMutations);else if(te.noDocument){const ee=DocumentKey.fromSegments(te.noDocument.path),re=__PRIVATE_fromDbTimestamp(te.noDocument.readTime);ne=MutableDocument.newNoDocument(ee,re),te.hasCommittedMutations&&ne.setHasCommittedMutations()}else{if(!te.unknownDocument)return l(56709);{const ee=DocumentKey.fromSegments(te.unknownDocument.path),re=__PRIVATE_fromDbTimestamp(te.unknownDocument.version);ne=MutableDocument.newUnknownDocument(ee,re)}}return te.readTime&&ne.setReadTime(function __PRIVATE_fromDbTimestampKey(ee){const te=new Timestamp(ee[0],ee[1]);return SnapshotVersion.fromTimestamp(te)}(te.readTime)),ne}(this.serializer,te);if(!ee.isNoDocument()||!ee.version.isEqual(SnapshotVersion.min()))return ee}return MutableDocument.newInvalidDocument(ee)}}function __PRIVATE_newIndexedDbRemoteDocumentCache(ee){return new __PRIVATE_IndexedDbRemoteDocumentCacheImpl(ee)}class __PRIVATE_IndexedDbRemoteDocumentChangeBuffer extends RemoteDocumentChangeBuffer{constructor(ee,te){super(),this.qs=ee,this.trackRemovals=te,this.$s=new ObjectMap((ee=>ee.toString()),((ee,te)=>ee.isEqual(te)))}applyChanges(ee){const te=[];let ne=0,re=new SortedSet(((ee,te)=>__PRIVATE_primitiveComparator(ee.canonicalString(),te.canonicalString())));return this.changes.forEach(((se,ie)=>{const ae=this.$s.get(se);if(te.push(this.qs.removeEntry(ee,se,ae.readTime)),ie.isValidDocument()){const oe=__PRIVATE_toDbRemoteDocument(this.qs.serializer,ie);re=re.add(se.path.popLast());const ue=__PRIVATE_dbDocumentSize(oe);ne+=ue-ae.size,te.push(this.qs.addEntry(ee,se,oe))}else if(ne-=ae.size,this.trackRemovals){const ne=__PRIVATE_toDbRemoteDocument(this.qs.serializer,ie.convertToNoDocument(SnapshotVersion.min()));te.push(this.qs.addEntry(ee,se,ne))}})),re.forEach((ne=>{te.push(this.qs.indexManager.addToCollectionParentIndex(ee,ne))})),te.push(this.qs.updateMetadata(ee,ne)),PersistencePromise.waitFor(te)}getFromCache(ee,te){return this.qs.Ls(ee,te).next((ee=>(this.$s.set(te,{size:ee.size,readTime:ee.document.readTime}),ee.document)))}getAllFromCache(ee,te){return this.qs.Us(ee,te).next((({documents:ee,ks:te})=>(te.forEach(((te,ne)=>{this.$s.set(te,{size:ne,readTime:ee.get(te).readTime})})),ee)))}}function __PRIVATE_documentGlobalStore(ee){return __PRIVATE_getStore(ee,$r)}function __PRIVATE_remoteDocumentsStore(ee){return __PRIVATE_getStore(ee,Kr)}function __PRIVATE_dbKey(ee){const te=ee.path.toArray();return[te.slice(0,te.length-2),te[te.length-2],te[te.length-1]]}function __PRIVATE_dbCollectionGroupKey(ee,te){const ne=te.documentKey.path.toArray();return[ee,__PRIVATE_toDbTimestampKey(te.readTime),ne.slice(0,ne.length-2),ne.length>0?ne[ne.length-1]:""]}function __PRIVATE_dbKeyComparator(ee,te){const ne=ee.path.toArray(),re=te.path.toArray();let se=0;for(let ee=0;ee<ne.length-2&&ee<re.length-2;++ee)if(se=__PRIVATE_primitiveComparator(ne[ee],re[ee]),se)return se;return se=__PRIVATE_primitiveComparator(ne.length,re.length),se||(se=__PRIVATE_primitiveComparator(ne[ne.length-2],re[re.length-2]),se||__PRIVATE_primitiveComparator(ne[ne.length-1],re[re.length-1]))}class OverlayedDocument{constructor(ee,te){this.overlayedDocument=ee,this.mutatedFields=te}}class LocalDocumentsView{constructor(ee,te,ne,re){this.remoteDocumentCache=ee,this.mutationQueue=te,this.documentOverlayCache=ne,this.indexManager=re}getDocument(ee,te){let ne=null;return this.documentOverlayCache.getOverlay(ee,te).next((re=>(ne=re,this.remoteDocumentCache.getEntry(ee,te)))).next((ee=>(null!==ne&&__PRIVATE_mutationApplyToLocalView(ne.mutation,ee,FieldMask.empty(),Timestamp.now()),ee)))}getDocuments(ee,te){return this.remoteDocumentCache.getEntries(ee,te).next((te=>this.getLocalViewOfDocuments(ee,te,__PRIVATE_documentKeySet()).next((()=>te))))}getLocalViewOfDocuments(ee,te,ne=__PRIVATE_documentKeySet()){const re=__PRIVATE_newOverlayMap();return this.populateOverlays(ee,re,te).next((()=>this.computeViews(ee,te,re,ne).next((ee=>{let te=documentMap();return ee.forEach(((ee,ne)=>{te=te.insert(ee,ne.overlayedDocument)})),te}))))}getOverlayedDocuments(ee,te){const ne=__PRIVATE_newOverlayMap();return this.populateOverlays(ee,ne,te).next((()=>this.computeViews(ee,te,ne,__PRIVATE_documentKeySet())))}populateOverlays(ee,te,ne){const re=[];return ne.forEach((ee=>{te.has(ee)||re.push(ee)})),this.documentOverlayCache.getOverlays(ee,re).next((ee=>{ee.forEach(((ee,ne)=>{te.set(ee,ne)}))}))}computeViews(ee,te,ne,re){let se=__PRIVATE_mutableDocumentMap();const ie=__PRIVATE_newDocumentKeyMap(),ae=function __PRIVATE_newOverlayedDocumentMap(){return __PRIVATE_newDocumentKeyMap()}();return te.forEach(((ee,te)=>{const ae=ne.get(te.key);re.has(te.key)&&(void 0===ae||ae.mutation instanceof __PRIVATE_PatchMutation)?se=se.insert(te.key,te):void 0!==ae?(ie.set(te.key,ae.mutation.getFieldMask()),__PRIVATE_mutationApplyToLocalView(ae.mutation,te,ae.mutation.getFieldMask(),Timestamp.now())):ie.set(te.key,FieldMask.empty())})),this.recalculateAndSaveOverlays(ee,se).next((ee=>(ee.forEach(((ee,te)=>ie.set(ee,te))),te.forEach(((ee,te)=>ae.set(ee,new OverlayedDocument(te,ie.get(ee)??null)))),ae)))}recalculateAndSaveOverlays(ee,te){const ne=__PRIVATE_newDocumentKeyMap();let re=new SortedMap(((ee,te)=>ee-te)),se=__PRIVATE_documentKeySet();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(ee,te).next((ee=>{for(const se of ee)se.keys().forEach((ee=>{const ie=te.get(ee);if(null===ie)return;let ae=ne.get(ee)||FieldMask.empty();ae=se.applyToLocalView(ie,ae),ne.set(ee,ae);const oe=(re.get(se.batchId)||__PRIVATE_documentKeySet()).add(ee);re=re.insert(se.batchId,oe)}))})).next((()=>{const ie=[],ae=re.getReverseIterator();for(;ae.hasNext();){const re=ae.getNext(),oe=re.key,ue=re.value,Be=__PRIVATE_newMutationMap();ue.forEach((ee=>{if(!se.has(ee)){const re=__PRIVATE_calculateOverlayMutation(te.get(ee),ne.get(ee));null!==re&&Be.set(ee,re),se=se.add(ee)}})),ie.push(this.documentOverlayCache.saveOverlays(ee,oe,Be))}return PersistencePromise.waitFor(ie)})).next((()=>ne))}recalculateAndSaveOverlaysForDocumentKeys(ee,te){return this.remoteDocumentCache.getEntries(ee,te).next((te=>this.recalculateAndSaveOverlays(ee,te)))}getDocumentsMatchingQuery(ee,te,ne,re){return __PRIVATE_isPipeline(te)?this.getDocumentsMatchingPipeline(ee,te,ne,re):__PRIVATE_isDocumentQuery$1(te)?this.getDocumentsMatchingDocumentQuery(ee,te.path):__PRIVATE_isCollectionGroupQuery(te)?this.getDocumentsMatchingCollectionGroupQuery(ee,te,ne,re):this.getDocumentsMatchingCollectionQuery(ee,te,ne,re)}getNextDocuments(ee,te,ne,re){return this.remoteDocumentCache.getAllFromCollectionGroup(ee,te,ne,re).next((se=>{const ie=re-se.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(ee,te,ne.largestBatchId,re-se.size):PersistencePromise.resolve(__PRIVATE_newOverlayMap());let ae=Hn,oe=se;return ie.next((te=>PersistencePromise.forEach(te,((te,ne)=>(ae<ne.largestBatchId&&(ae=ne.largestBatchId),se.get(te)?PersistencePromise.resolve():this.remoteDocumentCache.getEntry(ee,te).next((ee=>{oe=oe.insert(te,ee)}))))).next((()=>this.populateOverlays(ee,te,se))).next((()=>this.computeViews(ee,oe,te,__PRIVATE_documentKeySet()))).next((ee=>({batchId:ae,changes:__PRIVATE_convertOverlayedDocumentMapToDocumentMap(ee)})))))}))}getDocumentsMatchingDocumentQuery(ee,te){return this.getDocument(ee,new DocumentKey(te)).next((ee=>{let te=documentMap();return ee.isFoundDocument()&&(te=te.insert(ee.key,ee)),te}))}getDocumentsMatchingCollectionGroupQuery(ee,te,ne,re){const se=te.collectionGroup;let ie=documentMap();return this.indexManager.getCollectionParents(ee,se).next((ae=>PersistencePromise.forEach(ae,(ae=>{const oe=function __PRIVATE_asCollectionQueryAtPath(ee,te){return new __PRIVATE_QueryImpl(te,null,ee.explicitOrderBy.slice(),ee.filters.slice(),ee.limit,ee.limitType,ee.startAt,ee.endAt)}(te,ae.child(se));return this.getDocumentsMatchingCollectionQuery(ee,oe,ne,re).next((ee=>{ee.forEach(((ee,te)=>{ie=ie.insert(ee,te)}))}))})).next((()=>ie))))}getDocumentsMatchingCollectionQuery(ee,te,ne,re){let se;return this.documentOverlayCache.getOverlaysForCollection(ee,te.path,ne.largestBatchId).next((ie=>(se=ie,this.remoteDocumentCache.getDocumentsMatchingQuery(ee,te,ne,se,re)))).next((ee=>this.retrieveMatchingLocalDocuments(se,ee,(ee=>__PRIVATE_queryMatches(te,ee)))))}getDocumentsMatchingPipeline(ee,te,ne,re){if("collection_group"===getPipelineSourceType(te)){const se=getPipelineCollectionGroup(te);let ie=documentMap();return this.indexManager.getCollectionParents(ee,se).next((ae=>PersistencePromise.forEach(ae,(ae=>{const oe=function __PRIVATE_asCollectionPipelineAtPath(ee,te){const ne=ee.stages.map((ee=>ee instanceof J?new H(te.canonicalString(),{}):ee));return new CorePipeline(ee.serializer,ne)}(te,ae.child(se));return this.getDocumentsMatchingPipeline(ee,oe,ne,re).next((ee=>{ee.forEach(((ee,te)=>{ie=ie.insert(ee,te)}))}))})).next((()=>ie))))}{let se;return this.getOverlaysForPipeline(ee,te,ne.largestBatchId).next((ie=>{switch(se=ie,getPipelineSourceType(te)){case"collection":return this.remoteDocumentCache.getDocumentsMatchingQuery(ee,te,ne,se,re);case"documents":let ie=__PRIVATE_documentKeySet();for(const ee of getPipelineDocuments(te))ie=ie.add(DocumentKey.fromPath(ee));return this.remoteDocumentCache.getEntries(ee,ie);case"database":return this.remoteDocumentCache.getAllEntries(ee);default:throw new s("invalid-argument",`Invalid pipeline source to execute offline: ${__PRIVATE_canonifyPipeline(te)}`)}})).next((ee=>this.retrieveMatchingLocalDocuments(se,ee,(ee=>__PRIVATE_pipelineMatches(te,ee)))))}}retrieveMatchingLocalDocuments(ee,te,ne){ee.forEach(((ee,ne)=>{const re=ne.getKey();null===te.get(re)&&(te=te.insert(re,MutableDocument.newInvalidDocument(re)))}));let re=documentMap();return te.forEach(((te,se)=>{const ie=ee.get(te);void 0!==ie&&__PRIVATE_mutationApplyToLocalView(ie.mutation,se,FieldMask.empty(),Timestamp.now()),ne(se)&&(re=re.insert(te,se))})),re}getOverlaysForPipeline(ee,te,ne){switch(getPipelineSourceType(te)){case"collection":return this.documentOverlayCache.getOverlaysForCollection(ee,ResourcePath.fromString(getPipelineCollection(te)),ne);case"collection_group":throw new s("invalid-argument",`Unexpected collection group pipeline: ${__PRIVATE_canonifyPipeline(te)}`);case"documents":return this.documentOverlayCache.getOverlays(ee,getPipelineDocuments(te).map((ee=>DocumentKey.fromPath(ee))));case"database":return this.documentOverlayCache.getAllOverlays(ee,ne);default:throw new s("invalid-argument",`Failed to get overlays for pipeline: ${__PRIVATE_canonifyPipeline(te)}`)}}}class __PRIVATE_MemoryBundleCache{constructor(ee){this.serializer=ee,this.Ks=new Map,this.Ws=new Map}getBundleMetadata(ee,te){return PersistencePromise.resolve(this.Ks.get(te))}saveBundleMetadata(ee,te){return this.Ks.set(te.id,function __PRIVATE_fromBundleMetadata(ee){return{id:ee.id,version:ee.version,createTime:__PRIVATE_fromVersion(ee.createTime)}}(te)),PersistencePromise.resolve()}getNamedQuery(ee,te){return PersistencePromise.resolve(this.Ws.get(te))}saveNamedQuery(ee,te){return this.Ws.set(te.name,function __PRIVATE_fromProtoNamedQuery(ee){return{name:ee.name,query:__PRIVATE_fromBundledQuery(ee.bundledQuery),readTime:__PRIVATE_fromVersion(ee.readTime)}}(te)),PersistencePromise.resolve()}}class __PRIVATE_MemoryDocumentOverlayCache{constructor(){this.overlays=new SortedMap(DocumentKey.comparator),this.Qs=new Map}getOverlay(ee,te){return PersistencePromise.resolve(this.overlays.get(te))}getOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return PersistencePromise.forEach(te,(te=>this.getOverlay(ee,te).next((ee=>{null!==ee&&ne.set(te,ee)})))).next((()=>ne))}getAllOverlays(ee,te){const ne=__PRIVATE_newOverlayMap();return this.overlays.forEach(((ee,re)=>{re.largestBatchId>te&&ne.set(ee,re)})),PersistencePromise.resolve(ne)}saveOverlays(ee,te,ne){return ne.forEach(((ne,re)=>{this.Yr(ee,te,re)})),PersistencePromise.resolve()}removeOverlaysForBatchId(ee,te,ne){const re=this.Qs.get(ne);return void 0!==re&&(re.forEach((ee=>this.overlays=this.overlays.remove(ee))),this.Qs.delete(ne)),PersistencePromise.resolve()}getOverlaysForCollection(ee,te,ne){const re=__PRIVATE_newOverlayMap(),se=te.length+1,ie=new DocumentKey(te.child("")),ae=this.overlays.getIteratorFrom(ie);for(;ae.hasNext();){const ee=ae.getNext().value,ie=ee.getKey();if(!te.isPrefixOf(ie.path))break;ie.path.length===se&&ee.largestBatchId>ne&&re.set(ee.getKey(),ee)}return PersistencePromise.resolve(re)}getOverlaysForCollectionGroup(ee,te,ne,re){let se=new SortedMap(((ee,te)=>ee-te));const ie=this.overlays.getIterator();for(;ie.hasNext();){const ee=ie.getNext().value;if(ee.getKey().getCollectionGroup()===te&&ee.largestBatchId>ne){let te=se.get(ee.largestBatchId);null===te&&(te=__PRIVATE_newOverlayMap(),se=se.insert(ee.largestBatchId,te)),te.set(ee.getKey(),ee)}}const ae=__PRIVATE_newOverlayMap(),oe=se.getIterator();for(;oe.hasNext()&&(oe.getNext().value.forEach(((ee,te)=>ae.set(ee,te))),!(ae.size()>=re)););return PersistencePromise.resolve(ae)}Yr(ee,te,ne){const re=this.overlays.get(ne.key);if(null!==re){const ee=this.Qs.get(re.largestBatchId).delete(ne.key);this.Qs.set(re.largestBatchId,ee)}this.overlays=this.overlays.insert(ne.key,new Overlay(te,ne));let se=this.Qs.get(te);void 0===se&&(se=__PRIVATE_documentKeySet(),this.Qs.set(te,se)),this.Qs.set(te,se.add(ne.key))}}class __PRIVATE_MemoryGlobalsCache{constructor(){this.sessionToken=ByteString.EMPTY_BYTE_STRING}getSessionToken(ee){return PersistencePromise.resolve(this.sessionToken)}setSessionToken(ee,te){return this.sessionToken=te,PersistencePromise.resolve()}}class __PRIVATE_ReferenceSet{constructor(){this.Gs=new SortedSet(__PRIVATE_DocReference.zs),this.js=new SortedSet(__PRIVATE_DocReference.Hs)}isEmpty(){return this.Gs.isEmpty()}addReference(ee,te){const ne=new __PRIVATE_DocReference(ee,te);this.Gs=this.Gs.add(ne),this.js=this.js.add(ne)}Js(ee,te){ee.forEach((ee=>this.addReference(ee,te)))}removeReference(ee,te){this.Ys(new __PRIVATE_DocReference(ee,te))}Zs(ee,te){ee.forEach((ee=>this.removeReference(ee,te)))}Xs(ee){const te=new DocumentKey(new ResourcePath([])),ne=new __PRIVATE_DocReference(te,ee),re=new __PRIVATE_DocReference(te,ee+1),se=[];return this.js.forEachInRange([ne,re],(ee=>{this.Ys(ee),se.push(ee.key)})),se}e_(){this.Gs.forEach((ee=>this.Ys(ee)))}Ys(ee){this.Gs=this.Gs.delete(ee),this.js=this.js.delete(ee)}t_(ee){const te=new DocumentKey(new ResourcePath([])),ne=new __PRIVATE_DocReference(te,ee),re=new __PRIVATE_DocReference(te,ee+1);let se=__PRIVATE_documentKeySet();return this.js.forEachInRange([ne,re],(ee=>{se=se.add(ee.key)})),se}containsKey(ee){const te=new __PRIVATE_DocReference(ee,0),ne=this.Gs.firstAfterOrEqual(te);return null!==ne&&ee.isEqual(ne.key)}}class __PRIVATE_DocReference{constructor(ee,te){this.key=ee,this.n_=te}static zs(ee,te){return DocumentKey.comparator(ee.key,te.key)||__PRIVATE_primitiveComparator(ee.n_,te.n_)}static Hs(ee,te){return __PRIVATE_primitiveComparator(ee.n_,te.n_)||DocumentKey.comparator(ee.key,te.key)}}class __PRIVATE_MemoryMutationQueue{constructor(ee,te){this.indexManager=ee,this.referenceDelegate=te,this.mutationQueue=[],this.Qr=1,this.r_=new SortedSet(__PRIVATE_DocReference.zs)}checkEmpty(ee){return PersistencePromise.resolve(0===this.mutationQueue.length)}addMutationBatch(ee,te,ne,re){const se=this.Qr;this.Qr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const ie=new MutationBatch(se,te,ne,re);this.mutationQueue.push(ie);for(const te of re)this.r_=this.r_.add(new __PRIVATE_DocReference(te.key,se)),this.indexManager.addToCollectionParentIndex(ee,te.key.path.popLast());return PersistencePromise.resolve(ie)}lookupMutationBatch(ee,te){return PersistencePromise.resolve(this.i_(te))}getNextMutationBatchAfterBatchId(ee,te){const ne=te+1,re=this.s_(ne),se=re<0?0:re;return PersistencePromise.resolve(this.mutationQueue.length>se?this.mutationQueue[se]:null)}getHighestUnacknowledgedBatchId(){return PersistencePromise.resolve(0===this.mutationQueue.length?vn:this.Qr-1)}getAllMutationBatches(ee){return PersistencePromise.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(ee,te){const ne=new __PRIVATE_DocReference(te,0),re=new __PRIVATE_DocReference(te,Number.POSITIVE_INFINITY),se=[];return this.r_.forEachInRange([ne,re],(ee=>{const te=this.i_(ee.n_);se.push(te)})),PersistencePromise.resolve(se)}getAllMutationBatchesAffectingDocumentKeys(ee,te){let ne=new SortedSet(__PRIVATE_primitiveComparator);return te.forEach((ee=>{const te=new __PRIVATE_DocReference(ee,0),re=new __PRIVATE_DocReference(ee,Number.POSITIVE_INFINITY);this.r_.forEachInRange([te,re],(ee=>{ne=ne.add(ee.n_)}))})),PersistencePromise.resolve(this.__(ne))}getAllMutationBatchesAffectingQuery(ee,te){const ne=te.path,re=ne.length+1;let se=ne;DocumentKey.isDocumentKey(se)||(se=se.child(""));const ie=new __PRIVATE_DocReference(new DocumentKey(se),0);let ae=new SortedSet(__PRIVATE_primitiveComparator);return this.r_.forEachWhile((ee=>{const te=ee.key.path;return!!ne.isPrefixOf(te)&&(te.length===re&&(ae=ae.add(ee.n_)),!0)}),ie),PersistencePromise.resolve(this.__(ae))}__(ee){const te=[];return ee.forEach((ee=>{const ne=this.i_(ee);null!==ne&&te.push(ne)})),te}removeMutationBatch(ee,te){__PRIVATE_hardAssert(0===this.o_(te.batchId,"removed"),55003),this.mutationQueue.shift();let ne=this.r_;return PersistencePromise.forEach(te.mutations,(re=>{const se=new __PRIVATE_DocReference(re.key,te.batchId);return ne=ne.delete(se),this.referenceDelegate.markPotentiallyOrphaned(ee,re.key)})).next((()=>{this.r_=ne}))}jr(ee){}containsKey(ee,te){const ne=new __PRIVATE_DocReference(te,0),re=this.r_.firstAfterOrEqual(ne);return PersistencePromise.resolve(te.isEqual(re&&re.key))}performConsistencyCheck(ee){return this.mutationQueue.length,PersistencePromise.resolve()}o_(ee,te){return this.s_(ee)}s_(ee){return 0===this.mutationQueue.length?0:ee-this.mutationQueue[0].batchId}i_(ee){const te=this.s_(ee);return te<0||te>=this.mutationQueue.length?null:this.mutationQueue[te]}}class __PRIVATE_MemoryRemoteDocumentCacheImpl{constructor(ee){this.a_=ee,this.docs=function __PRIVATE_documentEntryMap(){return new SortedMap(DocumentKey.comparator)}(),this.size=0}setIndexManager(ee){this.indexManager=ee}addEntry(ee,te){const ne=te.key,re=this.docs.get(ne),se=re?re.size:0,ie=this.a_(te);return this.docs=this.docs.insert(ne,{document:te.mutableCopy(),size:ie}),this.size+=ie-se,this.indexManager.addToCollectionParentIndex(ee,ne.path.popLast())}removeEntry(ee){const te=this.docs.get(ee);te&&(this.docs=this.docs.remove(ee),this.size-=te.size)}getEntry(ee,te){const ne=this.docs.get(te);return PersistencePromise.resolve(ne?ne.document.mutableCopy():MutableDocument.newInvalidDocument(te))}getEntries(ee,te){let ne=__PRIVATE_mutableDocumentMap();return te.forEach((ee=>{const te=this.docs.get(ee);ne=ne.insert(ee,te?te.document.mutableCopy():MutableDocument.newInvalidDocument(ee))})),PersistencePromise.resolve(ne)}getAllEntries(ee){let te=__PRIVATE_mutableDocumentMap();return this.docs.forEach(((ee,ne)=>{te=te.insert(ee,ne.document)})),PersistencePromise.resolve(te)}getDocumentsMatchingQuery(ee,te,ne,re){let se,ie;__PRIVATE_isPipeline(te)?(se=ResourcePath.fromString(getPipelineCollection(te)),ie=ee=>__PRIVATE_pipelineMatches(te,ee)):(se=te.path,ie=ee=>__PRIVATE_queryMatches(te,ee));let ae=__PRIVATE_mutableDocumentMap();const oe=new DocumentKey(se.child("__id-9223372036854775808__")),ue=this.docs.getIteratorFrom(oe);for(;ue.hasNext();){const{key:ee,value:{document:te}}=ue.getNext();if(!se.isPrefixOf(ee.path))break;ee.path.length>se.length+1||__PRIVATE_indexOffsetComparator(__PRIVATE_newIndexOffsetFromDocument(te),ne)<=0||(re.has(te.key)||ie(te))&&(ae=ae.insert(te.key,te.mutableCopy()))}return PersistencePromise.resolve(ae)}getAllFromCollectionGroup(ee,te,ne,re){l(9500)}u_(ee,te){return PersistencePromise.forEach(this.docs,(ee=>te(ee)))}newChangeBuffer(ee){return new __PRIVATE_MemoryRemoteDocumentChangeBuffer(this)}getSize(ee){return PersistencePromise.resolve(this.size)}}class __PRIVATE_MemoryRemoteDocumentChangeBuffer extends RemoteDocumentChangeBuffer{constructor(ee){super(),this.qs=ee}applyChanges(ee){const te=[];return this.changes.forEach(((ne,re)=>{re.isValidDocument()?te.push(this.qs.addEntry(ee,re)):this.qs.removeEntry(ne)})),PersistencePromise.waitFor(te)}getFromCache(ee,te){return this.qs.getEntry(ee,te)}getAllFromCache(ee,te){return this.qs.getEntries(ee,te)}}class __PRIVATE_MemoryTargetCache{constructor(ee){this.persistence=ee,this.c_=new ObjectMap((ee=>__PRIVATE_canonifyTargetOrPipeline(ee)),__PRIVATE_targetOrPipelineEqual),this.lastRemoteSnapshotVersion=SnapshotVersion.min(),this.highestTargetId=0,this.l_=0,this.E_=new __PRIVATE_ReferenceSet,this.targetCount=0,this.h_=__PRIVATE_TargetIdGenerator.ys()}forEachTarget(ee,te){return this.c_.forEach(((ee,ne)=>te(ne))),PersistencePromise.resolve()}getLastRemoteSnapshotVersion(ee){return PersistencePromise.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(ee){return PersistencePromise.resolve(this.l_)}allocateTargetId(ee){return this.highestTargetId=this.h_.next(),PersistencePromise.resolve(this.highestTargetId)}setTargetsMetadata(ee,te,ne){return ne&&(this.lastRemoteSnapshotVersion=ne),te>this.l_&&(this.l_=te),PersistencePromise.resolve()}Ss(ee){this.c_.set(ee.target,ee);const te=ee.targetId;te>this.highestTargetId&&(this.h_=new __PRIVATE_TargetIdGenerator(te),this.highestTargetId=te),ee.sequenceNumber>this.l_&&(this.l_=ee.sequenceNumber)}addTargetData(ee,te){return this.Ss(te),this.targetCount+=1,PersistencePromise.resolve()}updateTargetData(ee,te){return this.Ss(te),PersistencePromise.resolve()}removeTargetData(ee,te){return this.c_.delete(te.target),this.E_.Xs(te.targetId),this.targetCount-=1,PersistencePromise.resolve()}removeTargets(ee,te,ne){let re=0;const se=[];return this.c_.forEach(((ie,ae)=>{ae.sequenceNumber<=te&&null===ne.get(ae.targetId)&&(this.c_.delete(ie),se.push(this.removeMatchingKeysForTargetId(ee,ae.targetId)),re++)})),PersistencePromise.waitFor(se).next((()=>re))}getTargetCount(ee){return PersistencePromise.resolve(this.targetCount)}getTargetData(ee,te){const ne=this.c_.get(te)||null;return PersistencePromise.resolve(ne)}addMatchingKeys(ee,te,ne){return this.E_.Js(te,ne),PersistencePromise.resolve()}removeMatchingKeys(ee,te,ne){this.E_.Zs(te,ne);const re=this.persistence.referenceDelegate,se=[];return re&&te.forEach((te=>{se.push(re.markPotentiallyOrphaned(ee,te))})),PersistencePromise.waitFor(se)}removeMatchingKeysForTargetId(ee,te){return this.E_.Xs(te),PersistencePromise.resolve()}getMatchingKeysForTargetId(ee,te){const ne=this.E_.t_(te);return PersistencePromise.resolve(ne)}containsKey(ee,te){return PersistencePromise.resolve(this.E_.containsKey(te))}}class __PRIVATE_MemoryPersistence{constructor(ee,te){this.T_={},this.overlays={},this.P_=new __PRIVATE_ListenSequence(0),this.R_=!1,this.R_=!0,this.I_=new __PRIVATE_MemoryGlobalsCache,this.referenceDelegate=ee(this),this.A_=new __PRIVATE_MemoryTargetCache(this),this.indexManager=new __PRIVATE_MemoryIndexManager,this.remoteDocumentCache=function __PRIVATE_newMemoryRemoteDocumentCache(ee){return new __PRIVATE_MemoryRemoteDocumentCacheImpl(ee)}((ee=>this.referenceDelegate.V_(ee))),this.serializer=new __PRIVATE_LocalSerializer(te),this.d_=new __PRIVATE_MemoryBundleCache(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.R_=!1,Promise.resolve()}get started(){return this.R_}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(ee){return this.indexManager}getDocumentOverlayCache(ee){let te=this.overlays[ee.toKey()];return te||(te=new __PRIVATE_MemoryDocumentOverlayCache,this.overlays[ee.toKey()]=te),te}getMutationQueue(ee,te){let ne=this.T_[ee.toKey()];return ne||(ne=new __PRIVATE_MemoryMutationQueue(te,this.referenceDelegate),this.T_[ee.toKey()]=ne),ne}getGlobalsCache(){return this.I_}getTargetCache(){return this.A_}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.d_}runTransaction(ee,te,ne){__PRIVATE_logDebug("MemoryPersistence","Starting transaction:",ee);const re=new __PRIVATE_MemoryTransaction(this.P_.next());return this.referenceDelegate.f_(),ne(re).next((ee=>this.referenceDelegate.m_(re).next((()=>ee)))).toPromise().then((ee=>(re.raiseOnCommittedEvent(),ee)))}p_(ee,te){return PersistencePromise.or(Object.values(this.T_).map((ne=>()=>ne.containsKey(ee,te))))}}class __PRIVATE_MemoryTransaction extends PersistenceTransaction{constructor(ee){super(),this.currentSequenceNumber=ee}}class __PRIVATE_MemoryEagerDelegate{constructor(ee){this.persistence=ee,this.g_=new __PRIVATE_ReferenceSet,this.y_=null}static w_(ee){return new __PRIVATE_MemoryEagerDelegate(ee)}get b_(){if(this.y_)return this.y_;throw l(60996)}addReference(ee,te,ne){return this.g_.addReference(ne,te),this.b_.delete(ne.toString()),PersistencePromise.resolve()}removeReference(ee,te,ne){return this.g_.removeReference(ne,te),this.b_.add(ne.toString()),PersistencePromise.resolve()}markPotentiallyOrphaned(ee,te){return this.b_.add(te.toString()),PersistencePromise.resolve()}removeTarget(ee,te){this.g_.Xs(te.targetId).forEach((ee=>this.b_.add(ee.toString())));const ne=this.persistence.getTargetCache();return ne.getMatchingKeysForTargetId(ee,te.targetId).next((ee=>{ee.forEach((ee=>this.b_.add(ee.toString())))})).next((()=>ne.removeTargetData(ee,te)))}f_(){this.y_=new Set}m_(ee){const te=this.persistence.getRemoteDocumentCache().newChangeBuffer();return PersistencePromise.forEach(this.b_,(ne=>{const re=DocumentKey.fromPath(ne);return this.v_(ee,re).next((ee=>{ee||te.removeEntry(re,SnapshotVersion.min())}))})).next((()=>(this.y_=null,te.apply(ee))))}updateLimboDocument(ee,te){return this.v_(ee,te).next((ee=>{ee?this.b_.delete(te.toString()):this.b_.add(te.toString())}))}V_(ee){return 0}v_(ee,te){return PersistencePromise.or([()=>PersistencePromise.resolve(this.g_.containsKey(te)),()=>this.persistence.getTargetCache().containsKey(ee,te),()=>this.persistence.p_(ee,te)])}}class __PRIVATE_MemoryLruDelegate{constructor(ee,te){this.persistence=ee,this.S_=new ObjectMap((ee=>__PRIVATE_encodeResourcePath(ee.path)),((ee,te)=>ee.isEqual(te))),this.garbageCollector=__PRIVATE_newLruGarbageCollector(this,te)}static w_(ee,te){return new __PRIVATE_MemoryLruDelegate(ee,te)}f_(){}m_(ee){return PersistencePromise.resolve()}forEachTarget(ee,te){return this.persistence.getTargetCache().forEachTarget(ee,te)}rr(ee){const te=this.xs(ee);return this.persistence.getTargetCache().getTargetCount(ee).next((ee=>te.next((te=>ee+te))))}xs(ee){let te=0;return this.ir(ee,(ee=>{te++})).next((()=>te))}ir(ee,te){return PersistencePromise.forEach(this.S_,((ne,re)=>this.Fs(ee,ne,re).next((ee=>ee?PersistencePromise.resolve():te(re)))))}removeTargets(ee,te,ne){return this.persistence.getTargetCache().removeTargets(ee,te,ne)}removeOrphanedDocuments(ee,te){let ne=0;const re=this.persistence.getRemoteDocumentCache(),se=re.newChangeBuffer();return re.u_(ee,(re=>this.Fs(ee,re,te).next((ee=>{ee||(ne++,se.removeEntry(re,SnapshotVersion.min()))})))).next((()=>se.apply(ee))).next((()=>ne))}markPotentiallyOrphaned(ee,te){return this.S_.set(te,ee.currentSequenceNumber),PersistencePromise.resolve()}removeTarget(ee,te){const ne=te.withSequenceNumber(ee.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(ee,ne)}addReference(ee,te,ne){return this.S_.set(ne,ee.currentSequenceNumber),PersistencePromise.resolve()}removeReference(ee,te,ne){return this.S_.set(ne,ee.currentSequenceNumber),PersistencePromise.resolve()}updateLimboDocument(ee,te){return this.S_.set(te,ee.currentSequenceNumber),PersistencePromise.resolve()}V_(ee){let te=ee.key.toString().length;return ee.isFoundDocument()&&(te+=__PRIVATE_estimateByteSize(ee.data.value)),te}Fs(ee,te,ne){return PersistencePromise.or([()=>this.persistence.p_(ee,te),()=>this.persistence.getTargetCache().containsKey(ee,te),()=>{const ee=this.S_.get(te);return PersistencePromise.resolve(void 0!==ee&&ee>ne)}])}getCacheSize(ee){return this.persistence.getRemoteDocumentCache().getSize(ee)}}class __PRIVATE_SchemaConverter{constructor(ee){this.serializer=ee}Mn(ee,te,ne,re){const se=new __PRIVATE_SimpleDbTransaction("createOrUpgrade",te);ne<1&&re>=1&&(function __PRIVATE_createPrimaryClientStore(ee){ee.createObjectStore(Or)}(ee),function __PRIVATE_createMutationQueue(ee){ee.createObjectStore(Lr,{keyPath:"userId"});ee.createObjectStore(Mr,{keyPath:kr,autoIncrement:!0}).createIndex(Gr,Ur,{unique:!0}),ee.createObjectStore(qr)}(ee),__PRIVATE_createQueryCache(ee),function __PRIVATE_createLegacyRemoteDocumentCache(ee){ee.createObjectStore(Fr)}(ee));let ie=PersistencePromise.resolve();return ne<3&&re>=3&&(0!==ne&&(function __PRIVATE_dropQueryCache(ee){ee.deleteObjectStore(ts),ee.deleteObjectStore(Xr),ee.deleteObjectStore(as)}(ee),__PRIVATE_createQueryCache(ee)),ie=ie.next((()=>function __PRIVATE_writeEmptyTargetGlobalEntry(ee){const te=ee.store(as),ne={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:SnapshotVersion.min().toTimestamp(),targetCount:0};return te.put(is,ne)}(se)))),ne<4&&re>=4&&(0!==ne&&(ie=ie.next((()=>function __PRIVATE_upgradeMutationBatchSchemaAndMigrateData(ee,te){return te.store(Mr).Kn().next((ne=>{ee.deleteObjectStore(Mr),ee.createObjectStore(Mr,{keyPath:kr,autoIncrement:!0}).createIndex(Gr,Ur,{unique:!0});const re=te.store(Mr),se=ne.map((ee=>re.put(ee)));return PersistencePromise.waitFor(se)}))}(ee,se)))),ie=ie.next((()=>{!function __PRIVATE_createClientMetadataStore(ee){ee.createObjectStore(Bs,{keyPath:"clientId"})}(ee)}))),ne<5&&re>=5&&(ie=ie.next((()=>this.D_(se)))),ne<6&&re>=6&&(ie=ie.next((()=>(function __PRIVATE_createDocumentGlobalStore(ee){ee.createObjectStore($r)}(ee),this.x_(se))))),ne<7&&re>=7&&(ie=ie.next((()=>this.C_(se)))),ne<8&&re>=8&&(ie=ie.next((()=>this.F_(ee,se)))),ne<9&&re>=9&&(ie=ie.next((()=>{!function __PRIVATE_dropRemoteDocumentChangesStore(ee){ee.objectStoreNames.contains("remoteDocumentChanges")&&ee.deleteObjectStore("remoteDocumentChanges")}(ee)}))),ne<10&&re>=10&&(ie=ie.next((()=>this.O_(se)))),ne<11&&re>=11&&(ie=ie.next((()=>{!function __PRIVATE_createBundlesStore(ee){ee.createObjectStore(ls,{keyPath:"bundleId"})}(ee),function __PRIVATE_createNamedQueriesStore(ee){ee.createObjectStore(cs,{keyPath:"name"})}(ee)}))),ne<12&&re>=12&&(ie=ie.next((()=>{!function __PRIVATE_createDocumentOverlayStore(ee){const te=ee.createObjectStore(Is,{keyPath:As});te.createIndex(Ps,Rs,{unique:!1}),te.createIndex(Vs,Ds,{unique:!1})}(ee)}))),ne<13&&re>=13&&(ie=ie.next((()=>function __PRIVATE_createRemoteDocumentCache(ee){const te=ee.createObjectStore(Kr,{keyPath:Qr});te.createIndex(jr,Jr),te.createIndex(zr,Wr)}(ee))).next((()=>this.M_(ee,se))).next((()=>ee.deleteObjectStore(Fr)))),ne<14&&re>=14&&(ie=ie.next((()=>this.N_(ee,se)))),ne<15&&re>=15&&(ie=ie.next((()=>function __PRIVATE_createFieldIndex(ee){ee.createObjectStore(_s,{keyPath:"indexId",autoIncrement:!0}).createIndex(hs,"collectionGroup",{unique:!1});ee.createObjectStore(ds,{keyPath:Es}).createIndex(Cs,ps,{unique:!1});ee.createObjectStore(ms,{keyPath:fs}).createIndex(gs,Ts,{unique:!1})}(ee)))),ne<16&&re>=16&&(ie=ie.next((()=>{te.objectStore(ds).clear()})).next((()=>{te.objectStore(ms).clear()}))),ne<17&&re>=17&&(ie=ie.next((()=>{!function __PRIVATE_createGlobalsStore(ee){ee.createObjectStore(ys,{keyPath:"name"})}(ee)}))),ne<18&&re>=18&&isSafariOrWebkit()&&(ie=ie.next((()=>{te.objectStore(ds).clear()})).next((()=>{te.objectStore(ms).clear()}))),ie}x_(ee){let te=0;return ee.store(Fr).jn(((ee,ne)=>{te+=__PRIVATE_dbDocumentSize(ne)})).next((()=>{const ne={byteSize:te};return ee.store($r).put(Yr,ne)}))}D_(ee){const te=ee.store(Lr),ne=ee.store(Mr);return te.Kn().next((te=>PersistencePromise.forEach(te,(te=>{const re=IDBKeyRange.bound([te.userId,vn],[te.userId,te.lastAcknowledgedBatchId]);return ne.Kn(Gr,re).next((ne=>PersistencePromise.forEach(ne,(ne=>{__PRIVATE_hardAssert(ne.userId===te.userId,18650,"Cannot process batch from unexpected user",{batchId:ne.batchId});const re=__PRIVATE_fromDbMutationBatch(this.serializer,ne);return removeMutationBatch(ee,te.userId,re).next((()=>{}))}))))}))))}C_(ee){const te=ee.store(ts),ne=ee.store(Fr);return ee.store(as).get(is).next((ee=>{const re=[];return ne.jn(((ne,se)=>{const ie=new ResourcePath(ne),ae=function __PRIVATE_sentinelKey(ee){return[0,__PRIVATE_encodeResourcePath(ee)]}(ie);re.push(te.get(ae).next((ne=>ne?PersistencePromise.resolve():(ne=>te.put({targetId:0,path:__PRIVATE_encodeResourcePath(ne),sequenceNumber:ee.highestListenSequenceNumber}))(ie))))})).next((()=>PersistencePromise.waitFor(re)))}))}F_(ee,te){ee.createObjectStore(os,{keyPath:us});const ne=te.store(os),re=new __PRIVATE_MemoryCollectionParentIndex,addEntry=ee=>{if(re.add(ee)){const te=ee.lastSegment(),re=ee.popLast();return ne.put({collectionId:te,parent:__PRIVATE_encodeResourcePath(re)})}};return te.store(Fr).jn({zn:!0},((ee,te)=>{const ne=new ResourcePath(ee);return addEntry(ne.popLast())})).next((()=>te.store(qr).jn({zn:!0},(([ee,te,ne],re)=>{const se=__PRIVATE_decodeResourcePath(te);return addEntry(se.popLast())}))))}O_(ee){const te=ee.store(Xr);return te.jn(((ee,ne)=>{const re=__PRIVATE_fromDbTarget(this.serializer,ne),se=__PRIVATE_toDbTarget(this.serializer,re);return te.put(se)}))}M_(ee,te){const ne=te.store(Fr),re=[];return ne.jn(((ee,ne)=>{const se=te.store(Kr),ie=function __PRIVATE_extractKey(ee){return ee.document?new DocumentKey(ResourcePath.fromString(ee.document.name).popFirst(5)):ee.noDocument?DocumentKey.fromSegments(ee.noDocument.path):ee.unknownDocument?DocumentKey.fromSegments(ee.unknownDocument.path):l(36783)}(ne).path.toArray(),ae={prefixPath:ie.slice(0,ie.length-2),collectionGroup:ie[ie.length-2],documentId:ie[ie.length-1],readTime:ne.readTime||[0,0],unknownDocument:ne.unknownDocument,noDocument:ne.noDocument,document:ne.document,hasCommittedMutations:!!ne.hasCommittedMutations};re.push(se.put(ae))})).next((()=>PersistencePromise.waitFor(re)))}N_(ee,te){const ne=te.store(Mr),re=__PRIVATE_newIndexedDbRemoteDocumentCache(this.serializer),se=new __PRIVATE_MemoryPersistence(__PRIVATE_MemoryEagerDelegate.w_,this.serializer.qr);return ne.Kn().next((ee=>{const ne=new Map;return ee.forEach((ee=>{let te=ne.get(ee.userId)??__PRIVATE_documentKeySet();__PRIVATE_fromDbMutationBatch(this.serializer,ee).keys().forEach((ee=>te=te.add(ee))),ne.set(ee.userId,te)})),PersistencePromise.forEach(ne,((ee,ne)=>{const ie=new User(ne),ae=__PRIVATE_IndexedDbDocumentOverlayCache.Kr(this.serializer,ie),oe=se.getIndexManager(ie),ue=__PRIVATE_IndexedDbMutationQueue.Kr(ie,this.serializer,oe,se.referenceDelegate);return new LocalDocumentsView(re,ue,ae,oe).recalculateAndSaveOverlaysForDocumentKeys(new __PRIVATE_IndexedDbTransaction(te,__PRIVATE_ListenSequence.yn),ee).next()}))}))}}function __PRIVATE_createQueryCache(ee){ee.createObjectStore(ts,{keyPath:ns}).createIndex(rs,ss,{unique:!0}),ee.createObjectStore(Xr,{keyPath:"targetId"}).createIndex(Zr,es,{unique:!0}),ee.createObjectStore(as)}const Gs="IndexedDbPersistence",Us=18e5,Hs=5e3,qs="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.",Ks="main";class __PRIVATE_IndexedDbPersistence{constructor(ee,te,ne,re,se,ie,ae,oe,ue,Be,le=18){if(this.allowTabSynchronization=ee,this.persistenceKey=te,this.clientId=ne,this.xt=se,this.window=ie,this.document=ae,this.L_=ue,this.B_=Be,this.U_=le,this.P_=null,this.R_=!1,this.isPrimary=!1,this.networkEnabled=!0,this.k_=null,this.inForeground=!1,this.q_=null,this.K_=null,this.W_=Number.NEGATIVE_INFINITY,this.Q_=ee=>Promise.resolve(),!__PRIVATE_IndexedDbPersistence.Je())throw new s(gn.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new __PRIVATE_IndexedDbLruDelegateImpl(this,re),this.G_=te+Ks,this.serializer=new __PRIVATE_LocalSerializer(oe),this.z_=new __PRIVATE_SimpleDb(this.G_,this.U_,new __PRIVATE_SchemaConverter(this.serializer)),this.I_=new __PRIVATE_IndexedDbGlobalsCache,this.A_=new __PRIVATE_IndexedDbTargetCache(this.referenceDelegate,this.serializer),this.remoteDocumentCache=__PRIVATE_newIndexedDbRemoteDocumentCache(this.serializer),this.d_=new __PRIVATE_IndexedDbBundleCache,this.window&&this.window.localStorage?this.j_=this.window.localStorage:(this.j_=null,!1===Be&&__PRIVATE_logError(Gs,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.H_().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new s(gn.FAILED_PRECONDITION,qs);return this.J_(),this.Y_(),this.Z_(),this.runTransaction("getHighestListenSequenceNumber","readonly",(ee=>this.A_.getHighestSequenceNumber(ee)))})).then((ee=>{this.P_=new __PRIVATE_ListenSequence(ee,this.L_)})).then((()=>{this.R_=!0})).catch((ee=>(this.z_&&this.z_.close(),Promise.reject(ee))))}X_(ee){return this.Q_=async te=>{if(this.started)return ee(te)},ee(this.isPrimary)}setDatabaseDeletedListener(ee){this.z_.Ln((async te=>{null===te.newVersion&&await ee()}))}setNetworkEnabled(ee){this.networkEnabled!==ee&&(this.networkEnabled=ee,this.xt.enqueueAndForget((async()=>{this.started&&await this.H_()})))}H_(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(ee=>__PRIVATE_clientMetadataStore(ee).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.eo(ee).next((ee=>{ee||(this.isPrimary=!1,this.xt.enqueueRetryable((()=>this.Q_(!1))))}))})).next((()=>this.no(ee))).next((te=>this.isPrimary&&!te?this.ro(ee).next((()=>!1)):!!te&&this.io(ee).next((()=>!0)))))).catch((ee=>{if(__PRIVATE_isIndexedDbTransactionError(ee))return __PRIVATE_logDebug(Gs,"Failed to extend owner lease: ",ee),this.isPrimary;if(!this.allowTabSynchronization)throw ee;return __PRIVATE_logDebug(Gs,"Releasing owner lease after error during lease refresh",ee),!1})).then((ee=>{this.isPrimary!==ee&&this.xt.enqueueRetryable((()=>this.Q_(ee))),this.isPrimary=ee}))}eo(ee){return __PRIVATE_primaryClientStore(ee).get(Nr).next((ee=>PersistencePromise.resolve(this.so(ee))))}_o(ee){return __PRIVATE_clientMetadataStore(ee).delete(this.clientId)}async oo(){if(this.isPrimary&&!this.ao(this.W_,Us)){this.W_=Date.now();const ee=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(ee=>{const te=__PRIVATE_getStore(ee,Bs);return te.Kn().next((ee=>{const ne=this.uo(ee,Us),re=ee.filter((ee=>-1===ne.indexOf(ee)));return PersistencePromise.forEach(re,(ee=>te.delete(ee.clientId))).next((()=>re))}))})).catch((()=>[]));if(this.j_)for(const te of ee)this.j_.removeItem(this.co(te.clientId))}}Z_(){this.K_=this.xt.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.H_().then((()=>this.oo())).then((()=>this.Z_()))))}so(ee){return!!ee&&ee.ownerId===this.clientId}no(ee){return this.B_?PersistencePromise.resolve(!0):__PRIVATE_primaryClientStore(ee).get(Nr).next((te=>{if(null!==te&&this.ao(te.leaseTimestampMs,Hs)&&!this.lo(te.ownerId)){if(this.so(te)&&this.networkEnabled)return!0;if(!this.so(te)){if(!te.allowTabSynchronization)throw new s(gn.FAILED_PRECONDITION,qs);return!1}}return!(!this.networkEnabled||!this.inForeground)||__PRIVATE_clientMetadataStore(ee).Kn().next((ee=>void 0===this.uo(ee,Hs).find((ee=>{if(this.clientId!==ee.clientId){const te=!this.networkEnabled&&ee.networkEnabled,ne=!this.inForeground&&ee.inForeground,re=this.networkEnabled===ee.networkEnabled;if(te||ne&&re)return!0}return!1}))))})).next((ee=>(this.isPrimary!==ee&&__PRIVATE_logDebug(Gs,`Client ${ee?"is":"is not"} eligible for a primary lease.`),ee)))}async shutdown(){this.R_=!1,this.Eo(),this.K_&&(this.K_.cancel(),this.K_=null),this.ho(),this.To(),await this.z_.runTransaction("shutdown","readwrite",[Or,Bs],(ee=>{const te=new __PRIVATE_IndexedDbTransaction(ee,__PRIVATE_ListenSequence.yn);return this.ro(te).next((()=>this._o(te)))})),this.z_.close(),this.Po()}uo(ee,te){return ee.filter((ee=>this.ao(ee.updateTimeMs,te)&&!this.lo(ee.clientId)))}Ro(){return this.runTransaction("getActiveClients","readonly",(ee=>__PRIVATE_clientMetadataStore(ee).Kn().next((ee=>this.uo(ee,Us).map((ee=>ee.clientId))))))}get started(){return this.R_}getGlobalsCache(){return this.I_}getMutationQueue(ee,te){return __PRIVATE_IndexedDbMutationQueue.Kr(ee,this.serializer,te,this.referenceDelegate)}getTargetCache(){return this.A_}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(ee){return new __PRIVATE_IndexedDbIndexManager(ee,this.serializer.qr.databaseId)}getDocumentOverlayCache(ee){return __PRIVATE_IndexedDbDocumentOverlayCache.Kr(this.serializer,ee)}getBundleCache(){return this.d_}runTransaction(ee,te,ne){__PRIVATE_logDebug(Gs,"Starting transaction:",ee);const re="readonly"===te?"readonly":"readwrite",se=function __PRIVATE_getObjectStores(ee){return 18===ee?Ns:17===ee?Os:16===ee?Fs:15===ee?xs:14===ee?vs:13===ee?Ss:12===ee?bs:11===ee?ws:void l(60245)}(this.U_);let ie;return this.z_.runTransaction(ee,re,se,(re=>(ie=new __PRIVATE_IndexedDbTransaction(re,this.P_?this.P_.next():__PRIVATE_ListenSequence.yn),"readwrite-primary"===te?this.eo(ie).next((ee=>!!ee||this.no(ie))).next((te=>{if(!te)throw __PRIVATE_logError(`Failed to obtain primary lease for action '${ee}'.`),this.isPrimary=!1,this.xt.enqueueRetryable((()=>this.Q_(!1))),new s(gn.FAILED_PRECONDITION,hr);return ne(ie)})).next((ee=>this.io(ie).next((()=>ee)))):this.Io(ie).next((()=>ne(ie)))))).then((ee=>(ie.raiseOnCommittedEvent(),ee)))}Io(ee){return __PRIVATE_primaryClientStore(ee).get(Nr).next((ee=>{if(null!==ee&&this.ao(ee.leaseTimestampMs,Hs)&&!this.lo(ee.ownerId)&&!this.so(ee)&&!(this.B_||this.allowTabSynchronization&&ee.allowTabSynchronization))throw new s(gn.FAILED_PRECONDITION,qs)}))}io(ee){const te={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return __PRIVATE_primaryClientStore(ee).put(Nr,te)}static Je(){return __PRIVATE_SimpleDb.Je()}ro(ee){const te=__PRIVATE_primaryClientStore(ee);return te.get(Nr).next((ee=>this.so(ee)?(__PRIVATE_logDebug(Gs,"Releasing primary lease."),te.delete(Nr)):PersistencePromise.resolve()))}ao(ee,te){const ne=Date.now();return!(ee<ne-te||ee>ne&&(__PRIVATE_logError(`Detected an update time that is in the future: ${ee} > ${ne}`),1))}J_(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.q_=()=>{this.xt.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.H_())))},this.document.addEventListener("visibilitychange",this.q_),this.inForeground="visible"===this.document.visibilityState)}ho(){this.q_&&(this.document.removeEventListener("visibilitychange",this.q_),this.q_=null)}Y_(){"function"==typeof this.window?.addEventListener&&(this.k_=()=>{this.Eo();const ee=/(?:Version|Mobile)\/1[456]/;isSafari()&&(navigator.appVersion.match(ee)||navigator.userAgent.match(ee))&&this.xt.enterRestrictedMode(!0),this.xt.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.k_))}To(){this.k_&&(this.window.removeEventListener("pagehide",this.k_),this.k_=null)}lo(ee){try{const te=null!==this.j_?.getItem(this.co(ee));return __PRIVATE_logDebug(Gs,`Client '${ee}' ${te?"is":"is not"} zombied in LocalStorage`),te}catch(ee){return __PRIVATE_logError(Gs,"Failed to get zombied client id.",ee),!1}}Eo(){if(this.j_)try{this.j_.setItem(this.co(this.clientId),String(Date.now()))}catch(ee){__PRIVATE_logError("Failed to set zombie client id.",ee)}}Po(){if(this.j_)try{this.j_.removeItem(this.co(this.clientId))}catch(ee){}}co(ee){return`firestore_zombie_${this.persistenceKey}_${ee}`}}function __PRIVATE_primaryClientStore(ee){return __PRIVATE_getStore(ee,Or)}function __PRIVATE_clientMetadataStore(ee){return __PRIVATE_getStore(ee,Bs)}function __PRIVATE_indexedDbStoragePrefix(ee,te){let ne=ee.projectId;return ee.isDefaultDatabase||(ne+="."+ee.database),"firestore/"+te+"/"+ne+"/"}class __PRIVATE_LocalViewChanges{constructor(ee,te,ne,re){this.targetId=ee,this.fromCache=te,this.Ao=ne,this.Vo=re}static fo(ee,te){let ne=__PRIVATE_documentKeySet(),re=__PRIVATE_documentKeySet();for(const ee of te.docChanges)switch(ee.type){case 0:ne=ne.add(ee.doc.key);break;case 1:re=re.add(ee.doc.key)}return new __PRIVATE_LocalViewChanges(ee,te.fromCache,ne,re)}}function __PRIVATE_compareByKey(ee,te){return DocumentKey.comparator(ee.key,te.key)}class QueryContext{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(ee){this._documentReadCount+=ee}}class __PRIVATE_QueryEngine{constructor(){this.mo=!1,this.po=!1,this.yo=100,this.wo=function __PRIVATE_getDefaultRelativeIndexReadCostPerDocument(){return isSafari()?8:__PRIVATE_getAndroidVersion(getUA())>0?6:4}()}initialize(ee,te){this.bo=ee,this.indexManager=te,this.mo=!0}getDocumentsMatchingQuery(ee,te,ne,re){const se={result:null};return this.vo(ee,te).next((ee=>{se.result=ee})).next((()=>{if(!se.result)return this.So(ee,te,re,ne).next((ee=>{se.result=ee}))})).next((()=>{if(se.result)return;const ne=new QueryContext;return this.Do(ee,te,ne).next((re=>{if(se.result=re,this.po)return this.xo(ee,te,ne,re.size)}))})).next((()=>se.result))}xo(ee,te,ne,re){return __PRIVATE_isPipeline(te)?PersistencePromise.resolve():ne.documentReadCount<this.yo?(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","SDK will not create cache indexes for query:",__PRIVATE_stringifyQuery(te),"since it only creates cache indexes for collection contains","more than or equal to",this.yo,"documents"),PersistencePromise.resolve()):(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","Query:",__PRIVATE_stringifyQuery(te),"scans",ne.documentReadCount,"local documents and returns",re,"documents as results."),ne.documentReadCount>this.wo*re?(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","The SDK decides to create cache indexes for query:",__PRIVATE_stringifyQuery(te),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(ee,__PRIVATE_queryToTarget(te))):PersistencePromise.resolve())}vo(ee,te){if(__PRIVATE_isPipeline(te))return PersistencePromise.resolve(null);let ne=te;if(__PRIVATE_queryMatchesAllDocuments(ne))return PersistencePromise.resolve(null);let re=__PRIVATE_queryToTarget(ne);return this.indexManager.getIndexType(ee,re).next((te=>0===te?null:(null!==ne.limit&&1===te&&(ne=__PRIVATE_queryWithLimit(ne,null,"F"),re=__PRIVATE_queryToTarget(ne)),this.indexManager.getDocumentsMatchingTarget(ee,re).next((te=>{const se=__PRIVATE_documentKeySet(...te);return this.bo.getDocuments(ee,se).next((te=>this.indexManager.getMinOffset(ee,re).next((re=>{const ie=this.Co(ne,te);return this.Fo(ne,ie,se,re.readTime)?this.vo(ee,__PRIVATE_queryWithLimit(ne,null,"F")):this.Oo(ee,ie,ne,re)}))))})))))}So(ee,te,ne,re){return(__PRIVATE_isPipeline(te)?function __PRIVATE_pipelineMatchesAllDocuments(ee){for(const te of ee.stages){if(te instanceof v||te instanceof I)return!1;if(te instanceof A){if(te.condition instanceof __PRIVATE_BooleanFunctionExpression&&"exists"===te.condition._expr.name&&te.condition._expr.params[0]instanceof o&&te.condition._expr.params[0].fieldName===Tn)continue;return!1}}return!0}(te):__PRIVATE_queryMatchesAllDocuments(te))||re.isEqual(SnapshotVersion.min())?PersistencePromise.resolve(null):this.bo.getDocuments(ee,ne).next((se=>{const ie=this.Co(te,se);return this.Fo(te,ie,ne,re)?PersistencePromise.resolve(null):(__PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","Re-using previous result from %s to execute query: %s",re.toString(),__PRIVATE_stringifyQueryOrPipeline(te)),this.Oo(ee,ie,te,__PRIVATE_newIndexOffsetSuccessorFromReadTime(re,Hn)).next((ee=>ee)))}))}Co(ee,te){let ne,re;return __PRIVATE_isPipeline(ee)?(ne=new SortedSet(__PRIVATE_compareByKey),re=te=>__PRIVATE_pipelineMatches(ee,te)):(ne=new SortedSet(__PRIVATE_newQueryComparator(ee)),re=te=>__PRIVATE_queryMatches(ee,te)),te.forEach(((ee,te)=>{re(te)&&(ne=ne.add(te))})),ne}Fo(ee,te,ne,re){if(__PRIVATE_isPipeline(ee))return function __PRIVATE_pipelineHasRanges(ee){return ee.stages.some((ee=>ee instanceof v||ee instanceof I))}(ee);if(null===ee.limit)return!1;if(ne.size!==te.size)return!0;const se="F"===ee.limitType?te.last():te.first();return!!se&&(se.hasPendingWrites||se.version.compareTo(re)>0)}Do(ee,te,ne){return __PRIVATE_getLogLevel()<=Be.DEBUG&&__PRIVATE_logDebug("QueryEngine","Using full collection scan to execute query:",__PRIVATE_stringifyQueryOrPipeline(te)),this.bo.getDocumentsMatchingQuery(ee,te,IndexOffset.min(),ne)}Oo(ee,te,ne,re){return this.bo.getDocumentsMatchingQuery(ee,ne,re).next((ee=>(te.forEach((te=>{ee=ee.insert(te.key,te)})),ee)))}}const Qs="LocalStore";class __PRIVATE_LocalStoreImpl{constructor(ee,te,ne,re){this.persistence=ee,this.Mo=te,this.serializer=re,this.No=new SortedMap(__PRIVATE_primitiveComparator),this.Lo=new ObjectMap((ee=>__PRIVATE_canonifyTargetOrPipeline(ee)),__PRIVATE_targetOrPipelineEqual),this.Bo=new Map,this.Uo=ee.getRemoteDocumentCache(),this.A_=ee.getTargetCache(),this.d_=ee.getBundleCache(),this.ko(ne)}ko(ee){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(ee),this.indexManager=this.persistence.getIndexManager(ee),this.mutationQueue=this.persistence.getMutationQueue(ee,this.indexManager),this.localDocuments=new LocalDocumentsView(this.Uo,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Uo.setIndexManager(this.indexManager),this.Mo.initialize(this.localDocuments,this.indexManager)}collectGarbage(ee){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(te=>ee.collect(te,this.No)))}}function __PRIVATE_newLocalStore(ee,te,ne,re){return new __PRIVATE_LocalStoreImpl(ee,te,ne,re)}async function __PRIVATE_localStoreHandleUserChange(ee,te){const ne=__PRIVATE_debugCast(ee);return await ne.persistence.runTransaction("Handle user change","readonly",(ee=>{let re;return ne.mutationQueue.getAllMutationBatches(ee).next((se=>(re=se,ne.ko(te),ne.mutationQueue.getAllMutationBatches(ee)))).next((te=>{const se=[],ie=[];let ae=__PRIVATE_documentKeySet();for(const ee of re){se.push(ee.batchId);for(const te of ee.mutations)ae=ae.add(te.key)}for(const ee of te){ie.push(ee.batchId);for(const te of ee.mutations)ae=ae.add(te.key)}return ne.localDocuments.getDocuments(ee,ae).next((ee=>({qo:ee,removedBatchIds:se,addedBatchIds:ie})))}))}))}function __PRIVATE_localStoreGetLastRemoteSnapshotVersion(ee){const te=__PRIVATE_debugCast(ee);return te.persistence.runTransaction("Get last remote snapshot version","readonly",(ee=>te.A_.getLastRemoteSnapshotVersion(ee)))}function __PRIVATE_populateDocumentChangeBuffer(ee,te,ne){let re=__PRIVATE_documentKeySet(),se=__PRIVATE_documentKeySet();return ne.forEach((ee=>re=re.add(ee))),te.getEntries(ee,re).next((ee=>{let re=__PRIVATE_mutableDocumentMap();return ne.forEach(((ne,ie)=>{const ae=ee.get(ne);ie.isFoundDocument()!==ae.isFoundDocument()&&(se=se.add(ne)),ie.isNoDocument()&&ie.version.isEqual(SnapshotVersion.min())?(te.removeEntry(ne,ie.readTime),re=re.insert(ne,ie)):!ae.isValidDocument()||ie.version.compareTo(ae.version)>0||0===ie.version.compareTo(ae.version)&&ae.hasPendingWrites?(te.addEntry(ie),re=re.insert(ne,ie)):__PRIVATE_logDebug(Qs,"Ignoring outdated watch update for ",ne,". Current version:",ae.version," Watch version:",ie.version)})),{$o:re,Ko:se}}))}function __PRIVATE_localStoreGetNextMutationBatch(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Get next mutation batch","readonly",(ee=>(void 0===te&&(te=vn),ne.mutationQueue.getNextMutationBatchAfterBatchId(ee,te))))}function __PRIVATE_localStoreAllocateTarget(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Allocate target","readwrite",(ee=>{let re;return ne.A_.getTargetData(ee,te).next((se=>se?(re=se,PersistencePromise.resolve(re)):ne.A_.allocateTargetId(ee).next((se=>(re=new TargetData(te,se,"TargetPurposeListen",ee.currentSequenceNumber),ne.A_.addTargetData(ee,re).next((()=>re)))))))})).then((ee=>{const re=ne.No.get(ee.targetId);return(null===re||ee.snapshotVersion.compareTo(re.snapshotVersion)>0)&&(ne.No=ne.No.insert(ee.targetId,ee),ne.Lo.set(te,ee.targetId)),ee}))}async function __PRIVATE_localStoreReleaseTarget(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.No.get(te),ie=ne?"readwrite":"readwrite-primary";try{ne||await re.persistence.runTransaction("Release target",ie,(ee=>re.persistence.referenceDelegate.removeTarget(ee,se)))}catch(ee){if(!__PRIVATE_isIndexedDbTransactionError(ee))throw ee;__PRIVATE_logDebug(Qs,`Failed to update sequence numbers for target ${te}: ${ee}`)}re.No=re.No.remove(te),re.Lo.delete(se.target)}function __PRIVATE_localStoreExecuteQuery(ee,te,ne){const re=__PRIVATE_debugCast(ee);let se=SnapshotVersion.min(),ie=__PRIVATE_documentKeySet();return re.persistence.runTransaction("Execute query","readwrite",(ee=>function __PRIVATE_localStoreGetTargetData(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.Lo.get(ne);return void 0!==se?PersistencePromise.resolve(re.No.get(se)):re.A_.getTargetData(te,ne)}(re,ee,__PRIVATE_isPipeline(te)?te:__PRIVATE_queryToTarget(te)).next((te=>{if(te)return se=te.lastLimboFreeSnapshotVersion,re.A_.getMatchingKeysForTargetId(ee,te.targetId).next((ee=>{ie=ee}))})).next((()=>re.Mo.getDocumentsMatchingQuery(ee,te,ne?se:SnapshotVersion.min(),ne?ie:__PRIVATE_documentKeySet()))).next((ee=>(__PRIVATE_setMaxReadTime(re,ee),{documents:ee,Wo:ie})))))}function __PRIVATE_localStoreGetCachedTarget(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_debugCast(ne.A_),se=ne.No.get(te);return se?Promise.resolve(se.target??null):ne.persistence.runTransaction("Get target data","readonly",(ee=>re.ge(ee,te).next((ee=>ee?.target??null))))}function __PRIVATE_localStoreGetNewDocumentChanges(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.Bo.get(te)||SnapshotVersion.min();return ne.persistence.runTransaction("Get new document changes","readonly",(ee=>ne.Uo.getAllFromCollectionGroup(ee,te,__PRIVATE_newIndexOffsetSuccessorFromReadTime(re,Hn),Number.MAX_SAFE_INTEGER))).then((ee=>(__PRIVATE_setMaxReadTime(ne,ee),ee)))}function __PRIVATE_setMaxReadTime(ee,te){te.forEach(((te,ne)=>{const re=ne.key.getCollectionGroup(),se=ee.Bo.get(re)||SnapshotVersion.min();ne.readTime.compareTo(se)>0&&ee.Bo.set(re,ne.readTime)}))}async function __PRIVATE_localStoreSaveNamedQuery(ee,te,ne=__PRIVATE_documentKeySet()){const re=await __PRIVATE_localStoreAllocateTarget(ee,__PRIVATE_queryToTarget(__PRIVATE_fromBundledQuery(te.bundledQuery))),se=__PRIVATE_debugCast(ee);return se.persistence.runTransaction("Save named query","readwrite",(ee=>{const ie=__PRIVATE_fromVersion(te.readTime);if(re.snapshotVersion.compareTo(ie)>=0)return se.d_.saveNamedQuery(ee,te);const ae=re.withResumeToken(ByteString.EMPTY_BYTE_STRING,ie);return se.No=se.No.insert(ae.targetId,ae),se.A_.updateTargetData(ee,ae).next((()=>se.A_.removeMatchingKeysForTargetId(ee,re.targetId))).next((()=>se.A_.addMatchingKeys(ee,ne,re.targetId))).next((()=>se.d_.saveNamedQuery(ee,te)))}))}class __PRIVATE_SizedBundleElement{constructor(ee,te){this.jo=ee,this.byteLength=te}Ho(){return"metadata"in this.jo}}function __PRIVATE_toByteStreamReaderHelper(ee,te=10240){let ne=0;return{async read(){if(ne<ee.byteLength){const re={value:ee.slice(ne,ne+te),done:!1};return ne+=te,re}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}class __PRIVATE_OnlineStateTracker{constructor(ee,te){this.asyncQueue=ee,this.onlineStateHandler=te,this.state="Unknown",this.Jo=0,this.Yo=null,this.Zo=!0}Xo(){0===this.Jo&&(this.ea("Unknown"),this.Yo=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.Yo=null,this.ta("Backend didn't respond within 10 seconds."),this.ea("Offline"),Promise.resolve()))))}na(ee){"Online"===this.state?this.ea("Unknown"):(this.Jo++,this.Jo>=1&&(this.ra(),this.ta(`Connection failed 1 times. Most recent error: ${ee.toString()}`),this.ea("Offline")))}set(ee){this.ra(),this.Jo=0,"Online"===ee&&(this.Zo=!1),this.ea(ee)}ea(ee){ee!==this.state&&(this.state=ee,this.onlineStateHandler(ee))}ta(ee){const te=`Could not reach Cloud Firestore backend. ${ee}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.Zo?(__PRIVATE_logError(te),this.Zo=!1):__PRIVATE_logDebug("OnlineStateTracker",te)}ra(){null!==this.Yo&&(this.Yo.cancel(),this.Yo=null)}}const js="RemoteStore";class __PRIVATE_RemoteStoreImpl{constructor(ee,te,ne,re,se){this.localStore=ee,this.datastore=te,this.asyncQueue=ne,this.remoteSyncer={},this.ia=[],this.sa=new Map,this._a=new Map,this.oa=new Map,this.aa=new __PRIVATE_TargetIdGenerator(1e3),this.ua=new __PRIVATE_TargetIdGenerator(1001),this.ca=new Set,this.la=[],this.Ea=se,this.Ea.Ke((ee=>{ne.enqueueAndForget((async()=>{__PRIVATE_canUseNetwork(this)&&(__PRIVATE_logDebug(js,"Restarting streams for network reachability change."),await async function __PRIVATE_restartNetwork(ee){const te=__PRIVATE_debugCast(ee);te.ca.add(4),await __PRIVATE_disableNetworkInternal(te),te.ha.set("Unknown"),te.ca.delete(4),await __PRIVATE_enableNetworkInternal(te)}(this))}))})),this.ha=new __PRIVATE_OnlineStateTracker(ne,re)}}async function __PRIVATE_enableNetworkInternal(ee){if(__PRIVATE_canUseNetwork(ee))for(const te of ee.la)await te(!0)}async function __PRIVATE_disableNetworkInternal(ee){for(const te of ee.la)await te(!1)}function __PRIVATE_getRemoteTargetId(ee,te){return ee._a.get(te)||void 0}function __PRIVATE_remoteStoreListen(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_getRemoteTargetId(ne,te.targetId);if(void 0!==re&&ne.sa.has(re))return;const se=function __PRIVATE_allocateRemoteTargetId(ee,te){const ne=__PRIVATE_getRemoteTargetId(ee,te);void 0!==ne&&ee.oa.delete(ne);const re=function __PRIVATE_generateRemoteTargetId(ee,te){return te%2!=0?ee.ua.next():ee.aa.next()}(ee,te);return ee._a.set(te,re),ee.oa.set(re,te),re}(ne,te.targetId);__PRIVATE_logDebug(js,"remoteStoreListen mapping SDK target ID to remote",te.targetId,se);const ie=new TargetData(te.target,se,te.purpose,te.sequenceNumber,te.snapshotVersion,te.lastLimboFreeSnapshotVersion,te.resumeToken);ne.sa.set(se,ie),__PRIVATE_shouldStartWatchStream(ne)?__PRIVATE_startWatchStream(ne):__PRIVATE_ensureWatchStream(ne).Jt()&&__PRIVATE_sendWatchRequest(ne,ie)}function __PRIVATE_remoteStoreUnlisten(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_ensureWatchStream(ne),se=__PRIVATE_getRemoteTargetId(ne,te);__PRIVATE_logDebug(js,"remoteStoreUnlisten removing mapping of SDK target ID to remote",te,se),ne.sa.delete(se),ne._a.delete(te),ne.oa.delete(se),re.Jt()&&__PRIVATE_sendUnwatchRequest(ne,se),0===ne.sa.size&&(re.Jt()?re.Xt():__PRIVATE_canUseNetwork(ne)&&ne.ha.set("Unknown"))}function __PRIVATE_sendWatchRequest(ee,te){if(ee.Ta.H(te.targetId),te.resumeToken.approximateByteSize()>0||te.snapshotVersion.compareTo(SnapshotVersion.min())>0){const ne=ee.oa.get(te.targetId);if(void 0===ne)return void __PRIVATE_logDebug(js,"SDK target ID not found for remote ID: "+te.targetId);const re=ee.remoteSyncer.getRemoteKeysForTarget(ne).size;te=te.withExpectedCount(re)}__PRIVATE_ensureWatchStream(ee).Tn(te)}function __PRIVATE_sendUnwatchRequest(ee,te){ee.Ta.H(te),__PRIVATE_ensureWatchStream(ee).Pn(te)}function __PRIVATE_startWatchStream(ee){ee.Ta=new __PRIVATE_WatchChangeAggregator({getRemoteKeysForTarget:te=>{const ne=ee.oa.get(te);return void 0!==ne?ee.remoteSyncer.getRemoteKeysForTarget(ne):__PRIVATE_documentKeySet()},ge:te=>ee.sa.get(te)||null,Ae:()=>ee.datastore.serializer.databaseId}),__PRIVATE_ensureWatchStream(ee).start(),ee.ha.Xo()}function __PRIVATE_shouldStartWatchStream(ee){return __PRIVATE_canUseNetwork(ee)&&!__PRIVATE_ensureWatchStream(ee).Ht()&&ee.sa.size>0}function __PRIVATE_canUseNetwork(ee){return 0===__PRIVATE_debugCast(ee).ca.size}function __PRIVATE_cleanUpWatchStreamState(ee){ee.Ta=void 0}async function __PRIVATE_onWatchStreamConnected(ee){ee.ha.set("Online")}async function __PRIVATE_onWatchStreamOpen(ee){ee.sa.forEach(((te,ne)=>{__PRIVATE_sendWatchRequest(ee,te)}))}async function __PRIVATE_onWatchStreamClose(ee,te){__PRIVATE_cleanUpWatchStreamState(ee),__PRIVATE_shouldStartWatchStream(ee)?(ee.ha.na(te),__PRIVATE_startWatchStream(ee)):ee.ha.set("Unknown")}async function __PRIVATE_onWatchStreamChange(ee,te,ne){if(ee.ha.set("Online"),te instanceof __PRIVATE_WatchTargetChange&&2===te.state&&te.cause)try{await async function __PRIVATE_handleTargetError(ee,te){const ne=te.cause;for(const re of te.targetIds){if(ee.sa.has(re)){const te=ee.oa.get(re);void 0!==te&&(await ee.remoteSyncer.rejectListen(te,ne),ee._a.delete(te),ee.oa.delete(re)),ee.sa.delete(re)}ee.Ta.removeTarget(re)}}(ee,te)}catch(ne){__PRIVATE_logDebug(js,"Failed to remove targets %s: %s ",te.targetIds.join(","),ne),await __PRIVATE_disableNetworkUntilRecovery(ee,ne)}else if(te instanceof __PRIVATE_DocumentWatchChange?ee.Ta.se(te):te instanceof __PRIVATE_ExistenceFilterChange?ee.Ta.Ee(te):ee.Ta.ae(te),!ne.isEqual(SnapshotVersion.min()))try{const te=await __PRIVATE_localStoreGetLastRemoteSnapshotVersion(ee.localStore);ne.compareTo(te)>=0&&await function __PRIVATE_raiseWatchSnapshot(ee,te){const ne=ee.Ta.de(te);ne.targetChanges.forEach(((ne,re)=>{if(ne.resumeToken.approximateByteSize()>0){const se=ee.sa.get(re);se&&ee.sa.set(re,se.withResumeToken(ne.resumeToken,te))}})),ne.targetMismatches.forEach(((te,ne)=>{const re=ee.sa.get(te);if(!re)return;ee.sa.set(te,re.withResumeToken(ByteString.EMPTY_BYTE_STRING,re.snapshotVersion)),__PRIVATE_sendUnwatchRequest(ee,te);const se=new TargetData(re.target,te,ne,re.sequenceNumber);__PRIVATE_sendWatchRequest(ee,se)}));const re=function __PRIVATE_toSdkRemoteEvent(ee,te){const ne=new Map;te.targetChanges.forEach(((te,re)=>{const se=ee.oa.get(re);void 0!==se&&ne.set(se,te)}));let re=new SortedMap(__PRIVATE_primitiveComparator);return te.targetMismatches.forEach(((te,ne)=>{const se=ee.oa.get(te);void 0!==se&&(re=re.insert(se,ne))})),new RemoteEvent(te.snapshotVersion,ne,re,te.documentUpdates,te.augmentedDocumentUpdates,te.resolvedLimboDocuments)}(ee,ne);return ee.remoteSyncer.applyRemoteEvent(re)}(ee,ne)}catch(te){__PRIVATE_logDebug(js,"Failed to raise snapshot:",te),await __PRIVATE_disableNetworkUntilRecovery(ee,te)}}async function __PRIVATE_disableNetworkUntilRecovery(ee,te,ne){if(!__PRIVATE_isIndexedDbTransactionError(te))throw te;ee.ca.add(1),await __PRIVATE_disableNetworkInternal(ee),ee.ha.set("Offline"),ne||(ne=()=>__PRIVATE_localStoreGetLastRemoteSnapshotVersion(ee.localStore)),ee.asyncQueue.enqueueRetryable((async()=>{__PRIVATE_logDebug(js,"Retrying IndexedDB access"),await ne(),ee.ca.delete(1),await __PRIVATE_enableNetworkInternal(ee)}))}function __PRIVATE_executeWithRecovery(ee,te){return te().catch((ne=>__PRIVATE_disableNetworkUntilRecovery(ee,ne,te)))}async function __PRIVATE_fillWritePipeline(ee){const te=__PRIVATE_debugCast(ee),ne=__PRIVATE_ensureWriteStream(te);let re=te.ia.length>0?te.ia[te.ia.length-1].batchId:vn;for(;__PRIVATE_canAddToWritePipeline(te);)try{const ee=await __PRIVATE_localStoreGetNextMutationBatch(te.localStore,re);if(null===ee){0===te.ia.length&&ne.Xt();break}re=ee.batchId,__PRIVATE_addToWritePipeline(te,ee)}catch(ee){await __PRIVATE_disableNetworkUntilRecovery(te,ee)}__PRIVATE_shouldStartWriteStream(te)&&__PRIVATE_startWriteStream(te)}function __PRIVATE_canAddToWritePipeline(ee){return __PRIVATE_canUseNetwork(ee)&&ee.ia.length<10}function __PRIVATE_addToWritePipeline(ee,te){ee.ia.push(te);const ne=__PRIVATE_ensureWriteStream(ee);ne.Jt()&&ne.Rn&&ne.In(te.mutations)}function __PRIVATE_shouldStartWriteStream(ee){return __PRIVATE_canUseNetwork(ee)&&!__PRIVATE_ensureWriteStream(ee).Ht()&&ee.ia.length>0}function __PRIVATE_startWriteStream(ee){__PRIVATE_ensureWriteStream(ee).start()}async function __PRIVATE_onWriteStreamOpen(ee){__PRIVATE_ensureWriteStream(ee).dn()}async function __PRIVATE_onWriteHandshakeComplete(ee){const te=__PRIVATE_ensureWriteStream(ee);for(const ne of ee.ia)te.In(ne.mutations)}async function __PRIVATE_onMutationResult(ee,te,ne){const re=ee.ia.shift(),se=MutationBatchResult.from(re,te,ne);await __PRIVATE_executeWithRecovery(ee,(()=>ee.remoteSyncer.applySuccessfulWrite(se))),await __PRIVATE_fillWritePipeline(ee)}async function __PRIVATE_onWriteStreamClose(ee,te){te&&__PRIVATE_ensureWriteStream(ee).Rn&&await async function __PRIVATE_handleWriteError(ee,te){if(function __PRIVATE_isPermanentWriteError(ee){return __PRIVATE_isPermanentError(ee)&&ee!==gn.ABORTED}(te.code)){const ne=ee.ia.shift();__PRIVATE_ensureWriteStream(ee).Zt(),await __PRIVATE_executeWithRecovery(ee,(()=>ee.remoteSyncer.rejectFailedWrite(ne.batchId,te))),await __PRIVATE_fillWritePipeline(ee)}}(ee,te),__PRIVATE_shouldStartWriteStream(ee)&&__PRIVATE_startWriteStream(ee)}async function __PRIVATE_remoteStoreHandleCredentialChange(ee,te){const ne=__PRIVATE_debugCast(ee);ne.asyncQueue.verifyOperationInProgress(),__PRIVATE_logDebug(js,"RemoteStore received new credentials");const re=__PRIVATE_canUseNetwork(ne);ne.ca.add(3),await __PRIVATE_disableNetworkInternal(ne),re&&ne.ha.set("Unknown"),await ne.remoteSyncer.handleCredentialChange(te),ne.ca.delete(3),await __PRIVATE_enableNetworkInternal(ne)}async function __PRIVATE_remoteStoreApplyPrimaryState(ee,te){const ne=__PRIVATE_debugCast(ee);te?(ne.ca.delete(2),await __PRIVATE_enableNetworkInternal(ne)):te||(ne.ca.add(2),await __PRIVATE_disableNetworkInternal(ne),ne.ha.set("Unknown"))}function __PRIVATE_ensureWatchStream(ee){return ee.Pa||(ee.Pa=function __PRIVATE_newPersistentWatchStream(ee,te,ne){const re=__PRIVATE_debugCast(ee);return re.mn(),new __PRIVATE_PersistentListenStream(te,re.connection,re.authCredentials,re.appCheckCredentials,re.serializer,ne)}(ee.datastore,ee.asyncQueue,{ut:__PRIVATE_onWatchStreamConnected.bind(null,ee),lt:__PRIVATE_onWatchStreamOpen.bind(null,ee),ht:__PRIVATE_onWatchStreamClose.bind(null,ee),hn:__PRIVATE_onWatchStreamChange.bind(null,ee)}),ee.la.push((async te=>{te?(ee.Pa.Zt(),__PRIVATE_shouldStartWatchStream(ee)?__PRIVATE_startWatchStream(ee):ee.ha.set("Unknown")):(await ee.Pa.stop(),__PRIVATE_cleanUpWatchStreamState(ee))}))),ee.Pa}function __PRIVATE_ensureWriteStream(ee){return ee.Ra||(ee.Ra=function __PRIVATE_newPersistentWriteStream(ee,te,ne){const re=__PRIVATE_debugCast(ee);return re.mn(),new __PRIVATE_PersistentWriteStream(te,re.connection,re.authCredentials,re.appCheckCredentials,re.serializer,ne)}(ee.datastore,ee.asyncQueue,{ut:()=>Promise.resolve(),lt:__PRIVATE_onWriteStreamOpen.bind(null,ee),ht:__PRIVATE_onWriteStreamClose.bind(null,ee),An:__PRIVATE_onWriteHandshakeComplete.bind(null,ee),Vn:__PRIVATE_onMutationResult.bind(null,ee)}),ee.la.push((async te=>{te?(ee.Ra.Zt(),await __PRIVATE_fillWritePipeline(ee)):(await ee.Ra.stop(),ee.ia.length>0&&(__PRIVATE_logDebug(js,`Stopping write stream with ${ee.ia.length} pending writes`),ee.ia=[]))}))),ee.Ra}class __PRIVATE_AsyncObserver{constructor(ee){this.observer=ee,this.muted=!1}next(ee){this.muted||this.observer.next&&this.Ia(this.observer.next,ee)}error(ee){this.muted||(this.observer.error?this.Ia(this.observer.error,ee):__PRIVATE_logError("Uncaught Error in snapshot listener:",ee.toString()))}Aa(){this.muted=!0}Ia(ee,te){setTimeout((()=>{this.muted||ee(te)}),0)}}class DelayedOperation{constructor(ee,te,ne,re,se){this.asyncQueue=ee,this.timerId=te,this.targetTimeMs=ne,this.op=re,this.removalCallback=se,this.deferred=new __PRIVATE_Deferred,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((ee=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(ee,te,ne,re,se){const ie=Date.now()+ne,ae=new DelayedOperation(ee,te,ie,re,se);return ae.start(ne),ae}start(ee){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),ee)}skipDelay(){return this.handleDelayElapsed()}cancel(ee){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new s(gn.CANCELLED,"Operation cancelled"+(ee?": "+ee:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((ee=>this.deferred.resolve(ee)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function __PRIVATE_wrapInUserErrorIfRecoverable(ee,te){if(__PRIVATE_logError("AsyncQueue",`${te}: ${ee}`),__PRIVATE_isIndexedDbTransactionError(ee))return new s(gn.UNAVAILABLE,`${te}: ${ee}`);throw ee}class __PRIVATE_BundleReaderImpl{constructor(ee,te){this.Va=ee,this.serializer=te,this.metadata=new __PRIVATE_Deferred,this.buffer=new Uint8Array,this.da=function __PRIVATE_newTextDecoder(){return new TextDecoder("utf-8")}(),this.fa().then((ee=>{ee&&ee.Ho()?this.metadata.resolve(ee.jo.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(ee?.jo)}`))}),(ee=>this.metadata.reject(ee)))}close(){return this.Va.cancel()}async getMetadata(){return this.metadata.promise}async ma(){return await this.getMetadata(),this.fa()}async fa(){const ee=await this.pa();if(null===ee)return null;const te=this.da.decode(ee),ne=Number(te);isNaN(ne)&&this.ga(`length string (${te}) is not valid number`);const re=await this.ya(ne);return new __PRIVATE_SizedBundleElement(JSON.parse(re),ee.length+ne)}wa(){return this.buffer.findIndex((ee=>ee==="{".charCodeAt(0)))}async pa(){for(;this.wa()<0&&!await this.ba(););if(0===this.buffer.length)return null;const ee=this.wa();ee<0&&this.ga("Reached the end of bundle when a length string is expected.");const te=this.buffer.slice(0,ee);return this.buffer=this.buffer.slice(ee),te}async ya(ee){for(;this.buffer.length<ee;)await this.ba()&&this.ga("Reached the end of bundle when more is expected.");const te=this.da.decode(this.buffer.slice(0,ee));return this.buffer=this.buffer.slice(ee),te}ga(ee){throw this.Va.cancel(),new Error(`Invalid bundle format: ${ee}`)}async ba(){const ee=await this.Va.read();if(!ee.done){const te=new Uint8Array(this.buffer.length+ee.value.length);te.set(this.buffer),te.set(ee.value,this.buffer.length),this.buffer=te}return ee.done}}class __PRIVATE_BundleReaderSyncImpl{constructor(ee,te){this.bundleData=ee,this.serializer=te,this.cursor=0,this.elements=[];let ne=this.ma();if(!ne||!ne.Ho())throw new Error(`The first element of the bundle is not a metadata object, it is\n ${JSON.stringify(ne?.jo)}`);this.metadata=ne;do{ne=this.ma(),null!==ne&&this.elements.push(ne)}while(null!==ne)}getMetadata(){return this.metadata}va(){return this.elements}ma(){if(this.cursor===this.bundleData.length)return null;const ee=this.pa(),te=this.ya(ee);return new __PRIVATE_SizedBundleElement(JSON.parse(te),ee)}ya(ee){if(this.cursor+ee>this.bundleData.length)throw new s(gn.INTERNAL,"Reached the end of bundle when more is expected.");return this.bundleData.slice(this.cursor,this.cursor+=ee)}pa(){const ee=this.cursor;let te=this.cursor;for(;te<this.bundleData.length;){if("{"===this.bundleData[te]){if(te===ee)throw new Error("First character is a bracket and not a number");return this.cursor=te,Number(this.bundleData.slice(ee,te))}te++}throw new Error("Reached the end of bundle when more is expected.")}}const Js="IndexBackfiller";class __PRIVATE_IndexBackfillerScheduler{constructor(ee,te){this.asyncQueue=ee,this.Sa=te,this.task=null}start(){this.Da(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}Da(ee){__PRIVATE_logDebug(Js,`Scheduled in ${ee}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",ee,(async()=>{this.task=null;try{const ee=await this.Sa.xa();__PRIVATE_logDebug(Js,`Documents written: ${ee}`)}catch(ee){__PRIVATE_isIndexedDbTransactionError(ee)?__PRIVATE_logDebug(Js,"Ignoring IndexedDB error during index backfill: ",ee):await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}await this.Da(6e4)}))}}class __PRIVATE_IndexBackfiller{constructor(ee,te){this.localStore=ee,this.persistence=te}async xa(ee=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(te=>this.Ca(te,ee)))}Ca(ee,te){const ne=new Set;let re=te,se=!0;return PersistencePromise.doWhile((()=>!0===se&&re>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(ee).next((te=>{if(null!==te&&!ne.has(te))return __PRIVATE_logDebug(Js,`Processing collection: ${te}`),this.Fa(ee,te,re).next((ee=>{re-=ee,ne.add(te)}));se=!1})))).next((()=>te-re))}Fa(ee,te,ne){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(ee,te).next((re=>this.localStore.localDocuments.getNextDocuments(ee,te,re,ne).next((ne=>{const se=ne.changes;return this.localStore.indexManager.updateIndexEntries(ee,se).next((()=>this.Oa(re,ne))).next((ne=>(__PRIVATE_logDebug(Js,`Updating offset: ${ne}`),this.localStore.indexManager.updateCollectionGroup(ee,te,ne)))).next((()=>se.size))}))))}Oa(ee,te){let ne=ee;return te.changes.forEach(((ee,te)=>{const re=__PRIVATE_newIndexOffsetFromDocument(te);__PRIVATE_indexOffsetComparator(re,ne)>0&&(ne=re)})),new IndexOffset(ne.readTime,ne.documentKey,Math.max(te.batchId,ee.largestBatchId))}}const zs="firestore_clients";function createWebStorageClientStateKey(ee,te){return`${zs}_${ee}_${te}`}const Ws="firestore_mutations";function createWebStorageMutationBatchKey(ee,te,ne){let re=`${Ws}_${ee}_${ne}`;return te.isAuthenticated()&&(re+=`_${te.uid}`),re}const $s="firestore_targets";function createWebStorageQueryTargetMetadataKey(ee,te){return`${$s}_${ee}_${te}`}const Ys="SharedClientState";class __PRIVATE_MutationMetadata{constructor(ee,te,ne,re){this.user=ee,this.batchId=te,this.state=ne,this.error=re}static Ma(ee,te,ne){const re=JSON.parse(ne);let se,ie="object"==typeof re&&-1!==["pending","acknowledged","rejected"].indexOf(re.state)&&(void 0===re.error||"object"==typeof re.error);return ie&&re.error&&(ie="string"==typeof re.error.message&&"string"==typeof re.error.code,ie&&(se=new s(re.error.code,re.error.message))),ie?new __PRIVATE_MutationMetadata(ee,te,re.state,se):(__PRIVATE_logError(Ys,`Failed to parse mutation state for ID '${te}': ${ne}`),null)}Na(){const ee={state:this.state,updateTimeMs:Date.now()};return this.error&&(ee.error={code:this.error.code,message:this.error.message}),JSON.stringify(ee)}}class __PRIVATE_QueryTargetMetadata{constructor(ee,te,ne){this.targetId=ee,this.state=te,this.error=ne}static Ma(ee,te){const ne=JSON.parse(te);let re,se="object"==typeof ne&&-1!==["not-current","current","rejected"].indexOf(ne.state)&&(void 0===ne.error||"object"==typeof ne.error);return se&&ne.error&&(se="string"==typeof ne.error.message&&"string"==typeof ne.error.code,se&&(re=new s(ne.error.code,ne.error.message))),se?new __PRIVATE_QueryTargetMetadata(ee,ne.state,re):(__PRIVATE_logError(Ys,`Failed to parse target state for ID '${ee}': ${te}`),null)}Na(){const ee={state:this.state,updateTimeMs:Date.now()};return this.error&&(ee.error={code:this.error.code,message:this.error.message}),JSON.stringify(ee)}}class __PRIVATE_RemoteClientState{constructor(ee,te){this.clientId=ee,this.activeTargetIds=te}static Ma(ee,te){const ne=JSON.parse(te);let re="object"==typeof ne&&ne.activeTargetIds instanceof Array,se=__PRIVATE_targetIdSet();for(let ee=0;re&&ee<ne.activeTargetIds.length;++ee)re=isSafeInteger(ne.activeTargetIds[ee]),se=se.add(ne.activeTargetIds[ee]);return re?new __PRIVATE_RemoteClientState(ee,se):(__PRIVATE_logError(Ys,`Failed to parse client data for instance '${ee}': ${te}`),null)}}class __PRIVATE_SharedOnlineState{constructor(ee,te){this.clientId=ee,this.onlineState=te}static Ma(ee){const te=JSON.parse(ee);return"object"==typeof te&&-1!==["Unknown","Online","Offline"].indexOf(te.onlineState)&&"string"==typeof te.clientId?new __PRIVATE_SharedOnlineState(te.clientId,te.onlineState):(__PRIVATE_logError(Ys,`Failed to parse online state: ${ee}`),null)}}class __PRIVATE_LocalClientState{constructor(){this.activeTargetIds=__PRIVATE_targetIdSet()}La(ee){this.activeTargetIds=this.activeTargetIds.add(ee)}Ba(ee){this.activeTargetIds=this.activeTargetIds.delete(ee)}Na(){const ee={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(ee)}}class __PRIVATE_WebStorageSharedClientState{constructor(ee,te,ne,re,se){this.window=ee,this.xt=te,this.persistenceKey=ne,this.Ua=re,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.ka=this.qa.bind(this),this.$a=new SortedMap(__PRIVATE_primitiveComparator),this.started=!1,this.Ka=[];const ie=ne.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=se,this.Wa=createWebStorageClientStateKey(this.persistenceKey,this.Ua),this.Qa=function createWebStorageSequenceNumberKey(ee){return`firestore_sequence_number_${ee}`}(this.persistenceKey),this.$a=this.$a.insert(this.Ua,new __PRIVATE_LocalClientState),this.Ga=new RegExp(`^${zs}_${ie}_([^_]*)$`),this.za=new RegExp(`^${Ws}_${ie}_(\\d+)(?:_(.*))?$`),this.ja=new RegExp(`^${$s}_${ie}_(\\d+)$`),this.Ha=function createWebStorageOnlineStateKey(ee){return`firestore_online_state_${ee}`}(this.persistenceKey),this.Ja=function createBundleLoadedKey(ee){return`firestore_bundle_loaded_v2_${ee}`}(this.persistenceKey),this.window.addEventListener("storage",this.ka)}static Je(ee){return!(!ee||!ee.localStorage)}async start(){const ee=await this.syncEngine.Ro();for(const te of ee){if(te===this.Ua)continue;const ee=this.getItem(createWebStorageClientStateKey(this.persistenceKey,te));if(ee){const ne=__PRIVATE_RemoteClientState.Ma(te,ee);ne&&(this.$a=this.$a.insert(ne.clientId,ne))}}this.Ya();const te=this.storage.getItem(this.Ha);if(te){const ee=this.Za(te);ee&&this.Xa(ee)}for(const ee of this.Ka)this.qa(ee);this.Ka=[],this.window.addEventListener("pagehide",(()=>this.shutdown())),this.started=!0}writeSequenceNumber(ee){this.setItem(this.Qa,JSON.stringify(ee))}getAllActiveQueryTargets(){return this.eu(this.$a)}isActiveQueryTarget(ee){let te=!1;return this.$a.forEach(((ne,re)=>{re.activeTargetIds.has(ee)&&(te=!0)})),te}addPendingMutation(ee){this.tu(ee,"pending")}updateMutationState(ee,te,ne){this.tu(ee,te,ne),this.nu(ee)}addLocalQueryTarget(ee,te=!0){let ne="not-current";if(this.isActiveQueryTarget(ee)){const te=this.storage.getItem(createWebStorageQueryTargetMetadataKey(this.persistenceKey,ee));if(te){const re=__PRIVATE_QueryTargetMetadata.Ma(ee,te);re&&(ne=re.state)}}return te&&this.ru.La(ee),this.Ya(),ne}removeLocalQueryTarget(ee){this.ru.Ba(ee),this.Ya()}isLocalQueryTarget(ee){return this.ru.activeTargetIds.has(ee)}clearQueryState(ee){this.removeItem(createWebStorageQueryTargetMetadataKey(this.persistenceKey,ee))}updateQueryState(ee,te,ne){this.iu(ee,te,ne)}handleUserChange(ee,te,ne){te.forEach((ee=>{this.nu(ee)})),this.currentUser=ee,ne.forEach((ee=>{this.addPendingMutation(ee)}))}setOnlineState(ee){this.su(ee)}notifyBundleLoaded(ee){this._u(ee)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.ka),this.removeItem(this.Wa),this.started=!1)}getItem(ee){const te=this.storage.getItem(ee);return __PRIVATE_logDebug(Ys,"READ",ee,te),te}setItem(ee,te){__PRIVATE_logDebug(Ys,"SET",ee,te),this.storage.setItem(ee,te)}removeItem(ee){__PRIVATE_logDebug(Ys,"REMOVE",ee),this.storage.removeItem(ee)}qa(ee){const te=ee;if(te.storageArea===this.storage){if(__PRIVATE_logDebug(Ys,"EVENT",te.key,te.newValue),te.key===this.Wa)return void __PRIVATE_logError("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.xt.enqueueRetryable((async()=>{if(this.started){if(null!==te.key)if(this.Ga.test(te.key)){if(null==te.newValue){const ee=this.ou(te.key);return this.au(ee,null)}{const ee=this.uu(te.key,te.newValue);if(ee)return this.au(ee.clientId,ee)}}else if(this.za.test(te.key)){if(null!==te.newValue){const ee=this.cu(te.key,te.newValue);if(ee)return this.lu(ee)}}else if(this.ja.test(te.key)){if(null!==te.newValue){const ee=this.Eu(te.key,te.newValue);if(ee)return this.hu(ee)}}else if(te.key===this.Ha){if(null!==te.newValue){const ee=this.Za(te.newValue);if(ee)return this.Xa(ee)}}else if(te.key===this.Qa){const ee=function __PRIVATE_fromWebStorageSequenceNumber(ee){let te=__PRIVATE_ListenSequence.yn;if(null!=ee)try{const ne=JSON.parse(ee);__PRIVATE_hardAssert("number"==typeof ne,30636,{Tu:ee}),te=ne}catch(ee){__PRIVATE_logError(Ys,"Failed to read sequence number from WebStorage",ee)}return te}(te.newValue);ee!==__PRIVATE_ListenSequence.yn&&this.sequenceNumberHandler(ee)}else if(te.key===this.Ja){const ee=this.Pu(te.newValue);await Promise.all(ee.map((ee=>this.syncEngine.Ru(ee))))}}else this.Ka.push(te)}))}}get ru(){return this.$a.get(this.Ua)}Ya(){this.setItem(this.Wa,this.ru.Na())}tu(ee,te,ne){const re=new __PRIVATE_MutationMetadata(this.currentUser,ee,te,ne),se=createWebStorageMutationBatchKey(this.persistenceKey,this.currentUser,ee);this.setItem(se,re.Na())}nu(ee){const te=createWebStorageMutationBatchKey(this.persistenceKey,this.currentUser,ee);this.removeItem(te)}su(ee){const te={clientId:this.Ua,onlineState:ee};this.storage.setItem(this.Ha,JSON.stringify(te))}iu(ee,te,ne){const re=createWebStorageQueryTargetMetadataKey(this.persistenceKey,ee),se=new __PRIVATE_QueryTargetMetadata(ee,te,ne);this.setItem(re,se.Na())}_u(ee){const te=JSON.stringify(Array.from(ee));this.setItem(this.Ja,te)}ou(ee){const te=this.Ga.exec(ee);return te?te[1]:null}uu(ee,te){const ne=this.ou(ee);return __PRIVATE_RemoteClientState.Ma(ne,te)}cu(ee,te){const ne=this.za.exec(ee),re=Number(ne[1]),se=void 0!==ne[2]?ne[2]:null;return __PRIVATE_MutationMetadata.Ma(new User(se),re,te)}Eu(ee,te){const ne=this.ja.exec(ee),re=Number(ne[1]);return __PRIVATE_QueryTargetMetadata.Ma(re,te)}Za(ee){return __PRIVATE_SharedOnlineState.Ma(ee)}Pu(ee){return JSON.parse(ee)}async lu(ee){if(ee.user.uid===this.currentUser.uid)return this.syncEngine.Iu(ee.batchId,ee.state,ee.error);__PRIVATE_logDebug(Ys,`Ignoring mutation for non-active user ${ee.user.uid}`)}hu(ee){return this.syncEngine.Au(ee.targetId,ee.state,ee.error)}au(ee,te){const ne=te?this.$a.insert(ee,te):this.$a.remove(ee),re=this.eu(this.$a),se=this.eu(ne),ie=[],ae=[];return se.forEach((ee=>{re.has(ee)||ie.push(ee)})),re.forEach((ee=>{se.has(ee)||ae.push(ee)})),this.syncEngine.Vu(ie,ae).then((()=>{this.$a=ne}))}Xa(ee){this.$a.get(ee.clientId)&&this.onlineStateHandler(ee.onlineState)}eu(ee){let te=__PRIVATE_targetIdSet();return ee.forEach(((ee,ne)=>{te=te.unionWith(ne.activeTargetIds)})),te}}class __PRIVATE_MemorySharedClientState{constructor(){this.du=new __PRIVATE_LocalClientState,this.fu={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(ee){}updateMutationState(ee,te,ne){}addLocalQueryTarget(ee,te=!0){return te&&this.du.La(ee),this.fu[ee]||"not-current"}updateQueryState(ee,te,ne){this.fu[ee]=te}removeLocalQueryTarget(ee){this.du.Ba(ee)}isLocalQueryTarget(ee){return this.du.activeTargetIds.has(ee)}clearQueryState(ee){delete this.fu[ee]}getAllActiveQueryTargets(){return this.du.activeTargetIds}isActiveQueryTarget(ee){return this.du.activeTargetIds.has(ee)}start(){return this.du=new __PRIVATE_LocalClientState,Promise.resolve()}handleUserChange(ee,te,ne){}setOnlineState(ee){}shutdown(){}writeSequenceNumber(ee){}notifyBundleLoaded(ee){}}function __PRIVATE_getWindow(){return"undefined"!=typeof window?window:null}function getDocument(){return"undefined"!=typeof document?document:null}class DocumentSet{static emptySet(ee){return new DocumentSet(ee.comparator)}constructor(ee){this.comparator=ee?(te,ne)=>ee(te,ne)||DocumentKey.comparator(te.key,ne.key):(ee,te)=>DocumentKey.comparator(ee.key,te.key),this.keyedMap=documentMap(),this.sortedSet=new SortedMap(this.comparator)}has(ee){return null!=this.keyedMap.get(ee)}get(ee){return this.keyedMap.get(ee)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(ee){const te=this.keyedMap.get(ee);return te?this.sortedSet.indexOf(te):-1}get size(){return this.sortedSet.size}forEach(ee){this.sortedSet.inorderTraversal(((te,ne)=>(ee(te),!1)))}add(ee){const te=this.delete(ee.key);return te.copy(te.keyedMap.insert(ee.key,ee),te.sortedSet.insert(ee,null))}delete(ee){const te=this.get(ee);return te?this.copy(this.keyedMap.remove(ee),this.sortedSet.remove(te)):this}isEqual(ee){if(!(ee instanceof DocumentSet))return!1;if(this.size!==ee.size)return!1;const te=this.sortedSet.getIterator(),ne=ee.sortedSet.getIterator();for(;te.hasNext();){const ee=te.getNext().key,re=ne.getNext().key;if(!ee.isEqual(re))return!1}return!0}toString(){const ee=[];return this.forEach((te=>{ee.push(te.toString())})),0===ee.length?"DocumentSet ()":"DocumentSet (\n "+ee.join(" \n")+"\n)"}copy(ee,te){const ne=new DocumentSet;return ne.comparator=this.comparator,ne.keyedMap=ee,ne.sortedSet=te,ne}}class __PRIVATE_DocumentChangeSet{constructor(){this.mu=new SortedMap(DocumentKey.comparator)}track(ee){const te=ee.doc.key,ne=this.mu.get(te);ne?0!==ee.type&&3===ne.type?this.mu=this.mu.insert(te,ee):3===ee.type&&1!==ne.type?this.mu=this.mu.insert(te,{type:ne.type,doc:ee.doc}):2===ee.type&&2===ne.type?this.mu=this.mu.insert(te,{type:2,doc:ee.doc}):2===ee.type&&0===ne.type?this.mu=this.mu.insert(te,{type:0,doc:ee.doc}):1===ee.type&&0===ne.type?this.mu=this.mu.remove(te):1===ee.type&&2===ne.type?this.mu=this.mu.insert(te,{type:1,doc:ne.doc}):0===ee.type&&1===ne.type?this.mu=this.mu.insert(te,{type:2,doc:ee.doc}):l(63341,{ye:ee,pu:ne}):this.mu=this.mu.insert(te,ee)}gu(){const ee=[];return this.mu.inorderTraversal(((te,ne)=>{ee.push(ne)})),ee}}class ViewSnapshot{constructor(ee,te,ne,re,se,ie,ae,oe,ue){this.query=ee,this.docs=te,this.oldDocs=ne,this.docChanges=re,this.mutatedKeys=se,this.fromCache=ie,this.syncStateChanged=ae,this.excludesMetadataChanges=oe,this.hasCachedResults=ue}static fromInitialDocuments(ee,te,ne,re,se){const ie=[];return te.forEach((ee=>{ie.push({type:0,doc:ee})})),new ViewSnapshot(ee,te,DocumentSet.emptySet(te),ie,ne,re,!0,!1,se)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(ee){if(!(this.fromCache===ee.fromCache&&this.hasCachedResults===ee.hasCachedResults&&this.syncStateChanged===ee.syncStateChanged&&this.mutatedKeys.isEqual(ee.mutatedKeys)&&__PRIVATE_queryOrPipelineEqual(this.query,ee.query)&&this.docs.isEqual(ee.docs)&&this.oldDocs.isEqual(ee.oldDocs)))return!1;const te=this.docChanges,ne=ee.docChanges;if(te.length!==ne.length)return!1;for(let ee=0;ee<te.length;ee++)if(te[ee].type!==ne[ee].type||!te[ee].doc.isEqual(ne[ee].doc))return!1;return!0}}class __PRIVATE_QueryListenersInfo{constructor(){this.yu=void 0,this.wu=[]}bu(){return this.wu.some((ee=>ee.vu()))}}class __PRIVATE_EventManagerImpl{constructor(){this.queries=__PRIVATE_newQueriesObjectMap(),this.onlineState="Unknown",this.Su=new Set}terminate(){!function __PRIVATE_errorAllTargets(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.queries;ne.queries=__PRIVATE_newQueriesObjectMap(),re.forEach(((ee,ne)=>{for(const ee of ne.wu)ee.onError(te)}))}(this,new s(gn.ABORTED,"Firestore shutting down"))}}function __PRIVATE_newQueriesObjectMap(){return new ObjectMap((ee=>__PRIVATE_canonifyQueryOrPipeline(ee)),__PRIVATE_queryOrPipelineEqual)}async function __PRIVATE_eventManagerListen(ee,te){const ne=__PRIVATE_debugCast(ee);let re=3;const se=te.query;let ie=ne.queries.get(se);ie?!ie.bu()&&te.vu()&&(re=2):(ie=new __PRIVATE_QueryListenersInfo,re=te.vu()?0:1);try{switch(re){case 0:ie.yu=await ne.onListen(se,!0);break;case 1:ie.yu=await ne.onListen(se,!1);break;case 2:await ne.onFirstRemoteStoreListen(se)}}catch(ee){const ne=__PRIVATE_wrapInUserErrorIfRecoverable(ee,`Initialization of query '${__PRIVATE_isPipeline(te.query)?__PRIVATE_canonifyPipeline(te.query):__PRIVATE_stringifyQuery(te.query)}' failed`);return void te.onError(ne)}ne.queries.set(se,ie),ie.wu.push(te),te.Du(ne.onlineState),ie.yu&&te.xu(ie.yu)&&__PRIVATE_raiseSnapshotsInSyncEvent(ne)}async function __PRIVATE_eventManagerUnlisten(ee,te){const ne=__PRIVATE_debugCast(ee),re=te.query;let se=3;const ie=ne.queries.get(re);if(ie){const ee=ie.wu.indexOf(te);ee>=0&&(ie.wu.splice(ee,1),0===ie.wu.length?se=te.vu()?0:1:!ie.bu()&&te.vu()&&(se=2))}switch(se){case 0:return ne.queries.delete(re),ne.onUnlisten(re,!0);case 1:return ne.queries.delete(re),ne.onUnlisten(re,!1);case 2:return ne.onLastRemoteStoreUnlisten(re);default:return}}function __PRIVATE_eventManagerOnWatchChange(ee,te){const ne=__PRIVATE_debugCast(ee);let re=!1;for(const ee of te){const te=ee.query,se=ne.queries.get(te);if(se){for(const te of se.wu)te.xu(ee)&&(re=!0);se.yu=ee}}re&&__PRIVATE_raiseSnapshotsInSyncEvent(ne)}function __PRIVATE_eventManagerOnWatchError(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.queries.get(te);if(se)for(const ee of se.wu)ee.onError(ne);re.queries.delete(te)}function __PRIVATE_raiseSnapshotsInSyncEvent(ee){ee.Su.forEach((ee=>{ee.next()}))}var Xs;!function(ee){ee.Default="default",ee.Cache="cache"}(Xs||(Xs={}));class __PRIVATE_QueryListener{constructor(ee,te,ne){this.query=ee,this.Cu=te,this.Fu=!1,this.Ou=null,this.onlineState="Unknown",this.options=ne||{}}xu(ee){if(!this.options.includeMetadataChanges){const te=[];for(const ne of ee.docChanges)3!==ne.type&&te.push(ne);ee=new ViewSnapshot(ee.query,ee.docs,ee.oldDocs,te,ee.mutatedKeys,ee.fromCache,ee.syncStateChanged,!0,ee.hasCachedResults)}let te=!1;return this.Fu?this.Mu(ee)&&(this.Cu.next(ee),te=!0):this.Nu(ee,this.onlineState)&&(this.Lu(ee),te=!0),this.Ou=ee,te}onError(ee){this.Cu.error(ee)}Du(ee){this.onlineState=ee;let te=!1;return this.Ou&&!this.Fu&&this.Nu(this.Ou,ee)&&(this.Lu(this.Ou),te=!0),te}Nu(ee,te){if(!ee.fromCache)return!0;if(!this.vu())return!0;const ne="Offline"!==te;return(!this.options.waitForSyncWhenOnline||!ne)&&(!ee.docs.isEmpty()||ee.hasCachedResults||"Offline"===te)}Mu(ee){if(ee.docChanges.length>0)return!0;const te=this.Ou&&this.Ou.hasPendingWrites!==ee.hasPendingWrites;return!(!ee.syncStateChanged&&!te)&&!0===this.options.includeMetadataChanges}Lu(ee){ee=ViewSnapshot.fromInitialDocuments(ee.query,ee.docs,ee.mutatedKeys,ee.fromCache,ee.hasCachedResults),this.Fu=!0,this.Cu.next(ee)}vu(){return this.options.source!==Xs.Cache}}class __PRIVATE_BundleConverterImpl{constructor(ee){this.serializer=ee}Qo(ee){return fromName(this.serializer,ee)}Go(ee){return ee.metadata.exists?fromDocument(this.serializer,ee.document,!1):MutableDocument.newNoDocument(this.Qo(ee.metadata.name),this.zo(ee.metadata.readTime))}zo(ee){return __PRIVATE_fromVersion(ee)}}class __PRIVATE_BundleLoader{constructor(ee,te){this.Bu=ee,this.serializer=te,this.Uu=[],this.ku=[],this.collectionGroups=new Set,this.progress=__PRIVATE_bundleInitialProgress(ee)}get queries(){return this.Uu}get documents(){return this.ku}qu(ee){this.progress.bytesLoaded+=ee.byteLength;let te=this.progress.documentsLoaded;if(ee.jo.namedQuery)this.Uu.push(ee.jo.namedQuery);else if(ee.jo.documentMetadata){this.ku.push({metadata:ee.jo.documentMetadata}),ee.jo.documentMetadata.exists||++te;const ne=ResourcePath.fromString(ee.jo.documentMetadata.name);this.collectionGroups.add(ne.get(ne.length-2))}else ee.jo.document&&(this.ku[this.ku.length-1].document=ee.jo.document,++te);return te!==this.progress.documentsLoaded?(this.progress.documentsLoaded=te,{...this.progress}):null}$u(ee){const te=new Map,ne=new __PRIVATE_BundleConverterImpl(this.serializer);for(const re of ee)if(re.metadata.queries){const ee=ne.Qo(re.metadata.name);for(const ne of re.metadata.queries){const re=(te.get(ne)||__PRIVATE_documentKeySet()).add(ee);te.set(ne,re)}}return te}async Ku(ee){const te=await async function __PRIVATE_localStoreApplyBundledDocuments(ee,te,ne,re){const se=__PRIVATE_debugCast(ee);let ie=__PRIVATE_documentKeySet(),ae=__PRIVATE_mutableDocumentMap();for(const ee of ne){const ne=te.Qo(ee.metadata.name);ee.document&&(ie=ie.add(ne));const re=te.Go(ee);re.setReadTime(te.zo(ee.metadata.readTime)),ae=ae.insert(ne,re)}const oe=se.Uo.newChangeBuffer({trackRemovals:!0}),ue=await __PRIVATE_localStoreAllocateTarget(se,function __PRIVATE_umbrellaTarget(ee){return __PRIVATE_queryToTarget(__PRIVATE_newQueryForPath(ResourcePath.fromString(`__bundle__/docs/${ee}`)))}(re));return se.persistence.runTransaction("Apply bundle documents","readwrite",(ee=>__PRIVATE_populateDocumentChangeBuffer(ee,oe,ae).next((te=>(oe.apply(ee),te))).next((te=>se.A_.removeMatchingKeysForTargetId(ee,ue.targetId).next((()=>se.A_.addMatchingKeys(ee,ie,ue.targetId))).next((()=>se.localDocuments.getLocalViewOfDocuments(ee,te.$o,te.Ko))).next((()=>te.$o))))))}(ee,new __PRIVATE_BundleConverterImpl(this.serializer),this.ku,this.Bu.id),ne=this.$u(this.documents);for(const te of this.Uu)await __PRIVATE_localStoreSaveNamedQuery(ee,te,ne.get(te.name));return this.progress.taskState="Success",{progress:this.progress,Wu:this.collectionGroups,Qu:te}}}function __PRIVATE_bundleInitialProgress(ee){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:ee.totalDocuments,totalBytes:ee.totalBytes}}class __PRIVATE_AddedLimboDocument{constructor(ee){this.key=ee}}class __PRIVATE_RemovedLimboDocument{constructor(ee){this.key=ee}}class __PRIVATE_View{constructor(ee,te){this.query=ee,this.Gu=te,this.zu=null,this.hasCachedResults=!1,this.current=!1,this.ju=__PRIVATE_documentKeySet(),this.mutatedKeys=__PRIVATE_documentKeySet(),this.Hu=__PRIVATE_isPipeline(ee)?__PRIVATE_newPipelineComparator(ee):__PRIVATE_newQueryComparator(ee),this.Ju=new DocumentSet(this.Hu)}get Yu(){return this.Gu}Zu(ee,te){const ne=te?te.Xu:new __PRIVATE_DocumentChangeSet,re=te?te.Ju:this.Ju;let se=te?te.mutatedKeys:this.mutatedKeys,ie=re,ae=!1;const[oe,ue]=this.ec(this.query,re);ee.inorderTraversal(((ee,te)=>{const Be=re.get(ee),le=__PRIVATE_queryOrPipelineMatches(this.query,te)?te:null,ce=!!Be&&this.mutatedKeys.has(Be.key),_e=!!le&&(le.hasLocalMutations||this.mutatedKeys.has(le.key)&&le.hasCommittedMutations);let he=!1;Be&&le?Be.data.isEqual(le.data)?ce!==_e&&(ne.track({type:3,doc:le}),he=!0):this.tc(Be,le)||(ne.track({type:2,doc:le}),he=!0,(oe&&this.Hu(le,oe)>0||ue&&this.Hu(le,ue)<0)&&(ae=!0)):!Be&&le?(ne.track({type:0,doc:le}),he=!0):Be&&!le&&(ne.track({type:1,doc:Be}),he=!0,(oe||ue)&&(ae=!0)),he&&(le?(ie=ie.add(le),se=_e?se.add(ee):se.delete(ee)):(ie=ie.delete(ee),se=se.delete(ee)))}));const Be=this.nc(this.query);if(Be)if(__PRIVATE_isPipeline(this.query)){const ee=[];ie.forEach((te=>ee.push(te)));const te=__PRIVATE_runPipeline(this.query,ee);let re=new DocumentSet(__PRIVATE_newPipelineComparator(this.query));for(const ee of te)re=re.add(ee);ie.forEach((ee=>{re.has(ee.key)||(se=se.delete(ee.key),ne.track({type:1,doc:ee}))})),ie=re}else{const ee=this.rc(this.query);for(;ie.size>Be;){const te="F"===ee?ie.last():ie.first();ie=ie.delete(te.key),se=se.delete(te.key),ne.track({type:1,doc:te})}}return{Ju:ie,Xu:ne,Fo:ae,mutatedKeys:se}}nc(ee){return __PRIVATE_isPipeline(ee)?__PRIVATE_getLastEffectiveLimit(ee)?.limit:ee.limit||void 0}rc(ee){if(__PRIVATE_isPipeline(ee)){const te=__PRIVATE_getLastEffectiveLimit(ee);return te&&te.limit<0?"L":"F"}return ee.limitType}ec(ee,te){if(__PRIVATE_isPipeline(ee)){const ne=__PRIVATE_getLastEffectiveLimit(ee)?.limit;return[te.size===ne?te.last():null,null]}return["F"===ee.limitType&&te.size===this.nc(this.query)?te.last():null,"L"===ee.limitType&&te.size===this.nc(this.query)?te.first():null]}tc(ee,te){return ee.hasLocalMutations&&te.hasCommittedMutations&&!te.hasLocalMutations}applyChanges(ee,te,ne,re){const se=this.Ju;this.Ju=ee.Ju,this.mutatedKeys=ee.mutatedKeys;const ie=ee.Xu.gu();ie.sort(((ee,te)=>function __PRIVATE_compareChangeType(ee,te){const order=ee=>{switch(ee){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return l(20277,{ye:ee})}};return order(ee)-order(te)}(ee.type,te.type)||this.Hu(ee.doc,te.doc))),this.sc(ne),re=re??!1;const ae=te&&!re?this._c():[],oe=0===this.ju.size&&this.current&&!re?1:0,ue=oe!==this.zu;return this.zu=oe,0!==ie.length||ue?{snapshot:new ViewSnapshot(this.query,ee.Ju,se,ie,ee.mutatedKeys,0===oe,ue,!1,!!ne&&ne.resumeToken.approximateByteSize()>0),oc:ae}:{oc:ae}}Du(ee){return this.current&&"Offline"===ee?(this.current=!1,this.applyChanges({Ju:this.Ju,Xu:new __PRIVATE_DocumentChangeSet,mutatedKeys:this.mutatedKeys,Fo:!1},!1)):{oc:[]}}ac(ee){return!this.Gu.has(ee)&&!!this.Ju.has(ee)&&!this.Ju.get(ee).hasLocalMutations}sc(ee){ee&&(ee.addedDocuments.forEach((ee=>this.Gu=this.Gu.add(ee))),ee.modifiedDocuments.forEach((ee=>{})),ee.removedDocuments.forEach((ee=>this.Gu=this.Gu.delete(ee))),this.current=ee.current)}_c(){if(!this.current)return[];const ee=this.ju;this.ju=__PRIVATE_documentKeySet(),this.Ju.forEach((ee=>{this.ac(ee.key)&&(this.ju=this.ju.add(ee.key))}));const te=[];return ee.forEach((ee=>{this.ju.has(ee)||te.push(new __PRIVATE_RemovedLimboDocument(ee))})),this.ju.forEach((ne=>{ee.has(ne)||te.push(new __PRIVATE_AddedLimboDocument(ne))})),te}uc(ee){this.Gu=ee.Wo,this.ju=__PRIVATE_documentKeySet();const te=this.Zu(ee.documents);return this.applyChanges(te,!0)}cc(){return ViewSnapshot.fromInitialDocuments(this.query,this.Ju,this.mutatedKeys,0===this.zu,this.hasCachedResults)}}const Zs="SyncEngine";class __PRIVATE_QueryView{constructor(ee,te,ne){this.query=ee,this.targetId=te,this.view=ne}}class LimboResolution{constructor(ee){this.key=ee,this.lc=!1}}class __PRIVATE_SyncEngineImpl{constructor(ee,te,ne,re,se,ie){this.localStore=ee,this.remoteStore=te,this.eventManager=ne,this.sharedClientState=re,this.currentUser=se,this.maxConcurrentLimboResolutions=ie,this.Ec={},this.hc=new ObjectMap((ee=>__PRIVATE_canonifyQueryOrPipeline(ee)),__PRIVATE_queryOrPipelineEqual),this.Tc=new Map,this.Pc=new Set,this.Rc=new SortedMap(DocumentKey.comparator),this.Ic=new Map,this.Ac=new __PRIVATE_ReferenceSet,this.Vc={},this.dc=new Map,this.fc=__PRIVATE_TargetIdGenerator.ws(),this.onlineState="Unknown",this.mc=void 0}get isPrimaryClient(){return!0===this.mc}}async function __PRIVATE_syncEngineListen(ee,te,ne=!0){const re=__PRIVATE_ensureWatchCallbacks(ee);let se;const ie=re.hc.get(te);return ie?(re.sharedClientState.addLocalQueryTarget(ie.targetId),se=ie.view.cc()):se=await __PRIVATE_allocateTargetAndMaybeListen(re,te,ne,!0),se}async function __PRIVATE_triggerRemoteStoreListen(ee,te){const ne=__PRIVATE_ensureWatchCallbacks(ee);await __PRIVATE_allocateTargetAndMaybeListen(ne,te,!0,!1)}async function __PRIVATE_allocateTargetAndMaybeListen(ee,te,ne,re){const se=await __PRIVATE_localStoreAllocateTarget(ee.localStore,__PRIVATE_isPipeline(te)?te:__PRIVATE_queryToTarget(te)),ie=se.targetId,ae=ee.sharedClientState.addLocalQueryTarget(ie,ne);let oe;return re&&(oe=await __PRIVATE_initializeViewAndComputeSnapshot(ee,te,ie,"current"===ae,se.resumeToken)),ee.isPrimaryClient&&ne&&__PRIVATE_remoteStoreListen(ee.remoteStore,se),oe}async function __PRIVATE_initializeViewAndComputeSnapshot(ee,te,ne,re,se){ee.gc=(te,ne,re)=>async function __PRIVATE_applyDocChanges(ee,te,ne,re){let se=te.view.Zu(ne);se.Fo&&(se=await __PRIVATE_localStoreExecuteQuery(ee.localStore,te.query,!1).then((({documents:ee})=>te.view.Zu(ee,se))));const ie=re&&re.targetChanges.get(te.targetId),ae=re&&null!=re.targetMismatches.get(te.targetId),oe=te.view.applyChanges(se,ee.isPrimaryClient,ie,ae);return __PRIVATE_updateTrackedLimbos(ee,te.targetId,oe.oc),oe.snapshot}(ee,te,ne,re);const ie=await __PRIVATE_localStoreExecuteQuery(ee.localStore,te,!0),ae=new __PRIVATE_View(te,ie.Wo),oe=ae.Zu(ie.documents),ue=TargetChange.createSynthesizedTargetChangeForCurrentChange(ne,re&&"Offline"!==ee.onlineState,se),Be=ae.applyChanges(oe,ee.isPrimaryClient,ue);__PRIVATE_updateTrackedLimbos(ee,ne,Be.oc);const le=new __PRIVATE_QueryView(te,ne,ae);return ee.hc.set(te,le),ee.Tc.has(ne)?ee.Tc.get(ne).push(te):ee.Tc.set(ne,[te]),Be.snapshot}async function __PRIVATE_syncEngineUnlisten(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=re.hc.get(te),ie=re.Tc.get(se.targetId);if(ie.length>1)return re.Tc.set(se.targetId,ie.filter((ee=>!__PRIVATE_queryOrPipelineEqual(ee,te)))),void re.hc.delete(te);re.isPrimaryClient?(re.sharedClientState.removeLocalQueryTarget(se.targetId),re.sharedClientState.isActiveQueryTarget(se.targetId)||await __PRIVATE_localStoreReleaseTarget(re.localStore,se.targetId,!1).then((()=>{re.sharedClientState.clearQueryState(se.targetId),ne&&__PRIVATE_remoteStoreUnlisten(re.remoteStore,se.targetId),__PRIVATE_removeAndCleanupTarget(re,se.targetId)})).catch(__PRIVATE_ignoreIfPrimaryLeaseLoss)):(__PRIVATE_removeAndCleanupTarget(re,se.targetId),await __PRIVATE_localStoreReleaseTarget(re.localStore,se.targetId,!0))}async function __PRIVATE_triggerRemoteStoreUnlisten(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.hc.get(te),se=ne.Tc.get(re.targetId);ne.isPrimaryClient&&1===se.length&&(ne.sharedClientState.removeLocalQueryTarget(re.targetId),__PRIVATE_remoteStoreUnlisten(ne.remoteStore,re.targetId))}async function __PRIVATE_syncEngineApplyRemoteEvent(ee,te){const ne=__PRIVATE_debugCast(ee);try{const ee=await function __PRIVATE_localStoreApplyRemoteEventToLocalCache(ee,te){const ne=__PRIVATE_debugCast(ee),re=te.snapshotVersion;let se=ne.No;return ne.persistence.runTransaction("Apply remote event","readwrite-primary",(ee=>{const ie=ne.Uo.newChangeBuffer({trackRemovals:!0});se=ne.No;const ae=[];te.targetChanges.forEach(((ie,oe)=>{const ue=se.get(oe);if(!ue)return;ae.push(ne.A_.removeMatchingKeys(ee,ie.removedDocuments,oe).next((()=>ne.A_.addMatchingKeys(ee,ie.addedDocuments,oe))));let Be=ue.withSequenceNumber(ee.currentSequenceNumber);null!==te.targetMismatches.get(oe)?Be=Be.withResumeToken(ByteString.EMPTY_BYTE_STRING,SnapshotVersion.min()).withLastLimboFreeSnapshotVersion(SnapshotVersion.min()):ie.resumeToken.approximateByteSize()>0&&(Be=Be.withResumeToken(ie.resumeToken,re)),se=se.insert(oe,Be),function __PRIVATE_shouldPersistTargetData(ee,te,ne){return 0===ee.resumeToken.approximateByteSize()||(te.snapshotVersion.toMicroseconds()-ee.snapshotVersion.toMicroseconds()>=3e8||ne.addedDocuments.size+ne.modifiedDocuments.size+ne.removedDocuments.size>0)}(ue,Be,ie)&&ae.push(ne.A_.updateTargetData(ee,Be))}));let oe=__PRIVATE_mutableDocumentMap(),ue=__PRIVATE_documentKeySet();if(te.documentUpdates.forEach((re=>{te.resolvedLimboDocuments.has(re)&&ae.push(ne.persistence.referenceDelegate.updateLimboDocument(ee,re))})),ae.push(__PRIVATE_populateDocumentChangeBuffer(ee,ie,te.documentUpdates).next((ee=>{oe=ee.$o,ue=ee.Ko}))),!re.isEqual(SnapshotVersion.min())){const te=ne.A_.getLastRemoteSnapshotVersion(ee).next((te=>ne.A_.setTargetsMetadata(ee,ee.currentSequenceNumber,re)));ae.push(te)}return PersistencePromise.waitFor(ae).next((()=>ie.apply(ee))).next((()=>ne.localDocuments.getLocalViewOfDocuments(ee,oe,ue))).next((()=>oe))})).then((ee=>(ne.No=se,ee)))}(ne.localStore,te);te.targetChanges.forEach(((ee,te)=>{const re=ne.Ic.get(te);re&&(__PRIVATE_hardAssert(ee.addedDocuments.size+ee.modifiedDocuments.size+ee.removedDocuments.size<=1,22616),ee.addedDocuments.size>0?re.lc=!0:ee.modifiedDocuments.size>0?__PRIVATE_hardAssert(re.lc,14607):ee.removedDocuments.size>0&&(__PRIVATE_hardAssert(re.lc,42227),re.lc=!1))})),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee,te)}catch(ee){await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}}function __PRIVATE_syncEngineApplyOnlineStateChange(ee,te,ne){const re=__PRIVATE_debugCast(ee);if(re.isPrimaryClient&&0===ne||!re.isPrimaryClient&&1===ne){const ee=[];re.hc.forEach(((ne,re)=>{const se=re.view.Du(te);se.snapshot&&ee.push(se.snapshot)})),function __PRIVATE_eventManagerOnOnlineStateChange(ee,te){const ne=__PRIVATE_debugCast(ee);ne.onlineState=te;let re=!1;ne.queries.forEach(((ee,ne)=>{for(const ee of ne.wu)ee.Du(te)&&(re=!0)})),re&&__PRIVATE_raiseSnapshotsInSyncEvent(ne)}(re.eventManager,te),ee.length&&re.Ec.hn(ee),re.onlineState=te,re.isPrimaryClient&&re.sharedClientState.setOnlineState(te)}}async function __PRIVATE_syncEngineRejectListen(ee,te,ne){const re=__PRIVATE_debugCast(ee);re.sharedClientState.updateQueryState(te,"rejected",ne);const se=re.Ic.get(te),ie=se&&se.key;if(ie){let ee=new SortedMap(DocumentKey.comparator);ee=ee.insert(ie,MutableDocument.newNoDocument(ie,SnapshotVersion.min()));const ne=__PRIVATE_documentKeySet().add(ie),se=new RemoteEvent(SnapshotVersion.min(),new Map,new SortedMap(__PRIVATE_primitiveComparator),ee,__PRIVATE_mutableDocumentMap(),ne);await __PRIVATE_syncEngineApplyRemoteEvent(re,se),re.Rc=re.Rc.remove(ie),re.Ic.delete(te),__PRIVATE_pumpEnqueuedLimboResolutions(re)}else await __PRIVATE_localStoreReleaseTarget(re.localStore,te,!1).then((()=>__PRIVATE_removeAndCleanupTarget(re,te,ne))).catch(__PRIVATE_ignoreIfPrimaryLeaseLoss)}async function __PRIVATE_syncEngineApplySuccessfulWrite(ee,te){const ne=__PRIVATE_debugCast(ee),re=te.batch.batchId;try{const ee=await function __PRIVATE_localStoreAcknowledgeBatch(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Acknowledge batch","readwrite-primary",(ee=>{const re=te.batch.keys(),se=ne.Uo.newChangeBuffer({trackRemovals:!0});return function __PRIVATE_applyWriteToRemoteDocuments(ee,te,ne,re){const se=ne.batch,ie=se.keys();let ae=PersistencePromise.resolve();return ie.forEach((ee=>{ae=ae.next((()=>re.getEntry(te,ee))).next((te=>{const ie=ne.docVersions.get(ee);__PRIVATE_hardAssert(null!==ie,48541),te.version.compareTo(ie)<0&&(se.applyToRemoteDocument(te,ne),te.isValidDocument()&&(te.setReadTime(ne.commitVersion),re.addEntry(te)))}))})),ae.next((()=>ee.mutationQueue.removeMutationBatch(te,se)))}(ne,ee,te,se).next((()=>se.apply(ee))).next((()=>ne.mutationQueue.performConsistencyCheck(ee))).next((()=>ne.documentOverlayCache.removeOverlaysForBatchId(ee,re,te.batch.batchId))).next((()=>ne.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(ee,function __PRIVATE_getKeysWithTransformResults(ee){let te=__PRIVATE_documentKeySet();for(let ne=0;ne<ee.mutationResults.length;++ne)ee.mutationResults[ne].transformResults.length>0&&(te=te.add(ee.batch.mutations[ne].key));return te}(te)))).next((()=>ne.localDocuments.getDocuments(ee,re)))}))}(ne.localStore,te);__PRIVATE_processUserCallback(ne,re,null),__PRIVATE_triggerPendingWritesCallbacks(ne,re),ne.sharedClientState.updateMutationState(re,"acknowledged"),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee)}catch(ee){await __PRIVATE_ignoreIfPrimaryLeaseLoss(ee)}}async function __PRIVATE_syncEngineRejectFailedWrite(ee,te,ne){const re=__PRIVATE_debugCast(ee);try{const ee=await function __PRIVATE_localStoreRejectBatch(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Reject batch","readwrite-primary",(ee=>{let re;return ne.mutationQueue.lookupMutationBatch(ee,te).next((te=>(__PRIVATE_hardAssert(null!==te,37113),re=te.keys(),ne.mutationQueue.removeMutationBatch(ee,te)))).next((()=>ne.mutationQueue.performConsistencyCheck(ee))).next((()=>ne.documentOverlayCache.removeOverlaysForBatchId(ee,re,te))).next((()=>ne.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(ee,re))).next((()=>ne.localDocuments.getDocuments(ee,re)))}))}(re.localStore,te);__PRIVATE_processUserCallback(re,te,ne),__PRIVATE_triggerPendingWritesCallbacks(re,te),re.sharedClientState.updateMutationState(te,"rejected",ne),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(re,ee)}catch(ne){await __PRIVATE_ignoreIfPrimaryLeaseLoss(ne)}}function __PRIVATE_triggerPendingWritesCallbacks(ee,te){(ee.dc.get(te)||[]).forEach((ee=>{ee.resolve()})),ee.dc.delete(te)}function __PRIVATE_processUserCallback(ee,te,ne){const re=__PRIVATE_debugCast(ee);let se=re.Vc[re.currentUser.toKey()];if(se){const ee=se.get(te);ee&&(ne?ee.reject(ne):ee.resolve(),se=se.remove(te)),re.Vc[re.currentUser.toKey()]=se}}function __PRIVATE_removeAndCleanupTarget(ee,te,ne=null){ee.sharedClientState.removeLocalQueryTarget(te);for(const re of ee.Tc.get(te))ee.hc.delete(re),ne&&ee.Ec.yc(re,ne);ee.Tc.delete(te),ee.isPrimaryClient&&ee.Ac.Xs(te).forEach((te=>{ee.Ac.containsKey(te)||__PRIVATE_removeLimboTarget(ee,te)}))}function __PRIVATE_removeLimboTarget(ee,te){ee.Pc.delete(te.path.canonicalString());const ne=ee.Rc.get(te);null!==ne&&(__PRIVATE_remoteStoreUnlisten(ee.remoteStore,ne),ee.Rc=ee.Rc.remove(te),ee.Ic.delete(ne),__PRIVATE_pumpEnqueuedLimboResolutions(ee))}function __PRIVATE_updateTrackedLimbos(ee,te,ne){for(const re of ne)re instanceof __PRIVATE_AddedLimboDocument?(ee.Ac.addReference(re.key,te),__PRIVATE_trackLimboChange(ee,re)):re instanceof __PRIVATE_RemovedLimboDocument?(__PRIVATE_logDebug(Zs,"Document no longer in limbo: "+re.key),ee.Ac.removeReference(re.key,te),ee.Ac.containsKey(re.key)||__PRIVATE_removeLimboTarget(ee,re.key)):l(19791,{wc:re})}function __PRIVATE_trackLimboChange(ee,te){const ne=te.key,re=ne.path.canonicalString();ee.Rc.get(ne)||ee.Pc.has(re)||(__PRIVATE_logDebug(Zs,"New document in limbo: "+ne),ee.Pc.add(re),__PRIVATE_pumpEnqueuedLimboResolutions(ee))}function __PRIVATE_pumpEnqueuedLimboResolutions(ee){for(;ee.Pc.size>0&&ee.Rc.size<ee.maxConcurrentLimboResolutions;){const te=ee.Pc.values().next().value;ee.Pc.delete(te);const ne=new DocumentKey(ResourcePath.fromString(te)),re=ee.fc.next();ee.Ic.set(re,new LimboResolution(ne)),ee.Rc=ee.Rc.insert(ne,re),__PRIVATE_remoteStoreListen(ee.remoteStore,new TargetData(__PRIVATE_queryToTarget(__PRIVATE_newQueryForPath(ne.path)),re,"TargetPurposeLimboResolution",__PRIVATE_ListenSequence.yn))}}async function __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=[],ie=[],ae=[];re.hc.isEmpty()||(re.hc.forEach(((ee,oe)=>{ae.push(re.gc(oe,te,ne).then((ee=>{if((ee||ne)&&re.isPrimaryClient){const te=ee?!ee.fromCache:ne?.targetChanges.get(oe.targetId)?.current;re.sharedClientState.updateQueryState(oe.targetId,te?"current":"not-current")}if(ee){se.push(ee);const te=__PRIVATE_LocalViewChanges.fo(oe.targetId,ee);ie.push(te)}})))})),await Promise.all(ae),re.Ec.hn(se),await async function __PRIVATE_localStoreNotifyLocalViewChanges(ee,te){const ne=__PRIVATE_debugCast(ee);try{await ne.persistence.runTransaction("notifyLocalViewChanges","readwrite",(ee=>PersistencePromise.forEach(te,(te=>PersistencePromise.forEach(te.Ao,(re=>ne.persistence.referenceDelegate.addReference(ee,te.targetId,re))).next((()=>PersistencePromise.forEach(te.Vo,(re=>ne.persistence.referenceDelegate.removeReference(ee,te.targetId,re)))))))))}catch(ee){if(!__PRIVATE_isIndexedDbTransactionError(ee))throw ee;__PRIVATE_logDebug(Qs,"Failed to update sequence numbers: "+ee)}for(const ee of te){const te=ee.targetId;if(!ee.fromCache){const ee=ne.No.get(te),re=ee.snapshotVersion,se=ee.withLastLimboFreeSnapshotVersion(re);ne.No=ne.No.insert(te,se)}}}(re.localStore,ie))}async function __PRIVATE_syncEngineHandleCredentialChange(ee,te){const ne=__PRIVATE_debugCast(ee);if(!ne.currentUser.isEqual(te)){__PRIVATE_logDebug(Zs,"User change. New user:",te.toKey());const ee=await __PRIVATE_localStoreHandleUserChange(ne.localStore,te);ne.currentUser=te,function __PRIVATE_rejectOutstandingPendingWritesCallbacks(ee,te){ee.dc.forEach((ee=>{ee.forEach((ee=>{ee.reject(new s(gn.CANCELLED,te))}))})),ee.dc.clear()}(ne,"'waitForPendingWrites' promise is rejected due to a user change."),ne.sharedClientState.handleUserChange(te,ee.removedBatchIds,ee.addedBatchIds),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee.qo)}}function __PRIVATE_syncEngineGetRemoteKeysForTarget(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.Ic.get(te);if(re&&re.lc)return __PRIVATE_documentKeySet().add(re.key);{let ee=__PRIVATE_documentKeySet();const re=ne.Tc.get(te);if(!re)return ee;for(const te of re??[]){const re=ne.hc.get(te);ee=ee.unionWith(re.view.Yu)}return ee}}async function __PRIVATE_synchronizeViewAndComputeSnapshot(ee,te){const ne=__PRIVATE_debugCast(ee),re=await __PRIVATE_localStoreExecuteQuery(ne.localStore,te.query,!0),se=te.view.uc(re);return ne.isPrimaryClient&&__PRIVATE_updateTrackedLimbos(ne,te.targetId,se.oc),se}async function __PRIVATE_syncEngineSynchronizeWithChangedDocuments(ee,te){const ne=__PRIVATE_debugCast(ee);return __PRIVATE_localStoreGetNewDocumentChanges(ne.localStore,te).then((ee=>__PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ne,ee)))}async function __PRIVATE_syncEngineApplyBatchState(ee,te,ne,re){const se=__PRIVATE_debugCast(ee),ie=await function __PRIVATE_localStoreLookupMutationDocuments(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_debugCast(ne.mutationQueue);return ne.persistence.runTransaction("Lookup mutation documents","readonly",(ee=>re.Wr(ee,te).next((te=>te?ne.localDocuments.getDocuments(ee,te):PersistencePromise.resolve(null)))))}(se.localStore,te);null!==ie?("pending"===ne?await __PRIVATE_fillWritePipeline(se.remoteStore):"acknowledged"===ne||"rejected"===ne?(__PRIVATE_processUserCallback(se,te,re||null),__PRIVATE_triggerPendingWritesCallbacks(se,te),function __PRIVATE_localStoreRemoveCachedMutationBatchMetadata(ee,te){__PRIVATE_debugCast(__PRIVATE_debugCast(ee).mutationQueue).jr(te)}(se.localStore,te)):l(6720,"Unknown batchState",{bc:ne}),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(se,ie)):__PRIVATE_logDebug(Zs,"Cannot apply mutation batch with id: "+te)}async function __PRIVATE_synchronizeQueryViewsAndRaiseSnapshots(ee,te,ne){const re=__PRIVATE_debugCast(ee),se=[],ie=[];for(const ee of te){let te;const ne=re.Tc.get(ee);if(ne&&0!==ne.length){te=await __PRIVATE_localStoreAllocateTarget(re.localStore,__PRIVATE_isPipeline(ne[0])?ne[0]:__PRIVATE_queryToTarget(ne[0]));for(const ee of ne){const te=re.hc.get(ee),ne=await __PRIVATE_synchronizeViewAndComputeSnapshot(re,te);ne.snapshot&&ie.push(ne.snapshot)}}else{const ne=await __PRIVATE_localStoreGetCachedTarget(re.localStore,ee);te=await __PRIVATE_localStoreAllocateTarget(re.localStore,ne),await __PRIVATE_initializeViewAndComputeSnapshot(re,__PRIVATE_synthesizeTargetToQuery(ne),ee,!1,te.resumeToken)}se.push(te)}return re.Ec.hn(ie),se}function __PRIVATE_synthesizeTargetToQuery(ee){return __PRIVATE_targetIsPipelineTarget(ee)?ee:__PRIVATE_newQuery(ee.path,ee.collectionGroup,ee.orderBy,ee.filters,ee.limit,"F",ee.startAt,ee.endAt)}function __PRIVATE_syncEngineGetActiveClients(ee){return function __PRIVATE_localStoreGetActiveClients(ee){return __PRIVATE_debugCast(__PRIVATE_debugCast(ee).persistence).Ro()}(__PRIVATE_debugCast(ee).localStore)}async function __PRIVATE_syncEngineApplyTargetState(ee,te,ne,re){const se=__PRIVATE_debugCast(ee);if(se.mc)return void __PRIVATE_logDebug(Zs,"Ignoring unexpected query state notification.");const ie=se.Tc.get(te);if(ie&&ie.length>0)switch(ne){case"current":case"not-current":{let ee;if(__PRIVATE_isPipeline(ie[0]))switch(getPipelineSourceType(ie[0])){case"collection_group":case"collection":ee=await __PRIVATE_localStoreGetNewDocumentChanges(se.localStore,getPipelineCollectionId(ie[0]));break;case"documents":ee=await function __PRIVATE_localStoreGetDocuments(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_documentKeySet(...getPipelineDocuments(te).map((ee=>DocumentKey.fromPath(ee))));return ne.persistence.runTransaction("Get documents for pipeline","readonly",(ee=>ne.Uo.getEntries(ee,re))).then((ee=>ee))}(se.localStore,ie[0]);break;default:__PRIVATE_logWarn(""),ee=documentMap()}else ee=await __PRIVATE_localStoreGetNewDocumentChanges(se.localStore,function __PRIVATE_queryCollectionGroup(ee){return ee.collectionGroup||(ee.path.length%2==1?ee.path.lastSegment():ee.path.get(ee.path.length-2))}(ie[0]));const re=RemoteEvent.createSynthesizedRemoteEventForCurrentChange(te,"current"===ne,ByteString.EMPTY_BYTE_STRING);await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(se,ee,re);break}case"rejected":await __PRIVATE_localStoreReleaseTarget(se.localStore,te,!0),__PRIVATE_removeAndCleanupTarget(se,te,re);break;default:l(64155,ne)}}async function __PRIVATE_syncEngineApplyActiveTargetsChange(ee,te,ne){const re=__PRIVATE_ensureWatchCallbacks(ee);if(re.mc){for(const ee of te){if(re.Tc.has(ee)&&re.sharedClientState.isActiveQueryTarget(ee)){__PRIVATE_logDebug(Zs,"Adding an already active target "+ee);continue}const te=await __PRIVATE_localStoreGetCachedTarget(re.localStore,ee),ne=await __PRIVATE_localStoreAllocateTarget(re.localStore,te);await __PRIVATE_initializeViewAndComputeSnapshot(re,__PRIVATE_synthesizeTargetToQuery(te),ne.targetId,!1,ne.resumeToken),__PRIVATE_remoteStoreListen(re.remoteStore,ne)}for(const ee of ne)re.Tc.has(ee)&&await __PRIVATE_localStoreReleaseTarget(re.localStore,ee,!1).then((()=>{__PRIVATE_remoteStoreUnlisten(re.remoteStore,ee),__PRIVATE_removeAndCleanupTarget(re,ee)})).catch(__PRIVATE_ignoreIfPrimaryLeaseLoss)}}function __PRIVATE_ensureWatchCallbacks(ee){const te=__PRIVATE_debugCast(ee);return te.remoteStore.remoteSyncer.applyRemoteEvent=__PRIVATE_syncEngineApplyRemoteEvent.bind(null,te),te.remoteStore.remoteSyncer.getRemoteKeysForTarget=__PRIVATE_syncEngineGetRemoteKeysForTarget.bind(null,te),te.remoteStore.remoteSyncer.rejectListen=__PRIVATE_syncEngineRejectListen.bind(null,te),te.Ec.hn=__PRIVATE_eventManagerOnWatchChange.bind(null,te.eventManager),te.Ec.yc=__PRIVATE_eventManagerOnWatchError.bind(null,te.eventManager),te}function __PRIVATE_syncEngineEnsureWriteCallbacks(ee){const te=__PRIVATE_debugCast(ee);return te.remoteStore.remoteSyncer.applySuccessfulWrite=__PRIVATE_syncEngineApplySuccessfulWrite.bind(null,te),te.remoteStore.remoteSyncer.rejectFailedWrite=__PRIVATE_syncEngineRejectFailedWrite.bind(null,te),te}class __PRIVATE_MemoryOfflineComponentProvider{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(ee){this.serializer=__PRIVATE_newSerializer(ee.databaseInfo.databaseId),this.sharedClientState=this.vc(ee),this.persistence=this.Sc(ee),await this.persistence.start(),this.localStore=this.Dc(ee),this.gcScheduler=this.xc(ee,this.localStore),this.indexBackfillerScheduler=this.Cc(ee,this.localStore)}xc(ee,te){return null}Cc(ee,te){return null}Dc(ee){return __PRIVATE_newLocalStore(this.persistence,new __PRIVATE_QueryEngine,ee.initialUser,this.serializer)}Sc(ee){return new __PRIVATE_MemoryPersistence(__PRIVATE_MemoryEagerDelegate.w_,this.serializer)}vc(ee){return new __PRIVATE_MemorySharedClientState}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}__PRIVATE_MemoryOfflineComponentProvider.provider={build:()=>new __PRIVATE_MemoryOfflineComponentProvider};class __PRIVATE_LruGcMemoryOfflineComponentProvider extends __PRIVATE_MemoryOfflineComponentProvider{constructor(ee){super(),this.cacheSizeBytes=ee}xc(ee,te){__PRIVATE_hardAssert(this.persistence.referenceDelegate instanceof __PRIVATE_MemoryLruDelegate,46915);const ne=this.persistence.referenceDelegate.garbageCollector;return new __PRIVATE_LruScheduler(ne,ee.asyncQueue,te)}Sc(ee){const te=void 0!==this.cacheSizeBytes?LruParams.withCacheSize(this.cacheSizeBytes):LruParams.DEFAULT;return new __PRIVATE_MemoryPersistence((ee=>__PRIVATE_MemoryLruDelegate.w_(ee,te)),this.serializer)}}class __PRIVATE_IndexedDbOfflineComponentProvider extends __PRIVATE_MemoryOfflineComponentProvider{constructor(ee,te,ne){super(),this.Fc=ee,this.cacheSizeBytes=te,this.forceOwnership=ne,this.kind="persistent",this.synchronizeTabs=!1}async initialize(ee){await super.initialize(ee),await this.Fc.initialize(this,ee),await __PRIVATE_syncEngineEnsureWriteCallbacks(this.Fc.syncEngine),await __PRIVATE_fillWritePipeline(this.Fc.remoteStore),await this.persistence.X_((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}Dc(ee){return __PRIVATE_newLocalStore(this.persistence,new __PRIVATE_QueryEngine,ee.initialUser,this.serializer)}xc(ee,te){const ne=this.persistence.referenceDelegate.garbageCollector;return new __PRIVATE_LruScheduler(ne,ee.asyncQueue,te)}Cc(ee,te){const ne=new __PRIVATE_IndexBackfiller(te,this.persistence);return new __PRIVATE_IndexBackfillerScheduler(ee.asyncQueue,ne)}Sc(ee){const te=__PRIVATE_indexedDbStoragePrefix(ee.databaseInfo.databaseId,ee.databaseInfo.persistenceKey),ne=void 0!==this.cacheSizeBytes?LruParams.withCacheSize(this.cacheSizeBytes):LruParams.DEFAULT;return new __PRIVATE_IndexedDbPersistence(this.synchronizeTabs,te,ee.clientId,ne,ee.asyncQueue,__PRIVATE_getWindow(),getDocument(),this.serializer,this.sharedClientState,!!this.forceOwnership)}vc(ee){return new __PRIVATE_MemorySharedClientState}}class __PRIVATE_MultiTabOfflineComponentProvider extends __PRIVATE_IndexedDbOfflineComponentProvider{constructor(ee,te){super(ee,te,!1),this.Fc=ee,this.cacheSizeBytes=te,this.synchronizeTabs=!0}async initialize(ee){await super.initialize(ee);const te=this.Fc.syncEngine;this.sharedClientState instanceof __PRIVATE_WebStorageSharedClientState&&(this.sharedClientState.syncEngine={Iu:__PRIVATE_syncEngineApplyBatchState.bind(null,te),Au:__PRIVATE_syncEngineApplyTargetState.bind(null,te),Vu:__PRIVATE_syncEngineApplyActiveTargetsChange.bind(null,te),Ro:__PRIVATE_syncEngineGetActiveClients.bind(null,te),Ru:__PRIVATE_syncEngineSynchronizeWithChangedDocuments.bind(null,te)},await this.sharedClientState.start()),await this.persistence.X_((async ee=>{await async function __PRIVATE_syncEngineApplyPrimaryState(ee,te){const ne=__PRIVATE_debugCast(ee);if(__PRIVATE_ensureWatchCallbacks(ne),__PRIVATE_syncEngineEnsureWriteCallbacks(ne),!0===te&&!0!==ne.mc){const ee=ne.sharedClientState.getAllActiveQueryTargets(),te=await __PRIVATE_synchronizeQueryViewsAndRaiseSnapshots(ne,ee.toArray());ne.mc=!0,await __PRIVATE_remoteStoreApplyPrimaryState(ne.remoteStore,!0);for(const ee of te)__PRIVATE_remoteStoreListen(ne.remoteStore,ee)}else if(!1===te&&!1!==ne.mc){const ee=[];let te=Promise.resolve();ne.Tc.forEach(((re,se)=>{ne.sharedClientState.isLocalQueryTarget(se)?ee.push(se):te=te.then((()=>(__PRIVATE_removeAndCleanupTarget(ne,se),__PRIVATE_localStoreReleaseTarget(ne.localStore,se,!0)))),__PRIVATE_remoteStoreUnlisten(ne.remoteStore,se)})),await te,await __PRIVATE_synchronizeQueryViewsAndRaiseSnapshots(ne,ee),function __PRIVATE_resetLimboDocuments(ee){const te=__PRIVATE_debugCast(ee);te.Ic.forEach(((ee,ne)=>{__PRIVATE_remoteStoreUnlisten(te.remoteStore,ne)})),te.Ac.e_(),te.Ic=new Map,te.Rc=new SortedMap(DocumentKey.comparator)}(ne),ne.mc=!1,await __PRIVATE_remoteStoreApplyPrimaryState(ne.remoteStore,!1)}}(this.Fc.syncEngine,ee),this.gcScheduler&&(ee&&!this.gcScheduler.started?this.gcScheduler.start():ee||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(ee&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():ee||this.indexBackfillerScheduler.stop())}))}vc(ee){const te=__PRIVATE_getWindow();if(!__PRIVATE_WebStorageSharedClientState.Je(te))throw new s(gn.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const ne=__PRIVATE_indexedDbStoragePrefix(ee.databaseInfo.databaseId,ee.databaseInfo.persistenceKey);return new __PRIVATE_WebStorageSharedClientState(te,ee.asyncQueue,ne,ee.clientId,ee.initialUser)}}class OnlineComponentProvider{async initialize(ee,te){this.localStore||(this.localStore=ee.localStore,this.sharedClientState=ee.sharedClientState,this.datastore=this.createDatastore(te),this.remoteStore=this.createRemoteStore(te),this.eventManager=this.createEventManager(te),this.syncEngine=this.createSyncEngine(te,!ee.synchronizeTabs),this.sharedClientState.onlineStateHandler=ee=>__PRIVATE_syncEngineApplyOnlineStateChange(this.syncEngine,ee,1),this.remoteStore.remoteSyncer.handleCredentialChange=__PRIVATE_syncEngineHandleCredentialChange.bind(null,this.syncEngine),await __PRIVATE_remoteStoreApplyPrimaryState(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(ee){return function __PRIVATE_newEventManager(){return new __PRIVATE_EventManagerImpl}()}createDatastore(ee){const te=__PRIVATE_newSerializer(ee.databaseInfo.databaseId),ne=__PRIVATE_newConnection(ee.databaseInfo);return __PRIVATE_newDatastore(ee.authCredentials,ee.appCheckCredentials,ne,te)}createRemoteStore(ee){return function __PRIVATE_newRemoteStore(ee,te,ne,re,se){return new __PRIVATE_RemoteStoreImpl(ee,te,ne,re,se)}(this.localStore,this.datastore,ee.asyncQueue,(ee=>__PRIVATE_syncEngineApplyOnlineStateChange(this.syncEngine,ee,0)),function __PRIVATE_newConnectivityMonitor(){return __PRIVATE_BrowserConnectivityMonitor.Je()?new __PRIVATE_BrowserConnectivityMonitor:new __PRIVATE_NoopConnectivityMonitor}())}createSyncEngine(ee,te){return function __PRIVATE_newSyncEngine(ee,te,ne,re,se,ie,ae){const oe=new __PRIVATE_SyncEngineImpl(ee,te,ne,re,se,ie);return ae&&(oe.mc=!0),oe}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,ee.initialUser,ee.maxConcurrentLimboResolutions,te)}async terminate(){await async function __PRIVATE_remoteStoreShutdown(ee){const te=__PRIVATE_debugCast(ee);__PRIVATE_logDebug(js,"RemoteStore shutting down."),te.ca.add(5),await __PRIVATE_disableNetworkInternal(te),te.Ea.shutdown(),te.ha.set("Unknown")}(this.remoteStore),this.datastore?.terminate(),this.eventManager?.terminate()}}OnlineComponentProvider.provider={build:()=>new OnlineComponentProvider};let ei=class Transaction{constructor(ee){this.datastore=ee,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(ee){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new s(gn.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const te=await async function __PRIVATE_invokeBatchGetDocumentsRpc(ee,te){const ne=__PRIVATE_debugCast(ee),re={documents:te.map((ee=>__PRIVATE_toName(ne.serializer,ee)))},se=await ne.st("BatchGetDocuments",ne.serializer.databaseId,ResourcePath.emptyPath(),re,te.length),ie=new Map;se.forEach((ee=>{const te=function __PRIVATE_fromBatchGetDocumentsResponse(ee,te){return"found"in te?function __PRIVATE_fromFound(ee,te){__PRIVATE_hardAssert(!!te.found,43571),te.found.name,te.found.updateTime;const ne=fromName(ee,te.found.name),re=__PRIVATE_fromVersion(te.found.updateTime),se=te.found.createTime?__PRIVATE_fromVersion(te.found.createTime):SnapshotVersion.min(),ie=new ObjectValue({mapValue:{fields:te.found.fields}});return MutableDocument.newFoundDocument(ne,re,se,ie)}(ee,te):"missing"in te?function __PRIVATE_fromMissing(ee,te){__PRIVATE_hardAssert(!!te.missing,3894),__PRIVATE_hardAssert(!!te.readTime,22933);const ne=fromName(ee,te.missing),re=__PRIVATE_fromVersion(te.readTime);return MutableDocument.newNoDocument(ne,re)}(ee,te):l(7234,{result:te})}(ne.serializer,ee);ie.set(te.key.toString(),te)}));const ae=[];return te.forEach((ee=>{const te=ie.get(ee.toString());__PRIVATE_hardAssert(!!te,55234,{key:ee}),ae.push(te)})),ae}(this.datastore,ee);return te.forEach((ee=>this.recordVersion(ee))),te}set(ee,te){this.write(te.toMutation(ee,this.precondition(ee))),this.writtenDocs.add(ee.toString())}update(ee,te){try{this.write(te.toMutation(ee,this.preconditionForUpdate(ee)))}catch(ee){this.lastTransactionError=ee}this.writtenDocs.add(ee.toString())}delete(ee){this.write(new __PRIVATE_DeleteMutation(ee,this.precondition(ee))),this.writtenDocs.add(ee.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const ee=this.readVersions;this.mutations.forEach((te=>{ee.delete(te.key.toString())})),ee.forEach(((ee,te)=>{const ne=DocumentKey.fromPath(te);this.mutations.push(new __PRIVATE_VerifyMutation(ne,this.precondition(ne)))})),await async function __PRIVATE_invokeCommitRpc(ee,te){const ne=__PRIVATE_debugCast(ee),re={writes:te.map((ee=>toMutation(ne.serializer,ee)))};await ne.tt("Commit",ne.serializer.databaseId,ResourcePath.emptyPath(),re)}(this.datastore,this.mutations),this.committed=!0}recordVersion(ee){let te;if(ee.isFoundDocument())te=ee.version;else{if(!ee.isNoDocument())throw l(50498,{Oc:ee.constructor.name});te=SnapshotVersion.min()}const ne=this.readVersions.get(ee.key.toString());if(ne){if(!te.isEqual(ne))throw new s(gn.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(ee.key.toString(),te)}precondition(ee){const te=this.readVersions.get(ee.toString());return!this.writtenDocs.has(ee.toString())&&te?te.isEqual(SnapshotVersion.min())?Precondition.exists(!1):Precondition.updateTime(te):Precondition.none()}preconditionForUpdate(ee){const te=this.readVersions.get(ee.toString());if(!this.writtenDocs.has(ee.toString())&&te){if(te.isEqual(SnapshotVersion.min()))throw new s(gn.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Precondition.updateTime(te)}return Precondition.exists(!0)}write(ee){this.ensureCommitNotCalled(),this.mutations.push(ee)}ensureCommitNotCalled(){}};class __PRIVATE_TransactionRunner{constructor(ee,te,ne,re,se){this.asyncQueue=ee,this.datastore=te,this.options=ne,this.updateFunction=re,this.deferred=se,this.Mc=ne.maxAttempts,this.jt=new __PRIVATE_ExponentialBackoff(this.asyncQueue,"transaction_retry")}Nc(){this.Mc-=1,this.Lc()}Lc(){this.jt.Ut((async()=>{const ee=new ei(this.datastore),te=this.Bc(ee);te&&te.then((te=>{this.asyncQueue.enqueueAndForget((()=>ee.commit().then((()=>{this.deferred.resolve(te)})).catch((ee=>{this.Uc(ee)}))))})).catch((ee=>{this.Uc(ee)}))}))}Bc(ee){try{const te=this.updateFunction(ee);return!__PRIVATE_isNullOrUndefined(te)&&te.catch&&te.then?te:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(ee){return this.deferred.reject(ee),null}}Uc(ee){this.Mc>0&&this.kc(ee)?(this.Mc-=1,this.asyncQueue.enqueueAndForget((()=>(this.Lc(),Promise.resolve())))):this.deferred.reject(ee)}kc(ee){if("FirebaseError"===ee?.name){const te=ee.code;return"aborted"===te||"failed-precondition"===te||"already-exists"===te||!__PRIVATE_isPermanentError(te)}return!1}}const ti="FirestoreClient";class FirestoreClient{constructor(ee,te,ne,re,se){this.authCredentials=ee,this.appCheckCredentials=te,this.asyncQueue=ne,this._databaseInfo=re,this.user=User.UNAUTHENTICATED,this.clientId=__PRIVATE_AutoId.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=se,this.authCredentials.start(ne,(async ee=>{__PRIVATE_logDebug(ti,"Received user=",ee.uid),await this.authCredentialListener(ee),this.user=ee})),this.appCheckCredentials.start(ne,(ee=>(__PRIVATE_logDebug(ti,"Received new app check token=",ee),this.appCheckCredentialListener(ee,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(ee){this.authCredentialListener=ee}setAppCheckTokenChangeListener(ee){this.appCheckCredentialListener=ee}terminate(){this.asyncQueue.enterRestrictedMode();const ee=new __PRIVATE_Deferred;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),ee.resolve()}catch(te){const ne=__PRIVATE_wrapInUserErrorIfRecoverable(te,"Failed to shutdown persistence");ee.reject(ne)}})),ee.promise}}async function __PRIVATE_setOfflineComponentProvider(ee,te){ee.asyncQueue.verifyOperationInProgress(),__PRIVATE_logDebug(ti,"Initializing OfflineComponentProvider");const ne=ee.configuration;await te.initialize(ne);let re=ne.initialUser;ee.setCredentialChangeListener((async ee=>{re.isEqual(ee)||(await __PRIVATE_localStoreHandleUserChange(te.localStore,ee),re=ee)})),te.persistence.setDatabaseDeletedListener((()=>ee.terminate())),ee._offlineComponents=te}async function __PRIVATE_setOnlineComponentProvider(ee,te){ee.asyncQueue.verifyOperationInProgress();const ne=await __PRIVATE_ensureOfflineComponents(ee);__PRIVATE_logDebug(ti,"Initializing OnlineComponentProvider"),await te.initialize(ne,ee.configuration),ee.setCredentialChangeListener((ee=>__PRIVATE_remoteStoreHandleCredentialChange(te.remoteStore,ee))),ee.setAppCheckTokenChangeListener(((ee,ne)=>__PRIVATE_remoteStoreHandleCredentialChange(te.remoteStore,ne))),ee._onlineComponents=te}async function __PRIVATE_ensureOfflineComponents(ee){if(!ee._offlineComponents)if(ee._uninitializedComponentsProvider){__PRIVATE_logDebug(ti,"Using user provided OfflineComponentProvider");try{await __PRIVATE_setOfflineComponentProvider(ee,ee._uninitializedComponentsProvider._offline)}catch(te){const ne=te;if(!function __PRIVATE_canFallbackFromIndexedDbError(ee){return"FirebaseError"===ee.name?ee.code===gn.FAILED_PRECONDITION||ee.code===gn.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&ee instanceof DOMException)||22===ee.code||20===ee.code||11===ee.code}(ne))throw ne;__PRIVATE_logWarn("Error using user provided cache. Falling back to memory cache: "+ne),await __PRIVATE_setOfflineComponentProvider(ee,new __PRIVATE_MemoryOfflineComponentProvider)}}else __PRIVATE_logDebug(ti,"Using default OfflineComponentProvider"),await __PRIVATE_setOfflineComponentProvider(ee,new __PRIVATE_LruGcMemoryOfflineComponentProvider(void 0));return ee._offlineComponents}async function __PRIVATE_ensureOnlineComponents(ee){return ee._onlineComponents||(ee._uninitializedComponentsProvider?(__PRIVATE_logDebug(ti,"Using user provided OnlineComponentProvider"),await __PRIVATE_setOnlineComponentProvider(ee,ee._uninitializedComponentsProvider._online)):(__PRIVATE_logDebug(ti,"Using default OnlineComponentProvider"),await __PRIVATE_setOnlineComponentProvider(ee,new OnlineComponentProvider))),ee._onlineComponents}function __PRIVATE_getPersistence(ee){return __PRIVATE_ensureOfflineComponents(ee).then((ee=>ee.persistence))}function __PRIVATE_getLocalStore(ee){return __PRIVATE_ensureOfflineComponents(ee).then((ee=>ee.localStore))}function __PRIVATE_getRemoteStore(ee){return __PRIVATE_ensureOnlineComponents(ee).then((ee=>ee.remoteStore))}function __PRIVATE_getSyncEngine(ee){return __PRIVATE_ensureOnlineComponents(ee).then((ee=>ee.syncEngine))}function __PRIVATE_getDatastore(ee){return __PRIVATE_ensureOnlineComponents(ee).then((ee=>ee.datastore))}async function __PRIVATE_getEventManager(ee){const te=await __PRIVATE_ensureOnlineComponents(ee),ne=te.eventManager;return ne.onListen=__PRIVATE_syncEngineListen.bind(null,te.syncEngine),ne.onUnlisten=__PRIVATE_syncEngineUnlisten.bind(null,te.syncEngine),ne.onFirstRemoteStoreListen=__PRIVATE_triggerRemoteStoreListen.bind(null,te.syncEngine),ne.onLastRemoteStoreUnlisten=__PRIVATE_triggerRemoteStoreUnlisten.bind(null,te.syncEngine),ne}function __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(ee,te,ne={}){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_readDocumentViaSnapshotListener(ee,te,ne,re,se){const ie=new __PRIVATE_AsyncObserver({next:oe=>{ie.Aa(),te.enqueueAndForget((()=>__PRIVATE_eventManagerUnlisten(ee,ae)));const ue=oe.docs.has(ne);!ue&&oe.fromCache?se.reject(new s(gn.UNAVAILABLE,"Failed to get document because the client is offline.")):ue&&oe.fromCache&&re&&"server"===re.source?se.reject(new s(gn.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.)')):se.resolve(oe)},error:ee=>se.reject(ee)}),ae=new __PRIVATE_QueryListener(__PRIVATE_newQueryForPath(ne.path),ie,{includeMetadataChanges:!0,waitForSyncWhenOnline:!0});return __PRIVATE_eventManagerListen(ee,ae)}(await __PRIVATE_getEventManager(ee),ee.asyncQueue,te,ne,re))),re.promise}function __PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(ee,te,ne={}){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_executeQueryViaSnapshotListener(ee,te,ne,re,se){const ie=new __PRIVATE_AsyncObserver({next:ne=>{ie.Aa(),te.enqueueAndForget((()=>__PRIVATE_eventManagerUnlisten(ee,ae))),ne.fromCache&&"server"===re.source?se.reject(new s(gn.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.)')):se.resolve(ne)},error:ee=>se.reject(ee)}),ae=new __PRIVATE_QueryListener(ne instanceof __PRIVATE_RealtimePipeline?__PRIVATE_toCorePipeline(ne):ne,ie,{includeMetadataChanges:!0,waitForSyncWhenOnline:!0});return __PRIVATE_eventManagerListen(ee,ae)}(await __PRIVATE_getEventManager(ee),ee.asyncQueue,te,ne,re))),re.promise}function __PRIVATE_firestoreClientWrite(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_syncEngineWrite(ee,te,ne){const re=__PRIVATE_syncEngineEnsureWriteCallbacks(ee);try{const ee=await function __PRIVATE_localStoreWriteLocally(ee,te){const ne=__PRIVATE_debugCast(ee),re=Timestamp.now(),se=te.reduce(((ee,te)=>ee.add(te.key)),__PRIVATE_documentKeySet());let ie,ae;return ne.persistence.runTransaction("Locally write mutations","readwrite",(ee=>{let oe=__PRIVATE_mutableDocumentMap(),ue=__PRIVATE_documentKeySet();return ne.Uo.getEntries(ee,se).next((ee=>{oe=ee,oe.forEach(((ee,te)=>{te.isValidDocument()||(ue=ue.add(ee))}))})).next((()=>ne.localDocuments.getOverlayedDocuments(ee,oe))).next((se=>{ie=se;const ae=[];for(const ee of te){const te=__PRIVATE_mutationExtractBaseValue(ee,ie.get(ee.key).overlayedDocument);null!=te&&ae.push(new __PRIVATE_PatchMutation(ee.key,te,__PRIVATE_extractFieldMask(te.value.mapValue),Precondition.exists(!0)))}return ne.mutationQueue.addMutationBatch(ee,re,ae,te)})).next((te=>{ae=te;const re=te.applyToLocalDocumentSet(ie,ue);return ne.documentOverlayCache.saveOverlays(ee,te.batchId,re)}))})).then((()=>({batchId:ae.batchId,changes:__PRIVATE_convertOverlayedDocumentMapToDocumentMap(ie)})))}(re.localStore,te);re.sharedClientState.addPendingMutation(ee.batchId),function __PRIVATE_addMutationCallback(ee,te,ne){let re=ee.Vc[ee.currentUser.toKey()];re||(re=new SortedMap(__PRIVATE_primitiveComparator)),re=re.insert(te,ne),ee.Vc[ee.currentUser.toKey()]=re}(re,ee.batchId,ne),await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(re,ee.changes),await __PRIVATE_fillWritePipeline(re.remoteStore)}catch(ee){const te=__PRIVATE_wrapInUserErrorIfRecoverable(ee,"Failed to persist write");ne.reject(te)}}(await __PRIVATE_getSyncEngine(ee),te,ne))),ne.promise}function __PRIVATE_firestoreClientLoadBundle(ee,te,ne,re){const se=function __PRIVATE_createBundleReader(ee,te){let ne;return ne="string"==typeof ee?__PRIVATE_newTextEncoder().encode(ee):ee,function __PRIVATE_newBundleReader(ee,te){return new __PRIVATE_BundleReaderImpl(ee,te)}(function __PRIVATE_toByteStreamReader(ee,te){if(ee instanceof Uint8Array)return __PRIVATE_toByteStreamReaderHelper(ee,te);if(ee instanceof ArrayBuffer)return __PRIVATE_toByteStreamReaderHelper(new Uint8Array(ee),te);if(ee instanceof ReadableStream)return ee.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(ne),te)}(ne,__PRIVATE_newSerializer(te));ee.asyncQueue.enqueueAndForget((async()=>{!function __PRIVATE_syncEngineLoadBundle(ee,te,ne){const re=__PRIVATE_debugCast(ee);(async function __PRIVATE_loadBundleImpl(ee,te,ne){try{const re=await te.getMetadata();if(await function __PRIVATE_localStoreHasNewerBundle(ee,te){const ne=__PRIVATE_debugCast(ee),re=__PRIVATE_fromVersion(te.createTime);return ne.persistence.runTransaction("hasNewerBundle","readonly",(ee=>ne.d_.getBundleMetadata(ee,te.id))).then((ee=>!!ee&&ee.createTime.compareTo(re)>=0))}(ee.localStore,re))return await te.close(),ne._completeWith(function __PRIVATE_bundleSuccessProgress(ee){return{taskState:"Success",documentsLoaded:ee.totalDocuments,bytesLoaded:ee.totalBytes,totalDocuments:ee.totalDocuments,totalBytes:ee.totalBytes}}(re)),Promise.resolve(new Set);ne._updateProgress(__PRIVATE_bundleInitialProgress(re));const se=new __PRIVATE_BundleLoader(re,te.serializer);let ie=await te.ma();for(;ie;){const ee=await se.qu(ie);ee&&ne._updateProgress(ee),ie=await te.ma()}const ae=await se.Ku(ee.localStore);return await __PRIVATE_syncEngineEmitNewSnapsAndNotifyLocalStore(ee,ae.Qu,void 0),await function __PRIVATE_localStoreSaveBundle(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Save bundle","readwrite",(ee=>ne.d_.saveBundleMetadata(ee,te)))}(ee.localStore,re),ne._completeWith(ae.progress),Promise.resolve(ae.Wu)}catch(ee){return __PRIVATE_logWarn(Zs,`Loading bundle failed with ${ee}`),ne._failWith(ee),Promise.resolve(new Set)}})(re,te,ne).then((ee=>{re.sharedClientState.notifyBundleLoaded(ee)}))}(await __PRIVATE_getSyncEngine(ee),se,re)}))}function __PRIVATE_createBundleReaderSync(ee,te){return function __PRIVATE_newBundleReaderSync(ee,te){return new __PRIVATE_BundleReaderSyncImpl(ee,te)}(ee,te)}class pa{constructor(ee={},te={}){this.qc=ee,this.$c=te,this.Kc=new OptionsUtil({indexMode:{serverName:"index_mode"}})}_readUserData(ee){this.proto=this.Kc.getOptionsProto(ee,this.qc,this.$c)}}class ma{constructor(ee,te){this.pipeline=ee,this.options=te}_toProto(ee){return{pipeline:this.pipeline._toProto(ee),options:this.options.proto}}}const ni="AsyncQueue";class __PRIVATE_AsyncQueueImpl{constructor(ee=Promise.resolve()){this.Wc=[],this.Qc=!1,this.Gc=[],this.zc=null,this.jc=!1,this.Hc=!1,this.Jc=[],this.jt=new __PRIVATE_ExponentialBackoff(this,"async_queue_retry"),this.Yc=()=>{const ee=getDocument();ee&&__PRIVATE_logDebug(ni,"Visibility state changed to "+ee.visibilityState),this.jt.qt()},this.Zc=ee;const te=getDocument();te&&"function"==typeof te.addEventListener&&te.addEventListener("visibilitychange",this.Yc)}get isShuttingDown(){return this.Qc}enqueueAndForget(ee){this.enqueue(ee)}enqueueAndForgetEvenWhileRestricted(ee){this.Xc(),this.el(ee)}enterRestrictedMode(ee){if(!this.Qc){this.Qc=!0,this.Hc=ee||!1;const te=getDocument();te&&"function"==typeof te.removeEventListener&&te.removeEventListener("visibilitychange",this.Yc)}}enqueue(ee){if(this.Xc(),this.Qc)return new Promise((()=>{}));const te=new __PRIVATE_Deferred;return this.el((()=>this.Qc&&this.Hc?Promise.resolve():(ee().then(te.resolve,te.reject),te.promise))).then((()=>te.promise))}enqueueRetryable(ee){this.enqueueAndForget((()=>(this.Wc.push(ee),this.tl())))}async tl(){if(0!==this.Wc.length){try{await this.Wc[0](),this.Wc.shift(),this.jt.reset()}catch(ee){if(!__PRIVATE_isIndexedDbTransactionError(ee))throw ee;__PRIVATE_logDebug(ni,"Operation failed with retryable error: "+ee)}this.Wc.length>0&&this.jt.Ut((()=>this.tl()))}}el(ee){const te=this.Zc.then((()=>(this.jc=!0,ee().catch((ee=>{throw this.zc=ee,this.jc=!1,__PRIVATE_logError("INTERNAL UNHANDLED ERROR: ",__PRIVATE_getMessageOrStack(ee)),ee})).then((ee=>(this.jc=!1,ee))))));return this.Zc=te,te}enqueueAfterDelay(ee,te,ne){this.Xc(),this.Jc.indexOf(ee)>-1&&(te=0);const re=DelayedOperation.createAndSchedule(this,ee,te,ne,(ee=>this.nl(ee)));return this.Gc.push(re),re}Xc(){this.zc&&l(47125,{rl:__PRIVATE_getMessageOrStack(this.zc)})}verifyOperationInProgress(){}async il(){let ee;do{ee=this.Zc,await ee}while(ee!==this.Zc)}sl(ee){for(const te of this.Gc)if(te.timerId===ee)return!0;return!1}_l(ee){return this.il().then((()=>{this.Gc.sort(((ee,te)=>ee.targetTimeMs-te.targetTimeMs));for(const te of this.Gc)if(te.skipDelay(),"all"!==ee&&te.timerId===ee)break;return this.il()}))}ol(ee){this.Jc.push(ee)}nl(ee){const te=this.Gc.indexOf(ee);this.Gc.splice(te,1)}}function __PRIVATE_getMessageOrStack(ee){let te=ee.message||"";return ee.stack&&(te=ee.stack.includes(ee.message)?ee.stack:ee.message+"\n"+ee.stack),te}class LoadBundleTask{constructor(){this._progressObserver={},this._taskCompletionResolver=new __PRIVATE_Deferred,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(ee,te,ne){this._progressObserver={next:ee,error:te,complete:ne}}catch(ee){return this._taskCompletionResolver.promise.catch(ee)}then(ee,te){return this._taskCompletionResolver.promise.then(ee,te)}_completeWith(ee){this._updateProgress(ee),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(ee)}_failWith(ee){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(ee),this._taskCompletionResolver.reject(ee)}_updateProgress(ee){this._lastProgress=ee,this._progressObserver.next&&this._progressObserver.next(ee)}}const ri=-1;class da extends gr{constructor(ee,te,ne,re){super(ee,te,ne,re),this.type="firestore",this._queue=new __PRIVATE_AsyncQueueImpl,this._persistenceKey=re?.name||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){const ee=this._firestoreClient.terminate();this._queue=new __PRIVATE_AsyncQueueImpl(ee),this._firestoreClient=void 0,await ee}}}function initializeFirestore(ee,te,ne){ne||(ne=Sn);const re=_getProvider(ee,"firestore");if(re.isInitialized(ne)){const ee=re.getImmediate({identifier:ne});if(deepEqual(re.getOptions(ne),te))return ee;throw new s(gn.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==te.cacheSizeBytes&&void 0!==te.localCache)throw new s(gn.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==te.cacheSizeBytes&&-1!==te.cacheSizeBytes&&te.cacheSizeBytes<pr)throw new s(gn.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return te.host&&isCloudWorkstation(te.host)&&pingServer(te.host),re.initialize({options:te,instanceIdentifier:ne})}function getFirestore(ee,ne){const re="object"==typeof ee?ee:te(),se="string"==typeof ee?ee:ne||Sn,ie=_getProvider(re,"firestore").getImmediate({identifier:se});if(!ie._initialized){const ee=getDefaultEmulatorHostnameAndPort("firestore");ee&&connectFirestoreEmulator(ie,...ee)}return ie}function oa(ee){if(ee._terminated)throw new s(gn.FAILED_PRECONDITION,"The client has already been terminated.");return ee._firestoreClient||__PRIVATE_configureFirestore(ee),ee._firestoreClient}function __PRIVATE_configureFirestore(ee){const te=ee._freezeSettings(),ne=__PRIVATE_makeDatabaseInfo(ee._databaseId,ee._app?.options.appId||"",ee._persistenceKey,ee._app?.options.apiKey,te);ee._componentsProvider||te.localCache?._offlineComponentProvider&&te.localCache?._onlineComponentProvider&&(ee._componentsProvider={_offline:te.localCache._offlineComponentProvider,_online:te.localCache._onlineComponentProvider}),ee._firestoreClient=new FirestoreClient(ee._authCredentials,ee._appCheckCredentials,ee._queue,ne,ee._componentsProvider&&function __PRIVATE_buildComponentProvider(ee){const te=ee?._online.build();return{_offline:ee?._offline.build(te),_online:te}}(ee._componentsProvider))}function enableIndexedDbPersistence(ee,te){__PRIVATE_logWarn("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const ne=ee._freezeSettings();return __PRIVATE_setPersistenceProviders(ee,OnlineComponentProvider.provider,{build:ee=>new __PRIVATE_IndexedDbOfflineComponentProvider(ee,ne.cacheSizeBytes,te?.forceOwnership)}),Promise.resolve()}async function enableMultiTabIndexedDbPersistence(ee){__PRIVATE_logWarn("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const te=ee._freezeSettings();__PRIVATE_setPersistenceProviders(ee,OnlineComponentProvider.provider,{build:ee=>new __PRIVATE_MultiTabOfflineComponentProvider(ee,te.cacheSizeBytes)})}function __PRIVATE_setPersistenceProviders(ee,te,ne){if((ee=ra(ee,da))._firestoreClient||ee._terminated)throw new s(gn.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(ee._componentsProvider||ee._getSettings().localCache)throw new s(gn.FAILED_PRECONDITION,"SDK cache is already specified.");ee._componentsProvider={_online:te,_offline:ne},__PRIVATE_configureFirestore(ee)}function clearIndexedDbPersistence(ee){if(ee._initialized&&!ee._terminated)throw new s(gn.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const te=new __PRIVATE_Deferred;return ee._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function __PRIVATE_indexedDbClearPersistence(ee){if(!__PRIVATE_SimpleDb.Je())return Promise.resolve();const te=ee+Ks;await __PRIVATE_SimpleDb.delete(te)}(__PRIVATE_indexedDbStoragePrefix(ee._databaseId,ee._persistenceKey)),te.resolve()}catch(ee){te.reject(ee)}})),te.promise}function waitForPendingWrites(ee){return function __PRIVATE_firestoreClientWaitForPendingWrites(ee){const te=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_syncEngineRegisterPendingWritesCallback(ee,te){const ne=__PRIVATE_debugCast(ee);__PRIVATE_canUseNetwork(ne.remoteStore)||__PRIVATE_logDebug(Zs,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const ee=await function __PRIVATE_localStoreGetHighestUnacknowledgedBatchId(ee){const te=__PRIVATE_debugCast(ee);return te.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(ee=>te.mutationQueue.getHighestUnacknowledgedBatchId(ee)))}(ne.localStore);if(ee===vn)return void te.resolve();const re=ne.dc.get(ee)||[];re.push(te),ne.dc.set(ee,re)}catch(ee){const ne=__PRIVATE_wrapInUserErrorIfRecoverable(ee,"Initialization of waitForPendingWrites() operation failed");te.reject(ne)}}(await __PRIVATE_getSyncEngine(ee),te))),te.promise}(oa(ee=ra(ee,da)))}function enableNetwork(ee){return function __PRIVATE_firestoreClientEnableNetwork(ee){return ee.asyncQueue.enqueue((async()=>{const te=await __PRIVATE_getPersistence(ee),ne=await __PRIVATE_getRemoteStore(ee);return te.setNetworkEnabled(!0),function __PRIVATE_remoteStoreEnableNetwork(ee){const te=__PRIVATE_debugCast(ee);return te.ca.delete(0),__PRIVATE_enableNetworkInternal(te)}(ne)}))}(oa(ee=ra(ee,da)))}function disableNetwork(ee){return function __PRIVATE_firestoreClientDisableNetwork(ee){return ee.asyncQueue.enqueue((async()=>{const te=await __PRIVATE_getPersistence(ee),ne=await __PRIVATE_getRemoteStore(ee);return te.setNetworkEnabled(!1),async function __PRIVATE_remoteStoreDisableNetwork(ee){const te=__PRIVATE_debugCast(ee);te.ca.add(0),await __PRIVATE_disableNetworkInternal(te),te.ha.set("Offline")}(ne)}))}(oa(ee=ra(ee,da)))}function terminate(ee){return ne(ee.app,"firestore",ee._databaseId.database),ee._delete()}function loadBundle(ee,te){const ne=oa(ee=ra(ee,da)),re=new LoadBundleTask;return __PRIVATE_firestoreClientLoadBundle(ne,ee._databaseId,te,re),re}function namedQuery(ee,te){return function __PRIVATE_firestoreClientGetNamedQuery(ee,te){return ee.asyncQueue.enqueue((async()=>function __PRIVATE_localStoreGetNamedQuery(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("Get named query","readonly",(ee=>ne.d_.getNamedQuery(ee,te)))}(await __PRIVATE_getLocalStore(ee),te)))}(oa(ee=ra(ee,da)),te).then((te=>te?new Query(ee,null,te.query):null))}class AbstractUserDataWriter{convertValue(ee,te="none"){switch(__PRIVATE_typeOrder(ee)){case 0:return null;case 1:return ee.booleanValue;case 2:return __PRIVATE_normalizeNumber(ee.integerValue||ee.doubleValue);case 3:return this.convertTimestamp(ee.timestampValue);case 4:return this.convertServerTimestamp(ee,te);case 5:return ee.stringValue;case 6:return this.convertBytes(__PRIVATE_normalizeByteString(ee.bytesValue));case 7:return this.convertReference(ee.referenceValue);case 8:return this.convertGeoPoint(ee.geoPointValue);case 9:return this.convertArray(ee.arrayValue,te);case 11:return this.convertObject(ee.mapValue,te);case 10:return this.convertVectorValue(ee.mapValue);default:throw l(62114,{value:ee})}}convertObject(ee,te){return this.convertObjectMap(ee.fields,te)}convertObjectMap(ee,te="none"){const ne={};return forEach(ee,((ee,re)=>{ne[ee]=this.convertValue(re,te)})),ne}convertVectorValue(ee){const te=ee.fields?.[Ln].arrayValue?.values?.map((ee=>__PRIVATE_normalizeNumber(ee.doubleValue)));return new n(te)}convertGeoPoint(ee){return new GeoPoint(__PRIVATE_normalizeNumber(ee.latitude),__PRIVATE_normalizeNumber(ee.longitude))}convertArray(ee,te){return(ee.values||[]).map((ee=>this.convertValue(ee,te)))}convertServerTimestamp(ee,te){switch(te){case"previous":const ne=__PRIVATE_getPreviousValue(ee);return null==ne?null:this.convertValue(ne,te);case"estimate":return this.convertTimestamp(__PRIVATE_getLocalWriteTime(ee));default:return null}}convertTimestamp(ee){const te=__PRIVATE_normalizeTimestamp(ee);return new Timestamp(te.seconds,te.nanos)}convertDocumentKey(ee,te){const ne=ResourcePath.fromString(ee);__PRIVATE_hardAssert(__PRIVATE_isValidResourceName(ne),9688,{name:ee});const re=new DatabaseId(ne.get(1),ne.get(3)),se=new DocumentKey(ne.popFirst(5));return re.isEqual(te)||__PRIVATE_logError(`Document ${se} contains a document reference within a different database (${re.projectId}/${re.database}) which is not supported. It will be treated as a reference in the current database (${te.projectId}/${te.database}) instead.`),se}}class ua extends AbstractUserDataWriter{constructor(ee){super(),this.firestore=ee}convertBytes(ee){return new Bytes(ee)}convertReference(ee){const te=this.convertDocumentKey(ee,this.firestore._databaseId);return new X(this.firestore,null,te)}}function _internalQueryToProtoQueryTarget(ee){const te=oa(ra(ee.firestore,da)),ne=te._onlineComponents?.datastore.serializer;return void 0===ne?null:__PRIVATE_toQueryTarget(ne,__PRIVATE_queryToTarget(ee._query)).be}function _internalAggregationQueryToProtoRunAggregationQueryRequest(ee,te){const ne=__PRIVATE_mapToArray(te,((ee,te)=>new __PRIVATE_AggregateImpl(te,ee.aggregateType,ee._internalFieldPath))),re=oa(ra(ee.firestore,da)),se=re._onlineComponents?.datastore.serializer;return void 0===se?null:__PRIVATE_toRunAggregationQueryRequest(se,__PRIVATE_queryToAggregateTarget(ee._query),ne,!0).request}function __PRIVATE_isPartialObserver(ee){return function __PRIVATE_implementsAnyMethods(ee,te){if("object"!=typeof ee||null===ee)return!1;const ne=ee;for(const ee of te)if(ee in ne&&"function"==typeof ne[ee])return!0;return!1}(ee,["next","error","complete"])}const si="@firebase/firestore",ii="4.17.0";class AggregateField{constructor(ee="count",te){this._internalFieldPath=te,this.type="AggregateField",this.aggregateType=ee}}class AggregateQuerySnapshot{constructor(ee,te,ne){this._userDataWriter=te,this._data=ne,this.type="AggregateQuerySnapshot",this.query=ee}data(){return this._userDataWriter.convertObjectMap(this._data)}_fieldsProto(){return new ObjectValue({mapValue:{fields:this._data}}).clone().value.mapValue.fields}}let ai=class DocumentSnapshot{constructor(ee,te,ne,re,se){this._firestore=ee,this._userDataWriter=te,this._key=ne,this._document=re,this._converter=se}get id(){return this._key.path.lastSegment()}get ref(){return new X(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const ee=new oi(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(ee)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(ee){if(this._document){const te=this._document.data.field(ta("DocumentSnapshot.get",ee));if(null!==te)return this._userDataWriter.convertValue(te)}}},oi=class QueryDocumentSnapshot extends ai{data(){return super.data()}};function __PRIVATE_validateHasExplicitOrderByForLimitToLast(ee){if("L"===ee.limitType&&0===ee.explicitOrderBy.length)throw new s(gn.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class AppliableConstraint{}class QueryConstraint extends AppliableConstraint{}function query(ee,te,...ne){let re=[];te instanceof AppliableConstraint&&re.push(te),re=re.concat(ne),function __PRIVATE_validateQueryConstraintArray(ee){const te=ee.filter((ee=>ee instanceof QueryCompositeFilterConstraint)).length,ne=ee.filter((ee=>ee instanceof QueryFieldFilterConstraint)).length;if(te>1||te>0&&ne>0)throw new s(gn.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(re);for(const te of re)ee=te._apply(ee);return ee}class QueryFieldFilterConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this._field=ee,this._op=te,this._value=ne,this.type="where"}static _create(ee,te,ne){return new QueryFieldFilterConstraint(ee,te,ne)}_apply(ee){const te=this._parse(ee);return __PRIVATE_validateNewFieldFilter(ee._query,te),new Query(ee.firestore,ee.converter,__PRIVATE_queryWithAddedFilter(ee._query,te))}_parse(ee){const te=la(ee.firestore),ne=function __PRIVATE_newQueryFilter(ee,te,ne,re,se,ie,ae){let oe;if(se.isKeyField()){if("array-contains"===ie||"array-contains-any"===ie)throw new s(gn.INVALID_ARGUMENT,`Invalid Query. You can't perform '${ie}' queries on documentId().`);if("in"===ie||"not-in"===ie){__PRIVATE_validateDisjunctiveFilterElements(ae,ie);const te=[];for(const ne of ae)te.push(__PRIVATE_parseDocumentIdValue(re,ee,ne));oe={arrayValue:{values:te}}}else oe=__PRIVATE_parseDocumentIdValue(re,ee,ae)}else"in"!==ie&&"not-in"!==ie&&"array-contains-any"!==ie||__PRIVATE_validateDisjunctiveFilterElements(ae,ie),oe=__PRIVATE_parseQueryValue(ne,te,ae,"in"===ie||"not-in"===ie);return FieldFilter.create(se,ie,oe)}(ee._query,"where",te,ee.firestore._databaseId,this._field,this._op,this._value);return ne}}function where(ee,te,ne){const re=te,se=ta("where",ee);return QueryFieldFilterConstraint._create(se,re,ne)}class QueryCompositeFilterConstraint extends AppliableConstraint{constructor(ee,te){super(),this.type=ee,this._queryConstraints=te}static _create(ee,te){return new QueryCompositeFilterConstraint(ee,te)}_parse(ee){const te=this._queryConstraints.map((te=>te._parse(ee))).filter((ee=>ee.getFilters().length>0));return 1===te.length?te[0]:CompositeFilter.create(te,this._getOperator())}_apply(ee){const te=this._parse(ee);return 0===te.getFilters().length?ee:(function __PRIVATE_validateNewFilter(ee,te){let ne=ee;const re=te.getFlattenedFilters();for(const ee of re)__PRIVATE_validateNewFieldFilter(ne,ee),ne=__PRIVATE_queryWithAddedFilter(ne,ee)}(ee._query,te),new Query(ee.firestore,ee.converter,__PRIVATE_queryWithAddedFilter(ee._query,te)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function or(...ee){return ee.forEach((ee=>__PRIVATE_validateQueryFilterConstraint("or",ee))),QueryCompositeFilterConstraint._create("or",ee)}function and(...ee){return ee.forEach((ee=>__PRIVATE_validateQueryFilterConstraint("and",ee))),QueryCompositeFilterConstraint._create("and",ee)}class QueryOrderByConstraint extends QueryConstraint{constructor(ee,te){super(),this._field=ee,this._direction=te,this.type="orderBy"}static _create(ee,te){return new QueryOrderByConstraint(ee,te)}_apply(ee){const te=function __PRIVATE_newQueryOrderBy(ee,te,ne){if(null!==ee.startAt)throw new s(gn.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==ee.endAt)throw new s(gn.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new OrderBy(te,ne)}(ee._query,this._field,this._direction);return new Query(ee.firestore,ee.converter,function __PRIVATE_queryWithAddedOrderBy(ee,te){const ne=ee.explicitOrderBy.concat([te]);return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ne,ee.filters.slice(),ee.limit,ee.limitType,ee.startAt,ee.endAt)}(ee._query,te))}}function orderBy(ee,te="asc"){const ne=te,re=ta("orderBy",ee);return QueryOrderByConstraint._create(re,ne)}class QueryLimitConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this.type=ee,this._limit=te,this._limitType=ne}static _create(ee,te,ne){return new QueryLimitConstraint(ee,te,ne)}_apply(ee){return new Query(ee.firestore,ee.converter,__PRIVATE_queryWithLimit(ee._query,this._limit,this._limitType))}}function limit(ee){return __PRIVATE_validatePositiveNumber("limit",ee),QueryLimitConstraint._create("limit",ee,"F")}function limitToLast(ee){return __PRIVATE_validatePositiveNumber("limitToLast",ee),QueryLimitConstraint._create("limitToLast",ee,"L")}class QueryStartAtConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this.type=ee,this._docOrFields=te,this._inclusive=ne}static _create(ee,te,ne){return new QueryStartAtConstraint(ee,te,ne)}_apply(ee){const te=__PRIVATE_newQueryBoundFromDocOrFields(ee,this.type,this._docOrFields,this._inclusive);return new Query(ee.firestore,ee.converter,function __PRIVATE_queryWithStartAt(ee,te){return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ee.filters.slice(),ee.limit,ee.limitType,te,ee.endAt)}(ee._query,te))}}function startAt(...ee){return QueryStartAtConstraint._create("startAt",ee,!0)}function startAfter(...ee){return QueryStartAtConstraint._create("startAfter",ee,!1)}class QueryEndAtConstraint extends QueryConstraint{constructor(ee,te,ne){super(),this.type=ee,this._docOrFields=te,this._inclusive=ne}static _create(ee,te,ne){return new QueryEndAtConstraint(ee,te,ne)}_apply(ee){const te=__PRIVATE_newQueryBoundFromDocOrFields(ee,this.type,this._docOrFields,this._inclusive);return new Query(ee.firestore,ee.converter,function __PRIVATE_queryWithEndAt(ee,te){return new __PRIVATE_QueryImpl(ee.path,ee.collectionGroup,ee.explicitOrderBy.slice(),ee.filters.slice(),ee.limit,ee.limitType,ee.startAt,te)}(ee._query,te))}}function endBefore(...ee){return QueryEndAtConstraint._create("endBefore",ee,!1)}function endAt(...ee){return QueryEndAtConstraint._create("endAt",ee,!0)}function __PRIVATE_newQueryBoundFromDocOrFields(ee,te,ne,re){if(ne[0]=getModularInstance(ne[0]),ne[0]instanceof ai)return function __PRIVATE_newQueryBoundFromDocument(ee,te,ne,re,se){if(!re)throw new s(gn.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${ne}().`);const ie=[];for(const ne of __PRIVATE_queryNormalizedOrderBy(ee))if(ne.field.isKeyField())ie.push(__PRIVATE_refValue(te,re.key));else{const ee=re.data.field(ne.field);if(__PRIVATE_isServerTimestamp(ee))throw new s(gn.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+ne.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===ee){const ee=ne.field.canonicalString();throw new s(gn.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${ee}' (used as the orderBy) does not exist.`)}ie.push(ee)}return new Bound(ie,se)}(ee._query,ee.firestore._databaseId,te,ne[0]._document,re);{const se=la(ee.firestore);return function __PRIVATE_newQueryBoundFromFields(ee,te,ne,re,se,ie){const ae=ee.explicitOrderBy;if(se.length>ae.length)throw new s(gn.INVALID_ARGUMENT,`Too many arguments provided to ${re}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const oe=[];for(let ie=0;ie<se.length;ie++){const ue=se[ie];if(ae[ie].field.isKeyField()){if("string"!=typeof ue)throw new s(gn.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${re}(), but got a ${typeof ue}`);if(!__PRIVATE_isCollectionGroupQuery(ee)&&-1!==ue.indexOf("/"))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${re}() must be a plain document ID, but '${ue}' contains a slash.`);const ne=ee.path.child(ResourcePath.fromString(ue));if(!DocumentKey.isDocumentKey(ne))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${re}() must result in a valid document path, but '${ne}' is not because it contains an odd number of segments.`);const se=new DocumentKey(ne);oe.push(__PRIVATE_refValue(te,se))}else{const ee=__PRIVATE_parseQueryValue(ne,re,ue);oe.push(ee)}}return new Bound(oe,ie)}(ee._query,ee.firestore._databaseId,se,te,ne,re)}}function __PRIVATE_parseDocumentIdValue(ee,te,ne){if("string"==typeof(ne=getModularInstance(ne))){if(""===ne)throw new s(gn.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!__PRIVATE_isCollectionGroupQuery(te)&&-1!==ne.indexOf("/"))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${ne}' contains a '/' character.`);const re=te.path.child(ResourcePath.fromString(ne));if(!DocumentKey.isDocumentKey(re))throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${re}' is not because it has an odd number of segments (${re.length}).`);return __PRIVATE_refValue(ee,new DocumentKey(re))}if(ne instanceof X)return __PRIVATE_refValue(ee,ne._key);throw new s(gn.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${__PRIVATE_valueDescription(ne)}.`)}function __PRIVATE_validateDisjunctiveFilterElements(ee,te){if(!Array.isArray(ee)||0===ee.length)throw new s(gn.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${te.toString()}' filters.`)}function __PRIVATE_validateNewFieldFilter(ee,te){const ne=function __PRIVATE_findOpInsideFilters(ee,te){for(const ne of ee)for(const ee of ne.getFlattenedFilters())if(te.indexOf(ee.op)>=0)return ee.op;return null}(ee.filters,function __PRIVATE_conflictingOps(ee){switch(ee){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[]}}(te.op));if(null!==ne)throw ne===te.op?new s(gn.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${te.op.toString()}' filter.`):new s(gn.INVALID_ARGUMENT,`Invalid query. You cannot use '${te.op.toString()}' filters with '${ne.toString()}' filters.`)}function __PRIVATE_validateQueryFilterConstraint(ee,te){if(!(te instanceof QueryFieldFilterConstraint||te instanceof QueryCompositeFilterConstraint))throw new s(gn.INVALID_ARGUMENT,`Function ${ee}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}function __PRIVATE_applyFirestoreDataConverter(ee,te,ne){let re;return re=ee?ne&&(ne.merge||ne.mergeFields)?ee.toFirestore(te,ne):ee.toFirestore(te):te,re}class __PRIVATE_LiteUserDataWriter extends AbstractUserDataWriter{constructor(ee){super(),this.firestore=ee}convertBytes(ee){return new Bytes(ee)}convertReference(ee){const te=this.convertDocumentKey(ee,this.firestore._databaseId);return new X(this.firestore,null,te)}}function sum(ee){return new AggregateField("sum",ta("sum",ee))}function average(ee){return new AggregateField("avg",ta("average",ee))}function count(){return new AggregateField("count")}function aggregateFieldEqual(ee,te){return ee instanceof AggregateField&&te instanceof AggregateField&&ee.aggregateType===te.aggregateType&&ee._internalFieldPath?.canonicalString()===te._internalFieldPath?.canonicalString()}function aggregateQuerySnapshotEqual(ee,te){return queryEqual(ee.query,te.query)&&deepEqual(ee.data(),te.data())}function getCountFromServer(ee){return getAggregateFromServer(ee,{count:count()})}function getAggregateFromServer(ee,te){const ne=ra(ee.firestore,da),re=oa(ne),se=__PRIVATE_mapToArray(te,((ee,te)=>new __PRIVATE_AggregateImpl(te,ee.aggregateType,ee._internalFieldPath)));return function __PRIVATE_firestoreClientRunAggregateQuery(ee,te,ne){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>{try{const se=await __PRIVATE_getDatastore(ee);re.resolve(async function __PRIVATE_invokeRunAggregationQueryRpc(ee,te,ne){const re=__PRIVATE_debugCast(ee),{request:se,ve:ie,parent:ae}=__PRIVATE_toRunAggregationQueryRequest(re.serializer,__PRIVATE_queryToAggregateTarget(te),ne);re.connection.Ye||delete se.parent;const oe=(await re.st("RunAggregationQuery",re.serializer.databaseId,ae,se,1)).filter((ee=>!!ee.result));__PRIVATE_hardAssert(1===oe.length,64727);const ue=oe[0].result?.aggregateFields;return Object.keys(ue).reduce(((ee,te)=>(ee[ie[te]]=ue[te],ee)),{})}(se,te,ne))}catch(ee){re.reject(ee)}})),re.promise}(re,ee._query,se).then((te=>function __PRIVATE_convertToAggregateQuerySnapshot(ee,te,ne){const re=new ua(ee);return new AggregateQuerySnapshot(te,re,ne)}(ne,ee,te)))}class __PRIVATE_MemoryLocalCacheImpl{constructor(ee){this.kind="memory",this._onlineComponentProvider=OnlineComponentProvider.provider,this._offlineComponentProvider=ee?.garbageCollector?ee.garbageCollector._offlineComponentProvider:{build:()=>new __PRIVATE_LruGcMemoryOfflineComponentProvider(void 0)}}toJSON(){return{kind:this.kind}}}class __PRIVATE_PersistentLocalCacheImpl{constructor(ee){let te;this.kind="persistent",ee?.tabManager?(ee.tabManager._initialize(ee),te=ee.tabManager):(te=persistentSingleTabManager(void 0),te._initialize(ee)),this._onlineComponentProvider=te._onlineComponentProvider,this._offlineComponentProvider=te._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class __PRIVATE_MemoryEagerGarbageCollectorImpl{constructor(){this.kind="memoryEager",this._offlineComponentProvider=__PRIVATE_MemoryOfflineComponentProvider.provider}toJSON(){return{kind:this.kind}}}class __PRIVATE_MemoryLruGarbageCollectorImpl{constructor(ee){this.kind="memoryLru",this._offlineComponentProvider={build:()=>new __PRIVATE_LruGcMemoryOfflineComponentProvider(ee)}}toJSON(){return{kind:this.kind}}}function memoryEagerGarbageCollector(){return new __PRIVATE_MemoryEagerGarbageCollectorImpl}function memoryLruGarbageCollector(ee){return new __PRIVATE_MemoryLruGarbageCollectorImpl(ee?.cacheSizeBytes)}function memoryLocalCache(ee){return new __PRIVATE_MemoryLocalCacheImpl(ee)}function persistentLocalCache(ee){return new __PRIVATE_PersistentLocalCacheImpl(ee)}class __PRIVATE_SingleTabManagerImpl{constructor(ee){this.forceOwnership=ee,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(ee){this._onlineComponentProvider=OnlineComponentProvider.provider,this._offlineComponentProvider={build:te=>new __PRIVATE_IndexedDbOfflineComponentProvider(te,ee?.cacheSizeBytes,this.forceOwnership)}}}class __PRIVATE_MultiTabManagerImpl{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(ee){this._onlineComponentProvider=OnlineComponentProvider.provider,this._offlineComponentProvider={build:te=>new __PRIVATE_MultiTabOfflineComponentProvider(te,ee?.cacheSizeBytes)}}}function persistentSingleTabManager(ee){return new __PRIVATE_SingleTabManagerImpl(ee?.forceOwnership)}function persistentMultipleTabManager(){return new __PRIVATE_MultiTabManagerImpl}const ui="NOT SUPPORTED";class SnapshotMetadata{constructor(ee,te){this.hasPendingWrites=ee,this.fromCache=te}isEqual(ee){return this.hasPendingWrites===ee.hasPendingWrites&&this.fromCache===ee.fromCache}}class DocumentSnapshot extends ai{constructor(ee,te,ne,re,se,ie){super(ee,te,ne,re,ie),this._firestore=ee,this._firestoreImpl=ee,this.metadata=se}exists(){return super.exists()}data(ee={}){if(this._document){if(this._converter){const te=new QueryDocumentSnapshot(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(te,ee)}return this._userDataWriter.convertValue(this._document.data.value,ee.serverTimestamps)}}get(ee,te={}){if(this._document){const ne=this._document.data.field(ta("DocumentSnapshot.get",ee));if(null!==ne)return this._userDataWriter.convertValue(ne,te.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new s(gn.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");const ee=this._document,te={};return te.type=DocumentSnapshot._jsonSchemaVersion,te.bundle="",te.bundleSource="DocumentSnapshot",te.bundleName=this._key.toString(),ee&&ee.isValidDocument()&&ee.isFoundDocument()?(this._userDataWriter.convertObjectMap(ee.data.value.mapValue.fields,"previous"),te.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED"),te):te}}function documentSnapshotFromJSON(ee,te,ne){if(__PRIVATE_validateJSON(te,DocumentSnapshot._jsonSchema)){if(te.bundle===ui)throw new s(gn.INVALID_ARGUMENT,"The provided JSON object was created in a client environment, which is not supported.");const re=__PRIVATE_newSerializer(ee._databaseId),se=__PRIVATE_createBundleReaderSync(te.bundle,re),ie=se.va(),ae=new __PRIVATE_BundleLoader(se.getMetadata(),re);for(const ee of ie)ae.qu(ee);const oe=ae.documents;if(1!==oe.length)throw new s(gn.INVALID_ARGUMENT,`Expected bundle data to contain 1 document, but it contains ${oe.length} documents.`);const ue=fromDocument(re,oe[0].document),Be=new DocumentKey(ResourcePath.fromString(te.bundleName));return new DocumentSnapshot(ee,new __PRIVATE_LiteUserDataWriter(ee),Be,ue,new SnapshotMetadata(!1,!1),ne||null)}}DocumentSnapshot._jsonSchemaVersion="firestore/documentSnapshot/1.0",DocumentSnapshot._jsonSchema={type:property("string",DocumentSnapshot._jsonSchemaVersion),bundleSource:property("string","DocumentSnapshot"),bundleName:property("string"),bundle:property("string")};class QueryDocumentSnapshot extends DocumentSnapshot{data(ee={}){return super.data(ee)}}class QuerySnapshot{constructor(ee,te,ne,re){this._firestore=ee,this._userDataWriter=te,this._snapshot=re,this.metadata=new SnapshotMetadata(re.hasPendingWrites,re.fromCache),this.query=ne}get docs(){const ee=[];return this.forEach((te=>ee.push(te))),ee}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(ee,te){this._snapshot.docs.forEach((ne=>{ee.call(te,new QueryDocumentSnapshot(this._firestore,this._userDataWriter,ne.key,ne,new SnapshotMetadata(this._snapshot.mutatedKeys.has(ne.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(ee={}){const te=!!ee.includeMetadataChanges;if(te&&this._snapshot.excludesMetadataChanges)throw new s(gn.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===te||(this._cachedChanges=function __PRIVATE_changesFromSnapshot(ee,te){if(ee._snapshot.oldDocs.isEmpty()){let te=0;return ee._snapshot.docChanges.map((ne=>{__PRIVATE_isPipeline(ee._snapshot.query)?__PRIVATE_newPipelineComparator(ee._snapshot.query):__PRIVATE_newQueryComparator(ee.query._query);const re=new QueryDocumentSnapshot(ee._firestore,ee._userDataWriter,ne.doc.key,ne.doc,new SnapshotMetadata(ee._snapshot.mutatedKeys.has(ne.doc.key),ee._snapshot.fromCache),ee.query.converter);return ne.doc,{type:"added",doc:re,oldIndex:-1,newIndex:te++}}))}{let ne=ee._snapshot.oldDocs;return ee._snapshot.docChanges.filter((ee=>te||3!==ee.type)).map((te=>{const re=new QueryDocumentSnapshot(ee._firestore,ee._userDataWriter,te.doc.key,te.doc,new SnapshotMetadata(ee._snapshot.mutatedKeys.has(te.doc.key),ee._snapshot.fromCache),ee.query.converter);let se=-1,ie=-1;return 0!==te.type&&(se=ne.indexOf(te.doc.key),ne=ne.delete(te.doc.key)),1!==te.type&&(ne=ne.add(te.doc),ie=ne.indexOf(te.doc.key)),{type:__PRIVATE_resultChangeType(te.type),doc:re,oldIndex:se,newIndex:ie}}))}}(this,te),this._cachedChangesIncludeMetadataChanges=te),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new s(gn.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");const ee={};ee.type=QuerySnapshot._jsonSchemaVersion,ee.bundleSource="QuerySnapshot",ee.bundleName=__PRIVATE_AutoId.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;const te=[],ne=[],re=[];return this.docs.forEach((ee=>{null!==ee._document&&(te.push(ee._document),ne.push(this._userDataWriter.convertObjectMap(ee._document.data.value.mapValue.fields,"previous")),re.push(ee.ref.path))})),ee.bundle=(this._firestore,this.query._query,ee.bundleName,"NOT SUPPORTED"),ee}}function querySnapshotFromJSON(ee,te,ne){if(__PRIVATE_validateJSON(te,QuerySnapshot._jsonSchema)){if(te.bundle===ui)throw new s(gn.INVALID_ARGUMENT,"The provided JSON object was created in a client environment, which is not supported.");const re=__PRIVATE_newSerializer(ee._databaseId),se=__PRIVATE_createBundleReaderSync(te.bundle,re),ie=se.va(),ae=new __PRIVATE_BundleLoader(se.getMetadata(),re);for(const ee of ie)ae.qu(ee);if(1!==ae.queries.length)throw new s(gn.INVALID_ARGUMENT,`Snapshot data expected 1 query but found ${ae.queries.length} queries.`);const oe=__PRIVATE_fromBundledQuery(ae.queries[0].bundledQuery),ue=__PRIVATE_isPipeline(oe)?__PRIVATE_newPipelineComparator(oe):__PRIVATE_newQueryComparator(oe),Be=ae.documents;let le=new DocumentSet(ue);Be.map((ee=>{const te=fromDocument(re,ee.document);le=le.add(te)}));const ce=ViewSnapshot.fromInitialDocuments(oe,le,__PRIVATE_documentKeySet(),!1,!1),_e=new Query(ee,ne||null,oe);return new QuerySnapshot(ee,new __PRIVATE_LiteUserDataWriter(ee),_e,ce)}}function __PRIVATE_resultChangeType(ee){switch(ee){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return l(61501,{type:ee})}}function snapshotEqual(ee,te){return ee instanceof DocumentSnapshot&&te instanceof DocumentSnapshot?ee._firestore===te._firestore&&ee._key.isEqual(te._key)&&(null===ee._document?null===te._document:ee._document.isEqual(te._document))&&ee._converter===te._converter:ee instanceof QuerySnapshot&&te instanceof QuerySnapshot&&ee._firestore===te._firestore&&queryEqual(ee.query,te.query)&&ee.metadata.isEqual(te.metadata)&&ee._snapshot.isEqual(te._snapshot)}QuerySnapshot._jsonSchemaVersion="firestore/querySnapshot/1.0",QuerySnapshot._jsonSchema={type:property("string",QuerySnapshot._jsonSchemaVersion),bundleSource:property("string","QuerySnapshot"),bundleName:property("string"),bundle:property("string")};const Bi={maxAttempts:5};class WriteBatch{constructor(ee,te){this._firestore=ee,this._commitHandler=te,this._mutations=[],this._committed=!1,this._dataReader=la(ee)}set(ee,te,ne){this._verifyNotCommitted();const re=__PRIVATE_validateReference(ee,this._firestore),se=__PRIVATE_applyFirestoreDataConverter(re.converter,te,ne),ie=__PRIVATE_parseSetData(this._dataReader,"WriteBatch.set",re._key,se,null!==re.converter,ne);return this._mutations.push(ie.toMutation(re._key,Precondition.none())),this}update(ee,te,ne,...re){this._verifyNotCommitted();const se=__PRIVATE_validateReference(ee,this._firestore);let ie;return ie="string"==typeof(te=getModularInstance(te))||te instanceof FieldPath?__PRIVATE_parseUpdateVarargs(this._dataReader,"WriteBatch.update",se._key,te,ne,re):__PRIVATE_parseUpdateData(this._dataReader,"WriteBatch.update",se._key,te),this._mutations.push(ie.toMutation(se._key,Precondition.exists(!0))),this}delete(ee){this._verifyNotCommitted();const te=__PRIVATE_validateReference(ee,this._firestore);return this._mutations=this._mutations.concat(new __PRIVATE_DeleteMutation(te._key,Precondition.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new s(gn.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function __PRIVATE_validateReference(ee,te){if((ee=getModularInstance(ee)).firestore!==te)throw new s(gn.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return ee}let li=class Transaction{constructor(ee,te){this._firestore=ee,this._transaction=te,this._dataReader=la(ee)}get(ee){const te=__PRIVATE_validateReference(ee,this._firestore),ne=new __PRIVATE_LiteUserDataWriter(this._firestore);return this._transaction.lookup([te._key]).then((ee=>{if(!ee||1!==ee.length)return l(24041);const re=ee[0];if(re.isFoundDocument())return new ai(this._firestore,ne,re.key,re,te.converter);if(re.isNoDocument())return new ai(this._firestore,ne,te._key,null,te.converter);throw l(18433,{doc:re})}))}set(ee,te,ne){const re=__PRIVATE_validateReference(ee,this._firestore),se=__PRIVATE_applyFirestoreDataConverter(re.converter,te,ne),ie=__PRIVATE_parseSetData(this._dataReader,"Transaction.set",re._key,se,null!==re.converter,ne);return this._transaction.set(re._key,ie),this}update(ee,te,ne,...re){const se=__PRIVATE_validateReference(ee,this._firestore);let ie;return ie="string"==typeof(te=getModularInstance(te))||te instanceof FieldPath?__PRIVATE_parseUpdateVarargs(this._dataReader,"Transaction.update",se._key,te,ne,re):__PRIVATE_parseUpdateData(this._dataReader,"Transaction.update",se._key,te),this._transaction.update(se._key,ie),this}delete(ee){const te=__PRIVATE_validateReference(ee,this._firestore);return this._transaction.delete(te._key),this}};class Transaction extends li{constructor(ee,te){super(ee,te),this._firestore=ee}get(ee){const te=__PRIVATE_validateReference(ee,this._firestore),ne=new ua(this._firestore);return super.get(ee).then((ee=>new DocumentSnapshot(this._firestore,ne,te._key,ee._document,new SnapshotMetadata(!1,!1),te.converter)))}}function runTransaction(ee,te,ne){ee=ra(ee,da);const re={...Bi,...ne};!function __PRIVATE_validateTransactionOptions(ee){if(ee.maxAttempts<1)throw new s(gn.INVALID_ARGUMENT,"Max attempts must be at least 1")}(re);return function __PRIVATE_firestoreClientTransaction(ee,te,ne){const re=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>{const se=await __PRIVATE_getDatastore(ee);new __PRIVATE_TransactionRunner(ee.asyncQueue,se,ne,te,re).Nc()})),re.promise}(oa(ee),(ne=>te(new Transaction(ee,ne))),re)}function getDoc(ee){ee=ra(ee,X);const te=ra(ee.firestore,da);return __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(oa(te),ee._key).then((ne=>__PRIVATE_convertToDocSnapshot(te,ee,ne)))}function getDocFromCache(ee){ee=ra(ee,X);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return function __PRIVATE_firestoreClientGetDocumentFromLocalCache(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_readDocumentFromCache(ee,te,ne){try{const re=await function __PRIVATE_localStoreReadDocument(ee,te){const ne=__PRIVATE_debugCast(ee);return ne.persistence.runTransaction("read document","readonly",(ee=>ne.localDocuments.getDocument(ee,te)))}(ee,te);re.isFoundDocument()?ne.resolve(re):re.isNoDocument()?ne.resolve(null):ne.reject(new s(gn.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(ee){const re=__PRIVATE_wrapInUserErrorIfRecoverable(ee,`Failed to get document '${te} from cache`);ne.reject(re)}}(await __PRIVATE_getLocalStore(ee),te,ne))),ne.promise}(ne,ee._key).then((ne=>new DocumentSnapshot(te,re,ee._key,ne,new SnapshotMetadata(null!==ne&&ne.hasLocalMutations,!0),ee.converter)))}function getDocFromServer(ee){ee=ra(ee,X);const te=ra(ee.firestore,da);return __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(oa(te),ee._key,{source:"server"}).then((ne=>__PRIVATE_convertToDocSnapshot(te,ee,ne)))}function getDocs(ee){ee=ra(ee,Query);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return __PRIVATE_validateHasExplicitOrderByForLimitToLast(ee._query),__PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(ne,ee._query).then((ne=>new QuerySnapshot(te,re,ee,ne)))}function getDocsFromCache(ee){ee=ra(ee,Query);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return function __PRIVATE_firestoreClientGetDocumentsFromLocalCache(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>async function __PRIVATE_executeQueryFromCache(ee,te,ne){try{const re=await __PRIVATE_localStoreExecuteQuery(ee,te,!0),se=new __PRIVATE_View(te,re.Wo),ie=se.Zu(re.documents),ae=se.applyChanges(ie,!1);ne.resolve(ae.snapshot)}catch(ee){const re=__PRIVATE_wrapInUserErrorIfRecoverable(ee,`Failed to execute query '${te} against cache`);ne.reject(re)}}(await __PRIVATE_getLocalStore(ee),te,ne))),ne.promise}(ne,ee._query).then((ne=>new QuerySnapshot(te,re,ee,ne)))}function getDocsFromServer(ee){ee=ra(ee,Query);const te=ra(ee.firestore,da),ne=oa(te),re=new ua(te);return __PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(ne,ee._query,{source:"server"}).then((ne=>new QuerySnapshot(te,re,ee,ne)))}function setDoc(ee,te,ne){ee=ra(ee,X);const re=ra(ee.firestore,da),se=__PRIVATE_applyFirestoreDataConverter(ee.converter,te,ne);return executeWrite(re,[__PRIVATE_parseSetData(la(re),"setDoc",ee._key,se,null!==ee.converter,ne).toMutation(ee._key,Precondition.none())])}function updateDoc(ee,te,ne,...re){ee=ra(ee,X);const se=ra(ee.firestore,da),ie=la(se);let ae;return ae="string"==typeof(te=getModularInstance(te))||te instanceof FieldPath?__PRIVATE_parseUpdateVarargs(ie,"updateDoc",ee._key,te,ne,re):__PRIVATE_parseUpdateData(ie,"updateDoc",ee._key,te),executeWrite(se,[ae.toMutation(ee._key,Precondition.exists(!0))])}function deleteDoc(ee){return executeWrite(ra(ee.firestore,da),[new __PRIVATE_DeleteMutation(ee._key,Precondition.none())])}function addDoc(ee,te){const ne=ra(ee.firestore,da),re=doc(ee),se=__PRIVATE_applyFirestoreDataConverter(ee.converter,te);return executeWrite(ne,[__PRIVATE_parseSetData(la(ee.firestore),"addDoc",re._key,se,null!==ee.converter,{}).toMutation(re._key,Precondition.exists(!1))]).then((()=>re))}function onSnapshot(ee,...te){ee=getModularInstance(ee);let ne={includeMetadataChanges:!1,source:"default"},re=0;"object"!=typeof te[re]||__PRIVATE_isPartialObserver(te[re])||(ne=te[re++]);const se={includeMetadataChanges:ne.includeMetadataChanges,source:ne.source};if(__PRIVATE_isPartialObserver(te[re])){const ee=te[re];te[re]=ee.next?.bind(ee),te[re+1]=ee.error?.bind(ee),te[re+2]=ee.complete?.bind(ee)}let ie,ae,oe;if(ee instanceof X)ae=ra(ee.firestore,da),oe=__PRIVATE_newQueryForPath(ee._key.path),ie={next:ne=>{te[re]&&te[re](__PRIVATE_convertToDocSnapshot(ae,ee,ne))},error:te[re+1],complete:te[re+2]};else{const ne=ra(ee,Query);ae=ra(ne.firestore,da),oe=ne._query;const se=new ua(ae);ie={next:ee=>{te[re]&&te[re](new QuerySnapshot(ae,se,ne,ee))},error:te[re+1],complete:te[re+2]},__PRIVATE_validateHasExplicitOrderByForLimitToLast(ee._query)}return function __PRIVATE_firestoreClientListen(ee,te,ne,re){const se=new __PRIVATE_AsyncObserver(re),ie=new __PRIVATE_QueryListener(te,se,ne);return ee.asyncQueue.enqueueAndForget((async()=>__PRIVATE_eventManagerListen(await __PRIVATE_getEventManager(ee),ie))),()=>{se.Aa(),ee.asyncQueue.enqueueAndForget((async()=>__PRIVATE_eventManagerUnlisten(await __PRIVATE_getEventManager(ee),ie)))}}(oa(ae),oe,se,ie)}function onSnapshotResume(ee,te,...ne){const re=getModularInstance(ee),se=function __PRIVATE_normalizeSnapshotJsonFields(ee){const te={bundle:"",bundleName:"",bundleSource:""},ne=["bundle","bundleName","bundleSource"];for(const re of ne){if(!(re in ee)){te.error=`snapshotJson missing required field: ${re}`;break}const ne=ee[re];if("string"!=typeof ne){te.error=`snapshotJson field '${re}' must be a string.`;break}if(0===ne.length){te.error=`snapshotJson field '${re}' cannot be an empty string.`;break}"bundle"===re?te.bundle=ne:"bundleName"===re?te.bundleName=ne:"bundleSource"===re&&(te.bundleSource=ne)}return te}(te);if(se.error)throw new s(gn.INVALID_ARGUMENT,se.error);let ie,ae=0;if("object"!=typeof ne[ae]||__PRIVATE_isPartialObserver(ne[ae])||(ie=ne[ae++]),"QuerySnapshot"===se.bundleSource){let ee=null;if("object"==typeof ne[ae]&&__PRIVATE_isPartialObserver(ne[ae])){const te=ne[ae++];ee={next:te.next,error:te.error,complete:te.complete}}else ee={next:ne[ae++],error:ne[ae++],complete:ne[ae++]};return function __PRIVATE_onSnapshotQuerySnapshotBundle(ee,te,ne,re,se){let ie,ae=!1;return loadBundle(ee,te.bundle).then((()=>namedQuery(ee,te.bundleName))).then((ee=>{ee&&!ae&&(se&&ee.withConverter(se),ie=onSnapshot(ee,ne||{},re))})).catch((ee=>(re.error&&re.error(ee),()=>{}))),()=>{ae||(ae=!0,ie&&ie())}}(re,se,ie,ee,ne[ae])}if("DocumentSnapshot"===se.bundleSource){let ee=null;if("object"==typeof ne[ae]&&__PRIVATE_isPartialObserver(ne[ae])){const te=ne[ae++];ee={next:te.next,error:te.error,complete:te.complete}}else ee={next:ne[ae++],error:ne[ae++],complete:ne[ae++]};return function __PRIVATE_onSnapshotDocumentSnapshotBundle(ee,te,ne,re,se){let ie,ae=!1;return loadBundle(ee,te.bundle).then((()=>{if(!ae){const ae=new X(ee,se||null,DocumentKey.fromPath(te.bundleName));ie=onSnapshot(ae,ne||{},re)}})).catch((ee=>(re.error&&re.error(ee),()=>{}))),()=>{ae||(ae=!0,ie&&ie())}}(re,se,ie,ee,ne[ae])}throw new s(gn.INVALID_ARGUMENT,`unsupported bundle source: ${se.bundleSource}`)}function onSnapshotsInSync(ee,te){return function __PRIVATE_firestoreClientAddSnapshotsInSyncListener(ee,te){const ne=new __PRIVATE_AsyncObserver(te);return ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_addSnapshotsInSyncListener(ee,te){__PRIVATE_debugCast(ee).Su.add(te),te.next()}(await __PRIVATE_getEventManager(ee),ne))),()=>{ne.Aa(),ee.asyncQueue.enqueueAndForget((async()=>function __PRIVATE_removeSnapshotsInSyncListener(ee,te){__PRIVATE_debugCast(ee).Su.delete(te)}(await __PRIVATE_getEventManager(ee),ne)))}}(oa(ee=ra(ee,da)),__PRIVATE_isPartialObserver(te)?te:{next:te})}function executeWrite(ee,te){return __PRIVATE_firestoreClientWrite(oa(ee),te)}function __PRIVATE_convertToDocSnapshot(ee,te,ne){const re=ne.docs.get(te._key),se=new ua(ee);return new DocumentSnapshot(ee,se,te._key,re,new SnapshotMetadata(ne.hasPendingWrites,ne.fromCache),te.converter)}function writeBatch(ee){return oa(ee=ra(ee,da)),new WriteBatch(ee,(te=>executeWrite(ee,te)))}function setIndexConfiguration(ee,te){const ne=oa(ee=ra(ee,da));if(!ne._uninitializedComponentsProvider||"memory"===ne._uninitializedComponentsProvider._offline.kind)return __PRIVATE_logWarn("Cannot enable indexes when persistence is disabled"),Promise.resolve();const re=function __PRIVATE_parseIndexes(ee){const te="string"==typeof ee?function __PRIVATE_tryParseJson(ee){try{return JSON.parse(ee)}catch(ee){throw new s(gn.INVALID_ARGUMENT,"Failed to parse JSON: "+ee?.message)}}(ee):ee,ne=[];if(Array.isArray(te.indexes))for(const ee of te.indexes){const te=__PRIVATE_tryGetString(ee,"collectionGroup"),re=[];if(Array.isArray(ee.fields))for(const te of ee.fields){const ee=__PRIVATE_fieldPathFromDotSeparatedString("setIndexConfiguration",__PRIVATE_tryGetString(te,"fieldPath"));"CONTAINS"===te.arrayConfig?re.push(new IndexSegment(ee,2)):"ASCENDING"===te.order?re.push(new IndexSegment(ee,0)):"DESCENDING"===te.order&&re.push(new IndexSegment(ee,1))}ne.push(new FieldIndex(FieldIndex.UNKNOWN_ID,te,re,IndexState.empty()))}return ne}(te);return function __PRIVATE_firestoreClientSetIndexConfiguration(ee,te){return ee.asyncQueue.enqueue((async()=>async function __PRIVATE_localStoreConfigureFieldIndexes(ee,te){const ne=__PRIVATE_debugCast(ee),re=ne.indexManager,se=[];return ne.persistence.runTransaction("Configure indexes","readwrite",(ee=>re.getFieldIndexes(ee).next((ne=>function __PRIVATE_diffArrays(ee,te,ne,re,se){ee=[...ee],te=[...te],ee.sort(ne),te.sort(ne);const ie=ee.length,ae=te.length;let oe=0,ue=0;for(;oe<ae&&ue<ie;){const ie=ne(ee[ue],te[oe]);ie<0?se(ee[ue++]):ie>0?re(te[oe++]):(oe++,ue++)}for(;oe<ae;)re(te[oe++]);for(;ue<ie;)se(ee[ue++])}(ne,te,__PRIVATE_fieldIndexSemanticComparator,(te=>{se.push(re.addFieldIndex(ee,te))}),(te=>{se.push(re.deleteFieldIndex(ee,te))})))).next((()=>PersistencePromise.waitFor(se)))))}(await __PRIVATE_getLocalStore(ee),te)))}(ne,re)}function __PRIVATE_tryGetString(ee,te){if("string"!=typeof ee[te])throw new s(gn.INVALID_ARGUMENT,"Missing string value for: "+te);return ee[te]}class PersistentCacheIndexManager{constructor(ee){this._firestore=ee,this.type="PersistentCacheIndexManager"}}function getPersistentCacheIndexManager(ee){ee=ra(ee,da);const te=ci.get(ee);if(te)return te;const ne=oa(ee);if("persistent"!==ne._uninitializedComponentsProvider?._offline.kind)return null;const re=new PersistentCacheIndexManager(ee);return ci.set(ee,re),re}function enablePersistentCacheIndexAutoCreation(ee){__PRIVATE_setPersistentCacheIndexAutoCreationEnabled(ee,!0)}function disablePersistentCacheIndexAutoCreation(ee){__PRIVATE_setPersistentCacheIndexAutoCreationEnabled(ee,!1)}function deleteAllPersistentCacheIndexes(ee){(function __PRIVATE_firestoreClientDeleteAllFieldIndexes(ee){return ee.asyncQueue.enqueue((async()=>function __PRIVATE_localStoreDeleteAllFieldIndexes(ee){const te=__PRIVATE_debugCast(ee),ne=te.indexManager;return te.persistence.runTransaction("Delete All Indexes","readwrite",(ee=>ne.deleteAllFieldIndexes(ee)))}(await __PRIVATE_getLocalStore(ee))))})(oa(ee._firestore)).then((ee=>__PRIVATE_logDebug("deleting all persistent cache indexes succeeded"))).catch((ee=>__PRIVATE_logWarn("deleting all persistent cache indexes failed",ee)))}function __PRIVATE_setPersistentCacheIndexAutoCreationEnabled(ee,te){(function __PRIVATE_firestoreClientSetPersistentCacheIndexAutoCreationEnabled(ee,te){return ee.asyncQueue.enqueue((async()=>function __PRIVATE_localStoreSetIndexAutoCreationEnabled(ee,te){__PRIVATE_debugCast(ee).Mo.po=te}(await __PRIVATE_getLocalStore(ee),te)))})(oa(ee._firestore),te).then((ee=>__PRIVATE_logDebug(`setting persistent cache index auto creation isEnabled=${te} succeeded`))).catch((ee=>__PRIVATE_logWarn(`setting persistent cache index auto creation isEnabled=${te} failed`,ee)))}const ci=new WeakMap;class TestingHooks{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(ee){return __PRIVATE_TestingHooksSpiImpl.instance.onExistenceFilterMismatch(ee)}}class __PRIVATE_TestingHooksSpiImpl{constructor(){this.i=new Map}static get instance(){return _i||(_i=new __PRIVATE_TestingHooksSpiImpl,function __PRIVATE_setTestingHooksSpi(ee){if($n)throw new Error("a TestingHooksSpi instance is already set");$n=ee}(_i)),_i}Ie(ee){this.i.forEach((te=>te(ee)))}onExistenceFilterMismatch(ee){const te=Symbol(),ne=this.i;return ne.set(te,ee),()=>ne.delete(te)}}let _i=null;function __PRIVATE_selectablesToMap(ee){return new Map(Object.entries(__PRIVATE_selectablesToObject(ee)))}function __PRIVATE_selectablesToObject(ee){const te={};for(const ne of ee){let ee,re;if("string"==typeof ne?(ee=ne,re=e(ne)):ne instanceof o||ne instanceof c?(ee=ne.alias,re=ne.expr):l(21273,{selectable:ne}),void 0!==te[ee])throw new s("invalid-argument",`Duplicate alias or field '${ee}'`);te[ee]=re}return te}function __PRIVATE_fieldOrExpression(ee){return __PRIVATE_isString$1(ee)?e(ee):function __PRIVATE_valueToDefaultExpr(ee){let te;return u(ee)?i(ee):ee instanceof t?ee:(te=p(ee)?h(ee):ee instanceof Array?b(ee):function __PRIVATE_isPipeline$1(ee){return"object"==typeof ee&&null!==ee&&"function"==typeof ee.toArrayExpression}(ee)?function d(ee){return new __PRIVATE_PipelineValueExpression(ee)}(ee):m(ee,void 0),te)}(ee)}!function __PRIVATE_registerFirestore(ee,te=!0){(function __PRIVATE_setSDKVersion(ee){Cn=ee})(ie),re(new Component("firestore",((ee,{instanceIdentifier:ne,options:re})=>{const se=ee.getProvider("app").getImmediate(),ie=new da(new __PRIVATE_FirebaseAuthCredentialsProvider(ee.getProvider("auth-internal")),new __PRIVATE_FirebaseAppCheckTokenProvider(se,ee.getProvider("app-check-internal")),function __PRIVATE_databaseIdFromApp(ee,te){if(!Object.prototype.hasOwnProperty.apply(ee.options,["projectId"]))throw new s(gn.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new DatabaseId(ee.options.projectId,te)}(se,ne),se);return re={useFetchStreams:te,...re},ie._setSettings(re),ie}),"PUBLIC").setMultipleInstances(!0)),se(si,ii,ee),se(si,ii,"esm2020")}();let hi=class Pipeline{constructor(ee,te,ne,re){this._db=ee,this.userDataReader=te,this._userDataWriter=ne,this.stages=re}_readUserData(ee){this.stages.forEach((te=>{const ne=ee.contextWith({methodName:te._name});te._readUserData(ne)}))}addFields(ee,...te){let ne,re;f(ee)?(ne=[ee,...te],re={}):({fields:ne,...re}=ee);const se=__PRIVATE_selectablesToMap(ne),ie=new w(se,re);return this._addStage(ie)}removeFields(ee,...te){const ne=g(ee)||__PRIVATE_isString$1(ee)?{}:ee,re=(g(ee)||__PRIVATE_isString$1(ee)?[ee,...te]:ee.fields).map((ee=>__PRIVATE_isString$1(ee)?e(ee):ee)),se=new _(re,ne);return this._addStage(se)}define(ee,...te){const ne=T(ee)?{}:ee,re=__PRIVATE_selectablesToMap(T(ee)?[ee,...te]:ee.variables),se=new P(re,ne);return this._addStage(se)}toArrayExpression(){return new x("array",[__PRIVATE_fieldOrExpression(this)])}toScalarExpression(){return new x("scalar",[__PRIVATE_fieldOrExpression(this)])}select(ee,...te){const ne=f(ee)||__PRIVATE_isString$1(ee)?{}:ee,re=__PRIVATE_selectablesToMap(f(ee)||__PRIVATE_isString$1(ee)?[ee,...te]:ee.selections),se=new y(re,ne);return this._addStage(se)}where(ee){const te=E(ee)?{}:ee,ne=E(ee)?ee:ee.condition,re=new A(ne,te);return this._addStage(re)}offset(ee){let te,ne;__PRIVATE_isNumber$1(ee)?(te={},ne=ee):(te=ee,ne=ee.offset);const re=new I(ne,te);return this._addStage(re)}limit(ee){const te=__PRIVATE_isNumber$1(ee)?{}:ee,ne=__PRIVATE_isNumber$1(ee)?ee:ee.limit,re=new v(ne,te);return this._addStage(re)}distinct(ee,...te){const ne=__PRIVATE_isString$1(ee)||f(ee)?{}:ee,re=__PRIVATE_selectablesToMap(__PRIVATE_isString$1(ee)||f(ee)?[ee,...te]:ee.groups),se=new M(re,ne);return this._addStage(se)}aggregate(ee,...te){const ne=O(ee)?{}:ee,re=O(ee)?[ee,...te]:ee.accumulators,se=O(ee)?[]:ee.groups??[],ie=function __PRIVATE_aliasedAggregateToMap(ee){return ee.reduce(((ee,te)=>{if(void 0!==ee.get(te.alias))throw new s("invalid-argument",`Duplicate alias or field '${te.alias}'`);return ee.set(te.alias,te.aggregate),ee}),new Map)}(re),ae=__PRIVATE_selectablesToMap(se),oe=new V(ae,ie,ne);return this._addStage(oe)}findNearest(ee){const te=S(ee.field),ne=function __PRIVATE_vectorToExpr(ee){if(ee instanceof t)return ee;if(ee instanceof n)return i(ee);if(Array.isArray(ee))return i(r(ee));throw new Error("Unsupported value: "+typeof ee)}(ee.vectorValue),re={distanceField:ee.distanceField?S(ee.distanceField):void 0,limit:ee.limit,rawOptions:ee.rawOptions},se=new D(ne,te,ee.distanceMeasure,re);return this._addStage(se)}search(ee){const te=ee.addFields?__PRIVATE_selectablesToObject(ee.addFields):void 0,ne=j(ee.query)?ee.query:q(ee.query),re=F(ee.sort)?[ee.sort]:ee.sort,se={...ee,addFields:te,select:void 0,query:ne,sort:re},ie=new C(se);return this._addStage(ie)}sort(ee,...te){const ne=F(ee)?{}:ee,re=F(ee)?[ee,...te]:ee.orderings,se=new L(re,ne);return this._addStage(se)}replaceWith(ee){const te=__PRIVATE_isString$1(ee)||j(ee)?{}:ee,ne=__PRIVATE_fieldOrExpression(__PRIVATE_isString$1(ee)||j(ee)?ee:ee.map),re=new $(ne,te);return this._addStage(re)}sample(ee){const te=__PRIVATE_isNumber$1(ee)?{}:ee;let ne,re;__PRIVATE_isNumber$1(ee)?(ne=ee,re="documents"):__PRIVATE_isNumber$1(ee.documents)?(ne=ee.documents,re="documents"):(ne=ee.percentage,re="percent");const se=new N(ne,re,te);return this._addStage(se)}union(ee){let te,ne;!function __PRIVATE_isPipeline(ee){return ee instanceof hi}(ee)?({other:ne,...te}=ee):(te={},ne=ee);const re=new U(ne,te);return this._addStage(re)}unnest(ee,te){let ne,re,se;f(ee)?(ne={},re=ee,se=te):({selectable:re,indexField:se,...ne}=ee);const ie=re.alias,ae=re.expr;__PRIVATE_isString$1(se)&&(ne.indexField=G(se,"unnest"));const oe=new W(ie,ae,ne);return this._addStage(oe)}rawStage(ee,te,ne){const re=te.map((ee=>ee instanceof t||ee instanceof k?ee:p(ee)?function B(ee){const te=new Map;for(const ne in ee)if(Object.prototype.hasOwnProperty.call(ee,ne)){const re=ee[ne];te.set(ne,__PRIVATE_valueToDefaultExpr(re))}return new MapValue(te,void 0)}(ee):m(ee,"rawStage"))),se=new K(ee,re,ne??{});return this._addStage(se)}_toProto(ee){return{stages:this.stages.map((te=>te._toProto(ee)))}}_addStage(ee){const te=this.stages.map((ee=>ee));return te.push(ee),this.newPipeline(this._db,te)}newPipeline(ee,te){return new Pipeline(ee,this.userDataReader,this._userDataWriter,te)}};class PipelineSource{constructor(ee,te,ne){this.databaseId=ee,this.userDataReader=te,this._createPipeline=ne}collection(ee){const te=__PRIVATE_isString$1(ee)||z(ee)?{}:ee,ne=__PRIVATE_isString$1(ee)||z(ee)?ee:ee.collection;z(ne)&&this._validateReference(ne);const re=__PRIVATE_isString$1(ne)?ne:ne.path,se=new H(re,te),ie=this.userDataReader.createContext(3,"collection");return se._readUserData(ie),this._createPipeline([se])}collectionGroup(ee){let te,ne;__PRIVATE_isString$1(ee)?(te=ee,ne={}):({collectionId:te,...ne}=ee);const re=new J(te,ne),se=this.userDataReader.createContext(3,"collectionGroup");return re._readUserData(se),this._createPipeline([re])}database(ee){const te=new Q(ee=ee??{}),ne=this.userDataReader.createContext(3,"database");return te._readUserData(ne),this._createPipeline([te])}documents(ee){let te,ne;Array.isArray(ee)?(ne=ee,te={}):({docs:ne,...te}=ee),ne.filter((ee=>ee instanceof X)).forEach((ee=>this._validateReference(ee)));const re=ne.map((ee=>__PRIVATE_isString$1(ee)?ee:ee.path)),se=new Y(re,te),ie=this.userDataReader.createContext(3,"documents");return se._readUserData(ie),this._createPipeline([se])}createFrom(ee){return this._createPipeline(function Z(ee,te){let ne;ne=__PRIVATE_isCollectionGroupQuery(ee)?te.pipeline().collectionGroup(ee.collectionGroup):__PRIVATE_isDocumentQuery$1(ee)?te.pipeline().documents([doc(te,ee.path.canonicalString())]):te.pipeline().collection(ee.path.canonicalString());for(const te of ee.filters)ne=ne.where(__PRIVATE_toPipelineBooleanExpr(te));const re=__PRIVATE_queryNormalizedOrderBy(ee),se=re.map((ee=>e(ee.field.canonicalString()).exists()));ne=se.length>1?ne.where(and$1(se[0],se[1],...se.slice(2))):ne.where(se[0]);const ie=re.map((ee=>"asc"===ee.dir?e(ee.field.canonicalString()).ascending():e(ee.field.canonicalString()).descending()));if(ie.length>0)if("L"===ee.limitType){const te=function __PRIVATE_reverseOrderings(ee){return ee.map((ee=>new Ordering(ee.expr,"ascending"===ee.direction?"descending":"ascending",void 0)))}(ie);ne=ne.sort(te[0],...te.slice(1)),null!==ee.startAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.startAt,ie,"after"))),null!==ee.endAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.endAt,ie,"before"))),ne=ne.limit(ee.limit),ne=ne.sort(ie[0],...ie.slice(1))}else ne=ne.sort(ie[0],...ie.slice(1)),null!==ee.startAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.startAt,ie,"after"))),null!==ee.endAt&&(ne=ne.where(__PRIVATE_whereConditionsFromCursor(ee.endAt,ie,"before"))),null!==ee.limit&&(ne=ne.limit(ee.limit));return ne.stages}(ee._query,ee.firestore))}_validateReference(ee){const te=ee.firestore._databaseId;if(!te.isEqual(this.databaseId))throw new s(gn.INVALID_ARGUMENT,`Invalid ${ee instanceof ea?"CollectionReference":"DocumentReference"}. The project ID ("${te.projectId}") or the database ("${te.database}") does not match the project ID ("${this.databaseId.projectId}") and database ("${this.databaseId.database}") of the target database of this Pipeline.`)}}class PipelineSnapshot{constructor(ee,te,ne){this._pipeline=ee,this._executionTime=ne,this._results=te}get results(){return this._results}get executionTime(){if(void 0===this._executionTime)throw new Error("'executionTime' is expected to exist, but it is undefined");return this._executionTime}}class PipelineResult{constructor(ee,te,ne,re,se,ie,ae){this._ref=ne,this._userDataWriter=ee,this._createTime=re,this._updateTime=se,this._fields=te,this._metadata=ie,this._listenOptions=ae}static fromDocument(ee,te,ne,re,se){return new PipelineResult(ee,te.data,ne,te.createTime.toTimestamp(),te.version.toTimestamp(),re,se)}get ref(){return this._ref}get id(){return this._ref?.id}get createTime(){return this._createTime}get updateTime(){return this._updateTime}data(){return this._userDataWriter.convertValue(this._fields.value,this._listenOptions?.serverTimestampBehavior)}_fieldsProto(){return this._fields.clone().value.mapValue.fields}get(ee){if(void 0===this._fields)return;g(ee)&&(ee=ee.fieldName);const te=this._fields.field(ta("DocumentSnapshot.get",ee));return null!==te?this._userDataWriter.convertValue(te,this._listenOptions?.serverTimestampBehavior):void 0}}class Pipeline extends hi{newPipeline(ee,te){return new Pipeline(ee,this.userDataReader,this._userDataWriter,te)}}da.prototype.pipeline=function(){const ee=la(this);return new PipelineSource(this._databaseId,ee,(te=>new Pipeline(this,ee,new ua(this),te)))};var di=Object.freeze({__proto__:null,AggregateFunction:k,AliasedAggregate:AliasedAggregate,AliasedExpression:c,BooleanExpression:BooleanExpression,Expression:t,Field:o,FunctionExpression:x,Ordering:Ordering,Pipeline:Pipeline,PipelineResult:PipelineResult,PipelineSnapshot:PipelineSnapshot,PipelineSource:PipelineSource,_internalPipelineToExecutePipelineRequestProto:function _internalPipelineToExecutePipelineRequestProto(ee){if(!ee._db)throw new s(gn.FAILED_PRECONDITION,"This pipeline was created without a database and cannot be serialized for execution.");const te=ra(ee._db,da),ne=la(te).createContext(3,"_internalPipelineToExecutePipelineRequestProto");ee._readUserData(ne);const re=function __PRIVATE_getDatastore$1(ee){if(ee._terminated)throw new s(gn.FAILED_PRECONDITION,"The client has already been terminated.");if(!lr.has(ee)){__PRIVATE_logDebug(Br,"Initializing Datastore");const te=__PRIVATE_newConnection(__PRIVATE_makeDatabaseInfo(ee._databaseId,ee.app.options.appId||"",ee._persistenceKey,ee.app.options.apiKey,ee._freezeSettings())),ne=__PRIVATE_newSerializer(ee._databaseId),re=__PRIVATE_newDatastore(ee._authCredentials,ee._appCheckCredentials,te,ne);lr.set(ee,re)}return lr.get(ee)}(te),se=re.serializer;if(void 0===se)return null;const ie=new ma(ee,new pa);return{database:__PRIVATE_getEncodedDatabaseId(se),structuredPipeline:ie._toProto(se)}},abs:function abs(ee){return __PRIVATE_fieldOrExpression$1(ee).abs()},add:function add(ee,te){return __PRIVATE_fieldOrExpression$1(ee).add(__PRIVATE_valueToDefaultExpr(te))},and:and$1,array:b,arrayAgg:function arrayAgg(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayAgg()},arrayAggDistinct:function arrayAggDistinct(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayAggDistinct()},arrayConcat:function arrayConcat(ee,te,...ne){const re=ne.map((ee=>__PRIVATE_valueToDefaultExpr(ee)));return __PRIVATE_fieldOrExpression$1(ee).arrayConcat(__PRIVATE_fieldOrExpression$1(te),...re)},arrayContains:function arrayContains(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.arrayContains(re)},arrayContainsAll:function arrayContainsAll(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayContainsAll(te)},arrayContainsAny:function arrayContainsAny(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayContainsAny(te)},arrayFilter:function arrayFilter(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).arrayFilter(te,ne)},arrayFirst:function arrayFirst(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayFirst()},arrayFirstN:function arrayFirstN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayFirstN(__PRIVATE_valueToDefaultExpr(te))},arrayGet:function arrayGet(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayGet(__PRIVATE_valueToDefaultExpr(te))},arrayIndexOf:function arrayIndexOf(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayIndexOf(__PRIVATE_valueToDefaultExpr(te))},arrayIndexOfAll:function arrayIndexOfAll(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayIndexOfAll(__PRIVATE_valueToDefaultExpr(te))},arrayLast:function arrayLast(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayLast()},arrayLastIndexOf:function arrayLastIndexOf(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayLastIndexOf(__PRIVATE_valueToDefaultExpr(te))},arrayLastN:function arrayLastN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayLastN(__PRIVATE_valueToDefaultExpr(te))},arrayLength:function arrayLength(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayLength()},arrayMaximum:function arrayMaximum(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayMaximum()},arrayMaximumN:function arrayMaximumN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayMaximumN(__PRIVATE_valueToDefaultExpr(te))},arrayMinimum:function arrayMinimum(ee){return __PRIVATE_fieldOrExpression$1(ee).arrayMinimum()},arrayMinimumN:function arrayMinimumN(ee,te){return __PRIVATE_fieldOrExpression$1(ee).arrayMinimumN(__PRIVATE_valueToDefaultExpr(te))},arraySlice:function arraySlice(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).arraySlice(te,ne)},arraySum:function arraySum(ee){return __PRIVATE_fieldOrExpression$1(ee).arraySum()},arrayTransform:function arrayTransform(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).arrayTransform(te,ne)},arrayTransformWithIndex:function arrayTransformWithIndex(ee,te,ne,re){return __PRIVATE_fieldOrExpression$1(ee).arrayTransformWithIndex(te,ne,re)},ascending:ascending,average:function average$1(ee){return __PRIVATE_fieldOrExpression$1(ee).average()},byteLength:function byteLength(ee){return __PRIVATE_fieldOrExpression$1(ee).byteLength()},ceil:function ceil(ee){return __PRIVATE_fieldOrExpression$1(ee).ceil()},charLength:function charLength(ee){return __PRIVATE_fieldOrExpression$1(ee).charLength()},coalesce:function coalesce(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).coalesce(te,...ne)},collectionId:function collectionId(ee){return __PRIVATE_fieldOrExpression$1(ee).collectionId()},concat:function concat(ee,te,...ne){return new x("concat",[__PRIVATE_fieldOrExpression$1(ee),__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr)])},conditional:function conditional(ee,te,ne){return new x("conditional",[ee,te,ne],"conditional")},constant:i,cosineDistance:function cosineDistance(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_vectorToExpr(te);return ne.cosineDistance(re)},count:function count$1(ee){return __PRIVATE_fieldOrExpression$1(ee).count()},countAll:function countAll(){return k._create("count",[],"count")},countDistinct:function countDistinct(ee){return __PRIVATE_fieldOrExpression$1(ee).countDistinct()},countIf:function countIf(ee){return ee.countIf()},currentDocument:function currentDocument(){return new x("current_document",[])},currentTimestamp:function currentTimestamp(){return new x("current_timestamp",[],"currentTimestamp")},descending:descending,divide:function divide(ee,te){const ne="string"==typeof ee?e(ee):ee,re=__PRIVATE_valueToDefaultExpr(te);return ne.divide(re)},documentId:function documentId(ee){return __PRIVATE_valueToDefaultExpr(ee).documentId()},documentMatches:q,dotProduct:function dotProduct(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_vectorToExpr(te);return ne.dotProduct(re)},endsWith:function endsWith(ee,te){return __PRIVATE_fieldOrExpression$1(ee).endsWith(__PRIVATE_valueToDefaultExpr(te))},equal:function equal(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.equal(re)},equalAny:function equalAny(ee,te){return __PRIVATE_fieldOrExpression$1(ee).equalAny(te)},euclideanDistance:function euclideanDistance(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_vectorToExpr(te);return ne.euclideanDistance(re)},execute:function execute(ee){const te=ee instanceof hi?{pipeline:ee}:ee,{pipeline:ne,rawOptions:re,...se}=te;if(!ne._db)return Promise.reject(new s(gn.FAILED_PRECONDITION,"This pipeline was created without a database (e.g., as a subcollection pipeline) and cannot be executed directly. It can only be used as part of another pipeline."));const ie=ra(ne._db,da),ae=oa(ie),oe=la(ie).createContext(3,"execute");ne._readUserData(oe);const ue=new ua(ie),Be=new pa(se,re);return Be._readUserData(oe),function ha(ee,te){const ne=new __PRIVATE_Deferred;return ee.asyncQueue.enqueueAndForget((async()=>{try{const re=await __PRIVATE_getDatastore(ee);ne.resolve(async function __PRIVATE_invokeExecutePipeline(ee,te){const ne=__PRIVATE_debugCast(ee),re={database:__PRIVATE_getEncodedDatabaseId(ne.serializer),structuredPipeline:te._toProto(ne.serializer)},se=await ne.st("ExecutePipeline",ne.serializer.databaseId,ResourcePath.emptyPath(),re),ie=[];return se.forEach((ee=>{if(ee.results&&0!==ee.results.length)return ee.results.forEach((te=>ie.push(__PRIVATE_fromPipelineResponse(ne.serializer,ee,te))));ie.push(__PRIVATE_fromPipelineResponse(ne.serializer,ee))})),ie}(re,te))}catch(ee){ne.reject(ee)}})),ne.promise}(ae,new ma(ne,Be)).then((ee=>{const te=ee.length>0?ee[0].executionTime?.toTimestamp():void 0,re=ee.filter((ee=>!!ee.fields)).map((ee=>new PipelineResult(ue,ee.fields,ee.key?.path?new X(ie,null,ee.key):void 0,ee.createTime?.toTimestamp(),ee.updateTime?.toTimestamp())));return new PipelineSnapshot(ne,re,te)}))},exists:function exists(ee){return __PRIVATE_fieldOrExpression$1(ee).exists()},exp:function exp(ee){return __PRIVATE_fieldOrExpression$1(ee).exp()},field:e,first:function first(ee){return __PRIVATE_fieldOrExpression$1(ee).first()},floor:function floor(ee){return __PRIVATE_fieldOrExpression$1(ee).floor()},geoDistance:function geoDistance(ee,te){return S(ee).geoDistance(te)},greaterThan:greaterThan,greaterThanOrEqual:function greaterThanOrEqual(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.greaterThanOrEqual(re)},ifAbsent:function ifAbsent(ee,te){return __PRIVATE_fieldOrExpression$1(ee).ifAbsent(__PRIVATE_valueToDefaultExpr(te))},ifError:function ifError(ee,te){return ee instanceof BooleanExpression&&te instanceof BooleanExpression?ee.ifError(te).asBoolean():ee.ifError(__PRIVATE_valueToDefaultExpr(te))},ifNull:function ifNull(ee,te){return __PRIVATE_fieldOrExpression$1(ee).ifNull(te)},isAbsent:function isAbsent(ee){return __PRIVATE_fieldOrExpression$1(ee).isAbsent()},isError:function isError(ee){return ee.isError().asBoolean()},isType:function isType(ee,te){return __PRIVATE_fieldOrExpression$1(ee).isType(te)},join:function join(ee,te){return __PRIVATE_fieldOrExpression$1(ee).join(__PRIVATE_valueToDefaultExpr(te))},last:function last(ee){return __PRIVATE_fieldOrExpression$1(ee).last()},length:function length(ee){return __PRIVATE_fieldOrExpression$1(ee).length()},lessThan:lessThan,lessThanOrEqual:function lessThanOrEqual(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.lessThanOrEqual(re)},like:function like(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.like(re)},ln:function ln(ee){return __PRIVATE_fieldOrExpression$1(ee).ln()},log:function log(ee,te){return new x("log",[__PRIVATE_fieldOrExpression$1(ee),__PRIVATE_valueToDefaultExpr(te)])},log10:function log10(ee){return __PRIVATE_fieldOrExpression$1(ee).log10()},logicalMaximum:function logicalMaximum(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).logicalMaximum(__PRIVATE_valueToDefaultExpr(te),...ne.map((ee=>__PRIVATE_valueToDefaultExpr(ee))))},logicalMinimum:function logicalMinimum(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).logicalMinimum(__PRIVATE_valueToDefaultExpr(te),...ne.map((ee=>__PRIVATE_valueToDefaultExpr(ee))))},ltrim:function ltrim(ee,te){return __PRIVATE_fieldOrExpression$1(ee).ltrim(te)},map:h,mapEntries:function mapEntries(ee){return __PRIVATE_fieldOrExpression$1(ee).mapEntries()},mapGet:function mapGet(ee,te){return __PRIVATE_fieldOrExpression$1(ee).mapGet(te)},mapKeys:function mapKeys(ee){return __PRIVATE_fieldOrExpression$1(ee).mapKeys()},mapMerge:function mapMerge(ee,te,...ne){const re=__PRIVATE_valueToDefaultExpr(te),se=ne.map(__PRIVATE_valueToDefaultExpr);return __PRIVATE_fieldOrExpression$1(ee).mapMerge(re,...se)},mapRemove:function mapRemove(ee,te){return __PRIVATE_fieldOrExpression$1(ee).mapRemove(__PRIVATE_valueToDefaultExpr(te))},mapSet:function mapSet(ee,te,ne,...re){return __PRIVATE_fieldOrExpression$1(ee).mapSet(te,ne,...re)},mapValues:function mapValues(ee){return __PRIVATE_fieldOrExpression$1(ee).mapValues()},maximum:function maximum(ee){return __PRIVATE_fieldOrExpression$1(ee).maximum()},minimum:function minimum(ee){return __PRIVATE_fieldOrExpression$1(ee).minimum()},mod:function mod(ee,te){const ne="string"==typeof ee?e(ee):ee,re=__PRIVATE_valueToDefaultExpr(te);return ne.mod(re)},multiply:function multiply(ee,te){return __PRIVATE_fieldOrExpression$1(ee).multiply(__PRIVATE_valueToDefaultExpr(te))},nor:function nor(ee,te,...ne){return new x("nor",[ee,te,...ne],"nor").asBoolean()},not:function not(ee){return ee.not()},notEqual:function notEqual(ee,te){const ne=ee instanceof t?ee:e(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.notEqual(re)},notEqualAny:function notEqualAny(ee,te){return __PRIVATE_fieldOrExpression$1(ee).notEqualAny(te)},or:or$1,parent:function parent(ee){return __PRIVATE_valueToDefaultExpr(ee).parent()},pipelineResultEqual:function pipelineResultEqual(ee,te){return ee===te||na(ee._ref,te._ref,ia)&&na(ee._fields,te._fields,((ee,te)=>ee.isEqual(te)))},pow:function pow(ee,te){return __PRIVATE_fieldOrExpression$1(ee).pow(te)},rand:function rand(){return new x("rand",[],"rand")},regexContains:function regexContains(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexContains(re)},regexFind:function regexFind(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexFind(re)},regexFindAll:function regexFindAll(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexFindAll(re)},regexMatch:function regexMatch(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.regexMatch(re)},reverse:function reverse(ee){return __PRIVATE_fieldOrExpression$1(ee).reverse()},round:function round(ee,te){return void 0===te?__PRIVATE_fieldOrExpression$1(ee).round():__PRIVATE_fieldOrExpression$1(ee).round(__PRIVATE_valueToDefaultExpr(te))},rtrim:function rtrim(ee,te){return __PRIVATE_fieldOrExpression$1(ee).rtrim(te)},score:function score(){return new x("score",[],"score")},split:function split(ee,te){return __PRIVATE_fieldOrExpression$1(ee).split(__PRIVATE_valueToDefaultExpr(te))},sqrt:function sqrt(ee){return __PRIVATE_fieldOrExpression$1(ee).sqrt()},startsWith:function startsWith(ee,te){return __PRIVATE_fieldOrExpression$1(ee).startsWith(__PRIVATE_valueToDefaultExpr(te))},stringConcat:function stringConcat(ee,te,...ne){return __PRIVATE_fieldOrExpression$1(ee).stringConcat(__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr))},stringContains:function stringContains(ee,te){const ne=__PRIVATE_fieldOrExpression$1(ee),re=__PRIVATE_valueToDefaultExpr(te);return ne.stringContains(re)},stringIndexOf:function stringIndexOf(ee,te){return __PRIVATE_fieldOrExpression$1(ee).stringIndexOf(te)},stringRepeat:function stringRepeat(ee,te){return __PRIVATE_fieldOrExpression$1(ee).stringRepeat(te)},stringReplaceAll:function stringReplaceAll(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).stringReplaceAll(te,ne)},stringReplaceOne:function stringReplaceOne(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).stringReplaceOne(te,ne)},stringReverse:function stringReverse(ee){return __PRIVATE_fieldOrExpression$1(ee).stringReverse()},subcollection:function subcollection(ee){let te,ne;__PRIVATE_isString$1(ee)?(te=ee,ne={}):({path:te,...ne}=ee);const re=new sa(te,ne);return new hi(void 0,void 0,void 0,[re])},substring:function substring(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_valueToDefaultExpr(te),ie=void 0===ne?void 0:__PRIVATE_valueToDefaultExpr(ne);return re.substring(se,ie)},subtract:function subtract(ee,te){const ne="string"==typeof ee?e(ee):ee,re=__PRIVATE_valueToDefaultExpr(te);return ne.subtract(re)},sum:function sum$1(ee){return __PRIVATE_fieldOrExpression$1(ee).sum()},switchOn:function switchOn(ee,te,...ne){return new x("switch_on",[__PRIVATE_valueToDefaultExpr(ee),__PRIVATE_valueToDefaultExpr(te),...ne.map(__PRIVATE_valueToDefaultExpr)],"switchOn")},timestampAdd:function timestampAdd(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_valueToDefaultExpr(te),ie=__PRIVATE_valueToDefaultExpr(ne);return re.timestampAdd(se,ie)},timestampDiff:function timestampDiff(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_fieldOrExpression$1(te),ie=__PRIVATE_valueToDefaultExpr(ne);return re.timestampDiff(se,ie)},timestampExtract:function timestampExtract(ee,te,ne){return __PRIVATE_fieldOrExpression$1(ee).timestampExtract(__PRIVATE_valueToDefaultExpr(te),ne)},timestampSubtract:function timestampSubtract(ee,te,ne){const re=__PRIVATE_fieldOrExpression$1(ee),se=__PRIVATE_valueToDefaultExpr(te),ie=__PRIVATE_valueToDefaultExpr(ne);return re.timestampSubtract(se,ie)},timestampToUnixMicros:function timestampToUnixMicros(ee){return __PRIVATE_fieldOrExpression$1(ee).timestampToUnixMicros()},timestampToUnixMillis:function timestampToUnixMillis(ee){return __PRIVATE_fieldOrExpression$1(ee).timestampToUnixMillis()},timestampToUnixSeconds:function timestampToUnixSeconds(ee){return __PRIVATE_fieldOrExpression$1(ee).timestampToUnixSeconds()},timestampTruncate:function timestampTruncate(ee,te,ne){const re=__PRIVATE_isString$1(te)?__PRIVATE_valueToDefaultExpr(te):te;return __PRIVATE_fieldOrExpression$1(ee).timestampTruncate(re,ne)},toLower:function toLower(ee){return __PRIVATE_fieldOrExpression$1(ee).toLower()},toUpper:function toUpper(ee){return __PRIVATE_fieldOrExpression$1(ee).toUpper()},trim:function trim(ee,te){return __PRIVATE_fieldOrExpression$1(ee).trim(te)},trunc:function trunc(ee,te){return void 0===te?__PRIVATE_fieldOrExpression$1(ee).trunc():__PRIVATE_fieldOrExpression$1(ee).trunc(__PRIVATE_valueToDefaultExpr(te))},type:function type(ee){return __PRIVATE_fieldOrExpression$1(ee).type()},unixMicrosToTimestamp:function unixMicrosToTimestamp(ee){return __PRIVATE_fieldOrExpression$1(ee).unixMicrosToTimestamp()},unixMillisToTimestamp:function unixMillisToTimestamp(ee){return __PRIVATE_fieldOrExpression$1(ee).unixMillisToTimestamp()},unixSecondsToTimestamp:function unixSecondsToTimestamp(ee){return __PRIVATE_fieldOrExpression$1(ee).unixSecondsToTimestamp()},variable:function variable(ee){return new __PRIVATE_VariableExpression(ee)},vectorLength:function vectorLength(ee){return __PRIVATE_fieldOrExpression$1(ee).vectorLength()},xor:function xor(ee,te,...ne){return new x("xor",[ee,te,...ne],"xor").asBoolean()}});export{AbstractUserDataWriter,AggregateField,AggregateQuerySnapshot,Bytes,ri as CACHE_SIZE_UNLIMITED,ea as CollectionReference,X as DocumentReference,DocumentSnapshot,FieldPath,FieldValue,da as Firestore,s as FirestoreError,GeoPoint,LoadBundleTask,PersistentCacheIndexManager,Query,QueryCompositeFilterConstraint,QueryConstraint,QueryDocumentSnapshot,QueryEndAtConstraint,QueryFieldFilterConstraint,QueryLimitConstraint,QueryOrderByConstraint,QuerySnapshot,QueryStartAtConstraint,SnapshotMetadata,Timestamp,Transaction,n as VectorValue,WriteBatch,__PRIVATE_AutoId as _AutoId,ByteString as _ByteString,DatabaseId as _DatabaseId,DocumentKey as _DocumentKey,__PRIVATE_EmptyAppCheckTokenProvider as _EmptyAppCheckTokenProvider,__PRIVATE_EmptyAuthCredentialsProvider as _EmptyAuthCredentialsProvider,An as _FieldPath,TestingHooks as _TestingHooks,ra as _cast,__PRIVATE_debugAssert as _debugAssert,_internalAggregationQueryToProtoRunAggregationQueryRequest,_internalQueryToProtoQueryTarget,__PRIVATE_isBase64Available as _isBase64Available,__PRIVATE_logWarn as _logWarn,__PRIVATE_validateIsNotUsedTogether as _validateIsNotUsedTogether,addDoc,aggregateFieldEqual,aggregateQuerySnapshotEqual,and,arrayRemove,arrayUnion,average,clearIndexedDbPersistence,collection,collectionGroup,connectFirestoreEmulator,count,deleteAllPersistentCacheIndexes,deleteDoc,deleteField,disableNetwork,disablePersistentCacheIndexAutoCreation,doc,documentId$1 as documentId,documentSnapshotFromJSON,enableIndexedDbPersistence,enableMultiTabIndexedDbPersistence,enableNetwork,enablePersistentCacheIndexAutoCreation,endAt,endBefore,oa as ensureFirestoreConfigured,executeWrite,getAggregateFromServer,getCountFromServer,getDoc,getDocFromCache,getDocFromServer,getDocs,getDocsFromCache,getDocsFromServer,getFirestore,getPersistentCacheIndexManager,increment,initializeFirestore,limit,limitToLast,loadBundle,maximum$1 as maximum,memoryEagerGarbageCollector,memoryLocalCache,memoryLruGarbageCollector,minimum$1 as minimum,namedQuery,onSnapshot,onSnapshotResume,onSnapshotsInSync,or,orderBy,persistentLocalCache,persistentMultipleTabManager,persistentSingleTabManager,di as pipelines,query,queryEqual,querySnapshotFromJSON,ia as refEqual,runTransaction,serverTimestamp,setDoc,setIndexConfiguration,setLogLevel,snapshotEqual,startAfter,startAt,sum,terminate,updateDoc,r as vector,waitForPendingWrites,where,writeBatch};
2
2
 
3
3
  //# sourceMappingURL=firebase-firestore-pipelines.js.map