1/*! For license information please see WebPush.js.LICENSE.txt */ 2(()=>{var e={6808:function(e){var t;t=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var r=arguments[e];for(var n in r)t[n]=r[n]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function r(n){function i(){}function a(t,r,a){if("undefined"!=typeof document){"number"==typeof(a=e({path:"/"},i.defaults,a)).expires&&(a.expires=new Date(new Date*1+864e5*a.expires)),a.expires=a.expires?a.expires.toUTCString():"";try{var s=JSON.stringify(r);/^[\{\[]/.test(s)&&(r=s)}catch(e){}r=n.write?n.write(r,t):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var o="";for(var c in a)a[c]&&(o+="; "+c,!0!==a[c]&&(o+="="+a[c].split(";")[0]));return document.cookie=t+"="+r+o}}function s(e,r){if("undefined"!=typeof document){for(var i={},a=document.cookie?document.cookie.split("; "):[],s=0;s<a.length;s++){var o=a[s].split("="),c=o.slice(1).join("=");r||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var l=t(o[0]);if(c=(n.read||n)(c,l)||t(c),r)try{c=JSON.parse(c)}catch(e){}if(i[l]=c,e===l)break}catch(e){}}return e?i[e]:i}}return i.set=a,i.get=function(e){return s(e,!1)},i.getJSON=function(e){return s(e,!0)},i.remove=function(t,r){a(t,"",e(r,{expires:-1}))},i.defaults={},i.withConverter=r,i}(function(){})},"function"==typeof define&&define.amd&&define(t),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.rv=()=>"1.4.9",r.ruid="[email protected]",(()=>{"use strict";let e,t;function n(e,t,r,n,i,a,s){try{var o=e[a](s),c=o.value}catch(e){r(e);return}o.done?t(c):Promise.resolve(c).then(n,i)}function i(e){return function(){var t=this,r=arguments;return new Promise(function(i,a){var s=e.apply(t,r);function o(e){n(s,i,a,o,c,"next",e)}function c(e){n(s,i,a,o,c,"throw",e)}o(void 0)})}}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let s=function(e){let t=[],r=0;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:((64512&i)==55296&&n+1<e.length&&(64512&e.charCodeAt(n+1))==56320?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n)),t[r++]=i>>18|240,t[r++]=i>>12&63|128):t[r++]=i>>12|224,t[r++]=i>>6&63|128),t[r++]=63&i|128)}return t},o=function(e){let t=[],r=0,n=0;for(;r<e.length;){let i=e[r++];if(i<128)t[n++]=String.fromCharCode(i);else if(i>191&&i<224){let a=e[r++];t[n++]=String.fromCharCode((31&i)<<6|63&a)}else if(i>239&&i<365){let a=e[r++],s=((7&i)<<18|(63&a)<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(s>>10)),t[n++]=String.fromCharCode(56320+(1023&s))}else{let a=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&i)<<12|(63&a)<<6|63&s)}}return t.join("")},c={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();let r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){let i=e[t],a=t+1<e.length,s=a?e[t+1]:0,o=t+2<e.length,c=o?e[t+2]:0,l=i>>2,u=(3&i)<<4|s>>4,d=(15&s)<<2|c>>6,h=63&c;!o&&(h=64,a||(d=64)),n.push(r[l],r[u],r[d],r[h])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):o(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();let r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){let i=r[e.charAt(t++)],a=t<e.length?r[e.charAt(t)]:0,s=++t<e.length?r[e.charAt(t)]:64,o=++t<e.length?r[e.charAt(t)]:64;if(++t,null==i||null==a||null==s||null==o)throw new l;let c=i<<2|a>>4;if(n.push(c),64!==s){let e=a<<4&240|s>>2;if(n.push(e),64!==o){let e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};
2class l extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let u=function(e){let t=s(e);return c.encodeByteArray(t,!0)},d=function(e){return u(e).replace(/\./g,"")},h=function(e){try{return c.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null},p=()=>{var e;return null==(e=(()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;let e=process.env.__FIREBASE_DEFAULTS__;if(e)return JSON.parse(e)})()||(()=>{let e;if("undefined"==typeof document)return;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}let t=e&&h(e[1]);return t&&JSON.parse(t)})()}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}})())?void 0:e.config};class f{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,r))}}}function g(){try{return"object"==typeof indexedDB}catch(e){return!1}}function m(){return new Promise((e,t)=>{try{let r=!0,n="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(n);i.onsuccess=()=>{i.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},i.onupgradeneeded=()=>{r=!1},i.onerror=()=>{var e;t((null==(e=i.error)?void 0:e.message)||"")}}catch(e){t(e)}})}class w extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,w.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,b.prototype.create)}}class b{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r,n;let i=t[0]||{},a=`${this.service}/${e}`,s=this.errors[e],o=s?(r=s,n=i,r.replace(y,(e,t)=>{let r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",c=`${this.serviceName}: ${o} (${a}).`;return new w(a,c,i)}}let y=/\{\$([^}]+)}/g;function v(e,t){if(e===t)return!0;let r=Object.keys(e),n=Object.keys(t);for(let i of r){if(!n.includes(i))return!1;let r=e[i],a=t[i];if(I(r)&&I(a)){if(!v(r,a))return!1}else if(r!==a)return!1}for(let e of n)if(!r.includes(e))return!1;return!0}function I(e){return null!==e&&"object"==typeof e}function S(e){return e&&e._delegate?e._delegate:e}class C{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let _="[DEFAULT]";class E{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let e=new f;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{let r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;let r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!=(t=null==e?void 0:e.optional)&&t;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}if(n)return null;throw Error(`Service ${this.name} is not available`)}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:_})}catch(e){}for(let[e,t]of this.instancesDeferred.entries()){let r=this.normalizeInstanceIdentifier(e);try{let e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e=_){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=_){return this.instances.has(e)}getOptions(e=_){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[e,t]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(e)&&t.resolve(n);return n}onInit(e,t){var r;let n=this.normalizeInstanceIdentifier(t),i=null!=(r=this.onInitCallbacks.get(n))?r:new Set;i.add(e),this.onInitCallbacks.set(n,i);let a=this.instances.get(n);return a&&e(a,n),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){var r;let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===_?void 0:r,options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}return n||null}normalizeInstanceIdentifier(e=_){return this.component?this.component.multipleInstances?e:_:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class D{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new E(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}let T=[];!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.E
2RROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(tx||(tx={}));let k={debug:tx.DEBUG,verbose:tx.VERBOSE,info:tx.INFO,warn:tx.WARN,error:tx.ERROR,silent:tx.SILENT},A=tx.INFO,O={[tx.DEBUG]:"log",[tx.VERBOSE]:"log",[tx.INFO]:"info",[tx.WARN]:"warn",[tx.ERROR]:"error"},j=(e,t,...r)=>{if(t<e.logLevel)return;let n=new Date().toISOString(),i=O[t];if(i)console[i](`[${n}] ${e.name}:`,...r);else throw Error(`Attempted to log a message with an invalid logType (value: ${t})`)},P=new WeakMap,N=new WeakMap,B=new WeakMap,L=new WeakMap,M=new WeakMap,x={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return N.get(e);if("objectStoreNames"===t)return e.objectStoreNames||B.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return R(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function R(r){if(r instanceof IDBRequest){let e=new Promise((e,t)=>{let n=()=>{r.removeEventListener("success",i),r.removeEventListener("error",a)},i=()=>{e(R(r.result)),n()},a=()=>{t(r.error),n()};r.addEventListener("success",i),r.addEventListener("error",a)});return e.then(e=>{e instanceof IDBCursor&&P.set(e,r)}).catch(()=>{}),M.set(e,r),e}if(L.has(r))return L.get(r);let n=function(r){if("function"==typeof r)return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(t||(t=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(r)?function(...e){return r.apply(F(this),e),R(P.get(this))}:function(...e){return R(r.apply(F(this),e))}:function(e,...t){let n=r.call(F(this),e,...t);return B.set(n,e.sort?e.sort():[e]),R(n)};return r instanceof IDBTransaction&&function(e){if(N.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",a),e.removeEventListener("abort",a)},i=()=>{t(),n()},a=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",i),e.addEventListener("error",a),e.addEventListener("abort",a)});N.set(e,t)}(r),(e||(e=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>r instanceof e)?new Proxy(r,x):r}(r);return n!==r&&(L.set(r,n),M.set(n,r)),n}let F=e=>M.get(e);function H(e,t,{blocked:r,upgrade:n,blocking:i,terminated:a}={}){let s=indexedDB.open(e,t),o=R(s);return n&&s.addEventListener("upgradeneeded",e=>{n(R(s.result),e.oldVersion,e.newVersion,R(s.transaction),e)}),r&&s.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{a&&e.addEventListener("close",()=>a()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function U(e,{blocked:t}={}){let r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),R(r).then(()=>void 0)}let K=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],V=new Map;function q(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(V.get(t))return V.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,i=W.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(i||K.includes(r)))return;let a=async function(e,...t){let a=this.transaction(e,i?"readwrite":"readonly"),s=a.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),i&&a.done]))[0]};return V.set(t,a),a}x=(e=>({...e,get:(t,r,n)=>q(t,r)||e.get(t,r,n),has:(t,r)=>!!q(t,r)||e.has(t,r)}))(x);class z{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(!function(e){let t=e.getComponent();return(null==t?void 0:t.type)==="VERSION"}(e))return null;{let t=e.getImmediate();return`${t.library}/${t.version}`}}).filter(e=>e).join(" ")}}let J="@firebase/app",G="0.10.13",Y=new class{constructor(e){this.name=e,this._logLevel=A,this._logHandler=j,this._userLogHandler=null,T.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in tx))throw TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?k[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,tx.DEBUG,...e),this._logHandler(this,tx.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,tx.VERBOSE,...e),this._logHandler(this,tx.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,tx.INFO,...e),this._logHandler(this,tx.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,tx.WARN,...e),this._logHandler(this,tx.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,tx.ERROR,...e),this._logHandler(this,tx.ERROR,...e)}}("@firebase/app"),X="[DEFAULT]",Q={[J]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/vertexai-preview":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},Z=new Map,ee=new Map,et=new Map;function er(e,t){try{e.container.addComponent(t)}catch(r){Y.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function en(e){let t=e.name;if(et.has(t))return Y.debug(`There were multiple attempts to register component ${t}.`),!1;
2for(let r of(et.set(t,e),Z.values()))er(r,e);for(let t of ee.values())er(t,e);return!0}function ei(e,t){let r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}let ea=new b("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class es{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new C("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw ea.create("app-deleted",{appName:this._name})}}function eo(e,t={}){let r=e;"object"!=typeof t&&(t={name:t});let n=Object.assign({name:X,automaticDataCollectionEnabled:!1},t),i=n.name;if("string"!=typeof i||!i)throw ea.create("bad-app-name",{appName:String(i)});if(r||(r=p()),!r)throw ea.create("no-options");let a=Z.get(i);if(a)if(v(r,a.options)&&v(n,a.config))return a;else throw ea.create("duplicate-app",{appName:i});let s=new D(i);for(let e of et.values())s.addComponent(e);let o=new es(r,n,s);return Z.set(i,o),o}function ec(e,t,r){var n;let i=null!=(n=Q[e])?n:e;r&&(i+=`-${r}`);let a=i.match(/\s|\//),s=t.match(/\s|\//);if(a||s){let e=[`Unable to register library "${i}" with version "${t}":`];a&&e.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Y.warn(e.join(" "));return}en(new C(`${i}-version`,()=>({library:i,version:t}),"VERSION"))}let el="firebase-heartbeat-store",eu=null;function ed(){return eu||(eu=H("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(el)}catch(e){console.warn(e)}}}).catch(e=>{throw ea.create("idb-open",{originalErrorMessage:e.message})})),eu}async function eh(e){try{let t=(await ed()).transaction(el),r=await t.objectStore(el).get(ef(e));return await t.done,r}catch(e){if(e instanceof w)Y.warn(e.message);else{let t=ea.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}async function ep(e,t){try{let r=(await ed()).transaction(el,"readwrite"),n=r.objectStore(el);await n.put(t,ef(e)),await r.done}catch(e){if(e instanceof w)Y.warn(e.message);else{let t=ea.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}function ef(e){return`${e.name}!${e.options.appId}`}class eg{constructor(e){this.container=e,this._heartbeatsCache=null;let t=this.container.getProvider("app").getImmediate();this._storage=new ew(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){var e,t;try{let r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=em();if((null==(e=this._heartbeatsCache)?void 0:e.heartbeats)==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,(null==(t=this._heartbeatsCache)?void 0:t.heartbeats)==null)||this._heartbeatsCache.lastSentHeartbeatDate===n||this._heartbeatsCache.heartbeats.some(e=>e.date===n))return;return this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter(e=>{let t=new Date(e.date).valueOf();return Date.now()-t<=2592e6}),this._storage.overwrite(this._heartbeatsCache)}catch(e){Y.warn(e)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)==null||0===this._heartbeatsCache.heartbeats.length)return"";let t=em(),{heartbeatsToSend:r,unsentEntries:n}=function(e,t=1024){let r=[],n=e.slice();for(let i of e){let e=r.find(e=>e.agent===i.agent);if(e){if(e.dates.push(i.date),eb(r)>t){e.dates.pop();break}}else if(r.push({agent:i.agent,dates:[i.date]}),eb(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),i=d(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}
2catch(e){return Y.warn(e),""}}}function em(){return new Date().toISOString().substring(0,10)}class ew{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!g()&&m().then(()=>!0).catch(()=>!1)}async read(){if(!await this._canUseIndexedDBPromise)return{heartbeats:[]};{let e=await eh(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){let r=await this.read();return ep(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){let r=await this.read();return ep(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function eb(e){return d(JSON.stringify({version:2,heartbeats:e})).length}en(new C("platform-logger",e=>new z(e),"PRIVATE")),en(new C("heartbeat",e=>new eg(e),"PRIVATE")),ec(J,G,""),ec(J,G,"esm2017"),ec("fire-js",""),ec("firebase","10.14.1","app");let ey="@firebase/installations",ev="0.6.9",eI=`w:${ev}`,eS="FIS_v2",eC=new b("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function e_(e){return e instanceof w&&e.code.includes("request-failed")}function eE({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function eD(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function eT(e,t){let r=(await t.json()).error;return eC.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function ek({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}async function eA(e){let t=await e();return t.status>=500&&t.status<600?e():t}async function eO({appConfig:e,heartbeatServiceProvider:t},{fid:r}){let n=eE(e),i=ek(e),a=t.getImmediate({optional:!0});if(a){let e=await a.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}let s={method:"POST",headers:i,body:JSON.stringify({fid:r,authVersion:eS,appId:e.appId,sdkVersion:eI})},o=await eA(()=>fetch(n,s));if(o.ok){let e=await o.json();return{fid:e.fid||r,registrationStatus:2,refreshToken:e.refreshToken,authToken:eD(e.authToken)}}throw await eT("Create Installation",o)}function ej(e){return new Promise(t=>{setTimeout(t,e)})}let eP=/^[cdef][\w-]{21}$/;function eN(e){return`${e.appName}!${e.appId}`}let eB=new Map;function eL(e,t){let r=eN(e);eM(r,t),function(e,t){let r=(!ex&&"BroadcastChannel"in self&&((ex=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{eM(e.data.key,e.data.fid)}),ex);r&&r.postMessage({key:e,fid:t}),0===eB.size&&ex&&(ex.close(),ex=null)}(r,t)}function eM(e,t){let r=eB.get(e);if(r)for(let e of r)e(t)}let ex=null,eR="firebase-installations-store",e$=null;function eF(){return e$||(e$=H("firebase-installations-database",1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(eR)}})),e$}async function eH(e,t){let r=eN(e),n=(await eF()).transaction(eR,"readwrite"),i=n.objectStore(eR),a=await i.get(r);return await i.put(t,r),await n.done,a&&a.fid===t.fid||eL(e,t.fid),t}async function eU(e){let t=eN(e),r=(await eF()).transaction(eR,"readwrite");await r.objectStore(eR).delete(t),await r.done}async function eK(e,t){let r=eN(e),n=(await eF()).transaction(eR,"readwrite"),i=n.objectStore(eR),a=await i.get(r),s=t(a);return void 0===s?await i.delete(r):await i.put(s,r),await n.done,s&&(!a||a.fid!==s.fid)&&eL(e,s.fid),s}async function eW(e){let t,r=await eK(e.appConfig,r=>{let n=function(e,t){if(0===t.registrationStatus){if(!navigator.onLine)return{installationEntry:t,registrationPromise:Promise.reject(eC.create("app-offline"))};let r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=eV(e,r);return{installationEntry:r,registrationPromise:n}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:eq(e)}:{installationEntry:t}}(e,eJ(r||{fid:function(){try{var e;let t=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(t),t[0]=112+t[0]%16;let r=(e=t,btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").substr(0,22));return eP.test(r)?r:""}catch(e){return""}}(),registrationStatus:0}));return t=n.registrationPromise,n.installationEntry});
2return""===r.fid?{installationEntry:await t}:{installationEntry:r,registrationPromise:t}}async function eV(e,t){try{let r=await eO(e,t);return eH(e.appConfig,r)}catch(r){throw e_(r)&&409===r.customData.serverCode?await eU(e.appConfig):await eH(e.appConfig,{fid:t.fid,registrationStatus:0}),r}}async function eq(e){let t=await ez(e.appConfig);for(;1===t.registrationStatus;)await ej(100),t=await ez(e.appConfig);if(0===t.registrationStatus){let{installationEntry:t,registrationPromise:r}=await eW(e);return r||t}return t}function ez(e){return eK(e,e=>{if(!e)throw eC.create("installation-not-found");return eJ(e)})}function eJ(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+1e4<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function eG({appConfig:e,heartbeatServiceProvider:t},r){let n=function(e,{fid:t}){return`${eE(e)}/${t}/authTokens:generate`}(e,r),i=function(e,{refreshToken:t}){var r;let n=ek(e);return n.append("Authorization",(r=t,`${eS} ${r}`)),n}(e,r),a=t.getImmediate({optional:!0});if(a){let e=await a.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}let s={method:"POST",headers:i,body:JSON.stringify({installation:{sdkVersion:eI,appId:e.appId}})},o=await eA(()=>fetch(n,s));if(o.ok)return eD(await o.json());throw await eT("Generate Auth Token",o)}async function eY(e,t=!1){let r,n=await eK(e.appConfig,n=>{var i;if(!e0(n))throw eC.create("not-registered");let a=n.authToken;if(!t&&2===(i=a).requestStatus&&!function(e){let t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+36e5}(i))return n;if(1===a.requestStatus)return r=eX(e,t),n;{if(!navigator.onLine)throw eC.create("app-offline");let t=function(e){let t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(n);return r=eZ(e,t),t}});return r?await r:n.authToken}async function eX(e,t){let r=await eQ(e.appConfig);for(;1===r.authToken.requestStatus;)await ej(100),r=await eQ(e.appConfig);let n=r.authToken;return 0===n.requestStatus?eY(e,t):n}function eQ(e){return eK(e,e=>{var t;if(!e0(e))throw eC.create("not-registered");return 1===(t=e.authToken).requestStatus&&t.requestTime+1e4<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}async function eZ(e,t){try{let r=await eG(e,t),n=Object.assign(Object.assign({},t),{authToken:r});return await eH(e.appConfig,n),r}catch(r){if(e_(r)&&(401===r.customData.serverCode||404===r.customData.serverCode))await eU(e.appConfig);else{let r=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await eH(e.appConfig,r)}throw r}}function e0(e){return void 0!==e&&2===e.registrationStatus}async function e1(e){let{installationEntry:t,registrationPromise:r}=await eW(e);return r?r.catch(console.error):eY(e).catch(console.error),t.fid}async function e2(e,t=!1){return await e6(e),(await eY(e,t)).token}async function e6(e){let{registrationPromise:t}=await eW(e);t&&await t}function e5(e){return eC.create("missing-app-config-values",{valueName:e})}let e4="installations";en(new C(e4,e=>{let t=e.getProvider("app").getImmediate(),r=function(e){if(!e||!e.options)throw e5("App Configuration");if(!e.name)throw e5("App Name");for(let t of["projectId","apiKey","appId"])if(!e.options[t])throw e5(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t),n=ei(t,"heartbeat");return{app:t,appConfig:r,heartbeatServiceProvider:n,_delete:()=>Promise.resolve()}},"PUBLIC")),en(new C("installations-internal",e=>{let t=ei(e.getProvider("app").getImmediate(),e4).getImmediate();return{getId:()=>e1(t),getToken:e=>e2(t,e)}},"PRIVATE")),ec(ey,ev),ec(ey,ev,"esm2017");let e3="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",e8="google.c.a.c_id";function e7(e){return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(tR||(tR={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked"}(t$||(t$={}));let e9="fcm_token_details_db",te="fcm_token_object_Store";async function tt(e){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(e9))return null;let t=null;return(await H(e9,5,{upgrade:async(r,n,i,a)=>{var s;if(n<2||!r.objectStoreNames.contains(te))return;
2let o=a.objectStore(te),c=await o.index("fcmSenderId").get(e);if(await o.clear(),c)if(2===n){if(!c.auth||!c.p256dh||!c.endpoint)return;t={token:c.fcmToken,createTime:null!=(s=c.createTime)?s:Date.now(),subscriptionOptions:{auth:c.auth,p256dh:c.p256dh,endpoint:c.endpoint,swScope:c.swScope,vapidKey:"string"==typeof c.vapidKey?c.vapidKey:e7(c.vapidKey)}}}else 3===n?t={token:c.fcmToken,createTime:c.createTime,subscriptionOptions:{auth:e7(c.auth),p256dh:e7(c.p256dh),endpoint:c.endpoint,swScope:c.swScope,vapidKey:e7(c.vapidKey)}}:4===n&&(t={token:c.fcmToken,createTime:c.createTime,subscriptionOptions:{auth:e7(c.auth),p256dh:e7(c.p256dh),endpoint:c.endpoint,swScope:c.swScope,vapidKey:e7(c.vapidKey)}})}})).close(),await U(e9),await U("fcm_vapid_details_db"),await U("undefined"),!function(e){if(!e||!e.subscriptionOptions)return!1;let{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?null:t}let tr="firebase-messaging-store",tn=null;function ti(){return tn||(tn=H("firebase-messaging-database",1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(tr)}})),tn}async function ta(e){let t=function({appConfig:e}){return e.appId}(e),r=await ti(),n=await r.transaction(tr).objectStore(tr).get(t);if(n)return n;{let t=await tt(e.appConfig.senderId);if(t)return await ts(e,t),t}}async function ts(e,t){let r=function({appConfig:e}){return e.appId}(e),n=(await ti()).transaction(tr,"readwrite");return await n.objectStore(tr).put(t,r),await n.done,t}async function to(e){let t=function({appConfig:e}){return e.appId}(e),r=(await ti()).transaction(tr,"readwrite");await r.objectStore(tr).delete(t),await r.done}let tc=new b("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function tl(e,t){let r,n={method:"POST",headers:await tp(e),body:JSON.stringify(tf(t))};try{let t=await fetch(th(e.appConfig),n);r=await t.json()}catch(e){throw tc.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(r.error){let e=r.error.message;throw tc.create("token-subscribe-failed",{errorInfo:e})}if(!r.token)throw tc.create("token-subscribe-no-token");return r.token}async function tu(e,t){let r,n={method:"PATCH",headers:await tp(e),body:JSON.stringify(tf(t.subscriptionOptions))};try{let i=await fetch(`${th(e.appConfig)}
2/${t.token}`,n);r=await i.json()}catch(e){throw tc.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(r.error){let e=r.error.message;throw tc.create("token-update-failed",{errorInfo:e})}if(!r.token)throw tc.create("token-update-no-token");return r.token}async function td(e,t){let r=await tp(e);try{let n=await fetch(`${th(e.appConfig)}/${t}`,{method:"DELETE",headers:r}),i=await n.json();if(i.error){let e=i.error.message;throw tc.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw tc.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function th({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function tp({appConfig:e,installations:t}){let r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${r}`})}function tf({p256dh:e,auth:t,endpoint:r,vapidKey:n}){let i={web:{endpoint:r,auth:t,p256dh:e}};return n!==e3&&(i.web.applicationPubKey=n),i}async function tg(e){let t=await ty(e.swRegistration,e.vapidKey),r={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:e7(t.getKey("auth")),p256dh:e7(t.getKey("p256dh"))},n=await ta(e.firebaseDependencies);if(!n)return tb(e.firebaseDependencies,r);if(function(e,t){let r=t.vapidKey===e.vapidKey,n=t.endpoint===e.endpoint,i=t.auth===e.auth,a=t.p256dh===e.p256dh;return r&&n&&i&&a}(n.subscriptionOptions,r))if(Date.now()>=n.createTime+6048e5)return tw(e,{token:n.token,createTime:Date.now(),subscriptionOptions:r});else return n.token;try{await td(e.firebaseDependencies,n.token)}catch(e){console.warn(e)}return tb(e.firebaseDependencies,r)}async function tm(e){let t=await ta(e.firebaseDependencies);t&&(await td(e.firebaseDependencies,t.token),await to(e.firebaseDependencies));let r=await e.swRegistration.pushManager.getSubscription();return!r||r.unsubscribe()}async function tw(e,t){try{let r=await tu(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await ts(e.firebaseDependencies,n),r}catch(e){throw e}}async function tb(e,t){let r={token:await tl(e,t),createTime:Date.now(),subscriptionOptions:t};return await ts(e,r),r.token}async function ty(e,t){let r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),r=atob((e+t).replace(/\-/g,"+").replace(/_/g,"/")),n=new Uint8Array(r.length);for(let e=0;e<r.length;++e)n[e]=r.charCodeAt(e);return n}(t)})}function tv(e){var t,r;let n={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function(e,t){if(!t.notification)return;e.notification={};let r=t.notification.title;r&&(e.notification.title=r);let n=t.notification.body;n&&(e.notification.body=n);let i=t.notification.image;i&&(e.notification.image=i);let a=t.notification.icon;a&&(e.notification.icon=a)}(n,e),t=n,(r=e).data&&(t.data=r.data),function(e,t){var r,n,i,a,s;if(!t.fcmOptions&&!(null==(r=t.notification)?void 0:r.click_action))return;e.fcmOptions={};let o=null!=(i=null==(n=t.fcmOptions)?void 0:n.link)?i:null==(a=t.notification)?void 0:a.click_action;o&&(e.fcmOptions.link=o);let c=null==(s=t.fcmOptions)?void 0:s.analytics_label;c&&(e.fcmOptions.analyticsLabel=c)}(n,e),n}function tI(e){return tc.create("missing-app-config-values",{valueName:e})}!function(e,t){let r=[];for(let n=0;n<e.length;n++)r.push(e.charAt(n)),n<t.length&&r.push(t.charAt(n));r.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class tS{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;let n=function(e){if(!e||!e.options)throw tI("App Configuration Object");if(!e.name)throw tI("App Name");let{options:t}=e;for(let e of["projectId","apiKey","appId","messagingSenderId"])if(!t[e])throw tI(e);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}async function tC(e){try{e.swRegistration=await navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}),e.swRegistration.update().catch(()=>{})}catch(e){throw tc.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function t_(e,t){if(t||e.swRegistration||await tC(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw tc.create("invalid-sw-registration");e.swRegistration=t}}
2async function tE(e,t){t?e.vapidKey=t:e.vapidKey||(e.vapidKey=e3)}async function tD(e,t){if(!navigator)throw tc.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw tc.create("permission-blocked");return await tE(e,null==t?void 0:t.vapidKey),await t_(e,null==t?void 0:t.serviceWorkerRegistration),tg(e)}async function tT(e,t,r){let n=function(e){switch(e){case t$.NOTIFICATION_CLICKED:return"notification_open";case t$.PUSH_RECEIVED:return"notification_foreground";default:throw Error()}}(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[e8],message_name:r["google.c.a.c_l"],message_time:r["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function tk(e,t){let r=t.data;if(!r.isFirebaseMessaging)return;e.onMessageHandler&&r.messageType===t$.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(tv(r)):e.onMessageHandler.next(tv(r)));let n=r.data;"object"==typeof n&&n&&e8 in n&&"1"===n["google.c.a.e"]&&await tT(e,r.messageType,n)}let tA="@firebase/messaging",tO="0.12.12";async function tj(){try{await m()}catch(e){return!1}return"undefined"!=typeof window&&g()&&"undefined"!=typeof navigator&&!!navigator.cookieEnabled&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}async function tP(e){if(!navigator)throw tc.create("only-available-in-window");return e.swRegistration||await tC(e),tm(e)}async function tN(e,t){return tD(e=S(e),t)}en(new C("messaging",e=>{let t=new tS(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>tk(t,e)),t},"PUBLIC")),en(new C("messaging-internal",e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>tD(t,e)}},"PRIVATE")),ec(tA,tO),ec(tA,tO,"esm2017");class tB{create(){return i(function*(){return(yield tj())?new tM:null})()}}let tL="BHNjvfd453thXYduGkB3tuYpl646pTKRvKFQCAlrRFLDnf0Bm9aeBb5XAGwPRqocfqxiEK58tjJyFEhYUrb-XIk";class tM{getToken(){return tN(this.messaging,{vapidKey:tL}).catch(e=>{if(e.toString().includes("Subscription failed - no active Service Worker"))return tN(this.messaging,{vapidKey:tL});throw e})}deleteToken(){return tP(S(this.messaging))}isSupported(){return tj()}constructor(){a(this,"messaging",void 0);let e=eo({apiKey:"AIzaSyACN3AUGGKHDWqee0KipAtmYePykXo2wfE",authDomain:"twitcasting-web-push.firebaseapp.com",databaseURL:"https://twitcasting-web-push.firebaseio.com",projectId:"twitcasting-web-push",storageBucket:"twitcasting-web-push.appspot.com",messagingSenderId:"250578957924",appId:"1:250578957924:web:6b2727afd38e8b3c641171",measurementId:"G-WHTFSX3866"});this.messaging=function(e=function(e=X){let t=Z.get(e);if(!t&&e===X&&p())return eo();if(!t)throw ea.create("no-app",{appName:e});return t}()){return tj().then(e=>{if(!e)throw tc.create("unsupported-browser")},e=>{throw tc.create("indexed-db-unsupported")}),ei(S(e),"messaging").getImmediate()}(e)}}var tx,tR,t$,tF=r(6808),tH=r.n(tF);let tU=new class{getItem(e,t){try{var r,n;return null!=(n=null==(r=this.storage)?void 0:r.getItem(e))?n:t}catch(e){return t}}getKeys(){try{return this.storage?Object.keys(this.storage):[]}catch(e){return[]}}getItemAsNumber(e,t){let r=parseFloat(this.getItem(e,String(t)));return isNaN(r)?t:r}getItemAsBoolean(e,t){return"1"===this.getItem(e,t?"1":"0")}setItem(e,t){try{var r;return null==(r=this.storage)||r.setItem(e,t),!0}catch(e){return!1}}setItemAsNumber(e,t){try{var r;return null==(r=this.storage)||r.setItem(e,t.toString()),!0}catch(e){return!1}}setItemAsBoolean(e,t){try{var r;return null==(r=this.storage)||r.setItem(e,t?"1":"0"),!0}catch(e){return!1}}removeItem(e){try{var t;return null==(t=this.storage)||t.removeItem(e),!0}catch(e){return!1}}constructor(e){a(this,"storage",null);try{this.storage=e()}catch(e){}}}(()=>window.localStorage),tK="web_devid",tW="tw-notify-web-device-id",tV=".t
2witcasting.tv";class tq{get(){let e=tH().get(tK);return e||null}set(e){tH().set(tK,e,{expires:5475,path:"/",domain:this.cookieDomain}),tU.setItem(tW,e)}delete(){tH().remove(tK,{path:"/",domain:tV}),tU.removeItem(tW)}restore(){let e=tU.getItem(tW,null);return!!e&&(this.set(e),!0)}constructor(e=tV){this.cookieDomain=e}}class tz{static init(e,t,r,n){return new tB().create().then(i=>{new tz(e,t,r,n,i).init()})}init(){return i(function*(){this.restore(),"migrate"===this.deviceIdMode&&(yield this.migrate()),this.bind()}).call(this)}migrate(){this.messaging.getToken().then(e=>{this.apiClient.registerToken(this.deviceId,e).then(()=>{this.deviceIdRepository.set(this.deviceId),window.location.reload()})})}restore(){let e=this.deviceIdRepository.get();!e&&this.deviceIdRepository.restore()&&window.location.reload(),e&&navigator.serviceWorker.getRegistration("/firebase-cloud-messaging-push-scope").then(t=>{var r;t||null==(r=this.messaging)||r.getToken().then(t=>{t&&this.apiClient.registerToken(e,t).then(()=>{})})})}bind(){let e=document.querySelector(".tw-notify-page");if(!this.messaging)return void e.setAttribute("data-push-supported","false");e.setAttribute("data-permission",Notification.permission);let t=document.querySelector(".tw-notify-start-form");t&&t.addEventListener("submit",e=>{e.preventDefault(),this.showLoading(),Notification.requestPermission().then(e=>{if(null!==this.deviceIdRepository.get())return void window.location.reload();if("granted"===e){var r;null==(r=this.messaging)||r.getToken().then(e=>{e?this.apiClient.registerToken(this.deviceId,e).then(()=>{this.deviceIdRepository.set(this.deviceId),window.location.reload()}):(this.hideLoading(),alert(t.dataset.errorMessage))}).catch(()=>{this.hideLoading(),alert(t.dataset.errorMessage)})}else this.hideLoading(),alert(t.dataset.pleasePermitMessage)})}),document.querySelectorAll(".tw-notify-menu-import").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault();let r=e.dataset.type;this.apiClient.import(this.deviceId,r).then(()=>{window.location.reload()})})});let r=document.querySelector(".tw-notify-menu-clear");r&&r.addEventListener("click",e=>{e.preventDefault(),window.confirm(r.dataset.confirmMessage)&&this.apiClient.clear(this.deviceId).then(()=>{window.location.reload()})}),document.querySelectorAll(".tw-notify-user-toggle-status").forEach(e=>{let t=e.querySelector("input");t.addEventListener("change",()=>{t.checked?this.apiClient.subscribe(this.deviceId,e.dataset.userId).catch(()=>{t.checked=!1}):this.apiClient.unsubscribe(this.deviceId,e.dataset.userId).catch(()=>{t.checked=!0})})})}showLoading(){document.querySelector(".tw-page-spinner").setAttribute("aria-hidden","false")}hideLoading(){document.querySelector(".tw-page-spinner").setAttribute("aria-hidden","true")}constructor(e,t,r,n,i){this.apiClient=e,this.deviceIdMode=t,this.deviceId=r,this.messaging=i,this.deviceIdRepository=new tq(n)}}function tJ(e,t,n){let i=e.split(".").map(e=>e.trim()).filter(e=>e.length>0);if(0===i.length)throw Error();let a=null!=n?n:function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw Error("unable to locate global object")}();i.reduce((e,r,n)=>n===i.length-1?(e[r]=t,t):(r in e||(e[r]={}),e[r]),a)}tJ("TwScripts.WebPush.WebPushApiClient",class{registerToken(e,t){return new Promise((r,n)=>{$.ajax({url:this.baseUrl+"/push/register/fcm",type:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e,token:t}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{r(e)},error:e=>{n(e)}})})}unregisterToken(e){return new Promise((t,r)=>{$.ajax({url:this.baseUrl+"/push/register/fcm",type:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{t(e)},error:e=>{r(e)}})})}updateOwner(e){return new Promise((t,r)=>{$.ajax({url:this.baseUrl+"/push/update/owner",type:"PUT",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{t(e)},error:e=>{r(e)}})})}updateToken(e,t){return new Promise((r,n)=>{$.ajax({url:this.baseUrl+"/push/update/fcm",type:"PUT",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e,token:t}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{r(e)},error:e=>{n(e)}})})}subscribe(e,t){return new Promise((r,n)=>{$.ajax({url:this.baseUrl+"/push/subscribe",type:"PUT",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e,user:t}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{r(e)},error:e=>{n(e)}})})}unsubscribe(e,t){return new Promise((r,n)=>{$.ajax({url:this.baseUrl+"/push/subscribe",type:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e,user:t}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{r(e)},error:e=>{n(e)}})})}clear(e){return new Promise((t,r)=>{$.ajax({url:this.baseUrl+"/push/clear",type:"PUT",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{t(e)},error:e=>{r(e)}})})}import(e,t){return new Promise((r,n)=>{$.ajax({url:this.baseUrl+"/push/import",type:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({device_id:e,type:t}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{r(e)},error:e=>{n(e)}})})}transfer(e,t){return new Promise((r,n)=>{$.ajax({url:this.baseUrl+"/push/transfer",type:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},data:JSON.stringify({src_device_id:e,dest_device_id:t}),dataType:"json",xhrFields:{withCredentials:!0},success:e=>{r(e)},error:e=>{n(e)}})})}constructor(e){this.baseUrl=e}}),tJ("TwScripts.WebPush.WebPushUserList",tz),tJ("TwScripts.WebPush.WebPushTransfer",class{init(){let e=document.querySelector(".tw-notify-do-transfer");if(e){if(!this.messaging.isSupported())return;e.setAttribute("aria-hidden",!1),e.addEventListener("submit",t=>{t.preventDefault(),Notification.requestPermission().then(t=>{"granted"===t?this.messaging.getToken().then(t=>{t?this.apiClient.transfer(this.srcDeviceId,this.destDeviceId).then(()=>{new tq().set(this.destDeviceId),window.location.href="/notifyindex.php"}):alert(e.dataset.errorMessage)}
2).catch(()=>{alert(e.dataset.errorMessage)}):alert(e.dataset.pleasePermitMessage)})})}}constructor(e,t,r){this.apiClient=e,this.srcDeviceId=t,this.destDeviceId=r,this.messaging=new tM(e,r)}})})()})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.