1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[29948],{10796:(e,t,r)=>{var n;r.d(t,{$b:()=>n,Vy:()=>h});let s=[];!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(n||(n={}));let i={debug:n.DEBUG,verbose:n.VERBOSE,info:n.INFO,warn:n.WARN,error:n.ERROR,silent:n.SILENT},o=n.INFO,a={[n.DEBUG]:"log",[n.VERBOSE]:"log",[n.INFO]:"info",[n.WARN]:"warn",[n.ERROR]:"error"},l=(e,t,...r)=>{if(t<e.logLevel)return;let n=new Date().toISOString(),s=a[t];if(s)console[s](`[${n}] ${e.name}:`,...r);else throw Error(`Attempted to log a message with an invalid logType (value: ${t})`)};class h{constructor(e){this.name=e,this._logLevel=o,this._logHandler=l,this._userLogHandler=null,s.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in n))throw TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?i[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,n.DEBUG,...e),this._logHandler(this,n.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,n.VERBOSE,...e),this._logHandler(this,n.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,n.INFO,...e),this._logHandler(this,n.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,n.WARN,...e),this._logHandler(this,n.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,n.ERROR,...e),this._logHandler(this,n.ERROR,...e)}}},35317:(e,t,r)=>{r.r(t),r.d(t,{AbstractUserDataWriter:()=>n.fS,AggregateField:()=>n.Wc,AggregateQuerySnapshot:()=>n.oN,Bytes:()=>n.Ix,CACHE_SIZE_UNLIMITED:()=>n.H6,CollectionReference:()=>n.YS,DocumentReference:()=>n.T1,DocumentSnapshot:()=>n.Wq,FieldPath:()=>n.uY,FieldValue:()=>n.S0,Firestore:()=>n._7,FirestoreError:()=>n.W6,GeoPoint:()=>n.Ci,LoadBundleTask:()=>n.Mh,PersistentCacheIndexManager:()=>n.J_,Query:()=>n.XK,QueryCompositeFilterConstraint:()=>n.Li,QueryConstraint:()=>n.wx,QueryDocumentSnapshot:()=>n.YQ,QueryEndAtConstraint:()=>n.Gv,QueryFieldFilterConstraint:()=>n.Cq,QueryLimitConstraint:()=>n.xC,QueryOrderByConstraint:()=>n.jy,QuerySnapshot:()=>n.NJ,QueryStartAtConstraint:()=>n.$c,SnapshotMetadata:()=>n.mc,Timestamp:()=>n.Dc,Transaction:()=>n.ZX,VectorValue:()=>n.V7,WriteBatch:()=>n.GA,_AutoId:()=>n.Y$,_ByteString:()=>n.Rw,_DatabaseId:()=>n.cm,_DocumentKey:()=>n.K$,_EmptyAppCheckTokenProvider:()=>n.wy,_EmptyAuthCredentialsProvider:()=>n.eQ,_FieldPath:()=>n.FA,_TestingHooks:()=>n.kA,_cast:()=>n.lo,_debugAssert:()=>n.bI,_internalAggregationQueryToProtoRunAggregationQueryRequest:()=>n.AM,_internalQueryToProtoQueryTarget:()=>n.Z9,_isBase64Available:()=>n.qG,_logWarn:()=>n.qi,_validateIsNotUsedTogether:()=>n.c8,addDoc:()=>n.gS,aggregateFieldEqual:()=>n.gT,aggregateQuerySnapshotEqual:()=>n.O8,and:()=>n.Uo,arrayRemove:()=>n.C3,arrayUnion:()=>n.hq,average:()=>n.G8,clearIndexedDbPersistence:()=>n.me,collection:()=>n.rJ,collectionGroup:()=>n.Cs,connectFirestoreEmulator:()=>n.vN,count:()=>n.U9,deleteAllPersistentCacheIndexes:()=>n.yf,deleteDoc:()=>n.kd,deleteField:()=>n.CL,disableNetwork:()=>n.LA,disablePersistentCacheIndexAutoCreation:()=>n.mT,doc:()=>n.H9,documentId:()=>n.Fs,documentSnapshotFromJSON:()=>n._J,enableIndexedDbPersistence:()=>n.ol,enableMultiTabIndexedDbPersistence:()=>n.Q5,enableNetwork:()=>n.Os,enablePersistentCacheIndexAutoCreation:()=>n.Bh,endAt:()=>n.FD,endBefore:()=>n.rf,ensureFirestoreConfigured:()=>n.Ws,executeWrite:()=>n.z6,getAggregateFromServer:()=>n.O_,getCountFromServer:()=>n.d_,getDoc:()=>n.x7,getDocFromCache:()=>n.nY,getDocFromServer:()=>n._e,getDocs:()=>n.GG,getDocsFromCache:()=>n.kU,getDocsFromServer:()=>n.Rr,getFirestore:()=>n.aU,getPersistentCacheIndexManager:()=>n.F7,increment:()=>n.GV,initializeFirestore:()=>n._A,limit:()=>n.AB,limitToLast:()=>n.$1,loadBundle:()=>n.po,memoryEagerGarbageCollector:()=>n.kL,memoryLocalCache:()=>n.ts,memoryLruGarbageCollector:()=>n.$$,namedQuery:()=>n.St,onSnapshot:()=>n.aQ,onSnapshotResume:()=>n.bg,onSnapshotsInSync:()=>n.FC,or:()=>n.or,orderBy:()=>n.My,persistentLocalCache:()=>n.vK,persistentMultipleTabManager:()=>n.K7,persistentSingleTabManager:()=>n.cY,query:()=>n.P,queryEqual:()=>
1n.B,querySnapshotFromJSON:()=>n.$t,refEqual:()=>n.yx,runTransaction:()=>n.c4,serverTimestamp:()=>n.O5,setDoc:()=>n.BN,setIndexConfiguration:()=>n.LV,setLogLevel:()=>n.He,snapshotEqual:()=>n.lN,startAfter:()=>n.HM,startAt:()=>n.EO,sum:()=>n.cz,terminate:()=>n.MH,updateDoc:()=>n.mZ,vector:()=>n.i1,waitForPendingWrites:()=>n.iB,where:()=>n._M,writeBatch:()=>n.wP});var n=r(87015)},49887:(e,t,r)=>{r.d(t,{cY:()=>E,FA:()=>H,g:()=>F,K3:()=>a,u:()=>c,Uj:()=>u,p9:()=>Q,Fy:()=>w,tD:()=>G,bD:()=>function e(t,r){if(t===r)return!0;let n=Object.keys(t),s=Object.keys(r);for(let i of n){if(!s.includes(i))return!1;let n=t[i],o=r[i];if(q(n)&&q(o)){if(!e(n,o))return!1}else if(n!==o)return!1}for(let e of s)if(!n.includes(e))return!1;return!0},hp:()=>$,T9:()=>v,Tj:()=>m,yU:()=>b,XA:()=>y,mS:()=>d,Ku:()=>Z,ZQ:()=>I,sr:()=>U,zJ:()=>C,c1:()=>N,Im:()=>V,lT:()=>x,zW:()=>B,jZ:()=>S,lV:()=>D,nr:()=>L,Ov:()=>P,gE:()=>T,Am:()=>j,I9:()=>W,P1:()=>O,eX:()=>M});let n=()=>({config:{apiKey:"AIzaSyApsdKJtVxww6miCfcylGSopGF1TPICu6A",appId:"1:963772349101:web:437b962dc0acedd1aaa424",authDomain:"best-ai-tools-org.firebaseapp.com",databaseURL:"",messagingSenderId:"963772349101",projectId:"best-ai-tools-org",storageBucket:"best-ai-tools-org.firebasestorage.app"},emulatorHosts:{}});var s=r(49509);let i=function(e){let t=[],r=0;for(let n=0;n<e.length;n++){let s=e.charCodeAt(n);s<128?t[r++]=s:(s<2048?t[r++]=s>>6|192:((64512&s)==55296&&n+1<e.length&&(64512&e.charCodeAt(n+1))==56320?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++n)),t[r++]=s>>18|240,t[r++]=s>>12&63|128):t[r++]=s>>12|224,t[r++]=s>>6&63|128),t[r++]=63&s|128)}return t},o=function(e){let t=[],r=0,n=0;for(;r<e.length;){let s=e[r++];if(s<128)t[n++]=String.fromCharCode(s);else if(s>191&&s<224){let i=e[r++];t[n++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){let i=e[r++],o=((7&s)<<18|(63&i)<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(o>>10)),t[n++]=String.fromCharCode(56320+(1023&o))}else{let i=e[r++],o=e[r++];t[n++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return t.join("")},a={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();let r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){let s=e[t],i=t+1<e.length,o=i?e[t+1]:0,a=t+2<e.length,l=a?e[t+2]:0,h=s>>2,u=(3&s)<<4|o>>4,c=(15&o)<<2|l>>6,d=63&l;a||(d=64,i||(c=64)),n.push(r[h],r[u],r[c],r[d])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(i(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):o(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();let r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){let s=r[e.charAt(t++)],i=t<e.length?r[e.charAt(t)]:0,o=++t<e.length?r[e.charAt(t)]:64,a=++t<e.length?r[e.charAt(t)]:64;if(++t,null==s||null==i||null==o||null==a)throw new l;let h=s<<2|i>>4;if(n.push(h),64!==o){let e=i<<4&240|o>>2;if(n.push(e),64!==a){let e=o<<6&192|a;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class l extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let h=function(e){let t=i(e);return a.encodeByteArray(t,!0)},u=function(e){return h(e).replace(/\./g,"")},c=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function d(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw Error("Unable to locate global object.")}let p=()=>d().__FIREBASE_DEFAULTS__,_=()=>{if(void 0===s||void 0===s.env)return;let e=s.env.__FIREBASE_DEFAULTS__;if(e)return JSON.parse(e)},f=()=>{let e;if("undefined"==typeof document)return;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;
1]+)/)}catch(e){return}let t=e&&c(e[1]);return t&&JSON.parse(t)},g=()=>{try{return n()||p()||_()||f()}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}},m=e=>{var t,r;return null===(r=null===(t=g())||void 0===t?void 0:t.emulatorHosts)||void 0===r?void 0:r[e]},b=e=>{let t=m(e);if(!t)return;let r=t.lastIndexOf(":");if(r<=0||r+1===t.length)throw Error(`Invalid host ${t} with no separate hostname and port!`);let n=parseInt(t.substring(r+1),10);return"["===t[0]?[t.substring(1,r-1),n]:[t.substring(0,r),n]},v=()=>{var e;return null===(e=g())||void 0===e?void 0:e.config},y=e=>{var t;return null===(t=g())||void 0===t?void 0:t[`_${e}`]};class E{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,r))}}}function C(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch(e){return!1}}async function T(e){return(await fetch(e,{credentials:"include"})).ok}function w(e,t){if(e.uid)throw Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let r=t||"demo-project",n=e.iat||0,s=e.sub||e.user_id;if(!s)throw Error("mockUserToken must contain 'sub' or 'user_id' field!");let i=Object.assign({iss:`https://securetoken.google.com/${r}`,aud:r,iat:n,exp:n+3600,auth_time:n,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},e);return[u(JSON.stringify({alg:"none",type:"JWT"})),u(JSON.stringify(i)),""].join(".")}let A={},R=!1;function O(e,t){if("undefined"==typeof window||"undefined"==typeof document||!C(window.location.host)||A[e]===t||A[e]||R)return;function r(e){return`__firebase__banner__${e}`}A[e]=t;let n="__firebase__banner",s=function(){let e={prod:[],emulator:[]};for(let t of Object.keys(A))A[t]?e.emulator.push(t):e.prod.push(t);return e}().prod.length>0;function i(){let e,t,i=(e=document.getElementById(n),t=!1,e||((e=document.createElement("div")).setAttribute("id",n),t=!0),{created:t,element:e}),o=r("text"),a=document.getElementById(o)||document.createElement("span"),l=r("learnmore"),h=document.getElementById(l)||document.createElement("a"),u=r("preprendIcon"),c=document.getElementById(u)||document.createElementNS("http://www.w3.org/2000/svg","svg");if(i.created){let e=i.element;e.style.display="flex",e.style.background="#7faaf0",e.style.position="fixed",e.style.bottom="5px",e.style.left="5px",e.style.padding=".5em",e.style.borderRadius="5px",e.style.alignItems="center",h.setAttribute("id",l),h.innerText="Learn more",h.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",h.setAttribute("target","__blank"),h.style.paddingLeft="5px",h.style.textDecoration="underline";let t=function(){let e=document.createElement("span");return e.style.cursor="pointer",e.style.marginLeft="16px",e.style.fontSize="24px",e.innerHTML=" ×",e.onclick=()=>{R=!0;let e=document.getElementById(n);e&&e.remove()},e}();c.setAttribute("width","24"),c.setAttribute("id",u),c.setAttribute("height","24"),c.setAttribute("viewBox","0 0 24 24"),c.setAttribute("fill","none"),c.style.marginLeft="-6px",e.append(c,a,h,t),document.body.appendChild(e)}s?(a.innerText="Preview backend disconnected.",c.innerHTML=`<g clip-path="url(#clip0_6013_33858)"> 2<path d="M4.8 17.6L12 5.6L19.2 17.6H4.8ZM6.91667 16.4H17.0833L12 7.93333L6.91667 16.4ZM12 15.6C12.1667 15.6 12.3056 15.5444 12.4167 15.4333C12.5389 15.3111 12.6 15.1667 12.6 15C12.6 14.8333 12.5389 14.6944 12.4167 14.5833C12.3056 14.4611 12.1667 14.4 12 14.4C11.8333 14.4 11.6889 14.4611 11.5667 14.5833C11.4556 14.6944 11.4 14.8333 11.4 15C11.4 15.1667 11.4556 15.3111 11.5667 15.4333C11.6889 15.5444 11.8333 15.6 12 15.6ZM11.4 13.6H12.6V10.4H11.4V13.6Z" fill="#212121"/> 3</g> 4<defs> 5<clipPath id="clip0_6013_33858"> 6<rect width="24" height="24" fill="white"/> 7</clipPath> 8</defs>`):(c.innerHTML=`<g clip-path="url(#clip0_6083_34804)"> 9<path d="M11.4 15.2H12.6V11.2H11.4V15.2ZM12 10C12.1667 10 12.3056 9.94444
912.4167 9.83333C12.5389 9.71111 12.6 9.56667 12.6 9.4C12.6 9.23333 12.5389 9.09444 12.4167 8.98333C12.3056 8.86111 12.1667 8.8 12 8.8C11.8333 8.8 11.6889 8.86111 11.5667 8.98333C11.4556 9.09444 11.4 9.23333 11.4 9.4C11.4 9.56667 11.4556 9.71111 11.5667 9.83333C11.6889 9.94444 11.8333 10 12 10ZM12 18.4C11.1222 18.4 10.2944 18.2333 9.51667 17.9C8.73889 17.5667 8.05556 17.1111 7.46667 16.5333C6.88889 15.9444 6.43333 15.2611 6.1 14.4833C5.76667 13.7056 5.6 12.8778 5.6 12C5.6 11.1111 5.76667 10.2833 6.1 9.51667C6.43333 8.73889 6.88889 8.06111 7.46667 7.48333C8.05556 6.89444 8.73889 6.43333 9.51667 6.1C10.2944 5.76667 11.1222 5.6 12 5.6C12.8889 5.6 13.7167 5.76667 14.4833 6.1C15.2611 6.43333 15.9389 6.89444 16.5167 7.48333C17.1056 8.06111 17.5667 8.73889 17.9 9.51667C18.2333 10.2833 18.4 11.1111 18.4 12C18.4 12.8778 18.2333 13.7056 17.9 14.4833C17.5667 15.2611 17.1056 15.9444 16.5167 16.5333C15.9389 17.1111 15.2611 17.5667 14.4833 17.9C13.7167 18.2333 12.8889 18.4 12 18.4ZM12 17.2C13.4444 17.2 14.6722 16.6944 15.6833 15.6833C16.6944 14.6722 17.2 13.4444 17.2 12C17.2 10.5556 16.6944 9.32778 15.6833 8.31667C14.6722 7.30555 13.4444 6.8 12 6.8C10.5556 6.8 9.32778 7.30555 8.31667 8.31667C7.30556 9.32778 6.8 10.5556 6.8 12C6.8 13.4444 7.30556 14.6722 8.31667 15.6833C9.32778 16.6944 10.5556 17.2 12 17.2Z" fill="#212121"/> 10</g> 11<defs> 12<clipPath id="clip0_6083_34804"> 13<rect width="24" height="24" fill="white"/> 14</clipPath> 15</defs>`,a.innerText="Preview backend running in this workspace."),a.setAttribute("id",o)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",i):i()}function I(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function S(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(I())}function k(){var e;let t=null===(e=g())||void 0===e?void 0:e.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(r.g.process)}catch(e){return!1}}function N(){return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent}function U(){let e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function D(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function x(){let e=I();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}function L(){return!k()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function P(){return!k()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function B(){try{return"object"==typeof indexedDB}catch(e){return!1}}function M(){return new Promise((e,t)=>{try{let r=!0,n="validate-browser-context-for-indexeddb-analytics-module",s=self.indexedDB.open(n);s.onsuccess=()=>{s.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},s.onupgradeneeded=()=>{r=!1},s.onerror=()=>{var e;t((null===(e=s.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})}class F extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,F.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,H.prototype.create)}}class H{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r,n;let s=t[0]||{},i=`${this.service}/${e}`,o=this.errors[e],a=o?(r=o,n=s,r.replace(z,(e,t)=>{let r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",l=`${this.serviceName}: ${a} (${i}).`;return new F(i,l,s)}}let z=/\{\$([^}]+)}/g;function V(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function q(e){return null!==e&&"object"==typeof e}function j(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function W(e){let t={};
15return e.replace(/^\?/,"").split("&").forEach(e=>{if(e){let[r,n]=e.split("=");t[decodeURIComponent(r)]=decodeURIComponent(n)}}),t}function $(e){let t=e.indexOf("?");if(!t)return"";let r=e.indexOf("#",t);return e.substring(t,r>0?r:void 0)}function G(e,t){let r=new K(e,t);return r.subscribe.bind(r)}class K{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw Error("Missing Observer.");void 0===(n=!function(e,t){if("object"!=typeof e||null===e)return!1;for(let r of t)if(r in e&&"function"==typeof e[r])return!0;return!1}(e,["next","error","complete"])?{next:e,error:t,complete:r}:e).next&&(n.next=X),void 0===n.error&&(n.error=X),void 0===n.complete&&(n.complete=X);let s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),s}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function X(){}function Q(e,t=1e3,r=2){let n=t*Math.pow(r,e),s=Math.round(.5*n*(Math.random()-.5)*2);return Math.min(144e5,n+s)}function Z(e){return e&&e._delegate?e._delegate:e}},56391:(e,t,r)=>{r.d(t,{h1:()=>a,uA:()=>s});var n=r(49887);class s{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let i="[DEFAULT]";class o{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let e=new n.cY;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{let r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;let r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}else if(n)return null;else throw Error(`Service ${this.name} is not available`)}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:i})}catch(e){}for(let[e,t]of this.instancesDeferred.entries()){let r=this.normalizeInstanceIdentifier(e);try{let e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e=i){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=i){return this.instances.has(e)}getOptions(e=i){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[e,t]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(e)&&t.resolve(n);return n}onInit(e,t){var r;let n=this.normalizeInstanceIdentifier(t),s=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;s.add(e),this.onInitCallbacks.set(n,s);let i=this.instances.get(n);return i&&e(i,n),()=>{s.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){var r;let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===i?void 0:r,options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}return n||null}normalizeInstanceIdentifier(e=i){return this.component?this.component.multipleInstances?e:i:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class a{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new o(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}},90858:(e,t,r)=>{r.d(t,{XR:()=>eE,qk:()=>ey,c7:()=>eT,KR:()=>eC,bp:()=>ev});var n,s,i=r(46235),o=r(49887),a=r(56391);let l="firebasestorage.googleapis.com",h="storageBucket";
15class u extends o.g{constructor(e,t,r=0){super(c(e),`Firebase Storage: ${t} (${c(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,u.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return c(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage} 16${this.customData.serverResponse}`:this.message=this._baseMessage}}function c(e){return"storage/"+e}function d(){return new u(n.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function p(){return new u(n.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function _(){return new u(n.CANCELED,"User canceled the upload/download.")}function f(){return new u(n.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function g(e){return new u(n.INVALID_ARGUMENT,e)}function m(){return new u(n.APP_DELETED,"The Firebase app was deleted.")}function b(e,t){return new u(n.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function v(e){throw new u(n.INTERNAL_ERROR,"Internal error: "+e)}!function(e){e.UNKNOWN="unknown",e.OBJECT_NOT_FOUND="object-not-found",e.BUCKET_NOT_FOUND="bucket-not-found",e.PROJECT_NOT_FOUND="project-not-found",e.QUOTA_EXCEEDED="quota-exceeded",e.UNAUTHENTICATED="unauthenticated",e.UNAUTHORIZED="unauthorized",e.UNAUTHORIZED_APP="unauthorized-app",e.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",e.INVALID_CHECKSUM="invalid-checksum",e.CANCELED="canceled",e.INVALID_EVENT_NAME="invalid-event-name",e.INVALID_URL="invalid-url",e.INVALID_DEFAULT_BUCKET="invalid-default-bucket",e.NO_DEFAULT_BUCKET="no-default-bucket",e.CANNOT_SLICE_BLOB="cannot-slice-blob",e.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",e.NO_DOWNLOAD_URL="no-download-url",e.INVALID_ARGUMENT="invalid-argument",e.INVALID_ARGUMENT_COUNT="invalid-argument-count",e.APP_DELETED="app-deleted",e.INVALID_ROOT_OPERATION="invalid-root-operation",e.INVALID_FORMAT="invalid-format",e.INTERNAL_ERROR="internal-error",e.UNSUPPORTED_ENVIRONMENT="unsupported-environment"}(n||(n={}));class y{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){let e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(e,t){let r;try{r=y.makeFromUrl(e,t)}catch(t){return new y(e,"")}if(""===r.path)return r;throw new u(n.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null,s="([A-Za-z0-9.\\-_]+)",i=RegExp("^gs://"+s+"(/(.*))?$","i");function o(e){e.path_=decodeURIComponent(e.path)}let a=t.replace(/[.]/g,"\\."),h=RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${s}/o(/([^?#]*).*)?$`,"i"),c=t===l?"(?:storage.googleapis.com|storage.cloud.google.com)":t,d=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:h,indices:{bucket:1,path:3},postModify:o},{regex:RegExp(`^https?://${c}/${s}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:o}];for(let t=0;t<d.length;t++){let n=d[t],s=n.regex.exec(e);if(s){let e=s[n.indices.bucket],t=s[n.indices.path];t||(t=""),r=new y(e,t),n.postModify(r);break}}if(null==r)throw new u(n.INVALID_URL,"Invalid URL '"+e+"'.");return r}}class E{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=!1){}}function C(e){return"string"==typeof e||e instanceof String}function T(e){return w()&&e instanceof Blob}function w(){return"undefined"!=typeof Blob}function A(e,t,r,n){if(n<t)throw g(`Invalid value for '${e}'. Expected ${t} or greater.`);if(n>r)throw g(`Invalid value for '${e}'. Expected ${r} or less.`)}function R(e,t,r){let n=t;return null==r&&(n=`https://${t}`),`${r}://${n}/v0${e}`}function O(e){let t=encodeURIComponent,r="?";for(let n in e)e.hasOwnProperty(n)&&(r=r+(t(n)+"=")+t(e[n])+"&");return r.slice(0,-1)}function I(e,t){let r=e>=500&&e<600,n=-1!==[408,429].indexOf(e),s=-1!==t.indexOf(e);return r||n||s}
16!function(e){e[e.NO_ERROR=0]="NO_ERROR",e[e.NETWORK_ERROR=1]="NETWORK_ERROR",e[e.ABORT=2]="ABORT"}(s||(s={}));class S{constructor(e,t,r,n,s,i,o,a,l,h,u,c=!0,d=!1){this.url_=e,this.method_=t,this.headers_=r,this.body_=n,this.successCodes_=s,this.additionalRetryCodes_=i,this.callback_=o,this.errorCallback_=a,this.timeout_=l,this.progressCallback_=h,this.connectionFactory_=u,this.retry=c,this.isUsingEmulator=d,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){let e=(e,t)=>{let r=this.resolve_,n=this.reject_,s=t.connection;if(t.wasSuccessCode)try{let e=this.callback_(s,s.getResponse());void 0!==e?r(e):r()}catch(e){n(e)}else if(null!==s){let e=d();e.serverResponse=s.getErrorText(),n(this.errorCallback_?this.errorCallback_(s,e):e)}else n(t.canceled?this.appDelete_?m():_():p())};this.canceled_?e(!1,new k(!1,null,!0)):this.backoffId_=function(e,t,r){let n=1,s=null,i=null,o=!1,a=0,l=!1;function h(...e){l||(l=!0,t.apply(null,e))}function u(t){s=setTimeout(()=>{s=null,e(d,2===a)},t)}function c(){i&&clearTimeout(i)}function d(e,...t){let r;if(l){c();return}if(e||2===a||o){c(),h.call(null,e,...t);return}n<64&&(n*=2),1===a?(a=2,r=0):r=(n+Math.random())*1e3,u(r)}let p=!1;function _(e){!p&&(p=!0,c(),l||(null!==s?(e||(a=2),clearTimeout(s),u(0)):e||(a=1)))}return u(0),i=setTimeout(()=>{o=!0,_(!0)},r),_}((e,t)=>{if(t){e(!1,new k(!1,null,!0));return}let r=this.connectionFactory_();this.pendingConnection_=r;let n=e=>{let t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)};null!==this.progressCallback_&&r.addUploadProgressListener(n),r.send(this.url_,this.method_,this.isUsingEmulator,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(n),this.pendingConnection_=null;let t=r.getErrorCode()===s.NO_ERROR,i=r.getStatus();if(!t||I(i,this.additionalRetryCodes_)&&this.retry){e(!1,new k(!1,null,r.getErrorCode()===s.ABORT));return}e(!0,new k(-1!==this.successCodes_.indexOf(i),r))})},e,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class k{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function N(...e){let t="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==t){let r=new t;for(let t=0;t<e.length;t++)r.append(e[t]);return r.getBlob()}if(w())return new Blob(e);throw new u(n.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}let U={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class D{constructor(e,t){this.data=e,this.contentType=t||null}}function x(e){let t=[];for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);n<=127?t.push(n):n<=2047?t.push(192|n>>6,128|63&n):(64512&n)==55296?r<e.length-1&&(64512&e.charCodeAt(r+1))==56320?(n=65536|(1023&n)<<10|1023&e.charCodeAt(++r),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n)):t.push(239,191,189):(64512&n)==56320?t.push(239,191,189):t.push(224|n>>12,128|n>>6&63,128|63&n)}return new Uint8Array(t)}function L(e,t){let r;switch(e){case U.BASE64:{let r=-1!==t.indexOf("-"),n=-1!==t.indexOf("_");if(r||n)throw b(e,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break}case U.BASE64URL:{let r=-1!==t.indexOf("+"),n=-1!==t.indexOf("/");if(r||n)throw b(e,"Invalid character '"+(r?"+":"/")+"' found: is it base64 encoded?");t=t.replace(/-/g,"+").replace(/_/g,"/")}}try{r=function(e){if("undefined"==typeof atob)throw new u(n.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}(t)}catch(t){if(t.message.includes("polyfill"))throw t;throw b(e,"Invalid character found")}let s=new Uint8Array(r.length);for(let e=0;e<r.length;e++)s[e]=r.charCodeAt(e);return s}class P{constructor(e){this.base64=!1,this.contentType=null;let t=e.match(/^data:([^,]+)?,/);if(null===t)throw b(U.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");let r=t[1]||null;null!=r&&(this.base64=function(e,t){return e.length>=t.length&&e.substring(e.length-t.length)===t}(r,";base64"),this.contentType=this.base64?r.substring(0,r.length-7):r),this.rest=e.substring(e.indexOf(",")+1)}}class B{constructor(e,t){let r=0,n="";T(e)?(this.data_=e,r=e.size,n=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=n}size(){return this.size_}type(){return this.type_}slice(e,t){if(!T(this.data_))return new B(new Uint8Array(this.data_.buffer,e,t-e),!0);{var r,n,s;let i=(r=this.data_,n=e,s=t,r.webkitSlice?r.webkitSlice(n,s):(0,r.mozSlice)?r.mozSlice(n,s):(0,r.slice)?r.slice(n,s):null);return null===i?null:new B(i)}}static getBlob(...e){if(w()){let t=e.map(e=>e instanceof B?e.data_:e);return new B(N.apply(null,t))}{let t=e.map(e=>C(e)?function(e,t){switch(e){case U.RAW:return new D(x(t));case U.BASE64:case U.BASE64URL:return new D(L(e,t));case U.DATA_URL:return new D(function(e){let t,r=new P(e);if(r.base64)return L(U.BASE64,r.rest);var n=r.rest;try{t=decodeURIComponent(n)}catch(e){throw b(U.DATA_URL,"Malformed data URL.")}return x(t)}(t),new P(t).contentType)}throw d()}(U.RAW,e).data:e.data_),r=0;
16t.forEach(e=>{r+=e.byteLength});let n=new Uint8Array(r),s=0;return t.forEach(e=>{for(let t=0;t<e.length;t++)n[s++]=e[t]}),new B(n,!0)}}uploadData(){return this.data_}}function M(e){var t;let r;try{r=JSON.parse(e)}catch(e){return null}return"object"!=typeof(t=r)||Array.isArray(t)?null:r}function F(e){let t=e.lastIndexOf("/",e.length-2);return -1===t?e:e.slice(t+1)}function H(e,t){return t}class z{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||H}}let V=null;function q(){if(V)return V;let e=[];e.push(new z("bucket")),e.push(new z("generation")),e.push(new z("metageneration")),e.push(new z("name","fullPath",!0));let t=new z("name");t.xform=function(e,t){return!C(t)||t.length<2?t:F(t)},e.push(t);let r=new z("size");return r.xform=function(e,t){return void 0!==t?Number(t):t},e.push(r),e.push(new z("timeCreated")),e.push(new z("updated")),e.push(new z("md5Hash",null,!0)),e.push(new z("cacheControl",null,!0)),e.push(new z("contentDisposition",null,!0)),e.push(new z("contentEncoding",null,!0)),e.push(new z("contentLanguage",null,!0)),e.push(new z("contentType",null,!0)),e.push(new z("metadata","customMetadata",!0)),V=e}function j(e,t,r){let n=M(t);return null===n?null:function(e,t,r){let n={};n.type="file";let s=r.length;for(let e=0;e<s;e++){let s=r[e];n[s.local]=s.xform(n,t[s.server])}return Object.defineProperty(n,"ref",{get:function(){let t=new y(n.bucket,n.fullPath);return e._makeStorageReference(t)}}),n}(e,n,r)}function W(e,t){let r={},n=t.length;for(let s=0;s<n;s++){let n=t[s];n.writable&&(r[n.server]=e[n.local])}return JSON.stringify(r)}let $="prefixes",G="items";class K{constructor(e,t,r,n){this.url=e,this.method=t,this.handler=r,this.timeout=n,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function X(e){if(!e)throw d()}function Q(e,t){return function(r,n){let s=j(e,n,t);return X(null!==s),s}}function Z(e){return function(t,r){var s,i;let o;return 401===t.getStatus()?o=t.getErrorText().includes("Firebase App Check token is invalid")?new u(n.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new u(n.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===t.getStatus()?(s=e.bucket,o=new u(n.QUOTA_EXCEEDED,"Quota for bucket '"+s+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===t.getStatus()?(i=e.path,o=new u(n.UNAUTHORIZED,"User does not have permission to access '"+i+"'.")):o=r,o.status=t.getStatus(),o.serverResponse=r.serverResponse,o}}function J(e){let t=Z(e);return function(r,s){let i=t(r,s);if(404===r.getStatus()){var o;o=e.path,i=new u(n.OBJECT_NOT_FOUND,"Object '"+o+"' does not exist.")}return i.serverResponse=s.serverResponse,i}}function Y(e,t,r){let n=Object.assign({},r);if(n.fullPath=e.path,n.size=t.size(),!n.contentType)n.contentType=t&&t.type()||"application/octet-stream";return n}function ee(e,t,r,n,s){let i=t.bucketOnlyServerUrl(),o={"X-Goog-Upload-Protocol":"multipart"},a=function(){let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e}();o["Content-Type"]="multipart/related; boundary="+a;let l=Y(t,n,s),h="--"+a+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+W(l,r)+"\r\n--"+a+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",u=B.getBlob(h,n,"\r\n--"+a+"--");if(null===u)throw f();let c={name:l.fullPath},d=R(i,e.host,e._protocol),p=e.maxUploadRetryTime,_=new K(d,"POST",Q(e,r),p);return _.urlParams=c,_.headers=o,_.body=u.uploadData(),_.errorHandler=Z(t),_}class et{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function er(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){X(!1)}return X(!!r&&-1!==(t||["active"]).indexOf(r)),r}let en={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function es(e){switch(e){case"running":case"pausing":case"canceling":return en.RUNNING;case"paused":return en.PAUSED;case"success":return en.SUCCESS;case"canceled":return en.CANCELED;default:return en.ERROR}}class ei{constructor(e,t,r){"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=r?r:void 0):(this.next=e.next,this.error=e.error,this.complete=e.complete)}}function eo(e){return(...t)=>{Promise.resolve().then(()=>e(...t))}}class ea{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=s.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=s.ABORT,e()}),this.xhr_.addEventListener("error",()=>
16{this.errorCode_=s.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,s){if(this.sent_)throw v("cannot .send() more than once");if((0,o.zJ)(e)&&r&&(this.xhr_.withCredentials=!0),this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==s)for(let e in s)s.hasOwnProperty(e)&&this.xhr_.setRequestHeader(e,s[e].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw v("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw v("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return -1}}getResponse(){if(!this.sent_)throw v("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw v("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}class el extends ea{initXhr(){this.xhr_.responseType="text"}}function eh(){return new el}class eu extends null{initXhr(){this.xhr_.responseType="arraybuffer"}}class ec extends null{initXhr(){this.xhr_.responseType="blob"}}class ed{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=q(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(n.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{let t=this.isExponentialBackoffExpired();if(I(e.status,[]))if(t)e=p();else{this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,this.completeTransitions_();return}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(n.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let e=this._transferred;return t=>this._updateProgress(e+t)}_shouldDoResumable(e){return e.size()>262144}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(e){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([t,r])=>{switch(this._state){case"running":e(t,r);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{let r=function(e,t,r,n,s){let i=t.bucketOnlyServerUrl(),o=Y(t,n,s),a={name:o.fullPath},l=R(i,e.host,e._protocol),h={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${n.size()}`,"X-Goog-Upload-Header-Content-Type":o.contentType,"Content-Type":"application/json; charset=utf-8"},u=W(o,r),c=new K(l,"POST",function(e){let t;er(e);try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){X(!1)}return X(C(t)),t},e.maxUploadRetryTime);return c.urlParams=a,c.headers=h,c.body=u,c.errorHandler=Z(t),c}(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),n=this._ref.storage._makeRequest(r,eh,e,t);this._request=n,n.getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let e=this._uploadUrl;this._resolveToken((t,r)=>{let n=function(e,t,r,n){let s=new K(r,"POST",function(e){let t=er(e,["active","final"]),r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){X(!1)}r||X(!1);let s=Number(r);return X(!isNaN(s)),new et(s,n.size(),"final"===t)},e.maxUploadRetryTime);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=Z(t),s}(this._ref.storage,this._ref._location,e,this._blob),s=this._ref.storage._makeRequest
16(n,eh,t,r);this._request=s,s.getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let e=262144*this._chunkMultiplier,t=new et(this._transferred,this._blob.size()),r=this._uploadUrl;this._resolveToken((s,i)=>{let o;try{o=function(e,t,r,s,i,o,a,l){let h=new et(0,0);if(a?(h.current=a.current,h.total=a.total):(h.current=0,h.total=s.size()),s.size()!==h.total)throw new u(n.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");let c=h.total-h.current,d=c;i>0&&(d=Math.min(d,i));let p=h.current,_=p+d,g="",m={"X-Goog-Upload-Command":0===d?"finalize":c===d?"upload, finalize":"upload","X-Goog-Upload-Offset":`${h.current}`},b=s.slice(p,_);if(null===b)throw f();let v=new K(r,"POST",function(e,r){let n,i=er(e,["active","final"]),a=h.current+d,l=s.size();return n="final"===i?Q(t,o)(e,r):null,new et(a,l,"final"===i,n)},t.maxUploadRetryTime);return v.headers=m,v.body=b.uploadData(),v.progressCallback=l||null,v.errorHandler=Z(e),v}(this._ref._location,this._ref.storage,r,this._blob,e,this._mappings,t,this._makeProgressCallback())}catch(e){this._error=e,this._transition("error");return}let a=this._ref.storage._makeRequest(o,eh,s,i,!1);this._request=a,a.getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<0x2000000&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{let r=function(e,t,r){let n=R(t.fullServerUrl(),e.host,e._protocol),s=e.maxOperationRetryTime,i=new K(n,"GET",Q(e,r),s);return i.errorHandler=J(t),i}(this._ref.storage,this._ref._location,this._mappings),n=this._ref.storage._makeRequest(r,eh,e,t);this._request=n,n.getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{let r=ee(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),n=this._ref.storage._makeRequest(r,eh,e,t);this._request=n,n.getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){let t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":let t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":case"error":case"success":this._state=e,this._notifyObservers();break;case"canceled":this._error=_(),this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){let e=es(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,n){let s=new ei(t||void 0,r||void 0,n||void 0);return this._addObserver(s),()=>{this._removeObserver(s)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){let t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(es(this._state)){case en.SUCCESS:eo(this._resolve.bind(null,this.snapshot))();break;case en.CANCELED:case en.ERROR:eo(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(es(this._state)){case en.RUNNING:case en.PAUSED:e.next&&eo(e.next.bind(e,this.snapshot))();break;case en.SUCCESS:e.complete&&eo(e.complete.bind(e))();break;case en.CANCELED:case en.ERROR:default:e.error&&eo(e.error.bind(e,this._error))()}}resume(){let e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){let e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){let e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class ep{constructor(e,t){this._service=e,t instanceof y?this._location=t:this._location=y.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new ep(e,t)}get root(){let e=new y(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return F(this._location.path)}get storage(){return this._service}get parent(){let e=function(e){if(0===e.length)return null;let t=e.lastIndexOf("/");return -1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;let t=new y(this._location.bucket,e);return new ep(this._service,t)}_throwIfRoot(e){if(""===this._location.path)throw new u(n.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}}function e_(e,t){let r=null==t?void 0:t[h];return null==r?null:y.makeFromBucketSpec(r,e)}class ef{constructor(e,t,r,n,s,i=!1){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=n,this._firebaseVersion=s,this._isUsingEmulator=i,this._bucket=null,this._host=l,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,null!=n?this._bucket=y.makeFromBucketSpec(n,this._host):this._bucket=e_(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=y.makeFromBucketSpec(this._url,e):this._bucket=e_(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}
16set maxUploadRetryTime(e){A("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){A("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;let e=this._authProvider.getImmediate({optional:!0});if(e){let t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){if((0,i.xZ)(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=this._appCheckProvider.getImmediate({optional:!0});return e?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new ep(this,e)}_makeRequest(e,t,r,n,s=!0){if(this._deleted)return new E(m());{let i=function(e,t,r,n,s,i,o=!0,a=!1){let l=O(e.urlParams),h=e.url+l,u=Object.assign({},e.headers);return t&&(u["X-Firebase-GMPID"]=t),null!==r&&r.length>0&&(u.Authorization="Firebase "+r),u["X-Firebase-Storage-Version"]="webjs/"+(null!=i?i:"AppManager"),null!==n&&(u["X-Firebase-AppCheck"]=n),new S(h,e.method,u,e.body,e.successCodes,e.additionalRetryCodes,e.handler,e.errorHandler,e.timeout,e.progressCallback,s,o,a)}(e,this._appId,r,n,t,this._firebaseVersion,s,this._isUsingEmulator);return this._requests.add(i),i.getPromise().then(()=>this._requests.delete(i),()=>this._requests.delete(i)),i}}async makeRequestWithTokens(e,t){let[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let eg="@firebase/storage",em="0.13.14",eb="storage";function ev(e,t,r){var n;return(n=e=(0,o.Ku)(e))._throwIfRoot("uploadBytesResumable"),new ed(n,new B(t),r)}function ey(e){return function(e){e._throwIfRoot("getDownloadURL");let t=function(e,t,r){let n=R(t.fullServerUrl(),e.host,e._protocol),s=new K(n,"GET",function(t,n){let s=j(e,n,r);return X(null!==s),function(e,t,r,n){let s=M(t);if(null===s||!C(s.downloadTokens))return null;let i=s.downloadTokens;if(0===i.length)return null;let o=encodeURIComponent;return i.split(",").map(t=>{let s=e.bucket,i=e.fullPath;return R("/b/"+o(s)+"/o/"+o(i),r,n)+O({alt:"media",token:t})})[0]}(s,n,e.host,e._protocol)},e.maxOperationRetryTime);return s.errorHandler=J(t),s}(e.storage,e._location,q());return e.storage.makeRequestWithTokens(t,eh).then(e=>{if(null===e)throw new u(n.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}(e=(0,o.Ku)(e))}function eE(e){return function(e){e._throwIfRoot("deleteObject");let t=function(e,t){let r=R(t.fullServerUrl(),e.host,e._protocol),n=new K(r,"DELETE",function(e,t){},e.maxOperationRetryTime);return n.successCodes=[200,204],n.errorHandler=J(t),n}(e.storage,e._location);return e.storage.makeRequestWithTokens(t,eh)}(e=(0,o.Ku)(e))}function eC(e,t){var r=e=(0,o.Ku)(e);if(!(t&&/^[A-Za-z]+:\/\//.test(t)))return function e(t,r){if(t instanceof ef){if(null==t._bucket)throw new u(n.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+h+"' property when initializing the app?");let s=new ep(t,t._bucket);return null!=r?e(s,r):s}if(void 0!==r){var s=t,i=r;let e=function(e,t){let r=t.split("/").filter(e=>e.length>0).join("/");return 0===e.length?r:e+"/"+r}(s._location.path,i),n=new y(s._location.bucket,e);return new ep(s.storage,n)}return t}(r,t);if(r instanceof ef)return new ep(r,t);throw g("To use ref(service, url), the first argument must be a Storage instance.")}function eT(e=(0,i.Sx)(),t){e=(0,o.Ku)(e);let r=(0,i.j6)(e,eb).getImmediate({identifier:t}),n=(0,o.yU)("storage");return n&&function(e,t,r,n={}){!function(e,t,r,n={}){e.host=`${t}:${r}`;let s=(0,o.zJ)(t);s&&((0,o.gE)(`https://${e.host}/b`),(0,o.P1)("Storage",!0)),e._isUsingEmulator=!0,e._protocol=s?"https":"http";let{mockUserToken:i}=n;i&&(e._overrideAuthToken="string"==typeof i?i:(0,o.Fy)(i,e.app.options.projectId))}(e,t,r,n)}(r,...n),r}(0,i.om)(new a.uA(eb,function(e,{instanceIdentifier:t}){let r=e.getProvider("app").getImmediate();return new ef(r,e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t,i.MF)},"PUBLIC").setMultipleInstances(!0)),(0,i.KO)(eg,em,""),(0,i.KO)(eg,em,"esm2017")},95554:(e,t,r)=>{r.d(t,{$2:()=>n.g,AN:()=>n.a,B8:()=>n.ar,Bm:()=>n.f,CI:()=>n.D,Ct:()=>n.S,Dt:()=>n.Z,F0:()=>n.b,Gt:()=>n.i,HF:()=>n.Y,IX:()=>n.W,J1:()=>n.a6,JN:()=>n.aj,Kz:()=>n.E,LD:()=>n._,MN:()=>n.ad,NA:()=>n.u,NI:()=>n.q,Nu:()=>n.K,OS:()=>n.a3,Oe:()=>n.P,Oj:()=>n.w,Oy:()=>n.H,Pj:()=>n.ae,Q4:()=>n.k,Qe:()=>n.v,R4:()=>n.a7,RE:()=>n.aa,RM:()=>n.Q,S5:()=>n.O,Uy:()=>n.r,VJ:()=>n.F,VO:()=>n.au,W3:()=>n.C,Wm:()=>n.ag,Wq:()=>n.L,Ww:()=>n.am,YJ:()=>n.U,aJ:()=>n.M,dC:()=>n.h,df:()=>n.d,eG:()=>n.B,eJ:()=>n.ab,eN:()=>n.a2,eQ:()=>n.n,f3:()=>n.an,g0:()=>n.ai,gA:()=>n.ah,gz:()=>n.V,hG:()=>n.G,hK:()=>n.af,hg:()=>n.z,hk:()=>n.m,iM:()=>n.c,iZ:()=>n.x,ik:()=>n.s,kT:()=>n.R,kZ:()=>n.a4,l3:()=>n.y,mm:()=>n.I,mq:()=>n.ak,n6:()=>n.A,nC:()=>n.J,ny:()=>n.a0,oM:()=>n.t,oj:()=>n.o,p:()=>n.a5,p7:()=>n.T,p9:()=>n.ao,r7:()=>n.al,rG:()=>n.$,sB:()=>n.a9,sk:()=>n.X,sv:()=>n.a8,uL:()=>n.l,um:()=>n.N,vZ:()=>n.at,x8:()=>n.e,x9:()=>n.ac,xI:()=>n.p,y1:()=>n.aq,yQ:()=>n.as,yx:()=>n.ap,zK:()=>n.a1,zT:()=>n.j});var n=r(52174);r(46235),r(49887),r(10796),r(56391)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.