!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)}(this,function(Di,Mi){"use strict";try{!function(){function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=e(Di);const t={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var i=e?this.byteToCharMapWebSafe_:this.byteToCharMap_;const s=[];for(let n=0;n>6,t=63&l;u||(t=64,a||(e=64)),s.push(i[o>>2],i[(3&o)<<4|c>>4],i[e],i[t])}return s.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(function(n){const r=[];let i=0;for(let t=0;t>6|192:(55296==(64512&e)&&t+1>18|240,r[i++]=e>>12&63|128):r[i++]=e>>12|224,r[i++]=e>>6&63|128),r[i++]=63&e|128)}return r}(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n>10)),t[r++]=String.fromCharCode(56320+(1023&s))):(i=e[n++],s=e[n++],t[r++]=String.fromCharCode((15&o)<<12|(63&i)<<6|63&s))}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(t,e){this.init_();var n=e?this.charToByteMapWebSafe_:this.charToByteMap_;const r=[];for(let e=0;e>4),64!==o&&(r.push(s<<4&240|o>>2),64!==a&&r.push(o<<6&192|a))}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const s=function(e){try{return t.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};const n=()=>function(){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.")}().__FIREBASE_DEFAULTS__,r=()=>{if("undefined"!=typeof process&&void 0!==process.env){var e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0}},o=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&s(e[1]);return t&&JSON.parse(t)}},a=()=>{try{return n()||r()||o()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}};var u,l;function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function h(){var e=null===(e=a())||void 0===e?void 0:e.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function p(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function f(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function m(){const e=d();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function g(){try{return"object"==typeof indexedDB}catch(e){return!1}}class v extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,v.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,y.prototype.create)}}class y{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},t=`${this.service}/${e}`,e=this.errors[e],e=e?(r=n,e.replace(_,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",e=`${this.serviceName}: ${e} (${t}).`;return new v(t,e,n)}}const _=/\{\$([^}]+)}/g;function I(e){const t=[];for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach(e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""}function w(e){const n={},t=e.replace(/^\?/,"").split("&");return t.forEach(e=>{var t;e&&([t,e]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(e))}),n}function T(e){var t=e.indexOf("?");if(!t)return"";var n=e.indexOf("#",t);return e.substring(t,0{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,n){let r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=function(e,t){if("object"!=typeof e||null===e)return!1;for(const n of t)if(n in e&&"function"==typeof e[n])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=E),void 0===r.error&&(r.error=E),void 0===r.complete&&(r.complete=E);n=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}}),this.observers.push(r),n}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(t){if(!this.finalized)for(let e=0;e{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 E(){}function k(e){return e&&e._delegate?e._delegate:e}(l=u=u||{})[l.DEBUG=0]="DEBUG",l[l.VERBOSE=1]="VERBOSE",l[l.INFO=2]="INFO",l[l.WARN=3]="WARN",l[l.ERROR=4]="ERROR",l[l.SILENT=5]="SILENT";const S={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},R=u.INFO,A={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},P=(e,t,...n)=>{if(!(to[0]&&t[1]{let e={},t={};a&&("GET"===s?t=a:e={body:JSON.stringify(a)});var n=I(Object.assign({key:i.config.apiKey},t)).slice(1);const r=await i._getAdditionalHeaders();return r["Content-Type"]="application/json",i.languageCode&&(r["X-Firebase-Locale"]=i.languageCode),te.fetch()(ce(i,i.config.apiHost,o,n),Object.assign({method:s,headers:r,referrerPolicy:"no-referrer"},e))})}async function oe(t,e,n){t._canInitEmulator=!1;e=Object.assign(Object.assign({},ne),e);try{const s=new ue(t),o=await Promise.race([n(),s.promise]);s.clearNetworkTimeout();var r=await o.json();if("needConfirmation"in r)throw le(t,"account-exists-with-different-credential",r);if(o.ok&&!("errorMessage"in r))return r;{const a=o.ok?r.errorMessage:r.error.message,[c,u]=a.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===c)throw le(t,"credential-already-in-use",r);if("EMAIL_EXISTS"===c)throw le(t,"email-already-in-use",r);if("USER_DISABLED"===c)throw le(t,"user-disabled",r);var i=e[c]||c.toLowerCase().replace(/[_\s]+/g,"-");if(u)throw z(t,i,u);W(t,i)}}catch(e){if(e instanceof v)throw e;W(t,"network-request-failed",{message:String(e)})}}async function ae(e,t,n,r,i={}){i=await se(e,t,n,r,i);return"mfaPendingCredential"in i&&W(e,"multi-factor-auth-required",{_serverResponse:i}),i}function ce(e,t,n,r){r=`${t}${n}?${r}`;return e.config.emulator?ee(e.config,r):`${e.config.apiScheme}://${r}`}class ue{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(q(this.auth,"network-request-failed")),re.get())})}clearNetworkTimeout(){clearTimeout(this.timer)}}function le(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=q(e,t,r);return i.customData._tokenResponse=n,i}function de(e){return void 0!==e&&void 0!==e.getResponse}function he(e){return void 0!==e&&void 0!==e.enterprise}class pe{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(const t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return function(e){switch(e){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}(t.enforcementState);return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}}function fe(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function me(e){return 1e3*Number(e)}function ge(e){var[t,n,e]=e.split(".");if(void 0===t||void 0===n||void 0===e)return H("JWT malformed, contained fewer than 3 sections"),null;try{var r=s(n);return r?JSON.parse(r):(H("Failed to decode base64 JWT payload"),null)}catch(e){return H("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}async function ve(t,n,e=!1){if(e)return n;try{return n}catch(e){throw e instanceof v&&(n=[e["code"]][0],"auth/user-disabled"===n||"auth/user-token-expired"===n)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}class ye{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){if(e){var t=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t}this.errorBackoff=3e4;t=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,t)}schedule(e=!1){this.isRunning&&(e=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},e))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class _e{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=fe(this.lastLoginAt),this.creationTime=fe(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Ie(e){var t=e.auth,n=await e.getIdToken(),r=await ve(e,async function(e,t){return se(e,"POST","/v1/accounts:lookup",t)}(t,{idToken:n}));K(null==r?void 0:r.users.length,t,"internal-error");var i=r.users[0];e._notifyReloadListener(i);t=null!==(n=i.providerUserInfo)&&void 0!==n&&n.length?i.providerUserInfo.map(e=>{var t=e["providerId"],e=O(e,["providerId"]);return{providerId:t,uid:e.rawId||"",displayName:e.displayName||null,email:e.email||null,phoneNumber:e.phoneNumber||null,photoURL:e.photoUrl||null}}):[],r=function(e,n){e=e.filter(t=>!n.some(e=>e.providerId===t.providerId));return[...e,...n]}(e.providerData,t),n=e.isAnonymous,t=!(e.email&&i.passwordHash||null!=r&&r.length),t=!!n&&t,t={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:r,metadata:new _e(i.createdAt,i.lastLoginAt),isAnonymous:t};Object.assign(e,t)}class we{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){K(e.idToken,"internal-error"),K(void 0!==e.idToken,"internal-error"),K(void 0!==e.refreshToken,"internal-error");var t,t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):(K(t=ge(t=e.idToken),"internal-error"),K(void 0!==t.exp,"internal-error"),K(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat));this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}async getToken(e,t=!1){return K(!this.accessToken||this.refreshToken,e,"user-token-expired"),t||!this.accessToken||this.isExpired?this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){var i,s,{accessToken:t,refreshToken:e,expiresIn:n}=(s=t,await{accessToken:(n=await oe(i=e,{},async()=>{var e=I({grant_type:"refresh_token",refresh_token:s}).slice(1),{tokenApiHost:t,apiKey:n}=i.config,n=ce(i,t,"/v1/token",`key=${n}`);const r=await i._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",te.fetch()(n,{method:"POST",headers:r,body:e})})).access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token});this.updateTokensAndExpiration(t,e,Number(n))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){var{refreshToken:n,accessToken:r,expirationTime:t}=t;const i=new we;return n&&(K("string"==typeof n,"internal-error",{appName:e}),i.refreshToken=n),r&&(K("string"==typeof r,"internal-error",{appName:e}),i.accessToken=r),t&&(K("number"==typeof t,"internal-error",{appName:e}),i.expirationTime=t),i}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new we,this.toJSON())}_performRefresh(){return $("not implemented")}}function Te(e,t){K("string"==typeof e||void 0===e,"internal-error",{appName:t})}class be{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,e=O(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new ye(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=e.displayName||null,this.email=e.email||null,this.emailVerified=e.emailVerified||!1,this.phoneNumber=e.phoneNumber||null,this.photoURL=e.photoURL||null,this.isAnonymous=e.isAnonymous||!1,this.tenantId=e.tenantId||null,this.providerData=e.providerData?[...e.providerData]:[],this.metadata=new _e(e.createdAt||void 0,e.lastLoginAt||void 0)}async getIdToken(e){e=await ve(this,this.stsTokenManager.getToken(this.auth,e));return K(e,this.auth,"internal-error"),this.accessToken!==e&&(this.accessToken=e,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),e}getIdTokenResult(e){return async function(e,t=!1){const n=k(e);var r=await n.getIdToken(t),i=ge(r);return K(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error"),e="object"==typeof i.firebase?i.firebase:void 0,t=null==e?void 0:e.sign_in_provider,{claims:i,token:r,authTime:fe(me(i.auth_time)),issuedAtTime:fe(me(i.iat)),expirationTime:fe(me(i.exp)),signInProvider:t||null,signInSecondFactor:(null==e?void 0:e.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=k(e);await Ie(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(K(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new be(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){K(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await Ie(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e=await this.getIdToken();return await ve(this,async function(e,t){return se(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var n=null!==(u=t.displayName)&&void 0!==u?u:void 0,r=null!==(o=t.email)&&void 0!==o?o:void 0,i=null!==(c=t.phoneNumber)&&void 0!==c?c:void 0,s=null!==(a=t.photoURL)&&void 0!==a?a:void 0,o=null!==(u=t.tenantId)&&void 0!==u?u:void 0,a=null!==(c=t._redirectEventId)&&void 0!==c?c:void 0,c=null!==(u=t.createdAt)&&void 0!==u?u:void 0,u=null!==(u=t.lastLoginAt)&&void 0!==u?u:void 0;const{uid:l,emailVerified:d,isAnonymous:h,providerData:p,stsTokenManager:f}=t;K(l&&f,e,"internal-error");t=we.fromJSON(this.name,f);K("string"==typeof l,e,"internal-error"),Te(n,e.name),Te(r,e.name),K("boolean"==typeof d,e,"internal-error"),K("boolean"==typeof h,e,"internal-error"),Te(i,e.name),Te(s,e.name),Te(o,e.name),Te(a,e.name),Te(c,e.name),Te(u,e.name);const m=new be({uid:l,auth:e,email:r,emailVerified:d,displayName:n,isAnonymous:h,photoURL:s,phoneNumber:i,tenantId:o,stsTokenManager:t,createdAt:c,lastLoginAt:u});return p&&Array.isArray(p)&&(m.providerData=p.map(e=>Object.assign({},e))),a&&(m._redirectEventId=a),m}static async _fromIdTokenResponse(e,t,n=!1){const r=new we;r.updateFromServerResponse(t);n=new be({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await Ie(n),n}}const Ee=new Map;function ke(e){J(e instanceof Function,"Expected a class definition");let t=Ee.get(e);return t?J(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,Ee.set(e,t)),t}class Se{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){e=this.storage[e];return void 0===e?null:e}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}Se.type="NONE";const Re=Se;function Ae(e,t,n){return`firebase:${e}:${t}:${n}`}class Pe{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;var{config:e,name:n}=this.auth;this.fullUserKey=Ae(this.userKey,e.apiKey,n),this.fullPersistenceKey=Ae("persistence",e.apiKey,n),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e=await this.persistence._get(this.fullUserKey);return e?be._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence!==e){var t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,n="authUser"){if(!t.length)return new Pe(ke(Re),e,n);const r=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let i=r[0]||ke(Re);const s=Ae(n,e.config.apiKey,e.name);let o=null;for(const l of t)try{var a=await l._get(s);if(a){var c=be._fromJSON(e,a);l!==i&&(o=c),i=l;break}}catch(e){}var u=r.filter(e=>e._shouldAllowMigration);return i._shouldAllowMigration&&u.length&&(i=u[0],o&&await i._set(s,o.toJSON()),await Promise.all(t.map(async e=>{if(e!==i)try{await e._remove(s)}catch(e){}}))),new Pe(i,e,n)}}function Oe(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(De(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(Ce(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(Ue(t))return"Blackberry";if(Fe(t))return"Webos";if(Ne(t))return"Safari";if((t.includes("chrome/")||Le(t))&&!t.includes("edge/"))return"Chrome";if(Me(t))return"Android";e=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);return 2===(null==e?void 0:e.length)?e[1]:"Other"}function Ce(e=d()){return/firefox\//i.test(e)}function Ne(e=d()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function Le(e=d()){return/crios\//i.test(e)}function De(e=d()){return/iemobile/i.test(e)}function Me(e=d()){return/android/i.test(e)}function Ue(e=d()){return/blackberry/i.test(e)}function Fe(e=d()){return/webos/i.test(e)}function Ve(e=d()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function xe(e=d()){return Ve(e)||Me(e)||Fe(e)||Ue(e)||/windows phone/i.test(e)||De(e)}function je(e,t=[]){let n;switch(e){case"Browser":n=Oe(d());break;case"Worker":n=`${Oe(d())}-${e}`;break;default:n=e}t=t.length?t.join(","):"FirebaseCore-web";return`${n}/JsCore/${Mi.SDK_VERSION}/${t}`}class He{constructor(e){this.auth=e,this.queue=[]}pushCallback(r,e){var t=n=>new Promise((e,t)=>{try{e(r(n))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);const n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const r of t)try{r()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}}class We{constructor(e){var t,n=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(t=n.minPasswordLength)&&void 0!==t?t:6,n.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=n.maxPasswordLength),void 0!==n.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=n.containsLowercaseCharacter),void 0!==n.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=n.containsUppercaseCharacter),void 0!==n.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=n.containsNumericCharacter),void 0!==n.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=n.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(n=null===(n=e.allowedNonAlphanumericCharacters)||void 0===n?void 0:n.join(""))&&void 0!==n?n:"",this.forceUpgradeOnSignin=null!==(n=e.forceUpgradeOnSignin)&&void 0!==n&&n,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,n,r;const i={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,i),this.validatePasswordCharacterOptions(e,i),i.isValid&&(i.isValid=null===(t=i.meetsMinPasswordLength)||void 0===t||t),i.isValid&&(i.isValid=null===(t=i.meetsMaxPasswordLength)||void 0===t||t),i.isValid&&(i.isValid=null===(n=i.containsLowercaseLetter)||void 0===n||n),i.isValid&&(i.isValid=null===(n=i.containsUppercaseLetter)||void 0===n||n),i.isValid&&(i.isValid=null===(r=i.containsNumericCharacter)||void 0===r||r),i.isValid&&(i.isValid=null===(r=i.containsNonAlphanumericCharacter)||void 0===r||r),i}validatePasswordLengthOptions(e,t){var n=this.customStrengthOptions.minPasswordLength,r=this.customStrengthOptions.maxPasswordLength;n&&(t.meetsMinPasswordLength=e.length>=n),r&&(t.meetsMaxPasswordLength=e.length<=r)}validatePasswordCharacterOptions(t,n){var r;this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);for(let e=0;e{var e;if(!this._deleted&&(this.persistenceManager=await Pe.create(this,t),!this._deleted)){if(null!==(e=this._popupRedirectResolver)&&void 0!==e&&e._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(n),this.lastNotifiedUid=(null===(e=this.currentUser)||void 0===e?void 0:e.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(!this._deleted){var e=await this.assertedPersistence.getCurrentUser();if(this.currentUser||e)return this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0)}}async initializeCurrentUser(e){var t,n,r=await this.assertedPersistence.getCurrentUser();let i=r,s=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId,n=null===i||void 0===i?void 0:i._redirectEventId,e=await this.tryRedirectSignIn(e),t&&t!==n||null==e||!e.user||(i=e.user,s=!0)),!i)return this.directlySetCurrentUser(null);if(i._redirectEventId)return K(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i);if(s)try{await this.beforeStateQueue.runMiddleware(i)}catch(e){i=r,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Ie(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;var e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){const t=e?k(e):null;return t&&K(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&K(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0)}setPersistence(e){return this.queue(async()=>{await this.assertedPersistence.setPersistence(ke(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e=await se(e=this,"GET","/v2/passwordPolicy",ie(e,{})),e=new We(e);null===this.tenantId?this._projectPasswordPolicy=e:this._tenantPasswordPolicies[this.tenantId]=e}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new y("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{const n=this.onAuthStateChanged(()=>{n(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){const n={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(n.tenantId=this.tenantId),t=this,e=n,await se(t,"POST","/v2/accounts:revokeToken",ie(t,e))}var t}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){return this.redirectPersistenceManager||(K(e=e&&ke(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Pe.create(this,[ke(e._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){var t;return this._isInitialized&&await this.queue(async()=>{}),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=null!==(e=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==e?e:null,this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser)))}registerStateListener(e,t,n,r){if(this._deleted)return()=>{};const i="function"==typeof t?t:t.next.bind(t);let s=!1;const o=this._isInitialized?Promise.resolve():this._initializationPromise;if(K(o,this,"internal-error"),o.then(()=>{s||i(this.currentUser)}),"function"==typeof t){const a=e.addObserver(t,n,r);return()=>{s=!0,a()}}{const c=e.addObserver(t);return()=>{s=!0,c()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return K(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=je(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);var t=await(null===(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getHeartbeatsHeader());t&&(e["X-Firebase-Client"]=t);t=await this._getAppCheckToken();return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,n=await(null===(t=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getToken());return null!=n&&n.error&&(e=`Error while retrieving App Check token: ${n.error}`,t=[],j.logLevel<=u.WARN&&j.warn(`Auth (${Mi.SDK_VERSION}): ${e}`,...t)),null==n?void 0:n.token}}function ze(e){return k(e)}class Be{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e,t){const n=new b(e,t);return n.subscribe.bind(n)}(e=>this.observer=e)}get next(){return K(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let Ge={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Ke(e){return Ge.loadJS(e)}function $e(e){return`__${e}${Math.floor(1e6*Math.random())}`}class Je{constructor(e){this.type="recaptcha-enterprise",this.auth=ze(e)}async verify(i="verify",e=!1){async function t(r){if(!e){if(null==r.tenantId&&null!=r._agentRecaptchaConfig)return r._agentRecaptchaConfig.siteKey;if(null!=r.tenantId&&void 0!==r._tenantRecaptchaConfigs[r.tenantId])return r._tenantRecaptchaConfigs[r.tenantId].siteKey}return new Promise(async(t,n)=>{!async function(e,t){return se(e,"GET","/v2/recaptchaConfig",ie(e,t))}(r,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{if(void 0!==e.recaptchaKey){e=new pe(e);return null==r.tenantId?r._agentRecaptchaConfig=e:r._tenantRecaptchaConfigs[r.tenantId]=e,t(e.siteKey)}n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})}function s(e,t,n){const r=window.grecaptcha;he(r)?r.enterprise.ready(()=>{r.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t("NO_RECAPTCHA")})}):n(Error("No reCAPTCHA enterprise script loaded."))}return new Promise((n,r)=>{t(this.auth).then(t=>{if(!e&&he(window.grecaptcha))s(t,n,r);else if("undefined"!=typeof window){let e=Ge.recaptchaEnterpriseScript;0!==e.length&&(e+=t),Ke(e).then(()=>{s(t,n,r)}).catch(e=>{r(e)})}else r(new Error("RecaptchaVerifier is only supported in browser"))}).catch(e=>{r(e)})})}}async function Ye(e,t,n,r=!1){const i=new Je(e);let s;try{s=await i.verify(n)}catch(e){s=await i.verify(n,!0)}t=Object.assign({},t);return r?Object.assign(t,{captchaResp:s}):Object.assign(t,{captchaResponse:s}),Object.assign(t,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(t,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),t}async function Xe(t,n,r,i){if(null!==(e=t._getRecaptchaConfig())&&void 0!==e&&e.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){var e=await Ye(t,n,r,"getOobCode"===r);return i(t,e)}return i(t,n).catch(async e=>{if("auth/missing-recaptcha-token"!==e.code)return Promise.reject(e);console.log(`${r} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);e=await Ye(t,n,r,"getOobCode"===r);return i(t,e)})}function Qe(e,t,n){const r=ze(e);K(r._canInitEmulator,r,"emulator-config-failed"),K(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");e=!(null==n||!n.disableWarnings);const i=Ze(t);var{host:n,port:t}=function(e){const t=Ze(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);{if(i){var s=i[1];return{host:s,port:et(r.substr(s.length+1))}}var[e,s]=r.split(":");return{host:e,port:et(s)}}}(t);r.config.emulator={url:`${i}//${n}${null===t?"":`:${t}`}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:n,port:t,protocol:i.replace(":",""),options:Object.freeze({disableWarnings:e})}),e||function(){function e(){const e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}function Ze(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function et(e){if(!e)return null;e=Number(e);return isNaN(e)?null:e}class tt{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return $("not implemented")}_getIdTokenResponse(e){return $("not implemented")}_linkToIdToken(e,t){return $("not implemented")}_getReauthenticationResolver(e){return $("not implemented")}}async function nt(e,t){return se(e,"POST","/v1/accounts:resetPassword",ie(e,t))}async function rt(e,t){return se(e,"POST","/v1/accounts:signUp",t)}async function it(e,t){return ae(e,"POST","/v1/accounts:signInWithPassword",ie(e,t))}async function st(e,t){return se(e,"POST","/v1/accounts:sendOobCode",ie(e,t))}async function ot(e,t){return st(e,t)}async function at(e,t){return st(e,t)}class ct extends tt{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new ct(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new ct(e,t,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){e="string"==typeof e?JSON.parse(e):e;if(null!=e&&e.email&&null!=e&&e.password){if("password"===e.signInMethod)return this._fromEmailAndPassword(e.email,e.password);if("emailLink"===e.signInMethod)return this._fromEmailAndCode(e.email,e.password,e.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return Xe(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",it);case"emailLink":return async function(e,t){return ae(e,"POST","/v1/accounts:signInWithEmailLink",ie(e,t))}(e,{email:this._email,oobCode:this._password});default:W(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return Xe(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",rt);case"emailLink":return async function(e,t){return ae(e,"POST","/v1/accounts:signInWithEmailLink",ie(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:W(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function ut(e,t){return ae(e,"POST","/v1/accounts:signInWithIdp",ie(e,t))}class lt extends tt{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new lt(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):W("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:e}=t,t=O(t,["providerId","signInMethod"]);if(!n||!e)return null;const r=new lt(n,e);return r.idToken=t.idToken||void 0,r.accessToken=t.accessToken||void 0,r.secret=t.secret,r.nonce=t.nonce,r.pendingToken=t.pendingToken||null,r}_getIdTokenResponse(e){return ut(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,ut(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,ut(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=I(t)}return e}}const dt={USER_NOT_FOUND:"user-not-found"};class ht extends tt{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new ht({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new ht({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return ae(e,"POST","/v1/accounts:signInWithPhoneNumber",ie(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){if((t=await ae(e,"POST","/v1/accounts:signInWithPhoneNumber",ie(e,t))).temporaryProof)throw le(e,"account-exists-with-different-credential",t);return t}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return ae(e,"POST","/v1/accounts:signInWithPhoneNumber",ie(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),dt)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:n,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:n,code:r}}toJSON(){const e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:e}=e="string"==typeof e?JSON.parse(e):e;return n||t||r||e?new ht({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:e}):null}}class pt{constructor(e){var t=w(T(e)),n=null!==(r=t.apiKey)&&void 0!==r?r:null,r=null!==(e=t.oobCode)&&void 0!==e?e:null,e=function(e){switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(e=t.mode)&&void 0!==e?e:null);K(n&&r&&e,"argument-error"),this.apiKey=n,this.operation=e,this.code=r,this.continueUrl=null!==(r=t.continueUrl)&&void 0!==r?r:null,this.languageCode=null!==(r=t.languageCode)&&void 0!==r?r:null,this.tenantId=null!==(t=t.tenantId)&&void 0!==t?t:null}static parseLink(e){var t,n,r,t=(n=w(T(t=e)).link,r=n?w(T(n)).deep_link_id:null,((e=w(T(t)).deep_link_id)?w(T(e)).link:null)||e||r||n||t);try{return new pt(t)}catch(e){return null}}}class ft{constructor(){this.providerId=ft.PROVIDER_ID}static credential(e,t){return ct._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){t=pt.parseLink(t);return K(t,"argument-error"),ct._fromEmailAndCode(e,t.code,t.tenantId)}}ft.PROVIDER_ID="password",ft.EMAIL_PASSWORD_SIGN_IN_METHOD="password",ft.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class mt{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class gt extends mt{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class vt extends gt{static credentialFromJSON(e){e="string"==typeof e?JSON.parse(e):e;return K("providerId"in e&&"signInMethod"in e,"argument-error"),lt._fromParams(e)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return K(e.idToken||e.accessToken,"argument-error"),lt._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return vt.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return vt.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:n,oauthTokenSecret:r,pendingToken:i,nonce:s,providerId:e}=e;if(!(n||r||t||i))return null;if(!e)return null;try{return new vt(e)._credential({idToken:t,accessToken:n,nonce:s,pendingToken:i})}catch(e){return null}}}class yt extends gt{constructor(){super("facebook.com")}static credential(e){return lt._fromParams({providerId:yt.PROVIDER_ID,signInMethod:yt.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return yt.credentialFromTaggedObject(e)}static credentialFromError(e){return yt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return yt.credential(e.oauthAccessToken)}catch(e){return null}}}yt.FACEBOOK_SIGN_IN_METHOD="facebook.com",yt.PROVIDER_ID="facebook.com";class _t extends gt{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return lt._fromParams({providerId:_t.PROVIDER_ID,signInMethod:_t.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return _t.credentialFromTaggedObject(e)}static credentialFromError(e){return _t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:e}=e;if(!t&&!e)return null;try{return _t.credential(t,e)}catch(e){return null}}}_t.GOOGLE_SIGN_IN_METHOD="google.com",_t.PROVIDER_ID="google.com";class It extends gt{constructor(){super("github.com")}static credential(e){return lt._fromParams({providerId:It.PROVIDER_ID,signInMethod:It.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return It.credentialFromTaggedObject(e)}static credentialFromError(e){return It.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return It.credential(e.oauthAccessToken)}catch(e){return null}}}It.GITHUB_SIGN_IN_METHOD="github.com",It.PROVIDER_ID="github.com";class wt extends tt{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return ut(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,ut(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,ut(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:n,pendingToken:e}="string"==typeof e?JSON.parse(e):e;return t&&n&&e&&t===n?new wt(t,e):null}static _create(e,t){return new wt(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class Tt extends mt{constructor(e){K(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return Tt.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return Tt.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){e=wt.fromJSON(e);return K(e,"argument-error"),e}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:e}=e;if(!t||!e)return null;try{return wt._create(e,t)}catch(e){return null}}}class bt extends gt{constructor(){super("twitter.com")}static credential(e,t){return lt._fromParams({providerId:bt.PROVIDER_ID,signInMethod:bt.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return bt.credentialFromTaggedObject(e)}static credentialFromError(e){return bt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:e}=e;if(!t||!e)return null;try{return bt.credential(t,e)}catch(e){return null}}}async function Et(e,t){return ae(e,"POST","/v1/accounts:signUp",ie(e,t))}bt.TWITTER_SIGN_IN_METHOD="twitter.com",bt.PROVIDER_ID="twitter.com";class kt{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n,r=!1){e=await be._fromIdTokenResponse(e,n,r),r=St(n);return new kt({user:e,providerId:r,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);var r=St(n);return new kt({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function St(e){return e.providerId||("phoneNumber"in e?"phone":null)}class Rt extends v{constructor(e,t,n,r){super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,Rt.prototype),this.customData={appName:e.name,tenantId:null!==(e=e.tenantId)&&void 0!==e?e:void 0,_serverResponse:t.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(e,t,n,r){return new Rt(e,t,n,r)}}function At(t,n,e,r){const i="reauthenticate"===n?e._getReauthenticationResolver(t):e._getIdTokenResponse(t);return i.catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw Rt._fromErrorAndOperation(t,e,n,r);throw e})}function Pt(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Ot(e,t){const n=k(e);await Nt(!0,n,t);var t=(e=n.auth,t={idToken:await n.getIdToken(),deleteProvider:[t]},await se(e,"POST","/v1/accounts:update",t))["providerUserInfo"];const r=Pt(t||[]);return n.providerData=n.providerData.filter(e=>r.has(e.providerId)),r.has("phone")||(n.phoneNumber=null),await n.auth._persistUserIfCurrent(n),n}async function Ct(e,t,n=!1){n=await ve(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return kt._forOperation(e,"link",n)}async function Nt(e,t,n){await Ie(t);const r=Pt(t.providerData);var i=!1===e?"provider-already-linked":"no-such-provider";K(r.has(n)===e,t.auth,i)}async function Lt(e,t,n=!1){var r=e["auth"],i="reauthenticate";try{var s=await ve(e,At(r,i,t,e),n);K(s.idToken,r,"internal-error");var o=ge(s.idToken);K(o,r,"internal-error");var a=o["sub"];return K(e.uid===a,r,"user-mismatch"),kt._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&W(r,"user-mismatch"),e}}async function Dt(e,t,n=!1){t=await At(e,"signIn",t),t=await kt._fromIdTokenResponse(e,"signIn",t);return n||await e._updateCurrentUser(t.user),t}async function Mt(e,t){return Dt(ze(e),t)}async function Ut(e,t){e=k(e);return await Nt(!1,e,t.providerId),Ct(e,t)}async function Ft(e,t){return Lt(k(e),t)}async function Vt(e,t){const n=ze(e);t=await ae(n,"POST","/v1/accounts:signInWithCustomToken",ie(n,{token:t,returnSecureToken:!0})),t=await kt._fromIdTokenResponse(n,"signIn",t);return await n._updateCurrentUser(t.user),t}class xt{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?jt._fromServerResponse(e,t):"totpInfo"in t?Ht._fromServerResponse(e,t):W(e,"internal-error")}}class jt extends xt{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new jt(t)}}class Ht extends xt{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new Ht(t)}}function Wt(e,t,n){var r;K(0<(null===(r=n.url)||void 0===r?void 0:r.length),e,"invalid-continue-uri"),K(void 0===n.dynamicLinkDomain||0"password"===e);i&&(i.displayName=r.displayName,i.photoURL=r.photoURL),await r._updateTokensIfNecessary(n)}}async function Yt(e,t,n){var r=e["auth"];const i={idToken:await e.getIdToken(),returnSecureToken:!0};t&&(i.email=t),n&&(i.password=n);r=await ve(e,async function(e,t){return se(e,"POST","/v1/accounts:update",t)}(r,i));await e._updateTokensIfNecessary(r,!0)}class Xt{constructor(e,t,n={}){this.isNewUser=e,this.providerId=t,this.profile=n}}class Qt extends Xt{constructor(e,t,n,r){super(e,t,n),this.username=r}}class Zt extends Xt{constructor(e,t){super(e,"facebook.com",t)}}class en extends Qt{constructor(e,t){super(e,"github.com",t,"string"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class tn extends Xt{constructor(e,t){super(e,"google.com",t)}}class nn extends Qt{constructor(e,t,n){super(e,"twitter.com",t,n)}}function rn(e){var{user:t,_tokenResponse:e}=e;return t.isAnonymous&&!e?{providerId:null,isNewUser:!1,profile:null}:function(e){if(!e)return null;var t=e["providerId"],n=e.rawUserInfo?JSON.parse(e.rawUserInfo):{},r=e.isNewUser||"identitytoolkit#SignupNewUserResponse"===e.kind;if(!t&&null!=e&&e.idToken){var i=null===(i=null===(i=ge(e.idToken))||void 0===i?void 0:i.firebase)||void 0===i?void 0:i.sign_in_provider;if(i){i="anonymous"!==i&&"custom"!==i?i:null;return new Xt(r,i)}}if(!t)return null;switch(t){case"facebook.com":return new Zt(r,n);case"github.com":return new en(r,n);case"google.com":return new tn(r,n);case"twitter.com":return new nn(r,n,e.screenName||null);case"custom":case"anonymous":return new Xt(r,null);default:return new Xt(r,t,n)}}(e)}class sn{constructor(e,t,n){this.type=e,this.credential=t,this.user=n}static _fromIdtoken(e,t){return new sn("enroll",e,t)}static _fromMfaPendingCredential(e){return new sn("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){var t;if(null!=e&&e.multiFactorSession){if(null!==(t=e.multiFactorSession)&&void 0!==t&&t.pendingCredential)return sn._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null!==(t=e.multiFactorSession)&&void 0!==t&&t.idToken)return sn._fromIdtoken(e.multiFactorSession.idToken)}return null}}class on{constructor(e,t,n){this.session=e,this.hints=t,this.signInResolver=n}static _fromError(e,r){const i=ze(e),s=r.customData._serverResponse;e=(s.mfaInfo||[]).map(e=>xt._fromServerResponse(i,e));K(s.mfaPendingCredential,i,"internal-error");const o=sn._fromMfaPendingCredential(s.mfaPendingCredential);return new on(o,e,async e=>{e=await e._process(i,o);delete s.mfaInfo,delete s.mfaPendingCredential;var t=Object.assign(Object.assign({},s),{idToken:e.idToken,refreshToken:e.refreshToken});switch(r.operationType){case"signIn":var n=await kt._fromIdTokenResponse(i,r.operationType,t);return await i._updateCurrentUser(n.user),n;case"reauthenticate":return K(r.user,i,"internal-error"),kt._forOperation(r.user,r.operationType,t);default:W(i,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}class an{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>xt._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new an(e)}async getSession(){return sn._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){const n=e;e=await this.getSession(),t=await ve(this.user,n._process(this.user.auth,e,t));return await this.user._updateTokensIfNecessary(t),this.user.reload()}async unenroll(e){const t="string"==typeof e?e:e.uid;var n,r,e=await this.user.getIdToken();try{var i=await ve(this.user,(n=this.user.auth,r={idToken:e,mfaEnrollmentId:t},se(n,"POST","/v2/accounts/mfaEnrollment:withdraw",ie(n,r))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(i),await this.user.reload()}catch(e){throw e}}}const cn=new WeakMap;const un="__sak";class ln{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(un,"1"),this.storage.removeItem(un),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){e=this.storage.getItem(e);return Promise.resolve(e?JSON.parse(e):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class dn extends ln{constructor(){var e;super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.safariLocalStorageNotSynced=(Ne(e=d())||Ve(e))&&function(){try{return!(!window||window===window.top)}catch(e){return!1}}(),this.fallbackToPolling=xe(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const r of Object.keys(this.listeners)){var t=this.storage.getItem(r),n=this.localCache[r];t!==n&&e(r,n,t)}}onStorageEvent(e,t=!1){if(e.key){const r=e.key;if(t?this.detachListener():this.stopPolling(),this.safariLocalStorageNotSynced){const i=this.storage.getItem(r);if(e.newValue!==i)null!==e.newValue?this.storage.setItem(r,e.newValue):this.storage.removeItem(r);else if(this.localCache[r]===e.newValue&&!t)return}var n=()=>{var e=this.storage.getItem(r);!t&&this.localCache[r]===e||this.notifyListeners(r,e)};const i=this.storage.getItem(r);m()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,n)=>{this.notifyListeners(e,n)})}notifyListeners(e,t){this.localCache[e]=t;e=this.listeners[e];if(e)for(const n of Array.from(e))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:n}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}dn.type="LOCAL";const hn=dn;class pn extends ln{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}pn.type="SESSION";const fn=pn;class mn{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));if(e)return e;e=new mn(t);return this.receivers.push(e),e}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:r,data:i}=t.data;e=this.handlersMap[r];null!=e&&e.size&&(t.ports[0].postMessage({status:"ack",eventId:n,eventType:r}),e=Array.from(e).map(async e=>e(t.origin,i)),e=await Promise.all(e.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:e}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function gn(e="",t=10){let n="";for(let e=0;e{const i=gn("",20);a.port1.start();const s=setTimeout(()=>{r(new Error("unsupported_event"))},o);u={messageChannel:a,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),c=setTimeout(()=>{r(new Error("timeout"))},3e3);break;case"done":clearTimeout(c),n(t.data.response);break;default:clearTimeout(s),clearTimeout(c),r(new Error("invalid_response"))}}},this.handlers.add(u),a.port1.addEventListener("message",u.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[a.port2])}).finally(()=>{u&&this.removeMessageHandler(u)})}}function yn(){return window}function _n(){return void 0!==yn().WorkerGlobalScope&&"function"==typeof yn().importScripts}const In="firebaseLocalStorageDb",wn="firebaseLocalStorage",Tn="fbase_key";class bn{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function En(e,t){return e.transaction([wn],t?"readwrite":"readonly").objectStore(wn)}function kn(){const r=indexedDB.open(In,1);return new Promise((n,t)=>{r.addEventListener("error",()=>{t(r.error)}),r.addEventListener("upgradeneeded",()=>{const e=r.result;try{e.createObjectStore(wn,{keyPath:Tn})}catch(e){t(e)}}),r.addEventListener("success",async()=>{const e=r.result;var t;e.objectStoreNames.contains(wn)?n(e):(e.close(),t=indexedDB.deleteDatabase(In),await new bn(t).toPromise(),n(await kn()))})})}async function Sn(e,t,n){n=En(e,!0).put({fbase_key:t,value:n});return new bn(n).toPromise()}function Rn(e,t){t=En(e,!0).delete(t);return new bn(t).toPromise()}class An{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await kn(),this.db)}async _withRetries(e){let t=0;for(;;)try{return e(await this._openDb())}catch(e){if(3{const n=await this._poll();return{keyProcessed:n.includes(t.key)}}),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e,t,n;this.activeServiceWorker=await async function(){if(null===navigator||void 0===navigator||!navigator.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),this.activeServiceWorker&&(this.sender=new vn(this.activeServiceWorker),(n=await this.sender._send("ping",{},800))&&null!==(e=n[0])&&void 0!==e&&e.fulfilled&&null!==(t=n[0])&&void 0!==t&&t.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0))}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{if(!indexedDB)return!1;var e=await kn();return await Sn(e,un,"1"),await Rn(e,un),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,n){return this._withPendingWrite(async()=>(await this._withRetries(e=>Sn(e,t,n)),this.localCache[t]=n,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>async function(e,t){return t=En(e,!1).get(t),void 0===(t=await new bn(t).toPromise())?null:t.value}(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Rn(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{e=En(e,!1).getAll();return new bn(e).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],n=new Set;if(0!==e.length)for(var{fbase_key:r,value:i}of e)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(i)&&(this.notifyListeners(r,i),t.push(r));for(const s of Object.keys(this.localCache))this.localCache[s]&&!n.has(s)&&(this.notifyListeners(s,null),t.push(s));return t}notifyListeners(e,t){this.localCache[e]=t;e=this.listeners[e];if(e)for(const n of Array.from(e))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}An.type="LOCAL";const Pn=An;class On{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var n=this.counter;return this._widgets.set(n,new Cn(e,this.auth.name,t||{})),this.counter++,n}reset(e){var t=e||1e12;null===(e=this._widgets.get(t))||void 0===e||e.delete(),this._widgets.delete(t)}getResponse(e){return(null===(e=this._widgets.get(e||1e12))||void 0===e?void 0:e.getResponse())||""}async execute(e){return null===(e=this._widgets.get(e||1e12))||void 0===e||e.execute(),""}}class Cn{constructor(e,t,n){this.params=n,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};e="string"==typeof e?document.getElementById(e):e;K(e,"argument-error",{appName:t}),this.container=e,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=function(t){const n=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let e=0;e{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}const Nn=$e("rcb"),Ln=new Z(3e4,6e4);class Dn{constructor(){var e;this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!(null===(e=yn().grecaptcha)||void 0===e||!e.render)}load(s,o=""){var e;return K((e=o).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),s,"argument-error"),this.shouldResolveImmediately(o)&&de(yn().grecaptcha)?Promise.resolve(yn().grecaptcha):new Promise((t,r)=>{const i=yn().setTimeout(()=>{r(q(s,"network-request-failed"))},Ln.get());yn()[Nn]=()=>{yn().clearTimeout(i),delete yn()[Nn];const e=yn().grecaptcha;if(e&&de(e)){const n=e.render;e.render=(e,t)=>{t=n(e,t);return this.counter++,t},this.hostLanguage=o,t(e)}else r(q(s,"internal-error"))},Ke(`${Ge.recaptchaV2Script}?${I({onload:Nn,render:"explicit",hl:o})}`).catch(()=>{clearTimeout(i),r(q(s,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!(null===(t=yn().grecaptcha)||void 0===t||!t.render)&&(e===this.hostLanguage||0{const n=e=>{e&&(this.tokenChangeListeners.delete(n),t(e))};this.tokenChangeListeners.add(n),this.isInvisible&&r.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e}),this.renderPromise)}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){K(!this.parameters.sitekey,this.auth,"argument-error"),K(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),K("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(n){return t=>{if(this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof n)n(t);else if("string"==typeof n){const e=yn()[n];"function"==typeof e&&e(t)}}}assertNotDestroyed(){K(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){K(X()&&!_n(),this.auth,"internal-error"),await function(){let t=null;return new Promise(e=>{"complete"!==document.readyState?(t=()=>e(),window.addEventListener("load",t)):e()}).catch(e=>{throw t&&window.removeEventListener("load",t),e})}(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await se(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");K(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return K(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class xn{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){e=ht._fromVerification(this.verificationId,e);return this.onConfirmation(e)}}async function jn(t,n,r){var i,s,o,a,c,u,l=await r.verify();try{K("string"==typeof l,t,"argument-error"),K(r.type===Un,t,"argument-error");let e;if(e="string"==typeof n?{phoneNumber:n}:n,"session"in e){var d=e.session;if("phoneNumber"in e)return K("enroll"===d.type,t,"internal-error"),(c=t,u={idToken:d.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,recaptchaToken:l}},await se(c,"POST","/v2/accounts/mfaEnrollment:start",ie(c,u))).phoneSessionInfo.sessionInfo;K("signin"===d.type,t,"internal-error");var h=(null===(i=e.multiFactorHint)||void 0===i?void 0:i.uid)||e.multiFactorUid;return K(h,t,"missing-multi-factor-info"),(a={mfaPendingCredential:d.credential,mfaEnrollmentId:h,phoneSignInInfo:{recaptchaToken:l}},await se(t,"POST","/v2/accounts/mfaSignIn:start",ie(t,a))).phoneResponseInfo.sessionInfo}var p=(s=t,o={phoneNumber:e.phoneNumber,recaptchaToken:l},await se(s,"POST","/v1/accounts:sendVerificationCode",ie(s,o)))["sessionInfo"];return p}finally{r._reset()}}class Hn{constructor(e){this.providerId=Hn.PROVIDER_ID,this.auth=ze(e)}verifyPhoneNumber(e,t){return jn(this.auth,e,k(t))}static credential(e,t){return ht._fromVerification(e,t)}static credentialFromResult(e){return Hn.credentialFromTaggedObject(e)}static credentialFromError(e){return Hn.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{phoneNumber:t,temporaryProof:e}=e;return t&&e?ht._fromTokenResponse(t,e):null}}function Wn(e,t){return t?ke(t):(K(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}Hn.PROVIDER_ID="phone",Hn.PHONE_SIGN_IN_METHOD="phone";class qn extends tt{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return ut(e,this._buildIdpRequest())}_linkToIdToken(e,t){return ut(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return ut(e,this._buildIdpRequest())}_buildIdpRequest(e){const t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function zn(e){return Dt(e.auth,new qn(e),e.bypassAuthState)}function Bn(e){var{auth:t,user:n}=e;return K(n,t,"internal-error"),Lt(n,new qn(e),e.bypassAuthState)}async function Gn(e){var{auth:t,user:n}=e;return K(n,t,"internal-error"),Ct(n,new qn(e),e.bypassAuthState)}class Kn{constructor(e,t,n,r,i=!1){this.auth=e,this.resolver=n,this.user=r,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:n,postBody:r,tenantId:i,error:s,type:e}=e;if(s)this.reject(s);else{r={auth:this.auth,requestUri:t,sessionId:n,tenantId:i||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(e)(r))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return zn;case"linkViaPopup":case"linkViaRedirect":return Gn;case"reauthViaPopup":case"reauthViaRedirect":return Bn;default:W(this.auth,"internal-error")}}resolve(e){J(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){J(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const $n=new Z(2e3,1e4);class Jn extends Kn{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,Jn.currentPopupAction&&Jn.currentPopupAction.cancel(),Jn.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return K(e,this.auth,"internal-error"),e}async onExecution(){J(1===this.filter.length,"Popup operations only handle one event");var e=gn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(q(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(q(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,Jn.currentPopupAction=null}pollUserCancellation(){const t=()=>{var e;null!==(e=null===(e=this.authWindow)||void 0===e?void 0:e.window)&&void 0!==e&&e.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(q(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(t,$n.get())};t()}}Jn.currentPopupAction=null;const Yn="pendingRedirect",Xn=new Map;class Qn extends Kn{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let t=Xn.get(this.auth._key());if(!t){try{const e=await async function(e,t){const n=nr(t),r=tr(e);if(!await r._isAvailable())return!1;e="true"===await r._get(n);return await r._remove(n),e}(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}Xn.set(this.auth._key(),t)}return this.bypassAuthState||Xn.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"!==e.type){if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function Zn(e,t){return tr(e)._set(nr(t),"true")}function er(e,t){Xn.set(e._key(),t)}function tr(e){return ke(e._redirectPersistence)}function nr(e){return Ae(Yn,e.config.apiKey,e.name)}function rr(e,t,n){return async function(e,t,n){var r=ze(e);B(e,t,mt),await r._initializationPromise;const i=Wn(r,n);return await Zn(i,r),i._openRedirect(r,t,"signInViaRedirect")}(e,t,n)}function ir(e,t,n){return async function(e,t,n){e=k(e);B(e.auth,t,mt),await e.auth._initializationPromise;const r=Wn(e.auth,n);await Zn(r,e.auth);n=await ar(e);return r._openRedirect(e.auth,t,"reauthViaRedirect",n)}(e,t,n)}function sr(e,t,n){return async function(e,t,n){e=k(e);B(e.auth,t,mt),await e.auth._initializationPromise;const r=Wn(e.auth,n);await Nt(!1,e,t.providerId),await Zn(r,e.auth);n=await ar(e);return r._openRedirect(e.auth,t,"linkViaRedirect",n)}(e,t,n)}async function or(e,t,n=!1){const r=ze(e);e=Wn(r,t);const i=new Qn(r,e,n),s=await i.execute();return s&&!n&&(delete s.user._redirectEventId,await r._persistUserIfCurrent(s.user),await r._setRedirectUser(null,t)),s}async function ar(e){var t=gn(`${e.uid}:::`);return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class cr{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let n=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(n=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return lr(e);default:return!1}}(t)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=t,n=!0)),n}sendToConsumer(e,t){var n;e.error&&!lr(e)?(n=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error",t.onError(q(this.auth,n))):t.onAuthEvent(e)}isEventForConsumer(e,t){var n=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&n}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(ur(e))}saveEventToCache(e){this.cachedEventUids.add(ur(e)),this.lastProcessedEventTime=Date.now()}}function ur(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function lr({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}async function dr(e,t={}){return se(e,"GET","/v1/projects",t)}const hr=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,pr=/^https?/;async function fr(e){if(!e.config.emulator){var t=(await dr(e))["authorizedDomains"];for(const n of t)try{if(function(e){const t=Y(),{protocol:n,hostname:r}=new URL(t);if(e.startsWith("chrome-extension://")){var i=new URL(e);return""===i.hostname&&""===r?"chrome-extension:"===n&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===n&&i.hostname===r}if(!pr.test(n))return!1;if(hr.test(e))return r===e;const s=e.replace(/\./g,"\\."),o=new RegExp("^(.+\\."+s+"|"+s+")$","i");return o.test(r)}(n))return}catch(e){}W(e,"unauthorized-domain")}}const mr=new Z(3e4,6e4);function gr(){const t=yn().___jsl;if(null!==t&&void 0!==t&&t.H)for(const e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let e=0;e{function n(){gr(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{gr(),t(q(i,"network-request-failed"))},timeout:mr.get()})}if(null!==(r=null===(r=yn().gapi)||void 0===r?void 0:r.iframes)&&void 0!==r&&r.Iframe)e(gapi.iframes.getContext());else{if(null===(r=yn().gapi)||void 0===r||!r.load){var r=$e("iframefcb");return yn()[r]=()=>{gapi.load?n():t(q(i,"network-request-failed"))},Ke(`${Ge.gapiScript}?onload=${r}`).catch(e=>t(e))}n()}}).catch(e=>{throw yr=null,e})}let yr=null;const _r=new Z(5e3,15e3),Ir="__/auth/iframe",wr="emulator/auth/iframe",Tr={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},br=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Er(o){const e=(t=o,yr=yr||vr(t),await yr);var t=yn().gapi;return K(t,o,"internal-error"),e.open({where:document.body,url:function(e){var t=e.config;K(t.authDomain,e,"auth-domain-config-required");var n=t.emulator?ee(t,wr):`https://${e.config.authDomain}/${Ir}`;const r={apiKey:t.apiKey,appName:e.name,v:Mi.SDK_VERSION};(t=br.get(e.config.apiHost))&&(r.eid=t);const i=e._getFrameworks();return i.length&&(r.fw=i.join(",")),`${n}?${I(r).slice(1)}`}(o),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Tr,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});const n=q(o,"network-request-failed"),r=yn().setTimeout(()=>{t(n)},_r.get());function i(){yn().clearTimeout(r),e(s)}s.ping(i).then(i,()=>{t(n)})}))}const kr={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Sr{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Rr(e,t,n,r=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString();let a="";const c=Object.assign(Object.assign({},kr),{width:r.toString(),height:i.toString(),top:s,left:o});o=d().toLowerCase();n&&(a=Le(o)?"_blank":n),Ce(o)&&(t=t||"http://localhost",c.scrollbars="yes");var u,n=Object.entries(c).reduce((e,[t,n])=>`${e}${t}=${n},`,"");if([o=d()]=[o],Ve(o)&&null!==(u=window.navigator)&&void 0!==u&&u.standalone&&"_self"!==a)return function(e,t){const n=document.createElement("a");n.href=e,n.target=t;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}(t||"",a),new Sr(null);const l=window.open(t||"",a,n);K(l,e,"popup-blocked");try{l.focus()}catch(e){}return new Sr(l)}const Ar="__/auth/handler",Pr="emulator/auth/handler",Or=encodeURIComponent("fac");async function Cr(e,t,n,r,i,s){K(e.config.authDomain,e,"auth-domain-config-required"),K(e.config.apiKey,e,"invalid-api-key");const o={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:r,v:Mi.SDK_VERSION,eventId:i};if(t instanceof mt){t.setDefaultLanguage(e.languageCode),o.providerId=t.providerId||"",function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return;return 1}(t.getCustomParameters())||(o.customParameters=JSON.stringify(t.getCustomParameters()));for(var[a,c]of Object.entries(s||{}))o[a]=c}if(t instanceof gt){const l=t.getScopes().filter(e=>""!==e);0{})}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:r,promise:n}=this.eventManagers[t];return r?Promise.resolve(r):(J(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch(()=>{delete this.eventManagers[t]}),n}async initAndGetManager(t){const e=await Er(t),n=new cr(t);return e.register("authEvent",e=>{return K(null==e?void 0:e.authEvent,t,"invalid-auth-event"),{status:n.onEvent(e.authEvent)?"ACK":"ERROR"}},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:n},this.iframes[t._key()]=e,n}_isIframeWebStorageSupported(t,n){const e=this.iframes[t._key()];e.send(Nr,{type:Nr},e=>{e=null===(e=null==e?void 0:e[0])||void 0===e?void 0:e[Nr];void 0!==e&&n(!!e),W(t,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=fr(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return xe()||Ne()||Ve()}};class Dr extends class{constructor(e){this.factorId=e}_process(e,t,n){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,n);case"signin":return this._finalizeSignIn(e,t.credential);default:return $("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new Dr(e)}_finalizeEnroll(e,t,n){return e=e,n={idToken:t,displayName:n,phoneVerificationInfo:this.credential._makeVerificationRequest()},se(e,"POST","/v2/accounts/mfaEnrollment:finalize",ie(e,n))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},se(e,"POST","/v2/accounts/mfaSignIn:finalize",ie(e,t))}}class Mr{constructor(){}static assertion(e){return Dr._fromCredential(e)}}Mr.FACTOR_ID="phone";var Ur="@firebase/auth";class Fr{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){K(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0{const t=document.createElement("script");t.setAttribute("src",r),t.onload=e,t.onerror=e=>{const t=q("internal-error");t.customData=e,n(t)},t.type="text/javascript",t.charset="UTF-8",(null!==(e=null===(e=document.getElementsByTagName("head"))||void 0===e?void 0:e[0])&&void 0!==e?e:document).appendChild(t)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},jr="Browser",Mi._registerComponent(new L("auth",(e,{options:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal");const{apiKey:s,authDomain:o}=n.options;K(s&&!s.includes(":"),"invalid-api-key",{appName:n.name});e={apiKey:s,authDomain:o,clientPlatform:jr,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:je(jr)},e=new qe(n,r,i,e);return function(e,t){const n=(null==t?void 0:t.persistence)||[];var r=(Array.isArray(n)?n:[n]).map(ke);null!=t&&t.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(e,t),e},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,n)=>{const r=e.getProvider("auth-internal");r.initialize()})),Mi._registerComponent(new L("auth-internal",e=>{e=ze(e.getProvider("auth").getImmediate());return e=e,new Fr(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),Mi.registerVersion(Ur,"1.6.0",function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(jr)),Mi.registerVersion(Ur,"1.6.0","esm2017");async function Wr(e,t,n){var r=Hr()["BuildInfo"];J(t.sessionId,"AuthEvent did not contain a session ID");var i=await async function(e){const t=function(t){if(J(/[0-9a-zA-Z]+/.test(t),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(t);const e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let e=0;ee.toString(16).padStart(2,"0")).join("")}(t.sessionId);const s={};return Ve()?s.ibi=r.packageName:Me()?s.apn=r.packageName:W(e,"operation-not-supported-in-this-environment"),r.displayName&&(s.appDisplayName=r.displayName),s.sessionId=i,Cr(e,n,t.type,void 0,null!==(t=t.eventId)&&void 0!==t?t:void 0,s)}function qr(r){const i=Hr()["cordova"];return new Promise(n=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(r):t=i.InAppBrowser.open(r,(e=d(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),n(t)})})}const zr=20;class Br extends cr{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function Gr(e,t,n=null){return{type:t,eventId:n,urlResponse:null,sessionId:function(){const t=[],n="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let e=0;e{};try{await new Promise((n,e)=>{let t=null;function r(){var e;n();const t=null===(e=u.plugins.browsertab)||void 0===e?void 0:e.close;"function"==typeof t&&t(),"function"==typeof(null==c?void 0:c.close)&&c.close()}function i(){t=t||window.setTimeout(()=>{e(q(o,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===(null===document||void 0===document?void 0:document.visibilityState)&&i()}a.addPassiveListener(r),document.addEventListener("resume",i,!1),Me()&&document.addEventListener("visibilitychange",s,!1),l=()=>{a.removePassiveListener(r),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),t&&window.clearTimeout(t)}})}finally{l()}}(e,o,t)}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){var t=Hr()["BuildInfo"];const n={};Ve()?n.iosBundleId=t.packageName:Me()?n.androidPackageName=t.packageName:W(e,"operation-not-supported-in-this-environment"),await dr(e,n)}(e)),this.originValidationPromises[t]}attachCallbackListeners(r,i){const{universalLinks:e,handleOpenURL:t,BuildInfo:n}=Hr(),s=setTimeout(async()=>{await Kr(r),i.onEvent(Zr())},500),o=async e=>{clearTimeout(s);var t=await Kr(r);let n=null;t&&null!=e&&e.url&&(n=$r(t,e.url)),i.onEvent(n||Zr())};void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,o);const a=t,c=`${n.packageName.toLowerCase()}://`;Hr().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(c)&&o({url:e}),"function"==typeof a)try{a(e)}catch(e){console.error(e)}}}};function Zr(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:q("no-auth-event")}}function ei(){var e;return(null===(e=null===self||void 0===self?void 0:self.location)||void 0===e?void 0:e.protocol)||null}function ti(e){return void 0===e&&(e=d()),!("file:"!==ei()&&"ionic:"!==ei()&&"capacitor:"!==ei()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function ni(e){return void 0===e&&(e=d()),m()&&11===(null===document||void 0===document?void 0:document.documentMode)||(void 0===(e=e)&&(e=d()),/Edge\/\d+/.test(e))}function ri(){try{var e=self.localStorage,t=gn();if(e)return e.setItem(t,"1"),e.removeItem(t),!ni()||g()}catch(e){return ii()&&g()}return!1}function ii(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function si(){return("http:"===ei()||"https:"===ei()||p()||ti())&&!(f()||h())&&ri()&&!ii()}function oi(){return ti()&&"undefined"!=typeof document}var ai={LOCAL:"local",NONE:"none",SESSION:"session"},ci=K,ui="persistence";function li(r){return C(this,void 0,void 0,function(){var t,n;return N(this,function(e){switch(e.label){case 0:return[4,r._initializationPromise];case 1:return e.sent(),t=di(),n=Ae(ui,r.config.apiKey,r.name),t&&t.setItem(n,r._getPersistence()),[2]}})})}function di(){var e;try{return(null===(e="undefined"!=typeof window?window:null)?void 0:e.sessionStorage)||null}catch(e){return null}}var hi=K,pi=(fi.prototype._initialize=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return[4,this.selectUnderlyingResolver()];case 1:return e.sent(),[2,this.assertedUnderlyingResolver._initialize(t)]}})})},fi.prototype._openPopup=function(t,n,r,i){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return[4,this.selectUnderlyingResolver()];case 1:return e.sent(),[2,this.assertedUnderlyingResolver._openPopup(t,n,r,i)]}})})},fi.prototype._openRedirect=function(t,n,r,i){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return[4,this.selectUnderlyingResolver()];case 1:return e.sent(),[2,this.assertedUnderlyingResolver._openRedirect(t,n,r,i)]}})})},fi.prototype._isIframeWebStorageSupported=function(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)},fi.prototype._originValidation=function(e){return this.assertedUnderlyingResolver._originValidation(e)},Object.defineProperty(fi.prototype,"_shouldInitProactively",{get:function(){return oi()||this.browserResolver._shouldInitProactively},enumerable:!1,configurable:!0}),Object.defineProperty(fi.prototype,"assertedUnderlyingResolver",{get:function(){return hi(this.underlyingResolver,"internal-error"),this.underlyingResolver},enumerable:!1,configurable:!0}),fi.prototype.selectUnderlyingResolver=function(){return C(this,void 0,void 0,function(){var t;return N(this,function(e){switch(e.label){case 0:return this.underlyingResolver?[2]:[4,function(){return C(this,void 0,void 0,function(){return N(this,function(e){return oi()?[2,new Promise(function(e){var t=setTimeout(function(){e(!1)},1e3);document.addEventListener("deviceready",function(){clearTimeout(t),e(!0)})})]:[2,!1]})})}()];case 1:return t=e.sent(),this.underlyingResolver=t?this.cordovaResolver:this.browserResolver,[2]}})})},fi);function fi(){this.browserResolver=ke(Lr),this.cordovaResolver=ke(Qr),this.underlyingResolver=null,this._redirectPersistence=fn,this._completeRedirectFn=or,this._overrideRedirectResult=er}function mi(e){return e.unwrap()}function gi(e,t){var n,r,i=null===(r=t.customData)||void 0===r?void 0:r._tokenResponse;"auth/multi-factor-auth-required"===(null==t?void 0:t.code)?t.resolver=new Ii(e,(r=t,e=k(n=e),K((n=r).customData.operationType,e,"argument-error"),K(null===(r=n.customData._serverResponse)||void 0===r?void 0:r.mfaPendingCredential,e,"argument-error"),on._fromError(e,n))):!i||(t=vi(n=t))&&(n.credential=t,n.tenantId=i.tenantId||void 0,n.email=i.email||void 0,n.phoneNumber=i.phoneNumber||void 0)}function vi(e){var t=(e instanceof v?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof v)&&"temporaryProof"in t&&"phoneNumber"in t)return Hn.credentialFromResult(e);var n,r=t.providerId;if(!r||r===D.PASSWORD)return null;switch(r){case D.GOOGLE:n=_t;break;case D.FACEBOOK:n=yt;break;case D.GITHUB:n=It;break;case D.TWITTER:n=bt;break;default:var i=t.oauthIdToken,s=t.oauthAccessToken,o=t.oauthTokenSecret,a=t.pendingToken,c=t.nonce;return s||o||i||a?a?r.startsWith("saml.")?wt._create(r,a):lt._fromParams({providerId:r,signInMethod:r,pendingToken:a,idToken:i,accessToken:s}):new vt(r).credential({idToken:i,accessToken:s,rawNonce:c}):null}return e instanceof v?n.credentialFromError(e):n.credentialFromResult(e)}function yi(t,e){return e.catch(function(e){throw e instanceof v&&gi(t,e),e}).then(function(e){var t=e.operationType,n=e.user;return{operationType:t,credential:vi(e),additionalUserInfo:rn(e),user:Ti.getOrCreate(n)}})}function _i(n,r){return C(this,void 0,void 0,function(){var t;return N(this,function(e){switch(e.label){case 0:return[4,r];case 1:return[2,{verificationId:(t=e.sent()).verificationId,confirm:function(e){return yi(n,t.confirm(e))}}]}})})}var Ii=(Object.defineProperty(wi.prototype,"session",{get:function(){return this.resolver.session},enumerable:!1,configurable:!0}),Object.defineProperty(wi.prototype,"hints",{get:function(){return this.resolver.hints},enumerable:!1,configurable:!0}),wi.prototype.resolveSignIn=function(e){return yi(mi(this.auth),this.resolver.resolveSignIn(e))},wi);function wi(e,t){this.resolver=t,this.auth=e.wrapped()}var Ti=(bi.getOrCreate=function(e){return bi.USER_MAP.has(e)||bi.USER_MAP.set(e,new bi(e)),bi.USER_MAP.get(e)},bi.prototype.delete=function(){return this._delegate.delete()},bi.prototype.reload=function(){return this._delegate.reload()},bi.prototype.toJSON=function(){return this._delegate.toJSON()},bi.prototype.getIdTokenResult=function(e){return this._delegate.getIdTokenResult(e)},bi.prototype.getIdToken=function(e){return this._delegate.getIdToken(e)},bi.prototype.linkAndRetrieveDataWithCredential=function(e){return this.linkWithCredential(e)},bi.prototype.linkWithCredential=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){return[2,yi(this.auth,Ut(this._delegate,t))]})})},bi.prototype.linkWithPhoneNumber=function(t,n){return C(this,void 0,void 0,function(){return N(this,function(e){return[2,_i(this.auth,async function(e,t,n){const r=k(e);return await Nt(!1,r,"phone"),n=await jn(r.auth,t,k(n)),new xn(n,e=>Ut(r,e))}(this._delegate,t,n))]})})},bi.prototype.linkWithPopup=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){return[2,yi(this.auth,async function(e,t,n){B((e=k(e)).auth,t,mt),n=Wn(e.auth,n);const r=new Jn(e.auth,"linkViaPopup",t,n,e);return r.executeNotNull()}(this._delegate,t,pi))]})})},bi.prototype.linkWithRedirect=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return[4,li(ze(this.auth))];case 1:return e.sent(),[2,sr(this._delegate,t,pi)]}})})},bi.prototype.reauthenticateAndRetrieveDataWithCredential=function(e){return this.reauthenticateWithCredential(e)},bi.prototype.reauthenticateWithCredential=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){return[2,yi(this.auth,Ft(this._delegate,t))]})})},bi.prototype.reauthenticateWithPhoneNumber=function(e,t){return _i(this.auth,async function(e,t,n){const r=k(e);return n=await jn(r.auth,t,k(n)),new xn(n,e=>Ft(r,e))}(this._delegate,e,t))},bi.prototype.reauthenticateWithPopup=function(e){return yi(this.auth,async function(e,t,n){B((e=k(e)).auth,t,mt),n=Wn(e.auth,n);const r=new Jn(e.auth,"reauthViaPopup",t,n,e);return r.executeNotNull()}(this._delegate,e,pi))},bi.prototype.reauthenticateWithRedirect=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return[4,li(ze(this.auth))];case 1:return e.sent(),[2,ir(this._delegate,t,pi)]}})})},bi.prototype.sendEmailVerification=function(e){return Kt(this._delegate,e)},bi.prototype.unlink=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return[4,Ot(this._delegate,t)];case 1:return e.sent(),[2,this]}})})},bi.prototype.updateEmail=function(e){return Yt(k(this._delegate),e,null)},bi.prototype.updatePassword=function(e){return Yt(k(this._delegate),null,e)},bi.prototype.updatePhoneNumber=function(e){return async function(e,t){await Ct(k(e),t)}(this._delegate,e)},bi.prototype.updateProfile=function(e){return Jt(this._delegate,e)},bi.prototype.verifyBeforeUpdateEmail=function(e,t){return $t(this._delegate,e,t)},Object.defineProperty(bi.prototype,"emailVerified",{get:function(){return this._delegate.emailVerified},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"isAnonymous",{get:function(){return this._delegate.isAnonymous},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"metadata",{get:function(){return this._delegate.metadata},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"phoneNumber",{get:function(){return this._delegate.phoneNumber},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"providerData",{get:function(){return this._delegate.providerData},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"refreshToken",{get:function(){return this._delegate.refreshToken},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"tenantId",{get:function(){return this._delegate.tenantId},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"displayName",{get:function(){return this._delegate.displayName},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"email",{get:function(){return this._delegate.email},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"photoURL",{get:function(){return this._delegate.photoURL},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"providerId",{get:function(){return this._delegate.providerId},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"uid",{get:function(){return this._delegate.uid},enumerable:!1,configurable:!0}),Object.defineProperty(bi.prototype,"auth",{get:function(){return this._delegate.auth},enumerable:!1,configurable:!0}),bi.USER_MAP=new WeakMap,bi);function bi(e){this._delegate=e,this.multiFactor=(e=k(e=e),cn.has(e)||cn.set(e,an._fromUser(e)),cn.get(e))}var Ei=K,ki=(Object.defineProperty(Si.prototype,"emulatorConfig",{get:function(){return this._delegate.emulatorConfig},enumerable:!1,configurable:!0}),Object.defineProperty(Si.prototype,"currentUser",{get:function(){return this._delegate.currentUser?Ti.getOrCreate(this._delegate.currentUser):null},enumerable:!1,configurable:!0}),Object.defineProperty(Si.prototype,"languageCode",{get:function(){return this._delegate.languageCode},set:function(e){this._delegate.languageCode=e},enumerable:!1,configurable:!0}),Object.defineProperty(Si.prototype,"settings",{get:function(){return this._delegate.settings},enumerable:!1,configurable:!0}),Object.defineProperty(Si.prototype,"tenantId",{get:function(){return this._delegate.tenantId},set:function(e){this._delegate.tenantId=e},enumerable:!1,configurable:!0}),Si.prototype.useDeviceLanguage=function(){this._delegate.useDeviceLanguage()},Si.prototype.signOut=function(){return this._delegate.signOut()},Si.prototype.useEmulator=function(e,t){Qe(this._delegate,e,t)},Si.prototype.applyActionCode=function(e){return zt(this._delegate,e)},Si.prototype.checkActionCode=function(e){return Bt(this._delegate,e)},Si.prototype.confirmPasswordReset=function(e,t){return async function(t,e,n){await nt(k(t),{oobCode:e,newPassword:n}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&qt(t),e})}(this._delegate,e,t)},Si.prototype.createUserWithEmailAndPassword=function(t,n){return C(this,void 0,void 0,function(){return N(this,function(e){return[2,yi(this._delegate,async function(t,e,n){const r=ze(t),i=Xe(r,{returnSecureToken:!0,email:e,password:n,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Et);return n=await i.catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&qt(t),e}),n=await kt._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n}(this._delegate,t,n))]})})},Si.prototype.fetchProvidersForEmail=function(e){return this.fetchSignInMethodsForEmail(e)},Si.prototype.fetchSignInMethodsForEmail=function(e){return Gt(this._delegate,e)},Si.prototype.isSignInWithEmailLink=function(e){return this._delegate,e=e,"EMAIL_SIGNIN"===(null==(e=pt.parseLink(e))?void 0:e.operation)},Si.prototype.getRedirectResult=function(){return C(this,void 0,void 0,function(){var t;return N(this,function(e){switch(e.label){case 0:return Ei(si(),this._delegate,"operation-not-supported-in-this-environment"),[4,async function(e,t){return await ze(e)._initializationPromise,or(e,t,!1)}(this._delegate,pi)];case 1:return(t=e.sent())?[2,yi(this._delegate,Promise.resolve(t))]:[2,{credential:null,user:null}]}})})},Si.prototype.addFrameworkForLogging=function(e){ze(this._delegate)._logFramework(e)},Si.prototype.onAuthStateChanged=function(e,t,n){e=Ri(e,t,n),t=e.next,n=e.error,e=e.complete;return this._delegate.onAuthStateChanged(t,n,e)},Si.prototype.onIdTokenChanged=function(e,t,n){e=Ri(e,t,n),t=e.next,n=e.error,e=e.complete;return this._delegate.onIdTokenChanged(t,n,e)},Si.prototype.sendSignInLinkToEmail=function(e,t){return async function(e,t,n){const r=ze(e);e=t={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"},K((n=n).handleCodeInApp,r,"argument-error"),n&&Wt(r,e,n),await Xe(r,t,"getOobCode",at)}(this._delegate,e,t)},Si.prototype.sendPasswordResetEmail=function(e,t){return async function(e,t,n){e=ze(e),t={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"},n&&Wt(e,t,n),await Xe(e,t,"getOobCode",ot)}(this._delegate,e,t||void 0)},Si.prototype.setPersistence=function(s){return C(this,void 0,void 0,function(){var r,i;return N(this,function(e){switch(e.label){case 0:switch(t=this._delegate,n=s,ci(Object.values(ai).includes(n),t,"invalid-persistence-type"),f()?ci(n!==ai.SESSION,t,"unsupported-persistence-type"):h()?ci(n===ai.NONE,t,"unsupported-persistence-type"):ii()?ci(n===ai.NONE||n===ai.LOCAL&&g(),t,"unsupported-persistence-type"):ci(n===ai.NONE||ri(),t,"unsupported-persistence-type"),s){case ai.SESSION:return[3,1];case ai.LOCAL:return[3,2];case ai.NONE:return[3,4]}return[3,5];case 1:return r=fn,[3,6];case 2:return[4,ke(Pn)._isAvailable()];case 3:return i=e.sent(),r=i?Pn:hn,[3,6];case 4:return r=Re,[3,6];case 5:return[2,W("argument-error",{appName:this._delegate.name})];case 6:return[2,this._delegate.setPersistence(r)]}var t,n})})},Si.prototype.signInAndRetrieveDataWithCredential=function(e){return this.signInWithCredential(e)},Si.prototype.signInAnonymously=function(){return yi(this._delegate,async function(e){const t=ze(e);return await t._initializationPromise,null!==(e=t.currentUser)&&void 0!==e&&e.isAnonymous?new kt({user:t.currentUser,providerId:null,operationType:"signIn"}):(e=await Et(t,{returnSecureToken:!0}),e=await kt._fromIdTokenResponse(t,"signIn",e,!0),await t._updateCurrentUser(e.user),e)}(this._delegate))},Si.prototype.signInWithCredential=function(e){return yi(this._delegate,Mt(this._delegate,e))},Si.prototype.signInWithCustomToken=function(e){return yi(this._delegate,Vt(this._delegate,e))},Si.prototype.signInWithEmailAndPassword=function(e,t){return yi(this._delegate,(n=this._delegate,e=e,t=t,Mt(k(n),ft.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&qt(n),e})));var n},Si.prototype.signInWithEmailLink=function(e,t){return yi(this._delegate,async function(e,t,n){return e=k(e),K((n=ft.credentialWithLink(t,n||Y()))._tenantId===(e.tenantId||null),e,"tenant-id-mismatch"),Mt(e,n)}(this._delegate,e,t))},Si.prototype.signInWithPhoneNumber=function(e,t){return _i(this._delegate,async function(e,t,n){const r=ze(e);return n=await jn(r,t,k(n)),new xn(n,e=>Mt(r,e))}(this._delegate,e,t))},Si.prototype.signInWithPopup=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){return Ei(si(),this._delegate,"operation-not-supported-in-this-environment"),[2,yi(this._delegate,async function(e,t,n){var r=ze(e);B(e,t,mt),n=Wn(r,n);const i=new Jn(r,"signInViaPopup",t,n);return i.executeNotNull()}(this._delegate,t,pi))]})})},Si.prototype.signInWithRedirect=function(t){return C(this,void 0,void 0,function(){return N(this,function(e){switch(e.label){case 0:return Ei(si(),this._delegate,"operation-not-supported-in-this-environment"),[4,li(this._delegate)];case 1:return e.sent(),[2,rr(this._delegate,t,pi)]}})})},Si.prototype.updateCurrentUser=function(e){return this._delegate.updateCurrentUser(e)},Si.prototype.verifyPasswordResetCode=function(e){return async function(e,t){return(t=(await Bt(k(e),t))["data"]).email}(this._delegate,e)},Si.prototype.unwrap=function(){return this._delegate},Si.prototype._delete=function(){return this._delegate._delete()},Si.prototype.linkUnderlyingAuth=function(){var e=this;this._delegate.wrapped=function(){return e}},Si.Persistence=ai,Si);function Si(e,t){if(this.app=e,t.isInitialized())return this._delegate=t.getImmediate(),void this.linkUnderlyingAuth();var n=e.options.apiKey;Ei(n,"invalid-api-key",{appName:e.name}),Ei(n,"invalid-api-key",{appName:e.name});var r="undefined"!=typeof window?pi:void 0;this._delegate=t.initialize({options:{persistence:function(e,t){var n=function(e,t){var n=di();if(!n)return[];switch(t=Ae(ui,e,t),n.getItem(t)){case ai.NONE:return[Re];case ai.LOCAL:return[Pn,fn];case ai.SESSION:return[fn];default:return[]}}(e,t);"undefined"==typeof self||n.includes(Pn)||n.push(Pn);if("undefined"!=typeof window)for(var r=0,i=[hn,fn];r