From cb9c0ec01a82e81039a31387041aeaed46ae9f93 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Tue, 4 Apr 2023 09:24:39 -0500 Subject: [PATCH 01/75] =?UTF-8?q?Instalaci=C3=B3n=20de=20firebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 22 +++++++++++++++++++++- src/lib/style.css | 0 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/lib/style.css diff --git a/src/index.html b/src/index.html index 788db3c9..feb9790d 100644 --- a/src/index.html +++ b/src/index.html @@ -4,9 +4,29 @@ - Document + Red Social para emprendores + + + + // Your web app's Firebase configuration + const firebaseConfig = { + apiKey: "AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg", + authDomain: "social-network-dev-005.firebaseapp.com", + projectId: "social-network-dev-005", + storageBucket: "social-network-dev-005.appspot.com", + messagingSenderId: "974878862098", + appId: "1:974878862098:web:3992591ee2ebb888c6e1cb" + }; + // Initialize Firebase + const app = initializeApp(firebaseConfig); + \ No newline at end of file diff --git a/src/lib/style.css b/src/lib/style.css new file mode 100644 index 00000000..e69de29b From aa00646b8f747e4f8c93585bfa62ab9a20dad315 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Tue, 4 Apr 2023 11:26:55 -0500 Subject: [PATCH 02/75] Instala el firebase --- src/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index feb9790d..67d70bda 100644 --- a/src/index.html +++ b/src/index.html @@ -13,7 +13,7 @@ import { initializeApp } from "https://www.gstatic.com/firebasejs/9.19.1/firebase-app.js"; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries - + // // Your web app's Firebase configuration const firebaseConfig = { From de03f0bf405baf1a1d4c221156f8196e871810f7 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 4 Apr 2023 18:18:24 -0500 Subject: [PATCH 03/75] =?UTF-8?q?desarrolla=20la=20p=C3=A1gina=20de=20init?= =?UTF-8?q?=20y=20login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/app.js | 62 +++++++++++++++ src/index.html | 12 +-- src/lib/img/Logo.png | Bin 0 -> 18640 bytes src/lib/img/fondo movil.png | Bin 0 -> 7472 bytes src/lib/img/fondo1.png | Bin 0 -> 24454 bytes src/lib/index.js | 11 ++- src/lib/style.css | 145 ++++++++++++++++++++++++++++++++++++ src/main.js | 33 +++++++- 8 files changed, 251 insertions(+), 12 deletions(-) create mode 100644 src/Components/app.js create mode 100644 src/lib/img/Logo.png create mode 100644 src/lib/img/fondo movil.png create mode 100644 src/lib/img/fondo1.png diff --git a/src/Components/app.js b/src/Components/app.js new file mode 100644 index 00000000..48ae136c --- /dev/null +++ b/src/Components/app.js @@ -0,0 +1,62 @@ +function init(navigateTo) { + const section = document.createElement('section'); + const logIn = document.createElement('button'); + logIn.className = 'logIn'; + const register = document.createElement('button'); + register.className = 'register'; + const google = document.createElement('button'); + google.className = 'google'; + const gitHub = document.createElement('button'); + gitHub.className = 'gitHub'; + + logIn.textContent = 'Inicia Sesión'; + register.textContent = 'Registrate'; + google.textContent = 'Registrate con Google'; + gitHub.textContent = 'Registrate con GitHub'; + + logIn.addEventListener('click', () => { + navigateTo('/login'); + }); + + section.append(logIn, register, google, gitHub); + return section; +} + +function login() { + const section = document.createElement('section'); + const interaction = document.createElement('section'); + interaction.className = 'interaction'; + const initSection = document.createElement('h2'); + initSection.className = 'initSection'; + const textButton = document.createElement('label'); + textButton.className = 'textButton'; + const card1 = document.createElement('input'); + card1.className = 'card1'; + const textPassword = document.createElement('label'); + textPassword.className = 'textPassword'; + const card2 = document.createElement('input'); + card2.className = 'card2'; + const getInt = document.createElement('button'); + getInt.className = 'getInt'; + const bottomText = document.createElement('button'); + bottomText.className = 'bottomText'; + + initSection.textContent = 'Inicio de Sesión'; + textButton.textContent = 'Correo Electronico'; + textButton.appendChild(card1); + card1.placeholder = 'ejemplo@gmail.com'; + textPassword.textContent = 'Contraseña'; + textPassword.appendChild(card2); + card2.placeholder = '********'; + getInt.textContent = 'Ingresar'; + bottomText.textContent = '¿No tienes una cuenta? Regístrate'; + + interaction.append(textButton, card1, textPassword, card2, getInt); + section.append(initSection, interaction, bottomText); + return section; +} + +export { + init, + login, +}; diff --git a/src/index.html b/src/index.html index 67d70bda..70bac761 100644 --- a/src/index.html +++ b/src/index.html @@ -4,18 +4,19 @@ - Red Social para emprendores - + Emprende.app + - + --> + \ No newline at end of file diff --git a/src/lib/img/Logo.png b/src/lib/img/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc708ef7bbe0047e365c0bc90cc7d44e4d87fbd GIT binary patch literal 18640 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 f5eh;n-+sJZ=AvV`Jk}au^U)H= { - // aqui tu codigo - console.log('Hola mundo!'); + title.textContent = 'Error 404: página no encontrada.'; + return title; }; + +export default error; + diff --git a/src/lib/style.css b/src/lib/style.css index e69de29b..00519518 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -0,0 +1,145 @@ +* { + font-family: Arial, Helvetica, sans-serif; + background-color: #B2CAEC; + background-image: url(./img/fondo1.png); + background-repeat: no-repeat; +} + +.logIn { + position: absolute; + width: 380px; + height: 46px; + left: 24px; + top: 308px; + font-weight: bold; + border: none; + font-size: 22px; + color: #FFFFFF; + background: #ECAF2E; + border-radius: 10px; +} + +.register { + position: absolute; + width: 380px; + height: 46px; + left: 24px; + top: 406px; + border: none; + font-weight: bold; + font-size: 22px; + color: #FFFFFF; + background: #528FD8; + border-radius: 10px; + +} + +.google { + box-sizing: border-box; + position: absolute; + width: 380px; + height: 48px; + left: 24px; + top: 572px; + font-size: 22px; + border: none; + background: #FFFFFF; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + border-radius: 10px; +} + +.gitHub { + box-sizing: border-box; + position: absolute; + width: 380px; + height: 48px; + left: 24px; + top: 640px; + font-size: 22px; + border: none; + background: #FFFFFF; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + border-radius: 10px; +} + + +.initSection { + position: absolute; + left: 28px; + top: 254px; + font-size: 22px; + color: #040404; +} + +.textButton { + position: absolute; + height: 23px; + left: 49px; + top: 316px; + font-size: 20px; + background: none; +} + +.card1 { + + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 351px; + border: none; + border-radius: 12px; + font-size: 20px; +} + +.textPassword { + position: absolute; + left: 49px; + top: 436px; + font-size: 20px; + background: none; +} + +.card2 { + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 478px; + border: none; + background: #FFFEFE; + border-radius: 12px; + font-size: 20px; + +} + +.getInt { + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 616px; + font-weight: bold; + font-size: 22px; + border: none; + background: #528FD8; + border-radius: 12px; + color: #FFFEFE; +} + +.bottomText { + position: absolute; + height: 25px; + left: 40px; + top: 847px; + + font-size: 22px; + background: none; + text-decoration: none; + outline: none; +} + +.interaction{ + + background: #D9D9D9; +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index ac27e91a..5be25ee2 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,32 @@ -// Este es el punto de entrada de tu aplicacion +import { error } from './lib/index.js'; +import { init, login } from './Components/app.js'; + +const root = document.getElementById('root'); +root.append(init()); + +const routes = [ + { path: '/', component: init }, + { path: '/login', component: login }, + { path: '/error', component: error } +]; + +const defaultRoute = '/'; + +function navigateTo(hash) { + const route = routes.find((routeFind) => routeFind.path === hash); + if (route && route.component) { + window.history.pushState( + {}, route.path, window.location.origin + route.path); + + if (root.firstChild) { + root.removeChild(root.firstChild) + } + root.append(route.component(navigateTo)); + } else { + navigateTo('/error'); + } +} + +navigateTo(window.location.pathname || defaultRoute); -import { myFunction } from './lib/index.js'; -myFunction(); From 0df3e6fce7a617615743cead7eb4c1b67096f140 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Wed, 5 Apr 2023 16:32:59 -0400 Subject: [PATCH 04/75] implementando firebase --- src/firebase.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/firebase.js diff --git a/src/firebase.js b/src/firebase.js new file mode 100644 index 00000000..e69de29b From 084449609f8d9edd1f6add173d35655132cba59e Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 5 Apr 2023 17:32:54 -0500 Subject: [PATCH 05/75] agrega la pantalla de crear usuario --- src/Components/app.js | 68 +++++++++++++++++++++++++++++++++++--- src/Components/firebase.js | 18 ++++++++++ src/index.html | 29 ++++------------ src/lib/index.js | 8 +---- src/main.js | 7 ++-- 5 files changed, 93 insertions(+), 37 deletions(-) create mode 100644 src/Components/firebase.js diff --git a/src/Components/app.js b/src/Components/app.js index 48ae136c..8093b502 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,3 +1,7 @@ +import { createUserWithEmailAndPassword } from 'https://www.gstatic.com/firebasejs/9.18.0/firebase-auth.js'; +import { auth } from './firebase.js'; + +// pantalla inicial function init(navigateTo) { const section = document.createElement('section'); const logIn = document.createElement('button'); @@ -21,20 +25,20 @@ function init(navigateTo) { section.append(logIn, register, google, gitHub); return section; } - +// pantalla - inicio de sesión function login() { const section = document.createElement('section'); - const interaction = document.createElement('section'); + const interaction = document.createElement('form'); interaction.className = 'interaction'; const initSection = document.createElement('h2'); initSection.className = 'initSection'; const textButton = document.createElement('label'); textButton.className = 'textButton'; - const card1 = document.createElement('input'); + const card1 = document.createElement('input').value; card1.className = 'card1'; const textPassword = document.createElement('label'); textPassword.className = 'textPassword'; - const card2 = document.createElement('input'); + const card2 = document.createElement('input').value; card2.className = 'card2'; const getInt = document.createElement('button'); getInt.className = 'getInt'; @@ -55,8 +59,64 @@ function login() { section.append(initSection, interaction, bottomText); return section; } +// pantalla - error +function mistake() { + const title = document.createElement('h2'); + + title.textContent = 'Error 404: página no encontrada.'; + return title; +} + +// pantalla - crear cuenta +function create() { + const section = document.createElement('section'); + const formCreateAccount = document.createElement('form'); + formCreateAccount.className = 'formCreateAccount'; + const createAccount = document.createElement('h2'); + createAccount.className = 'createAccount'; + const textButton = document.createElement('label'); + textButton.className = 'textButtonCreateAccount'; + const card1 = document.createElement('input'); + card1.className = 'card1'; + const textPassword = document.createElement('label'); + textPassword.className = 'textPasswordCreateAccount'; + const card2 = document.createElement('input'); + card2.className = 'card2'; + const bottomKeep = document.createElement('button'); + bottomKeep.className = 'bottomKeep'; + const consider = document.createElement('button'); + consider.className = 'consider'; + createAccount.textContent = 'Crear Cuenta'; + textButton.textContent = 'Correo Electronico'; + textButton.appendChild(card1); + card1.placeholder = 'ejemplo@gmail.com'; + textPassword.textContent = 'Contraseña'; + textPassword.appendChild(card2); + card2.placeholder = '********'; + bottomKeep.textContent = 'Guardar'; + consider.textContent = '¿Ya tienes cuenta? Iniciar Sesión'; + + formCreateAccount.append(textButton, card1, textPassword, card2, bottomKeep); + section.append(createAccount, formCreateAccount, consider); + + formCreateAccount.addEventListener('submit', async (e) => { + e.preventDefault(); + const email = formCreateAccount.card1.value; + const contraseña = formCreateAccount.card2.value; + try { + const userCredentials = await createUserWithEmailAndPassword(auth, email, contraseña); + console.log(userCredentials); + } catch (error) { + console.log(error); + } + }); + + return section; +} export { init, login, + mistake, + create, }; diff --git a/src/Components/firebase.js b/src/Components/firebase.js new file mode 100644 index 00000000..aac426d0 --- /dev/null +++ b/src/Components/firebase.js @@ -0,0 +1,18 @@ +// Import the functions you need from the SDKs you need +import { initializeApp } from "https://www.gstatic.com/firebasejs/9.19.1/firebase-app.js"; +import { getAuth } from "https://www.gstatic.com/firebasejs/9.18.0/firebase-auth.js" +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = { + apiKey: 'AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg', + authDomain: 'social-network-dev-005.firebaseapp.com', + projectId: 'social-network-dev-005', + storageBucket: 'social-network-dev-005.appspot.com', + messagingSenderId: '974878862098', + appId: '1:974878862098:web:3992591ee2ebb888c6e1cb', +}; +// Initialize Firebase +export const app = initializeApp(firebaseConfig); +export const auth = getAuth(app); diff --git a/src/index.html b/src/index.html index 70bac761..09acf243 100644 --- a/src/index.html +++ b/src/index.html @@ -1,34 +1,19 @@ + Emprende.app - + + + +
- - - + + \ No newline at end of file diff --git a/src/lib/index.js b/src/lib/index.js index 3c9d1a39..94c31a5c 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1,9 +1,3 @@ -export function error() { - const title = document.createElement('h2'); +//funciones que seran testeadas - title.textContent = 'Error 404: página no encontrada.'; - return title; -}; - -export default error; diff --git a/src/main.js b/src/main.js index 5be25ee2..9c19eedd 100644 --- a/src/main.js +++ b/src/main.js @@ -1,15 +1,15 @@ -import { error } from './lib/index.js'; +//import { funcion a crear } from './lib/index.js'; import { init, login } from './Components/app.js'; +import './Firebase/firebase.js'; const root = document.getElementById('root'); root.append(init()); - +//rutas SPA const routes = [ { path: '/', component: init }, { path: '/login', component: login }, { path: '/error', component: error } ]; - const defaultRoute = '/'; function navigateTo(hash) { @@ -26,7 +26,6 @@ function navigateTo(hash) { navigateTo('/error'); } } - navigateTo(window.location.pathname || defaultRoute); From 68b8654b7f7f4dec280c47ec0224a7c900bfa6af Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 5 Apr 2023 19:21:19 -0500 Subject: [PATCH 06/75] instala firebase desde la terminal --- package.json | 3 +++ src/Components/app.js | 6 +++--- src/Components/firebase.js | 6 +++--- src/index.html | 3 +-- src/lib/index.js | 4 +--- src/main.js | 39 +++++++++++++++++++------------------- 6 files changed, 31 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 75e7cb9a..94b777ff 100644 --- a/package.json +++ b/package.json @@ -36,5 +36,8 @@ }, "engines": { "node": ">=16.x" + }, + "dependencies": { + "firebase": "^9.19.1" } } diff --git a/src/Components/app.js b/src/Components/app.js index 8093b502..989db430 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,4 +1,4 @@ -import { createUserWithEmailAndPassword } from 'https://www.gstatic.com/firebasejs/9.18.0/firebase-auth.js'; +import { createUserWithEmailAndPassword } from 'firebase/auth'; import { auth } from './firebase.js'; // pantalla inicial @@ -34,11 +34,11 @@ function login() { initSection.className = 'initSection'; const textButton = document.createElement('label'); textButton.className = 'textButton'; - const card1 = document.createElement('input').value; + const card1 = document.createElement('input'); card1.className = 'card1'; const textPassword = document.createElement('label'); textPassword.className = 'textPassword'; - const card2 = document.createElement('input').value; + const card2 = document.createElement('input'); card2.className = 'card2'; const getInt = document.createElement('button'); getInt.className = 'getInt'; diff --git a/src/Components/firebase.js b/src/Components/firebase.js index aac426d0..51b86c8b 100644 --- a/src/Components/firebase.js +++ b/src/Components/firebase.js @@ -1,9 +1,9 @@ // Import the functions you need from the SDKs you need -import { initializeApp } from "https://www.gstatic.com/firebasejs/9.19.1/firebase-app.js"; -import { getAuth } from "https://www.gstatic.com/firebasejs/9.18.0/firebase-auth.js" +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries - + // Your web app's Firebase configuration const firebaseConfig = { apiKey: 'AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg', diff --git a/src/index.html b/src/index.html index 09acf243..d6922ae1 100644 --- a/src/index.html +++ b/src/index.html @@ -12,8 +12,7 @@ -
- +
\ No newline at end of file diff --git a/src/lib/index.js b/src/lib/index.js index 94c31a5c..c6a41191 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1,3 +1 @@ -//funciones que seran testeadas - - +// funciones que seran testeadas diff --git a/src/main.js b/src/main.js index 9c19eedd..7db16c3c 100644 --- a/src/main.js +++ b/src/main.js @@ -1,31 +1,32 @@ -//import { funcion a crear } from './lib/index.js'; -import { init, login } from './Components/app.js'; -import './Firebase/firebase.js'; +// import { funcion a crear } from './lib/index.js'; +import { + init, login, mistake, create, +} from './Components/app.js'; +import './Components/firebase.js'; const root = document.getElementById('root'); root.append(init()); -//rutas SPA +// rutas SPA const routes = [ - { path: '/', component: init }, - { path: '/login', component: login }, - { path: '/error', component: error } + { path: '/', component: init }, + { path: '/login', component: login }, + { path: '/register', component: create }, + { path: '/error', component: mistake }, + ]; const defaultRoute = '/'; function navigateTo(hash) { - const route = routes.find((routeFind) => routeFind.path === hash); - if (route && route.component) { - window.history.pushState( - {}, route.path, window.location.origin + route.path); + const route = routes.find((routeFind) => routeFind.path === hash); + if (route && route.component) { + window.history.pushState({}, route.path, window.location.origin + route.path); - if (root.firstChild) { - root.removeChild(root.firstChild) - } - root.append(route.component(navigateTo)); - } else { - navigateTo('/error'); + if (root.firstChild) { + root.removeChild(root.firstChild); } + root.append(route.component(navigateTo)); + } else { + navigateTo('/error'); + } } navigateTo(window.location.pathname || defaultRoute); - - From f6109822c946796e79ddcc9e89ab5822d122cb89 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Mon, 10 Apr 2023 10:24:19 -0400 Subject: [PATCH 07/75] Enlazando inicio con google --- src/Components/app.js | 77 ++++++++++++++++++++++++++++---------- src/Components/firebase.js | 23 ++++++++++++ src/firebase.js | 0 src/lib/style.css | 33 ++++++++++++++++ src/main.js | 7 +++- 5 files changed, 119 insertions(+), 21 deletions(-) delete mode 100644 src/firebase.js diff --git a/src/Components/app.js b/src/Components/app.js index 989db430..01a22d9b 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,31 +1,63 @@ import { createUserWithEmailAndPassword } from 'firebase/auth'; import { auth } from './firebase.js'; +import { signInWithPopup, GoogleAuthProvider } from "firebase/auth"; // pantalla inicial -function init(navigateTo) { + +export function init(navigateTo) { const section = document.createElement('section'); - const logIn = document.createElement('button'); - logIn.className = 'logIn'; - const register = document.createElement('button'); - register.className = 'register'; - const google = document.createElement('button'); - google.className = 'google'; - const gitHub = document.createElement('button'); - gitHub.className = 'gitHub'; - - logIn.textContent = 'Inicia Sesión'; - register.textContent = 'Registrate'; - google.textContent = 'Registrate con Google'; - gitHub.textContent = 'Registrate con GitHub'; + section.innerHTML = `
+ + +
+ o +
+ +
`; + const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { - navigateTo('/login'); + navigateTo('/login'); +}); + + const register = section.querySelector('.register'); + register.addEventListener('click', () => { + navigateTo('/register'); +}); + + const google = section.querySelector('.google'); + google.addEventListener('click', () => { + + const provider = new GoogleAuthProvider(); + signInWithPopup(auth, provider) + .then((result) => { + // This gives you a Google Access Token. You can use it to access the Google API. + const credential = GoogleAuthProvider.credentialFromResult(result); + const token = credential.accessToken; + // The signed-in user info. + const user = result.user; + // IdP data available using getAdditionalUserInfo(result) + // ... + navigateTo('/mainScreen'); + }).catch((error) => { + // Handle Errors here. + const errorCode = error.code; + const errorMessage = error.message; + // The email of the user's account used. + const email = error.customData.email; + // The AuthCredential type that was used. + const credential = GoogleAuthProvider.credentialFromError(error); + // ... }); +}); + + section.append(logIn, register, google); - section.append(logIn, register, google, gitHub); return section; -} -// pantalla - inicio de sesión +}; + function login() { const section = document.createElement('section'); const interaction = document.createElement('form'); @@ -59,6 +91,7 @@ function login() { section.append(initSection, interaction, bottomText); return section; } + // pantalla - error function mistake() { const title = document.createElement('h2'); @@ -114,8 +147,14 @@ function create() { return section; } + +export function mainScreen () { + const section = document.createElement('section'); + section.innerHTML = `

Welcome to Main Screen!

`; + return section; +} + export { - init, login, mistake, create, diff --git a/src/Components/firebase.js b/src/Components/firebase.js index 51b86c8b..2b37b910 100644 --- a/src/Components/firebase.js +++ b/src/Components/firebase.js @@ -1,6 +1,7 @@ // Import the functions you need from the SDKs you need import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; + // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries @@ -16,3 +17,25 @@ const firebaseConfig = { // Initialize Firebase export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); +//export const auth = getAuth(); +/* const provider = new GoogleAuthProvider(); +signInWithPopup(auth, provider) + .then((result) => { + // This gives you a Google Access Token. You can use it to access the Google API. + const credential = GoogleAuthProvider.credentialFromResult(result); + const token = credential.accessToken; + // The signed-in user info. + const user = result.user; + // IdP data available using getAdditionalUserInfo(result) + // ... + }).catch((error) => { + // Handle Errors here. + const errorCode = error.code; + const errorMessage = error.message; + // The email of the user's account used. + const email = error.customData.email; + // The AuthCredential type that was used. + const credential = GoogleAuthProvider.credentialFromError(error); + // ... + }); + */ \ No newline at end of file diff --git a/src/firebase.js b/src/firebase.js deleted file mode 100644 index e69de29b..00000000 diff --git a/src/lib/style.css b/src/lib/style.css index 00519518..1a718817 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -34,6 +34,30 @@ } +.separator1 { + position: absolute; + width: 153px; + left: 33px; + top: 527px; + border: 1px solid #000000; +} + +.separatorText { + position: absolute; + left: 208px; + top: 523px; + font-weight: 400; + font-size: 18px; +} + +.separator2 { + position: absolute; + width: 153px; + left: 248px; + top: 527px; + border: 1px solid #000000; +} + .google { box-sizing: border-box; position: absolute; @@ -42,10 +66,19 @@ left: 24px; top: 572px; font-size: 22px; + padding-left: 58px; border: none; background: #FFFFFF; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; + +} + +.imgGoogle { + position: absolute; + width: 26px; + height: 26px; + left: 52px; } .gitHub { diff --git a/src/main.js b/src/main.js index 7db16c3c..b6596fe0 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,6 @@ // import { funcion a crear } from './lib/index.js'; import { - init, login, mistake, create, + init, login, mistake, create, mainScreen } from './Components/app.js'; import './Components/firebase.js'; @@ -12,11 +12,12 @@ const routes = [ { path: '/login', component: login }, { path: '/register', component: create }, { path: '/error', component: mistake }, + { path: '/mainScreen', component: mainScreen }, ]; const defaultRoute = '/'; -function navigateTo(hash) { + function navigateTo(hash) { const route = routes.find((routeFind) => routeFind.path === hash); if (route && route.component) { window.history.pushState({}, route.path, window.location.origin + route.path); @@ -29,4 +30,6 @@ function navigateTo(hash) { navigateTo('/error'); } } + + navigateTo(window.location.pathname || defaultRoute); From acd50a5ee11a85c90d5a973d6bf08ee0c2abb873 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 10 Apr 2023 10:36:18 -0500 Subject: [PATCH 08/75] =?UTF-8?q?itera=20la=20pantalla=20de=20inicio=20de?= =?UTF-8?q?=20ssesi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/app.js | 49 +++++++++++++------------------------ src/index.html | 2 +- src/lib/style.css | 56 +++++++++++++++++++++++++++---------------- 3 files changed, 54 insertions(+), 53 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 989db430..346f2888 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -25,40 +25,25 @@ function init(navigateTo) { section.append(logIn, register, google, gitHub); return section; } -// pantalla - inicio de sesión -function login() { - const section = document.createElement('section'); - const interaction = document.createElement('form'); - interaction.className = 'interaction'; - const initSection = document.createElement('h2'); - initSection.className = 'initSection'; - const textButton = document.createElement('label'); - textButton.className = 'textButton'; - const card1 = document.createElement('input'); - card1.className = 'card1'; - const textPassword = document.createElement('label'); - textPassword.className = 'textPassword'; - const card2 = document.createElement('input'); - card2.className = 'card2'; - const getInt = document.createElement('button'); - getInt.className = 'getInt'; - const bottomText = document.createElement('button'); - bottomText.className = 'bottomText'; - initSection.textContent = 'Inicio de Sesión'; - textButton.textContent = 'Correo Electronico'; - textButton.appendChild(card1); - card1.placeholder = 'ejemplo@gmail.com'; - textPassword.textContent = 'Contraseña'; - textPassword.appendChild(card2); - card2.placeholder = '********'; - getInt.textContent = 'Ingresar'; - bottomText.textContent = '¿No tienes una cuenta? Regístrate'; +// pantalla - inicio de sesión +const login = () => { + const sectionLogin = document.createElement('div'); + sectionLogin.innerHTML = `
+

Inicio de Sesión

+
+ + + + + +
+ ¿No tienes una cuenta? Regístrate +
+ `; + return sectionLogin; +}; - interaction.append(textButton, card1, textPassword, card2, getInt); - section.append(initSection, interaction, bottomText); - return section; -} // pantalla - error function mistake() { const title = document.createElement('h2'); diff --git a/src/index.html b/src/index.html index d6922ae1..5e9f9499 100644 --- a/src/index.html +++ b/src/index.html @@ -12,7 +12,7 @@ -
+
\ No newline at end of file diff --git a/src/lib/style.css b/src/lib/style.css index 00519518..207b4429 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -3,6 +3,9 @@ background-color: #B2CAEC; background-image: url(./img/fondo1.png); background-repeat: no-repeat; + padding: 0%; + margin: 0%; + box-sizing: border-box; } .logIn { @@ -62,55 +65,74 @@ border-radius: 10px; } +.formInteraction { + margin: 70% 5% 7%; + width: 92%; + height: 404px; + border-radius: 12px; + background: #D9D9D9; + background-image: none; + opacity: 0.9; +} + +.cardLogin { + background-image: none; + height: 0px +} .initSection { position: absolute; left: 28px; top: 254px; font-size: 22px; - color: #040404; + background: none; } -.textButton { + + +.labelEmail { position: absolute; height: 23px; left: 49px; - top: 316px; + top: 330px; font-size: 20px; background: none; } -.card1 { - +.inputEmail { position: absolute; width: 341px; height: 45px; left: 49px; - top: 351px; + top: 369px; border: none; border-radius: 12px; - font-size: 20px; + font-size: 21px; + } -.textPassword { + + +.labelPassword { position: absolute; + height: 23px; left: 49px; - top: 436px; + top: 466px; font-size: 20px; + line-height: 23px; background: none; } -.card2 { +.inputPassword { position: absolute; width: 341px; height: 45px; left: 49px; - top: 478px; + top: 508px; border: none; background: #FFFEFE; border-radius: 12px; - font-size: 20px; - + font-size: 30px; } .getInt { @@ -132,14 +154,8 @@ height: 25px; left: 40px; top: 847px; - font-size: 22px; background: none; - text-decoration: none; outline: none; -} - -.interaction{ - - background: #D9D9D9; + font-weight: bold; } \ No newline at end of file From 269fce35c86acb82e80e6b5d9cff8a051ae25031 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 10 Apr 2023 10:53:29 -0500 Subject: [PATCH 09/75] actualiza cambios del html --- src/index.html | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/index.html b/src/index.html index 5e9f9499..788db3c9 100644 --- a/src/index.html +++ b/src/index.html @@ -1,18 +1,12 @@ - - Emprende.app - - - + Document - -
+ - \ No newline at end of file From 4d599e18663a13f462978a8a4d49b983e82f10b1 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 10 Apr 2023 11:06:01 -0500 Subject: [PATCH 10/75] actualiza los cambios de pantalla inicial --- src/Components/app.js | 54 ++++++++++++++++++-------------------- src/Components/firebase.js | 24 +---------------- src/index.html | 7 +++-- src/lib/style.css | 2 +- src/main.js | 7 +++-- 5 files changed, 36 insertions(+), 58 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 0dd6d1e2..12839ddf 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,6 +1,5 @@ -import { createUserWithEmailAndPassword } from 'firebase/auth'; +import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; import { auth } from './firebase.js'; -import { signInWithPopup, GoogleAuthProvider } from "firebase/auth"; // pantalla inicial @@ -19,39 +18,38 @@ export function init(navigateTo) { const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { - navigateTo('/login'); -}); + navigateTo('/login'); + }); const register = section.querySelector('.register'); register.addEventListener('click', () => { - navigateTo('/register'); -}); + navigateTo('/register'); + }); const google = section.querySelector('.google'); google.addEventListener('click', () => { - const provider = new GoogleAuthProvider(); signInWithPopup(auth, provider) - .then((result) => { - // This gives you a Google Access Token. You can use it to access the Google API. - const credential = GoogleAuthProvider.credentialFromResult(result); - const token = credential.accessToken; - // The signed-in user info. - const user = result.user; - // IdP data available using getAdditionalUserInfo(result) - // ... - navigateTo('/mainScreen'); - }).catch((error) => { - // Handle Errors here. - const errorCode = error.code; - const errorMessage = error.message; - // The email of the user's account used. - const email = error.customData.email; - // The AuthCredential type that was used. - const credential = GoogleAuthProvider.credentialFromError(error); - // ... + .then((result) => { + // This gives you a Google Access Token. You can use it to access the Google API. + const credential = GoogleAuthProvider.credentialFromResult(result); + const token = credential.accessToken; + // The signed-in user info. + const user = result.user; + // IdP data available using getAdditionalUserInfo(result) + // ... + navigateTo('/mainScreen'); + }).catch((error) => { + // Handle Errors here. + const errorCode = error.code; + const errorMessage = error.message; + // The email of the user's account used. + const email = error.customData.email; + // The AuthCredential type that was used. + const credential = GoogleAuthProvider.credentialFromError(error); + // ... + }); }); -}); section.append(logIn, register, google); @@ -132,9 +130,9 @@ function create() { return section; } -export function mainScreen () { +export function mainScreen() { const section = document.createElement('section'); - section.innerHTML = `

Welcome to Main Screen!

`; + section.innerHTML = '

Welcome to Main Screen!

'; return section; } diff --git a/src/Components/firebase.js b/src/Components/firebase.js index 2b37b910..4f15a7d5 100644 --- a/src/Components/firebase.js +++ b/src/Components/firebase.js @@ -4,7 +4,7 @@ import { getAuth } from 'firebase/auth'; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries - + // Your web app's Firebase configuration const firebaseConfig = { apiKey: 'AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg', @@ -17,25 +17,3 @@ const firebaseConfig = { // Initialize Firebase export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); -//export const auth = getAuth(); -/* const provider = new GoogleAuthProvider(); -signInWithPopup(auth, provider) - .then((result) => { - // This gives you a Google Access Token. You can use it to access the Google API. - const credential = GoogleAuthProvider.credentialFromResult(result); - const token = credential.accessToken; - // The signed-in user info. - const user = result.user; - // IdP data available using getAdditionalUserInfo(result) - // ... - }).catch((error) => { - // Handle Errors here. - const errorCode = error.code; - const errorMessage = error.message; - // The email of the user's account used. - const email = error.customData.email; - // The AuthCredential type that was used. - const credential = GoogleAuthProvider.credentialFromError(error); - // ... - }); - */ \ No newline at end of file diff --git a/src/index.html b/src/index.html index 788db3c9..54904924 100644 --- a/src/index.html +++ b/src/index.html @@ -2,11 +2,14 @@ + Emprende.app - Document + + + - +
\ No newline at end of file diff --git a/src/lib/style.css b/src/lib/style.css index b27baa7e..81b33f3b 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -44,7 +44,7 @@ top: 527px; border: 1px solid #000000; } - + .separatorText { position: absolute; left: 208px; diff --git a/src/main.js b/src/main.js index b6596fe0..eb0a3bea 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,6 @@ // import { funcion a crear } from './lib/index.js'; import { - init, login, mistake, create, mainScreen + init, login, mistake, create, mainScreen, } from './Components/app.js'; import './Components/firebase.js'; @@ -12,12 +12,12 @@ const routes = [ { path: '/login', component: login }, { path: '/register', component: create }, { path: '/error', component: mistake }, - { path: '/mainScreen', component: mainScreen }, + { path: '/mainScreen', component: mainScreen }, ]; const defaultRoute = '/'; - function navigateTo(hash) { +function navigateTo(hash) { const route = routes.find((routeFind) => routeFind.path === hash); if (route && route.component) { window.history.pushState({}, route.path, window.location.origin + route.path); @@ -31,5 +31,4 @@ const defaultRoute = '/'; } } - navigateTo(window.location.pathname || defaultRoute); From 5ba99b556f8a9b0e4f50a8ba97bf5e4514990f8d Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Mon, 10 Apr 2023 13:52:29 -0400 Subject: [PATCH 11/75] Modificando create --- src/Components/app.js | 51 +++++++++++++++---------------------------- src/lib/style.css | 5 +++++ 2 files changed, 22 insertions(+), 34 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 12839ddf..148c5768 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -82,38 +82,20 @@ function mistake() { return title; } -// pantalla - crear cuenta -function create() { - const section = document.createElement('section'); - const formCreateAccount = document.createElement('form'); - formCreateAccount.className = 'formCreateAccount'; - const createAccount = document.createElement('h2'); - createAccount.className = 'createAccount'; - const textButton = document.createElement('label'); - textButton.className = 'textButtonCreateAccount'; - const card1 = document.createElement('input'); - card1.className = 'card1'; - const textPassword = document.createElement('label'); - textPassword.className = 'textPasswordCreateAccount'; - const card2 = document.createElement('input'); - card2.className = 'card2'; - const bottomKeep = document.createElement('button'); - bottomKeep.className = 'bottomKeep'; - const consider = document.createElement('button'); - consider.className = 'consider'; - - createAccount.textContent = 'Crear Cuenta'; - textButton.textContent = 'Correo Electronico'; - textButton.appendChild(card1); - card1.placeholder = 'ejemplo@gmail.com'; - textPassword.textContent = 'Contraseña'; - textPassword.appendChild(card2); - card2.placeholder = '********'; - bottomKeep.textContent = 'Guardar'; - consider.textContent = '¿Ya tienes cuenta? Iniciar Sesión'; - - formCreateAccount.append(textButton, card1, textPassword, card2, bottomKeep); - section.append(createAccount, formCreateAccount, consider); +const create = () => { + const sectionCreate = document.createElement('section'); + sectionCreate.innerHTML = `
+
+

Crear cuenta

+ + + + + + +
+
+ `; formCreateAccount.addEventListener('submit', async (e) => { e.preventDefault(); @@ -127,8 +109,9 @@ function create() { } }); - return section; -} + return sectionCreate; +}; + export function mainScreen() { const section = document.createElement('section'); diff --git a/src/lib/style.css b/src/lib/style.css index 81b33f3b..096322f7 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -8,6 +8,11 @@ box-sizing: border-box; } +.emprende { + position: absolute; + width: 100px; +} + .logIn { position: absolute; width: 380px; From 2c2162b498a485b8d0fd91974c5035a5b8c9bb93 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Tue, 11 Apr 2023 12:07:01 -0400 Subject: [PATCH 12/75] separando logo de fondo --- src/Components/app.js | 31 +++++++++++++++++----------- src/lib/img/Logo.png | Bin 18640 -> 18585 bytes src/lib/style.css | 47 +++++++++++++++++++++++++----------------- 3 files changed, 47 insertions(+), 31 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 148c5768..fc87594e 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -5,16 +5,23 @@ import { auth } from './firebase.js'; export function init(navigateTo) { const section = document.createElement('section'); - section.innerHTML = `
- - -
- o -
- -
`; + section.innerHTML = ` +
+ +
+ + +
+ o +
+ +
+
+`; + const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { @@ -97,7 +104,7 @@ const create = () => { `; - formCreateAccount.addEventListener('submit', async (e) => { +/* formCreateAccount.addEventListener('submit', async (e) => { e.preventDefault(); const email = formCreateAccount.card1.value; const contraseña = formCreateAccount.card2.value; @@ -107,7 +114,7 @@ const create = () => { } catch (error) { console.log(error); } - }); + }); */ return sectionCreate; }; diff --git a/src/lib/img/Logo.png b/src/lib/img/Logo.png index 4bc708ef7bbe0047e365c0bc90cc7d44e4d87fbd..3b357e3cb54b7307b7b90d4de49b4d1240716c7d 100644 GIT binary patch literal 18585 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 literal 18640 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 Date: Tue, 11 Apr 2023 11:13:49 -0500 Subject: [PATCH 13/75] coloca estilos a la pantalla de crear cuenta y error --- src/Components/app.js | 56 ++++++++++++------ src/lib/img/error404.png | Bin 0 -> 37752 bytes src/lib/style.css | 121 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 152 insertions(+), 25 deletions(-) create mode 100644 src/lib/img/error404.png diff --git a/src/Components/app.js b/src/Components/app.js index 148c5768..e577ff2a 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -2,7 +2,6 @@ import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } f import { auth } from './firebase.js'; // pantalla inicial - export function init(navigateTo) { const section = document.createElement('section'); section.innerHTML = `
@@ -57,7 +56,7 @@ export function init(navigateTo) { } // pantalla - inicio de sesión -const login = () => { +function login(navigateTo) { const sectionLogin = document.createElement('div'); sectionLogin.innerHTML = `

Inicio de Sesión

@@ -71,36 +70,58 @@ const login = () => { ¿No tienes una cuenta? Regístrate
`; + const checkIn = sectionLogin.querySelector('.bottomText'); + checkIn.addEventListener('click', () => { + navigateTo('/register'); + }); + + const keep = sectionLogin.querySelector('.getInt'); + keep.addEventListener('click', () => { + navigateTo('/mainScreen'); + }); + return sectionLogin; -}; +} // pantalla - error -function mistake() { - const title = document.createElement('h2'); - - title.textContent = 'Error 404: página no encontrada.'; - return title; +function mistake(navigateTo) { + const bug = document.createElement('div'); + bug.innerHTML = `
+

Error 404: página no encontrada.

+ volver al Inicio +
`; + + const keep = bug.querySelector('.init'); + keep.addEventListener('click', () => { + navigateTo('/mainScreen'); + }); + return bug; } -const create = () => { - const sectionCreate = document.createElement('section'); +function create(navigateTo) { + const sectionCreate = document.createElement('div'); sectionCreate.innerHTML = `

Crear cuenta

- - - + + +
`; + const logIn = sectionCreate.querySelector('.bottomText'); + logIn.addEventListener('click', () => { + navigateTo('/login'); + }); - formCreateAccount.addEventListener('submit', async (e) => { + const form = sectionCreate.querySelector('.bottomKeep'); + form.addEventListener('submit', async (e) => { e.preventDefault(); - const email = formCreateAccount.card1.value; - const contraseña = formCreateAccount.card2.value; + const email = sectionCreate.querySelector('.card1').value; + const contraseña = sectionCreate.querySelector('.card2').value; try { const userCredentials = await createUserWithEmailAndPassword(auth, email, contraseña); console.log(userCredentials); @@ -110,8 +131,7 @@ const create = () => { }); return sectionCreate; -}; - +} export function mainScreen() { const section = document.createElement('section'); diff --git a/src/lib/img/error404.png b/src/lib/img/error404.png new file mode 100644 index 0000000000000000000000000000000000000000..dd41cc8e53bbeb1e5dd6fcbe6892f705cc3d7a71 GIT binary patch literal 37752 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

}(*R_PIyPpm3+ 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 literal 0 HcmV?d00001 diff --git a/src/lib/style.css b/src/lib/style.css index 096322f7..57975dcb 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -48,7 +48,7 @@ left: 33px; top: 527px; border: 1px solid #000000; -} +} .separatorText { position: absolute; @@ -64,7 +64,7 @@ left: 248px; top: 527px; border: 1px solid #000000; -} +} .google { box-sizing: border-box; @@ -79,7 +79,7 @@ background: #FFFFFF; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; - + } .imgGoogle { @@ -103,6 +103,7 @@ border-radius: 10px; } +/*pantalla iniciar sesión */ .formInteraction { margin: 70% 5% 7%; width: 92%; @@ -126,8 +127,6 @@ background: none; } - - .labelEmail { position: absolute; height: 23px; @@ -189,11 +188,119 @@ .bottomText { position: absolute; - height: 25px; left: 40px; top: 847px; font-size: 22px; background: none; outline: none; font-weight: bold; -} \ No newline at end of file +} + +/*pantalla crear cuenta*/ + +.creatSection { + background-image: none; + height: 0px +} + +.formCreateAccount { + margin: 70% 5% 7%; + width: 92%; + height: 404px; + border-radius: 12px; + background: #D9D9D9; + background-image: none; + opacity: 0.9; +} + +.createAccount { + position: absolute; + left: 24px; + top: 245px; + font-size: 22px; + background: none; +} + +.textButtonCreateAccount { + position: absolute; + height: 23px; + left: 49px; + top: 330px; + font-size: 20px; + background: none; +} + +.card1 { + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 369px; + border: none; + border-radius: 12px; + font-size: 21px; +} + +.textPasswordCreateAccount { + position: absolute; + height: 23px; + left: 49px; + top: 466px; + font-size: 20px; + line-height: 23px; + background: none; + +} + +.card2 { + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 508px; + border: none; + background: #FFFEFE; + border-radius: 12px; + font-size: 30px; +} + +.bottomKeep { + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 616px; + font-weight: bold; + font-size: 22px; + border: none; + background: #528FD8; + border-radius: 12px; + color: #FFFEFE; +} + +/*error*/ +.errorSection { + background-image: none; + height: 0px +} +.imgBug { + width: 103%; + margin: 169px -2px; + background: none; +} +.text{ + position: absolute; + left: 30px; + top: 446px; + font-size: 24px; + background: none; +} + +.init{ + position: absolute; + left: 35%; + top: 486px; + font-size: 22px; + color: blue; + background: none; +} From 82c989187f0007910417326904b3b10d8411c5c6 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Tue, 11 Apr 2023 11:44:35 -0500 Subject: [PATCH 14/75] Incorpora las pruebas unitarias de H1 --- package.json | 4 ++-- src/Components/app.js | 36 +++++++++++++++--------------------- src/lib/style.css | 25 +++---------------------- test/index.spec.js | 22 +++++++++++++++++----- 4 files changed, 37 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index 94b777ff..f40d2f9e 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "eslint": "eslint --ext .js src/ test/", "stylelint": "stylelint --aei src/**/*.css", "pretest": "npm run htmlhint && npm run eslint && npm run stylelint", - "test": "jest --coverage", + "test": "jest --env=jsdom--coverage", "dev": "vite dev src", "start": "npm run dev", "build": "vite build", @@ -28,7 +28,7 @@ "eslint-plugin-import": "^2.18.2", "eslint-plugin-jest": "^25.3.0", "htmlhint": "^1.0.0", - "jest": "^27.0.1", + "jest": "^27.5.1", "regenerator-runtime": "^0.13.1", "stylelint": "^14.1.0", "stylelint-config-recommended": "^6.0.0", diff --git a/src/Components/app.js b/src/Components/app.js index 148c5768..415b2eda 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,8 +1,7 @@ -import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; import { auth } from './firebase.js'; // pantalla inicial - export function init(navigateTo) { const section = document.createElement('section'); section.innerHTML = `

@@ -55,7 +54,6 @@ export function init(navigateTo) { return section; } - // pantalla - inicio de sesión const login = () => { const sectionLogin = document.createElement('div'); @@ -66,7 +64,7 @@ const login = () => { - +
¿No tienes una cuenta? Regístrate @@ -81,7 +79,7 @@ function mistake() { title.textContent = 'Error 404: página no encontrada.'; return title; } - +// pantalla - REGISTRATE: crear Cuenta const create = () => { const sectionCreate = document.createElement('section'); sectionCreate.innerHTML = `
@@ -91,34 +89,30 @@ const create = () => { - +
`; - - formCreateAccount.addEventListener('submit', async (e) => { - e.preventDefault(); - const email = formCreateAccount.card1.value; - const contraseña = formCreateAccount.card2.value; - try { - const userCredentials = await createUserWithEmailAndPassword(auth, email, contraseña); - console.log(userCredentials); - } catch (error) { - console.log(error); - } - }); - return sectionCreate; }; - + // formCreateAccount.addEventListener('submit', async (e) => { + // e.preventDefault(); + // const email = formCreateAccount.card1.value; + // const contraseña = formCreateAccount.card2.value; + // try { + // const userCredentials = await createUserWithEmailAndPassword(auth, email, contraseña); + // console.log(userCredentials); + // } catch (error) { + // console.log(error); + // } + // }); export function mainScreen() { const section = document.createElement('section'); section.innerHTML = '

Welcome to Main Screen!

'; return section; } - export { login, mistake, diff --git a/src/lib/style.css b/src/lib/style.css index 096322f7..1edf7ef1 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -7,12 +7,10 @@ margin: 0%; box-sizing: border-box; } - .emprende { position: absolute; width: 100px; } - .logIn { position: absolute; width: 380px; @@ -39,7 +37,6 @@ color: #FFFFFF; background: #528FD8; border-radius: 10px; - } .separator1 { @@ -88,21 +85,6 @@ height: 26px; left: 52px; } - -.gitHub { - box-sizing: border-box; - position: absolute; - width: 380px; - height: 48px; - left: 24px; - top: 640px; - font-size: 22px; - border: none; - background: #FFFFFF; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-radius: 10px; -} - .formInteraction { margin: 70% 5% 7%; width: 92%; @@ -116,6 +98,7 @@ .cardLogin { background-image: none; height: 0px + } .initSection { @@ -125,9 +108,6 @@ font-size: 22px; background: none; } - - - .labelEmail { position: absolute; height: 23px; @@ -196,4 +176,5 @@ background: none; outline: none; font-weight: bold; -} \ No newline at end of file +} + \ No newline at end of file diff --git a/test/index.spec.js b/test/index.spec.js index 91f11a33..08afa974 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,8 +1,20 @@ -// importamos la funcion que vamos a testear -import { myFunction } from '../src/lib/index'; +// Importamos la funcion que vamos a testear +import { create, login } from '../src/Components/app.js'; -describe('myFunction', () => { - it('debería ser una función', () => { - expect(typeof myFunction).toBe('function'); +// Función: Inicia Sesión +describe('login', () => { + it('Si el usuario ingreso correctamente su gmail y su contraseña deberia ir a home', () => { + document.body.innerHTML(login()); + document.getElementById(btningresar).click(); + expect(typeof myFunction).tobe('function'); + }); +}); + +// Función registrate +describe('create', () => { + it('Si el usuario se registro correctamente deberia ir a home', () => { + document.body.innerHTML(create()); + document.getElementById(btnguardar).click(); + expect(typeof myFunction).tobe('function'); }); }); From b22106c11de5c37740a222a1a101241db92a26a6 Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 12 Apr 2023 17:58:31 -0500 Subject: [PATCH 15/75] Enlazando acceso de usuario con correo --- src/Components/app.js | 71 ++----- src/Components/firebase.js | 1 - src/Components/login.js | 44 +++++ src/lib/img/fondoDesktops.png | Bin 0 -> 10427 bytes src/lib/style.css | 361 +++++++++++++++++++++++++++++++--- src/main.js | 3 +- 6 files changed, 398 insertions(+), 82 deletions(-) create mode 100644 src/Components/login.js create mode 100644 src/lib/img/fondoDesktops.png diff --git a/src/Components/app.js b/src/Components/app.js index 6374bf22..03417c1e 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,4 +1,4 @@ -import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; import { auth } from './firebase.js'; // pantalla inicial @@ -20,7 +20,6 @@ export function init(navigateTo) { `; - const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { @@ -37,21 +36,21 @@ export function init(navigateTo) { const provider = new GoogleAuthProvider(); signInWithPopup(auth, provider) .then((result) => { - // This gives you a Google Access Token. You can use it to access the Google API. + // Esto le da un token de acceso de Google. Puede usarlo para acceder a la API de Google. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; - // The signed-in user info. + // La información del usuario registrado. const user = result.user; - // IdP data available using getAdditionalUserInfo(result) + // Datos de IdP disponibles mediante getAdditionalUserInfo(result) // ... navigateTo('/mainScreen'); }).catch((error) => { - // Handle Errors here. + // Manejar errores aquí. const errorCode = error.code; const errorMessage = error.message; - // The email of the user's account used. + // El correo electrónico de la cuenta de usuario utilizada. const email = error.customData.email; - // The AuthCredential type that was used. + // El tipo AuthCredential que se utilizó. const credential = GoogleAuthProvider.credentialFromError(error); // ... }); @@ -62,40 +61,12 @@ export function init(navigateTo) { return section; } -// pantalla - inicio de sesión -function login(navigateTo) { - const sectionLogin = document.createElement('div'); - sectionLogin.innerHTML = `
-

Inicio de Sesión

-
- - - - - -
- ¿No tienes una cuenta? Regístrate -
- `; - const checkIn = sectionLogin.querySelector('.bottomText'); - checkIn.addEventListener('click', () => { - navigateTo('/register'); - }); - - const keep = sectionLogin.querySelector('.getInt'); - keep.addEventListener('click', () => { - navigateTo('/mainScreen'); - }); - - return sectionLogin; -} - // pantalla - error function mistake(navigateTo) { const bug = document.createElement('div'); bug.innerHTML = `

Error 404: página no encontrada.

- volver al Inicio + volver al Inicio
`; const keep = bug.querySelector('.init'); @@ -108,6 +79,7 @@ function mistake(navigateTo) { function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.innerHTML = `
+

Crear cuenta

@@ -123,31 +95,20 @@ function create(navigateTo) { logIn.addEventListener('click', () => { navigateTo('/login'); }); - - const form = sectionCreate.querySelector('.bottomKeep'); - form.addEventListener('submit', async (e) => { - e.preventDefault(); - const email = sectionCreate.querySelector('.card1').value; - const contraseña = sectionCreate.querySelector('.card2').value; - try { - const userCredentials = await createUserWithEmailAndPassword(auth, email, contraseña); - console.log(userCredentials); - } catch (error) { - console.log(error); - } - }); */ - return sectionCreate; } -export function mainScreen() { - const section = document.createElement('section'); - section.innerHTML = '

Welcome to Main Screen!

'; +function mainScreen() { + const section = document.createElement('div'); + section.innerHTML = `
+

Welcome to Main Screen!

+
+ `; return section; } export { - login, mistake, create, + mainScreen, }; diff --git a/src/Components/firebase.js b/src/Components/firebase.js index 4f15a7d5..8dcc0bf6 100644 --- a/src/Components/firebase.js +++ b/src/Components/firebase.js @@ -1,4 +1,3 @@ -// Import the functions you need from the SDKs you need import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; diff --git a/src/Components/login.js b/src/Components/login.js new file mode 100644 index 00000000..4791bd9f --- /dev/null +++ b/src/Components/login.js @@ -0,0 +1,44 @@ +import { signInWithEmailAndPassword } from 'firebase/auth'; +import { auth } from './firebase.js'; + +// pantalla - inicio de sesión +export function login(navigateTo) { + const sectionLogin = document.createElement('div'); + sectionLogin.innerHTML = `
+ +

Inicio de Sesión

+ + + + + + + + + ¿No tienes una cuenta? Regístrate +
+ `; + + const checkIn = sectionLogin.querySelector('.bottomText'); + checkIn.addEventListener('click', () => { + navigateTo('/register'); + }); + + const keep = sectionLogin.querySelector('.formInteraction'); + keep.addEventListener('submit', (e) => { + e.preventDefault(); + const email = sectionLogin.querySelector('.inputEmail').value; + const password = sectionLogin.querySelector('.inputPassword').value; + + signInWithEmailAndPassword(auth, email, password) + .then(() => { + navigateTo('/mainScreen'); + }) + .catch((error) => { + console.log(error); + sectionLogin.querySelector('.note1').innerHTML = '

La dirección de correo electrónico o la contraseña que has introducido no son correctas

'; + }); + }); + + return sectionLogin; +} diff --git a/src/lib/img/fondoDesktops.png b/src/lib/img/fondoDesktops.png new file mode 100644 index 0000000000000000000000000000000000000000..71e36710d5145419cc828729681068c1f683fd11 GIT binary patch literal 10427 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 literal 0 HcmV?d00001 diff --git a/src/lib/style.css b/src/lib/style.css index 0e0fd9b3..f2af1e7b 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -5,7 +5,7 @@ background-repeat: no-repeat; padding: 0%; margin: 0%; - + } .formInit { @@ -14,11 +14,12 @@ } .logo { - position: absolute; - width: 15.6rem; - height: 11.9rem; - margin-left: 89px; - margin-top: 39px; + position: fixed; + width: 58%; + height: 21%; + left: 21%; + top: 5%; + background: none; } .logIn { @@ -31,7 +32,7 @@ border: none; font-size: 22px; color: #FFFFFF; - background: #ECAF2E; + background: #F39C12; border-radius: 10px; justify-content: center; } @@ -52,7 +53,7 @@ } .separator1 { - position: absolute; + position: fixed; width: 153px; left: 33px; top: 527px; @@ -60,15 +61,16 @@ } .separatorText { - position: absolute; - left: 208px; - top: 523px; + position: fixed; + left: 212px; + top: 514px; font-weight: 400; - font-size: 18px; + font-size: 22px; + color: black; } .separator2 { - position: absolute; + position: fixed; width: 153px; left: 248px; top: 527px; @@ -81,7 +83,7 @@ width: 380px; height: 48px; left: 24px; - top: 572px; + top: 589px; font-size: 22px; padding-left: 58px; border: none; @@ -133,13 +135,14 @@ .inputEmail { position: absolute; - width: 341px; + width: 321px; height: 45px; left: 49px; top: 369px; border: none; border-radius: 12px; font-size: 21px; + padding-left: 5%; } @@ -157,7 +160,7 @@ .inputPassword { position: absolute; - width: 341px; + width: 321px; height: 45px; left: 49px; top: 508px; @@ -165,6 +168,7 @@ background: #FFFEFE; border-radius: 12px; font-size: 30px; + padding-left: 5%; } .getInt { @@ -190,7 +194,18 @@ outline: none; font-weight: bold; } +.textNote{ + background: none; + color: red; +} +.note1{ + position: absolute; + left: 12%; + top: 79%; + font-size: 12px; + background: none; +} /*pantalla crear cuenta*/ .creatSection { @@ -211,7 +226,7 @@ .createAccount { position: absolute; left: 24px; - top: 245px; + top: 254px; font-size: 22px; background: none; } @@ -227,13 +242,14 @@ .card1 { position: absolute; - width: 341px; + width: 321px; height: 45px; left: 49px; top: 369px; border: none; border-radius: 12px; font-size: 21px; + padding-left: 5%; } .textPasswordCreateAccount { @@ -249,7 +265,7 @@ .card2 { position: absolute; - width: 341px; + width: 321px; height: 45px; left: 49px; top: 508px; @@ -257,6 +273,7 @@ background: #FFFEFE; border-radius: 12px; font-size: 30px; + padding-left: 5%; } .bottomKeep { @@ -268,34 +285,328 @@ font-weight: bold; font-size: 22px; border: none; - background: #528FD8; + background: #F39C12; border-radius: 12px; color: #FFFEFE; } /*error*/ +u { + background: none; +} .errorSection { background-image: none; height: 0px } + .imgBug { width: 103%; margin: 169px -2px; background: none; } -.text{ + +.text { position: absolute; left: 30px; top: 446px; font-size: 24px; - background: none; + background: none; } -.init{ +.init { position: absolute; - left: 35%; - top: 486px; font-size: 22px; color: blue; background: none; + left: 31%; + top: 52%; } + +@media (min-width: 926px) and (max-width: 1920px) { + + * { + background-image: url(./img/fondoDesktops.png); + background-repeat: no-repeat; + padding: 0%; + margin: 0%; + background-size: 55%; + } + + .logo { + position: fixed; + width: 28%; + height: 35%; + left: 96px; + top: 23%; + background: none; + } + + /*pantalla de acceso*/ + .logIn { + position: absolute; + width: 380px; + height: 46px; + left: 61%; + top: 278px; + font-weight: bold; + border: none; + font-size: 22px; + color: #FFFFFF; + background: #F39C12; + border-radius: 10px; + justify-content: center; + } + + .register { + position: absolute; + width: 380px; + height: 46px; + left: 61%; + top: 365px; + border: none; + font-weight: bold; + font-size: 22px; + color: #FFFFFF; + background: #528FD8; + border-radius: 10px; + } + + .google { + box-sizing: border-box; + position: absolute; + width: 380px; + height: 48px; + left: 61%; + top: 572px; + font-size: 22px; + padding-left: 58px; + border: none; + background: #FFFFFF; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + border-radius: 10px; + } + + .separator1 { + position: fixed; + width: 153px; + left: 61%; + top: 67%; + border: 1px solid #000000; + } + + .separatorText { + position: fixed; + left: 74%; + top: 499px; + font-weight: 400; + font-size: 24px; + color: black; + background: none; + } + + .separator2 { + position: fixed; + width: 153px; + left: 77%; + top: 67%; + border: 1px solid #000000; + } + + /*pantalla de login*/ + + .initSection { + position: absolute; + left: 58%; + top: 19%; + font-size: 26px; + background: none; + } + + .formInteraction { + margin: 14% 58%; + width: 32%; + height: 402px; + border-radius: 15px; + background: #D9D9D9; + background-image: none; + opacity: 0.9; + } + + .labelEmail { + position: absolute; + height: 23px; + left: 61%; + top: 30%; + font-size: 20px; + background: none; + } + + .inputEmail { + position: absolute; + width: 315px; + height: 45px; + left: 61%; + top: 35%; + background: white; + border: none; + border-radius: 12px; + font-size: 21px; + padding-left: 2%; + } + + .labelPassword { + position: absolute; + height: 23px; + left: 61%; + top: 48%; + font-size: 20px; + line-height: 23px; + background: none; + } + + .inputPassword { + position: absolute; + width: 315px; + height: 45px; + left: 61%; + top: 53%; + border: none; + background: white; + background: #FFFEFE; + border-radius: 12px; + font-size: 30px; + padding-left: 2%; + } + + .getInt { + position: absolute; + width: 341px; + height: 45px; + left: 61%; + top: 66%; + font-weight: bold; + font-size: 22px; + border: none; + background: #528FD8; + border-radius: 12px; + color: #FFFEFE; + } + + .bottomText { + position: absolute; + left: 60%; + top: 84%; + font-size: 22px; + background: none; + outline: none; + font-weight: bold; + } + + /* pantalla crear cuenta*/ + + .formCreateAccount { + margin: 14% 58%; + width: 32%; + height: 402px; + border-radius: 15px; + background: #D9D9D9; + background-image: none; + opacity: 0.9; + } + + .createAccount { + position: absolute; + left: 58%; + top: 19%; + font-size: 26px; + background: none; + } + + .textButtonCreateAccount { + position: absolute; + height: 23px; + left: 61%; + top: 30%; + font-size: 20px; + background: none; + } + + .card1 { + position: absolute; + width: 315px; + height: 45px; + left: 61%; + top: 35%; + background: white; + border: none; + border-radius: 12px; + font-size: 21px; + padding-left: 2%; + } + + .textPasswordCreateAccount { + position: absolute; + height: 23px; + left: 61%; + top: 48%; + font-size: 20px; + line-height: 23px; + background: none; + } + + .card2 { + position: absolute; + width: 315px; + height: 45px; + left: 61%; + top: 53%; + border: none; + background: white; + background: #FFFEFE; + border-radius: 12px; + font-size: 30px; + padding-left: 2%; + } + + .bottomKeep { + position: absolute; + width: 341px; + height: 45px; + left: 61%; + top: 66%; + font-weight: bold; + font-size: 22px; + border: none; + background: #F39C12; + border-radius: 12px; + color: #FFFEFE; + } + + /*pantalla de error*/ + u { + background: none; + } + + .imgBug { + width: 33%; + margin: 168px 117px; + background: none; + } + + .text { + position: absolute; + left: 55%; + top: 40%; + font-size: 33px; + background: none; + } + + .init { + position: absolute; + font-size: 24px; + color: blue; + background: none; + left: 81%; + top: 46%; + } +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index eb0a3bea..2c47acf7 100644 --- a/src/main.js +++ b/src/main.js @@ -1,7 +1,8 @@ // import { funcion a crear } from './lib/index.js'; import { - init, login, mistake, create, mainScreen, + init, mistake, create, mainScreen, } from './Components/app.js'; +import { login } from './Components/login.js'; import './Components/firebase.js'; const root = document.getElementById('root'); From d4bed50c8f19ff0e7d320318a78aa429e50b6817 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 13 Apr 2023 12:57:29 -0400 Subject: [PATCH 16/75] probando test --- package.json | 5 +- src/Components/app.js | 35 ++++++----- src/lib/index.js | 28 +++++++++ src/lib/style.css | 140 +++++++----------------------------------- src/main.js | 5 +- test/__mock__/main.js | 9 +++ test/index.spec.js | 26 ++++++-- 7 files changed, 105 insertions(+), 143 deletions(-) create mode 100644 test/__mock__/main.js diff --git a/package.json b/package.json index 94b777ff..dcccec77 100644 --- a/package.json +++ b/package.json @@ -39,5 +39,8 @@ }, "dependencies": { "firebase": "^9.19.1" - } + }, + "jest":{ + "testEnvironment": "jsdom" +} } diff --git a/src/Components/app.js b/src/Components/app.js index 6374bf22..dbc280d0 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -20,8 +20,6 @@ export function init(navigateTo) { `; - - const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { navigateTo('/login'); @@ -38,21 +36,21 @@ export function init(navigateTo) { signInWithPopup(auth, provider) .then((result) => { // This gives you a Google Access Token. You can use it to access the Google API. - const credential = GoogleAuthProvider.credentialFromResult(result); - const token = credential.accessToken; + GoogleAuthProvider.credentialFromResult(result); + /* const token = credential.accessToken; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) - // ... + // ... */ navigateTo('/mainScreen'); }).catch((error) => { - // Handle Errors here. + /* // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. - const email = error.customData.email; + const email = error.customData.email; */ // The AuthCredential type that was used. - const credential = GoogleAuthProvider.credentialFromError(error); + GoogleAuthProvider.credentialFromError(error); // ... }); }); @@ -63,9 +61,10 @@ export function init(navigateTo) { } // pantalla - inicio de sesión -function login(navigateTo) { +/* function login(navigateTo) { const sectionLogin = document.createElement('div'); - sectionLogin.innerHTML = `
+ sectionLogin.innerHTML = `
+

Inicio de Sesión

@@ -89,7 +88,7 @@ function login(navigateTo) { return sectionLogin; } - + */ // pantalla - error function mistake(navigateTo) { const bug = document.createElement('div'); @@ -135,19 +134,23 @@ function create(navigateTo) { } catch (error) { console.log(error); } - }); */ + }); return sectionCreate; } -export function mainScreen() { - const section = document.createElement('section'); - section.innerHTML = '

Welcome to Main Screen!

'; +function mainScreen() { + const section = document.createElement('div'); + section.innerHTML = `
+

Welcome to Main Screen!

+
+ `; return section; } export { - login, +// login, mistake, create, + mainScreen, }; diff --git a/src/lib/index.js b/src/lib/index.js index c6a41191..cb85785f 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1 +1,29 @@ // funciones que seran testeadas +// pantalla - inicio de sesión +export function login(navigateTo) { + const sectionLogin = document.createElement('div'); + sectionLogin.innerHTML = `
+ +

Inicio de Sesión

+ + + + + + + + ¿No tienes una cuenta? Regístrate +
+ `; + const checkIn = sectionLogin.querySelector('.bottomText'); + checkIn.addEventListener('click', () => { + navigateTo('/register'); + }); + + const keep = sectionLogin.querySelector('.getInt'); + keep.addEventListener('click', () => { + navigateTo('/mainScreen'); + }); + + return sectionLogin; +} diff --git a/src/lib/style.css b/src/lib/style.css index 0e0fd9b3..1ffcd018 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -8,17 +8,19 @@ } -.formInit { - position: absolute; - padding-right: 100px; +.init { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; } .logo { position: absolute; - width: 15.6rem; - height: 11.9rem; - margin-left: 89px; - margin-top: 39px; + width: 233px; + height: 176px; + left: 96px; + top: 54px; } .logIn { @@ -57,7 +59,7 @@ left: 33px; top: 527px; border: 1px solid #000000; -} +} .separatorText { position: absolute; @@ -73,7 +75,7 @@ left: 248px; top: 527px; border: 1px solid #000000; -} +} .google { box-sizing: border-box; @@ -88,7 +90,7 @@ background: #FFFFFF; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; - + } .imgGoogle { @@ -98,7 +100,6 @@ left: 52px; } -/*pantalla iniciar sesión */ .formInteraction { margin: 70% 5% 7%; width: 92%; @@ -122,6 +123,8 @@ background: none; } + + .labelEmail { position: absolute; height: 23px; @@ -183,6 +186,7 @@ .bottomText { position: absolute; + height: 25px; left: 40px; top: 847px; font-size: 22px; @@ -191,111 +195,9 @@ font-weight: bold; } -/*pantalla crear cuenta*/ - -.creatSection { - background-image: none; - height: 0px -} - -.formCreateAccount { - margin: 70% 5% 7%; - width: 92%; - height: 404px; - border-radius: 12px; - background: #D9D9D9; - background-image: none; - opacity: 0.9; -} - -.createAccount { - position: absolute; - left: 24px; - top: 245px; - font-size: 22px; - background: none; -} - -.textButtonCreateAccount { - position: absolute; - height: 23px; - left: 49px; - top: 330px; - font-size: 20px; - background: none; -} - -.card1 { - position: absolute; - width: 341px; - height: 45px; - left: 49px; - top: 369px; - border: none; - border-radius: 12px; - font-size: 21px; -} - -.textPasswordCreateAccount { - position: absolute; - height: 23px; - left: 49px; - top: 466px; - font-size: 20px; - line-height: 23px; - background: none; - -} - -.card2 { - position: absolute; - width: 341px; - height: 45px; - left: 49px; - top: 508px; - border: none; - background: #FFFEFE; - border-radius: 12px; - font-size: 30px; -} - -.bottomKeep { - position: absolute; - width: 341px; - height: 45px; - left: 49px; - top: 616px; - font-weight: bold; - font-size: 22px; - border: none; - background: #528FD8; - border-radius: 12px; - color: #FFFEFE; -} - -/*error*/ -.errorSection { - background-image: none; - height: 0px -} -.imgBug { - width: 103%; - margin: 169px -2px; - background: none; -} -.text{ - position: absolute; - left: 30px; - top: 446px; - font-size: 24px; - background: none; -} - -.init{ - position: absolute; - left: 35%; - top: 486px; - font-size: 22px; - color: blue; - background: none; -} +@media screen and (min-width: 1024px) { + .formInit { + float: right; + width: 50%; + } + } \ No newline at end of file diff --git a/src/main.js b/src/main.js index eb0a3bea..a0184ca5 100644 --- a/src/main.js +++ b/src/main.js @@ -1,8 +1,9 @@ // import { funcion a crear } from './lib/index.js'; import { - init, login, mistake, create, mainScreen, + init, mistake, create, mainScreen, } from './Components/app.js'; import './Components/firebase.js'; +import { login } from './lib/index.js'; const root = document.getElementById('root'); root.append(init()); @@ -17,7 +18,7 @@ const routes = [ ]; const defaultRoute = '/'; -function navigateTo(hash) { +export function navigateTo(hash) { const route = routes.find((routeFind) => routeFind.path === hash); if (route && route.component) { window.history.pushState({}, route.path, window.location.origin + route.path); diff --git a/test/__mock__/main.js b/test/__mock__/main.js new file mode 100644 index 00000000..c496816a --- /dev/null +++ b/test/__mock__/main.js @@ -0,0 +1,9 @@ +/* const main = jest.createMockFromModule('fs'); + +function navigateTo() { +} + +main.navigateTo = navigateTo; + +module.exports = main; + */ diff --git a/test/index.spec.js b/test/index.spec.js index 91f11a33..333e4087 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,8 +1,24 @@ -// importamos la funcion que vamos a testear -import { myFunction } from '../src/lib/index'; +// Importamos la funcion que vamos a testear -describe('myFunction', () => { - it('debería ser una función', () => { - expect(typeof myFunction).toBe('function'); +/** + * @jest-environment jsdom + */ + +// import { navigateTo } from '../src/main.js'; +import { login } from '../src/lib/index'; + +// jest.mock('../test/__mock__/main.js'); +const navigateTo = jest.fn(); + +// Función: Inicia Sesión +describe('login', () => { + it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { + const myHtml = login(navigateTo); + myHtml.querySelector('.getInt').click(); + expect(navigateTo).toHaveBeenCalledWith('/mainScreen'); + }); + it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { + login(navigateTo); + expect(navigateTo).not.toHaveBeenCalledWith(); }); }); From 6dbdcb99962acd7a2bf7bb744ed6f10d8eb37ab2 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 13 Apr 2023 12:59:20 -0400 Subject: [PATCH 17/75] probando test --- test/__mock__/main.js | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 test/__mock__/main.js diff --git a/test/__mock__/main.js b/test/__mock__/main.js deleted file mode 100644 index c496816a..00000000 --- a/test/__mock__/main.js +++ /dev/null @@ -1,9 +0,0 @@ -/* const main = jest.createMockFromModule('fs'); - -function navigateTo() { -} - -main.navigateTo = navigateTo; - -module.exports = main; - */ From 40fb9b953d3b76351bde71329bd04ad4fbec9184 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Thu, 13 Apr 2023 12:17:06 -0500 Subject: [PATCH 18/75] Conectar la pantalla de crear nueva cuenta con firebase --- src/Components/app.js | 49 ++++++++++++++++++++++++------------------- src/lib/style.css | 28 +++++++++++++++++++++---- src/main.js | 3 +++ test/index.spec.js | 26 ++++++++++++----------- 4 files changed, 68 insertions(+), 38 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 5e7f70e1..d1a2a4d3 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,4 +1,4 @@ -import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; import { auth } from './firebase.js'; // pantalla inicial @@ -20,8 +20,6 @@ export function init(navigateTo) { `; - - const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { navigateTo('/login'); @@ -94,7 +92,7 @@ function mistake(navigateTo) { const bug = document.createElement('div'); bug.innerHTML = `

Error 404: página no encontrada.

- volver al Inicio + volver al Inicio
`; const keep = bug.querySelector('.init'); @@ -103,6 +101,8 @@ function mistake(navigateTo) { }); return bug; } +/* + */ function create(navigateTo) { const sectionCreate = document.createElement('div'); @@ -111,11 +111,12 @@ function create(navigateTo) {

Crear cuenta

- + + - - - + + +
`; const logIn = sectionCreate.querySelector('.bottomText'); @@ -123,29 +124,33 @@ function create(navigateTo) { navigateTo('/login'); }); - const form = sectionCreate.querySelector('.bottomKeep'); - form.addEventListener('submit', async (e) => { + const form = sectionCreate.querySelector('.formCreateAccount'); + form.addEventListener('submit', (e) => { e.preventDefault(); const email = sectionCreate.querySelector('.card1').value; - const contraseña = sectionCreate.querySelector('.card2').value; - try { - const userCredentials = await createUserWithEmailAndPassword(auth, email, contraseña); - console.log(userCredentials); - } catch (error) { - console.log(error); - } - }); */ - + const password = sectionCreate.querySelector('.card2').value; + createUserWithEmailAndPassword(auth, email, password) + .then(() => { + navigateTo('/mainScreen'); + }) + .catch(() => { + sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra

'; + }); + }); return sectionCreate; } -export function mainScreen() { - const section = document.createElement('section'); - section.innerHTML = '

Welcome to Main Screen!

'; +function mainScreen() { + const section = document.createElement('div'); + section.innerHTML = `
+

Welcome to Main Screen!

+
+ `; return section; } export { login, mistake, create, + mainScreen, }; diff --git a/src/lib/style.css b/src/lib/style.css index 6cbe7ce0..c48f7dae 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -112,7 +112,6 @@ height: 0px } - .initSection { position: absolute; left: 28px; @@ -224,6 +223,15 @@ background: none; } +.textConfirmPassword { + position: absolute; + height: 23px; + left: 49px; + top: 539px; + font-size: 20px; + background: none; +} + .card1 { position: absolute; width: 341px; @@ -239,7 +247,7 @@ position: absolute; height: 23px; left: 49px; - top: 466px; + top: 441px; font-size: 20px; line-height: 23px; background: none; @@ -251,7 +259,19 @@ width: 341px; height: 45px; left: 49px; - top: 508px; + top: 471px; + border: none; + background: #FFFEFE; + border-radius: 12px; + font-size: 30px; +} + +.card3 { + position: absolute; + width: 341px; + height: 45px; + left: 49px; + top: 565px; border: none; background: #FFFEFE; border-radius: 12px; @@ -263,7 +283,7 @@ width: 341px; height: 45px; left: 49px; - top: 616px; + top: 641px; font-weight: bold; font-size: 22px; border: none; diff --git a/src/main.js b/src/main.js index eb0a3bea..e12e244c 100644 --- a/src/main.js +++ b/src/main.js @@ -32,3 +32,6 @@ function navigateTo(hash) { } navigateTo(window.location.pathname || defaultRoute); +export { + navigateTo, +}; diff --git a/test/index.spec.js b/test/index.spec.js index 08afa974..14526b5a 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,20 +1,22 @@ // Importamos la funcion que vamos a testear -import { create, login } from '../src/Components/app.js'; +import { login } from '../src/Components/app.js'; +import { navigateTo } from '../src/main.js'; // Función: Inicia Sesión describe('login', () => { - it('Si el usuario ingreso correctamente su gmail y su contraseña deberia ir a home', () => { - document.body.innerHTML(login()); - document.getElementById(btningresar).click(); - expect(typeof myFunction).tobe('function'); + it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { + const myHtml = login(); + myHtml.querySelector('.getInt').click(); + expect(navigateTo).haveBeenCalledWith('/mainScreen'); }); }); // Función registrate -describe('create', () => { - it('Si el usuario se registro correctamente deberia ir a home', () => { - document.body.innerHTML(create()); - document.getElementById(btnguardar).click(); - expect(typeof myFunction).tobe('function'); - }); -}); +// describe('create', () => { +// it('Si el usuario se registro correctamente deberia ir a home', () => { +// document.body.innerHTML(create()); +// document.getElementById(btnguardar).click(); +// console.log(credential); +// expect(typeof myFunction).tobe('function'); +// }); +// }); From 67a80f00eb993c6b8e1d7f91b919f12fc24a335d Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 13 Apr 2023 13:20:01 -0400 Subject: [PATCH 19/75] probando testeos --- src/main.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main.js b/src/main.js index 1acd4c7e..bd8d965d 100644 --- a/src/main.js +++ b/src/main.js @@ -4,7 +4,6 @@ import { } from './Components/app.js'; import { login } from './Components/login.js'; import './Components/firebase.js'; -import { login } from './lib/index.js'; const root = document.getElementById('root'); root.append(init()); From e0c0ee2f3c1db66bfef03ba7dd0dbe5bb982a673 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Thu, 13 Apr 2023 12:30:07 -0500 Subject: [PATCH 20/75] Conecta la pantalla de crear nueva cuenta con firebase --- src/Components/app.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 988e4e87..27add419 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,4 +1,4 @@ -import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; import { auth } from './firebase.js'; // pantalla inicial @@ -107,7 +107,6 @@ function mistake(navigateTo) { function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.innerHTML = `
-

Crear cuenta

@@ -124,6 +123,20 @@ function create(navigateTo) { logIn.addEventListener('click', () => { navigateTo('/login'); }); + + const form = sectionCreate.querySelector('.formCreateAccount'); + form.addEventListener('submit', (e) => { + e.preventDefault(); + const email = sectionCreate.querySelector('.card1').value; + const password = sectionCreate.querySelector('.card2').value; + createUserWithEmailAndPassword(auth, email, password) + .then(() => { + navigateTo('/mainScreen'); + }) + .catch(() => { + sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra

'; + }); + }); return sectionCreate; } @@ -136,7 +149,8 @@ function mainScreen() { return section; } export { + login, mistake, create, mainScreen, -}; +}; \ No newline at end of file From 6039307ba5574d29891d252733e7df3c953bb1c2 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 13 Apr 2023 14:04:16 -0400 Subject: [PATCH 21/75] probando test --- src/Components/app.js | 2 +- src/main.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index 0b73d263..b14d3c03 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -182,4 +182,4 @@ export { mistake, create, mainScreen, -}; \ No newline at end of file +}; diff --git a/src/main.js b/src/main.js index 9cd4cbb7..70d09851 100644 --- a/src/main.js +++ b/src/main.js @@ -33,6 +33,6 @@ export function navigateTo(hash) { } navigateTo(window.location.pathname || defaultRoute); -export { - navigateTo, -}; +/* export { + navigateTo +}; */ From dab09c98fed1a79664a77413794c3ad076688e0a Mon Sep 17 00:00:00 2001 From: Claudia Date: Thu, 13 Apr 2023 13:13:26 -0500 Subject: [PATCH 22/75] actualiza cambios --- src/Components/login.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Components/login.js b/src/Components/login.js index 4791bd9f..cc16b8ca 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -34,8 +34,7 @@ export function login(navigateTo) { .then(() => { navigateTo('/mainScreen'); }) - .catch((error) => { - console.log(error); + .catch(() => { sectionLogin.querySelector('.note1').innerHTML = '

La dirección de correo electrónico o la contraseña que has introducido no son correctas

'; }); }); From 689be166de392922dc8154b9ed0b1ddc6cb2575b Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Thu, 13 Apr 2023 13:15:09 -0500 Subject: [PATCH 23/75] creacion de carpeta create.js --- src/Components/app.js | 2 +- src/Components/create.js | 44 ++++++++++++++++++++++++++++++++++++++++ src/lib/style.css | 1 + 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/Components/create.js diff --git a/src/Components/app.js b/src/Components/app.js index 27add419..cd911691 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -103,7 +103,7 @@ function mistake(navigateTo) { } /* */ - +// pantalla - crear una cuenta nueva function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.innerHTML = `
diff --git a/src/Components/create.js b/src/Components/create.js new file mode 100644 index 00000000..ac12a6e4 --- /dev/null +++ b/src/Components/create.js @@ -0,0 +1,44 @@ +import { createUserWithEmailAndPassword } from 'firebase/auth'; +import { auth } from './firebase.js'; + +/* + */ +// pantalla - crear una cuenta nueva +export function create(navigateTo) { + const sectionCreate = document.createElement('div'); + sectionCreate.innerHTML = `
+ + +

Crear cuenta

+ + + + + + + + + + +
+ `; + const logIn = sectionCreate.querySelector('.bottomText'); + logIn.addEventListener('click', () => { + navigateTo('/login'); + }); + + const form = sectionCreate.querySelector('.formCreateAccount'); + form.addEventListener('submit', (e) => { + e.preventDefault(); + const email = sectionCreate.querySelector('.card1').value; + const password = sectionCreate.querySelector('.card2').value; + createUserWithEmailAndPassword(auth, email, password) + .then(() => { + navigateTo('/mainScreen'); + }) + .catch(() => { + sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra

'; + }); + }); + return sectionCreate; +} diff --git a/src/lib/style.css b/src/lib/style.css index dbc60571..b747fab6 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -280,6 +280,7 @@ background: #FFFEFE; border-radius: 12px; font-size: 30px; + padding-left: 5%; } .card3 { From 06ce98fb69219ebf41218b0d5edb28bf965ab512 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Thu, 13 Apr 2023 13:59:48 -0500 Subject: [PATCH 24/75] La carpeta create.js y mejora en los estilos --- package.json | 2 +- src/Components/app.js | 116 +-------------------------------------- src/Components/create.js | 4 +- src/Components/login.js | 3 +- src/lib/style.css | 15 +---- src/main.js | 3 +- test/index.spec.js | 16 ------ 7 files changed, 9 insertions(+), 150 deletions(-) diff --git a/package.json b/package.json index 6e5c35ec..bb089993 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "eslint": "eslint --ext .js src/ test/", "stylelint": "stylelint --aei src/**/*.css", "pretest": "npm run htmlhint && npm run eslint && npm run stylelint", - "test": "jest --env=jsdom--coverage", + "test": "jest --coverage", "dev": "vite dev src", "start": "npm run dev", "build": "vite build", diff --git a/src/Components/app.js b/src/Components/app.js index bbd954a4..1eded0f7 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,6 +1,5 @@ -import { createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; import { auth } from './firebase.js'; - // pantalla inicial export function init(navigateTo) { const section = document.createElement('section'); @@ -35,87 +34,15 @@ export function init(navigateTo) { const provider = new GoogleAuthProvider(); signInWithPopup(auth, provider) .then((result) => { - // This gives you a Google Access Token. You can use it to access the Google API. GoogleAuthProvider.credentialFromResult(result); - /* const token = credential.accessToken; - // The signed-in user info. - const user = result.user; - // IdP data available using getAdditionalUserInfo(result) - // ... */ navigateTo('/mainScreen'); }).catch((error) => { - /* // Handle Errors here. - const errorCode = error.code; - const errorMessage = error.message; - // The email of the user's account used. - const email = error.customData.email; */ - // The AuthCredential type that was used. GoogleAuthProvider.credentialFromError(error); - // ... }); }); - section.append(logIn, register, google); - return section; } -// pantalla - inicio de sesión -function login(navigateTo) { - const sectionLogin = document.createElement('div'); - sectionLogin.innerHTML = `
-

Inicio de Sesión

-
- - - - - -
- ¿No tienes una cuenta? Regístrate -
- `; - const checkIn = sectionLogin.querySelector('.bottomText'); - checkIn.addEventListener('click', () => { - navigateTo('/register'); - }); - - const keep = sectionLogin.querySelector('.getInt'); - keep.addEventListener('click', () => { - navigateTo('/mainScreen'); - }); - - return sectionLogin; -} - -// pantalla - inicio de sesión -/* function login(navigateTo) { - const sectionLogin = document.createElement('div'); - sectionLogin.innerHTML = `
- -

Inicio de Sesión

-
- - - - - -
- ¿No tienes una cuenta? Regístrate -
- `; - const checkIn = sectionLogin.querySelector('.bottomText'); - checkIn.addEventListener('click', () => { - navigateTo('/register'); - }); - - const keep = sectionLogin.querySelector('.getInt'); - keep.addEventListener('click', () => { - navigateTo('/mainScreen'); - }); - - return sectionLogin; -} - */ // pantalla - error function mistake(navigateTo) { const bug = document.createElement('div'); @@ -130,45 +57,6 @@ function mistake(navigateTo) { }); return bug; } -/* - */ -// pantalla - crear una cuenta nueva -function create(navigateTo) { - const sectionCreate = document.createElement('div'); - sectionCreate.innerHTML = `
-
-

Crear cuenta

- - - - - - -
- -
- `; - const logIn = sectionCreate.querySelector('.bottomText'); - logIn.addEventListener('click', () => { - navigateTo('/login'); - }); - - const form = sectionCreate.querySelector('.formCreateAccount'); - form.addEventListener('submit', (e) => { - e.preventDefault(); - const email = sectionCreate.querySelector('.card1').value; - const password = sectionCreate.querySelector('.card2').value; - createUserWithEmailAndPassword(auth, email, password) - .then(() => { - navigateTo('/mainScreen'); - }) - .catch(() => { - sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra

'; - }); - }); - return sectionCreate; -} - function mainScreen() { const section = document.createElement('div'); section.innerHTML = `
@@ -178,8 +66,6 @@ function mainScreen() { return section; } export { - login, mistake, - create, mainScreen, }; diff --git a/src/Components/create.js b/src/Components/create.js index ac12a6e4..0fec1e19 100644 --- a/src/Components/create.js +++ b/src/Components/create.js @@ -1,9 +1,9 @@ import { createUserWithEmailAndPassword } from 'firebase/auth'; import { auth } from './firebase.js'; +// pantalla - crear una cuenta nueva /* */ -// pantalla - crear una cuenta nueva export function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.innerHTML = `
@@ -15,8 +15,6 @@ export function create(navigateTo) { - - diff --git a/src/Components/login.js b/src/Components/login.js index 4791bd9f..cc16b8ca 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -34,8 +34,7 @@ export function login(navigateTo) { .then(() => { navigateTo('/mainScreen'); }) - .catch((error) => { - console.log(error); + .catch(() => { sectionLogin.querySelector('.note1').innerHTML = '

La dirección de correo electrónico o la contraseña que has introducido no son correctas

'; }); }); diff --git a/src/lib/style.css b/src/lib/style.css index 23133293..df2b2beb 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -267,7 +267,7 @@ position: absolute; height: 23px; left: 49px; - top: 441px; + top: 466px; font-size: 20px; line-height: 23px; background: none; @@ -279,7 +279,7 @@ width: 321px; height: 45px; left: 49px; - top: 471px; + top: 508px; border: none; background: #FFFEFE; border-radius: 12px; @@ -305,7 +305,7 @@ width: 341px; height: 45px; left: 49px; - top: 641px; + top: 616px; font-weight: bold; font-size: 22px; border: none; @@ -337,15 +337,6 @@ u { background: none; } -.init { - position: absolute; - font-size: 22px; - color: blue; - background: none; - left: 31%; - top: 52%; -} - @media (min-width: 926px) and (max-width: 1920px) { * { diff --git a/src/main.js b/src/main.js index 70d09851..e5129976 100644 --- a/src/main.js +++ b/src/main.js @@ -1,9 +1,10 @@ // import { funcion a crear } from './lib/index.js'; import { - init, mistake, create, mainScreen, + init, mistake, mainScreen, } from './Components/app.js'; import { login } from './Components/login.js'; import './Components/firebase.js'; +import { create } from './Components/create.js'; const root = document.getElementById('root'); root.append(init()); diff --git a/test/index.spec.js b/test/index.spec.js index e741ffeb..3fd0ed7a 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,9 +1,3 @@ -// Importamos la funcion que vamos a testear - -/** - * @jest-environment jsdom - */ - // import { navigateTo } from '../src/main.js'; import { login } from '../src/lib/index'; @@ -22,13 +16,3 @@ describe('login', () => { expect(navigateTo).not.toHaveBeenCalledWith(); }); }); - -// Función registrate -// describe('create', () => { -// it('Si el usuario se registro correctamente deberia ir a home', () => { -// document.body.innerHTML(create()); -// document.getElementById(btnguardar).click(); -// console.log(credential); -// expect(typeof myFunction).tobe('function'); -// }); -// }); From 4c512425e5499f818f1631c88f4dfd02cab681bc Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 13 Apr 2023 15:07:57 -0400 Subject: [PATCH 25/75] modificacion del css --- src/lib/style.css | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/src/lib/style.css b/src/lib/style.css index 7a3ab9de..256cc05a 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -23,6 +23,7 @@ top: 5%; background: none; } + .logIn { position: absolute; width: 380px; @@ -50,6 +51,7 @@ color: #FFFFFF; background: #528FD8; border-radius: 10px; + } .separator1 { @@ -113,8 +115,8 @@ .cardLogin { background-image: none; height: 0px - } + .initSection { position: absolute; left: 28px; @@ -242,15 +244,6 @@ background: none; } -.textConfirmPassword { - position: absolute; - height: 23px; - left: 49px; - top: 539px; - font-size: 20px; - background: none; -} - .card1 { position: absolute; width: 321px; @@ -267,7 +260,7 @@ position: absolute; height: 23px; left: 49px; - top: 441px; + top: 466px; font-size: 20px; line-height: 23px; background: none; @@ -279,19 +272,7 @@ width: 321px; height: 45px; left: 49px; - top: 471px; - border: none; - background: #FFFEFE; - border-radius: 12px; - font-size: 30px; -} - -.card3 { - position: absolute; - width: 341px; - height: 45px; - left: 49px; - top: 565px; + top: 508px; border: none; background: #FFFEFE; border-radius: 12px; @@ -304,7 +285,7 @@ width: 341px; height: 45px; left: 49px; - top: 641px; + top: 616px; font-weight: bold; font-size: 22px; border: none; From 6fe2cd050d720bf05c9d0d4e543b618332d98fbd Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 14 Apr 2023 10:56:32 -0500 Subject: [PATCH 26/75] modifica estilos --- src/Components/app.js | 11 +- src/Components/create.js | 2 +- src/Components/login.js | 2 +- .../img/{fondo movil.png => fondoMovil.png} | Bin src/lib/style.css | 118 +++++++++++------- test/index.spec.js | 5 + 6 files changed, 86 insertions(+), 52 deletions(-) rename src/lib/img/{fondo movil.png => fondoMovil.png} (100%) diff --git a/src/Components/app.js b/src/Components/app.js index 1eded0f7..ec264e88 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -4,21 +4,20 @@ import { auth } from './firebase.js'; export function init(navigateTo) { const section = document.createElement('section'); section.innerHTML = ` -
+ +
-
o
-
-`; + `; const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { navigateTo('/login'); diff --git a/src/Components/create.js b/src/Components/create.js index 0fec1e19..c5055c75 100644 --- a/src/Components/create.js +++ b/src/Components/create.js @@ -35,7 +35,7 @@ export function create(navigateTo) { navigateTo('/mainScreen'); }) .catch(() => { - sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra

'; + sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra.

'; }); }); return sectionCreate; diff --git a/src/Components/login.js b/src/Components/login.js index cc16b8ca..0d53d6d9 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -35,7 +35,7 @@ export function login(navigateTo) { navigateTo('/mainScreen'); }) .catch(() => { - sectionLogin.querySelector('.note1').innerHTML = '

La dirección de correo electrónico o la contraseña que has introducido no son correctas

'; + sectionLogin.querySelector('.note1').innerHTML = '

La dirección de correo electrónico o la contraseña que has introducido no son correctas.

'; }); }); diff --git a/src/lib/img/fondo movil.png b/src/lib/img/fondoMovil.png similarity index 100% rename from src/lib/img/fondo movil.png rename to src/lib/img/fondoMovil.png diff --git a/src/lib/style.css b/src/lib/style.css index df2b2beb..6f90ddfb 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -1,14 +1,15 @@ * { font-family: Arial, Helvetica, sans-serif; background-color: #B2CAEC; - background-image: url(./img/fondo\ movil.png); - background-repeat: no-repeat; padding: 0%; margin: 0%; +} +.fondoBlanco{ + background: none; } -.init { +.formInit { display: flex; justify-content: center; align-items: center; @@ -16,15 +17,14 @@ } .logo { - position: fixed; width: 58%; height: 21%; left: 21%; top: 5%; background: none; } + .logIn { - position: absolute; width: 380px; height: 46px; left: 24px; @@ -39,8 +39,7 @@ } .register { - position: absolute; - width: 380px; + width: 80%; height: 46px; left: 24px; top: 406px; @@ -53,15 +52,13 @@ } .separator1 { - position: fixed; width: 153px; left: 33px; top: 527px; border: 1px solid #000000; -} +} .separatorText { - position: fixed; left: 212px; top: 514px; font-weight: 400; @@ -70,16 +67,14 @@ } .separator2 { - position: fixed; width: 153px; left: 248px; top: 527px; border: 1px solid #000000; -} +} .google { box-sizing: border-box; - position: absolute; width: 380px; height: 48px; left: 24px; @@ -90,7 +85,7 @@ background: #FFFFFF; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; - + } .imgGoogle { @@ -98,8 +93,11 @@ width: 26px; height: 26px; left: 52px; + background: none; } +/* + .formInteraction { margin: 70% 5% 7%; width: 92%; @@ -113,8 +111,8 @@ .cardLogin { background-image: none; height: 0px - } + .initSection { position: absolute; left: 28px; @@ -196,19 +194,21 @@ outline: none; font-weight: bold; } -.textNote{ + +.textNote { background: none; color: red; } -.note1{ +.note1 { position: absolute; left: 12%; top: 79%; font-size: 12px; background: none; -} -/*pantalla crear cuenta*/ +}*/ + +/*pantalla crear cuenta .creatSection { background-image: none; @@ -312,12 +312,13 @@ background: #F39C12; border-radius: 12px; color: #FFFEFE; -} +}*/ -/*error*/ +/*error u { background: none; } + .errorSection { background-image: none; height: 0px @@ -335,9 +336,9 @@ u { top: 446px; font-size: 24px; background: none; -} +}*/ -@media (min-width: 926px) and (max-width: 1920px) { +/* @media (min-width: 926px) and (max-width: 1920px) { * { background-image: url(./img/fondoDesktops.png); @@ -353,16 +354,28 @@ u { height: 35%; left: 96px; top: 23%; - background: none; + background: none + } + + /*pantalla de acceso + .formInit { + width: 35%; + height: 465px; + border-radius: 52px; + background: white; + background-image: none; + opacity: 0.5; + position: fixed; + top: 14%; + left: 57%; } - /*pantalla de acceso*/ .logIn { position: absolute; width: 380px; height: 46px; left: 61%; - top: 278px; + top: 22%; font-weight: bold; border: none; font-size: 22px; @@ -377,7 +390,7 @@ u { width: 380px; height: 46px; left: 61%; - top: 365px; + top: 35%; border: none; font-weight: bold; font-size: 22px; @@ -392,7 +405,7 @@ u { width: 380px; height: 48px; left: 61%; - top: 572px; + top: 60%; font-size: 22px; padding-left: 58px; border: none; @@ -402,17 +415,17 @@ u { } .separator1 { - position: fixed; + position: absolute; width: 153px; - left: 61%; - top: 67%; + left: 13%; + top: 62%; border: 1px solid #000000; } .separatorText { - position: fixed; - left: 74%; - top: 499px; + position: absolute; + left: 50%; + top: 59%; font-weight: 400; font-size: 24px; color: black; @@ -420,14 +433,14 @@ u { } .separator2 { - position: fixed; + position: absolute; width: 153px; - left: 77%; - top: 67%; + left: 58%; + top: 62%; border: 1px solid #000000; } - /*pantalla de login*/ + /*pantalla de login .initSection { position: absolute; @@ -507,17 +520,25 @@ u { color: #FFFEFE; } + .textNote { + background: none; + color: red; + position: relative; + left: 83%; + width: 61%; + } + .bottomText { position: absolute; - left: 60%; - top: 84%; - font-size: 22px; + left: 62%; + top: 89%; + font-size: 20px; background: none; outline: none; font-weight: bold; } - /* pantalla crear cuenta*/ + /* pantalla crear cuenta .formCreateAccount { margin: 14% 58%; @@ -596,8 +617,17 @@ u { border-radius: 12px; color: #FFFEFE; } + .alert{ + background: none; + color: red; + position: relative; + left: 9%; + width: 83%; + top: 32%; + font-size: 18px; + } - /*pantalla de error*/ + /*pantalla de error u { background: none; } @@ -624,4 +654,4 @@ u { left: 81%; top: 46%; } -} +} */ \ No newline at end of file diff --git a/test/index.spec.js b/test/index.spec.js index 3fd0ed7a..c4e1d61e 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -15,4 +15,9 @@ describe('login', () => { login(navigateTo); expect(navigateTo).not.toHaveBeenCalledWith(); }); + it('Si el usuario desea crear cuenta debería ir a la pantalla crear cuenta', () => { + const myHtml = login(navigateTo); + myHtml.querySelector('.bottomText').click(); + expect(navigateTo).toHaveBeenCalledWith('/register'); + }); }); From 5c4c8cca8f9ddd835b02ea94288751b4680203de Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Mon, 17 Apr 2023 11:06:21 -0400 Subject: [PATCH 27/75] Ajustando responsividad --- .gitignore | 3 +- src/Components/app.js | 70 ----------- src/Components/create.js | 2 +- src/Components/firebase.js | 18 --- src/Components/init.js | 37 ++++++ src/Components/login.js | 2 +- src/Components/mainScreen.js | 11 ++ src/Components/mistake.js | 18 +++ src/lib/img/button-google.png | Bin 0 -> 3222 bytes src/lib/img/division.png | Bin 0 -> 2276 bytes src/lib/img/fondo.png | Bin 0 -> 8043 bytes src/lib/img/google-google.png | Bin 0 -> 977 bytes src/lib/img/google.png | Bin 0 -> 6126 bytes src/lib/posts.js | 4 + src/lib/style.css | 227 +++++++++++++++------------------- src/main.js | 8 +- 16 files changed, 177 insertions(+), 223 deletions(-) delete mode 100644 src/Components/app.js delete mode 100644 src/Components/firebase.js create mode 100644 src/Components/init.js create mode 100644 src/Components/mainScreen.js create mode 100644 src/Components/mistake.js create mode 100644 src/lib/img/button-google.png create mode 100644 src/lib/img/division.png create mode 100644 src/lib/img/fondo.png create mode 100644 src/lib/img/google-google.png create mode 100644 src/lib/img/google.png create mode 100644 src/lib/posts.js diff --git a/.gitignore b/.gitignore index 47735411..145c5b95 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ coverage/ node_modules/ .yarn.lock -package-lock.json \ No newline at end of file +package-lock.json +firebase.js \ No newline at end of file diff --git a/src/Components/app.js b/src/Components/app.js deleted file mode 100644 index ec264e88..00000000 --- a/src/Components/app.js +++ /dev/null @@ -1,70 +0,0 @@ -import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; -import { auth } from './firebase.js'; -// pantalla inicial -export function init(navigateTo) { - const section = document.createElement('section'); - section.innerHTML = ` - -
- - - -
- o -
- -
- `; - const logIn = section.querySelector('.logIn'); - logIn.addEventListener('click', () => { - navigateTo('/login'); - }); - - const register = section.querySelector('.register'); - register.addEventListener('click', () => { - navigateTo('/register'); - }); - - const google = section.querySelector('.google'); - google.addEventListener('click', () => { - const provider = new GoogleAuthProvider(); - signInWithPopup(auth, provider) - .then((result) => { - GoogleAuthProvider.credentialFromResult(result); - navigateTo('/mainScreen'); - }).catch((error) => { - GoogleAuthProvider.credentialFromError(error); - }); - }); - section.append(logIn, register, google); - return section; -} -// pantalla - error -function mistake(navigateTo) { - const bug = document.createElement('div'); - bug.innerHTML = `
-

Error 404: página no encontrada.

- volver al Inicio -
`; - - const keep = bug.querySelector('.init'); - keep.addEventListener('click', () => { - navigateTo('/mainScreen'); - }); - return bug; -} -function mainScreen() { - const section = document.createElement('div'); - section.innerHTML = `
-

Welcome to Main Screen!

-
- `; - return section; -} -export { - mistake, - mainScreen, -}; diff --git a/src/Components/create.js b/src/Components/create.js index c5055c75..2d82f500 100644 --- a/src/Components/create.js +++ b/src/Components/create.js @@ -1,5 +1,5 @@ import { createUserWithEmailAndPassword } from 'firebase/auth'; -import { auth } from './firebase.js'; +import { auth } from '../lib/firebase.js'; // pantalla - crear una cuenta nueva /* diff --git a/src/Components/firebase.js b/src/Components/firebase.js deleted file mode 100644 index 8dcc0bf6..00000000 --- a/src/Components/firebase.js +++ /dev/null @@ -1,18 +0,0 @@ -import { initializeApp } from 'firebase/app'; -import { getAuth } from 'firebase/auth'; - -// TODO: Add SDKs for Firebase products that you want to use -// https://firebase.google.com/docs/web/setup#available-libraries - -// Your web app's Firebase configuration -const firebaseConfig = { - apiKey: 'AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg', - authDomain: 'social-network-dev-005.firebaseapp.com', - projectId: 'social-network-dev-005', - storageBucket: 'social-network-dev-005.appspot.com', - messagingSenderId: '974878862098', - appId: '1:974878862098:web:3992591ee2ebb888c6e1cb', -}; -// Initialize Firebase -export const app = initializeApp(firebaseConfig); -export const auth = getAuth(app); diff --git a/src/Components/init.js b/src/Components/init.js new file mode 100644 index 00000000..7b77ddf4 --- /dev/null +++ b/src/Components/init.js @@ -0,0 +1,37 @@ +import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { auth } from '../lib/firebase.js'; + +// pantalla inicial +export function init(navigateTo) { + const section = document.createElement('section'); + section.classList.add('init'); + section.innerHTML = ` + + + + + + `; + const logIn = section.querySelector('.logIn'); + logIn.addEventListener('click', () => { + navigateTo('/login'); + }); + + const register = section.querySelector('.register'); + register.addEventListener('click', () => { + navigateTo('/register'); + }); + + const google = section.querySelector('.google'); + google.addEventListener('click', () => { + const provider = new GoogleAuthProvider(); + signInWithPopup(auth, provider) + .then((result) => { + GoogleAuthProvider.credentialFromResult(result); + navigateTo('/mainScreen'); + }).catch((error) => { + GoogleAuthProvider.credentialFromError(error); + }); + }); + return section; +} diff --git a/src/Components/login.js b/src/Components/login.js index 0d53d6d9..14094deb 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -1,5 +1,5 @@ import { signInWithEmailAndPassword } from 'firebase/auth'; -import { auth } from './firebase.js'; +import { auth } from '../lib/firebase.js'; // pantalla - inicio de sesión export function login(navigateTo) { diff --git a/src/Components/mainScreen.js b/src/Components/mainScreen.js new file mode 100644 index 00000000..6bcd66a7 --- /dev/null +++ b/src/Components/mainScreen.js @@ -0,0 +1,11 @@ +function mainScreen() { + const postForm = document.createElement('form'); + postForm.innerHTML = ` +
+ + +
`; + return postForm; +} + +export { mainScreen }; diff --git a/src/Components/mistake.js b/src/Components/mistake.js new file mode 100644 index 00000000..33c0f0a3 --- /dev/null +++ b/src/Components/mistake.js @@ -0,0 +1,18 @@ +// pantalla - error +function mistake(navigateTo) { + const bug = document.createElement('div'); + bug.innerHTML = `
+

Error 404: página no encontrada.

+ volver al Inicio +
`; + + const keep = bug.querySelector('.initButton'); + keep.addEventListener('click', () => { + navigateTo('/mainScreen'); + }); + return bug; +} + +export { + mistake, +}; diff --git a/src/lib/img/button-google.png b/src/lib/img/button-google.png new file mode 100644 index 0000000000000000000000000000000000000000..85b9ef8446c247c2f275c90235ebd590a777be1e GIT binary patch literal 3222 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 IM6N<$f_DuaSpWb4 literal 0 HcmV?d00001 diff --git a/src/lib/img/division.png b/src/lib/img/division.png new file mode 100644 index 0000000000000000000000000000000000000000..d385ff530b1725504a673fa2e424670753a6ebc2 GIT binary patch literal 2276 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 + // conectar a firestore (addDoc o setDoc) + // guardar el post en la coleccion posts +} */ diff --git a/src/lib/style.css b/src/lib/style.css index b67bd3d8..6b26517e 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -1,103 +1,90 @@ * { font-family: Arial, Helvetica, sans-serif; - background-color: #B2CAEC; padding: 0%; margin: 0%; } -.fondoBlanco{ - background: none; -} + /*pantalla de acceso*/ -.formInit { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; +.init { + display: flex; + flex-direction: column; + align-items: center; + background-image: url(./img/fondo.png); + background-size: cover; + height: 100vh; } - + .logo { - width: 58%; - height: 21%; - left: 21%; - top: 5%; + position: absolute; + max-width: 233px; + max-height: 176px; + top: 54px; background: none; } .logIn { - width: 380px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 80%; + max-width: 380px; height: 46px; - left: 24px; - top: 308px; font-weight: bold; border: none; font-size: 22px; color: #FFFFFF; background: #F39C12; border-radius: 10px; - justify-content: center; + margin-top: 300px; } .register { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; width: 80%; + max-width: 380px; height: 46px; - left: 24px; - top: 406px; border: none; font-weight: bold; font-size: 22px; color: #FFFFFF; background: #528FD8; border-radius: 10px; + margin-top: 50px;; } -.separator1 { - width: 153px; - left: 33px; - top: 527px; - border: 1px solid #000000; -} - -.separatorText { - left: 212px; - top: 514px; - font-weight: 400; - font-size: 22px; - color: black; -} - -.separator2 { - width: 153px; - left: 248px; - top: 527px; - border: 1px solid #000000; +.division { + position: absolute; + margin-top: 500px; + width: 80%; + max-width: 380px; } .google { + + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 80%; + max-width: 380px; box-sizing: border-box; - width: 380px; height: 48px; - left: 24px; - top: 589px; font-size: 22px; padding-left: 58px; border: none; - background: #FFFFFF; + background: #ece1e1 url(/lib/img/google-google.png) no-repeat 25px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; - -} - -.imgGoogle { - position: absolute; - width: 26px; - height: 26px; - left: 52px; - background: none; + margin-top: 130px; } -/* + /*pantalla de login*/ .formInteraction { margin: 70% 5% 7%; @@ -195,21 +182,20 @@ outline: none; font-weight: bold; } - -.textNote { +.textNote{ background: none; color: red; } -.note1 { +.note1{ position: absolute; left: 12%; top: 79%; font-size: 12px; background: none; -}*/ +} -/*pantalla crear cuenta +/*pantalla crear cuenta*/ .creatSection { background-image: none; @@ -279,19 +265,6 @@ padding-left: 5%; } -.card3 { - position: absolute; - width: 341px; - height: 45px; - left: 49px; - top: 565px; - border: none; - background: #FFFEFE; - border-radius: 12px; - font-size: 30px; - padding-left: 5%; -} - .bottomKeep { position: absolute; width: 341px; @@ -304,10 +277,28 @@ background: #F39C12; border-radius: 12px; color: #FFFEFE; -}*/ +} + +/* Pantalla principal*/ -/*error -u { +.postForm { + display: flex; + justify-content: center; + align-items: center; + margin: 113px auto; + width: 80%; + height: 116px; + border-radius: 10px; + padding-top: 10px; + padding-left: 10px; + background-color: white; + border: none; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + +} + +/*error*/ + u { background: none; } @@ -328,9 +319,18 @@ u { top: 446px; font-size: 24px; background: none; -}*/ +} + +.initButton { + position: absolute; + font-size: 22px; + color: blue; + background: none; + left: 31%; + top: 52%; +} -/* @media (min-width: 926px) and (max-width: 1920px) { +@media (min-width: 926px) and (max-width: 1920px) { * { background-image: url(./img/fondoDesktops.png); @@ -346,28 +346,16 @@ u { height: 35%; left: 96px; top: 23%; - background: none - } - - /*pantalla de acceso - .formInit { - width: 35%; - height: 465px; - border-radius: 52px; - background: white; - background-image: none; - opacity: 0.5; - position: fixed; - top: 14%; - left: 57%; + background: none; } + /*pantalla de acceso*/ .logIn { position: absolute; width: 380px; height: 46px; left: 61%; - top: 22%; + top: 278px; font-weight: bold; border: none; font-size: 22px; @@ -382,7 +370,7 @@ u { width: 380px; height: 46px; left: 61%; - top: 35%; + top: 365px; border: none; font-weight: bold; font-size: 22px; @@ -397,7 +385,7 @@ u { width: 380px; height: 48px; left: 61%; - top: 60%; + top: 572px; font-size: 22px; padding-left: 58px; border: none; @@ -407,17 +395,17 @@ u { } .separator1 { - position: absolute; + position: fixed; width: 153px; - left: 13%; - top: 62%; + left: 61%; + top: 67%; border: 1px solid #000000; } .separatorText { - position: absolute; - left: 50%; - top: 59%; + position: fixed; + left: 74%; + top: 499px; font-weight: 400; font-size: 24px; color: black; @@ -425,14 +413,14 @@ u { } .separator2 { - position: absolute; + position: fixed; width: 153px; - left: 58%; - top: 62%; + left: 77%; + top: 67%; border: 1px solid #000000; } - /*pantalla de login + /*pantalla de login*/ .initSection { position: absolute; @@ -512,25 +500,17 @@ u { color: #FFFEFE; } - .textNote { - background: none; - color: red; - position: relative; - left: 83%; - width: 61%; - } - .bottomText { position: absolute; - left: 62%; - top: 89%; - font-size: 20px; + left: 60%; + top: 84%; + font-size: 22px; background: none; outline: none; font-weight: bold; } - /* pantalla crear cuenta + /* pantalla crear cuenta*/ .formCreateAccount { margin: 14% 58%; @@ -609,17 +589,8 @@ u { border-radius: 12px; color: #FFFEFE; } - .alert{ - background: none; - color: red; - position: relative; - left: 9%; - width: 83%; - top: 32%; - font-size: 18px; - } - /*pantalla de error + /*pantalla de error*/ u { background: none; } @@ -638,7 +609,7 @@ u { background: none; } - .init { + .initButton { position: absolute; font-size: 24px; color: blue; @@ -646,4 +617,4 @@ u { left: 81%; top: 46%; } -} */ \ No newline at end of file +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index e5129976..5b422a2d 100644 --- a/src/main.js +++ b/src/main.js @@ -1,9 +1,9 @@ // import { funcion a crear } from './lib/index.js'; -import { - init, mistake, mainScreen, -} from './Components/app.js'; +import { mistake } from './Components/mistake.js'; +import { mainScreen } from './Components/mainScreen.js'; +import { init } from './Components/init.js'; import { login } from './Components/login.js'; -import './Components/firebase.js'; +import './lib/firebase.js'; import { create } from './Components/create.js'; const root = document.getElementById('root'); From cfd2c37ef130dbd726d523ff46340d129ee20825 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Mon, 17 Apr 2023 10:13:29 -0500 Subject: [PATCH 28/75] Modificaciones en los estilos --- src/Components/create.js | 11 ++-- src/lib/style.css | 139 +++++++++++++++++++++++---------------- 2 files changed, 90 insertions(+), 60 deletions(-) diff --git a/src/Components/create.js b/src/Components/create.js index c5055c75..907bbe0b 100644 --- a/src/Components/create.js +++ b/src/Components/create.js @@ -4,20 +4,21 @@ import { auth } from './firebase.js'; // pantalla - crear una cuenta nueva /* */ +/* */ export function create(navigateTo) { const sectionCreate = document.createElement('div'); - sectionCreate.innerHTML = `
- -
+ sectionCreate.innerHTML = ` +

Crear cuenta

+ -
- + +
`; const logIn = sectionCreate.querySelector('.bottomText'); diff --git a/src/lib/style.css b/src/lib/style.css index 6f90ddfb..025009fc 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -1,7 +1,7 @@ * { font-family: Arial, Helvetica, sans-serif; background-color: #B2CAEC; - padding: 0%; + padding: 1%; margin: 0%; } @@ -17,6 +17,7 @@ } .logo { + position: absolute; width: 58%; height: 21%; left: 21%; @@ -208,91 +209,107 @@ background: none; }*/ -/*pantalla crear cuenta +/* pantalla crear cuenta */ +.logo1 { + display: flex; + width: 100%; + max-width: 205px; + height: 148px; + margin-left: 26%; + margin-top: 16%; -.creatSection { - background-image: none; - height: 0px } - -.formCreateAccount { - margin: 70% 5% 7%; - width: 92%; - height: 404px; - border-radius: 12px; - background: #D9D9D9; +.creatSection { background-image: none; - opacity: 0.9; + height: 0px } .createAccount { - position: absolute; - left: 24px; - top: 254px; - font-size: 22px; - background: none; + display: flex; + margin-left: 33px; + margin-top: 40px; + width: 307px; + height: 94px; } -.textButtonCreateAccount { - position: absolute; - height: 23px; - left: 49px; - top: 330px; - font-size: 20px; - background: none; +.formCreateAccount { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: nowrap; + margin: 60% auto; + flex-direction: column; + width: 107%; + max-width: 385px; + height: 40vh; + border-radius: 12px; + background: #D9D9D9; + background-image: none; + opacity: 0.9; + margin-top: -9%; } -.textConfirmPassword { - position: absolute; - height: 23px; - left: 49px; - top: 539px; +.textButtonCreateAccount { + display: flex; + height: 37px; font-size: 20px; background: none; + width: 307px; + margin-top: 14px; } - .card1 { - position: absolute; - width: 321px; - height: 45px; - left: 49px; - top: 369px; + display: flex; + align-items: center; + justify-content: center; + width: 76%; + max-width:326px; + height: 5vh; border: none; + background: #FFFEFE; border-radius: 12px; font-size: 21px; padding-left: 5%; + margin: 8% auto; + margin-top: 3%; } .textPasswordCreateAccount { - position: absolute; + display: flex; height: 23px; - left: 49px; - top: 466px; font-size: 20px; line-height: 23px; background: none; - + width: 307px; } .card2 { - position: absolute; - width: 321px; - height: 45px; - left: 49px; - top: 508px; + display: flex; + align-items: center; + justify-content: center; + width: 76%; + max-width:326px; + height: 5vh; border: none; background: #FFFEFE; border-radius: 12px; font-size: 30px; padding-left: 5%; + margin: 8% auto; +} +.textConfirmPassword { + display: flex; + height: 23px; + font-size: 20px; + background: none; + margin-top: 41px; } - .card3 { - position: absolute; - width: 341px; + display: flex; + align-items: center; + justify-content: center; + width: 76%; + max-width:326px; height: 45px; - left: 49px; - top: 565px; border: none; background: #FFFEFE; border-radius: 12px; @@ -301,19 +318,31 @@ } .bottomKeep { - position: absolute; - width: 341px; + display: flex; + align-items: center; + justify-content: center; + width: 76%; + max-width:326px; height: 45px; - left: 49px; - top: 616px; font-weight: bold; font-size: 22px; border: none; background: #F39C12; border-radius: 12px; color: #FFFEFE; -}*/ +} +.bottomText { + position: absolute; + height: 25px; + left: 40px; + top: 847px; + font-size: 22px; + background: none; + outline: none; + font-weight: bold; + margin-top:4% +} /*error u { background: none; From 0028ca8d62b416a27aca525b0d4bd79647377a5b Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 17 Apr 2023 10:22:15 -0500 Subject: [PATCH 29/75] itera el responsive --- src/Components/app.js | 2 +- src/Components/login.js | 11 ++-- src/lib/style.css | 137 +++++++++++++++++++--------------------- 3 files changed, 73 insertions(+), 77 deletions(-) diff --git a/src/Components/app.js b/src/Components/app.js index ec264e88..ab975d1f 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -5,8 +5,8 @@ export function init(navigateTo) { const section = document.createElement('section'); section.innerHTML = ` +
-
diff --git a/src/Components/login.js b/src/Components/login.js index 0d53d6d9..65fe4824 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -3,19 +3,20 @@ import { auth } from './firebase.js'; // pantalla - inicio de sesión export function login(navigateTo) { - const sectionLogin = document.createElement('div'); - sectionLogin.innerHTML = `
- -

Inicio de Sesión

+ const sectionLogin = document.createElement('section'); + sectionLogin.classList.add('sectionLogin'); + sectionLogin.innerHTML = ` + +

Inicio de Sesión

+ - ¿No tienes una cuenta? Regístrate
`; diff --git a/src/lib/style.css b/src/lib/style.css index 6f90ddfb..71477dfd 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -8,7 +8,6 @@ .fondoBlanco{ background: none; } - .formInit { display: flex; justify-content: center; @@ -50,7 +49,6 @@ background: #528FD8; border-radius: 10px; } - .separator1 { width: 153px; left: 33px; @@ -65,14 +63,12 @@ font-size: 22px; color: black; } - .separator2 { width: 153px; left: 248px; top: 527px; border: 1px solid #000000; } - .google { box-sizing: border-box; width: 380px; @@ -85,128 +81,127 @@ background: #FFFFFF; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; +} + +/*pantalla de ingreso*/ + +.sectionLogin{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } -.imgGoogle { +.logo2{ position: absolute; - width: 26px; - height: 26px; - left: 52px; - background: none; + top: 3%; } - -/* - .formInteraction { - margin: 70% 5% 7%; - width: 92%; - height: 404px; - border-radius: 12px; + display: flex; + flex-wrap: nowrap; + flex-direction: column; + justify-content: space-between; + align-items: center; + height: 46vh; + max-height: 500px; + width: 88%; + max-width: 500px; + margin: 260px auto; + border-radius: 19px; background: #D9D9D9; - background-image: none; opacity: 0.9; } -.cardLogin { - background-image: none; - height: 0px -} - .initSection { - position: absolute; - left: 28px; - top: 254px; + display: flex; + margin: -34px 14px 0px 0px; font-size: 22px; - background: none; } - - -.labelEmail { - position: absolute; - height: 23px; - left: 49px; - top: 330px; +.labelEmail{ + display: flex; font-size: 20px; background: none; + margin: -13px 170px 6px 0px; } .inputEmail { - position: absolute; - width: 321px; + display: flex; + background: white; + width: 94%; + max-width: 321px; height: 45px; - left: 49px; - top: 369px; border: none; + margin: -31px 0px 0px -7px; border-radius: 12px; font-size: 21px; padding-left: 5%; - + justify-content: flex-start; } - - .labelPassword { - position: absolute; - height: 23px; - left: 49px; - top: 466px; + display: flex; font-size: 20px; - line-height: 23px; background: none; + margin: 0px 234px 6px 0px; } .inputPassword { - position: absolute; - width: 321px; + display: flex; + background: white; + width: 94%; + max-width: 321px; height: 45px; - left: 49px; - top: 508px; border: none; - background: #FFFEFE; + margin: -31px 0px 0px -7px; border-radius: 12px; - font-size: 30px; + font-size: 28px; padding-left: 5%; + justify-content: flex-start; } .getInt { - position: absolute; - width: 341px; + display: flex; + background: #528FD8; + width: 99%; + max-width: 343px; height: 45px; - left: 49px; - top: 616px; + margin: -31px 0px 0px -7px; + border-radius: 12px; + justify-content: center; font-weight: bold; font-size: 22px; border: none; - background: #528FD8; - border-radius: 12px; color: #FFFEFE; + align-items: center; } .bottomText { - position: absolute; - height: 25px; - left: 40px; - top: 847px; + display: flex; + width: 103%; + max-width: 368px; + height: 45px; + justify-content: center; + border: none; + color: black; + align-items: center; font-size: 22px; background: none; - outline: none; font-weight: bold; } -.textNote { - background: none; +.textNote{ + display: flex; color: red; + background: none; + border: red solid 1px; + font-size: 17px; + margin: 0px 76px 18px; + border-radius: 8px; + padding-left: 3%; } -.note1 { - position: absolute; - left: 12%; - top: 79%; - font-size: 12px; - background: none; -}*/ /*pantalla crear cuenta From d838e38bc1a04cccc5e8601e21f04118c1bf1ff4 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 17 Apr 2023 10:28:15 -0500 Subject: [PATCH 30/75] actualiza cambios de documentos --- src/lib/style.css | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/lib/style.css b/src/lib/style.css index 7cb6a9a5..94777fad 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -4,17 +4,17 @@ margin: 0%; } - /*pantalla de acceso*/ +/*pantalla de acceso*/ .init { - display: flex; - flex-direction: column; - align-items: center; - background-image: url(./img/fondo.png); - background-size: cover; - height: 100vh; -} - + display: flex; + flex-direction: column; + align-items: center; + background-image: url(./img/fondo.png); + background-size: cover; + height: 100vh; +} + .logo { position: absolute; max-width: 233px; @@ -26,7 +26,7 @@ .logIn { display: flex; flex-direction: column; - justify-content: center; + justify-content: center; align-items: center; width: 80%; max-width: 380px; @@ -54,7 +54,8 @@ color: #FFFFFF; background: #528FD8; border-radius: 10px; - margin-top: 50px;; + margin-top: 50px; + ; } @@ -64,8 +65,9 @@ width: 80%; max-width: 380px; } + .google { - + display: flex; flex-direction: column; justify-content: center; @@ -85,17 +87,18 @@ /*pantalla de ingreso*/ -.sectionLogin{ +.sectionLogin { display: flex; flex-direction: column; - justify-content: center; + justify-content: center; align-items: center; } -.logo2{ +.logo2 { position: absolute; top: 3%; } + .formInteraction { display: flex; flex-wrap: nowrap; @@ -106,7 +109,7 @@ max-height: 500px; width: 88%; max-width: 500px; - margin: 260px auto; + margin: 260px auto; border-radius: 19px; background: #D9D9D9; opacity: 0.9; @@ -118,7 +121,7 @@ font-size: 22px; } -.labelEmail{ +.labelEmail { display: flex; font-size: 20px; background: none; @@ -190,7 +193,7 @@ font-weight: bold; } -.textNote{ +.textNote { display: flex; color: red; } @@ -308,11 +311,11 @@ background-color: white; border: none; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - + } /*error*/ - u { +u { background: none; } @@ -631,4 +634,4 @@ left: 81%; top: 46%; } -} \ No newline at end of file +} \ No newline at end of file From 8bf941bf7f87749660fbea061e99ea427c9fe912 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Mon, 17 Apr 2023 11:48:47 -0400 Subject: [PATCH 31/75] Desbloqueando firebase.js --- .gitignore | 1 - src/lib/firebase.js | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/lib/firebase.js diff --git a/.gitignore b/.gitignore index 145c5b95..471a9bf1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ coverage/ node_modules/ .yarn.lock package-lock.json -firebase.js \ No newline at end of file diff --git a/src/lib/firebase.js b/src/lib/firebase.js new file mode 100644 index 00000000..8dcc0bf6 --- /dev/null +++ b/src/lib/firebase.js @@ -0,0 +1,18 @@ +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; + +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = { + apiKey: 'AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg', + authDomain: 'social-network-dev-005.firebaseapp.com', + projectId: 'social-network-dev-005', + storageBucket: 'social-network-dev-005.appspot.com', + messagingSenderId: '974878862098', + appId: '1:974878862098:web:3992591ee2ebb888c6e1cb', +}; +// Initialize Firebase +export const app = initializeApp(firebaseConfig); +export const auth = getAuth(app); From 3c93c6d5b825596bfffaf45102c524ddd54e8d30 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 17 Apr 2023 10:51:18 -0500 Subject: [PATCH 32/75] actualiza --- src/main.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main.js b/src/main.js index 5b422a2d..37ec1b6a 100644 --- a/src/main.js +++ b/src/main.js @@ -34,6 +34,3 @@ export function navigateTo(hash) { } navigateTo(window.location.pathname || defaultRoute); -/* export { - navigateTo -}; */ From 716cd43dce139c4f95c43650d85e5457aaaf6f08 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Mon, 17 Apr 2023 11:01:24 -0500 Subject: [PATCH 33/75] Modificicacione en el css --- src/lib/style.css | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/lib/style.css b/src/lib/style.css index 4a4ae8b8..df2e78a6 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -202,7 +202,6 @@ background: none; } -/*pantalla crear cuenta*/ /* pantalla crear cuenta */ .logo1 { display: flex; @@ -248,8 +247,6 @@ height: 37px; font-size: 20px; background: none; -} - width: 307px; margin-top: 14px; } @@ -347,8 +344,6 @@ } /*error*/ - u { -} .bottomText { position: absolute; From 68befc12215aeee39660fdec20489beaf4bee8a1 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 18 Apr 2023 13:21:39 -0500 Subject: [PATCH 34/75] modifica los nombres de los archivos --- package.json | 2 +- src/Components/app.js | 15 +---- src/Components/{mainScreen.js => home.js} | 4 +- src/Components/init.js | 2 +- src/Components/login.js | 19 +++--- src/Components/{create.js => register.js} | 2 +- src/lib/index.js | 29 ---------- src/lib/sign_in.js | 13 +++++ src/lib/style.css | 70 +++++++++++------------ src/main.js | 22 ++++--- test/index.spec.js | 4 +- 11 files changed, 79 insertions(+), 103 deletions(-) rename src/Components/{mainScreen.js => home.js} (84%) rename src/Components/{create.js => register.js} (98%) delete mode 100644 src/lib/index.js create mode 100644 src/lib/sign_in.js diff --git a/package.json b/package.json index bb089993..b30d937f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "eslint": "eslint --ext .js src/ test/", "stylelint": "stylelint --aei src/**/*.css", "pretest": "npm run htmlhint && npm run eslint && npm run stylelint", - "test": "jest --coverage", + "test": "jest --coverage --watch", "dev": "vite dev src", "start": "npm run dev", "build": "vite build", diff --git a/src/Components/app.js b/src/Components/app.js index ab975d1f..dea01abb 100644 --- a/src/Components/app.js +++ b/src/Components/app.js @@ -1,5 +1,5 @@ import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; -import { auth } from './firebase.js'; +import { auth } from '../lib/firebase.js'; // pantalla inicial export function init(navigateTo) { const section = document.createElement('section'); @@ -34,7 +34,7 @@ export function init(navigateTo) { signInWithPopup(auth, provider) .then((result) => { GoogleAuthProvider.credentialFromResult(result); - navigateTo('/mainScreen'); + navigateTo('/emprende'); }).catch((error) => { GoogleAuthProvider.credentialFromError(error); }); @@ -52,19 +52,10 @@ function mistake(navigateTo) { const keep = bug.querySelector('.init'); keep.addEventListener('click', () => { - navigateTo('/mainScreen'); + navigateTo('/emprende'); }); return bug; } -function mainScreen() { - const section = document.createElement('div'); - section.innerHTML = `
-

Welcome to Main Screen!

-
- `; - return section; -} export { mistake, - mainScreen, }; diff --git a/src/Components/mainScreen.js b/src/Components/home.js similarity index 84% rename from src/Components/mainScreen.js rename to src/Components/home.js index 6bcd66a7..0733be86 100644 --- a/src/Components/mainScreen.js +++ b/src/Components/home.js @@ -1,4 +1,4 @@ -function mainScreen() { +function home() { const postForm = document.createElement('form'); postForm.innerHTML = `
@@ -8,4 +8,4 @@ function mainScreen() { return postForm; } -export { mainScreen }; +export { home }; diff --git a/src/Components/init.js b/src/Components/init.js index 7b77ddf4..360bd8fb 100644 --- a/src/Components/init.js +++ b/src/Components/init.js @@ -28,7 +28,7 @@ export function init(navigateTo) { signInWithPopup(auth, provider) .then((result) => { GoogleAuthProvider.credentialFromResult(result); - navigateTo('/mainScreen'); + navigateTo('/emprende'); }).catch((error) => { GoogleAuthProvider.credentialFromError(error); }); diff --git a/src/Components/login.js b/src/Components/login.js index df94917c..e0f77974 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -1,5 +1,4 @@ -import { signInWithEmailAndPassword } from 'firebase/auth'; -import { auth } from '../lib/firebase.js'; +import { signIn } from '../lib/sign_in.js'; // pantalla - inicio de sesión export function login(navigateTo) { @@ -15,8 +14,8 @@ export function login(navigateTo) { -
+
`; @@ -25,18 +24,18 @@ export function login(navigateTo) { navigateTo('/register'); }); - const keep = sectionLogin.querySelector('.formInteraction'); - keep.addEventListener('submit', (e) => { + const formLogin = sectionLogin.querySelector('.formInteraction'); + formLogin.addEventListener('submit', (e) => { e.preventDefault(); const email = sectionLogin.querySelector('.inputEmail').value; const password = sectionLogin.querySelector('.inputPassword').value; - signInWithEmailAndPassword(auth, email, password) - .then(() => { - navigateTo('/mainScreen'); + signIn(email, password) + .then((response) => { + console.log(response); }) - .catch(() => { - sectionLogin.querySelector('.note1').innerHTML = '

La dirección de correo electrónico o la contraseña que has introducido no son correctas.

'; + .catch((err) => { + sectionLogin.querySelector('.note1').innerHTML = `${err.message}`; }); }); diff --git a/src/Components/create.js b/src/Components/register.js similarity index 98% rename from src/Components/create.js rename to src/Components/register.js index 2d82f500..f3d40866 100644 --- a/src/Components/create.js +++ b/src/Components/register.js @@ -32,7 +32,7 @@ export function create(navigateTo) { const password = sectionCreate.querySelector('.card2').value; createUserWithEmailAndPassword(auth, email, password) .then(() => { - navigateTo('/mainScreen'); + console.log('ya entro'); }) .catch(() => { sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra.

'; diff --git a/src/lib/index.js b/src/lib/index.js deleted file mode 100644 index cb85785f..00000000 --- a/src/lib/index.js +++ /dev/null @@ -1,29 +0,0 @@ -// funciones que seran testeadas -// pantalla - inicio de sesión -export function login(navigateTo) { - const sectionLogin = document.createElement('div'); - sectionLogin.innerHTML = `
- -

Inicio de Sesión

-
- - - - - -
- ¿No tienes una cuenta? Regístrate -
- `; - const checkIn = sectionLogin.querySelector('.bottomText'); - checkIn.addEventListener('click', () => { - navigateTo('/register'); - }); - - const keep = sectionLogin.querySelector('.getInt'); - keep.addEventListener('click', () => { - navigateTo('/mainScreen'); - }); - - return sectionLogin; -} diff --git a/src/lib/sign_in.js b/src/lib/sign_in.js new file mode 100644 index 00000000..dc7e9353 --- /dev/null +++ b/src/lib/sign_in.js @@ -0,0 +1,13 @@ +/* eslint-disable prefer-promise-reject-errors */ +import { signInWithEmailAndPassword } from 'firebase/auth'; +import { auth } from './firebase.js'; + +export const signIn = (email, password) => new Promise((resolve, reject) => { + signInWithEmailAndPassword(auth, email, password) + .then(() => { + resolve({ message: 'fine' }); + }) + .catch((error) => { + reject({ message: error.message }); + }); +}); diff --git a/src/lib/style.css b/src/lib/style.css index 94777fad..f9745b53 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -5,7 +5,6 @@ } /*pantalla de acceso*/ - .init { display: flex; flex-direction: column; @@ -55,8 +54,6 @@ background: #528FD8; border-radius: 10px; margin-top: 50px; - ; - } .division { @@ -67,7 +64,6 @@ } .google { - display: flex; flex-direction: column; justify-content: center; @@ -79,12 +75,12 @@ font-size: 22px; padding-left: 58px; border: none; - background: #ece1e1 url(/lib/img/google-google.png) no-repeat 25px; + background: #ECE1E1 url(/lib/img/google-google.png) no-repeat 25px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; + margin-top: 130px; } - /*pantalla de ingreso*/ .sectionLogin { @@ -92,6 +88,9 @@ flex-direction: column; justify-content: center; align-items: center; + background-image: url(./img/fondo.png); + background-size: cover; + height: 100vh; } .logo2 { @@ -101,23 +100,22 @@ .formInteraction { display: flex; - flex-wrap: nowrap; flex-direction: column; - justify-content: space-between; align-items: center; - height: 46vh; - max-height: 500px; - width: 88%; - max-width: 500px; + height: 44vh; + max-height: 440px; + width: 89%; + max-width: 469px; margin: 260px auto; border-radius: 19px; background: #D9D9D9; opacity: 0.9; + justify-content: space-around; } .initSection { display: flex; - margin: -34px 14px 0px 0px; + margin: -69px 12px 9px 0px; font-size: 22px; } @@ -125,7 +123,7 @@ display: flex; font-size: 20px; background: none; - margin: -13px 170px 6px 0px; + margin: -16px 170px -28px 0px; } .inputEmail { @@ -135,7 +133,6 @@ max-width: 321px; height: 45px; border: none; - margin: -31px 0px 0px -7px; border-radius: 12px; font-size: 21px; padding-left: 5%; @@ -146,7 +143,8 @@ display: flex; font-size: 20px; background: none; - margin: 0px 234px 6px 0px; + margin: -14px 234px 39px 0px; + } .inputPassword { @@ -156,20 +154,19 @@ max-width: 321px; height: 45px; border: none; - margin: -31px 0px 0px -7px; border-radius: 12px; font-size: 28px; padding-left: 5%; + margin: -66px 0px 0px 0px; justify-content: flex-start; } .getInt { display: flex; background: #528FD8; - width: 99%; + width: 100%; max-width: 343px; height: 45px; - margin: -31px 0px 0px -7px; border-radius: 12px; justify-content: center; font-weight: bold; @@ -177,38 +174,34 @@ border: none; color: #FFFEFE; align-items: center; + margin-bottom: 15px; } .bottomText { - display: flex; + position: absolute; + top: 817px; width: 103%; max-width: 368px; - height: 45px; - justify-content: center; + height: 44px; border: none; color: black; - align-items: center; font-size: 22px; background: none; font-weight: bold; } -.textNote { - display: flex; - color: red; -} .note1 { - position: absolute; - left: 12%; - top: 79%; - font-size: 12px; + color: red; + width: 92%; + max-width: 349px; + height: 54px; background: none; border: red solid 1px; font-size: 17px; - margin: 0px 76px 18px; + margin: -21px 0px -23px 4px; border-radius: 8px; - padding-left: 3%; + padding: 2%; } @@ -347,6 +340,7 @@ u { top: 52%; } +/* @media (min-width: 926px) and (max-width: 1920px) { * { @@ -366,7 +360,7 @@ u { background: none; } - /*pantalla de acceso*/ + /*pantalla de acceso .logIn { position: absolute; width: 380px; @@ -437,7 +431,7 @@ u { border: 1px solid #000000; } - /*pantalla de login*/ + /*pantalla de login .initSection { position: absolute; @@ -527,7 +521,7 @@ u { font-weight: bold; } - /* pantalla crear cuenta*/ + /* pantalla crear cuenta .formCreateAccount { margin: 14% 58%; @@ -607,7 +601,7 @@ u { color: #FFFEFE; } - /*pantalla de error*/ + /*pantalla de error u { background: none; } @@ -634,4 +628,4 @@ u { left: 81%; top: 46%; } -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/src/main.js b/src/main.js index 37ec1b6a..2f9bd732 100644 --- a/src/main.js +++ b/src/main.js @@ -1,10 +1,10 @@ -// import { funcion a crear } from './lib/index.js'; +import { onAuthStateChanged } from 'firebase/auth'; import { mistake } from './Components/mistake.js'; -import { mainScreen } from './Components/mainScreen.js'; +import { home } from './Components/home.js'; import { init } from './Components/init.js'; import { login } from './Components/login.js'; -import './lib/firebase.js'; -import { create } from './Components/create.js'; +import { create } from './Components/register.js'; +import { auth } from './lib/firebase.js'; const root = document.getElementById('root'); root.append(init()); @@ -14,7 +14,7 @@ const routes = [ { path: '/login', component: login }, { path: '/register', component: create }, { path: '/error', component: mistake }, - { path: '/mainScreen', component: mainScreen }, + { path: '/emprende', component: home }, ]; const defaultRoute = '/'; @@ -32,5 +32,13 @@ export function navigateTo(hash) { navigateTo('/error'); } } - -navigateTo(window.location.pathname || defaultRoute); +// For redirect users to stratus of sessions +onAuthStateChanged(auth, (user) => { + if (user) { + navigateTo('/emprende'); + } else if (window.location.pathname === '/emprende' && user === null) { + navigateTo(defaultRoute); + } else { + navigateTo(window.location.pathname || defaultRoute); + } +}); diff --git a/test/index.spec.js b/test/index.spec.js index c4e1d61e..5a7c6533 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,5 +1,5 @@ // import { navigateTo } from '../src/main.js'; -import { login } from '../src/lib/index'; +import { login } from '../src/Components/login.js'; // jest.mock('../test/__mock__/main.js'); const navigateTo = jest.fn(); @@ -9,7 +9,7 @@ describe('login', () => { it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); myHtml.querySelector('.getInt').click(); - expect(navigateTo).toHaveBeenCalledWith('/mainScreen'); + expect(navigateTo).toHaveBeenCalledWith('/emprende'); }); it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); From 4ce774d36473411574cc76596be83cae2027607e Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Tue, 18 Apr 2023 14:22:53 -0400 Subject: [PATCH 35/75] modificando fondo de home --- src/Components/mainScreen.js | 3 ++- src/lib/img/fondoHome.png | Bin 0 -> 10241 bytes src/lib/style.css | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/lib/img/fondoHome.png diff --git a/src/Components/mainScreen.js b/src/Components/mainScreen.js index 6bcd66a7..36afbc86 100644 --- a/src/Components/mainScreen.js +++ b/src/Components/mainScreen.js @@ -1,5 +1,6 @@ function mainScreen() { - const postForm = document.createElement('form'); + const postForm = document.createElement('div'); + postForm.classList.add('mainScreen'); postForm.innerHTML = `
diff --git a/src/lib/img/fondoHome.png b/src/lib/img/fondoHome.png new file mode 100644 index 0000000000000000000000000000000000000000..bebd22e079a93c21ed03136eadf79d5bfc5ffedd GIT binary patch literal 10241 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 Date: Tue, 18 Apr 2023 13:26:18 -0500 Subject: [PATCH 36/75] =?UTF-8?q?modificaci=C3=B3n=20en=20los=20estilos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/create.js | 5 +- src/lib/style.css | 113 +++++++++++++++------------------------ 2 files changed, 46 insertions(+), 72 deletions(-) diff --git a/src/Components/create.js b/src/Components/create.js index 1d220c66..98f5ea8d 100644 --- a/src/Components/create.js +++ b/src/Components/create.js @@ -1,5 +1,5 @@ import { createUserWithEmailAndPassword } from 'firebase/auth'; -import { auth } from '../lib/firebase.js'; +// import { auth } from '../lib/firebase.js'; // pantalla - crear una cuenta nueva /* @@ -7,10 +7,11 @@ import { auth } from '../lib/firebase.js'; /* */ export function create(navigateTo) { const sectionCreate = document.createElement('div'); + sectionCreate.classList.add('creat'); sectionCreate.innerHTML = ` -

Crear cuenta

+

Crear cuenta

diff --git a/src/lib/style.css b/src/lib/style.css index df2e78a6..c36ea964 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -1,39 +1,28 @@ -* { +*{ font-family: Arial, Helvetica, sans-serif; padding: 0%; - background-color: #B2CAEC; - padding: 1%; margin: 0%; } - /*pantalla de acceso*/ - .init { display: flex; flex-direction: column; - align-items: center; + align-items: center; background-image: url(./img/fondo.png); background-size: cover; height: 100vh; } - .logo { position: absolute; max-width: 233px; max-height: 176px; top: 54px; - position: absolute; - width: 58%; - height: 21%; - left: 21%; - top: 5%; background: none; } - .logIn { display: flex; flex-direction: column; - justify-content: center; + justify-content: center; align-items: center; width: 80%; max-width: 380px; @@ -46,7 +35,6 @@ border-radius: 10px; margin-top: 300px; } - .register { display: flex; flex-direction: column; @@ -62,18 +50,14 @@ background: #528FD8; border-radius: 10px; margin-top: 50px;; - } - .division { position: absolute; margin-top: 500px; width: 80%; max-width: 380px; } - .google { - display: flex; flex-direction: column; justify-content: center; @@ -85,14 +69,13 @@ font-size: 22px; padding-left: 58px; border: none; - background: #ece1e1 url(/lib/img/google-google.png) no-repeat 25px; + background: #ECE1E1 url(/lib/img/google-google.png) no-repeat 25px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; margin-top: 130px; } - /*pantalla de login*/ - +/* .formInteraction { margin: 70% 5% 7%; width: 92%; @@ -140,8 +123,6 @@ } - - .labelPassword { position: absolute; height: 23px; @@ -200,55 +181,46 @@ top: 79%; font-size: 12px; background: none; -} +} */ /* pantalla crear cuenta */ -.logo1 { +.creat{ display: flex; - width: 100%; - max-width: 205px; - height: 148px; - margin-left: 26%; - margin-top: 16%; - + flex-direction: column; + align-items: center; + background-image: url(./img/fondo.png); + background-size: cover; + height: 100vh; } -.creatSection { - background-image: none; - height: 0px +.logo1 { + position: absolute; + top: 3%; +} +.formCreateAccount { + flex-direction: column; + justify-content: space-between; + align-items: center; + height: 46vh; + max-height: 500px; + width: 88%; + max-width: 500px; + margin: 260px auto; + border-radius: 19px; + background: #D9D9D9; + opacity: 0.9; } - .createAccount { display: flex; - margin-left: 33px; - margin-top: 40px; - width: 307px; - height: 94px; -} - -.formCreateAccount { - display: flex; - align-items: center; - justify-content: center; - flex-wrap: nowrap; - margin: 60% auto; - flex-direction: column; - width: 107%; - max-width: 385px; - height: 40vh; - border-radius: 12px; - background: #D9D9D9; - background-image: none; - opacity: 0.9; - margin-top: -9%; + margin: -34px 14px 0px 0px; + font-size: 22px; } - .textButtonCreateAccount { display: flex; height: 37px; font-size: 20px; background: none; width: 307px; - margin-top: 14px; + margin: 40px; } .card1 { display: flex; @@ -261,7 +233,7 @@ background: #FFFEFE; border-radius: 12px; font-size: 21px; - padding-left: 5%; + padding-left: 12%; margin: 8% auto; margin-top: 3%; } @@ -273,6 +245,7 @@ line-height: 23px; background: none; width: 307px; + margin: 40px; } .card2 { @@ -286,7 +259,7 @@ background: #FFFEFE; border-radius: 12px; font-size: 30px; - padding-left: 5%; + padding-left: 12%; margin: 8% auto; } .textConfirmPassword { @@ -323,6 +296,7 @@ background: #F39C12; border-radius: 12px; color: #FFFEFE; + margin: 13%; } /* Pantalla principal*/ @@ -354,7 +328,7 @@ background: none; outline: none; font-weight: bold; - margin-top:4% + margin-top:4%; } /*error u { @@ -409,7 +383,7 @@ u { } /*pantalla de acceso*/ - .logIn { + /* .logIn { position: absolute; width: 380px; height: 46px; @@ -480,7 +454,7 @@ u { } /*pantalla de login*/ - +/* .initSection { position: absolute; left: 58%; @@ -567,11 +541,11 @@ u { background: none; outline: none; font-weight: bold; - } + } */ /* pantalla crear cuenta*/ - .formCreateAccount { + /* .formCreateAccount { margin: 14% 58%; width: 32%; height: 402px; @@ -647,10 +621,10 @@ u { background: #F39C12; border-radius: 12px; color: #FFFEFE; - } + } */ /*pantalla de error*/ - u { + /*u { background: none; } @@ -675,5 +649,4 @@ u { background: none; left: 81%; top: 46%; - } -} \ No newline at end of file + } */ From 7d5398fd8aa00dba83c657fcfa56ec767b277cf7 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Tue, 18 Apr 2023 15:00:57 -0400 Subject: [PATCH 37/75] modificando home --- src/Components/home.js | 4 +++- src/lib/img/fondoHome.png | Bin 10241 -> 11778 bytes src/lib/style.css | 12 ++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 0733be86..401ee8a3 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,6 +1,8 @@ function home() { - const postForm = document.createElement('form'); + const postForm = document.createElement('div'); + postForm.classList.add('home'); postForm.innerHTML = ` + diff --git a/src/lib/img/fondoHome.png b/src/lib/img/fondoHome.png index bebd22e079a93c21ed03136eadf79d5bfc5ffedd..ab687680bf38f0f239334d8b2137626f50cbe511 100644 GIT binary patch literal 11778 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 literal 10241 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 Date: Tue, 18 Apr 2023 16:57:18 -0500 Subject: [PATCH 38/75] modifica la home --- src/Components/home.js | 7 +- src/Components/register.js | 9 +- src/lib/img/foco.png | Bin 0 -> 2738 bytes src/lib/img/fondo1.png | Bin 24454 -> 0 bytes src/lib/img/fondoHome.png | Bin 11778 -> 4590 bytes src/lib/img/logoHome.png | Bin 0 -> 11700 bytes src/lib/img/salir.png | Bin 0 -> 384 bytes src/lib/style.css | 220 ++++++++++++++++++++++++++----------- 8 files changed, 165 insertions(+), 71 deletions(-) create mode 100644 src/lib/img/foco.png delete mode 100644 src/lib/img/fondo1.png create mode 100644 src/lib/img/logoHome.png create mode 100644 src/lib/img/salir.png diff --git a/src/Components/home.js b/src/Components/home.js index 401ee8a3..ee867312 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,12 +1,13 @@ function home() { - const postForm = document.createElement('div'); + const postForm = document.createElement('section'); postForm.classList.add('home'); postForm.innerHTML = ` - + - `; + + `; return postForm; } diff --git a/src/Components/register.js b/src/Components/register.js index f3d40866..76b676c9 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -6,8 +6,9 @@ import { auth } from '../lib/firebase.js'; */ export function create(navigateTo) { const sectionCreate = document.createElement('div'); - sectionCreate.innerHTML = `
- + sectionCreate.classList.add('creat'); + sectionCreate.innerHTML = ` +

Crear cuenta

@@ -16,8 +17,8 @@ export function create(navigateTo) { -
- + +
`; const logIn = sectionCreate.querySelector('.bottomText'); diff --git a/src/lib/img/foco.png b/src/lib/img/foco.png new file mode 100644 index 0000000000000000000000000000000000000000..66ff1949564e3fd65893dd2a18571f3315884bd7 GIT binary patch literal 2738 zcmV;j3QhHiP)mpz&R)KuE&OpTKhc!beIaZfhxC^QliQh2%Ql?KA}

AT=ziNew)$US0!$^v>nFVcguRW! zEQNx>@yEKIh~Bwm>_2{hZXhcuW!JPSkwvFOMDIHL=%rhstKsaNQOsHJGs5NRsIq$# zMd%gA>1#se#zkF;^4b|L5U*&puEa=Jn&FzO&jhc!osO_oDu8th^)O5 zujq9DYdfdCNO|Zj&X}7Bjwi`o->y!)tDpQ51@&X-c?3Y}J&csEI3KUzJMOJT^SGOX z(5O-}$6B#*PiliMjhdhTzgtjY8X(c2HX=1lCCqtjQ## zg9Qm(St~*KfS6W~GcSnY=4T*Jh)^in&Q@UegHx+QKZu~5yEZ@g;ksMKZKoNl7g#SL zDWdymXj$k;Q{^0|fb?_Kcn*FqfqW{a!@p7j+b|7?lw?i`pNb!^Lmnu2r63xt=vWo< zC0D3uq73fIF;ezBROs_k2&g-AS)5}P@H~WDa;RqfdY=n}*f(ZRJVGGSB&5l64nukU z6TKl16iiAJq;Y8#xCqK=ns|1NPqzo^;LvAI*jN!lb(=@KnTUj@Mbp(-IXVP6gghm&(`>91wTFvgR% zY_mK^m^QhijK~9jOsuiTqn;v!wq$4`G%QC4w?QY+9YY+ELn2)I)Q(w9{?S6g)78bl zIe@jt+K7FaF;N*qAuN#!X~cOln=Vd;b7?*EhABfBaZJZum#7O7&xWFkrH2wSJ0|VI zpgX3cvcMLMJ)5nGvOX~Hvytq2m>qBHOhznaQ1XIq7fE96xYZ)Z z1@Ko(p!}4KYekb}=>1p}SC@C%FWUJs$PH1@G$5z?<&|wCY_FdwFJ>) z$rUP|6^5dFW#|%|{1>E~)H23rQMp;ILZOGW$3vTWr1}uy zYBue$Vv4r+&+ zBcRQg!#)|m_KKsZ;#16e$QzKF{Sc1nFncZ0vZE@e<91Am$O-+K18LT%^avThWdix- zs#6_hkv1n4o8G{5pi9S5ApDBxno26yZOitORDQo8#K;IF_I3QUNhnD;lB^j8-~FUJ zq^ZLk{ck%+2EWrucACU!G$Y%{02OP1Tc5@|iF1%o zzq=p)1@0^tjNP~=eqUkgwX@tfV}vE@ug9)j@w&oDi5tN}enZA=2tYS*U2!TGtmP~A z;qA#>xIU;L%g=U~kPcHx86d^g_(v_go$v*jxYd-ebWA5j?)tKg6XJtH!PMg{oWgZa{6dP`M@V+^)<1!DOuSU7V*e@&^ZR@pyTY8$ud{n(W3qMq_hG83RGW zH0gE~6AK$O3*`X};U}p;W= zw*@pUJ1KpE4nQnr?u&9oHbHmkeZeG{zEW!%TV6s_?efdGmA=bR>K0-A(4u&iDk||aLdKYCok&HB9gN02a{m__S@6;TRdMaiIDo7Xpkvm! zTb)M-^s+!O9Le~N$O_!#hNgRlxxVOC%pV66(PRG_7ssLvCtsiQ_lEZs#?m?+(7Wi= z+0Um9f*wGRtW+vyPad@37O!)+aW|#^!R;o90+bE${1ti#=Etdyz{`-)3u_*CNc4jv s&Fv*_bl-R0>{|29>k~eL8^|C31HnQHOc`j5oB#j-07*qoM6N<$f}Le5J^%m! literal 0 HcmV?d00001 diff --git a/src/lib/img/fondo1.png b/src/lib/img/fondo1.png deleted file mode 100644 index 99036c40ae0772b2314b1eefb94cf7ab6daca01c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24454 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 A>;M1& literal 11778 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 diff --git a/src/lib/img/logoHome.png b/src/lib/img/logoHome.png new file mode 100644 index 0000000000000000000000000000000000000000..3b4722624243372016767e00d253754c07b15506 GIT binary patch literal 11700 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 KMNUMnLSTXz1aL6` literal 0 HcmV?d00001 diff --git a/src/lib/img/salir.png b/src/lib/img/salir.png new file mode 100644 index 0000000000000000000000000000000000000000..7c89dba02250ca96e4c15b2287af9af66d016402 GIT binary patch literal 384 zcmV-`0e}99P)bg!J2}KfZ8J?1X1Gwv~YSjG*N3i^W eDzqjS{913i_Cz;AYKi3l0000L literal 0 HcmV?d00001 diff --git a/src/lib/style.css b/src/lib/style.css index c1a3741b..87a520d7 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -115,8 +115,8 @@ .initSection { display: flex; - margin: -69px 12px 9px 0px; - font-size: 22px; + margin: -69px 0px 9px -167px; + font-size: 26px; } .labelEmail { @@ -190,84 +190,112 @@ font-weight: bold; } - .note1 { color: red; - width: 92%; - max-width: 349px; - height: 54px; + width: 85%; + max-width: 326px; + height: 22px; background: none; - border: red solid 1px; - font-size: 17px; - margin: -21px 0px -23px 4px; + font-size: 18px; + margin: -27px 0px -38px 4px; border-radius: 8px; padding: 2%; } /*pantalla crear cuenta*/ +.creat { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-image: url(./img/fondo.png); + background-size: cover; + height: 100vh; +} -.creatSection { - background-image: none; - height: 0px +.logo1 { + position: absolute; + top: 3%; } .formCreateAccount { - margin: 70% 5% 7%; - width: 92%; - height: 404px; - border-radius: 12px; + display: flex; + flex-direction: column; + align-items: center; + height: 44vh; + max-height: 440px; + width: 89%; + max-width: 469px; + margin: 260px auto; + border-radius: 19px; background: #D9D9D9; - background-image: none; opacity: 0.9; + justify-content: space-around; } .createAccount { - position: absolute; - left: 24px; - top: 254px; - font-size: 22px; - background: none; + display: flex; + margin: -69px 0px 9px -208px; + font-size: 26px; } .textButtonCreateAccount { - position: absolute; - height: 23px; - left: 49px; - top: 330px; + display: flex; font-size: 20px; background: none; + margin: -16px 170px -28px 0px; } .card1 { - position: absolute; - width: 321px; + display: flex; + background: white; + width: 94%; + max-width: 321px; height: 45px; - left: 49px; - top: 369px; border: none; border-radius: 12px; font-size: 21px; padding-left: 5%; + justify-content: flex-start; } .textPasswordCreateAccount { - position: absolute; - height: 23px; - left: 49px; - top: 466px; + display: flex; font-size: 20px; - line-height: 23px; background: none; - + margin: -14px 183px 39px 0px; } .card2 { - position: absolute; - width: 321px; + display: flex; + background: white; + width: 94%; + max-width: 321px; + height: 45px; + border: none; + border-radius: 12px; + font-size: 28px; + padding-left: 5%; + margin: -66px 0px 0px 0px; + justify-content: flex-start; +} + +.textConfirmPassword { + display: flex; + height: 23px; + font-size: 20px; + background: none; + margin-top: 41px; +} + +.card3 { + display: flex; + align-items: center; + justify-content: center; + width: 76%; + max-width: 326px; height: 45px; - left: 49px; - top: 508px; border: none; background: #FFFEFE; border-radius: 12px; @@ -276,49 +304,113 @@ } .bottomKeep { - position: absolute; - width: 341px; + display: flex; + background: #F39C12; + width: 100%; + max-width: 343px; height: 45px; - left: 49px; - top: 616px; + border-radius: 12px; + justify-content: center; font-weight: bold; font-size: 22px; border: none; - background: #F39C12; - border-radius: 12px; color: #FFFEFE; + align-items: center; + margin-bottom: 15px; +} + +.alerta { + color: red; + width: 85%; + max-width: 326px; + height: 22px; + background: none; + font-size: 18px; + margin: -27px 0px -38px 4px; + border-radius: 8px; + padding: 2%; } +.bottomText { + position: absolute; + top: 817px; + width: 103%; + max-width: 368px; + height: 44px; + border: none; + color: black; + font-size: 22px; + background: none; + font-weight: bold; +} + + + /* Home*/ + +.home{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-image: url(./img/fondoHome.png); + background-size: cover; + height: 100vh; + +} .logoHome { - + position: absolute; + background: none; + top: 1%; } -.home { - display: flex; - flex-direction: column; - align-items: center; - background-color: #B2CAEC; - background-size: cover; - height: 100vh; -} .postForm { - display: flex; - justify-content: center; - align-items: center; - margin: 113px auto; - width: 80%; - height: 116px; + width: 88%; + max-width: 450px; + height: 11vh; border-radius: 10px; - padding-top: 10px; - padding-left: 10px; + padding-top: 15px; + padding-left: 3%; background-color: white; border: none; + font-size: 19px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - + margin: -340px 0% 0% -194px; + position: absolute; } +.post{ + background: #F39C12; + width: 100%; + max-width: 130px; + height: 37px; + border-radius: 10px; + font-weight: bold; + font-size: 20px; + border: none; + color: #FFFEFE; + position: absolute; + margin: -205px 0px 0px 62px; +} +.goOut{ + position: absolute; + flex-direction: column; + align-items: center; + width: 17%; + max-width: 372px; + box-sizing: border-box; + height: 68px; + font-size: 20px; + padding: -18px; + border: none; + background: white url(/lib/img/salir.png) no-repeat 28px 8px; + border-radius: 15px; + margin: -847px 0px 0px 334px; + justify-content: flex-end; + padding: 4px; +} + /*error*/ u { From 6fe14ea8a590c0e3bd3439ec73a22ccafe1989ff Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Tue, 18 Apr 2023 17:59:22 -0500 Subject: [PATCH 39/75] Modificaciones en los estilos --- src/lib/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/style.css b/src/lib/style.css index 09763ef9..27feda74 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -219,6 +219,7 @@ border-radius: 19px; background: #D9D9D9; opacity: 0.9; + justify-content: space-around; } .createAccount { display: flex; From 32be3f5aaf2e9a8e5bb79140a1515bd355975710 Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 19 Apr 2023 13:28:25 -0500 Subject: [PATCH 40/75] ordena estilos del button salir --- src/Components/home.js | 8 +++++++- src/Components/init.js | 2 +- src/Components/login.js | 8 ++++---- src/Components/mistake.js | 2 +- src/Components/register.js | 10 +++++----- src/lib/style.css | 34 ++++++++++++++-------------------- 6 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index ee867312..ffedbc4f 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,4 +1,4 @@ -function home() { +function home(navigateTo) { const postForm = document.createElement('section'); postForm.classList.add('home'); postForm.innerHTML = ` @@ -8,6 +8,12 @@ function home() { `; + + const salir = postForm.querySelector('.goOut'); + salir.addEventListener('click', () => { + navigateTo('/'); + }); + return postForm; } diff --git a/src/Components/init.js b/src/Components/init.js index 360bd8fb..8b6b5d0a 100644 --- a/src/Components/init.js +++ b/src/Components/init.js @@ -10,7 +10,7 @@ export function init(navigateTo) { - + `; const logIn = section.querySelector('.logIn'); logIn.addEventListener('click', () => { diff --git a/src/Components/login.js b/src/Components/login.js index e0f77974..338a6623 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -15,11 +15,11 @@ export function login(navigateTo) { - +

`; - const checkIn = sectionLogin.querySelector('.bottomText'); + const checkIn = sectionLogin.querySelector('.bottomTextLogin'); checkIn.addEventListener('click', () => { navigateTo('/register'); }); @@ -31,8 +31,8 @@ export function login(navigateTo) { const password = sectionLogin.querySelector('.inputPassword').value; signIn(email, password) - .then((response) => { - console.log(response); + .then(() => { + navigateTo('/emprende'); }) .catch((err) => { sectionLogin.querySelector('.note1').innerHTML = `${err.message}`; diff --git a/src/Components/mistake.js b/src/Components/mistake.js index 33c0f0a3..7c7aba86 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -8,7 +8,7 @@ function mistake(navigateTo) { const keep = bug.querySelector('.initButton'); keep.addEventListener('click', () => { - navigateTo('/mainScreen'); + navigateTo('/'); }); return bug; } diff --git a/src/Components/register.js b/src/Components/register.js index 76b676c9..bec55c45 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -13,9 +13,9 @@ export function create(navigateTo) {

Crear cuenta

- + @@ -32,11 +32,11 @@ export function create(navigateTo) { const email = sectionCreate.querySelector('.card1').value; const password = sectionCreate.querySelector('.card2').value; createUserWithEmailAndPassword(auth, email, password) - .then(() => { - console.log('ya entro'); + .then((response) => { + console.log(response); }) - .catch(() => { - sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra.

'; + .catch((err) => { + sectionCreate.querySelector('.alerta').innerHTML = `${err.message}`; }); }); return sectionCreate; diff --git a/src/lib/style.css b/src/lib/style.css index 87a520d7..6632a540 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -75,8 +75,8 @@ font-size: 22px; padding-left: 58px; border: none; - background: #ECE1E1 url(/lib/img/google-google.png) no-repeat 25px; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + background: white url(/lib/img/google-google.png) no-repeat 25px; + box-shadow: 0px 11px 27px rgba(0, 0, 0, 0.25); border-radius: 10px; margin-top: 130px; } @@ -106,7 +106,6 @@ max-height: 440px; width: 89%; max-width: 469px; - margin: 260px auto; border-radius: 19px; background: #D9D9D9; opacity: 0.9; @@ -177,7 +176,7 @@ margin-bottom: 15px; } -.bottomText { +.bottomTextLogin { position: absolute; top: 817px; width: 103%; @@ -227,7 +226,6 @@ max-height: 440px; width: 89%; max-width: 469px; - margin: 260px auto; border-radius: 19px; background: #D9D9D9; opacity: 0.9; @@ -395,22 +393,17 @@ } .goOut{ position: absolute; - flex-direction: column; - align-items: center; - width: 17%; - max-width: 372px; + width: 13%; + max-width: 375px; box-sizing: border-box; - height: 68px; - font-size: 20px; - padding: -18px; + height: 57px; + font-size: 19px; border: none; - background: white url(/lib/img/salir.png) no-repeat 28px 8px; + background: white url(/lib/img/salir.png) no-repeat 14px 2px; border-radius: 15px; - margin: -847px 0px 0px 334px; - justify-content: flex-end; - padding: 4px; -} - + margin: -848px 0px 4px 358px; + padding: 28px 0px 0px 0px; + } /*error*/ u { @@ -423,8 +416,9 @@ u { } .imgBug { - width: 103%; - margin: 169px -2px; + width: 94%; + margin: 184px 0px 0px 10px; + height: 25vh; background: none; } From 42dd8bc5163891a8f3fe40eafae416d1782c2576 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Wed, 19 Apr 2023 16:10:47 -0400 Subject: [PATCH 41/75] modifiando test --- src/Components/login.js | 5 +++++ src/lib/style.css | 6 ------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Components/login.js b/src/Components/login.js index e0f77974..502c8549 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -19,6 +19,11 @@ export function login(navigateTo) {
`; + /* const sigIn = sectionLogin.querySelector('.getInt'); + sigIn.addEventListener('click', () => { + navigateTo('/emprende'); + }); */ + const checkIn = sectionLogin.querySelector('.bottomText'); checkIn.addEventListener('click', () => { navigateTo('/register'); diff --git a/src/lib/style.css b/src/lib/style.css index c1a3741b..b1ab805c 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -289,12 +289,6 @@ color: #FFFEFE; } -/* Home*/ - -.logoHome { - -} - .home { display: flex; flex-direction: column; From 0fa7d0ad1a6ac8059249941662b3024511a7a06d Mon Sep 17 00:00:00 2001 From: Claudia Date: Thu, 20 Apr 2023 12:22:53 -0500 Subject: [PATCH 42/75] ordena verificaciones de Firebase --- src/Components/app.js | 61 -------------------------------------- src/Components/home.js | 10 +++++-- src/Components/init.js | 12 +++----- src/Components/login.js | 3 +- src/Components/register.js | 9 +++--- src/lib/auth.js | 20 +++++++++++++ src/lib/firebase.js | 2 +- src/lib/sign_in.js | 13 -------- 8 files changed, 38 insertions(+), 92 deletions(-) delete mode 100644 src/Components/app.js create mode 100644 src/lib/auth.js delete mode 100644 src/lib/sign_in.js diff --git a/src/Components/app.js b/src/Components/app.js deleted file mode 100644 index dea01abb..00000000 --- a/src/Components/app.js +++ /dev/null @@ -1,61 +0,0 @@ -import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; -import { auth } from '../lib/firebase.js'; -// pantalla inicial -export function init(navigateTo) { - const section = document.createElement('section'); - section.innerHTML = ` - - -
- - -
- o -
- -
- `; - const logIn = section.querySelector('.logIn'); - logIn.addEventListener('click', () => { - navigateTo('/login'); - }); - - const register = section.querySelector('.register'); - register.addEventListener('click', () => { - navigateTo('/register'); - }); - - const google = section.querySelector('.google'); - google.addEventListener('click', () => { - const provider = new GoogleAuthProvider(); - signInWithPopup(auth, provider) - .then((result) => { - GoogleAuthProvider.credentialFromResult(result); - navigateTo('/emprende'); - }).catch((error) => { - GoogleAuthProvider.credentialFromError(error); - }); - }); - section.append(logIn, register, google); - return section; -} -// pantalla - error -function mistake(navigateTo) { - const bug = document.createElement('div'); - bug.innerHTML = `
-

Error 404: página no encontrada.

- volver al Inicio -
`; - - const keep = bug.querySelector('.init'); - keep.addEventListener('click', () => { - navigateTo('/emprende'); - }); - return bug; -} -export { - mistake, -}; diff --git a/src/Components/home.js b/src/Components/home.js index ffedbc4f..9aa4d559 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,3 +1,6 @@ +import { signOut } from 'firebase/auth'; +import { auth } from '../lib/firebase.js'; + function home(navigateTo) { const postForm = document.createElement('section'); postForm.classList.add('home'); @@ -8,10 +11,13 @@ function home(navigateTo) { `; - + // preguntar// const salir = postForm.querySelector('.goOut'); salir.addEventListener('click', () => { - navigateTo('/'); + signOut(auth).then(() => { + navigateTo('/'); + }).catch(() => { + }); }); return postForm; diff --git a/src/Components/init.js b/src/Components/init.js index 8b6b5d0a..a5a73e26 100644 --- a/src/Components/init.js +++ b/src/Components/init.js @@ -1,5 +1,4 @@ -import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; -import { auth } from '../lib/firebase.js'; +import { loginWithGoogle } from '../lib/auth'; // pantalla inicial export function init(navigateTo) { @@ -24,13 +23,10 @@ export function init(navigateTo) { const google = section.querySelector('.google'); google.addEventListener('click', () => { - const provider = new GoogleAuthProvider(); - signInWithPopup(auth, provider) - .then((result) => { - GoogleAuthProvider.credentialFromResult(result); + loginWithGoogle() + .then(() => { navigateTo('/emprende'); - }).catch((error) => { - GoogleAuthProvider.credentialFromError(error); + }).catch(() => { }); }); return section; diff --git a/src/Components/login.js b/src/Components/login.js index 338a6623..9c58976a 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -1,4 +1,4 @@ -import { signIn } from '../lib/sign_in.js'; +import { signIn } from '../lib/auth.js'; // pantalla - inicio de sesión export function login(navigateTo) { @@ -29,7 +29,6 @@ export function login(navigateTo) { e.preventDefault(); const email = sectionLogin.querySelector('.inputEmail').value; const password = sectionLogin.querySelector('.inputPassword').value; - signIn(email, password) .then(() => { navigateTo('/emprende'); diff --git a/src/Components/register.js b/src/Components/register.js index bec55c45..f027ce38 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -1,5 +1,4 @@ -import { createUserWithEmailAndPassword } from 'firebase/auth'; -import { auth } from '../lib/firebase.js'; +import { createUser } from '../lib/auth'; // pantalla - crear una cuenta nueva /* @@ -31,9 +30,9 @@ export function create(navigateTo) { e.preventDefault(); const email = sectionCreate.querySelector('.card1').value; const password = sectionCreate.querySelector('.card2').value; - createUserWithEmailAndPassword(auth, email, password) - .then((response) => { - console.log(response); + createUser(email, password) + .then(() => { + navigateTo('/emprende'); }) .catch((err) => { sectionCreate.querySelector('.alerta').innerHTML = `${err.message}`; diff --git a/src/lib/auth.js b/src/lib/auth.js new file mode 100644 index 00000000..c8de257f --- /dev/null +++ b/src/lib/auth.js @@ -0,0 +1,20 @@ +import { + signInWithEmailAndPassword, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup, +} from 'firebase/auth'; +import { auth } from './firebase.js'; + +/* Ingresar con Google */ +const provider = new GoogleAuthProvider(); +const loginWithGoogle = () => signInWithPopup(auth, provider); + +/* Crear cuenta */ +const createUser = (email, password) => createUserWithEmailAndPassword(auth, email, password); + +/* Ingreso con email y password */ +const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); + +export { + loginWithGoogle, + createUser, + signIn, +}; diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 8dcc0bf6..36eb9d03 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -13,6 +13,6 @@ const firebaseConfig = { messagingSenderId: '974878862098', appId: '1:974878862098:web:3992591ee2ebb888c6e1cb', }; -// Initialize Firebase +/* EXPOSTS */ export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); diff --git a/src/lib/sign_in.js b/src/lib/sign_in.js deleted file mode 100644 index dc7e9353..00000000 --- a/src/lib/sign_in.js +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable prefer-promise-reject-errors */ -import { signInWithEmailAndPassword } from 'firebase/auth'; -import { auth } from './firebase.js'; - -export const signIn = (email, password) => new Promise((resolve, reject) => { - signInWithEmailAndPassword(auth, email, password) - .then(() => { - resolve({ message: 'fine' }); - }) - .catch((error) => { - reject({ message: error.message }); - }); -}); From 787e4951a984637cb987eb48facef7f02dcd0fe4 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 20 Apr 2023 13:24:22 -0400 Subject: [PATCH 43/75] probando test --- test/index.spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/index.spec.js b/test/index.spec.js index 5a7c6533..757f5f11 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,16 +1,16 @@ // import { navigateTo } from '../src/main.js'; import { login } from '../src/Components/login.js'; -// jest.mock('../test/__mock__/main.js'); +// jest.mock('../src/lib/firebase.js'); const navigateTo = jest.fn(); // Función: Inicia Sesión describe('login', () => { - it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { + /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); myHtml.querySelector('.getInt').click(); expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); + }); */ it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); expect(navigateTo).not.toHaveBeenCalledWith(); From f5e09f190735d434ce3223539eae669132121f9f Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Thu, 20 Apr 2023 12:29:24 -0500 Subject: [PATCH 44/75] Modificaciones en el home --- src/Components/home.js | 7 ++++++- src/Components/register.js | 3 +-- src/lib/firebase.js | 25 +++++++++++++++++++++++++ src/lib/posts.js | 6 ++++++ src/lib/style.css | 6 ++---- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index ee867312..d5fc48f6 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,4 +1,9 @@ -function home() { +import { + loginWithGoogle, + signIn, +} from '../lib/firebase'; + +export const home = (navigateTo) => { const postForm = document.createElement('section'); postForm.classList.add('home'); postForm.innerHTML = ` diff --git a/src/Components/register.js b/src/Components/register.js index 9a1fa4df..8d5dd688 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -1,5 +1,5 @@ import { createUserWithEmailAndPassword } from 'firebase/auth'; -// import { auth } from '../lib/firebase.js'; +import { auth } from '../lib/firebase.js'; // pantalla - crear una cuenta nueva /* @@ -34,7 +34,6 @@ export function create(navigateTo) { const password = sectionCreate.querySelector('.card2').value; createUserWithEmailAndPassword(auth, email, password) .then(() => { - console.log('ya entro'); }) .catch(() => { sectionCreate.querySelector('.alerta').innerHTML = '

Esta cuenta ya esta registrada, intenta con otra.

'; diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 8dcc0bf6..2a09f1de 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,5 +1,18 @@ import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; +// Traemos todas las funciones que usamos de firestore +import { + getFirestore, + addDoc, + getDocs, + doc, + collection, + deleteDoc, + updateDoc, + arrayRemove, + arrayUnion, + getDoc, +} from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries @@ -16,3 +29,15 @@ const firebaseConfig = { // Initialize Firebase export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); +export const db = getFirestore(app); +export default { + addDoc, + getDocs, + doc, + collection, + deleteDoc, + updateDoc, + arrayRemove, + arrayUnion, + getDoc, +}; diff --git a/src/lib/posts.js b/src/lib/posts.js index f72c4989..21dd59ae 100644 --- a/src/lib/posts.js +++ b/src/lib/posts.js @@ -2,3 +2,9 @@ // conectar a firestore (addDoc o setDoc) // guardar el post en la coleccion posts } */ +import {Firebase} from './firebase.js' + +const { +db, auth, addDoc, getDocs, doc, collection, deleteDoc, updateDoc, arrayRemove, arrayUnion, +} = Firebase; + diff --git a/src/lib/style.css b/src/lib/style.css index d4e00ca3..c89a3e24 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -387,12 +387,10 @@ box-sizing: border-box; height: 68px; font-size: 20px; - padding: -18px; border: none; - background: white url(/lib/img/salir.png) no-repeat 28px 8px; + background: white url(/lib/img/salir.png) no-repeat 24px 24px; border-radius: 15px; - margin: -847px 0px 0px 334px; - justify-content: flex-end; + margin: -840px 0px 4px 353px; padding: 4px; } From e48cafd875d9d00f2e3e5d7971a3559d54a7b44a Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 20 Apr 2023 18:48:49 -0400 Subject: [PATCH 45/75] probando test --- src/Components/home.js | 2 +- src/Components/login.js | 2 +- test/index.spec.js | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 9aa4d559..d6a138df 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -11,7 +11,7 @@ function home(navigateTo) { `; - // preguntar// + const salir = postForm.querySelector('.goOut'); salir.addEventListener('click', () => { signOut(auth).then(() => { diff --git a/src/Components/login.js b/src/Components/login.js index 9c58976a..2376c16e 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -13,7 +13,7 @@ export function login(navigateTo) { - +
diff --git a/test/index.spec.js b/test/index.spec.js index 757f5f11..ade74d6d 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,14 +1,28 @@ // import { navigateTo } from '../src/main.js'; import { login } from '../src/Components/login.js'; +/* import { signIn } from '../src/lib/auth.js'; */ // jest.mock('../src/lib/firebase.js'); const navigateTo = jest.fn(); // Función: Inicia Sesión describe('login', () => { + test('is a function ', () => { + expect(typeof login).toBe('function'); + }); + it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { + const myHtml = login(navigateTo); + myHtml.querySelector('.formInteraction').submit(); + expect(navigateTo).toHaveBeenCalledWith('/emprende'); + }); /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); - myHtml.querySelector('.getInt').click(); + const email = myHtml.querySelector('.inputEmail'); + const password = myHtml.querySelector('.inputPassword'); + email.value = 'amigas@gmail.com'; + password.value = '123456'; + const button = myHtml.querySelector('.formInteraction'); + button.submit(); expect(navigateTo).toHaveBeenCalledWith('/emprende'); }); */ it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { @@ -17,7 +31,7 @@ describe('login', () => { }); it('Si el usuario desea crear cuenta debería ir a la pantalla crear cuenta', () => { const myHtml = login(navigateTo); - myHtml.querySelector('.bottomText').click(); + myHtml.querySelector('.bottomTextLogin').click(); expect(navigateTo).toHaveBeenCalledWith('/register'); }); }); From 53c20ac61e125c0fad08671f672c2ca8b70438cc Mon Sep 17 00:00:00 2001 From: Claudia Date: Thu, 20 Apr 2023 17:54:51 -0500 Subject: [PATCH 46/75] modifica la ruta del error --- src/Components/app.js | 61 +++++++++++++++++++++++++++++++++++++++ src/Components/home.js | 2 +- src/Components/mistake.js | 7 ++++- src/lib/auth.js | 8 +++++ src/lib/style.css | 4 --- test/index.spec.js | 2 +- 6 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 src/Components/app.js diff --git a/src/Components/app.js b/src/Components/app.js new file mode 100644 index 00000000..dea01abb --- /dev/null +++ b/src/Components/app.js @@ -0,0 +1,61 @@ +import { signInWithPopup, GoogleAuthProvider } from 'firebase/auth'; +import { auth } from '../lib/firebase.js'; +// pantalla inicial +export function init(navigateTo) { + const section = document.createElement('section'); + section.innerHTML = ` + + +
+ + +
+ o +
+ +
+ `; + const logIn = section.querySelector('.logIn'); + logIn.addEventListener('click', () => { + navigateTo('/login'); + }); + + const register = section.querySelector('.register'); + register.addEventListener('click', () => { + navigateTo('/register'); + }); + + const google = section.querySelector('.google'); + google.addEventListener('click', () => { + const provider = new GoogleAuthProvider(); + signInWithPopup(auth, provider) + .then((result) => { + GoogleAuthProvider.credentialFromResult(result); + navigateTo('/emprende'); + }).catch((error) => { + GoogleAuthProvider.credentialFromError(error); + }); + }); + section.append(logIn, register, google); + return section; +} +// pantalla - error +function mistake(navigateTo) { + const bug = document.createElement('div'); + bug.innerHTML = `
+

Error 404: página no encontrada.

+ volver al Inicio +
`; + + const keep = bug.querySelector('.init'); + keep.addEventListener('click', () => { + navigateTo('/emprende'); + }); + return bug; +} +export { + mistake, +}; diff --git a/src/Components/home.js b/src/Components/home.js index 9aa4d559..d6a138df 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -11,7 +11,7 @@ function home(navigateTo) { `; - // preguntar// + const salir = postForm.querySelector('.goOut'); salir.addEventListener('click', () => { signOut(auth).then(() => { diff --git a/src/Components/mistake.js b/src/Components/mistake.js index 7c7aba86..803020a5 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -1,3 +1,6 @@ +/* eslint-disable no-unused-expressions */ +import { currentUserNow } from '../lib/auth.js'; + // pantalla - error function mistake(navigateTo) { const bug = document.createElement('div'); @@ -8,7 +11,9 @@ function mistake(navigateTo) { const keep = bug.querySelector('.initButton'); keep.addEventListener('click', () => { - navigateTo('/'); + const user = currentUserNow(); + console.log(user); + user ? navigateTo('/emprende') : navigateTo('/'); }); return bug; } diff --git a/src/lib/auth.js b/src/lib/auth.js index c8de257f..ae99111c 100644 --- a/src/lib/auth.js +++ b/src/lib/auth.js @@ -13,6 +13,14 @@ const createUser = (email, password) => createUserWithEmailAndPassword(auth, ema /* Ingreso con email y password */ const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); +export const currentUserNow = () => { + const user = auth.currentUser; + if (user) { + return user; + } + return null; +}; + export { loginWithGoogle, createUser, diff --git a/src/lib/style.css b/src/lib/style.css index 6632a540..41302305 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -342,11 +342,7 @@ font-weight: bold; } - - /* Home*/ - - .home{ display: flex; flex-direction: column; diff --git a/test/index.spec.js b/test/index.spec.js index 5a7c6533..62734af1 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -9,7 +9,7 @@ describe('login', () => { it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); myHtml.querySelector('.getInt').click(); - expect(navigateTo).toHaveBeenCalledWith('/emprende'); + expect(navigateTo).toHaveBeenCalledWith('/emprend'); }); it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); From 90d5598b1ca824292a61a600350299febaae4f52 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Thu, 20 Apr 2023 17:59:49 -0500 Subject: [PATCH 47/75] cambios en el home --- src/Components/home.js | 12 ++++----- src/Components/register.js | 4 --- src/lib/auth.js | 30 +++++++++++++++++++++++ src/lib/firebase.js | 50 +++++++++++++++++++------------------- src/lib/style.css | 23 +++++++++++------- 5 files changed, 74 insertions(+), 45 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index ed610d70..69915cb4 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,9 +1,7 @@ -import { - loginWithGoogle, - signIn, -} from '../lib/firebase'; +import { signOut } from 'firebase/auth'; +import { auth } from '../lib/firebase.js'; -export const home = (navigateTo) => { +function home(navigateTo) { const postForm = document.createElement('section'); postForm.classList.add('home'); postForm.innerHTML = ` @@ -13,7 +11,7 @@ export const home = (navigateTo) => { `; - // preguntar// + const salir = postForm.querySelector('.goOut'); salir.addEventListener('click', () => { signOut(auth).then(() => { @@ -25,4 +23,4 @@ export const home = (navigateTo) => { return postForm; } -export { home }; +export { home }; \ No newline at end of file diff --git a/src/Components/register.js b/src/Components/register.js index 10468039..71719d83 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -1,9 +1,5 @@ import { createUser } from '../lib/auth'; -// pantalla - crear una cuenta nueva -/* - */ -/* */ export function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.classList.add('creat'); diff --git a/src/lib/auth.js b/src/lib/auth.js index c8de257f..1103490e 100644 --- a/src/lib/auth.js +++ b/src/lib/auth.js @@ -1,3 +1,17 @@ +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { + getFirestore, + addDoc, + getDocs, + doc, + collection, + deleteDoc, + updateDoc, + arrayRemove, + arrayUnion, + getDoc, +} from 'firebase/firestore'; import { signInWithEmailAndPassword, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup, } from 'firebase/auth'; @@ -18,3 +32,19 @@ export { createUser, signIn, }; + +/* EXPOSTS */ +export const app = initializeApp(firebaseConfig); +export const auth = getAuth(app); +export const db = getFirestore(app); +export default { + addDoc, + getDocs, + doc, + collection, + deleteDoc, + updateDoc, + arrayRemove, + arrayUnion, + getDoc, +}; diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 3156c769..f8478969 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,18 +1,18 @@ import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; -// Traemos todas las funciones que usamos de firestore -import { - getFirestore, - addDoc, - getDocs, - doc, - collection, - deleteDoc, - updateDoc, - arrayRemove, - arrayUnion, - getDoc, -} from 'firebase/firestore'; +// Traemos todas las funciones que usaremos de firestore +// import { +// getFirestore, +// addDoc, +// getDocs, +// doc, +// collection, +// deleteDoc, +// updateDoc, +// arrayRemove, +// arrayUnion, +// getDoc, +// } from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries @@ -29,15 +29,15 @@ const firebaseConfig = { /* EXPOSTS */ export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); -export const db = getFirestore(app); -export default { - addDoc, - getDocs, - doc, - collection, - deleteDoc, - updateDoc, - arrayRemove, - arrayUnion, - getDoc, -}; +// export const db = getFirestore(app); +// export default { +// addDoc, +// getDocs, +// doc, +// collection, +// deleteDoc, +// updateDoc, +// arrayRemove, +// arrayUnion, +// getDoc, +// }; diff --git a/src/lib/style.css b/src/lib/style.css index 50e14418..e0ace005 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -197,8 +197,16 @@ padding: 2%; } - /*pantalla crear cuenta*/ +.creat { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-image: url(./img/fondo.png); + background-size: cover; + height: 100vh; +} .logo1 { position: absolute; @@ -218,17 +226,20 @@ opacity: 0.9; justify-content: space-around; } + .createAccount { display: flex; margin: -69px 0px 9px -208px; font-size: 26px; } + .textButtonCreateAccount { display: flex; font-size: 20px; background: none; margin: -16px 170px -28px 0px; } + .card1 { display: flex; background: white; @@ -236,7 +247,6 @@ max-width: 321px; height: 45px; border: none; - background: #FFFEFE; border-radius: 12px; font-size: 21px; padding-left: 5%; @@ -328,7 +338,6 @@ } - /* Home*/ @@ -383,15 +392,11 @@ box-sizing: border-box; height: 57px; font-size: 19px; - height: 68px; - font-size: 20px; border: none; background: white url(/lib/img/salir.png) no-repeat 14px 2px; - background: white url(/lib/img/salir.png) no-repeat 24px 24px; border-radius: 15px; - margin: -847px 0px 0px 334px; - justify-content: flex-end; - padding: 4px; + margin: -848px 0px 4px 358px; + padding: 28px 0px 0px 0px; } /*error*/ From d0d387efa0b7a02162ed438ee704b88ca5037a65 Mon Sep 17 00:00:00 2001 From: Claudia Date: Thu, 20 Apr 2023 18:04:03 -0500 Subject: [PATCH 48/75] actualiza cambios --- src/Components/register.js | 3 --- test/index.spec.js | 5 ----- 2 files changed, 8 deletions(-) diff --git a/src/Components/register.js b/src/Components/register.js index f027ce38..71719d83 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -1,8 +1,5 @@ import { createUser } from '../lib/auth'; -// pantalla - crear una cuenta nueva -/* - */ export function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.classList.add('creat'); diff --git a/test/index.spec.js b/test/index.spec.js index b1e9763e..ade74d6d 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -12,13 +12,8 @@ describe('login', () => { }); it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { const myHtml = login(navigateTo); -<<<<<<< HEAD - myHtml.querySelector('.getInt').click(); - expect(navigateTo).toHaveBeenCalledWith('/emprend'); -======= myHtml.querySelector('.formInteraction').submit(); expect(navigateTo).toHaveBeenCalledWith('/emprende'); ->>>>>>> 4837291d77dd693449602fcb49af65d8469fc02f }); /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); From c62cf90f5f6f5c1d0995101fb627ec7bbd46324b Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Fri, 21 Apr 2023 13:53:05 -0500 Subject: [PATCH 49/75] Enlaza firebase con post --- src/Components/home.js | 20 +++++++++++++++--- src/lib/auth.js | 48 +++++++++++++++--------------------------- src/lib/firebase.js | 16 ++------------ src/lib/posts.js | 10 --------- src/main.js | 5 ++--- test/index.spec.js | 10 ++++----- 6 files changed, 43 insertions(+), 66 deletions(-) delete mode 100644 src/lib/posts.js diff --git a/src/Components/home.js b/src/Components/home.js index 69915cb4..91f260b1 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,5 +1,6 @@ import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; +import { post } from '../lib/auth.js'; function home(navigateTo) { const postForm = document.createElement('section'); @@ -8,7 +9,7 @@ function home(navigateTo) {
- +
`; @@ -19,8 +20,21 @@ function home(navigateTo) { }).catch(() => { }); }); - + const buttonPost = postForm.querySelector('.post'); + buttonPost.addEventListener('click', (e) => { + e.preventDefault(); + const textarea = postForm.querySelector('.postForm'); + const postText = textarea.value; + if (postText.trim() === '') { + alert('Ingrese post'); + // return false; + } + post(postText); + // .then((res) => console.log('res: ', res)) + // .catch((err) => console.error(err)); + textarea.value = ''; + }); return postForm; } -export { home }; \ No newline at end of file +export { home }; diff --git a/src/lib/auth.js b/src/lib/auth.js index 1103490e..8df8bf4b 100644 --- a/src/lib/auth.js +++ b/src/lib/auth.js @@ -1,21 +1,10 @@ -import { initializeApp } from 'firebase/app'; -import { getAuth } from 'firebase/auth'; -import { - getFirestore, - addDoc, - getDocs, - doc, - collection, - deleteDoc, - updateDoc, - arrayRemove, - arrayUnion, - getDoc, -} from 'firebase/firestore'; import { signInWithEmailAndPassword, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup, } from 'firebase/auth'; -import { auth } from './firebase.js'; +import { + collection, doc, setDoc, addDoc, +} from 'firebase/firestore'; +import { auth, db } from './firebase.js'; /* Ingresar con Google */ const provider = new GoogleAuthProvider(); @@ -27,24 +16,21 @@ const createUser = (email, password) => createUserWithEmailAndPassword(auth, ema /* Ingreso con email y password */ const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); +// Leer post +const colPost = collection(db, 'posts'); + +// guardar post +const post = (postText) => { + addDoc(colPost, { + text: postText, + userEmail: auth.currentUser.email, + }); +}; + export { loginWithGoogle, createUser, signIn, -}; - -/* EXPOSTS */ -export const app = initializeApp(firebaseConfig); -export const auth = getAuth(app); -export const db = getFirestore(app); -export default { - addDoc, - getDocs, - doc, - collection, - deleteDoc, - updateDoc, - arrayRemove, - arrayUnion, - getDoc, + colPost, + post, }; diff --git a/src/lib/firebase.js b/src/lib/firebase.js index f8478969..396e24bd 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,18 +1,6 @@ import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; -// Traemos todas las funciones que usaremos de firestore -// import { -// getFirestore, -// addDoc, -// getDocs, -// doc, -// collection, -// deleteDoc, -// updateDoc, -// arrayRemove, -// arrayUnion, -// getDoc, -// } from 'firebase/firestore'; +import { getFirestore } from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries @@ -29,7 +17,7 @@ const firebaseConfig = { /* EXPOSTS */ export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); -// export const db = getFirestore(app); +export const db = getFirestore(app); // export default { // addDoc, // getDocs, diff --git a/src/lib/posts.js b/src/lib/posts.js deleted file mode 100644 index 21dd59ae..00000000 --- a/src/lib/posts.js +++ /dev/null @@ -1,10 +0,0 @@ -/* export const addPost=(text)=>{ - // conectar a firestore (addDoc o setDoc) - // guardar el post en la coleccion posts -} */ -import {Firebase} from './firebase.js' - -const { -db, auth, addDoc, getDocs, doc, collection, deleteDoc, updateDoc, arrayRemove, arrayUnion, -} = Firebase; - diff --git a/src/main.js b/src/main.js index 2f9bd732..e3ea6169 100644 --- a/src/main.js +++ b/src/main.js @@ -17,7 +17,6 @@ const routes = [ { path: '/emprende', component: home }, ]; -const defaultRoute = '/'; export function navigateTo(hash) { const route = routes.find((routeFind) => routeFind.path === hash); @@ -37,8 +36,8 @@ onAuthStateChanged(auth, (user) => { if (user) { navigateTo('/emprende'); } else if (window.location.pathname === '/emprende' && user === null) { - navigateTo(defaultRoute); + navigateTo(); } else { - navigateTo(window.location.pathname || defaultRoute); + navigateTo(window.location.pathname); } }); diff --git a/test/index.spec.js b/test/index.spec.js index ade74d6d..77261595 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -10,11 +10,11 @@ describe('login', () => { test('is a function ', () => { expect(typeof login).toBe('function'); }); - it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { - const myHtml = login(navigateTo); - myHtml.querySelector('.formInteraction').submit(); - expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); + // it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { + // const myHtml = login(navigateTo); + // myHtml.querySelector('.formInteraction').submit(); + // expect(navigateTo).toHaveBeenCalledWith('/emprende'); + // }); /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); const email = myHtml.querySelector('.inputEmail'); From 3512a7d0af54ad4920d5292968edae0195d506cf Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Fri, 21 Apr 2023 14:59:49 -0400 Subject: [PATCH 50/75] probando test --- package.json | 2 +- test/index.spec.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b30d937f..f6843077 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "htmlhint": "htmlhint dist/*.html ", "eslint": "eslint --ext .js src/ test/", "stylelint": "stylelint --aei src/**/*.css", - "pretest": "npm run htmlhint && npm run eslint && npm run stylelint", + "pretest_": "npm run htmlhint && npm run eslint && npm run stylelint", "test": "jest --coverage --watch", "dev": "vite dev src", "start": "npm run dev", diff --git a/test/index.spec.js b/test/index.spec.js index ade74d6d..ea6ff275 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -10,12 +10,12 @@ describe('login', () => { test('is a function ', () => { expect(typeof login).toBe('function'); }); - it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { + /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); - myHtml.querySelector('.formInteraction').submit(); + myHtml.querySelector('.getInt').click(); expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); - /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { + }); */ + it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); const email = myHtml.querySelector('.inputEmail'); const password = myHtml.querySelector('.inputPassword'); @@ -24,7 +24,7 @@ describe('login', () => { const button = myHtml.querySelector('.formInteraction'); button.submit(); expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); */ + }); it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); expect(navigateTo).not.toHaveBeenCalledWith(); From b1db8dbc3379aacd5915f555b34be08a3df31479 Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 21 Apr 2023 14:01:58 -0500 Subject: [PATCH 51/75] guarda acciones del test --- test/index.spec.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/test/index.spec.js b/test/index.spec.js index ade74d6d..4bf426b5 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,5 +1,7 @@ // import { navigateTo } from '../src/main.js'; import { login } from '../src/Components/login.js'; +import { signIn } from '../src/lib/auth.js'; + /* import { signIn } from '../src/lib/auth.js'; */ // jest.mock('../src/lib/firebase.js'); @@ -10,21 +12,23 @@ describe('login', () => { test('is a function ', () => { expect(typeof login).toBe('function'); }); - it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { - const myHtml = login(navigateTo); - myHtml.querySelector('.formInteraction').submit(); - expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); - /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { + // it('Si el usuario le da click a getIn, debe cambiar de ruta', () => { + // const myHtml = login(navigateTo); + // myHtml.querySelector('.formInteraction').submit(); + // expect(navigateTo).toHaveBeenCalledWith('/emprende'); + // }); + it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { + // jest.spyOn(signIn).mockImplementation(navigateTo('/emprende')); const myHtml = login(navigateTo); + // const myHtml = document.createElement('form'); + // myHtml.append(signIn()); const email = myHtml.querySelector('.inputEmail'); const password = myHtml.querySelector('.inputPassword'); email.value = 'amigas@gmail.com'; password.value = '123456'; - const button = myHtml.querySelector('.formInteraction'); - button.submit(); - expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); */ + myHtml.querySelector('.formInteraction').submit(); + expect(navigateTo).toHaveBeenalledWith('/emprende'); + }); it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); expect(navigateTo).not.toHaveBeenCalledWith(); From 4d51aba1d3070eb018540f98b4afe7eac8d0d127 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Mon, 24 Apr 2023 15:52:16 -0400 Subject: [PATCH 52/75] Visualizando posts en la home --- src/Components/PrintPost.js | 5 +++++ src/Components/home.js | 14 ++++++++++++++ src/lib/auth.js | 2 +- src/lib/post.js | 4 ++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/Components/PrintPost.js create mode 100644 src/lib/post.js diff --git a/src/Components/PrintPost.js b/src/Components/PrintPost.js new file mode 100644 index 00000000..a4f203fe --- /dev/null +++ b/src/Components/PrintPost.js @@ -0,0 +1,5 @@ +export const printPost = (info) => { + const p = document.createElement('p'); + p.textContent = info.text; + return p; +}; diff --git a/src/Components/home.js b/src/Components/home.js index 91f260b1..32d072e5 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,6 +1,9 @@ +import { onSnapshot } from 'firebase/firestore'; import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; import { post } from '../lib/auth.js'; +import { ref } from '../lib/post.js'; +import { printPost } from './PrintPost.js'; function home(navigateTo) { const postForm = document.createElement('section'); @@ -34,7 +37,18 @@ function home(navigateTo) { // .catch((err) => console.error(err)); textarea.value = ''; }); + onSnapshot(ref(), (querySnapshot) => { + querySnapshot.forEach((doc) => { + const nodoP = printPost(doc.data()); + postForm.append(nodoP); + }); + }); return postForm; } +/* const postSection = document.createElement('section'); +postSection.classList.add('postSection'); +postSection.innerHTML = showCapture; +console.log(postSection); */ + export { home }; diff --git a/src/lib/auth.js b/src/lib/auth.js index 8df8bf4b..c83b9872 100644 --- a/src/lib/auth.js +++ b/src/lib/auth.js @@ -2,7 +2,7 @@ import { signInWithEmailAndPassword, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup, } from 'firebase/auth'; import { - collection, doc, setDoc, addDoc, + collection, addDoc, } from 'firebase/firestore'; import { auth, db } from './firebase.js'; diff --git a/src/lib/post.js b/src/lib/post.js new file mode 100644 index 00000000..0e3a6335 --- /dev/null +++ b/src/lib/post.js @@ -0,0 +1,4 @@ +import { collection, query } from 'firebase/firestore'; +import { db } from './firebase.js'; + +export const ref = () => query(collection(db, 'posts')); From c6d89b596bd6a696a32196fec4850ca5665f5afc Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 24 Apr 2023 15:41:03 -0500 Subject: [PATCH 53/75] actualizar cambios --- src/lib/firebase.js | 11 ----------- test/index.spec.js | 9 +++------ 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 396e24bd..626a7dd5 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -18,14 +18,3 @@ const firebaseConfig = { export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); -// export default { -// addDoc, -// getDocs, -// doc, -// collection, -// deleteDoc, -// updateDoc, -// arrayRemove, -// arrayUnion, -// getDoc, -// }; diff --git a/test/index.spec.js b/test/index.spec.js index 4611d5ee..77261595 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,7 +1,5 @@ // import { navigateTo } from '../src/main.js'; import { login } from '../src/Components/login.js'; -import { signIn } from '../src/lib/auth.js'; - /* import { signIn } from '../src/lib/auth.js'; */ // jest.mock('../src/lib/firebase.js'); @@ -19,14 +17,13 @@ describe('login', () => { // }); /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { const myHtml = login(navigateTo); - // const myHtml = document.createElement('form'); - // myHtml.append(signIn()); const email = myHtml.querySelector('.inputEmail'); const password = myHtml.querySelector('.inputPassword'); email.value = 'amigas@gmail.com'; password.value = '123456'; - myHtml.querySelector('.formInteraction').submit(); - expect(navigateTo).toHaveBeenalledWith('/emprende'); + const button = myHtml.querySelector('.formInteraction'); + button.submit(); + expect(navigateTo).toHaveBeenCalledWith('/emprende'); }); */ it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); From da287d146c9900987eb018d4e26626be5ee757e1 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Mon, 24 Apr 2023 17:07:23 -0400 Subject: [PATCH 54/75] Corrige repeticion de post --- src/Components/home.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 32d072e5..68524319 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -37,10 +37,18 @@ function home(navigateTo) { // .catch((err) => console.error(err)); textarea.value = ''; }); + onSnapshot(ref(), (querySnapshot) => { querySnapshot.forEach((doc) => { - const nodoP = printPost(doc.data()); - postForm.append(nodoP); + const postInfo = doc.data(); + // Verificar si el post ya ha sido agregado previamente + const postExists = postForm.querySelector(`[data-id="${doc.id}"]`); + if (!postExists) { + const nodoP = printPost(postInfo); + nodoP.textContent = postInfo.text; + nodoP.setAttribute('data-id', doc.id); + postForm.append(nodoP); + } }); }); return postForm; From 9d8cb659f125648bc3437889eceaf07a23b6b000 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 24 Apr 2023 16:18:08 -0500 Subject: [PATCH 55/75] Modificando estilos --- src/Components/home.js | 2 +- src/Components/mistake.js | 18 +- src/lib/style.css | 337 ++++---------------------------------- 3 files changed, 44 insertions(+), 313 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 32d072e5..70cf7668 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -10,7 +10,7 @@ function home(navigateTo) { postForm.classList.add('home'); postForm.innerHTML = ` -
+
diff --git a/src/Components/mistake.js b/src/Components/mistake.js index 803020a5..680d573b 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -1,21 +1,21 @@ /* eslint-disable no-unused-expressions */ -import { currentUserNow } from '../lib/auth.js'; +// import { currentUserNow } from '../lib/auth.js'; // pantalla - error -function mistake(navigateTo) { +function mistake() { const bug = document.createElement('div'); bug.innerHTML = `

Error 404: página no encontrada.

volver al Inicio
`; - const keep = bug.querySelector('.initButton'); - keep.addEventListener('click', () => { - const user = currentUserNow(); - console.log(user); - user ? navigateTo('/emprende') : navigateTo('/'); - }); - return bug; + // const keep = bug.querySelector('.initButton'); + // keep.addEventListener('click', () => { + // const user = currentUserNow(); + // console.log(user); + // user ? navigateTo('/emprende') : navigateTo('/'); + // }); + // return bug; } export { diff --git a/src/lib/style.css b/src/lib/style.css index 1a4c16fa..6acadc5b 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -1,7 +1,7 @@ *{ font-family: Arial, Helvetica, sans-serif; - padding: 0%; - margin: 0%; + padding: 0; + margin: 0; } /*pantalla de acceso*/ @@ -343,19 +343,22 @@ display: flex; flex-direction: column; align-items: center; - justify-content: center; - background-image: url(./img/fondoHome.png); + justify-content: space-around; + background-image: url(/lib/img/fondo.png); background-size: cover; height: 100vh; - } -.logoHome { - position: absolute; - background: none; - top: 1%; +.formHome{ + width: 88%; + max-width: 535px; + height: 11vh; + border-radius: 10px; + padding-top: 0; + background-color: white; + border: none; + font-size: 19px; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } - - .postForm { width: 88%; max-width: 450px; @@ -368,9 +371,26 @@ font-size: 19px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); margin: -340px 0% 0% -194px; +} +/*.home{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-image: url(./img/fondoHome.png); + background-size: cover; + height: 100vh; + +} +.logoHome { position: absolute; + background: none; + top: 1%; } -.post{ + +/* +*/ +/* .post{ background: #F39C12; width: 100%; max-width: 130px; @@ -382,7 +402,8 @@ color: #FFFEFE; position: absolute; margin: -205px 0px 0px 62px; -} +} */ +/*button salir*/ .goOut{ position: absolute; width: 13%; @@ -430,293 +451,3 @@ u { left: 31%; top: 52%; } - -/* -@media (min-width: 926px) and (max-width: 1920px) { - - * { - background-image: url(./img/fondoDesktops.png); - background-repeat: no-repeat; - padding: 0%; - margin: 0%; - background-size: 55%; - } - - .logo { - position: fixed; - width: 28%; - height: 35%; - left: 96px; - top: 23%; - background: none; - } - - /*pantalla de acceso - .logIn { - position: absolute; - width: 380px; - height: 46px; - left: 61%; - top: 278px; - font-weight: bold; - border: none; - font-size: 22px; - color: #FFFFFF; - background: #F39C12; - border-radius: 10px; - justify-content: center; - } - - .register { - position: absolute; - width: 380px; - height: 46px; - left: 61%; - top: 365px; - border: none; - font-weight: bold; - font-size: 22px; - color: #FFFFFF; - background: #528FD8; - border-radius: 10px; - } - - .google { - box-sizing: border-box; - position: absolute; - width: 380px; - height: 48px; - left: 61%; - top: 572px; - font-size: 22px; - padding-left: 58px; - border: none; - background: #FFFFFF; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-radius: 10px; - } - - .separator1 { - position: fixed; - width: 153px; - left: 61%; - top: 67%; - border: 1px solid #000000; - } - - .separatorText { - position: fixed; - left: 74%; - top: 499px; - font-weight: 400; - font-size: 24px; - color: black; - background: none; - } - - .separator2 { - position: fixed; - width: 153px; - left: 77%; - top: 67%; - border: 1px solid #000000; - } - - /*pantalla de login - - .initSection { - position: absolute; - left: 58%; - top: 19%; - font-size: 26px; - background: none; - } - - .formInteraction { - margin: 14% 58%; - width: 32%; - height: 402px; - border-radius: 15px; - background: #D9D9D9; - background-image: none; - opacity: 0.9; - } - - .labelEmail { - position: absolute; - height: 23px; - left: 61%; - top: 30%; - font-size: 20px; - background: none; - } - - .inputEmail { - position: absolute; - width: 315px; - height: 45px; - left: 61%; - top: 35%; - background: white; - border: none; - border-radius: 12px; - font-size: 21px; - padding-left: 2%; - } - - .labelPassword { - position: absolute; - height: 23px; - left: 61%; - top: 48%; - font-size: 20px; - line-height: 23px; - background: none; - } - - .inputPassword { - position: absolute; - width: 315px; - height: 45px; - left: 61%; - top: 53%; - border: none; - background: white; - background: #FFFEFE; - border-radius: 12px; - font-size: 30px; - padding-left: 2%; - } - - .getInt { - position: absolute; - width: 341px; - height: 45px; - left: 61%; - top: 66%; - font-weight: bold; - font-size: 22px; - border: none; - background: #528FD8; - border-radius: 12px; - color: #FFFEFE; - } - - .bottomText { - position: absolute; - left: 60%; - top: 84%; - font-size: 22px; - background: none; - outline: none; - font-weight: bold; - } */ - - /* pantalla crear cuenta - - /* .formCreateAccount { - margin: 14% 58%; - width: 32%; - height: 402px; - border-radius: 15px; - background: #D9D9D9; - background-image: none; - opacity: 0.9; - } - - .createAccount { - position: absolute; - left: 58%; - top: 19%; - font-size: 26px; - background: none; - } - - .textButtonCreateAccount { - position: absolute; - height: 23px; - left: 61%; - top: 30%; - font-size: 20px; - background: none; - } - - .card1 { - position: absolute; - width: 315px; - height: 45px; - left: 61%; - top: 35%; - background: white; - border: none; - border-radius: 12px; - font-size: 21px; - padding-left: 2%; - } - - .textPasswordCreateAccount { - position: absolute; - height: 23px; - left: 61%; - top: 48%; - font-size: 20px; - line-height: 23px; - background: none; - } - - .card2 { - position: absolute; - width: 315px; - height: 45px; - left: 61%; - top: 53%; - border: none; - background: white; - background: #FFFEFE; - border-radius: 12px; - font-size: 30px; - padding-left: 2%; - } - - .bottomKeep { - position: absolute; - width: 341px; - height: 45px; - left: 61%; - top: 66%; - font-weight: bold; - font-size: 22px; - border: none; - background: #F39C12; - border-radius: 12px; - color: #FFFEFE; - } */ - - /*pantalla de error - u { - background: none; - } - - .imgBug { - width: 33%; - margin: 168px 117px; - background: none; - } - - .text { - position: absolute; - left: 55%; - top: 40%; - font-size: 33px; - background: none; - } - - .initButton { - position: absolute; - font-size: 24px; - color: blue; - background: none; - left: 81%; - top: 46%; - } -}*/ \ No newline at end of file From ef5d1d0fe59f172a8fb2fc07a7c16b0488e8f749 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 25 Apr 2023 11:00:39 -0500 Subject: [PATCH 56/75] Mejorando los estilos de las pantallas --- src/lib/img/fondoDesktop.png | Bin 0 -> 14144 bytes src/lib/img/fondoHomeDesktop.png | Bin 0 -> 11097 bytes src/lib/style.css | 138 ++++++++++++++++++++----------- 3 files changed, 90 insertions(+), 48 deletions(-) create mode 100644 src/lib/img/fondoDesktop.png create mode 100644 src/lib/img/fondoHomeDesktop.png diff --git a/src/lib/img/fondoDesktop.png b/src/lib/img/fondoDesktop.png new file mode 100644 index 0000000000000000000000000000000000000000..95a0931372851a6103fcfa2436e350c1d9533a15 GIT binary patch literal 14144 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 Ib2lCSA62_IEdT%j literal 0 HcmV?d00001 diff --git a/src/lib/img/fondoHomeDesktop.png b/src/lib/img/fondoHomeDesktop.png new file mode 100644 index 0000000000000000000000000000000000000000..3fed1513d1568852ae7837a8ed2c54e98a1fb5c1 GIT binary patch literal 11097 zcmeHNYe16O)_&D8D=*_%2Qx#>Y_jq;C0+qb%bFBA)k#YY%`sBETPo&-%7)64JT=~L z9ZM_C>!_7-F-vj?)W}OIVUiF^A_9tt@fqU-y&4*5JTSGrg zNSY?z0)H_~JW-hd*tTx-&3<$Lz0@Ibz`D5E?uLU~Hx?Y~m0&_i*vhC&AxW1BD|5pE z!WBi0Lx5^70EjOEH+*kcT6*cI8+U%H)Kc3+di`nxY+H5yyZu>v?{~Xa%S>%?*?@uC zdhN%l?+&oE(sci?Ub-9I8`b+PxG$BnrX&j18qz}YMfp5exCNg1m%C>twqDE!aiL*% zzvF^}IQ3F={Z#{!UC&@p!&}`;U??OC9)il|+~r>aS@bomv^20gLs$>#mdjscp`1Pf zdue4()C&T^#gaMn>X_uR9|N5Xd^txOo_5oIhYbd?V_&boFnOHlLGm~IQI|8*=Cf*Q%DzD=`OK;0; zpQz~}7qmzl2tw;Xc-dCz=Pr(0FkuJutTe6yTyIz-yuEQNYB^{38`iAyJN9D-&HqF- z@ZKmUDy9c(X_QV3lhzUSY6>*nl>9}3&Whc0LOIXxx@0m~{rI`v4}YonQr+(<{2kKU zX#(+tWAt_NG24f5s9&#e!~r!)(crsH)y0cwNXno z3j}4W%KKvnJZ+QHU~49g?^3D8dB~oypc-BPJc(Uzan$)g6uqGdKu{t2W2D6voQpf( zTr~QZACkSHhPNXl-S}Zaw=p?0QIv;&y-US}I6|Yq1L~1=>0%f$2agGXS58%rKJk69 z5_MCn}Xnv_>Dy$kBOAb_daX1v(RKqjXz4%Rc> z+))R)8O7_&l_3=<#DUn4`b-qG3DI2~#PXFU5%wTbS<_kZO7a--~GHbEou|{M);KevqY2v&B$r;KXL$pk9 z$d_fI%+~_8awcXainH2$DSvTrm@1j{&!oTRFgKs2yOvH8E8Ivjg={=;)Ck)TsVRQi zH(~(7LrABV`&wMYJlgLcg)7q3@;kb)=sIR$O({xw!Nq=-2D?z-)eQUX-b^8mdnTAn z`P8`sb!+|2gl1WchkI%|=e114NyuB_93bW-1CZOida3-|fiZUrLe8CZcPQ#9_5SZn z&X>8x=*>p9K`*6uX|5`V6%7s(s(Iw9s}|n#dLu}Go92l85W2N1xih#TY(g0Jp)_}8 zdBcM+wjIWqv_w9>>*{!JOnGEz29;-0xp;uKekoxfLxtPH_e0NSVL_^OK-)V|@ON)N zQv8HikFtM7I9Lc9QHZM+NLd#zXJL)W*)gCwU=-8IUrZBZZvmwggke3~Z}XZ(=4}mm zn6YYC@_1%is%Yz&k6ucsSjf?%Cp!xpYDJP z1pWK)7QVPo*0dN(_{Y>D`!nVJ+{g78W>C4nO#I+O#H%yf^S@?5?B}QsjmA$a5L%-S zdvK#IevS_R#Q52FgeW;7@c!3^0Wj*XgPtqk+>K`Qg>zO%Zmn?IQFY^1PLui_m`*S_ z1(a*KJSaieK7je*J|&d=6YGZwA#X`#|I!Y=Vq8OY_^XO`l(=fzDa`JKj^e$v(&pC% z$S?a3-ucJF=dndmYD{N7je1gqbk1boGF`^o`gHW8K}Csw;A4_5Qd7&{VeIw#gQ8)T zoIe^BQ6y;K39c{A?p^qkG=aqYa$2y$f`MwMnxqzvRg+ou$lpfG+AZpp#8UQ8&9y~u zn)k@z%H_u{#F41#(y%N${N|Y@cMmOj`ECaW)n_R6I_-Ur1JU>qFUW`FTIh{41q3(g z{N9Ks*j4D{K55WKD$BDxC%KPXrb}a7xL>riH?v(q6_$^H=qDW~_0!*&zLRljRm7lC zD=**tK~oo^W0u~UIZ@+o3@qQ(P7hd!@kGP2F1jO+s@}IlgqLmn2)xQkdoaFZtbrcM zU1W6f!yX!RgbHr7{pV`OxxY8bHVhlNq(ABl(UzcP{W*yyZ#}mSU&TF+9B;EbzTW{+ zJ))S4mMZXjKrz9m&fFuk{M3^)kZ5>iu=tAJH=wbcu?ljPbTO?Wk+n5flCp9)>eo7G4j7`r* zwqgT?dhdPlpk3AT%jVg}`-i4;8qp4Ft%W(YEKWCPYbpEu%BCfC` zQFrE@x86H#iOrg7N==Yqp`10DgT?uC+~(uh_^761jCbJAF1OI zati|G0fx8O)WY+_u7{Z;pfHPlSp9>gPuXXPC!ub{!r<~O#&m$}U-{npRPQ_7?X=$- z(GJ74WU}kV(#ua9$5<^#JRU6Ad&Pa?dc^KA2X%dVo;^Bw(sv}T#Do!hIAS;kag=a) z+8>z58c)T7UQg=WcrcxsRzJ)@@>w=48h#kCrtG;4GdZu%TZ^M1X@alfS4V^aT z9Bp<1WzmN>TlcQ9q{r|Tx?w0OzO8!`E~BZge6tZgNmx$*)9i&-qfuK##1v!o*U7cv zo!*fdx&o4jHd|}!L$HKqZi=Nb{Kqpmiz%>4)_o5kKEm%Xp>+#wHE9PC3K@>ebz!iK z4dSzQ9dCE{A}e_EsB1li^~Ffhe72U+NA8ImmIe#x=Qe|?uCob{Dv9ft3w1(SntW{f zBja3ja=>0nLkkw4#zM7i_bQ3jjcso4u?3aF)h`z?B zlZvaP@e0|1)@K;~y9RpcTUU9nU zrLC9oQ6Fre2%Gj7S7TcJT*C;*SYEEsE-!lMzGFvets5U zPf~FyxG60=^70F3{N(WQKv+hHJJx!y>V_#)RbZF=>a`hOT;Yc>qDdrr?~&Dn@U*m| zN?4|6Mx1=dF?MwJ7uD0>vo{^GybFxkGsF}6oKwyAY_)1Ookl+-!D~5*t5SK6O6=Of z0F-iKVmjPHD(b2#GaNeNnwgQNlGzTZl5p{c0%UbVMH$(oP$efVw|nUb@@!tNoDOf6 ze;uE2s;Q~a>VsajG_gl6kqSP-qz5^W?1m38#t;V zaNks`HoMQ7yJC8w?|bBG!4atgZ2-{L1g3x{DAyz;RIZ>&#%K~zYD)aCPDE+APQ!Ko zJJ+51p19tiNmv7#WWB1=qA65piZmKcq}BtP;+#eksd1pG>1yiPY8+_ffkqyvV4#r) z8hN0m1C2cR|053+Ssux|)tm14hMl%yX`QvY9jN!?jMqQ3f1K^Q_Tx-fs8!|nh+6Zt pW?57y(ZE6DB`O%;{!iKAz|w4 Date: Tue, 25 Apr 2023 14:37:07 -0400 Subject: [PATCH 57/75] Editando posts --- src/Components/PrintPost.js | 5 --- src/Components/home.js | 50 ++++++++++++++++----- src/lib/firebase.js | 3 +- src/lib/post.js | 20 ++++++++- src/lib/style.css | 90 ++++++++++++++++++++++++------------- 5 files changed, 119 insertions(+), 49 deletions(-) delete mode 100644 src/Components/PrintPost.js diff --git a/src/Components/PrintPost.js b/src/Components/PrintPost.js deleted file mode 100644 index a4f203fe..00000000 --- a/src/Components/PrintPost.js +++ /dev/null @@ -1,5 +0,0 @@ -export const printPost = (info) => { - const p = document.createElement('p'); - p.textContent = info.text; - return p; -}; diff --git a/src/Components/home.js b/src/Components/home.js index 68524319..a070afee 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -2,15 +2,14 @@ import { onSnapshot } from 'firebase/firestore'; import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; import { post } from '../lib/auth.js'; -import { ref } from '../lib/post.js'; -import { printPost } from './PrintPost.js'; +import { ref, editar } from '../lib/post.js'; function home(navigateTo) { const postForm = document.createElement('section'); postForm.classList.add('home'); postForm.innerHTML = ` -
+
@@ -23,6 +22,7 @@ function home(navigateTo) { }).catch(() => { }); }); + const buttonPost = postForm.querySelector('.post'); buttonPost.addEventListener('click', (e) => { e.preventDefault(); @@ -38,25 +38,51 @@ function home(navigateTo) { textarea.value = ''; }); + const printPost = (info, doc) => { + const textarea = document.createElement('textarea'); + textarea.classList.add('showPost'); + textarea.value = info.text; + textarea.setAttribute('data-id', doc.id); + textarea.setAttribute('readonly', true); + postForm.appendChild(textarea); + + const editButton = document.createElement('button'); + editButton.classList.add('edit'); + editButton.textContent = 'Editar'; + editButton.addEventListener('click', () => { + editar(doc.id, textarea.value); + }); + + console.log('correo en sesión: ', auth.currentUser.email); + console.log('emial: ', info.userEmail); + if (auth.currentUser.email === info.userEmail) { + postForm.appendChild(editButton); + } + + return textarea; + }; + onSnapshot(ref(), (querySnapshot) => { querySnapshot.forEach((doc) => { const postInfo = doc.data(); - // Verificar si el post ya ha sido agregado previamente + // Buscar el post existente por el id del documento const postExists = postForm.querySelector(`[data-id="${doc.id}"]`); - if (!postExists) { - const nodoP = printPost(postInfo); - nodoP.textContent = postInfo.text; + if (postExists) { + const textarea = postExists.querySelector('textarea'); + textarea.removeAttribute('readonly'); + textarea.setAttribute('contenteditable', true); + } else { + const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); + nodoP.setAttribute('contenteditable', true); postForm.append(nodoP); } }); }); + + const idInitSecion = localStorage.getItem('userId'); + console.log(idInitSecion); return postForm; } -/* const postSection = document.createElement('section'); -postSection.classList.add('postSection'); -postSection.innerHTML = showCapture; -console.log(postSection); */ - export { home }; diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 396e24bd..a7fea9ad 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,5 +1,5 @@ import { initializeApp } from 'firebase/app'; -import { getAuth } from 'firebase/auth'; +import { getAuth, onAuthStateChanged } from 'firebase/auth'; import { getFirestore } from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use @@ -18,6 +18,7 @@ const firebaseConfig = { export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); +export { onAuthStateChanged }; // export default { // addDoc, // getDocs, diff --git a/src/lib/post.js b/src/lib/post.js index 0e3a6335..d3e60e10 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -1,4 +1,22 @@ import { collection, query } from 'firebase/firestore'; -import { db } from './firebase.js'; +import { db, auth } from './firebase.js'; export const ref = () => query(collection(db, 'posts')); + +// Editar post + +export function editar(id, postText) { + const p = document.querySelector(`[data-id="${id}"]`); + p.removeAttribute('readonly'); + p.value = postText; + + const bEdit = document.querySelector('.edit'); + bEdit.onclick = function () { + const postRef = db.collection('posts').doc(id); + + return postRef.update({ + text: p.value, + userEmail: auth.currentUser.email, + }); + }; +} diff --git a/src/lib/style.css b/src/lib/style.css index e0ace005..978f434a 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -339,64 +339,94 @@ /* Home*/ - - -.home{ +.logoHome { + position: absolute; + top: 1%; +} +.home { display: flex; flex-direction: column; align-items: center; - justify-content: center; - background-image: url(./img/fondoHome.png); + background-image: url(/lib/img/fondoHome.png); background-size: cover; height: 100vh; - } -.logoHome { - position: absolute; + +.formHome { + width: 92%; + max-width: 483px; + height: 23vh; + max-height: 153px; + border-radius: 10px; + padding-top: 0; + margin-top: 105px; background: none; - top: 1%; -} + border: none; + font-size: 19px; +} .postForm { + display: flex; + background: white; width: 88%; - max-width: 450px; + max-width: 473px; height: 11vh; - border-radius: 10px; + border-radius: 12px; padding-top: 15px; padding-left: 3%; - background-color: white; - border: none; font-size: 19px; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - margin: -340px 0% 0% -194px; - position: absolute; + margin: 2% 0% 0% 4%; + justify-content: center; + max-height: 71px; + box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.25) inset; } -.post{ + +.post { background: #F39C12; - width: 100%; - max-width: 130px; - height: 37px; + width: 35%; + max-width: 166px; + height: 32px; border-radius: 10px; font-weight: bold; font-size: 20px; border: none; color: #FFFEFE; - position: absolute; - margin: -205px 0px 0px 62px; + margin-left: 61%; + margin-top: 3%; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } -.goOut{ + +.showPost { + display: flex; + align-items: center; + background: white; + width: 82%; + max-width: 409px; + height: 11vh; + border-radius: 10px; + padding-top: 15px; + padding-left: 3%; + font-size: 19px; + margin: 13px 0% 0%; + max-height: 61px; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); +} + +/*button salir*/ +.goOut { position: absolute; + max-height: 51px; width: 13%; - max-width: 375px; box-sizing: border-box; - height: 57px; - font-size: 19px; + height: 81vh; + font-size: 20px; border: none; - background: white url(/lib/img/salir.png) no-repeat 14px 2px; + background: white url(/lib/img/salir.png) no-repeat 14px 2%; border-radius: 15px; - margin: -848px 0px 4px 358px; - padding: 28px 0px 0px 0px; + margin: 1% -10% 0% 76%; + padding: 31px 0px 0px 0px; + max-width: 51px; } /*error*/ From bd20fa2bfd9c7b3d098922cd60363c13835ed031 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 25 Apr 2023 13:43:06 -0500 Subject: [PATCH 58/75] Actualiza cambios --- src/Components/mistake.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/Components/mistake.js b/src/Components/mistake.js index 680d573b..687400c7 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -1,21 +1,23 @@ -/* eslint-disable no-unused-expressions */ -// import { currentUserNow } from '../lib/auth.js'; +/* eslint-disable import/named */ + +import { currentUserNow } from '../lib/auth.js'; // pantalla - error -function mistake() { +function mistake(navigateTo) { const bug = document.createElement('div'); bug.innerHTML = `

Error 404: página no encontrada.

volver al Inicio
`; - // const keep = bug.querySelector('.initButton'); - // keep.addEventListener('click', () => { - // const user = currentUserNow(); - // console.log(user); - // user ? navigateTo('/emprende') : navigateTo('/'); - // }); - // return bug; + const keep = bug.querySelector('.initButton'); + keep.addEventListener('click', () => { + const user = currentUserNow(); + console.log(user); + // eslint-disable-next-line no-unused-expressions + user ? navigateTo('/emprende') : navigateTo('/'); + }); + return bug; } export { From 3550a22bfbbe30d8671461d73bf47dce32d2e365 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Tue, 25 Apr 2023 18:05:48 -0400 Subject: [PATCH 59/75] Guardando editado en firebase --- src/Components/home.js | 9 ++++++--- src/lib/firebase.js | 14 +------------- src/lib/post.js | 25 +++++++++++++++++++------ src/lib/style.css | 19 +++++++++++++++++-- 4 files changed, 43 insertions(+), 24 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index a070afee..de2ad1e9 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -50,7 +50,10 @@ function home(navigateTo) { editButton.classList.add('edit'); editButton.textContent = 'Editar'; editButton.addEventListener('click', () => { - editar(doc.id, textarea.value); + editar(doc.id, textarea.value, (id, newText) => { + const editedTextarea = postForm.querySelector(`[data-id="${id}"]`); + editedTextarea.value = newText; + }); }); console.log('correo en sesión: ', auth.currentUser.email); @@ -59,7 +62,7 @@ function home(navigateTo) { postForm.appendChild(editButton); } - return textarea; + return postForm; }; onSnapshot(ref(), (querySnapshot) => { @@ -75,7 +78,7 @@ function home(navigateTo) { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); nodoP.setAttribute('contenteditable', true); - postForm.append(nodoP); + /* postForm.append(nodoP); */ } }); }); diff --git a/src/lib/firebase.js b/src/lib/firebase.js index a7fea9ad..626a7dd5 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,5 +1,5 @@ import { initializeApp } from 'firebase/app'; -import { getAuth, onAuthStateChanged } from 'firebase/auth'; +import { getAuth } from 'firebase/auth'; import { getFirestore } from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use @@ -18,15 +18,3 @@ const firebaseConfig = { export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); -export { onAuthStateChanged }; -// export default { -// addDoc, -// getDocs, -// doc, -// collection, -// deleteDoc, -// updateDoc, -// arrayRemove, -// arrayUnion, -// getDoc, -// }; diff --git a/src/lib/post.js b/src/lib/post.js index d3e60e10..08a70cd6 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -1,22 +1,35 @@ -import { collection, query } from 'firebase/firestore'; +import { + collection, query, doc, updateDoc, +} from 'firebase/firestore'; import { db, auth } from './firebase.js'; export const ref = () => query(collection(db, 'posts')); // Editar post -export function editar(id, postText) { +export function editar(id, postText, onSave) { const p = document.querySelector(`[data-id="${id}"]`); p.removeAttribute('readonly'); p.value = postText; const bEdit = document.querySelector('.edit'); - bEdit.onclick = function () { - const postRef = db.collection('posts').doc(id); + bEdit.textContent = 'Guardar'; + bEdit.onclick = () => { + const postRef = doc(db, 'posts', id); + + // Set the "capital" field of the city 'DC' + updateDoc(postRef, { - return postRef.update({ text: p.value, userEmail: auth.currentUser.email, - }); + }) + .then(() => { + onSave(id, p.value); + bEdit.textContent = 'Editar'; + bEdit.onclick = () => editar(id, p.value, onSave); + }) + .catch((error) => { + console.error('Error updating post: ', error); + }); }; } diff --git a/src/lib/style.css b/src/lib/style.css index 978f434a..904343cf 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -398,6 +398,23 @@ } .showPost { + display: flex; + align-items: center; + background: white; + width: 82%; + max-width: 409px; + /* min-height: 50px; */ + height: auto; + max-height: 61px; + border: none; + padding-left: 3%; + font-size: 19px; + margin: 13px 0% 0%; + + +} + +.cardPost { display: flex; align-items: center; background: white; @@ -405,8 +422,6 @@ max-width: 409px; height: 11vh; border-radius: 10px; - padding-top: 15px; - padding-left: 3%; font-size: 19px; margin: 13px 0% 0%; max-height: 61px; From 4a9a1e020ab4fabed96bc04a696afa0c1f847bc5 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 25 Apr 2023 17:23:41 -0500 Subject: [PATCH 60/75] guarda cambios de Belen --- src/Components/mistake.js | 13 ++++++------- src/lib/firebase.js | 13 +------------ src/lib/style.css | 40 ++++++++++++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/src/Components/mistake.js b/src/Components/mistake.js index 687400c7..b5962ed4 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -1,6 +1,5 @@ -/* eslint-disable import/named */ - -import { currentUserNow } from '../lib/auth.js'; +/* eslint-disable import/named +import { currentUserNow } from '../lib/auth.js'; */ // pantalla - error function mistake(navigateTo) { @@ -12,10 +11,10 @@ function mistake(navigateTo) { const keep = bug.querySelector('.initButton'); keep.addEventListener('click', () => { - const user = currentUserNow(); - console.log(user); - // eslint-disable-next-line no-unused-expressions - user ? navigateTo('/emprende') : navigateTo('/'); + // const user = currentUserNow(); + // console.log(user); + // // eslint-disable-next-line no-unused-expressions + // user ? navigateTo('/emprende') : navigateTo('/'); }); return bug; } diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 725af2c3..626a7dd5 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,5 +1,5 @@ import { initializeApp } from 'firebase/app'; -import { getAuth, onAuthStateChanged } from 'firebase/auth'; +import { getAuth } from 'firebase/auth'; import { getFirestore } from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use @@ -18,14 +18,3 @@ const firebaseConfig = { export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); -// export default { -// addDoc, -// getDocs, -// doc, -// collection, -// deleteDoc, -// updateDoc, -// arrayRemove, -// arrayUnion, -// getDoc, -// }; diff --git a/src/lib/style.css b/src/lib/style.css index ba7ce17f..8342ab4f 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -357,7 +357,6 @@ background-size: cover; height: 100vh; } - .formHome { width: 92%; max-width: 483px; @@ -369,9 +368,7 @@ background: none; border: none; font-size: 19px; - } - .postForm { display: flex; background: white; @@ -387,7 +384,6 @@ max-height: 71px; box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.25) inset; } - .post { background: #F39C12; width: 35%; @@ -398,10 +394,40 @@ font-size: 20px; border: none; color: #FFFEFE; - position: absolute; - margin: -205px 0px 0px 62px; + margin-left: 61%; + margin-top: 3%; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); +} +/* .showPost { + display: flex; + align-items: center; + background: white; + width: 82%; + max-width: 409px; + height: 11vh; + border-radius: 10px; + border: none; + padding-top: 15px; + padding-left: 3%; + font-size: 19px; + margin: 13px 0% 0%; + max-height: 61px; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); +} */ +.edit{ + background: #EAEAEA; + width: 21%; + max-width: 113px; + height: 32px; + border-radius: 9px; + font-weight: bold; + font-size: 20px; + border: none; + color: black; + margin-left: 64%; + margin-top: 2%; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } - /*button salir*/ .goOut { position: absolute; From c211cfd265f48479f3b84d8a75e648b2a4fe4a03 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Wed, 26 Apr 2023 18:33:58 -0400 Subject: [PATCH 61/75] Correccion de errores --- src/Components/home.js | 35 ++++++++++----------- src/lib/post.js | 70 +++++++++++++++++++++++++++++------------- src/lib/style.css | 4 +-- 3 files changed, 67 insertions(+), 42 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index de2ad1e9..6e22cf8e 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -10,10 +10,10 @@ function home(navigateTo) { postForm.innerHTML = `
- +
- `; + `; const salir = postForm.querySelector('.goOut'); salir.addEventListener('click', () => { @@ -26,41 +26,43 @@ function home(navigateTo) { const buttonPost = postForm.querySelector('.post'); buttonPost.addEventListener('click', (e) => { e.preventDefault(); - const textarea = postForm.querySelector('.postForm'); + const textarea = postForm.querySelector('.areaPost'); const postText = textarea.value; - if (postText.trim() === '') { + if (postText.trim() !== '') { + post(postText); + } else { + // eslint-disable-next-line no-alert alert('Ingrese post'); - // return false; } - post(postText); - // .then((res) => console.log('res: ', res)) - // .catch((err) => console.error(err)); textarea.value = ''; }); const printPost = (info, doc) => { + const postContainer = document.createElement('div'); + const textarea = document.createElement('textarea'); textarea.classList.add('showPost'); textarea.value = info.text; textarea.setAttribute('data-id', doc.id); textarea.setAttribute('readonly', true); - postForm.appendChild(textarea); + postContainer.appendChild(textarea); const editButton = document.createElement('button'); editButton.classList.add('edit'); editButton.textContent = 'Editar'; editButton.addEventListener('click', () => { + editButton.textContent = 'Guardar'; editar(doc.id, textarea.value, (id, newText) => { const editedTextarea = postForm.querySelector(`[data-id="${id}"]`); editedTextarea.value = newText; }); }); - - console.log('correo en sesión: ', auth.currentUser.email); - console.log('emial: ', info.userEmail); if (auth.currentUser.email === info.userEmail) { - postForm.appendChild(editButton); + const editContainer = document.createElement('div'); + editContainer.appendChild(editButton); + postContainer.appendChild(editContainer); } + postForm.appendChild(postContainer); return postForm; }; @@ -71,20 +73,17 @@ function home(navigateTo) { // Buscar el post existente por el id del documento const postExists = postForm.querySelector(`[data-id="${doc.id}"]`); if (postExists) { - const textarea = postExists.querySelector('textarea'); + const textarea = document.querySelector('.showPost'); textarea.removeAttribute('readonly'); textarea.setAttribute('contenteditable', true); } else { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); - nodoP.setAttribute('contenteditable', true); - /* postForm.append(nodoP); */ } }); }); - const idInitSecion = localStorage.getItem('userId'); - console.log(idInitSecion); + localStorage.getItem('userId'); return postForm; } diff --git a/src/lib/post.js b/src/lib/post.js index 08a70cd6..4368f974 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -8,28 +8,54 @@ export const ref = () => query(collection(db, 'posts')); // Editar post export function editar(id, postText, onSave) { - const p = document.querySelector(`[data-id="${id}"]`); - p.removeAttribute('readonly'); - p.value = postText; + const textarea = document.querySelector(`[data-id="${id}"]`); + textarea.removeAttribute('readonly'); + textarea.value = postText; + console.log(textarea); - const bEdit = document.querySelector('.edit'); + // Asignar ID y atributo personalizado a cada botón de editar + const editButtons = document.querySelectorAll('.edit'); + editButtons.forEach((button) => { + const postId = button.dataset.postId; + button.addEventListener('click', () => { + // Obtener el contenido correspondiente al post + const postContent = document.querySelector(`#post-${postId}-content`); + // Actualizar el contenido + postContent.contentEditable = true; + // Mostrar el botón de guardar correspondiente + const saveButton = document.querySelector(`#post-${postId}-guardar`); + saveButton.style.display = 'block'; + }); + }); + + // Asignar ID y atributo personalizado a cada botón de guardar + const saveButtons = document.querySelectorAll('.edit'); + saveButtons.forEach((button) => { + const postId = button.dataset.postId; + button.addEventListener('click', () => { + // Obtener el contenido correspondiente al post + const postContent = document.querySelector(`#post-${postId}-content`); + // Desactivar la edición del contenido + postContent.contentEditable = false; + // Ocultar el botón de guardar correspondiente + button.style.display = 'none'; + }); + }); + + /* const bEdit = document.querySelector('.edit'); + bEdit.classList.add('edit'); bEdit.textContent = 'Guardar'; - bEdit.onclick = () => { - const postRef = doc(db, 'posts', id); - - // Set the "capital" field of the city 'DC' - updateDoc(postRef, { - - text: p.value, - userEmail: auth.currentUser.email, - }) - .then(() => { - onSave(id, p.value); - bEdit.textContent = 'Editar'; - bEdit.onclick = () => editar(id, p.value, onSave); - }) - .catch((error) => { - console.error('Error updating post: ', error); - }); - }; + bEdit.onclick = () => { */ + const postRef = doc(db, 'posts', id); + + updateDoc(postRef, { + + text: textarea.value, + userEmail: auth.currentUser.email, + }) + .then(() => { + onSave(id, textarea.value); + editButtons.textContent = 'Editar'; + editButtons.onclick = () => editar(id, textarea.value, onSave); + }); } diff --git a/src/lib/style.css b/src/lib/style.css index 904343cf..da8c3b51 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -366,7 +366,7 @@ } -.postForm { +.areaPost { display: flex; background: white; width: 88%; @@ -403,13 +403,13 @@ background: white; width: 82%; max-width: 409px; - /* min-height: 50px; */ height: auto; max-height: 61px; border: none; padding-left: 3%; font-size: 19px; margin: 13px 0% 0%; + resize: none; } From 14df429459c8fc5c0ef9de7f8c4e5fc428ff19e6 Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 26 Apr 2023 17:40:20 -0500 Subject: [PATCH 62/75] img de fondo pc --- src/Components/home.js | 16 +++++++------ src/lib/auth.js | 1 + src/lib/post.js | 25 ++++++++++++++----- src/lib/style.css | 54 +++++++++++++++++++++++++++++++----------- 4 files changed, 69 insertions(+), 27 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index a070afee..cf9e8c05 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -10,7 +10,7 @@ function home(navigateTo) { postForm.innerHTML = `
- +
`; @@ -26,7 +26,7 @@ function home(navigateTo) { const buttonPost = postForm.querySelector('.post'); buttonPost.addEventListener('click', (e) => { e.preventDefault(); - const textarea = postForm.querySelector('.postForm'); + const textarea = postForm.querySelector('.areaPost'); const postText = textarea.value; if (postText.trim() === '') { alert('Ingrese post'); @@ -50,16 +50,19 @@ function home(navigateTo) { editButton.classList.add('edit'); editButton.textContent = 'Editar'; editButton.addEventListener('click', () => { - editar(doc.id, textarea.value); + editar(doc.id, textarea.value, (id, newText) => { + const editedTextarea = postForm.querySelector(`[data-id="${id}"]`); + editedTextarea.value = newText; + }); }); - console.log('correo en sesión: ', auth.currentUser.email); - console.log('emial: ', info.userEmail); + // console.log('correo en sesión: ', auth.currentUser.email); + // console.log('emial: ', info.userEmail); if (auth.currentUser.email === info.userEmail) { postForm.appendChild(editButton); } - return textarea; + return postForm; }; onSnapshot(ref(), (querySnapshot) => { @@ -75,7 +78,6 @@ function home(navigateTo) { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); nodoP.setAttribute('contenteditable', true); - postForm.append(nodoP); } }); }); diff --git a/src/lib/auth.js b/src/lib/auth.js index c83b9872..86e1dce7 100644 --- a/src/lib/auth.js +++ b/src/lib/auth.js @@ -24,6 +24,7 @@ const post = (postText) => { addDoc(colPost, { text: postText, userEmail: auth.currentUser.email, + date: Date.now(), }); }; diff --git a/src/lib/post.js b/src/lib/post.js index d3e60e10..06490a1a 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -1,22 +1,35 @@ -import { collection, query } from 'firebase/firestore'; +import { + collection, query, doc, updateDoc, +} from 'firebase/firestore'; import { db, auth } from './firebase.js'; export const ref = () => query(collection(db, 'posts')); // Editar post -export function editar(id, postText) { +export function editar(id, postText, onSave) { const p = document.querySelector(`[data-id="${id}"]`); p.removeAttribute('readonly'); p.value = postText; const bEdit = document.querySelector('.edit'); - bEdit.onclick = function () { - const postRef = db.collection('posts').doc(id); + bEdit.textContent = 'Guardar'; + bEdit.onclick = () => { + const postRef = doc(db, 'posts', id); + + // Set the "capital" field of the city 'DC' + updateDoc(postRef, { - return postRef.update({ text: p.value, userEmail: auth.currentUser.email, - }); + }) + .then(() => { + onSave(id, p.value); + bEdit.textContent = 'Editar'; + bEdit.onclick = () => editar(id, p.value, onSave); + }) + .catch((error) => { + console.log(error); + }); }; } diff --git a/src/lib/style.css b/src/lib/style.css index 8342ab4f..b683b72a 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -343,12 +343,12 @@ font-weight: bold; } - /* Home*/ .logoHome { position: absolute; top: 1%; } + .home { display: flex; flex-direction: column; @@ -357,6 +357,7 @@ background-size: cover; height: 100vh; } + .formHome { width: 92%; max-width: 483px; @@ -368,8 +369,10 @@ background: none; border: none; font-size: 19px; + } -.postForm { + +.areaPost { display: flex; background: white; width: 88%; @@ -383,7 +386,9 @@ justify-content: center; max-height: 71px; box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.25) inset; + resize: none; } + .post { background: #F39C12; width: 35%; @@ -398,7 +403,23 @@ margin-top: 3%; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } -/* .showPost { + +.showPost { + background: white; + width: 81%; + max-width: 409px; + height: 10%; + max-height: 207px; + border-radius: 13px; + border: none; + padding-top: 1%; + padding-left: 3%; + font-size: 19px; + margin: 21px 0% 0%; + resize: none; +} + +.cardPost { display: flex; align-items: center; background: white; @@ -406,28 +427,26 @@ max-width: 409px; height: 11vh; border-radius: 10px; - border: none; - padding-top: 15px; - padding-left: 3%; font-size: 19px; margin: 13px 0% 0%; max-height: 61px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); -} */ -.edit{ - background: #EAEAEA; +} + +.edit { + width: 21%; - max-width: 113px; - height: 32px; - border-radius: 9px; + max-width: 134px; + height: 29px; + border-radius: 10px; font-weight: bold; font-size: 20px; border: none; color: black; - margin-left: 64%; - margin-top: 2%; + margin: -38px 0px 0px 237px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } + /*button salir*/ .goOut { position: absolute; @@ -490,6 +509,7 @@ u { background-size: cover; height: 100vh; } + .creat { background-image: url(./img/fondoDesktop.png); background-size: cover; @@ -501,4 +521,10 @@ u { background-size: cover; height: 100vh; } + .logo2, .logo1 { + position: absolute; + top: 2%; + height: 20vh; + width: 14%; + } } \ No newline at end of file From 7b0f8e58902e23b2bfdede2da0560307de9ed355 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 27 Apr 2023 16:48:54 -0400 Subject: [PATCH 63/75] =?UTF-8?q?Resolviendo=20conflictos=20con=20la=20edi?= =?UTF-8?q?ci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/home.js | 17 +++++++----- src/lib/post.js | 60 +++++------------------------------------- src/lib/style.css | 34 +++++++++++------------- 3 files changed, 34 insertions(+), 77 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 6e22cf8e..78d24cfc 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -2,7 +2,7 @@ import { onSnapshot } from 'firebase/firestore'; import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; import { post } from '../lib/auth.js'; -import { ref, editar } from '../lib/post.js'; +import { editPost, ref } from '../lib/post.js'; function home(navigateTo) { const postForm = document.createElement('section'); @@ -51,12 +51,17 @@ function home(navigateTo) { editButton.classList.add('edit'); editButton.textContent = 'Editar'; editButton.addEventListener('click', () => { - editButton.textContent = 'Guardar'; - editar(doc.id, textarea.value, (id, newText) => { - const editedTextarea = postForm.querySelector(`[data-id="${id}"]`); - editedTextarea.value = newText; - }); + if (editButton.textContent === 'Editar') { + editButton.textContent = 'Guardar'; + textarea.removeAttribute('readonly'); + } else if (editButton.textContent === 'Guardar') { + const editedTextarea = postForm.querySelector(`[data-id="${doc.id}"]`).value; + editPost(doc.id, editedTextarea); + editButton.textContent = 'Editar'; + textarea.setAttribute('readonly', true); + } }); + // Se visuliza botón editar solo en el usuario logueado if (auth.currentUser.email === info.userEmail) { const editContainer = document.createElement('div'); editContainer.appendChild(editButton); diff --git a/src/lib/post.js b/src/lib/post.js index 4368f974..346329b6 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -1,61 +1,15 @@ import { - collection, query, doc, updateDoc, + collection, query, updateDoc, doc, } from 'firebase/firestore'; -import { db, auth } from './firebase.js'; +import { db } from './firebase.js'; export const ref = () => query(collection(db, 'posts')); // Editar post -export function editar(id, postText, onSave) { - const textarea = document.querySelector(`[data-id="${id}"]`); - textarea.removeAttribute('readonly'); - textarea.value = postText; - console.log(textarea); - - // Asignar ID y atributo personalizado a cada botón de editar - const editButtons = document.querySelectorAll('.edit'); - editButtons.forEach((button) => { - const postId = button.dataset.postId; - button.addEventListener('click', () => { - // Obtener el contenido correspondiente al post - const postContent = document.querySelector(`#post-${postId}-content`); - // Actualizar el contenido - postContent.contentEditable = true; - // Mostrar el botón de guardar correspondiente - const saveButton = document.querySelector(`#post-${postId}-guardar`); - saveButton.style.display = 'block'; - }); - }); - - // Asignar ID y atributo personalizado a cada botón de guardar - const saveButtons = document.querySelectorAll('.edit'); - saveButtons.forEach((button) => { - const postId = button.dataset.postId; - button.addEventListener('click', () => { - // Obtener el contenido correspondiente al post - const postContent = document.querySelector(`#post-${postId}-content`); - // Desactivar la edición del contenido - postContent.contentEditable = false; - // Ocultar el botón de guardar correspondiente - button.style.display = 'none'; - }); - }); - - /* const bEdit = document.querySelector('.edit'); - bEdit.classList.add('edit'); - bEdit.textContent = 'Guardar'; - bEdit.onclick = () => { */ - const postRef = doc(db, 'posts', id); - +export const editPost = (id, text) => { + const postRef = doc(db, 'posts', `${id}`); updateDoc(postRef, { - - text: textarea.value, - userEmail: auth.currentUser.email, - }) - .then(() => { - onSave(id, textarea.value); - editButtons.textContent = 'Editar'; - editButtons.onclick = () => editar(id, textarea.value, onSave); - }); -} + text, + }); +}; diff --git a/src/lib/style.css b/src/lib/style.css index da8c3b51..45b5d346 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -397,34 +397,32 @@ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } + .showPost { display: flex; align-items: center; - background: white; - width: 82%; - max-width: 409px; - height: auto; - max-height: 61px; + width: 118%; + max-width: 415px; + max-height: 214px; + border-radius: 13px; border: none; + padding-top: 1%; padding-left: 3%; font-size: 19px; - margin: 13px 0% 0%; + margin: 17px 0% 6% -10%; resize: none; - - } -.cardPost { - display: flex; - align-items: center; - background: white; - width: 82%; - max-width: 409px; - height: 11vh; +.edit { + width: 27%; + max-width: 134px; + height: 29px; border-radius: 10px; - font-size: 19px; - margin: 13px 0% 0%; - max-height: 61px; + font-weight: bold; + font-size: 20px; + border: none; + color: black; + margin: -38px 0px 0px 237px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } From 424f8d9193438ba6017dd3f17f8153b49ce59521 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Thu, 27 Apr 2023 18:00:05 -0400 Subject: [PATCH 64/75] Eliminando post --- src/Components/home.js | 22 +++++++++++++++++++--- src/lib/auth.js | 19 ++----------------- src/lib/post.js | 21 +++++++++++++++++++-- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 78d24cfc..92de8a7a 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,8 +1,9 @@ import { onSnapshot } from 'firebase/firestore'; import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; -import { post } from '../lib/auth.js'; -import { editPost, ref } from '../lib/post.js'; +import { + editPost, ref, deleteDocData, post, +} from '../lib/post.js'; function home(navigateTo) { const postForm = document.createElement('section'); @@ -69,6 +70,22 @@ function home(navigateTo) { } postForm.appendChild(postContainer); + const deleteButton = document.createElement('button'); + deleteButton.classList.add('delete-btn'); + deleteButton.textContent = 'Eliminar'; + deleteButton.addEventListener('click', () => { + // eslint-disable-next-line no-restricted-globals, no-alert + const confirmDelete = confirm('¿Estás seguro que deseas eliminar este post?'); + if (confirmDelete) { + deleteDocData(doc.id); + deleteButton.value = doc.id; + deleteButton.parentElement.remove(); + } + }); + if (auth.currentUser.email === info.userEmail) { + postContainer.appendChild(deleteButton); + } + return postForm; }; @@ -80,7 +97,6 @@ function home(navigateTo) { if (postExists) { const textarea = document.querySelector('.showPost'); textarea.removeAttribute('readonly'); - textarea.setAttribute('contenteditable', true); } else { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); diff --git a/src/lib/auth.js b/src/lib/auth.js index c83b9872..481aca27 100644 --- a/src/lib/auth.js +++ b/src/lib/auth.js @@ -1,10 +1,8 @@ import { signInWithEmailAndPassword, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup, } from 'firebase/auth'; -import { - collection, addDoc, -} from 'firebase/firestore'; -import { auth, db } from './firebase.js'; + +import { auth } from './firebase.js'; /* Ingresar con Google */ const provider = new GoogleAuthProvider(); @@ -16,21 +14,8 @@ const createUser = (email, password) => createUserWithEmailAndPassword(auth, ema /* Ingreso con email y password */ const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); -// Leer post -const colPost = collection(db, 'posts'); - -// guardar post -const post = (postText) => { - addDoc(colPost, { - text: postText, - userEmail: auth.currentUser.email, - }); -}; - export { loginWithGoogle, createUser, signIn, - colPost, - post, }; diff --git a/src/lib/post.js b/src/lib/post.js index 346329b6..43ef2e15 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -1,10 +1,21 @@ import { - collection, query, updateDoc, doc, + collection, query, updateDoc, doc, deleteDoc, addDoc, } from 'firebase/firestore'; -import { db } from './firebase.js'; +import { db, auth } from './firebase.js'; export const ref = () => query(collection(db, 'posts')); +// Leer post +const colPost = collection(db, 'posts'); + +// guardar post +export const post = (postText) => { + addDoc(colPost, { + text: postText, + userEmail: auth.currentUser.email, + }); +}; + // Editar post export const editPost = (id, text) => { @@ -13,3 +24,9 @@ export const editPost = (id, text) => { text, }); }; + +// Eliminar post + +export const deleteDocData = (id) => { + deleteDoc(doc(db, 'posts', `${id}`)); +}; From d96cc052ac6925768ac7cf7a7781aca63319c4dc Mon Sep 17 00:00:00 2001 From: Claudia Date: Thu, 27 Apr 2023 17:04:49 -0500 Subject: [PATCH 65/75] actualiza cambios --- src/Components/home.js | 2 -- src/lib/post.js | 3 --- src/lib/style.css | 57 +++++++++--------------------------------- 3 files changed, 12 insertions(+), 50 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 05f9db97..6e22cf8e 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -11,7 +11,6 @@ function home(navigateTo) {
-
`; @@ -28,7 +27,6 @@ function home(navigateTo) { buttonPost.addEventListener('click', (e) => { e.preventDefault(); const textarea = postForm.querySelector('.areaPost'); - const textarea = postForm.querySelector('.areaPost'); const postText = textarea.value; if (postText.trim() !== '') { post(postText); diff --git a/src/lib/post.js b/src/lib/post.js index 942dcf71..4368f974 100644 --- a/src/lib/post.js +++ b/src/lib/post.js @@ -1,9 +1,6 @@ import { collection, query, doc, updateDoc, } from 'firebase/firestore'; -import { - collection, query, doc, updateDoc, -} from 'firebase/firestore'; import { db, auth } from './firebase.js'; export const ref = () => query(collection(db, 'posts')); diff --git a/src/lib/style.css b/src/lib/style.css index f370e2d5..2438c9b4 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -349,6 +349,11 @@ top: 1%; } +.logoHome { + position: absolute; + top: 1%; +} + .home { display: flex; flex-direction: column; @@ -369,9 +374,7 @@ background: none; border: none; font-size: 19px; - } - .areaPost { display: flex; background: white; @@ -386,9 +389,7 @@ justify-content: center; max-height: 71px; box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.25) inset; - resize: none; } - .post { background: #F39C12; width: 35%; @@ -403,56 +404,22 @@ margin-top: 3%; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } - .showPost { - background: white; - width: 81%; - max-width: 409px; - height: 10%; - max-height: 207px; - border-radius: 13px; - border: none; - padding-top: 1%; - padding-left: 3%; - font-size: 19px; - margin: 21px 0% 0%; - resize: none; -} - -.cardPost { display: flex; align-items: center; - background: white; - width: 82%; - max-width: 409px; - height: auto; - max-height: 61px; + width: 118%; + max-width: 415px; + max-height: 214px; + border-radius: 13px; border: none; + padding-top: 1%; padding-left: 3%; font-size: 19px; - margin: 13px 0% 0%; + margin: 17px 0% 0% -10%; resize: none; - - } - -.cardPost { - display: flex; - align-items: center; - background: white; - width: 82%; - max-width: 409px; - height: 11vh; - border-radius: 10px; - font-size: 19px; - margin: 13px 0% 0%; - max-height: 61px; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); -} - .edit { - - width: 21%; + width: 21%; max-width: 134px; height: 29px; border-radius: 10px; From ad03ba261f0161400fd2f965701eb2addaebdac2 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Tue, 2 May 2023 15:08:35 -0400 Subject: [PATCH 66/75] =?UTF-8?q?Correcci=C3=B3n=20de=20botones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/home.js | 14 +++++++++----- src/lib/style.css | 24 ++++++++++++++---------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 76b100bd..ddb7044c 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -49,6 +49,9 @@ function home(navigateTo) { textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); + const buttonsContainer = document.createElement('div'); + buttonsContainer.classList.add('buttonsPost'); + const editButton = document.createElement('button'); editButton.classList.add('edit'); editButton.textContent = 'Editar'; @@ -65,9 +68,8 @@ function home(navigateTo) { }); // Se visuliza botón editar solo en el usuario logueado if (auth.currentUser.email === info.userEmail) { - postContainer.appendChild(editButton); + buttonsContainer.appendChild(editButton); } - postForm.appendChild(postContainer); const deleteButton = document.createElement('button'); deleteButton.classList.add('delete-btn'); @@ -78,11 +80,11 @@ function home(navigateTo) { if (confirmDelete) { deleteDocData(doc.id); deleteButton.value = doc.id; - deleteButton.parentElement.remove(); + deleteButton.closest('.divPost').remove(); } }); if (auth.currentUser.email === info.userEmail) { - postContainer.appendChild(deleteButton); + buttonsContainer.appendChild(deleteButton); } // Dar like y dislike const likeButton = document.createElement('button'); @@ -100,7 +102,9 @@ function home(navigateTo) { like(doc.id, auth.currentUser.email); } }); - postContainer.appendChild(likeButton); + buttonsContainer.appendChild(likeButton); + postContainer.appendChild(buttonsContainer); + postForm.appendChild(postContainer); return postForm; }; diff --git a/src/lib/style.css b/src/lib/style.css index 18722f53..d582d7ab 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -428,11 +428,17 @@ div textarea { margin: 15px 0px 1px 0px; } +.buttonsPost { + display: flex; + justify-content: space-between; + align-items: center; + width: 300px; +} + .edit { - position: relative; left: 70%; - width: 24%; - max-width: 116px; + width: 37%; + max-width: 100px; height: 29px; border-radius: 10px; font-size: 20px; @@ -441,10 +447,9 @@ div textarea { box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); } .delete-btn { - position: relative; left: 17%; - width: 24%; - max-width: 116px; + width: 33%; + max-width: 119px; height: 29px; border-radius: 10px; font-size: 20px; @@ -455,10 +460,9 @@ div textarea { } .like-btn { - position: relative; - left: -168px; - width: 11%; - max-width: 123px; + left: 98px; + width: 77%; + max-width: 65px; height: 29px; border-radius: 10px; font-size: 20px; From 92bec3479731604f60cd2085f0f16185b48f1cda Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Tue, 2 May 2023 15:47:50 -0500 Subject: [PATCH 67/75] Cambios en el like --- src/Components/home.js | 16 +++++++++----- src/lib/style.css | 48 ++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 76b100bd..6ed336bc 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -49,6 +49,10 @@ function home(navigateTo) { textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); + // Contenedor para botones + const buttonsContainer = document.createElement('div'); + buttonsContainer.classList.add('buttonsContainer'); + const editButton = document.createElement('button'); editButton.classList.add('edit'); editButton.textContent = 'Editar'; @@ -65,9 +69,8 @@ function home(navigateTo) { }); // Se visuliza botón editar solo en el usuario logueado if (auth.currentUser.email === info.userEmail) { - postContainer.appendChild(editButton); + buttonsContainer.appendChild(editButton); } - postForm.appendChild(postContainer); const deleteButton = document.createElement('button'); deleteButton.classList.add('delete-btn'); @@ -82,7 +85,7 @@ function home(navigateTo) { } }); if (auth.currentUser.email === info.userEmail) { - postContainer.appendChild(deleteButton); + buttonsContainer.appendChild(deleteButton); } // Dar like y dislike const likeButton = document.createElement('button'); @@ -100,8 +103,11 @@ function home(navigateTo) { like(doc.id, auth.currentUser.email); } }); - postContainer.appendChild(likeButton); - + buttonsContainer.appendChild(likeButton); + const postGlobal = document.createElement('div'); + postGlobal.appendChild(postContainer); + postGlobal.appendChild(buttonsContainer); + postForm.appendChild(postGlobal); return postForm; }; diff --git a/src/lib/style.css b/src/lib/style.css index 18722f53..bc8d6140 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -413,19 +413,18 @@ height: 100vh; } div textarea { - position: relative; - left: 6px; - height: 16vh; - width: 94%; - max-width: 364px; - max-height: 69px; - border-radius: 13px; - border: none; - padding-top: 1%; - padding-left: 3%; - font-size: 19px; - resize: none; - margin: 15px 0px 1px 0px; + height: 16vh; + width: 167%; + max-width: 349px; + max-height: 69px; + border-radius: 13px; + border: none; + padding-top: 1%; + padding-left: 3%; + font-size: 19px; + resize: none; + margin: 5% 0% 0% -35%; + display: flex; } .edit { @@ -455,18 +454,17 @@ div textarea { } .like-btn { - position: relative; - left: -168px; - width: 11%; - max-width: 123px; - height: 29px; - border-radius: 10px; - font-size: 20px; - border: none; - color: black; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - -} + position: absolute; + left: -88px; + width: 37%; + max-width: 192px; + height: 29px; + border-radius: 10px; + font-size: 20px; + border: none; + color: black; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + } /*button salir*/ .goOut { From 245b7f41b61c5566cf200f52c4fc863c80a8cb87 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 2 May 2023 15:48:10 -0500 Subject: [PATCH 68/75] actualiza cambios --- src/Components/home.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index 76b100bd..937f8f31 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -49,6 +49,9 @@ function home(navigateTo) { textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); + const buttonsContainer = document.createElement('div'); + buttonsContainer.classList.add('buttonsContainer'); + postContainer.appendChild(buttonsContainer); const editButton = document.createElement('button'); editButton.classList.add('edit'); editButton.textContent = 'Editar'; @@ -65,7 +68,7 @@ function home(navigateTo) { }); // Se visuliza botón editar solo en el usuario logueado if (auth.currentUser.email === info.userEmail) { - postContainer.appendChild(editButton); + buttonsContainer.appendChild(editButton); } postForm.appendChild(postContainer); @@ -82,7 +85,7 @@ function home(navigateTo) { } }); if (auth.currentUser.email === info.userEmail) { - postContainer.appendChild(deleteButton); + buttonsContainer.appendChild(deleteButton); } // Dar like y dislike const likeButton = document.createElement('button'); @@ -100,7 +103,7 @@ function home(navigateTo) { like(doc.id, auth.currentUser.email); } }); - postContainer.appendChild(likeButton); + buttonsContainer.appendChild(likeButton); return postForm; }; From f5f98e1f6d692f57c88867d116de7cd1066e4b50 Mon Sep 17 00:00:00 2001 From: Belen Neira Date: Wed, 3 May 2023 15:21:31 -0400 Subject: [PATCH 69/75] Terminando funcionalidad de like y dislike --- src/Components/home.js | 20 +++++++++++++++----- src/index.html | 1 + src/lib/style.css | 10 +++++----- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/Components/home.js b/src/Components/home.js index ddb7044c..9f186207 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -46,6 +46,7 @@ function home(navigateTo) { textarea.classList.add('showPost'); textarea.value = info.text; textarea.setAttribute('data-id', doc.id); + postContainer.setAttribute('data-id', doc.id); textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); @@ -86,13 +87,9 @@ function home(navigateTo) { if (auth.currentUser.email === info.userEmail) { buttonsContainer.appendChild(deleteButton); } - // Dar like y dislike + // Creacion de botón de like const likeButton = document.createElement('button'); likeButton.classList.add('like-btn'); - likeButton.textContent = 'Like'; - // const disLikeButton = document.createElement('button'); - // disLikeButton.classList.add('disLike-btn'); - // disLikeButton.textContent = 'DisLike'; likeButton.addEventListener('click', () => { if (doc.data().likes.includes(auth.currentUser.email)) { @@ -102,6 +99,7 @@ function home(navigateTo) { like(doc.id, auth.currentUser.email); } }); + buttonsContainer.appendChild(likeButton); postContainer.appendChild(buttonsContainer); postForm.appendChild(postContainer); @@ -123,6 +121,18 @@ function home(navigateTo) { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); } + // like + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector('.like-btn'); + buttonLike.innerHTML = ` ${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener('click', () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } }); }); diff --git a/src/index.html b/src/index.html index 54904924..31711021 100644 --- a/src/index.html +++ b/src/index.html @@ -3,6 +3,7 @@ Emprende.app + diff --git a/src/lib/style.css b/src/lib/style.css index d582d7ab..1c341c45 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -349,11 +349,6 @@ top: 1%; } -.logoHome { - position: absolute; - top: 1%; -} - .home { display: flex; flex-direction: column; @@ -459,6 +454,11 @@ div textarea { box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25) } + +.fa-heart { + color: #F39C12; + } + .like-btn { left: 98px; width: 77%; From ee556d86a130178511c379fc05955b7702dd15b7 Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 3 May 2023 15:26:44 -0500 Subject: [PATCH 70/75] actualiza cambios --- src/Components/home.js | 42 ++++++++++++++++++--------------- src/lib/img/corazon.png | Bin 0 -> 428 bytes src/lib/post.js | 12 ---------- src/lib/style.css | 50 +++++++++++++++------------------------- 4 files changed, 42 insertions(+), 62 deletions(-) create mode 100644 src/lib/img/corazon.png diff --git a/src/Components/home.js b/src/Components/home.js index ddb7044c..9a336bd4 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,8 +1,9 @@ -import { onSnapshot } from 'firebase/firestore'; +/* eslint-disable no-unused-vars */ import { signOut } from 'firebase/auth'; +import { onSnapshot } from 'firebase/firestore'; import { auth } from '../lib/firebase.js'; import { - editPost, ref, deleteDocData, post, like, disLike, + editPost, deleteDocData, post, like, disLike, ref, } from '../lib/post.js'; function home(navigateTo) { @@ -46,6 +47,7 @@ function home(navigateTo) { textarea.classList.add('showPost'); textarea.value = info.text; textarea.setAttribute('data-id', doc.id); + postContainer.setAttribute('data-id', doc.id); textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); @@ -86,22 +88,12 @@ function home(navigateTo) { if (auth.currentUser.email === info.userEmail) { buttonsContainer.appendChild(deleteButton); } - // Dar like y dislike + // Creacion de botón de like const likeButton = document.createElement('button'); likeButton.classList.add('like-btn'); - likeButton.textContent = 'Like'; - // const disLikeButton = document.createElement('button'); - // disLikeButton.classList.add('disLike-btn'); - // disLikeButton.textContent = 'DisLike'; - - likeButton.addEventListener('click', () => { - if (doc.data().likes.includes(auth.currentUser.email)) { - disLike(doc.id, auth.currentUser.email); - } else { - console.log('like', doc.id, auth.currentUser.email); - like(doc.id, auth.currentUser.email); - } - }); + const count = document.createElement('p'); + count.classList.add('count-p'); + buttonsContainer.appendChild(count); buttonsContainer.appendChild(likeButton); postContainer.appendChild(buttonsContainer); postForm.appendChild(postContainer); @@ -113,16 +105,28 @@ function home(navigateTo) { querySnapshot.forEach((doc) => { const postInfo = doc.data(); // Buscar el post existente por el id del documento - const postExists = postForm.querySelector(`[data-id="${doc.id}"]`); + const postExists = postForm.querySelector(`textarea[data-id="${doc.id}"]`); if (postExists) { const textarea = document.querySelector('.showPost'); textarea.removeAttribute('readonly'); - console.log('actualizando publicacion'); } else { - console.log('agregando nueva'); const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); } + + // like + const countLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector('.count-p'); + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector('.like-btn'); + countLike.textContent = `${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener('click', () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } }); }); diff --git a/src/lib/img/corazon.png b/src/lib/img/corazon.png new file mode 100644 index 0000000000000000000000000000000000000000..6856376c41643d4d0421c25700d568f8f01d038d GIT binary patch literal 428 zcmV;d0aN~oP)Zw{6JG@k*DBXx#({!@crOqJzUwn`w{puXu< zY*LP_GQt8iREMfUX#wiQ^8b21WfOU(O$ZnlVp7dXQGmS#%c45@|A{q5MZ?-QS|Z;W W7?ET`5sexE0000 query(collection(db, 'posts')); -// -// import { collection, query, where, onSnapshot } from "firebase/firestore"; - -// const q = query(collection(db, "cities"), where("state", "==", "CA")); -// const unsubscribe = onSnapshot(q, (querySnapshot) => { -// const cities = []; -// querySnapshot.forEach((doc) => { -// cities.push(doc.data().name); -// }); -// console.log("Current cities in CA: ", cities.join(", ")); -// }); - // Leer post const colPost = collection(db, 'posts'); diff --git a/src/lib/style.css b/src/lib/style.css index d582d7ab..3e68c854 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -343,17 +343,11 @@ font-weight: bold; } -/* Home*/ +Home*/ .logoHome { position: absolute; top: 1%; } - -.logoHome { - position: absolute; - top: 1%; -} - .home { display: flex; flex-direction: column; @@ -362,7 +356,6 @@ background-size: cover; height: 100vh; } - .formHome { width: 92%; max-width: 483px; @@ -375,7 +368,6 @@ border: none; font-size: 19px; } - .areaPost { display: flex; background: white; @@ -391,7 +383,6 @@ max-height: 71px; box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.25) inset; } - .post { background: #F39C12; width: 35%; @@ -414,9 +405,9 @@ } div textarea { position: relative; - left: 6px; - height: 16vh; - width: 94%; + left: -26px; + height: 13vh; + width: 113%; max-width: 364px; max-height: 69px; border-radius: 13px; @@ -425,16 +416,15 @@ div textarea { padding-left: 3%; font-size: 19px; resize: none; - margin: 15px 0px 1px 0px; - } - + margin: 19px 0px 1px 0px; +} .buttonsPost { display: flex; justify-content: space-between; align-items: center; width: 300px; + margin: 6px 0px 0px 0px; } - .edit { left: 70%; width: 37%; @@ -445,6 +435,7 @@ div textarea { border: none; color: black; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + margin: 0px 0px 0px 101px; } .delete-btn { left: 17%; @@ -455,22 +446,19 @@ div textarea { font-size: 20px; border: none; color: black; - /* margin: 0px 16px 0px -226px; */ + margin: 0px -13px 0px -225px; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25) - -} +} .like-btn { - left: 98px; - width: 77%; - max-width: 65px; - height: 29px; - border-radius: 10px; - font-size: 20px; - border: none; - color: black; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - -} + background: url(/lib/img/corazon.png) no-repeat; + padding: 21px; + margin-left: -20px; + background-position: center; + cursor: pointer; + border: none; + position: absolute; + margin-top: 4px; + } /*button salir*/ .goOut { From f344553fff0219d5e317218de796b4476bf850da Mon Sep 17 00:00:00 2001 From: Claudia Date: Wed, 3 May 2023 19:09:12 -0500 Subject: [PATCH 71/75] agrega estilos al home y agrega el userEmail --- src/Components/home.js | 29 +++++-- src/lib/img/fondoDesktops.png | Bin 10427 -> 0 bytes src/lib/img/fondoHomeDesktop.png | Bin 11097 -> 555591 bytes src/lib/style.css | 134 +++++++++++++++++++------------ 4 files changed, 103 insertions(+), 60 deletions(-) delete mode 100644 src/lib/img/fondoDesktops.png diff --git a/src/Components/home.js b/src/Components/home.js index 5b16aa92..a2c259e1 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,9 +1,8 @@ -/* eslint-disable no-unused-vars */ -import { signOut } from 'firebase/auth'; import { onSnapshot } from 'firebase/firestore'; +import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; import { - editPost, deleteDocData, post, like, disLike, ref, + editPost, ref, deleteDocData, post, like, disLike, } from '../lib/post.js'; function home(navigateTo) { @@ -42,11 +41,14 @@ function home(navigateTo) { const printPost = (info, doc) => { const postContainer = document.createElement('div'); postContainer.classList.add('divPost'); - + const name = document.createElement('h6'); + name.classList.add('userName'); + postContainer.appendChild(name); + name.innerHTML = `${info.userEmail}`; const textarea = document.createElement('textarea'); textarea.classList.add('showPost'); textarea.value = info.text; - textarea.setAttribute('data-id', doc.id); + // textarea.setAttribute('data-id', doc.id); postContainer.setAttribute('data-id', doc.id); textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); @@ -62,7 +64,7 @@ function home(navigateTo) { editButton.textContent = 'Guardar'; textarea.removeAttribute('readonly'); } else if (editButton.textContent === 'Guardar') { - const editedTextarea = postForm.querySelector(`[data-id="${doc.id}"]`).value; + const editedTextarea = postContainer.querySelector('textarea').value; editPost(doc.id, editedTextarea); editButton.textContent = 'Editar'; textarea.setAttribute('readonly', true); @@ -96,7 +98,6 @@ function home(navigateTo) { if (doc.data().likes.includes(auth.currentUser.email)) { disLike(doc.id, auth.currentUser.email); } else { - console.log('like', doc.id, auth.currentUser.email); like(doc.id, auth.currentUser.email); } }); @@ -112,7 +113,7 @@ function home(navigateTo) { querySnapshot.forEach((doc) => { const postInfo = doc.data(); // Buscar el post existente por el id del documento - const postExists = postForm.querySelector(`textarea[data-id="${doc.id}"]`); + const postExists = postForm.querySelector(`div[data-id="${doc.id}"]`); if (postExists) { const textarea = document.querySelector('.showPost'); textarea.removeAttribute('readonly'); @@ -120,6 +121,18 @@ function home(navigateTo) { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); } + // like + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector('.like-btn'); + buttonLike.innerHTML = ` ${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener('click', () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } }); }); diff --git a/src/lib/img/fondoDesktops.png b/src/lib/img/fondoDesktops.png deleted file mode 100644 index 71e36710d5145419cc828729681068c1f683fd11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10427 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 diff --git a/src/lib/img/fondoHomeDesktop.png b/src/lib/img/fondoHomeDesktop.png index 3fed1513d1568852ae7837a8ed2c54e98a1fb5c1..a7984a898b865cc805bdcfccd609e34e7d223012 100644 GIT binary patch literal 555591 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
e}2S;M@tCg;fM` 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%0APC+2itV@jFbDr=0v`2#3jH$;UF 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

ar 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%0Ay@a_KVu#ho2K#~LdzGG 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ⅅSYL^V}ZA9(crqMG4xC&WiNr+AOK=4!{r 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 wh~de>mUEeg3VbK?s$0W;>T(m!7Jt3lkN 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 pW?57y(ZE6DB`O%;{!iKAz|w4 Date: Wed, 3 May 2023 19:09:12 -0500 Subject: [PATCH 72/75] agrega estilos al home y agrega el userEmail --- src/Components/home.js | 28 +++++-- src/lib/img/fondoDesktops.png | Bin 10427 -> 0 bytes src/lib/img/fondoHomeDesktop.png | Bin 11097 -> 555591 bytes src/lib/style.css | 134 +++++++++++++++++++------------ 4 files changed, 103 insertions(+), 59 deletions(-) delete mode 100644 src/lib/img/fondoDesktops.png diff --git a/src/Components/home.js b/src/Components/home.js index 5b16aa92..36893e21 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -1,9 +1,8 @@ -/* eslint-disable no-unused-vars */ -import { signOut } from 'firebase/auth'; import { onSnapshot } from 'firebase/firestore'; +import { signOut } from 'firebase/auth'; import { auth } from '../lib/firebase.js'; import { - editPost, deleteDocData, post, like, disLike, ref, + editPost, ref, deleteDocData, post, like, disLike, } from '../lib/post.js'; function home(navigateTo) { @@ -42,11 +41,15 @@ function home(navigateTo) { const printPost = (info, doc) => { const postContainer = document.createElement('div'); postContainer.classList.add('divPost'); + const name = document.createElement('h6'); + name.classList.add('userName'); + postContainer.appendChild(name); + name.innerHTML = `${info.userEmail}`; const textarea = document.createElement('textarea'); textarea.classList.add('showPost'); textarea.value = info.text; - textarea.setAttribute('data-id', doc.id); + // textarea.setAttribute('data-id', doc.id); postContainer.setAttribute('data-id', doc.id); textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); @@ -62,7 +65,7 @@ function home(navigateTo) { editButton.textContent = 'Guardar'; textarea.removeAttribute('readonly'); } else if (editButton.textContent === 'Guardar') { - const editedTextarea = postForm.querySelector(`[data-id="${doc.id}"]`).value; + const editedTextarea = postContainer.querySelector('textarea').value; editPost(doc.id, editedTextarea); editButton.textContent = 'Editar'; textarea.setAttribute('readonly', true); @@ -96,7 +99,6 @@ function home(navigateTo) { if (doc.data().likes.includes(auth.currentUser.email)) { disLike(doc.id, auth.currentUser.email); } else { - console.log('like', doc.id, auth.currentUser.email); like(doc.id, auth.currentUser.email); } }); @@ -112,7 +114,7 @@ function home(navigateTo) { querySnapshot.forEach((doc) => { const postInfo = doc.data(); // Buscar el post existente por el id del documento - const postExists = postForm.querySelector(`textarea[data-id="${doc.id}"]`); + const postExists = postForm.querySelector(`div[data-id="${doc.id}"]`); if (postExists) { const textarea = document.querySelector('.showPost'); textarea.removeAttribute('readonly'); @@ -120,6 +122,18 @@ function home(navigateTo) { const nodoP = printPost(postInfo, doc); nodoP.setAttribute('data-id', doc.id); } + // like + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector('.like-btn'); + buttonLike.innerHTML = ` ${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener('click', () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } }); }); diff --git a/src/lib/img/fondoDesktops.png b/src/lib/img/fondoDesktops.png deleted file mode 100644 index 71e36710d5145419cc828729681068c1f683fd11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10427 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 diff --git a/src/lib/img/fondoHomeDesktop.png b/src/lib/img/fondoHomeDesktop.png index 3fed1513d1568852ae7837a8ed2c54e98a1fb5c1..a7984a898b865cc805bdcfccd609e34e7d223012 100644 GIT binary patch literal 555591 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

e}2S;M@tCg;fM` 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%0APC+2itV@jFbDr=0v`2#3jH$;UF zFx6EVr%DfS%A?;ha=*WPQ}D@e$?+s7$mO(`_TU9_HAe6Tc!ryKONuuo4K7+(;Dc}n zF{J$-Xhip??ecc-Wc3u(Gl3(ay!&N#C@x-r-d4J-K5>Mn!WTD%BCL#`;TjSx7qB?7 zIB0lK$*vGAEQsGyR71M<)a7T>@=I`*MgD24S^wK`yL=hO=>VRtV$b0~`13bHZ7e=a zfY9x3wvXiNLRyj)V#1)>-R2DPrdjhw; z8d7eZn8u%fjUmn)jwyUlx}ZUn!NA1aspPCRB{|X@k=+3Ymdz zHKx+OLnb!LOB{pFTQ>ZO3zU-uA#~el>E0(wFjn7nZ+*XmEF+^?N=y2#p&&5cGRGp} zsG9!oD{^1HU`BQ!4brg2M5~S0s+x>-@KU!n7~9|42?}A_H|{V- z_v!il$`#|${A#v72@|e$VPO;erHo5;H3koODDceCgX`ckE7f!q2OU};2&Mo$0!Yls zh*EdssDHJh+p|FJY$m|JN`M-n=b(CWc;)MHViBts-qwue(94yNUUc<2C~9xkr0u z8fShdJH#(?P2N1Fx>NeGZQ%n3l{*g#;%|(%9}lb+!h+RLmbpcSt=d5Q$p5?qAPo+; zTONr{u^@tdGl!sLxF~iWBH}Q}sv(um$B1t@kyylSR@l@K|+ehic?$9A!TIqeP~#=sFee28W^&Z5Drl@ z&8@gFIKGi1e^hIDHt(Aw^UOa{g7UwllM~$(f2pQH>cz&VTZAat$t0V4w~-oBoQXv5 z(geQE9=I7DZQJ#k@rf?iV({7Sp67zIVfPpt2Ak!VWs9QqX`qIpLC8=4Q;em{?0!eM zyTj&$l>0-Gr8$ER9QDswR5@O`2Rsr!g71;iqP^M{3#FQq`R0v z^*D)b$2~X9bbWk1ULFh%MM+DPapYUIJ`XbQk=ZjqxjdN|ZmK1l#!XxLjn->6_w%pv zLw^m_fiIR>ZO=R7g((T9O8M}P71|W+`Nvu``F)j*Lvn8z!pUUDW!ZBHkK{Flywc|u zrkeycVY%X1wfEKhIN;WY#i*ns%KkXD=~?FVx0OhW)EG|Pu@t#Eh`duH7+#<1x^nw} zk0{Wwk?|om?=B_wh-L4eBDnuKrXmcbCif#jpKLB9L?hG))qn}nU8o^5{0uu{;(p6L zhB63P#WIi}trrsIQR5fGP5PZmA7veeykYpwlD*ZUp}=3WSHG{wTA}oYusxRn;@Q^5 zz$`i(qX)es@ciZmThI#*&u)wdJM46#Nzh?lhHnzgUJ_{H1gIB;v>^LWJPsR#|Au_^H;PC8o4JVUoapRWD$lZgoE@Db}$s!;OnTIR9cQV;NkkyM-o*hL#ML=Ig&@6 z!Jda}E>hg!3(GeY#8Z(&WOJ8qVWr|NE(z>|yC~y%YH=|g5_~U|+k@$UFf-L75Zcx5 z^-7ts;Z6^LJj(H%B=bxhCLO|iAlnt#$ye7|JnkEL!lgJe$Bif|64b6&T>iwHFIO1j zS^3l41z_=Ab@?^&(7k`sG4cQ9Y1%^hQmO{n9eRaLS&oI6z?qxOD@4~XkK%~Wb= z1`*ALlA-)7ZiJ$!zrq_Qt?n4g5q7uU>KhaJ)iCS5uc< zZLw0{A8dpHizVXj_>0CILq>Nsxbx;X@6e7g;T2kc#z`!p&|G^H+kSI12B)OXieaia zTAKaySRPx5Iz$NzsgFhGJ~r5y(szinSjyq5uO&>*kywmyA~96=)TG z^x3dUVyBRvv!THABOD|v7U=_QV7p042Man*%-GwnX3h*|QWiI*q-JretF#=EOQo~Y z1HxxPb}!k&(6gN=S*{3|kcL*+=v^qt2Ujzp%B2)lNSzfS&0nYrGW^cdUd&x<jC&L}#mv0Rp9d zjCnQC_X@hpF5msIMZy&QoLxomG#R!>vORYCu+gXAR&Ma~&3ViA_-u3tX(pY{%rt?P z4C&+)Q*agk%Tk~**$^HZDQ1oA@&a$Zav7_(A23(b4uIq{)w8h!RCNjE^Xg5_n_?k! z-dNhBt3C&K((CHI#6cU}x|z;JX<9w$nIB#x{yVP7q_|5Sp#ZCuefY~=^%~y95vsRy z0C5!?Y}Y}OncI$~&=ST1a#Oi9I`Gt>gYQarC-HKz0z8)zJYMbBH3QLB0HyH;@-s7Y zgL|oW_gbN5VXsy1sR)Qo-=(}e4ve#r0IkX>< z?9|KS^wgYeBw2+7eTtSA`U6RC9VcaM!^~;ZhLPB37nneu}MIqw4vr`a|t%PvvfA=j=jlJj{cT-sS$6Wetdy`EQF2 zYWY(LYCnR8@?7FgoJ^T!C*ML!C`m*>mi2sqmHmY<0eEt+TAfnWoTo2&ZlL4qy>cUd zo}uK>A)RCq;KXVZNU#LWF#iFkS)*7qH3j&dkf=DUY&2cRW&_{wb z*OIj$yNj^DjG{xG9e8*f!3gTMfl0f=;Uda{+!dy>J>BVktbC>DT58|L8gA+${XWEO z6t(O&ZiHZSXsf-Ho1TgMR%3`&aPrzZfvT`74eg0HM_hcuea)AF<-`ah=zSN5LMqZx@26_T5qhs)cfy;44OY?Cq<-ck*jBQrL=)V!$POIZkJPc zAH+pWJK;G*fo{m_y-x%D6o|n+sl913;NA+8r6~>K5P{V?=acm->#1H-tl;zD%O+OR z<8Rpito*iz#?Y&cH+*eJRzK39VHsO?{}MHzPs}Qy%*RA;(0B?9*0tTu&Jip9wfEs? zq76=5c^U5(9H)k#Yd<$?J9m=+cndBq#g&E%%LFFDYG7044{Z$pnv;*1f_L+ew@0G< zaWOtsIY+%cO;F1b34+K5Z`-?+2xlNEbPibbx_AbS!Yt3nQiVZ1l&MZn)94x{S1KZsj2~cz z$@%4_R<`d<94%i6AdlwQ2B+k2ze<-v!h}{w6Q}Bd5|MEIB`FY4Y)taO0RJMcoB3WG z@LP4omD~XmU3poRi9yX)+V;q@zfz~>QB%>+t-D@g`j!EW{5O#(A(WlQky_qnAl9|roAO8#*-9($KqwQ0HkXG}0FE|ZS$8}6x zdDh?^7~n62Tzt@#w_~e-dx@>Lq2(%M`QS@t)fqXeln&E{tsdxw;2z_Mh>+5VC0Iu4 z0k|V4PbuXDx%WRu6JKlPX$xfHc~4*SPJ0@C$o5Mz=B?f%%h>hne6F*yorpHCT}ZgM zJ%zLBHeLgxNW$9_#=pK`&~Gcox0er*({^ap6qo>!Q0-7jJu2KyD+O@|MqXi zx-w!Nur%aV+NLy!+~x1Ah_oUr+*y^kKQ@f2pGF}>J202*I(=4%+_qQ}#@bTjKwa{qebK2v72#caY4$&Wtc^Nw$&<0-IHrykC?X$&S_p^e)^41ViyAUKxkWixbO zk6JyjZFvzbVd`@iX)(ibS zn)>#fb#+f9( zA;@-dSCY#)871298^F@F;}!s48#!G3cz3dj>XmsTMIy!Ubeox6LCRBKA++YUHBEmN~B?HD<@qZ7D z;~ryB71!i+ze<1YqqB2J(x?RXcsT->M6?N1lMGs1hc7Rls~^c6#I-GEW-!XE zDR$=5ix3%1l$}6SX zYkDzK_Qt9G5QRTWERdRcACUMm1;g>7yTRot;X!HdiuOM=Vh#mf#H$#fzq;uo0j!J& zoy`SiaDQr4Dp5aT*ieGK$qGY2=m|Fosb`~e)Ob1SSPZIOWRzBJuoz=IIVTY&3^=2z zm9TF0N$n83?(N;TB;yK5aILkAy>yFH94tT2N-GT+%uY@JzlUhd-XsJm-anfGfYzQvw^4hW zg=uE`qc^@v&Khu3Gav{Nbx(tsVMrM@A9Z9BB4_gCZci_<{W)``zMive;%KWbBtV-Z zl6Vycg90Ukn!?;~KEOyRzM~?P`+fa8RBabVw?y% zDvXObdy$1uGyBKR(nhzll-#P3nN(E#tpC1EP_5&IuKmC*)b^Tm?VFFv!9klh-y*4Y z`OteinxRyqtOg={{5F`vNI z!8G!zN*}+sF94-Vo9#ks4NpQsR`lzMy*c5`0ovrivWJ|?Zqw+9m3?X26R%U9 zAhMY2`<^zQ2=0Kgk9aWwW<6r{%Bc?U^(Q`qIss&5`{uGK1fWs-ISUt0#!#tOe`2lB z-=&M-^KE<+k)mYyzFS}xOc3||3e#YeiPJnk^;(6c{+`^UT~3k#H|B*6`eqpqN}|O& z$vZZgzpOz#E%X_hkw5T8;~1pk^7!JA%}G_33F)~5M{s%*KCcSPXQN5_g|=jxBT z^E2?y^`-T}5$q`R{>=SY_Z!S|0<(c$m`+Z4mm7d_94_-SOhWN;b8lTpw4@#T?+ViL`xv^ecj!lcke+lH&5 z^|9}V8hiV+bekDw9KV+Z%E+NcOjwCuW9kqI=o4xG^2RE3cx=ITug;r>%3Dwb%x!xjd(|gT6S49ecdJ(csPOXF8<%TpvD(dzB}P`RBzPC zDDah`Fw~h29iBul+POT_%IXA)L5t>t`hx>}PAe!16pQsT4y2X*xTuUgcVp*VEeE+* z-Gz#PwbSQ9tTF@L58j!QobOq4df>%;ncW}47)N3Pvu~iEyEZ)x{5;U@EoEpEI{DdgQ!GMN+g80|`~os|-jGnGeg(jp=_~6_$s_@z z44VYmox@{^w4S8o;nJaDc|hlttY`PsSFeIkJW@1!S2(d^?6S$iV9MpfeKKj;rnXmN zgK)#4NRyJgRJ6dZ#RK?yyWvb>lqWhd`lue)jjm?;(7mhgctf6>-V7(b4I$tH#BvCA zL9?#9TS<64ku@kJz3}lCMK3KyDSdySMIp&U69RJoSt$7jC9Hi0UUfL9tv_;W561aH$ulDeVP zt9$>tXsm~;W6gSNqo;@@!eff&kRasD^Jb8GfAY9_3F?A~I^DvLTiAgZJc(r7EY@!h zsCcXt!GgHbrk_%;BkNeWyC1U?QD2Pp9|)(a1J=yfjL8coHAG)?e|fx;IVoB>l2Z|C z=O~SQbKD_dXX=2w2pSJe&e@A6_Ln@x*N!{Plp|O#OFK<)=lz#fl3IhrubiG9*U-P# z6C*(g%@{=gjiX5(0C(qQ-socTm7$)0{{$2C9Vq!v4pObC&0Hd9M@5QIPf+%3*sA{4 zhCPyg%L_F7-e;@+(u`@pelbs)c z1T8C#JLM6Vs33=8`75&9^e0KS*lIn(&y37zf!hk}_-Y9c1dpK-)9+D%!;8D@p0}0V0Tc*3L%$VV$LE;qD@!f*BCaR>5+70Nh* zY(T@3l?oof6Boe(^=zu%wu?X9fL_Rsjhj-bbq(D`mM( z954xIfyu;9-G?YO!wq*WC)UtH8z#i}W0(C5(X0ikz!mi?X^M-UapV&@QK_TX?S4L&U8! zeZ=oM28L;)gFn$JC{5poOr*Iof|rPmXPUVP z?|V8>;r&}7j`4g_^E%uCi zq7ikpC=}+X)FZ5@pWzte4H@RS%c-Tt%N>g<&%5^*-piY=8ZbYBUq}4%YU7G|>Un$> ztvZ>|#qVNnT6_wAzfc@mW)$z7mqSrYBZKLwvyK?{Xds=W2S~&VlPnkTW#lFEwMJe2OPH$-0@6D>1I8O{*`I2wAOiG`Xm z^PU|$*WdvC4XC~NZr)P9X9Fy9+iQA$-~NQ*AvkGt3NUtzDVfJ^G_RwrI2iu4xcznb z7j>>0k%sDcrr}jPVfKUBkcWLEr->S<`#ftY)Sos6N&SWbD?bS*9_D($1*rZQq4L>@ z2)710!;jRqxHJhjY?R|2>sdY%g!x(YPVX{(48$M~4@UNMkxQ?a-wN@OgF1lE@7 zedPjUf^*_%I^T0Ml=9B@yEwh#3QC%$g_>x55YC#yMLx^X#w3|10MU*4fF2B5x^I(AF$;sNFUQ0kGn{UAswz9^kv%b5H?DNZDgN0 z@ZIAC#uAkI;LpAR))yFdoA91) zfT;RPvliFD&A_bhIivv(#O?_~ZEovEWur z%91f_;T9spt4`H@WI&Wo{o3bk@2V+PRPfg_(mUSu9`-=n zaWN($o0CLyf$6*-UpxL0#QEonc09hAh43386Vt-#KcoVr>nYx$w4^TvViymj{cW-m z66EQ8Ry$F`hy`ZW^x{qRsP~C#w=izJjc?LS0#}&i_%yHAdzP3S)eZRYXMSm)6DiMK zoHp8rCLIk3*K;W(BORp`#fE#F{x)45!yI+zwFo1|)cmf0KLXjs3kWlig6%$G)i&49 ztd}%+I2rf~J0JsPXlqA&`lE&_>QB4%fgjuh{{Hq>asR_o3XJ83(P{+G?2p+psUvcb zTGxR3CpxkLvQxiO_-5qkq6}u!@Dl=q{T;gaLBGgUwG=s$v<@4pHIsdOdA3QHL`Uik z>83yAZ@L6gp=BIdDq4iro6a05XmxFL107OhFvhoTzq7~rwXAxKFDm(UU-`7$zQG;+ zZz}_Z6_c$czdK5QD|k?L+*;0H-IN{LG%65dozAD<0oYKf$?lQ^XE!Nq&?6!7Vf%oO zk?;ttR0md*x0QyvO9}+OfSgZGv<)h5G69x5obAp#pLeFpM(M?#2&k$uo#vyBqcaDE zQ8^4C2F3={cGDMoCi{~U0A9WWLnd9~44kxql!3R!^IOw(%Xe*AxY=Prt318PY(-t; zzv|{|v1e~Xya{(a-Esk8dF2A{#M@3#|75xkY%%544GItOdwLto9w8=pL%+#y`SxGu z4x`F6Z+_2BrIW&S)@S|E*r2@0)ROKrE)0m2cHm2IHGe2Q2NwjQrAtJ`UmM~fOZMZW z+G)g7;J-DMs2xr{kZb(@&Z$aOc-fq7ib8d>Xu_{0$OKdEgN2f#I=LE;sZgyFH&At%~ti@qip z-4`D2tn$M$)&VUxV~QR~$-tbs1owmq;w()2)x}h4+nqm}EqoLo)>(ot3h9zm2==)H z{Y?(&E}`bSnFsUW&F`}R$*R~QZnz+w>=PSHqt4OBI<_juGSXUX7h(63CNfk&`t4n5 z=yo@pPNnKxE!e)uf?Dd2cS#BwHH(lOYsUNC<(7OzS;zu!i}YHRsA!jQu4tTL|F&F5 zzgGP53m1u71q9fywl*bs%6_}6=BpQ+J6}BhCN9ZGo^v2P-2$mlSp(eQy93Ch;@8rz zOjrw-b*|h2Mv~}o9W--xT`H@lc7?9@?pweT#9Xu$nw0l$A5mlXVzkY%Kk5R*p=R8# zsGlW*q>;;rWXOwt`fl$cr()o|1W|_y0=njH10B_Aho_b7Xyg|@8v@@&ODbR-TWN19 z7qaUh~&&8UmlIUCZEG!YrHA(aWvQ=C=UHFn{y&i!^| zarU(m663p|ICzEzOm;6J2+jt%zfnGd+KxFxD~y42!erQoL2s7&Bb`O|}&biX2QopTdC zABpPF(fN0scB{^qm-ZQ!rHBAv@M`GeV_~%CLa-}okyVp;MSWm=m;wmxJRN=#RTb() z9uHSEV5)i|naO|Rg}>IDzokM2GV7HfxdR7VY9tBW5`R9>=clwJ>}aE}h>6Hne33V` zIeMs)%@N{RD_Tj148QeEI6YgRBe#vAb0OUlVAkw={}!5!>Uiz%d*1Z7P_X}mjp08f zFXRl*5ny*@Fzu;CM2;GW>i`rkqS2^})~E0mPj0JML(!xxJk-Wr1!)<5c;s6hC>%%s zR%09xEA|ms%oi3&S8|VOCo58~p__!N0QXFa2<4rxzrx(_uY~c0Z23y9hj&edx;uqd z9{U+Gyxp17#GXC4wq$CPFaL3M224Q&;zeH3T-KABQ^ap_V17@Lt2Km(y&Q_}R=QKr znLnKeP4bpwFb9N-uH%Ipom4fqlg2uvZUwJJZS;0n6sf*uY4QRB?%g`QhXqf;NoT%o zqr5SWwrT(AaIuxfIU4fV!_QbU; zL1fi^L~P$rDtS^+-w99sjH=vl=1xT+w$fAc5kSc-+%dR-F;$74H@C3ema99m$5xS_ zyJWr@-l^*Kk#Mde`|apOZnfS;k?y)S4bBmp%N3K6^UI{JatG{NP8r5cdj*jz+y0Ls zAg%}&+Ri;(N`QQ~2h16n@t2Q~2L;lAFq4N{ZwlUHd(a&Jb)=%IAd)<+I;_0 zf>k#Cim1mT`=KyD1|IBqqUIoS`B5ih@!UpR80+;8Tky?q{&S)W{-^Yrxd7-l{GW|I z;sg>wfr8pvcvPvJvYO-nO8JsIh-+?UQr4$9v?t5w@I%WEW<41;wXw)Cs=aWBFz*t`Gz4hm264Fi?AjY$ z9_lcTSb_xgL|e8JB!cJD`xuwT9H$+}F;>*y@~F1iNE7*R({CT)t|X$JWuOFjy}K8^bt3l*C8gO%Y)!cFXO!8Ff1UL0PZkTX>OX7v**U*(<;| zdiRkB;b!Tp#uO=z;a5GcSd}7Ctm}80rTLWeuX6svoKO#Bc@LZ>2^NSa@@wVN8xkq1 zpOee7dUl8G(L0hr8t||Dn7C~sBUdLBLT4T8S-36jIE%7wbK&C|9nsPrnVD)-8&wJOtu z=R`)A$8ZphilB8pggfiB-Yj8SnQ_-=`PQ`tAXh7@c})_|+nkE= zLYJOCCjEo00&#q1Om5Nv8`8MH`+AnQNS3Ry(uC*n={fKCdr%6@PzLviy82+T?92Hf z^zX{HBt5lDNlz*FsQ<{n4lK6~8;%J@dG7h;6-(7XG7ihDP$b6GnXg$BJLfIRyC6V#odgKUNTa$-$fp`EkDNS)aRsC+bh z<1`N36UX!)#?M2D`o%Q32LxR&zvsInHr8hsiM7@si!6Zr!Jc0kWUSnnEOyX}lhXM* z48^NIAE1-MncpZ$RG+-rtx1@QbW}uZRt^+Slo9_FU8~58Jx_Qux@`(GP(1UuLKC>| zSaH@`l0!fS#=yW-Q8&rgAjH4&=Tw3gCN zR{i~q+&t+IvXzL^XiIPOn}xZVbwYG)H41hp2iQ<)zamTRRzIpFV7?J#L6@u$(Y;jC zlAc$}EoK|UHJw=dY-cm$(~HcP59=UC*{U*cCi`KplA&zq`R)IPs`98$`t_K=lm>8} z(L;e$NIU&RWiRa%5h_rAF&HYxnKa zDBDaLI$clgCEW)EN2}Xl;V?@KcS8bwtw1{RU0G>x^;%9<&zG|N)xqi1YZ0;Cau-Bc zIA1}ifBJscA7}nCBD*}mn!Vz)kFJmL08zA4F-~0tRccY1@R^nD!r~4tPAUT(oqzh& zyoE0X%bRmy6p0x}q@Y>LGHjm2cB;F)q@BxIcv8zn2m$jt9+qTefRCP3@Dclg_hQgZ(^ls zAfLI2`qJ_X|5Jl!KZvWbLr=Cie?g@RB+3Et`ED5ms+4NXv{_x2fx2doDA?05k&xSk z0S^ha9lJs0AnN~oi_mBR_!NHYMPbB!69s;)8y(A*^_KIUdYAe5`?8iRs+f#^H0S~1}eSYCVv4l$mgromM`u=-tJ6V z2GGk0LAa8M*JgWD!kW3o9p(v9q@D$nq<)8UzGhNR{v{y3J zb=L6>P1NmT%GIkXE6JNQJs3(eA|$YPj2-RFSU=w^z}Vk-JjFO%rIsF4@zsu7)UzY0 zle$L3N(&AbKfujSAPoTdb7CnGkg98)YOjufp0MlIN>6+o4%VT54doeBg!r7EeHSg?_-GJ3Hrdj90ke=hTpxLe>LIg4?{BT;?X zLKCjz-3RA6M$=v4I1d;O(qFo?-FwJIk+#w_QygR)6+Y$6Jg-1EqNn33V~I)oSd>DmdEW4Z0wmWliW>U(2q*u4DtZMTKVk_Vw-JA0K>E261XQZLK2=^nt{vSS~& zZbxoZyo8A=w+Lk|(iDF@gbQx9C$m=pYS=LRzqYyVmzxuOZww5rcf6o`6Xq;447RcH ztW9BL5)_gBaq=c{2VaR41imdN4|gt_f9VtZ?{>+PK5}+9C9`uwB<)*@-@~JR2&w?t zJ6=eP*betrA~A!`Q7cw$n8moX78Xh9%n1#~`?HBJB00wQLLY@MI1`&lHhZo$GR-nI zG`l0~kI!C^b*~}G?QY?Dgn@=H?+r?*I&J(cqXJkJB^1l_2ddo~REN^Fg({dJVM6OL zU&B>@-AK9jCfD{Hyq*XwYpMtx?f(|i%~xAh=!7|C+!?c;6l^X1zNHe3MiH-=1g}Do z^U-(D50ghkS#5VxT$&X*GEVc%f?Cc}V)EIv9w@IyIpHbqFNo@+2TXUee}pr-ifYOy zG`&Y@Fc_}lK=D@Xp*r8QSKquz1`3L~NkSfb-)qXga*vXF!G*5vb=6UY<<$^+r48r(8hV zl!{&w(CrDQZt6DY2)$9qRAKO8u2D0(qNsyw`}tn|aG8tf^zKEbr`)}AE`3(Qv+cSSSI1%i9s6>=ew2!~^e06 z#d-CNQlJgor5t~_lMbY23dv8cp?#pJ{HsIX?KXuAb{-1(R7v-GWfFmUHKt1~0 znxi4cTWwp$A(2F2CLc&OZzD;G$~J=)UH!z}l`kzFMww!I<>gMxU-m1ow#7{-gl)K)S^`<;>DETWeWd!0gxvc9`jZv^w>v( zpAy%QVD~^q)40pdT=1jBwZY=^B<4>oc|$h*B(wId2_}JjwPIQa5+s>z66E2rQ$( z45(FvLq?R%N9y11R{_;3-|FS6`28CA{Z!vxAFpIXrH|ad_MV>$_gfpjLP29P4pUp@ z>CEMeZ?WjS$<{Ie7K0oZfNK9Dmcxd?ZX!2=IgIJbf^P%20ezqozx|Y;Rm>^0X-U2E71puoym9kRRi3z@av82ZKLH$a7(eJ??jF8h{mi2|$qQP2`*^8)9*8F?;9^oBt6 z`mT-4AV&SI;0I_O{5bjU+D2VuK>N~A{Tnh!cmv}$scfnXEd7XdvU9sB^`CPi1>4gu ziAED?yc*G#2qrL#eKo}q2;y4*;Jc`o5VS=5DG^>(qo^W`i=iE6<-ueVX0+}kI*e@^ zFyB?#ECfM?RC4o7i0m(yxn~tUAB9D+N18+ni0I~rPfP|viW*BlVhocWp5CzJL*)Hi zk1K{AB`Nl0RLZ}-)s&c7g7u5-WEMW)<7JMB-4;LKosQ*AS1p{e^kvc(-TPvg%eT!` znW=mG*~Lko96Dmxg%_4Y=Qe-JhnYTb5h8e%fREet_T}-!WRe!O95R*V!_`1aUx2V|D%f>B zI2j3d$SLhoyMv~oE|JH~CWj|<8^~?-kIOT-zhXj(`}K15c+nvFa$KmP&1?U1)RFaL zkzRWnDT@Dc_&#*$J{Y5^pD;rM2l5TY%G!^ag`dC!iI!K! z0jrtwv_-KY?v9O93}5eGo-Lc? zpWpD+b`+oNM&?W21~YmvGzKA*{paHa3K2@-LX`yLoLLb(7Dzn2SE7yWIvTEg)V6j= z390&yo|Cscs|}9W5YsS4&xAL}wRTSfTiN?h_Pl!7H}O=28rA%9z--d+t7G#h)n`Go z3S|Y6`u-DSyZI|+&!LIsk`DiBh@s~H!d`pyJZ*R~@!@2+!M4l$i zZ3YiPG+zv271$u$oORxSOhbw`jCC1pc+$as>oq}DRreF|#puc98R3M-_XTk~$qXk? zS;;kX&t`E%iF85EE{}q-)xP%U_uW=}FS*IhLn*!D6)P{ZRg3l7VIP6h5s&kgH5TiAFQTw!4;ZR=sXF&rJF`lA6yg>^4^C^^ zj$X7@a?qr>WQ`e*uK&JTf|+m%+OX0zWhTeV8%B#uqxXBYe&jEvEEXp0>eOS&%Aq=UzdIsZ;o?jREu39P1A}>v^wWKyh<#P2g;+ zI@iZ0#UScJq;X#D)ZcY!zt5px372%Q z6ZioT_QCDhp#ASxsV@RE=49E5R1HdQ6wTn-md&pe+LiMH-=l_Csy7!{ygq-W%QH0m zpq6%MMZK*yX=T-ChL{$$zu;xB#n?L6KcU1-R|V_&5%2dB=A{rb_o4GlUA@YpV^;YT z9QppeP`E3cdpCwd6d4329SQAR7phT^YZjt+f2U7#^5GHF=UZX1<%_ zM+vuA?stYW_sMrdXT@1Ol84FpF=@8rsmEVj6@KO*^+Tl6ebwks^sb@2?^&2)F5a}Yne zD!BE$xgII{MV18>DaVD?&& z?l3$Pn;(f*n%p41vMO`y@b4VY6CZN$=Rt$OMGFAK=A7Wm>Erf`ABecUMwW#%T18-E zNj-6@(xxr4koMi~b8OutR-LFdA#%YaA>g#O7*8ltcrd4}H>Go1Zbb}Rspfabb**Fc zcXe|%#c79cl-o2B z^i|jg)Gt0sgp`5vT(kc~rnGJo)Pa-AiI1JI?&?EpE6l$Am5}7Q40V~-&)kdF4K)~2 z$S@ZYK1WeE-CHFguqe~V+v)MK*I%5>WpW|6Dte9fyZ6zqcao`H0sVUu^8X?;P9jUFXdcstv5r8NQHg zxZdAxb#_vGr}0wJQ1zq7&s;`&2i(ji%Q`Fgt>kGfA81MK?(5B+d!~l`h5q(^sw5!( zZ#(oNQdr7F$S%U_?VM*W1QbPj@jw-wjP__!+8>2id1?VJHy9)hLD{!Tn_}zmXY&;) zBVbqQv}f$Mprk3{Ra+_t zesJw3z~pjru>8B@#HWwnc54{|x1#;uh}w>ql>xc(L!FnNq=j+b_!%pd$b2O0gc0IFoFNm`x==>oOC#`dWUbii5U$%F^TZ(Ssg z9^Q7qMb&KlCKuya&B#;8+SdJ6#~fw2t5c=zL2uboMxV5gphAzrg8DKyJP>^8a^EUC z`0EJ~_HC+7rA}7*%3b?q>E+@G@@2-;Z-Vy4LzMJdnmSW&waoSw{Wc#=wYih|w=lGr zWzW+ZED2zA?`(#ytZ~kZCX`S`hW*dsUZWVaCW}6d2hPP}wK$lrCEZ7QLIk*zcffhL z7Hw&*ynJk-^~TMDnQkn|VZwf<0xc^lGWaYK9&Kt1DexXoQufx)lRFk=qc0@XA?5~T zrTQPBxbYc{o0R+5Cr|jEufI76CV}ZU$a^-jiF0mfjw_+Xd1_clGKCy&M;+2a?nz+~ zR&TPBpEQ4;Q(K?Z)yGWHcItQTfi*I)W=FEi<-(zjx@E#{o7sz7ZPSt=q#cfAvbZ(5 zpQG6xXVv7n53}eKt7DD7-uP7GMcXFEVlJ<>{jR#kNgBb@e)jO*g_Ho%WXb8!POygbc{lXmhj7eRzCKKrB{8fW?Z)XFTMng3qg=1&x8wJ=ju%&y|D$s6V;hZfNstZ z<}vJ1n9J?vHXFA&_BfUJ04SHCko^30w#9-b=BKEfGTp7A9C3`{9er5i#NhI84#fQy zO=WGoV+PlH#~av#+14)#C&^5MFB%93u-=oyGSUt}M(18@j05}CwV{4FKh0HW4YS>y z=%Z;WQ|n*G26_Bt-f#5SX7L9quX>Qy7HDug+sa%5Jd`JN6i#eN5l|eU5_%2FkqYVv ze?8z!evsV(79;9ud?1(^r=M@Fkfz`l8mc zK85Zx!kJfP((pNYZkQkZl5LL#@BMyPS5Yr>=*`bNul5PUKAFu*C0$>tvu;cw-F!#E zuzBP2##8>isVB%i0^gNxWYe%V9ELtlNz-ltv<1e6zFjLyC|rX1W$LwG^mw9Gx$3O9l09as5^hmWO35u zSL!HVu*Fe;!+}%=p0*~siVycKkQ9^9U4$&nyUNxUqRmk|H7t*kRe4iFj2BiOIn28o z7$*tkd8i=m%(`8slYw5lI)^@u#M3JS4nXGvrTIxf-sDR!9R{^#2H81!UhL7nhbCF! zM=U49+S@#-vDYykd9KsQ%&&5%w&OJ#px1JEvl<%yN9}v}{(zPF(h6zBnzU=#`7*V< zw>)%gw2Sq}65!H?&*IPj@$?PsnJ7!Q6KgWDC$??dwr$(ClL;oaZQHhO+sPZ;?ECF~ z{z7*@T~(_V_#q@H6<*cr<&|>vQPV_VFXf?J0dU&# zI<+HL?p(y4Kxr~|SOehJzG1UuscniuOis@|jGYPNFuZ9-*_0V@;%?2OmbD)zwt8Sq z30GBiSp)THrWz{sJkHgzP0SycZPvE!ES|bb^45ZGp28z;sBk_=U{(fw-yb*-6Oqwn zE>P{7QJugpBDl{@F})}!>iyq*(UX%InnA;`EqnJ+oY>ekmm1RggozanZ{K+9LC8zu zziWd0;l~opR<(lfdAaM}Vw8}Le0(P|f`)?aQkmL$+9TbLHra40DgM*Ex~^DI-2Nhw zqY;b^_pv@zyL%r0N(#l^vFVVpK+%5fzJzQH`@FB7J0G;G5!}k=z`Y1A-92x95vUO~ zzWi1iU89T5)IP}>O`Jp)x2#X!x&1cib(iNgRaHTIbVL2-&TauGs;a4Ex~7$trMd&* z+coq2F*(GssyK&rM&vMg*!y03=B92ILLGJ-+DMPC9-eH?uOn6;*TXMKiBwDBug>gwGEl|0}l+h6t=M zhvssRz=gyWQNWk5xWpg6X}07GQgVu8;VIOK$-?(6|73p4iH<8Y$;naRFGn2NvshGd zmB|M7$iUYOe432CMr%+H_;H@|U~6${K8ZPUeATKnab8+YdaI2GO~eRimJ)hII`wp; z+mdJRsfYM-Gg6)Y-zxqX4WndP8a3Gpcs{b#=hzk;N9wo>2BoK*?YSZE34uY` zXpqB?nsdTTMf=)pmH^BTd?B{`-ze#%4T9m;OpUJe)8+xCDvC7a5^3QV{-E>*?&=E$ zf>sg{ccklCng|0HTXPnjy$6itefb|F-nG+3t?xPvC-^|VaBUo?n2q58;@h>~&%)() z(0?V2sR`72!%f>1Qe(OkMqs&EXG(5$jPmPCJF>qMKCk1njZX2c(yj|Gjn6Wt$nQnw z)co*;L)#idltY|>Ir2(VL0T`4jmc!h=)7pxkEb;95>cR|fxyiDo8fwu8kNh&9SY*a zPYUR>!4{mDiGTvA>m)UZQ>LjaaT-dbnZG%5|Gz@EkX~f|=H9Mt=n%!A#()B&AE*DG z%QW?~scL%Sv&;0D12?YrFX< z<+-D@$E+dGR~7xzK?_uy26OSpUGhO`kCPqMJz3qG9SXb@m_c4gf)pRmUiJuCt~_Nl z|AvY4khfoA?-d3aH6pNN${2J4D?{5c#jJ}MoP(c=W$#81w7;$pzf-8-rSB=xq%JAs z0GDVA@0U1q-qdxJ5E_ zH-JUb3@^xgo)2;F*cri`qyT!HKdrtRN2x8Afhof9{q#@ii&Atgt;bB)qYyWLsM!4i zZ*;Vrnz0m&?GW%C=y<)0ywy?SHRoAgtCfj+(aGWd%?-KmCe(#`fj>37Sy)Bwm-Fod z`ftyHm@QZxE0EbjUzq6=QdHJ2h=?!#z2jsx>=>{85@LBoh&IcP&h70v@JJV!%%O80 zmd#zYIAOKw?B(rfb2mY$LD6M4{^oKuQxpeNnhRZ0SXzN0tVZNplh{e1WpFo!kZ%{C z?h8QJ{szm1t{#y0TR=;5Z&?IO7_<_1$1T$ctFd(^U-=c@rf#9@!@=I2pK+j(nZ96B zM<@Gax;@mMxs8P(u+N*|*A=0M1wYqED|VDQ$=8f~GVsvDE9$FxF@S>(gnEhto;C^x5Ruxf*eQP}#G~n6~=*25K9rJ{tt;O^J zkJ-v9grw_+v}^b`ScBk}y#ZlXCUd#l**t07p)chg_ctjq;uoS&-m!C{-HsA&=w^=g zaFp5B$igR&29XM_V_QsdNpt;TmjQ$7$Wf!Zk<$2pv4N{K3yOfYEoh^$f~q!WLMzq> z<#`547CGp3M&M1zE?Z?PG~}z6bYn$?#pfpb69vySj}A?d3TpR(IZIVwLuGEKu$Xhh zUI53=5{D#S_oD3jn$RZf?rw3bFw}z};tY@(Yc6^cYik$fea3-;x-V&XV8E){ho-^^ z{TAK(y0Y)lF=F%aK!XS^6@lTwgQ%DizW2#SyzN5ukj;mum+0wGt0+T_tgi zQ*pS;wJ%4;2HKo3ms_G4F2+qyczQ%s$K)dm&lBD05&UZ2j;b+a)QJY3ZaP7T`o8cL zu;awkui6wE)pxYrzPLWFpY+C{BVfc2A!g zxThMIHR#3%5Opnmu+h2u@Kn3Ji-ldE(!_^!|9!jt^F;?FO<@E6x2GK2pYq{AK&zZw zc#`rjnjrJ734z*~g*t`%d#nC@zQP*H;^mMU)@x<@!s8v-kUTtop8Vtl5GTfmqAsFR zXN8dx(a3f^Ncha*4N`M|H!zdoXPveo?+?c9}#>cAIhIrpdIqXVCts4crX?nPFa($J6K`>){ z8r(gLJf%TIsZJ^t*5c%q2%+v_v_ZGIH^_w{?=MaYcCd-Uz*&$3NrOq#m3X>$3dGb$ z`9hUhl|PjtWZx}}Z3k2mrM_P-ycS&Z)L=qs@a8PZ6y96I&;N`8O*Zi7mtKrZM6_GJ zEOELTZz3S}kU!fv!8tx0dx~K~URD=5(}AVND^Q0hdMUoqYS@WZV@HMGDvbRrv*`JqeI*?ub1WNA5FK z`&)bc1W>=$(qOke;xD*tK%K7@Zr~I`k z_+qoE)(XUmCyUJD<~3m7o#_(+cx@&6sIx9D)eS|_0YArD20uG`CJ8!CIB6)5*Rh3P z8|7p6D9RUylFz*^!On*L`vG@^mr=;(G{S3P~tOW${e_rV{FX}BoU z?taFdfskV?fuCD-Z(UwqmVrcqc0XqhAW?y1bk_{%6hV`2&NfM+{1z|YgJ!+bQ)DT_ zYXsw#9>HB2HNhxuA6wu0En|gSAD(P{{78$N+VGm3P7PYuv_rvy-F>&hR#2+pBg`>W zd09auEpe|b^C>#TD&3a(eD?vy3?9)S-m9UZY zb+q04l;z3@2J1nRs_gVhka4yEZF@Q3=PzLP6l+_#I47m2CuVzy084DgI@0Plt#^Z3d?&!6%EXL!kgHy)ux!1#NwaU z`xF^oVk$~o?}~<{lNo*yuyCXg4cuPn{L+B=RhMzKMj_4cI-x^B6X@z(PZ3f~GHvQq z$k-FQIQa~WgB)xJyk-l{NMTA$Cd!=RT)0Q!PI#H zcu0y6*{BH9Mhw{o;kiQeW1l>8o)WTY3b8-D&1*8?$Tn72f`1i$M9 z_Q=N<3M)|zllk*m0C*{Q%~_XPq7*T9@k%v>iQ{~-y;v0mj?ViZg2xm3 zGF6o$f4HK6N4WZXg)&p&|N9qh)GFD-bR|iWD;BjmL=NPjw3b>V|RofDr{w3t!6_A8r}Dk@j)@N zeBn5)_KvHCDW}2y)XM|^u4_EX%gKY&?hl7x6V9My$FxU5<=D|Op=pWxzA4Z7@30Bzw(XD%-1uI%EK9zw? zzu<%fb=`-Y6aY?l7Xya0L4U87qH_$8=&#;jTM0SEoR_D7(V3z^bJg{2*8_pZX5B3) zvqG^vERckmE}YMt*OMfVoEe!(x+s&mED7ci3_%NeEprHF&E4sJT8zInE7f>8vz^K; z3{ev`S_?f|r}mt+_abGrz-pId3+wJ)=wEz##fMr5lR+E_7gvn?7G^Od_5)$cRe2tp zF@s)vOnwRD9ow53o~(*BV{yx9t-G|&6K1oi*FYW~1o{wA@eKfZ^M}XEom>k z*t<9DZd!myzzM)BIw4NIH*sRf|A$k+v&PL->qt#&3kwz;7XI|Gaic&O6^s%7WkJV8 zTb6UX&amYQ$)#)QNefbO5__oajcXr#Ph#dD&r8+ zX^J@lFs^+U-s2fW)r!Pn`oiGT9P*CO^iOd{^9S=NE@HjN2=S#J7i%*FKa`rPWE_P6 z$h?FJ2dz#d+P@HvE!Xg&cr(;ZpE6oaO2|IwQfHe}gGl2p-K4MYAn+U@4%t)@x`vTk zEb0GyW5qky(;&S5^1B;H$nr5=?avL@|5T0Hp;dmfry6Ul*+|g=)~5?o7dCi*@)B!8 z(@RNt0o3mJC(X=fM?|${!h*XpolzkPbV+Nri>zmx-QA_e30jBT{`u3w_%+XwmByzF zdwJ4+1f<6+dGseu_rKyilHQbOS706!YEhvC=*l#)m2TedZ9W+YZHEvK`}cNgjK0V~ z(M3U8$&4Lc6hM=tS|i8NT#nNzC-vV7J(*seg1Fcu_~{~?uX|I@A}nrCjt_|S4-$rt zX*Qs52A^g@19qPpynJzm(vXXsEUkS7=XxBdMB=s4>F>E*U{8|NujaxdSQPzM#iy)w zC8XI<-Zj@Cx9rcn$jNo1I;zCA3qCGP_DNw5!=_EL`HX{m*&d+TpG-VihH>~}-;MJB zy{+tCp8FYLY!V{#)3cmM`!?*Y?OF2g(h-{D3e|Ud1)>n!^6YJ;)(NkF5|}YhsIQiq zu2wLW9yc?AY^5cPoKEq|<)GR}S)&c1KYmlxgXI3fdps~TPH<+a{q#rDs-O|64?qid zgk7|X{`@DO3kTrAyYY5f*0{|_#W7VA!DbuK`DYC*&~E|Kh5Z+LYldXbY4$fkF)>e&)xB=C!AbMkYpS@If0twlT61Cem zGA*K7Vsfd1+R6pE=-St_d?7r6Dule{|SXYy7kz$UiG^y^>j>(*Rt%K+|* z@X7oKOWPf$0DMtV9Aymh=qJCgw6X1yomzew-7r}=uD{FW9g5};T#wB)Y(wFPlzk*1 z@@S$;_!$*jiP7UV@7%~3+|?$-UtD@YWGT(r5k)>*OY&o7o*EME{_1YSItYmMdibzs8_?2O@mFp#k{dazVmT|Hb}3RH#OVW5nay{ zVnMO42oXJffY&;8mkUdsF)DV97wZ$IU*q0?TpS8UZ?#jT+4`s?f4$zDw%;ldPZ|-) zkh&Q;75H@lwVKwKr{{}W1$zg<492qIzPa+H?sk8Xv>v~N)!BC!Rhr%M*1`)!mksW$ z0(E-*#vHKcx&ER2tQGunvC+AJpaD@zb>xc~!b@Rna*j zifrpfk4jrDRTe)l>(U_S--}3*TAPacX6;X(xtm57h`9iNq3oL24_z2T)m`#BBM(Oc zK?rLn0S%C;lK?yT7YAd&lfShD2X9f3x8<=eZ1ei;2Xa=L-_WH1SNEqph{H_6gM&xB z7=$NxJ+4%1?+vH@&u;Y=xm?|i#W3EkCW_NZj@wDHL2TMP#;bK4!nDVF4c-#m)X#5! zJSl@a9X|0%!`Q>Gfp0<(q6UX_xRAifPiDVf1hzY;PVJ}R78A%|xrM(nWy^1oI)sG$ zSN8-i^zU};;B)-t^K!e@XN#Pzp`rOQ-JJ!bCX(dvg?f)&iru=+#H;6ROSBxuY z2To(3k-D%XX|n@16+Xyy7=aY=Nq?2=Ym&s~1k4Lp*2{0;+en-Y(v&h+N63#UTI}9n z_g97X=;aNSlS?{k2^e%FwEa3wNfHdQI-x_6m`2b@AWmnj$66 zSyb{;*V%O@%;~(#Cv#v`h=PfGgfw#5%LXf3Kwjbb`1%C!s>#0Ppb$RY6AbK+FVSb{ zd?F#fWx>gG87~;Bd8evBR!rYou!bj0hl>X000jQljf^Lwf~-_UC*vqK$p~GGnq|^^ zOenmSd}e7fLz~VHNl0)>Hq1AT#L4*1Su`tH#StdT>VYJ@U_kSq%4iGnwYnk)BmH0>C27Z)5ieIpYNW^X z-Ivz4UnrYYQaH($IhF6Ah!hmiq$O2(oH1EaRF}#^l2`{s^EN({#T}M`OrB9zLzkkr zaq!Lg5Tlh>|IlkMU&Gjj_P)sz)&v@Ib6t+NOlVnfb83+0PBw*qk?_a~@tSeXjtxLZ z*w*F}i@>!((;llTggT8FqL;XLTv3&@P2IZl5x=l5z|*&N$|_EfVSD!c1q@OBDmCT?FE`BD?s%BGtbCJlY9GtJ@X zvf=8_#mB5c*&Lmoh}MARoRl8Yr1!(~#sT@T6F3+rGS}@I2Y$55E&2K#O#G9EIv0;{ za2w(|I7`L@&VhK1_kqF!$Xm|dv`Zpb{Tb6?{ik?&sSJanXI#`Fo-(&w#lCCxvBFU@ z$)Dpdh`jOC^=<2)2S9t6CJ=rP*Z=AvT5!Q-=SUXTOEaRQRS?9@iI}`02p@@S;)75) z2sOTS?w)mNjd(D5GWF4-rDty7URwL)wm8$ZJG6Fjn1}J+OpVyGvgYK0OP|eu3Cl%-NY{V?SS^-pNpL8q5h5V^ei8!>8kE(7y9R`l0 z_gW#%TEiZ4d&)FDs_EVq4HPHpHlQ)+*)l|3Gs|LT z^2}J92hBRncdPBO{%+uGL>S~ORJWCJj^8OVPXN_!Yuk;wZCoCLu2$HsG!rYjA-?ujNp#E$Ie*8cWx@;EEYud-L9yhSm`SPpl6(x`&d5*I)4{qaQNC1sY|9q zSdhO72(kKV#!VRTHvQT3PLtAe{bO}tA>>SOyBL-VN00QV_R~ogvCTR)oOBn+#5|zP zE7jJ3;BDaSNU?cOZSYs9QL2qz^mUUI@&JL+AytSv@{EAtNN2fF9eAn)QrjNZK|5vm zX1hn_riDU<#38HZhD@d|2#U+wvjtS0MqIhmdiD+q^`5MLL;GgUGbO=A;FjtO(?{*6 zM5If2TjuiP+p+S)}1d9&Jb$R_;Gk~s`SSTwb_AV`VN;9?vj{Mlk_Mj)xWd9 z4&F3hz6^ujI|Th4zyC=NZf4Ta03(e4fWjXrGkN7drPweX86<=jiF6TDS(i6_UJ0AC zcRaQjMG~mhpG~e?mtTct91gHV2$Z$U!r~-6TN&mWb~r4)7Uh~FuPUyd%UYnK%A7VgaG zwnrAizhQ|M_i0;BmjyMe<r{yFr})T-{ZGG2v#tazR>3$39bSvqP6Sf}f1SWoxUM*3~7jNnaFs`&VS z2Towmx>Gn7Kg*r-O{$bh^U$vZepcq@fldpiJh&ReSd3hOVCZI&=HAS11^Zf$6~t;? zqqpmD2Bm3?&wRBQ994^C8-*7?Qj3m4HEytyMOmZT>5WE5+%qH06D+`sZ{c(jGkKy@ z$}I;u^>YP`ozDPBtS}&KtS`2&d_$Um8xJwf-gmt5)OpoP(6pWV(04vMf7-W4zCp7?S6;Aaq_3Pp+p+yGNrwlr@^wDiT&>e0nR1L^hH?%b$Ru&Jt=+!*rtiSE{3O zkBsDLyTr|SD|o__^s9eN__x>$1MPKgUWnkVEPHVRU5*{!pO*{4Zyc*r2+0giG}hmL z{5p{?Qo3WZW&J5?{7O=35xdt5{260MRdh3dsPlR0apk2YXU1;*-(EocNWI<2b zrf9?IXvj;Y#yg<@fZ)5t?fPYr;vy|srzrJ5G!Td@5hU88SLO$lR4ZT}d8W)mC)iG< z9d>+cvxrfhX)*y}Mw@zczcZz{{n%@p7ue~RRY!{6JUQCej<9R=!czTUWB?wGIDw_V z6-D3lkPvB>d`{d8%uenyVNe> zZl)XPpDH|#0xK(gfF@*~*Jp6tTy`Dwb`FDSPt>_`Hzh5PaGUnYWL4+yfCmXC-%#~< zxY}*T!GNMggkz`*nFogbSY;&NedNZ&Zn_V2f6>qg`Xp|;xM%*~!v34HC2z2g*jM!M zNDps7DB-(z-qyiCC&E=7`9gIMmoQ#DPsF=-OXX~)*RaZl%=5bzEsdP<-SBF8NlysLh#j~W)##&x(`C->3Xyq}b^K$0MR1?W-5 z4}4R~5@i`%Z5TS{4+WyE)5-Pv%Uw=GnF#SVYw?<@hATKChcqAaVbG9*d!i8xNa3=44nNa)lLEO8BtC?7-n_=JX#V|C>rZxl zf2g9D9fpuUdErP34tIjSoa*aLpU)*uzb}o_ph~?=BxqRENhqR&72aPZAwB!f%(A+z z#IUA8_KPiKaztIw8W@ilCr9}uD=Jm0VP21yNeGV+T!sS(Bmy4{QCbSNY zY8tgk?bkwr?kxv{$}}QA1G{t$oZSBiH=HRaVrqPS&LvGX$qe%}Yi|StOpR}1Q>0md zgO(>a8}C7AFGK`hvh2CT&$+9xLY4+DU&Jjux1|-D(;KW&v-Kn{Un%e%u~vUaW-Q5p z#+L!6(JX1Xz^Sx?ZT%>+{}y>=39AFL<7RXUE~F3d_ru@11%Ik){qUuVpF-o#rW9vn zvusG6Ce)p{e+M>jdepW?D(m=_8IBC!FyDiX(M-c$CA0?=MthyL$G+j^^h%HNpVgl$ zP>3EcOX{yL%^*KL02gtt_h&Y}&?5J$SlJ;}YU@R38%_BFsfYWl_uXCqG>3*bGILA| zUiRtOaXF062TrbLz8I(bSON5y^4xuS3E^@Zq^v_;+3HYfh|C7cN6|Kf7|t>%WhGii zwCTOMszYm8@Kga&75vOze%F{c!?dz@1=g$-+PNyIy#7JfsRqPOLdb7K%8Rmts%PA* z(~bMMVU%_jClhzQ1ki;CqF+B_2q6U74jwz zgJ|;@y|5-)$o%E7z!HCM=>o(H_^waC=qWNFUzcw5SZHruPk#L= z?kDXIw=sq7%)e;hv_P=^!JV$ZV^zFXZ;s!3Y+)9HO>1x2@$zy#LKBEwiolgPaz_QJ+0m} z_>XoEK}5G~Xh68DRX{BGBM*uuOeqAb`L9cnyt+pbDA*)mza`|)u86#sN`N!Os{HuG zpm#D?S1mdQR0R;hqctwrq6`j9vw13s(EeK?Uk>>nQo@E=rTIN`?_S9KhGm#^gPKEl zv_EC5NMqD#i!)EtrQd4g*;e;U*#mT$Sj4Ego5))^;IvUwnRs<7VG#lkT3TsoPx%YI z?dI!ZZdkK-BUOw}e!k{Sv$CFSK>f*!-~S=4Kbj(X5fFGKgx2XiTo%Z`U|2Yuq1WIVQb{H= zJ_+kYLCVf6B^?5QySvMxjkA&tKV0BW7}|xsb$wef_8DS0)_TKde`|lRZ%6oQTV;Or zStLL|PJtaaZ*Yt+F-xc5Ch3w*B_P!ui5w^SF&r^F5R^?qbq=@_ZSAG!<2Kht4~hM3 zyN$Yb3%)K{qa@0cj3oV7oso_0J~wZ2c^Un)b0g3`;5krl?4&B}%5b^1QtHh^UkKl) zH*s7AG>)1n@nuj_A4Ov*@Nw8Ca^VTBP?-2p?omFl3~P5PXv!EqF(<}$?2`F;I2 zi3+6;x(hfC4DmXyC|~3^dQ`|&ewP{v>kzDZ>-7Y4M2(wl>W8a4&!g>HzXH!B~l&1kHyjnmC4!8tud;ESSYji;&BtU`m-+t-V{2@)E0qGXA5@E<< zng&?z@V+gYnK?ae`?vZl7s?TGN=xCU*q;5|jxf2mTZV5 zvBgd)8BaTtBK8eV?iWYEhdviFSoZr~Fc|&BzBNCJe%+nN*%CfOX3}(#56&|JIDL(! z+&1Mqhs$c4&ttj@L27-(>QNwA=hXCTZ6XWG{9i`%E((3>^n+`x+pivi~Qs8aqn4z%vtyia6j5j z)+dI=L*#pSy(-Z)Hhlh%o`-9OC)iJVb|8_jHlh^Y{+bQKHN+D+6V8H|HXK(G#HF6g zf9r{(G`+94c2aR(J{&pO$vfTn*dZ){Tgh9JyYHaIi$Gc)OAIX{$N7sSPiBI&fYfQP zekL-qm9jMcIT>%^xcmIb(}X*r_gD)`bwsDyoMypZh6iRU~;ft_6yUJ&wO z=F$5`S>r~Oggtb4y=3r(<6_+JDRxSCN?^<7ZauO+S-YE~iG+>#qD>=cE=0xOHkcaj@qG(&_^H7t5;S!?<1=b4sRJGzIZ%`GLPhUK$>|h@=jyS zE7Z;@qz=7;j|%s$$L<1NW^))+X;+g#cb%Qv$-0*pqy51Uq%{F)Zshk5yzfsS3`LzX zL+MvW;K4yYOLGtO_!qP9CSad3px=i8w<3ICI>a>MqPR&GKal9Z4j)cV3f(G1AxkXsK5YSfXN z+ZaiTltYsSc+syAl`A;-+9p^Rvnt_qn7a9>Oow=Ap7J2*w96Ql_^GMG1^d!rzMRiu zXus?3_1b-U>z?-)xKC-aX4idDlq$D^s+Ej2DXZ4)84eo}#-&s&dxaXe>;Tbo(Aaw* zZ?8Fc&Die-z#5#x#_av)>L|5eo$sVeSkcb57oSKj8EJ4d1r)krf8GqBbsP48G!Al{ zt})lqysd;BZKFcFy>H4=kE!SS>)Z@95tC=`gK@Gx0mIAl*wirtHp6)~*2gf}xG`4E zeX#>yItw~My~+}s6d=(-&%=!JJY3(bonTZ|q1N3^8$uuHrvT~N_y1YzE9SJ7EE=-U ze7Z=-MGs2(Tb>^OP+dua5WLrN{yAl6qRdl|C>LJ3SJ!JoAE3JIgmkhW83i-byA5IV z07ehreU|*=uDO&#wq9=bj|(jk1}?;b)xIbSvgA97olDCbh#{%fCer8l^@rWAC$5oy zU4YL=eVr@q*ur%RmoXsI7+?Mg8qRf&AX9ID>YUFlGQh|Z?ubTR4~i7pLLV|2Zv`&B zxnlLEjQ|r9V`HfG@;S*+-`YUuXRf3Fnu^sG)C86Tr?@xQfNEQ~i8Yo0S3TVVk8JKI zj;9K5g>Nw#N4c&PU;Tn7VRkE@Uz(mQ;p_W^P@u5i%fK0r(kh$^1=>wI$T~Fw)JbQ8 zM2pqiSuf7RVwkED%0pYl(ej-5CC#$$*1j^8@NW0~lU&BpWnZ;IqFf&J`YosRab|&q zZK#^594+>XKl*L|j*XT>S7k8sM?O-x>#T00w;IR~>0l5LcJ0k7vhQ}||A6Cm{)%a6 zIJRXIuv2sxUuKiR;vPo6#A${iqr>a6;L##69zc{XU+Tx=4ZzRJ$MP*pvwek)*~TBH zI#&(Oj^hKk<|Jd@Yi(#Xmhv*`1v`h1r=Jg)^>x26=-F~@)}kW*rKLX5vbQI9mnYp{ zsGNN|;Q_`7Hn zmWzs%sy&>u^07r9vu0!0+gl$snCXT(ZTef(l+EicC$y(g`y+j`*cglTJ_iHxIx(*f7onyQ48(9MQl48@P^2-Z(ST_D z^!_h*-X~&ErZq6C2z}sqH`(6jSJH=Q9WyzfiTlUQohu_*;|pnaFV=2Oz}f`01N+DEUM^8DeXkY}!* zWUEi0!B}!ESgX3X4W_a6!S+dj0BJwOv0yQ9{}g{|jd}f$-+(3wd>3 zEd!}7pye8ZNx#^W9|ov1e#*cc&_)f&6Nc{Xv+~AoiEiR2t`Vkcvp%+3;+0}J=Po)k zABs*NUWM{6 z7JY(i&t&epw?v+Kw=-OaE;l3hA-sU?P<`ORFvz81SmnSiF+hk#N;s*s+dG_F!EtlC z)gH)d0KezYB7NN19f3o$wsQCipl05~$eX?P$MqUHMFMrGZ6{ss%bK|#7ZLK+4MP1m z3YwM3&v8M$Mw+8w|UIZ->M%AE6NLuDeb+# zz2E81<_Ho1x!}fc3I0Tbbk7mllPxi-j9P|FBP%Hl0LO~)e1?!Ht5dtBdfek1%t~<7 zgQxw{@Aj(Gyi>Z@P4<(@6n+Sk=kX?dSUGuWrNK(rtq9T?UprC{Zc+X7w;h>AWu%wB z36wn-q0_{Ew>RHJ@O9`?Ry7temBY(A8IS75IHIOaFZn^O>CN86a?UCsn(IsErSTCA zlu5kcuEROVD=5{^Y3PG})HGmRTD@CVOa37X52{rB&Pe?e}8vzV1fkm;O~o9%O^LAMl!T*q2>?TRghC5gpd z^yn8awU;V}9B|*6;)1F6j`UXI>9UyH9R}>>7u+Lg!B(0^guA6Z{;rC4)9hA0NqV7Z zN!lHrvTRSMrd(`o(IJ|?P~?|rR-fhlVRmr1491vtUH?K=?NBXCqGfzlsX3>J_R8Wi z`6=9pbXNhXVkf!FtpaJwL@H4L&db%{WRUfoy*RZ&VqT2$VL1riX_n_M0> zZZp6=|7DepN}TiUvVJ|iM4C0N*)A4-vOL7QKSZh$?>AbTDxqlj%eUd{dTv@ib)2YUnQH^6Gv3>hUxwb+4H~lRRQTQuJc$zwsZd5P_h6XD2uWqvmb9 zah)w57#h=ix9g1cmJJ)wRiWHMdzrEQ+7pCH5#@nF$rCC$)ZOE9N7AGTLh zx;$A>tIkKcL=N6r8PHC)u4VpJq z4M!l~JURy_m|vbByC>}he(K0Cdz}Fq1OF3qi2ppG0M-smw=a%ZFqfxZ-NngYSi+8M z+%9abTcZe)tSs_DRW`DRbxoJmJh)_@3m#o59D7k8CHuHEG-<@851?GJcKe8*V{px>}i0fzA{%9^Q* zTD8;DCEOUB9K6XyWupa~3pi=!_k1#WPff?xja*r1` zO)~F#jX~=7`a}AuRWyI+rJ%8W*UzfU-#3QBth+EX$fS~HTkM$E_o7INH*GYAIZk<9m;V* zV<*w-w{nW^C_(&@g>|gS@zV=q5R1#I7sN0(owbXqj2tOvHxvC=p4CwTdpS|`ZYFv5 zfbF&$1c7(J6?R1A&;e+aD?>rt*PJ$>59S&`b1-k_{ukp?IC!<@E7!cceiJPDKUw#N zuPZeZZzd9?95&0z5{6BYyqJMIExnNpAb-HtGg08|@L^DIsLKm8th_iPaPHW|);1eq zuiJm1w-yGMm%hHZCDZn;n;zIrmVk0L$`DR$@K9Wnp*EF+@3(Ye0(Pbigcm$DcPU64 zS4$H9OjiU|6?m^62>H@89I__~s}XA6hdt}~ zel=1suEAM)tP(f19S?=4WMA4fnny9w~phhdGPM*H=lIKhY(HTCcG$y!frQqX)JR~A&5UCB>pT7$+^#i03ECd>yzm z2guUMSe5Qk_u1DFxLVt^9M=bPAW+MHt6BaOc?x!a+UBbiu91}IlD3u>2+OMF)VyB* zNMVjdk7utK>VfkIFQJY^X-Sky9>AAgp z|L-07VjTpj9`N=A0SEDatV1PPJ|PJ-pg40UHM5%XXGEbY5f?yFw_h&NV;)bJv;8z{ z6wus%p`BpA$W}9#@TZ~sGZY!1kC&sZSVSSx)aF#!u%wnJ66S7St072&tHkNz7M#*F z4Uaqz>fh7OBJ#D~tm`|x)R@(>vu2KJ;H|Dg%vwy8!y7Xt_bY3{78J>@Cg0umGHeNOU2hcD7^)O$3!a*nk0@uIOV60L#ju@Ra)>MW85 zSh2qT&|U4B%nLa=-4$#fV&O?c)!vKiCbJvlL}2v_h(Q5M=PG+3qNHzJa@EF~vdQbeKn((|K%@WUGN1d(Dw!W$0#eWU70}V*K9Q8s_vF%RQoSa<{1}A7!aICLIqtk&i zx5&i=QG+1+y?#^6vG)nS^v~Oj>dt{!`xcKA;Wz7g`3T)W3bK-*gcs8M@F6eSFGhA= zz3{oR{=F*l68gL5f9#z1PX|-vw(~mn;=mdZtQjYK%thnFdc7BZcU3k5UR5!)DsP){ zF5o;r`ijrn|79=uP-rnMzW$iH>wIu?(Tw?geFLP#43ng8PyXs19^+C0Gh>O;k{pf1 z=~|VkH?MF;xN~Rdo_FZ~Mr3*_62*A_Hc@@YS@Cljct@4?wVJa@birK>pL<@O3E)Ip z<^yriZ-yWDc7g0aV3#hQ?01$mH6Nbco>eN(VxrltlVk)Rvz@1S66PutIAbmRZSC7y zsgL(uQ2vsK`eFs$1{}d|gYH{C_%Oify8^XPLTxsOx>P&xMP5@*=?s_hRlhDe?uj-< zxn#e|8z<4t8mS;-W>7Su;eid*Okt&C@`xrecG7RJpKk}xR#fZzTs%Hjup~p8wCj%@ z^BoKs<~EU&VSIpsEMH?_?mhuL{dc zb61L5?xki}_+P3UZHRrvUFl8rA+DYIqP9DfFz+Tn>#^mDXiQhxl2$0 zsgi-^z*uva|H5LFbsgaXrr{=8)4+|=yF2kfKGxJi=vm25l+GC@9`Qm_B3GsXB1yP# zZRD9-DHQ`{o@Gfib1T*x&HThc6d(oR>&je;N+eWn+T3VNcwb8d1}7ySY+usk2gbP3_08HS??dbwa77y10eXeQ_-y18c7@A9Y4P+t883uLP<1 zqwK+>nKxKBO9HL0iik_y8*G=NSz3K4(3IQjePcIix>^4>9Nzy1}qs_ise$qn_`apV~zhKW3 zFUWJz3|Nz=!la!(mm-8%fDYweKRkkq($;hq@*N)PqZAd+H@A?$Z5OikAVn@}@RbB5 z{L=sp`yn(UEJ7e4!S_Sx6E)_SiLi8K*(U2QlL`_F$j z9Y9!YcV4+ed`*eKw*ySew%kMCB%VIk+>CJ{8B-Fnw_LY^>``1v`CjTO< z&d!6XN%%aWf_+zE?8xT?p&RBzU2g{)Eib z;zjY?nsD48=0dua>#xT zF9>vh^3}n{vZnj?19HlB>2gF|(M;D~6suE-=(4l45TeC8Cz)LRrVYAO=LbGKj-$RS zUj>+!Pr(rhl&>=_%c_rB_42C-KWMJ9Ko(D~;^bNjCeh#}Wo}=ApN#Vtu&gENmZ~mx z<(!S;(I)U3cY#jF$I2QbZ4SIN%N)5bxMz8aF0<#x$9>hqs-3^FQQ#X)#I$MU6R?dq8tK_~s$ga7Zkp2n}~JQv9?;F2EZIs&ED;;MiF z*eBlubop<+ef^d4QwjFT>~Z>;)aOdD`(Cc4qY!&vu=*Ez=L5hFpxtw!$X}jVu3|?a zD+?cZ%IHTzgj|pI9)6%(-D2hZo(pS17-yBxk2W8o*HBaue;@Z`CAA|=Rz84`*s>0R z-84lV$QBL?8gFDdW8&3h+j6clyQwEax%7BBzUhm(j7ibhI=sN8+4cQt2M5rZV@lb= zC5Xo_&2Rud=mnp54#wh)6aIV+eMbdz_hDS)+@`jYL?~NF&_&6IXv2s}qqP(bAmql1 zzk~Li&hY;}nB97x9{j*-Fv>f~WTc>f)_!_Vs)<#!xR~T27Pcs`Hi?~g55MXmkxLSJ z^arn`d@J|R?t4+wUke=Kk*@05ngA0Yi@$wIi=iDPxpCEdHA3OD3%+qToMqnCJM{S> z&T`60c3<>+1P7a@NPpNe=(}{QLWt;{)pI z7gEeG5+WK4N{4#qoFUTT&YE?}D;7TD*%Ph(W6el(PdMqjfWzCu6fQq`IO#8_M^O7N zWFXo;@8|#;_5Z0W5mBBp*`+pl8;z-guf27J%aUriX)Rnzo9S+=y-xE_o4BbY(p7T> zLF6LHNi!uLXmSQtdJR6_ew=sRG~37IZp8D2&3(m+WIfW_iYL@8vl0#Ipg~q^W~Cx> zkT4x8lN3d$hmHI-i*RbvYBsprubfYr>PE^PaY?MS5)k)&5tv%BZ zT05aH>tVb^D|54S?zv|pj1*-l-(ihQ$fsHLxieF)NnJBy26|(ZFaedg{kp>q2^50wuIg`u^3t3ksk9Wp z)Mc9n$OVv*v8GyrmlY!X{SZa4WA?{WlusLEK#fhGpk*l}*fBbs1=Da2GG0=|mkH9U z=IY1$OV%&I5mgR=)O@SB`&YoAlBY_F`G$VO2X4^mvR!kI6gsz0=kkN1m)&dgr>sZ- zObeJUxYI@)C!KFBl< zamdC$k{3s}AF|oMss8`sRJp4F+t&a-7$^(NV_nl@_sMjG?+dvRsjH(J_kJM*`40jp z=nzIqwrKNw=)tY?yE-I4-(`5L73&qAY-*qLc9wdLE=Nk7S8B_S#-RTcT9z}?6%b9i zxCn#Z+h$AIM>!%%@u`v}KJ%_rap7U2u5Rb@pz6v|&jDseKfC=NuL1RjRK9bn?LLqs(F2`f`te`(<)rc6v9H9`ANP^zOJ4Avc>u#0T5j!j ztz3466xR1#`x~nlt7X~#FAz#j+jd@Qpk^W+);E}o-9p7ChZWF|_^a3$WYSekgcfl# z{zYG_GS2L8#Ag0GhQ_{nj_1}1$FUgNm6_eYR$Zpu>@W3&d|D_}OQcO&dT9u?`DniQ zRN(NNjH^#aB=M>LVN968u6KGL*ki`^5SV#jr0y*e7-|`-F#aalpZxlGXRmfUmRdF< zS9tW&i;>=&zneoSW)fM3r;gZ83?BJtKQ+FS7Il6jh-JM<`;#h%lQoVT z&ErIk%yMujmF=Hhtf6DG&PP8cC52Ki9%q~Hg`MC9&%MT*wb($$Un+-0wZa$QyW>8) zKuvMYt|4g4A@VUf6Fx1-FkGX~-{QC8kxng$u1m@SpQBWr0jjI_X$&oBo5Jen4HH zzlM2MW39xA68!v$c1sE9cjYB$edM+9rEd%GqU_Vg*F+tLLL*k2+}H0U zM2AMr1P0h{2Vtt3&L5U`3)(%}u!Qj6+tIWZ5-JGK{$F4}V3=!-7&_SLY(S;_-=;O8 z6}+9;j+pi3M{OMAJ#)r;$fU5GoZr2>VoHh$+_5EGe;K|goE&q+c*aQL8i$)Lxg56Z zHI8zpYF8`nFx#E_OhWnPKAZee^7E-pbAl;km4Zf+?W-0{b=NZ2*l@5DKe1Hv2?TcG z38&JoObfkUjX$@fCS|vY?>tzTx!qYkDxcGPpt2}j4-#W$93kr1q2>8PX;Ob0EVT%N2oX_66c`s&PKXSuq@O@ zhSQa&J~XUAHquOR)%KnZyrWhWGQCF029K19IinJ*mIk${UIV0*l8BAaC$_AkE>0Hr zo&bA-G7SV(4-GUT*@lRztDx>?_afV_CQA#$hAo9|4W1$Jo=0qmM#;rLiR6**p(x>| z#NYGmk7-Ip`P*sN7{ml7RWVKo(uHZV* zroN=-8)7xF)dMoAU5PUJ@oQ1$Bw3j^g6+H9zLppWt@sS(MP&C76dgMS@ThDmtOu! zCm~mG-IL&m;&lw<{!VzrYW$Slh%z`g_nle+Je+=*S!tJfuJ>`d98DMMa#-=RuPqRe zcV7FqdJ=F9i7p%6#qkf|22$pfwiTF=m`zMh{`0S7$g3W`7Zw$pxn;AOm$n;pcX6QXQx$b%G!8>}c6))QfGTP%s z4YAa9F~S|ljNY8?$|>uY>4Djlgp(c-#c~v~rn%+~jUcD2x#<#_QUDUMV+dqjOI7@& zimD?=vp*)RU|vc>Wn4gTErB{bLDNLpXkQ{|K@f`GMa+;%v;J1hvsHjKxF1$egepir z7wPt2#gog8UFNCr>9OZXxK|qECB;u*S?p#rcK0N7Moh9=7C%%41fqsX`J>rhPdHuc z)G$q#q<1%RPp(IdktAbGK2zY?-OpIswtmr79oM*exQs#Sc05gjaI>~Y7r#|4x7WiA zQb(Ket&aZQah7R~?d(jM1Mfs%3$_L3#_sXg!hj`ij_7$U9DZx4o!>&lYX-MkAwIyB<4yn66F4k zG2o_BaqvS{+|}MuS(DK^-HMY!xUm}eEjZF${wl`IgL3GCfvedOtOup%fSuK)8=KKA9z zlPE*8?}EMB>+d>T8d)pzL>|tLO$a;ggFw(u>3XYhx@<~N|6De|%sfDhS(h*~RF*|s zP-~5UPczLHh4-y12UKxt<_(L?ooV{$$(KkjL^l(4#&>EOvW(SN3yDNLIIRqS(vYuV zf5n_I3wSA!Ae83#o8O%bvpfZpOhN&q5?KQTf5I)w{M zg?Pb_wjG}5Jp@dPnq4YIbkJ*+8R%DZ=Z&=4e}n`&IM&XNOFe4Nk{>c+YqG>9DQ1pgAGuzG_?)OJR96jp~*;pJshv zpKr?9_DGe6^2{a25K`y46;Qq&TK!0V>xyYKkyJ>}kT_EgB0dqWx4-5wi@wH$s#}L} z_YF*|C3SPMhcJajyKBL(p*w(_q@m$F0^T<{n5|$!w7`2x?pr!2w%~8+U2TzkkQoGS z8s@;63u27}?I|J@v~e4+iVb>Em^lw6w3c1GK$&cUCE1l`8uya^zrgUxWzP1)vvqK( zWq08~Lw1<$F2*a!3_8NLYJ;lHlCcA@0gq zTEcGCCNu61m+DG?ie~69&M#Q|UChZoGmA8$D%+A-0He+!Oc0l5B}e4|9WB(!7Z0@9 zdde1=eKi4KrJ(1-<$Q@#`yA{q=F`g5Hu(y36}aqF*^`Jp@W5aTJ9IkJ8Ej9)Kt5lOWU!c7=Ud<0J7#!xXr%vI-yrML zdKbG?zRegI3|Ymtp+j$@uGd52nN=2;q*&t1lco7IjD#!FJP|}YX=5jnOb3MZ8RD0@ zk)y#llCF&;H#ztm=Es&hA9f3aai=bz1j%TjB=_V7lR>PBOyKR@FRnKCJu-UrdBsb- zlAij^LXHve?N#kJg#AgLcUjW|f~#Wa)SkPq(4UT2u49jxlxY<$JZdfg<~Yt4*Sy31 zH`^IjBq`ydDsp=gCg$P$I&*=61IN!rPKdYMCzT71DOU?}TJ){yaRpX^ATt96;HE{^{O6BOzb;1 zE8D-tsAQDsli&*tIsE>56i0)|qThlP&XO4~iXO=|CwaWIB-&Xy1X#r^$$Jx}885bc z)7{?zYiTAl?n?h{M7_3BKagS)hw$)t0}^o*s^c{zWn#w;k%8jm_|vyD;!C0%_DWbe zofO}9+Ddn_)xw$QOZr-LkBB!tBGRTRt0GQm7{ZQQ!oM|s8lWskmLY}EuJMj#TJ4BN zXo0HI`@(JK%+}Gv_gwFy_=jwV`VfwpH$bx8WW4_1Q)6OZQq4LvXz@Dp=_1bBs)y12 zkh}(GJBvvX$`y(Fl|W3I_h+>XI}*P$x2I)KiOHkm+oEVDX*WQ8+#F`yh%7h7f3dt( zr&QiMTgVRHV}$m$+EXzpHSd50zs)2H&)Ti0m>PJu_=ISb`2MwtBw)P;%A4Yiz8`{` zN&%@X1>>rdXDb;)II21_}DcjYN!;g7j`l|b>($gmV zsl>+wfq$jIeiy9JfAW!XZk=-m;CWz<9kHb&_w0VNlN>IlA^xh*Aee_&OH*WAd_Iqq z%A#Ax!pm5MPXo$NGD4S%4_1j%j%CtW;U`|MMIigv;9|PnbmccKN>J&%_@L62N`!B4 z)Xp)IHPgInf_kwRwsZDAdm zAu=!4z8GsO!65tEw(0aEO(GgSvlVm12K|z(-!txV_uYI=pDbtNMwm9x8BvBOSHp+b zMSBe%#e2%fp0KX8FZ+&uyrO!3s7Mr!m+tE5{@xWVQ~uUNQ?zPgpILkc5A;0%{=E7Z zaVl_k2h3F_)+uUmdWU2~?EUv$u&O$rJ@nE3V8iHTowz}?Ktfcs>Vk{$^@JE#jTVEU z<^r}9Qh_MGXYHUpUsSR`G*q;^Ud#+s%WVKj@=tfqT}UVw zS<2FmQ;Pqy%!*Xc^Kzwp14^+L3hgLZyro_oeJMdnQ(`~uS|FSiq>1QTTffyISE49DqZnogxR zTJ1|Q+pZNv$fSnkrGIhTjjOYeVq+ZB$M+&kV@q=vz=GkUnCQ9f$s2# z`5^}F@&}Dd!@n7XIL>t00%JBuOoYTs*Xu36KasR1}A7D3Nhrwa>B}QbN#|}*b zT{3oHc_ZQA<=Qfl^)nMYqM4M<`Jb}Ql^|~9*ZKmme?Ims@8{$&in9iaRa`w`ql&Mw zu@xcv?TVsD$S(JL$}6K#9M1WD_@t*@l}-2X3Hq9rj*K8QEFpOJJ6v~bNKBzM_bpGq z&^x#GEDcL!2e;7nVtRAI%;?ra$6%FHeAqJAIx*n~0*GZW+Uv-_W=Rr%CktsFtusK=8E#O$V0XYz{|ZNS?WJt39o$3bw8H8m z$3|#hU43-tsG|a~8rFWu@c}5CL?Ygf!rCvj&5H=N?Xpdk`Kdv59Rl%UdDl34?7R=2 z?`cN%!66!PrK2Kv{qc3zGJ7DW#M`u}Ks4X#qc_J)CV9{SQ9ttz`c3LrD@6)UHC@GP zgs$ScE2J3Yw<&u~uY_#yL3MZQ0yI$3XzI(6DKQFf#t^KKRxBKl8ns6vP)fYhQTT!rp0p+BQxS7WM)gg=y0DaO%VbU_|k?hi*fWpvc@%Y z?XdBk2nDc?pXStoM87W~=N{q;d@QXI81u8(b5{5?pBD;WSY*NUSBeb-u7;9ntyb|w zMsN|Mt4O@b)nY=g4JK-;bATd#;~@QowyK)m5`A524vtdxy@~_7(oEVo1GWjZrx};R z!%b*b?Gu5^FZ3OG16zU54)Wlp80|8~XW!yndR` z5SBO9cCWUi{$!oEegVemMyNSW(?+V%SNDWq)lSzP9o|RU@7KJ*9*6An`B7*66oAg6 zwH~sTQ~c|V650n})`)?!o;w9CBv&J9K+Xj7{w=s}qdJkT#~fVh!KO) zd%h9;exyHwemNG%$@n+55g=#XQNGkBMG4gdki+bCgKKf?_=fi^P?1 zuC$Y=klD3w$l7<=>HFY8($l&>Zc`1`&%e@()CbMBQP?bgJ-S5HUV`f17s9Msv}jEWseSc^;K z^@4%5uwSF5TgX!-5@Y7~`HQzg9EiMV#6Czw;a4eYb?|Mvpt4OXVhYN9dylt)SS}98 zig9X8*M zsQtUO1%4?I?eE%i(LaP$C-5b5Y2xS)A|KU4lV7wiB5?ep?|Ng!q+j(16>mE+Io28x z9C}SIOE=3nr>M6+h#f}?s0&&XqR!Vbd)3sd_6B43H(FaqX%`$yA_C*P!hCjYDPOn= zF?u?@nY+nbT*RCM@C|CWTIo((ZIrh_1B-Ie9|O3+lc%TZCj|C}C-wOpwd@^ayxL_K z#bB_6L!6(vF91iU@F*otl_Ydh{gx$kS7apG?z=yaDE*xu*9L*BiC< zjhin6zhWjnJ`3=eo`VAt#`pGh_|rtILYZt}tEzr6M2qm>PykFmC9SRrc_mn_BeLFk z&%!Dy{idg9tc#f?PWx`C6$#~FHaAvT3@DohKcNhYo(+gTV}2B)q!lDq*u@u)P#$^uN z%$D*+OEhtr+hiz4IW;4Tp6MrC{I&BvC#JZSX{Eml%^dmieVJr8FU=tpc^v4^;=KB4 zXI(sOOL6n1t2DM`5raqHh8t<{oZ}A5MJm?qcWJjgN;Wpw`Z*b}^)uVkRU3>hK}m?l zjhw7?e&1*Xco%;Qc5X}&#FgnrpaP}oqoPO+3EQ)^CN7XV=Zjqc3y;#cx`9h?$*h9X zDGF9?wb7eL$6KmoBRD1OlGTu4B3K^I0}1xRcdKgdB4w&Mv&(jNki+Bjkw1UIhZFtL z6|u(1F`&^B13=ClxIMF04!1Ux@XYncI%z}?2=ISbt7merQK@Lx$ZY4BTwJZb^;*kP ze7sQ7JqXl3C^&-e&TMhkQH#V*^yEM`;duxXl5w!yA_NApH#=+>*=oF(l-IS07HydP z#$5M~4SAxIvk>Oye+%PbF5~rmK@8Y|W?=<+ev$=TOWgQqC;}iqr^=wdjwg(?Q>76W zsI1;~>~x-3^zVQq-XK>sm{HQ+%1uwsP4@n>g%Uvp>C=MLGd61|SyhqmjR;yMvu{Gj zAnYDSl$6H+J^VOq{dAq9xurpCC6zW^s(d7~SOh^PZw z&4g#-o~Ojo_SWZHa04Mn&Tw0{cg?T9?|#LdkqoTdhdnwTr=^6JRxyTVI5^Y1x|Qdo zF(h4yZO@EmmClVaoJ}vHtaD%=7j+Zv)nL8X{Ef%GNWy_FkL->E_OG=#$VZ*I^xLld z70d6HLQnuRa3!R4SL}-Rg3J^^g@(EMPrCLh$YNYk6fXIV?}i#F6}{?AUgQLUq1}Y- z%X8eMBJcbBNG$0u+RtOOFb?UAg(lq(#;f$6xt>8_T9SGc!sgVOj|e|!>4GSgU*%X% z1ZV7pF+!rxn!cER5i(|f`w-siOS8lDCr?d{CW6FOJD4;_EtG{@jv&+j@^8~cS^}GE z&ZQRZfx$OJ)7V|qwb?~>VQUW=#FY!pHNf*!qCdR;tZ<~FxOvd|jT&TZe_AV|^F?X9 zUrhIWp4!Sf_P(C$zDTPBT^5GWe(rPIus}g>pHhnZe--!FtjDU^Htq`&i+Ziq$Zg%e z=c?=63-}^ZiQV^N$K?hPvVQ7D18)i~hGg2Hm80t+Km9|%^MvnzX`7QAWx&p{cw{R~ zh2ANN#`IALY?=BH#6s^f2L{1D4a)^y#8s<5*PWH@zdNO1xkY#dz32VG$uB$on~3 zlncVhF@t$5Dg7l&Ay%6N?ELW+xvWxrsqdWo@2v-pZN|A4;crWG?rnpzfveMb-$drS zbjy^Ge=6Co33UL*1SmjH6z22)anm}3jn1=e{H{9pgdMvnWkina~u`AUwNdckGkO-}A_ z!)3QtQ&5A<;^9L4YikQ$@WdxfKLNK5R-R|<I030r#za zfZ8`aVT&t|xHmci&;Zk-V(H5jI^|P)t5tF|X(y2hDw2OfFA!TX`VhSDw66sjbbU)$ zZ91JY!>(OZkRcMiXVYj`{G(cY9ijWQSeq7%Wg7UjJqK;%z5RlyY@2;Yj^L~;BL>#B z8ZmujN_t&5lT2|DMJxc#gc8ju^4}6nKL6*DcXCK^DI!xl+k=%ct#`cEB8&+|)KE)C zgBO{D6Q>`!nYYZEKUd7VP6&afg33%3HavQQA*}UjU{kX%WkZX@yQi9w=Bnnreqpc; zFJ^JTbH5TmqFX^)AKQok>6e4IJVnE|U-g97*#}|5SSRfx7^yOE+S_MQn6*aW)-IEy z8p^AIg2x%>j&ne=AD%9e_@L-BH8qaht4f8cQ3jl_^}rxdLlgQaa%Wi zbQO={@W(XlRFV$bHKXifHmRtxHpy@kG_ROjDs9GuQnbg;sap?BBTq8C1t|%L`h&AF z4LF~)KOQUx%=UhnZAt6yqtrfd(3h!HJk)DZGIPgy*L7H4{20|vl!7%(_)X*D8jnOxBat*6YpJ3q3XeVQtUnggz+^@!6ofY(nKs(%}LK7 z%DSG0S52>?20}-bq&ua_J*y5FEIV+Im%l8XJOX=8NJIzC{IcJH4Td%+K_2>)e}Bf$ zJm}v5zV=^%$et2PQMD_$x|3hCWEC^Wf9J%VwaB(I9~51sbhh{|wL*wn zrf3xn3l%n6rF93tYGc%RXMeSygOb|0Y0BWCmjxW@-Lv~Ppq+tC$8 z=d>~;uSILkec`fgvZR;Uysy|RdNc3vA?6hOr?*kgjfvi4n06}}m)q&k_l29*Tz0zY z*7HcDizP+fUY?Yw%6NRtnfH7QTC{F#h@~1H_015#>mTsC3uMejmNcrIQO|GZu$sD9 znQo3U_{2o%_B+lwEoO2Lt$qFN-caAoU-Oe{Q&d*0XV z{e9!zaIGDSHw&DgEh1Io0PO%EQ_&UklWQ&=*}udcqfcatJYOn8mqDT~3<^&7VTynz6oTEmQH^84q_p`;_M zI)~%;ukB||&}fWC>DbanIqruys9ZnyUaui6UVd5bpHUL|JsWUh@?npcNp8DiTCtZs zUd^M<;imH=4|>7R|0!^Keo_ZB6^)9?NmH%lSX64N5#r9#3BJB7Q0q5>Y$O}GggYJC zXqz@0LdeSjBrR9ZQ)`cu?hh+Su>PuNcNcgZc%(Ts7u?I;isV`bkLVYY+f2;J7LIF& z*`Z0HUGQoRmDRP$p+i0_F<84SQ*z)3110n}_ud+t#gdASgvg3JL&fi?F}{8F9GGCc zlX#Yp+`{*bv23KdFh9*hkI03f4~4UOFh8+^(@UKkWB_V^*I)O}ILxBelKEmWQ@(j|%2Ql3U2A4QW7%wx{v!3wae+cO(EXYmxx% z`Xt6aO{~KMdoD?kBem1!-=NP|hsYvse8tZH4pqOX*O>p55O7KgZHdh0_M_PX2?6F6 zJ!(KoJat$XJoCyoJe6B$Df;CRyd zhP8aDVsEsbpo(7#?(OuA^N_E<4T%Z9o1_GDle{xalQtpCeM6ycLH>inj-znRWckGNuC!LR~sP#W^PmUsm-(khc$5X-wwXd;qDfVx%Hn!m_7cFgwFGlZEbM^*fUxpbxXp#B0 zN}5Bi1;bGy1HKWoAU#Th6UgUJgj~Q-9=b?(_k0Z=;@?EhN1ak^cnVLFcm)|YT>r@` z7hz|Cr1;ti3#Yv&j?-b$kE+=ddzRmgDp2Ttku$&xYaEdcMxrHKU`-cB%(=p&Y82N= zlkSf1y^#fcANrJ&N)KmZ`~l(fR5Jvf(uzy2gKcbUgN3i<93!$bxqoY=MkKR-eVyLo zLRXu4N!8DKxx$+O-Q`hU&F0dE!Rj>$D@)#drnXRzv;gN&ASz z`5|omwu{Zd6hpe(Pql{`8r1u~DgZib-H#Hq#&!$4G{A`#8<+I;{>^2MoNSRUAaY{kdA##Ih6{2Pb4;OI%3_)RLJHKuFy2Tj`V9*MvHBqd*Dvs$g08w1+MdZYCT(Tp306c(IP0*xyj%}_NtF;PS1@&mugA3d{3ueHJY1;p+d zZIxzo?{UwoYfIAfHf~AqAbE?Hqj@eGdF31cTqZPN5gSk|YAJ_l%8eg!ze3V`qYBDI znZID$tAElV+Di+>mFl<3d2i&ycT$Mh;#C>o4*D!xZjS0Tz@>tfoAvDY^n%*HU7KA% zZxH=ppx$*^tHuyse>q^P01k_TX>>kV4UyM{Am#zz-!^AIK&(utdBAIPY1*)aRp@yv zzVRqDRU3qKmAGUSUy+=K9bM(0y>7vzoI%(PdZA|W?sWFV?;9ndbA(i2;#ulJp>+#| z5OzgE;>G5&6RAI`k( zxNZ;jQ3V5wMb$QaAXFQu(hy@53hruURdAA0fXx8a0cOJb#sGfv)W|uVmXiayk)WE+IH-Q5UFUrjd*1d&*~FD@DigyjDFi z88g|WF58+kgbz8+3s8a1QXfrtQfTvDL<|>U?7bG9=}g1Rw?6;G@5AyAnxPwjqCtcI zXuC|aI4D8#%ztgXblb)wq~n*4xiC~b<@Js_vRi7v(0AE z@XtzhvQ35Ft3Esa8;>1`qX%5ok?f4ADVf5dCI;9;H1whBJtaipVA`$P>RakPNH34X zZ_UjrEkxgJN`K_q=D)XUkLrKbVfmSNAQw&@qxKQ3fCaYT9w!i9U9(l>0HTn3+uZX# zRnqjFQC+$;z>&e#p01`^Ol zqRLW^Jp#xDF%*@85{kYGGG;JCkGVM~*352Ol?t~7nCYHMf8~n$vf0R z?>A`NGn9bd`U`+<|Ih1MTz^3yxH#lYHpWFl6UzzTf!sMIRG3MP$KJe2tnK80Kbt zRC)4UcK^|mfij4{Ih3)EZLlCzC^i~7xdo5GY4g5tc1HXawhxGq zvER~eC#T;S4^CG8z6V-T;L6KkJIMTqf7kLJ3e}Z9U+tt`a`s^h;k>>RHLNvY~j zL#di!!^;hR{Sw4B|-8Umz!6({rYaq-pmXkznnZtJ`i zAU+qQIlU#yByM~Im4yX}3s=5+J2tnN<6=KBA8y0|&lq#8m zdFoh#W^rn*`Z3K`KNtmCAS8Bb=!IKKfzt3 z5>U)no^Hr3izdD2M6N(3LeF6Qot0#e#Fw<#0}bP&|7DL1Tro2L1>X;%kxi-dT*Z@Z z&Pw7lLwXXP%zhMJEaFzJbS}q&Qu{^30Yr~fxfgKwW~JC2QyFglxU?OwUZuIi<+*v1 zk{~00euLP1H30;k%LExTp&9Pwri(+&rlzFp8HMtaU)`}Jf7hi(rB=6#$ah{5bDzc#;>mA zGh+{B0+g=uVlq)O6|R35kHRe}Bl-@9o;<0Ei)xon-$0>+xWid(z;{`+nq)O<{pu+5 zxmy-F@V{MFgrWV0kOJenCfGi6H04HYgC?Jycjr6uExI%$Z4@1O8?H~u!@WrKTn4X} zl_~!MiV9>+#?ChrdNs0>=d(}UPsjSANqvEF7HMeP81llck6^`kuW4h#M+V zk3jFe^g#GGyji6G9IU?|2kpy9DfBlDi}TWXL;o~D#=e$WMdBiM4;4Xd3E~%JwrfZz zm3t6keq~Zwf33sPHFjYr?KNv$YKgK;luXt?XZQ4)14EB;x3Wf(Ai;w+ zKlGC~ROB6Wf9n^d(>pLgj>YZx-+eS_{)ktDXxVM$n?t}x?-F0KMN6hPw2V7)~xni|$XvV3nn{Eq3QECWFv=hEzAZ|~! z?;&vN4~y62^>2dcscZw%4PR7wAS_yhdEh4R5C?@S9sEc$jqWzA0pGpr!6ldp6<(Jm ztAG~sgx`-a-jvN5AP?`t(vrP1p7vqO2{u5z=7%1eopmG1wv7_uwE=s(NR>6-6E>AS zdf<`pcK2!&p}o4tYx|b(lMmr6_*d&4r^TkqJaJ)m1k&v@e2b5pb?v{LA?Y=$0XiYD z!Tga0zRxXw2Bstp`?>MAev3nO@sWDnLXja)uUxal6EmPZHNm{~=SpX>nyKY@X!|MP2g=e@&Zmt9ly|-`E^< zK&0xq3mZ~JDMdl&OIcFx73jpci6(jQ(W?VB= zTIaFtBUTq<%&zO>W83;b(gX5PtKe;DcQ<4EQ`V#-_<3vl7IQjIQ>HAyM|^9!Rp$G& z;ESp}Vnz-9!_-~F{dHo!lCkPAX*2%DNB>w1kd*FJmj)Vl-cg81=i2C&GN5i)OE;1J zhE)V~95Ubxg7H(u_~wAS{U#iVeZqauB8xuOR)OVpYUu%W170)VlCvTnuujBF0nrus zLl0$hA0X2$pRsKQ`TStef2FeL@nqz|o9n{g0$UO@>89#VFL$k>vz+v0;VBX8F(2Wm zd0hTrx~$o)qI~@LkE`M!J`<}+aZEI^$CC;Bs)47a;)IXezo){1jhfts_asDti>ri0hIqKyAj zc_!FF)@^^5a`}|>Ah!VKu{w2d=J?N+WBxbrH9%)5eHDpMXy_vi;qh1-0#t+x$~0dk z#mLi)#FI*DHZZPuK*N)rg%=CH=hN<4!bq!ID}`WpppzuSHZ1aJol?u15eNn$Y|R?w zQ3$!OQKsa`twz}lm!0S@_XhI=mCOEdmh|A{j!$!c^M}d!AqAgH-FJab^e>+1^-kb1=q@A7Z>Uj5cAe z)U1KorENluk^%0%Flm&1A{2S|Fs&v0U7`YyK7GE4MA4<*3j_0*eFh>nthjAdx!E>q zLK*VrwjvH!sz}Hxl-g;gwt90+#0m`ngL*ek`j|V+%M&%8?H5>^`KYH^XZzD@sS_f_ zO}^$n1HaS=vZ6mF#O_jHe)MX%Dr=(U*yP8Wm_qGIcLOVT6!>))dWznn5?2eWy(2{> zf|cCF$0PAG#s_Bq&#=+a*N0#8IsdZindkVgzfa-~@wZp(E(dX1ELjH$M7UJNWv|%p z96hTSnj3>mwJ1Jm8MUjh8h+dIGl)Gi^w#0iS zzH+rBCu%bdXV;|BS7-aJdO1G&*DmZ5Q*EpsYF0F5AM?DkH4nAkp!=A6=nv_YlMVM8 z7r!<(*XJJ-jZc|}mV0{pI^8<2qQ$;gawmJON7V~5<1^zZN7v)wH#s`|EzXS3+q|0# z{Lmfb`sR7NmT!=f9xEpY*FIcSxvh~+b&!~?$R+HUGuZ)4<_n5a_v-!JTHLaB;D0Nb zo2OmLV)VauZyq^Q=0#MD)IC!aLEP7KmTX(c0!Be-OLOgYw;EIGnpKoVbM${O*;Sr7 zB(>nhO^+-?wJX5k_j;Nv3u{4XG5zy_0S^KP%?1lmzcyAsUp!Nx;q0Y-%B;!qDsaQn zYUO?Noz|?gi-0^ePiC61hG11xG~|!{Jr!b7oK1!~TI6B?ZVwbwN-6I<$lu5_BD?0G z^fpeUgc~J>xpIp=OOMe1$6S8=d+#Qjve50o>i|k1iCK^}()I}Tnt*l7Q$-VAULHKG z*^r7aDJ%|mytc}tBIP{=~naBm*rn@Jj#GDqoP7k6*%UmpA$I#)31Ug~6jIi!~ z2m~ZeFKT^1tGG!~b;GgnjbD96DNXG;D++FfL~FI%c-st&9r3z~Er!<{jgtwqZ+L2v zx&d=puseIL`{|iI8e@GJ#Nc2k9OeJ($gldy)<+5gKBG(R*B>VSr{Htf2ydIc6y7qG zHP&6JL!!y_)r()+MLs+Ml9w^TdipKETiIodu?@;hNtbVfw7es6c>IkmHATP3l8y)t z=*~NK*<}^t;8A7QK7K2dTZIm6(c8J-wGjsZhrbdj{O}h;LkYkyU_u-i`cSXS=Gi}; z;t>R_Ux9s$MEGph46f+5aL{b&|KsT!*z@Y5Z5uUgY}>XQ+qP|^v28TAZKFwJy|HcE zyze=;-}wdm*=w)8)|_Jw^hu3);^bB$o_EDqs$+5FDnO%oHnTdNUTH@{Dj!RE(f{o3 zUHou_8@MMlVZALsp3M$g?d33zSACqYP~-|+h&Af@*7$6&dlXpv$fA7{4x09XQ?VlH z@}}9;BNd#f2l+#4yB28vOoG5Id}ngHvs7&Kj$?yllcokG+WJ z$L#zABRKF7)q1W+V_nD-|N`OwpU>AVKmQu=^y>mWkV+KSa#OS9hf_# zZF^5mOn9Nwe@v&GoAgYbR_X?FuNP9jD)W9E1z`Mno_?@=A(SQc#jpEW)=biyCQQfK zuaAJ>_MdK&AJ>UVEYbiGNAkw&4jbZ+JqB1jbcF_KNpl*f^>64OE&aiQ7sqai9L<+Fb8j#G?z(d2)hiN>ro}O7wHF#GC!}2hTK1&AU}{QiO(wVUT1C@Qr!RaATKXkz zRpI6+wD@Ks+dJZ|j~jmYX3)mU7=!S}T2C39H_;t``X0Su+qRI;SJy@l%iKZ_@7Aq{ z7cM^C8{RY(`cB8{Cz)uLS1NtqKFC2fe7GvBws}~mA;ia{t%9u>irgEekC@e+e9`1iFgI&X?|%TpSxcpfy)5p^_GuR7G<)evduA)2<$f#4 z4)UhYy7NrY>Oa1WKpA#UcS+Z(|AXEPRIUO_{Kg3|hklWN5s_*0 zSwHb8t{^N9HRvgvJ;+=;%?jy|W7@SPd*N+kr{ACs+#l$V)eT=w{Q4X0X(Ou?jKFC- zd`dcYBeKhpzv{}6(?1ezg0|b7Fs)+yuF-6ef9F$eL8U|V3t`0QrAwWMN3n~dr1N?1 zdp+a55QgrM`0JcvmuNK|;S`)nzmlH$MjLPckpiziC>c%RH4(D)c4Jm55QzUdVPmgY zH{MBb%WHM&LXr?OU~0;|TT#@&CIWp}oxSTLLwv_Sr^%qs^28qrW$-?^f4vxR*TqoE zon`U)yA>c}OETbo)}~P#9?vysrcKZTH&92@93oMAGqVrQ!VLL?LBX6sf7@IbZQNHz zDyjy~dd4eOc)%f%Y>;KOEC1d@R?T)P;=MrRsbX`L*RTFTyti8XPn?fRr?}BiV1xCO z_wMidz83}>Gc*HB#x4CnkJUEFWc^L5uMrq!$xvrZ@s5m>2$7#AFx-!UdV1=kFnVN_ znooTpss{Wudlt{aINU?R5hwhsu8u>#?DhTCQUVNWjIt@arM6kQi#QQmF{A_K{4!*fkpHv&qU*6~DscRco_!7NX^f z8cz7vR7JetmX-%q3ioW=l{!{b1lpPc6JLfFGlL|aJj~|*v~8oMcg6QCruxkPMO(2m z^Of+|X3gZw-Wbl1@2KcAX9G81gFm-@@X?#VSdGGU3&h5UDUcbIC-vnw`h^UaPEpa& z7taLBO(^w`TEC8#AtQar26xD|zSTK!IFsxGP>K^CEkw!E1KLFHsgP$b$085NqlO{9 zN!+3Okn3(FjSA%+H;@q)<1Zj&C!2P`tJ)OP?oH@cx_4OE8+^okCXquR0s$czltmefBTGGbXqit{?aMRqsBK+lSfNs8Rg87 zgd07ywGz*ER^a&)yV-R_bBKX5*Q8tkl#aR{U@KL6luzN%_;Je;)4!$fvycowMf8Gg zq0pqwVlB|NDYRB!$ly}8cP{$2V?C7=n8uBOP#TtX?+!L&p-nB}Kx7+i`Yo*$3GY;R z8yDxKD~+CRRv(TN%&*GiMFH*rT}xaNZrs`I^r&`JLd%j;UmwS1WtB;TXWk83pzU=P@65R9^7LRUv5oV&cdoXj#Wf9{qU9#5^Tl$n8A#RjC4_jJikl%%d@ z$+JQVY&}i)PNYZjWA?Zto`p!v0yI{W#z!?wp!t((SAi!#xwkw6gHu8o$Gvv-3pd=7 z7BvY<1OeDnhx;@=K?v<>m}8ay3wFl;Uq46rXU?WO^!Y&$o>24)*$bYbH+#WI&HCYb zs(^HVeg^Ka75j#AlI4IW0WytT5QcR@GYD_7p}qp>_nvSh#B^W5YTr zK^N|!?lR{|F7kbx>HCaZ( z@r!bD(W^W|yGMx}OS=uuOxMor!8*8*<&nM`*DXhLDFcdhzdaAuL~pc(#*st8xO~)) zwSpEMfq2z*&azBdDhXqrxYn77?8T`=0%MM>%%;qgAq|20q~%FplQ#e?t{%F!_q3?} za4aAb!(YaV8i;5d10r*O46l+!d(^lU>su%wDSw7uK zp5b=)%(D0JOOL(Eh)Nt&&C~w+9qxM{btF5$8md`ep7RoBE3OBKis!H@^<3pFe?!9) zQNdmd`%rot|9n(`wYorBoLZ&o^Iv==O-9j2=uvB4o3)MsW9IV?a>_=3F|@{RKDLN7 zrtpo4Zb1umHFg%n?7m}yw}jY}a6iH((s#kpg+5*}x7eU(>zT^N$;va;i&dxWu(O+s zn{+sKXl}o5;+V3_yNU>h`KlazSufOteNla>rdTu+Wx=r*Y1WdKN%>H^Z9eh3f{NyX`u_6bzqr340 z)J#Z1UkN%v5sF`27)^mCb?y%BuoJ9V3(*^IX2X}LXOd+DDy;@7Bj2Z>@GenZ@3Z*roJS; zYmkMdc8o{mTTjkpA}!{sx@Ma!_bn$FMJ)17eSo>GhqbNO)di)N(lQ)IR&m#{zCN|AHk3{%>J_;z-f!B~Em+Lq0gFspGAz z10+S%O&Aobk(%uGyc2EqV#0^e4%^G>VBXTY7kC5tpnX^uKlv4u(K|yZp~C9J8LEnF z09nQFw?qex#}pw!jON*%i0GY%Hj4nHi0hu`2gqHy zdvB=ftO%T!p0Q775b@a5DLs|zF(?0Lm$<;2Md0-OCxkA@3@i6R{q@^fv+kv{%i~J=5U0^z>U1z6Kixi`>EL=m=KYl5= zG()2i%9g0w(PRNzo3s{UOTudRCe~(^R%x#GlumUTrOP|(^uyyJZkQ09E1X{A1vo4b zX3_wI;MXc?yHede{jc*3O2EGWJo1;IL(}_SCRWnd{c;ohhEhLglit9~zBTkxKxnh# z%G(lJqNXDEq4dr1J#0rVd6*v-(aoH6pVAznG=ni^_S)5PVV+DR}jMwIfVu(wxI_$LLT zFuHHdrVu#~(R<3$sH>5d5w!w#^*Y*GPjH^cw{ivoD(ixck9&kX0Su5R>p?LAX@QGw zi1e=ga2$tH`fM2S-AiK+KLT9qz>UK|)n3|Xx7uUoO7p})_brVp9(mkZ*BU1si6~sV zFqD|!o>#cD3SW(Ktpou^ghNS*^J{d6w;%?Wdl}xw*Yu@}o++Js#Bnkte6?>|F^@V$ zpWjgSS*Q}89hc3=S&wM^j5?JH9-Lo^wfvMf75@Q^93X2yqY-lEGRVSS@t$^^k_%ja+=4u!*n5iFRu&oWa%p6Cz{mV- z0Nh!n;*3l68+N^OL~XJ3?7d99aicj=uSs|W!de3slkJ9P`Rt_?`t(<74ddMQTu|nT z9^AdGG~-xl<(jlQ7p_`Zw~lFLKG*z@Bj0X1tbC6+?m6t&^Y!6-@z0P1eOUKwll=G; zUWuAFu6>8%He^MiHUfo5CZ)c~OCz3RYOCC4t@*YH`RfGRJAr=424XP$6fokp$c(% zdP*T*K0D%?;*+?yTu}HwMn(olhVp-DeBY-e%#ZK>X@*EIgMEH+eCfUm8<^^%ZJ^ft z1WN=&^M0!JD|aUW>LQJtQsDM1S0AOA1M(LVJ9Omd&GGGyVch-qX5aSk7R73C-FDMO zjib=9=XZSwsrw|E+vOczufBrwe5A>^BQn~w+}srSh5hh)uL~aB+L&ahBkg4{oR9DS0m;=@zqNHj;kX_7?sIy-j`Fu$0yHa;P;Qh z>6y6_@3aF38PELr;0zyVi+s?nWF^dN>4oyUSy zp2vLaYq`slddrJtx7Q`b!$fUVnW-0+v>Zbamo0e76(!9ku~QIWx$id&@*~%k$0?VT z$HRSqgc%Jgkr-TFk=TNPt?bjpv*9Pj82qxaJg?-|Xsrn%aG33@&Dt$IA(df_+LF{h zYD1=zhVzf z4GP?ANBK*z0$%Os7R^we{3%{deezlk|22e2%T$Ls%TW#*@9DJ87sJq?9=u&KP|wr9S3p$ZG>_ezTtqWXy?+DG+!h_=q@*)GMwW82OEGvTks}zdQ*s-8i{q~pIH-O zBa+T`xW#(HxCU`@kG7yTymkk)X0lM66{j^T>KP)V%iT@cfDP~T1v z#2*}+KDk4tM!{NuwW_G%#Z@773k=sd!tK`yr66VW*yK+6Zbsjjt=b$$p?kueDjZ&6*B` zW~Z{mHz-5{P98+=Y(v}i6b!5Q6TE6B|0mgpXO&77Q$%_6^d0lKLAT)ICr^@_Ih3#1JJQOCz z-dZVIDytC87ApMBX6Y!iF-g2ReS(k;^h8>>=mRO4Wvhfd(W&%!cn3$;Qs!)dwWy|A{r$Y@RN+}6??qOE;glH1f8T(OlVy)gS_U>0q&47x2&XKIZ|I@JBqyayZu0iA|z_b z;!nZ#JPcA3BWJ@z4-&4z$jn~rgf^d!QSGzltsJST?Y~M9LhjPCARDNF&Youy-7@!) z8ejC=^rx_=zc37_jW3w$??rg7gtHrB!GI*~Uf{MM_>Qg5x)$a6HZ^zkt->#f*5zM` zu;JfXwG!L6y>w*f_dXOjO+8C@s|<68g_B^3H9ixk0WlE($4J(wEj(YbvQ0cv*)e7` zW`^X))He}@&g>Oez?Poo!rrgh2)@NXBs!vIoeABn)0Y33VWF17>~3#Ql0E$3*WUjT z7`*8R?I0r(r-nzp&mKxZcb215^_^K3k6T*H30PSpwxUe0`PrQPDW{p`Q?G4#1(Oh> z2yNXwJvjLJ=K!v@potHXz-%+AKvAxaKK|SG5ahLDEA@?v-?2J9HDtHWvqP|5uXjo@_5GF{ zYN9SdE@&OaVJnWkeR#${Y#QRp@po&w-lF|OmhF(wU()E)~ zr)Vcq{vC@bVexsnpzTck@Q*I61`q^R0B^B zA*f1=s9+;i3Avm;nv-#7m0}?tDn5J+75&)Lo^iISuRRj&obQFTx9ntQ+tXJOI$#MsKg6EGjG|NRXCFAudD5W!{ z#w|sF!SN1$Kr~fnt)|DGtSRgaZMxV6P+;);+M9|SdBZfY5mm04=*xuIWpoTwQgVXS z&XLT8DxdipO~l2$#~(0ArH@P^bZQ|~$O zx&>aL3up(vm-98-Qn)wz4!zv-$>pIiIIDR2{CUsYqg2P3a{Tm+dwTeqYpynU$)77~tC8q>O(NYR!sgRFq%DN1Htsh!WoOg>jaqdZ+ zFRZ7zDM-J_uKOP)3_!!#)N2JU(|>0@jGZQ7t;j}n+1={tIAh;vtqJ`K-ArQmCw%xV zmL{gTPB7&H1(!LY8j%xsURIB*?($s+CPS11n8|szKXlqroJW zD6ylkzd3FmWiHh!nDPrP#D^eghXbU=CO{+<83|?)i~m)YTEydm3S}}ZXx)2ht6^I9 z<)Q6!XcTQw=DffyT;Va|xY1Szr0f1s1HAt;wrF1MfCU27tYwq&z}bg=>4%t&xR^lc zD_4Stokz7QMMixb)dL@|v`R3=c*#E!gNKd?1Z$dUFu=5vS%5cMnlOLQcsD1FI)OV1 zRp8zz==4Dc?1eV>_%9$EhXxbAE}yw>jx3r5kXZXiR&FH`%v*@43ku~)b@jQ69~nB^ z4QMjC)Taq)>$qcKnsB+))`5UBjT(`u-k%C3OfMlJr9+Rco)i1+AU6A)Mqs^mWOesp z%i2>nRtmJS$6J@Y!jS~Ywib-u)y?7LPP(Ra_X!tzmBf?379e|Lqc^G)O=!38X|UhX z2Sc;ZN0Q*7N9d-1L}vmzKYFwYW<=$A@Q)k04$h96^n$)*%@U!k7*QRc{TWl{EeCPW zCn)Y#5yO|8iOf4h$N55g3E088xq)BiI#_g@=aGMsCwS8iu-GimbxnX=`Aas$-6Z*` zkGiuQ9G+@2KJ+G5Sb*tn37Qo2|f2XstsD8YNcJ4ySul=RDv{@_$NKN7(1C6n#+! zDW856!+maC<`DIilQx50_-}Na%M)&e;kWG$YK@7!*RobFxVf2}q-I8IMye_IRl%&6 zkPOuhja%xK`CG*K7v;Dl8j|m`e-;>wsK8A1;x3>iptCPH6P_v4PMZE`T!1ij3F_ZF z!p16Txc$f@pC_GI3=A&O^MTne<0}E?;YLY`(#&TT{yQ>%2T=Pw1}i6f)(Wt-CM37iYsC& zt5;G!#CDM>-u%6sXRa+rS_6@HFD=WG%C)Rg;zZ*e>7P0uH8!|g#S$rXT>8!3m$BAzcVm|_+?CQL#Dcg$* zEyshwF{M8rX#{QM^yqn5;Ju&l5!p>;1oJ zEeyNg0*2|mKRpli@ln;;J)A+*5iyK$##azpfXnR*U&4ww7kbybs&BQu)mz?2LGRoR z<>^t%o?%YVXSP@Z9_*3ah_gq|Ty0m#f=j{Irp-@}oaj$a@W8}Y$zdf)XJon~(%OQ@zxp^KE~|2mN$Jz4CkT>w}Eo)`@^8UUSY{b(a8d)VuC? z8)UI^6jpu@zrE5;aw) zQMr34Vi?s?GsUpsM6Q;lfLIh~r&WxNvo@cI2NKDaGUrO5VZIfRpRPDZ2mK=xp?i;P zJRxMnSm_kMy*@WNxyIG`ZE=LjZqxbfhiA~7V449tLos)IV%MMQNN(T4{_AQ3^D;SW zaMort`fCZ~uS6i{1TAoTh-4{p`6oQ_vC8_tF5DX{E5A#cNmzj^PU^4S@A$oX?LP0^ zzQ!C_XUN1IxLnRn`-uyt$jx82XbPi_w49c~`P%kn7snB2dJzKfyNCU1F@@I?b`1+U zy$Dj@ry5Nhf;@8?H<7K5I};>)MI;V*+1cPwRSu{-#bVFq1a6&)p%ksxl*jn*{2eq|I2PPQpC@5^>b1 zmZ}qBOW)5yFy9Z(YlK<&duh$yrZAAKtLN#(Kil^4Xr3ruYcqCjf}O-!tOS_9@IA`J z9hl-ZM+PV4{S3z%UuS<952Wq??;%skcq^v=(kmk*>=+0yYQ+B*!pP`DzpxQ?g$`{dUsL6C*0Vu2fvVnGN9xe5G0Xb8yQd0ZSYH5 z8WI{iTpVJKsDlzUmns31B`x-~$;kXHJmS+_WUKD3V^jl8veY#7J7-_gTad~}bH4~b z3kKYG#=%*$d5MvrO=RmIwUubEMyoid46}>6uxFv(EuXw=lqq)E&f8w#JzPq}xgV0W z!j>%fxP2d-+C)VBScDWNBH?F$ME(JWFEeudk5e2pZU=+xCC}NM4e~xfI3el3>jooW zC&D>fh{NlHNZOD=*RYL(Ue+7eq!XmrliWq|>___79PaYrSpci!PQ2-XgUE~b{KRF&sR{0y{JM#P3Qu|2KJ(Ow*TTbko6!H2Mzd9Z^0k z(A$=ZD0LjON7_fVn;mR*`FCr%Ik*p9*xbqlX;@cR+@`ltu8Ftw6w}PtwhnaPn1W^) zm(1x{u`pODHnaQ7jqvmCk}Of&_X9 za;OTmuEt>;chF*ko2yKUUngOpY{jr5Q`-iA9vl5E)0Ngcj~K8AL&Y?*z^)Hf{9qht z&E?Qa|Nq6<&7VJZA%w~CJ?an2y5v2%`**+lP7Rhd43l?LzwIS@ZNeJ!Uv@5CAfa=xG1#jl)7xe=uSn-^2~BHPwpRrTVm29{@gassdoC&&`>DW@R60hG z$SlUA#TC8<7Y6go(;{yZ^~B6&-s0TPnl+hD+6tWjXn;*IP4DZ2C7!I&59>3LF82>8 zx-cj|E7s--1IVCZ-Z@-+m{%O#mzAZUX>fm6dvJ~!gv_2ni+(@(u1%g7SIP9um>ZZP z#%44r@rQUEU)`xgHfe3AUMe}2p@p{hL`C>Va1C$jj;o*i3juL%rnfa0ogAE8rjI8q z`TW=O`L|cF*?K!hCv`02^i=LT+F7PXWNw#D z7eV>vq_^{>0Ssw01iu&a#zS$zUSm$f+H%hKwPT?F-A9(hyWagdgd!id}|0kB%90z*~=WdLGagGvC#SgNrLl)Gi!0 z#m`1_B7?_4Fs_yz&JG}dlXp8-glC2aoR@g)jR>uQNf?+p*PLBo~E4$%UB2JHR1SEws%uzrl z_gP>@aTg{Wx2h}%F%FYbIB#sc)T})&OpI3$r$}z1cL;Wv2M~bfNwHD`oDnA@wE4bD zhF|nZ-K}-F_E1F}c<@Ss49~P~^-o}B3!%-BteNs8~^RrUBm2Kr;AfT?4^A7sOjYL6S-Q|24XkkkD zIWn7o(SC&cH&|~4wSkuZ@f;+x_e|Gdn>Nl9d9|&Tt0H8 z2{=%x#88K&4UQgc=FCLPN!C5>**072JEP>GKB{x1J;cFh936-Z*h4zg!dOx7mZd52gOi14g>~n*++-tt!In1m$LWmcRQ;^8JTle6Kf1 zoAi5WPjd1(Ul>PP6reifJ!kQ^60w)L3Ru+9FMfUWwn_jH zMn=wR&{4JRY$`s=ma4S5(AS5L`9y{TMrjdHC6d#9O+YMpTil7QtsyU+A1YZ+R?1c( zE@Z(#PZ;$hPH8{^hAn604omuJ{su2OD$hzqsmscr0X&&c(eHHW!FlztA4AC0^ya=W zj00J6CMxpJn?|Yo=urVil!)Vr>j91md>{~t?&A~?z`I71zezN;0i9>0;QDVzi`)ya z;e<#qVbJ#R2Mn2*P3Ff%$Onwfng!FkfYKCRqn!H zTaK9Q*+qkVi{+?&AQ&J^=ZRlgb`D%+v23ncHd!P2zD0BsQ^6J_ngp1PUmvzm z5Z}2zf=0EK4kFdrva^6IBIbAQ30_sJ|5N`f7y(|_!{X1PXGKgHRZ%HkYzj6%P2fvf zcfBeRTXKthF7y)+m;|%j+ zvJW(VOv4+Qw7mM+7DvAFAy6iUE_YbL6itaTak|OhrZT$8Dwo9V4fOyAFhq4edo?@> zV+MyZz)DHL(4!TR)x~J_AZ)NfXpMCl2+FzmLO}{tSNYftk@T!|*!TBbX@b5+#hPGL(s%Mi8W%S-sE8huY$a>vp!0{XQug>S{fS;8~?AHaZ z%R;uCyT}w-X{98W*9kUUzXT;G!ws$wcW3YmKUaOAj)fGHJjw7xXXUAgU_C$I0dO}v zYnjxp`7R`RLq@&>^8tyw>9n*Z)G;!4uo^?hIMG!lW1EX z)k*SS!#(v4XNSh4UG}GvVkloBgvR0Q%OGCpR+*Kx5-Wm*{n#7S; z;P6)e60I5bSI< z&s=Y6GwT1bQPvT8H<=A{({ABO=eS03p=SxwL_R?!e8lm-I!<4@U#`Ssoe3zM#n|p( zh_#$=u~ZIff}3m&GxIL2;f(l{IZ&dEAK`xd#pI*xEaYIM9$n#Gn~Cj{2%LM0fYnS3 zOP9{fi1$j4sUa4yE=0t-aF4~jq(@q1Z2hX~U{B40CHtH$7jIpQ*HKZrajT4}`Na;= z#*ju6sN9USfueCaVpH4N{PA=Y$C%dTI|7bVjacBOaC<} z$umv8NKjj=1ywKEq-w{jlodz7-@SPNU#M%*BtL{$L2k!vAE z%$?vNLJ02zZ^z9x8XVXxdSxL6Dh!mqsjI^)V*%b(>BRNPEMqvCwVMEN1H5~5MxD1rQh}n9#hAB z!S&-xiR$PpjLvjW}HQ+k5d4a z2kw0r?5T&g#fvc;p*aAb+m{zmh1|}8S5>Bg&CrKaNOEv8Wb6uOuk&Dsf|eTo@rR?x z45DI3*oW(VBY;C7v9kycA;-5g<}U}ZgDaK(g}jJ3}KQN z>_#&X-5PX8-<8^3{V4u2i_VF&X0*^6DeG-n$cedb|wqvO-o;jFBEVutT?YC2mS z!84rMbEy)oF7@us*f8j+Iep}PJbo~MM!Ds%VoSdXBmng@%KHb(XZzW|jd?)ekhD7b zyc8uoqAPOZ5bhx{b8V*ANDmEIZxoja$j-t z)UosPr8b^~841D1* z22Huj;kt4<$eXOWV45$ks0RF=T3O9M`RRi&kXZQ2Ri5gg8TH6x_mBmJnq#c!9V}!)2#0Wpy}67<$)MWqaF#or}+8_N{!ow)o;)+_GH|3S@yN z(96lr=fO5$vlS8GDib4n+$vA<&W^-i+ic#>1 z#95DFurTX&H-&l%@0m2mKairR29hwzEb>9f&Q>UONQ@x7l5sAUEmxDlK+%3|le*Nq z)M#;x-TgZHCccXmfY~4^bv%=o^$>&1=iAvT{SR8yL7<^F-zB3urDq{0CTt%`rK==e z7fzIu_xIhOJ`z>ylwbzgxeG)4tFbyiW@7(~`^MYD$hXi<8x8{-nus1o7FTuLtWuHP z#CdCd#m#o(Q9FGe&iQY}87o>F5Ro!!_|k^9=>PhB>SeACfb0sQUa{foVk~^sOZh1$0Es;vWYmEeq-uT}V>FT=xz>HNWx!XXn`iFN9boO#5I|(O~e^_00c>{VsZzXs`qxVVt zn1<#EIaMCytGbU@>W zjniO3lA4$aSF7-5$mv>5MUkEwXi7Nm>*x4*ly6B(@e*!tluiLOIX=T6JXd^(+rsvKTSGIiOAqBL1gbOmk(kMA4m8T``T;@)2X_&< zQD=R7OA?(tAhM6>Mgfl0YP_+dV<}}t$qA?ds97p99#7n%j z?59VQ4~J8jzq#uu75IZ(?GEIY*C}D{-y}djv*$zbS8NRpiGOK^L*=v!cVK-?fNB$Q zop?KqMWZA>5#@?gKGbkj_KJHKB#kLqG^U`4uV;LR*gxF3H#0%vj{O@XDoD3b0lpAa zji2HTKS&i>PQ`jFdz4|LwrD#a5s0_D6r-lYawCoe;De7mDhsXye9(xg{OiR?dx9-e z3{K~?`bpJ?b%iHM+KzA^pM;J}XOlXuFCcG;Z@ec1@P`MhtQH+vCp!gMI?3KT>j5m2 zUm7B)KsNaf&2syp0Jm^1;$!s1>gWX>$fPtvh2_e3gSs84F*D8ww-GB_;{7y224?f- zho;5BV45&T-bkY_1%zTC8dVyIuebg9g9zrsNg*?L3Zp9Oors$?Z<^^xsAHl!+lDHwZ0XHNVEft zbmLZI1!G6oZN&)DDBDM}-|vikV3+|->}3$hnlDv)3l_o5E5fWRUz8$-5SCoGH`&QH zkm0OMU49d8o8XyA2Kv9dD3%5q^Q`IuxEQ!=q&VHJQMHl(7S@9xu-USJfic6M7|C}X~Z{Wrw z(a1Ghusbn$Q;;+_&V)}e*ur=`#uJ&j=FH@#I^|f|!`yi3a!;J$GVlAkVC|t+mT2fC zKlDl&N9@CeG78Im2(^=%B!~kEnbv2JyF}*<;*P{ooa&*Ap5}|p{v8Kb=ey#F|IL07 z0*#QMl{*rfbv;PhdeX?O@bewxsRJ?>?-@>@VI?@-Qn^S|i93;%K>3S*N{c)QVuN8m z`|l9gFY;GRWO2=Kj87+73an=11u50lS#r;e{7!x-tj4C zBA{R(gV?f#rQsNSnmgh2AP*>*{Sdy09aI(_J^pUkL+A|_z#00g1nXT9P_c^j_Y5yK zbZSv42TWCUcaYZA3dmNQ?4k}O+U!Trd1vJ11);|k|H4C_N0AFXha#^|A>W)vIlIf# zAqnfYv**-N$${oDgQ?em5Id!va1ZBZQ!)}No*Z4thrbjl!lI(k%#W%HF5&Bt5xOdd z#r&u!7q#LN+{eAC6%lZr5tOa>moIhKN3!gs>7U%+@DZSElaQV=_0)aVKw$!Kq%(V| zB>f(;mOP%hdl|_Ae0lhdNSUe)TJQ45*HlPeA3lu4IsGMv#VK#HGHDFQ%3J1~P5yd! zaQx67U?~AS~sA;umHrD=?zdc~7m=ANAzt9+jSch&`GB+!mAoy-t(nZfgqQ0Xh% zqqnE84?wQY&D29>SV}F8lfnPv>7D;F;l6O;%*nQG+pfv>RFiGHCfmkTlWp5|XWO>! zczWOSea=6yf7qXmwXSu6n1qmU6E}qztgC0WXDdDc)5)EOK-+gi>w{XH>ffHddfoZr z?Y94yu8zem8$6x`GK=@Kh zV-1ypS9b7lSICn{koe2}nmI;1vq|>wtT8DOAkcfWBCMb-f&?k#waahfT2@{~=uKNK z)67Y{gnQvg2*&jp1@ek3dN1_Vq*P7uWwU8vNS7!&bjYQR!a(?&3QjFwE4Z=Qtv;+@ zxyPJ&MA3)9J9r3Na^TlN(91k%_y2zN?NCSZC7B^DhjNLgw`b{T_S(G?$Hf4lIRv0_hE_~Gicru3wV*ac)uMkibv!zr^oL2)} z?fYW;p|Qw6IvZJWefvMyN2=b|f+%?q+^iR4`FDKm81q@lDtj8=b`)}+LATrrB5Fgw-3ugw4 zBf{FqfpIhZ+4A0!j$QmY*9ld6PTm=>b@>7xzHxOIUiXHx=K(R9BpVRMyzZ-74V;e3kEbHIQ+% z7_uJv8Tc!v;vF{{YFiI}=xl-CY#r-PyHeqV+d1`1?alMUQt&C(i**059)W#UdpV0< zgURx(@iK$SWf^)yBS}f6@-Vk4BfYV@>SB582Mg-!L?y{h=*_s_bX17}zClQG2pwEJ z30=Y0zCr>_vnEAZsUu3@)cBe^DZX8g(HjJ+?a4>7>tOdRymh4JbTPmm=H_!mj1?r= z7_xf>Ej;R{S_^T)0|Cr)$OM;A$5{Gt16H!j;XT`$-NOPg4t*(FTt$I@HyLt`IRmQ) z`UC>q&TyppD_!mCxNDI}EzGG7F)PLw)o#B?YsO53Iy zoB{>x#{>x);eu4#(Lzu#?}>f0dOTh|#Ubq-jWT%)}EtK@7yZr|a%L@$^9U zIMLBk?S0I1zz67SV?|lOc;q`mGtSWHu>${ko~huy#m2%oFICc-KvG3vm_SIEVFgFP zLgIY$X}J|zax|J$9mp(^2`2)Gd~kYG-CYR|`sm22#%;J%Jc!s7edu-qzAW^~bgG2kkCCY>8C zFi*V=iaLI9b+0I-+Fus-0}@OJCUj{~G?)p7G&Mb0Z|wNg;iLSlU^0w0=giVp&-4~? z^0QoWl#$DZ1exJdf>-DEZucCN3*xePQG5<}H`9ItmaCol1Uq@WTNa%{HC7#(&_mL2 z_%e&C0w}Ofl(UZohwHG`d++&rS5v~tx~P)ulZsdBrDho!kL~*Y<0ZU$dFeI};&%Z2 zk8nT(b#5_Qa86*Kx4DV8i7y)^%*R?^i-s{B7#^o^s{zB5HELnPTvKUH{&wRhp%3nP z>fqx_Gp$_X`Cqg_yF*kAod51hjfoQ6T~8@s_u{@gdRHNO&K{hokg*Yay9d-`QB*5} z_-FmJ{4W1Rq!T4Qs`Fi2I~JQZ*Ua;Gy6CrvOi2LfSxnIU$MP2z8Z%& zM}7m+ES(!>;ZxfGO$IDey67(#SRHu!P;lxTUx{L++sD;JRD7le#hoj~wgsNr&Xus` zTkRvmQdX&fr|agG$hP^N_Owkzw>0yH-#%|MAB4S&aNIKYO}}*%3<`;2?#lcRLXLVE z3L8dFx%tAZWKTXvBT$=auaY1qQ9&W9cQ+|4{(tMl?qC}#)VRfc@DZ5)*TAFxAdkID zFcm>nmuPT4Ug=T{(Vrike>be_2T;vq8~gkMphWS_s3M&UcC~lHtTDulnmAos@h59# z$I$!qzP@p>6gYs%ZelCcnfv0}mXuGGwn>EG%+1uY&VShAaJ)VxZIP=DQ*_qiK%M6e zH`64`s(NqkxqFt_AET}hf<37aenewL3M&b23OP**A9)<>Gi6d=#mrfo1GXs|UDdht zl;THu$8?y!P4$(|JozJkrSY8}n+CAv7xt3s@RP{y28Xqx z$jt1;sBnmTZ}CD#aEjmN<9CgV8iddo9dp@!DGn^Er-WPf`~8hyj4Sgv{)dS-uO?QY z*0yPD&h+_XB1v{X1TO+dn6I{Sa@c5slQG&)thz{FbhxW*akW=B-&-1YJ6Iorj`b$}S8*jsSz3yEXoT-&wXUeT>R*i1! z7x+L|^(8AZ=S25B{Po;CD(=MkTHq%CByNq|F0$Soslm9+~qT#F(0|YwqEQ z>p;&LZHXI=%(wvIxA_8!;Fp#E6r*JdtNVEOA(B<173mTU8tNI zW?=Pz39K9kB*muyA{t{S@qJJF2`C;o0c zpc#r)(lZ24ero%i)^(}K(td|>{Qt$E9Sm6^ZmQsB-K;mgXnKZ49_VY{H0oyDGpBe7 z#s}JM9{OK%x-nAHVy#~@XT~@>>FZh7_1ZS+aJa6yM?K(8xr(PfyFOP`<3~D{AH+?5 zm`j#=7BaPE|jx7`c zMnV_rAlnZmLuZCzuzSd_eKb*q5Y(SetDtiGb+Qw#?yB0))^7GwQbqoec35NZ$~4j3&fK4ET4JUXq&FvutCUvt4x z7sno1!?J3A;5@59DcK^z*jPAjE|`mXG`u&l)-}uP9~)F1lNa0K!G;mrkAEaaO$&U3 zrYs$)RG7P}vRL!wk{v(hsF!c%OxEa+^g}*mLt_0Q;N_0VJ}ZgePrrp?IB#I2r@P$* zZ;N>W82x5dpL<7%VNa?NoUkk0i!!RLgh!WvqBF?JT1ZnoID?N6k7}E2c87@Y{MSsq z;O=2>S%F}9i&GHQm1>pwpSPe8K12NZp^W?HmxB=zY}Q1aFM3r)bA#0Zw<1qDKlh6qyv&=NnVr1{?Ahg$smCd1_s^WHhJp@v!GUvFosz z^Wc69Y{Q^QKK-BPY(AVhgcixL%0pKYJgjw0DEB{9bsq=EFuPB1fB~$j6z$1b_C{F* z$ijuQ|9SR{K3Jx`eAQd^j1hNdXZZ6^fsGVuQA$uG(@p$}f*5?$?KFAQWjMY>i*WHq zAW#;UyFy<5@T?i0kd%`aQSwt;b=+~p@W@T*l^@Z(4po_Hza*`0*zyTCKg3x;l^?5P zHbh<`#a>h38D_pnf?|kp*FMnRHhkhG!u(ZFa9pWfJh6dml1wdRhRr+#rB(7 zhUIWcR0j>Qr4;_n(K08C%|4_-P~o$=sR5orqJ}7TuR87l59=;caIDutyT&}}AfeMkAdV4rHOh4iz{?|%W}dxQaOo+&YlT%cclLXXd=M9&~Eo%mXTw3FaI zi34W`Y0BuoIUIZhsv)jsEkQ`ktZNV;@OU|YlxS0&$<8SJaIZN|*x_GC+ln*8ySkqx zK4Z^9AdA!HFV;YjhqWMu3>_#_Ft|4&{T}&5@3skB^O{!R7+p#lY!3%G{2uFXR z2gGGe9#*V6EY->1+MS&TvZ{-^FVtR7jrY6%+6i=bEA5<`*a~kTc#^_{EhkNn1x1@+ zk6W0$DcMNzO#7xV!?mZoB6vquM1hrpeNmAt$33FUK}XitybCpTl$FaS@*{GUuodUN{&aNo`H3Zuu?qz zasy@UCJ+MRlfrJ&EL)gk!6U5UR~lh?zmSc-VZ)xV)*~iG<~E-<_|Hb}VBBXm+iWm8 z8JjYy9mROGjlmIP+Is8X49o5t`F9A1hB|PL6#4Exj*E&4GX@WhPK7JhiiVi8UD!)4 z0&BJ9;!l#s-cNn(vl6xMUEDZwdxj%Csr0#s>QUQqU5t;r&eAeF6g{Y1lpZc_SpK zuD(8czBDPH43ETtcfKIa{=|n(V^?ixx_GN!Ww@`ki6vJt1356s%JFR!MS;34Z}1{i z`NgJUhCg1HyV@%XB}`9sv0Oab0oo?l^ful~oPt8!)oWyFi(c2Co!2+WpmZX)_yPs= zrhf#Qfq;ce9+);Ni&D{Xb6Q#v`J3+~EBwpo34KpodJI_=?o5qv29j|CjiTQUI9s8Y zh`9nB{&gjgC?~J^m*}yQ{aZSJTz|oo%?nN?z4$0wEk(duH2L$)pvs5}akw-(j}4pQ zLwrF7=lwVO5TO^g=w~2v>Q}1+B!bK2(4L&{EKyR#Hy>88S)g^e(qwkI1+_gH2fr3v zA#nqL;*U*C80DZTbRtg2E(*AGCxpmd9>^;1b`Hb-Qe}-3th8$xWp`q+%tk4ST7#M4 zpM9!g=(opCVA%Js>k1#Yp+vM~gz07LJtKF!_pM6_`f3ocTgC?lrY`at2_c~bzzKl<_U*P+-Lf0O%x)c8P=8qQLuqJTPtkAVpbaV9T4fImAw=S~YeQra}MwxK| zRpD4TEGi?E7&TWBSSDgXhOz;QgxAFmodPZ+uEGNZZ1=4U|8Vm z-PT6BIc3{|73LmE;JMvhR8kDC2ivyTY&AqpKJP>$B}-B(k{1u#k(<7#C| z)+zN`rH=Kpz z;%ArpZA!O&+@rtw)J$7eVVuv0gRaG-_9rE(7jgcn8Ur1PBq!EUQ-1;$C;yk-;yt8; zm@Z!t&TE9qoIEd|n*GVDs*Fv`+m?N`@nyh8Tk%XdNP0L+5$~U3tA!b+{3#QhLjL0s ztI}BAX;_QnBuhy3kBo9eFe@D1YqomN6?_*)fsOd)$m5bzc(+`MNB)m;s844Pe;CoN zvt(1@J~WcNiq{P1hWV_i&u6BpMKYg8K@i0XFMGpk5eE*s(v;}K%p^RpP2QE_4bn91 z9`94=Qi73Jz@#`&s{a9O7aFtcr8Asuji^QcEEUAa55Km)JH${ z54JgCKagPPv3JA)xBv+X5(0uZ1DE=hT$#&znMY$1DaXS!&!9ec4S~9Bi`^Ajp~3UP z5&Ly~>g$oGf!5EaY7nf1?Q4`U+JhKEc$Zht?MD+e;4zG)#0xjCq*If9+7`b zcyc2^XB zwcRZoP1Ma}#yYr?+l;zrsL~0uCPQL$tZAP_t5~{z!^5RHM|!@URjnwwQa1a(%s_Fe zE{DCr0xZbP+ z(?Ji$(o=e0kJ7}9?Mnn?JHn(vpX~heWQuL?vEY*R`FcWVr{uG8v8|_Sl-&C`a+C&p zrRkF=79YLP9{s@6k#-aRkGtAuHVq;opzB+0^yQX#oMl;Y3^`b5>xh!o14=|v0Kh^~ zCzn?4p@2ElQf^O1oB9~@Q)BCvxc#A1Ar-lDTfVRsWc9mX@k<#seeCeD4iaqUUv85} zuV^bWx;4l}5P3j#Zc7fEbxir-Fn>g*JEsxxs?E;en?ey+(zY$iBbzS~FRZRQihh&X zOz+?9y!bo8VdtgeHMhx$mf+(qc{uvSfJAsCsQw2>DrxS?dwyyohz6|GBI7{0mU$TQ zdyN=-PTT|{XXB2G^92TKluJ{}CWj0pCL21k3E_?Vz_>TW3pTQ>&j3Hp_0n+;`aywe zJ#%ki<(p$>=QK0<(%$L0NzGB7Lpty3G`8g0X+9! zPB`U$S0NW^6o@R0$Jad=JhT1_WKz-RhsIQQIfQiSb-=+9(1m@PawoJF za3a;a=k4=JTXz!qLUTRrql&uQIudsd8@OoLlyk#&0+g)R~diHVe?R zpsCFdu;YOuTlMBN45P~h&xE^8=jk|T6fL?6*V>;`Q`(o0j$$Z8eebW=MDFMdz<7dS zWdHd}Wq}x<6?4f+Cl`cXGD~&CtgrZrL@{=ojq#x+|3^DN3!Du>i5_Bk zQ#!8bBeQcolt!%swJ~$fhrEW~ofhGFa_+TZD9vg~^TT`GhXPJ_C9w8wv*Gyggz+f# zub~{XG67a3PUAB;t#Ql;PJJH^O){@%L@VEJNnA~9*F%9dEw{V?OxKo&SIjVRAst*G zeR3u!{znOQR}ndbo_<@g{N#K9_zxZCLTgga3G|8q0zrU`;{QNcgMqM;6}P)Ls_=xBtjvsWP<>;5g|15 z#hfzRwl#77Wta^(vc^pOQIWHnQPOcER|W0-7OSP%Q&Gn99i9bC7BrT+xNcRoCyG;s zM`_x?L`m%OpV=M{ts2WF?^jjq?kQ)j@bRs;z+>r^OVaR`a;v~OMNq#x+T> zmY5{gH}oUAAPPoj<=}Qt1jZE}Q^H;dOGzA?Y6@SJZ&79!{6sr7x~`@iw2F5P-Mhi4 z>wt7U1%8ceGf}W_?*MBaD;y-dhG@{7>eQ3bFNfGpl?SZe|zO3 zAMG+=>A5aC)8_UNZ4jOwRany6^eGaAzoDE?Roh4#QzTEZMF>5gJR&14Ts}M*4K@@r zq-5oKYOBtJNVD`%Sou#)*pL3Dsos}w9K$R8B=i>{FQ7ucW+lCrneq=P5AoZ>sgrF>k$t?5BChyKi&8!R`JedTj ztw%rVq&E1Q{F3>zzteGOD?j4Uq)dUfgFEIpBq^>=;=o3w&~l4l6Bi7Ktp!~#T& zfBb_%*!a_xH+C82s>7PTWdIV09Gea9h-;kH=A@z~$9RKj7SrcOE5Xf)wjm)>+~mH2 zQj>Fu(hV%D4tt(qL(>wNOf6mW+b+Jka{atq?h#maMf%RLL^Jig^|c>A6<{(Wr3tNl zj~Uk@t)DTmjEM!b=RSLfG;&vLOHhUIDTilLY?{y-(2bO zKH71(k7v-0jCA|-QTW%IGKd7qvlu=t5vT3=z)Kz2f+BdYWl)I4`bPE)S8dYyBTU+a z!yD=9!QTDp12cwqMe9{~xUk^ezB4YWQC+oP30gI@qBGW{LC~QgIh%|icv*AILJOJ( zN8FRtgI$MD`n;kQMWpU4lM%|(>OVjg44|RrKazEX!l{fAf>z=CUuWl@obz=SCm55F10D08rs|rCZ*>ZK+dDSQ1tWCz>TG` z-9PT@14tse1Lqbj8*D^>m1 z!}Yek(x7JJoO9eV-)_RToWzvlK?RV65I?#`$BBIphGE+v$-;D`vcAV(BGYgqRJrVI zp!&H>PW!yARM)sXJ{f~lIE~WT$Uaop!m#4yj>YOtH{m&=&zdSF>Hv;^W?Hq$mk@t?|>zj)=1%# zg&)-{s{WLvdU=tAofGk79$a?mNkx`EDlb2;hN``M_O+o;yz0Z)pe<7F`B%o{k{v7G zIXDAPXx8Be^iz@qh7TklKw8=jyO*6up%nPRN9lI|MDN!yd?}+t!^C~rcR~P#eKEC1DfrCeFaOVKB(BPf}vNs<#LO7*NAX-7SE@1c4WNx!`tHPT+RiIk&#R} zc1d+n_vVRVbGhw|sLa|ip8yRBG7^&sRk~DMSXJaF!ta%wVV$T*v5%6UJBLkLMw|BG zehmSQx;khUMk+%x7t}f$D177KULE5 zrK;PC2MLT=TmchFDa+R9rKXu6&i{L;KuzwbZj?lmX#Qx*N!o@*g>I}kYRr(SNv@00 z2t&g3uc&b$A5H|}XhLmsJ>Qu;|9;<8xo=x-i#`B&%IPVCXpw}fY3~aU{K?a;@iURB z>BJMk@yid+<8xv3_)#yxpL=x;7pSKuqUg{O0}r>~q8*Wt|2adbyKUBogcevG*H~lo zRi;5j-@E9GZpREoOIW%M4@$YKmuZ-m($JrWb}vS7U>{I6ItQeS zG8pc-wBUKKxa#OerHP!=el2$}G`Url7?(hG{rjMDPY)>k%A@3f6&ynD%>d$TG)>@t zm1) zAPtrx%ayy$7peM-jkdKS<{d;i*?5_J{!F-Eef5)w!dY*rnb}dd-MELNE-PbbOZ90p z{N(xs$awL9h+^D{^f({mDTFet@Q{_uu4>8%OJW}*&girbc^Pe`U({}%0;L-xyabmu zd%V=mppCDhWUC~Y=0q|^Ty8k^Tw3c9<=%pw zcn*)qqEVo1TnZ`#v^2-bwwQ#IL_0`HkWKu5E`8E^e>{P)t~%uaRa5%rrafkI1YZPx zaExEb1{M{AsjX4ssash?lcPg9p*2K7mk`#x*Zgqayo`unj@dM<@Ilk zi~F}Hk4+`bDh1?!7*&yz1PyvdmLYTlZ^YfC^ zH3%6A-;Rb9;P;k!Sq7?Lc_BC9$*RTi@Q2oV=Zs{_1@lm9CClTdkG3I(DF8#M17`8O7d(-XiNY;C3-~61>@I{biC(jted@x+MF$fDZqAmn5K$PAo72*=>;~4#5UA`iBg3C zT~FaGe4>&&*wa=gn`gqi$7K~L1GBPKDFcxjKeUqvXVcoyeJd012`@z3l(I0v*@=FW zbMmgB>^W}5-w7Yk`_ZEbjK!DdmfTUw`C0k#FR(I`7XbX^=NVT4Z z>->m#3e30N^pEmm>@ih|(K}$;GI&0|#pH4RjPfLUY)AWgOwkl2iOQAF&V+bShtWU# z6LX#iVVoIgz8z~Q?!RHr%;tJycJxV*W3=ZtLyeL1P<~20faCjD^HSLcABxLd31e$@pD4$nVZ*-i2-6j+_w7Bp%fL)bxJsdLl)I7-0RsR)k^ZThJu% z2#yIKONuuzL7d4YjlqzMQ;N=EWoozy=_Kg$zRtjt4bb|6R zeDt%gQjqE~%`~(D)v0kvTfI&7vO$9!bY?EO(#}dhK+GF1OLfR)*EX?hSj}9+TC6Hq zIy7Yg@9X$>)Tdd%fEZ}AegTbrsd9A=I+dFJuef6L-x|gVpU^Gu-s4m44kS&E%%e@Y zQH#>5PFH7J{S2j2nXNbfIwRs*Q)!`j@9^e388mb#Pwfsg+PQ4WJcpRoLonQSXII+y zisQGKumqTO|8zEH;RH!_vjhz_JWyx2z`8|H{mYdt)KuYSIm&`Ex?2<@3fd@Td-Y6nB6XMjfiiF<>sI*I~IAMu9u#K#TLW|_Np}rX^+T9C1@mXu(w?pb9@0R|ZEUV_(`V%k6~ z7Dy#9eeFUqpTtU4nn24gk9q}Jn|BP65f-99=)ZxXz(RT{bS zb2UeiB~mH{dtFTiuz2=Df_mKtGE4J@H9p=vl1`sU%m-q|;SDZhUW9 z)Nib`|I0ykMBB*^XZWd7h&b8tR)gYH>|;n$y$!yg=8@YXqO^6R`p#-ZN$zrp>pykD zt3GD)3lBcsQ&pTbZ)F+{%9yKMBSNX9CU}}_HCI@urhqi}RP%2WG?Qj%tKE}e`J&uQ zRsMQz@=UIoG7o$Y3E_OVf0jw(2%jIm$1cNyXC!}^g^V+mmM=@z_5@3aFW~$x=KfW< ze}Y}#mTU6bv(7lUkC7Zgcl!8F_feo5VE7BCisv28I&BwzhDgviS`EQg1jj0lDjqDV z-mg9+;v0ej#mc>=$E;R{zi2%?*eq zzbekOU&FB^p(1(Jv#2&%%{@e^sDXf&DX zTtCUxhS;36kFw|zo~+&qmvDKZLv_>-pcvs;Qd~GX5OPAA=CYH;Ddv!V7l5kFD7}~R z0e=Mkym~7fg0$8oU^|r(T%vQ7lz^prOd`}8T4$cY+lie)_eu0rgk;Z0zb8v)^?mnj zy}y{o9^F-Pm>Dy#gU@K3LYAC(x%V4dn*hGHWIfFc6D#4>Tf|f@V);AQN0jKO{81LE}MBSt`; z#(R96Ly=~zXVhWQ_5U;lTcXty-FeF!y}x(2uyoMu;31L}>ZJ-18moC$8W9YZ9)&W>YIg|)|LTC5)lTscaTjRzepW3(_2aT5XihD zteItN8SW~}_O#y%hr%*#xQ=9e%;{ncrX7jO(Ps4nHz$MFQWn(1Z#!0L?P5v3_;a#K zGu7O3{Jiy_F9k1io(m(Wr+j=y_Iy2>-&;Vu3ZzwAlPHG1tS zo{pUpTw=?QOCo>6LkO>Mt)K$39uYahjDM6~TpYWlv40P{@%7S?v-DbS^0bP2&8s)x z`a?V+5DzSRKIqv_$n%M?OLItzOM45s8t|d{al9bnfBgfH?b##GAw%O9ZxieMbZnPi z+HCtf=(IF3G(BVYqD7xG0;in6Eq!73v}7>Mm}kr^-*pyQO;-~p1^JpE3l3F$E^16$ zn!UawpC%IezZ04T>Pt>=M9wcf4|Z%sFMwF#9RGo`bH&Gs)&7{kE^5b4*Julu!Ji`Y zFOoEbG?eP6aUhGlv+~wrPn(6K2tW(Ln_=jV);}&c*bCHtOmYzUq!jZYo;0kgV4Ywl z7A0aT6<>F0#(%mhPN&w*!FxhwQWfmF%&%m-CWOwMTa#jo>EcjP-&4g!DH-6SrUvvO ztYsAkP3R;jG_;U-3y{s%5-QPL8l&o92<~U+QBUc$C;6^juaBEK8fBfH_&7(CB1Ga!}JV+K0t~p?4Wo7^g<^ zQhqOny+~wg!Enrsbi$wWAE*x+*D)b|1#??U#z@ow?dk$7DH~)0M@wIfwRYs7UV(X; zV*iwD+}~P-x$Xnrm1_TGj=&CyIIK^WP_va4Ry6&Sfst$0ft)g_7cIXy*9c3w4|P~= zYd0U;4?w;LqZ3~loa;LZ(usF4fW1UrJM=vQy~RFjbJ(_0rcASkcIQCG=~7*0}& z&-QJ=x^m(HKso_IH=Iz;u6)cj{;6?I5JR~*ao(FY8q!JUJ}iQDstjo=(2pH#DERb& zKyxtaM_ND_QZ?@Cs(Y(P0j+-)A|bW9rI(b5@AE8K_gCGP*dIJpP5J7-ufVF$xwHar zv>>G4%wZ!)KOUg*0@n6{-${`QPyb7$-YcoC!-CB$!Qm7|Q3XHao*E+Hp?;&zOwcCB z)p=Nf%00iAdeAZUx<~OI!qmXI|E#)~s#j-L$*5#M${j9Lk-jgiU;5f0Hu?AoaM;Ax9ElVHdgy7N<=^F8u>y8O*DT5eAYY*YH3lfCU3 zGBFt`?L;D|E~NP^gxM)2_zd)0;F#zs9a$E-PY-1V1#uL>Mh6h6U^hSupK!00Px9^` zh@b;^5>eOO`n|epQJzjq+%W|V)fu>jYl_28v0S+(I|#B88E)`D+`gYngh%=Et`4CN zEmS1WbOOat8S{o}2nIw{WRxtz0E~xLoM9V~lV=%* z>tBi4|BngBOB~x0+^;GvWnhdR67o%_0;kEx(puLw-CQZVCQZnkBQ!g*}*CzrzJLaifhazNnsIMbDC+{~~H9IfTA=YCiGvn`oZ{^hHPSC{Kt0}G?F zJKfcNu=Nv_XX^qvm*>T<$-mZ(?cJN$IO%6OlNvifj&0%U8nBx6;nW;z#Tn#Eb2UO| zQGaU($?{He*a|orNw~-p_Oz!hW{K>T2V-; z*nUFQYL)ZR3F+g{+%KtM->@LVPL+$-H~*3_qdAOjjI6PD^w}=S$^MxgqlG49K}wKe z!SFXHFutl)j@Lf$Heyt{qa8bCpPsS-)q_Gf|gG^5Fvw#CEJeC&yn2N8b`jDy!F zd(8x+nkN_Bb@(9Z#*22rOe9PX`S&w80?txUBrgZzA$WjxI<=H^vaWX?B>0QXMh$8? zsOPUGl}n!!E}FV!u|mdNd84x=Gf{DW4%4sa%_i?`)j4~JshU@P)BDA#sb1CU*8cjH z_?fBSa0V(w+ni55j2ZI$thI8u{M87xB)MWm?a6e||M^)(JQrZXKd4cW&g8um3A19D zk}P7S4vy3!gECM|wZ~9KT1X>4H!H2!%6x8SBqaJ3;pa>k35?LyQO+sfPTLxD^d2}^ zU>%baUh!X&{u7iyJG`I6)cjP?abQl2Omp0K!*Z{7!IR2myT7L7;EZSq2vt4!k_(}~ zZb7}5w?;~^jer6F7etXb`c}HzQJX;*mh%QC=wJCWLtdQjqoAZD^4ghS>iW_o9@&Vh zne3EU0h47MS?#X9(qSTnL00GuTejTGvo<5GuqHk4YC#n!KGqooNw#7!;fb_ zk`uvs-f;T@*U2MjeWHJg2L|n#aP5daz*(Hc@3TyZN^vlXT+FQ29w<+7`+{xR1Rxof zpkfp+wG9k9L(qqn&nX1@h$o0OWPyk;S0l&wpgQKbWm&q}*F7Z9krl|VS8TXsY0h?? zJU^oRQUL%!>^kZ|@r=ds<(5}U3yA@?|INjA1HbBv1tcmf_`PfXs+kuzO}a!D%{4FyJ(qWI4nYB%WLaRuTBjI}>7QL*8M z3)UD>K`+Y@T@ozzQ1 zDv+CfvPZwaw7*;uS~kg7ckXb)HPev#yxR^ANUOSAsv-#@zS&hUh2RvS!9Uj>VXmL; zdAj1OpOFcDD#}Uw%7?T5-^xc55rOeO5WY*@|c!{M4N4)h(ZHjQmL^i1_VW-0uSOFEiT$j zc|Ut$?C6Q4Gg(I3=05kee8R8eP*1#j{Mb;tLNzOSX(5flOm}CH|=Hu(4^uI&innTZm6&JmmJZW1XU1!Mw6I@%Z4Y;+$GR`aBzV zkZp|{*XzT{!-x+}Tl))b}fbuhqVg$4K8U&BBv;ER6ja>YckU_7BCo>8zZq7N@bi z&h4{OnsG?giW^t{p#ky7DAQWI3p135dEPW9fnPjUN^O4-y5-+K^sZEi-%8*ryKXA| zK6vt>iV35uCwYk6i0t3u5iI=9l#?cmE^5!z|Hglz1=Q)WJ$*PLH-VZ(FN{jU5p;bT z_}rF%tP+Akz7;D@dAdXi<)(@@G`r1_?GnnW znwo~~1b^3An`4+99P^B9j9MD?uafew6K39eberYY4F`k7{NIA+Q&g3yubyoPht7GC zWM48Qf~QQR89LsrU#F_C9=9K^$X~px`N*bXOdQ~&THN6I{-Jmx{P=SFre9jqgU}2% zyzna~q2ogw!jEeN68yD*+a=|_jeFgAF9MFML?ypmHqcEgz#1SQmGxGy5_O=kKY{rF z$T#q2E}fiOx>HX0E;@w87MEVGod;w$aB0C}Yu;D?T`aQ48${1Y$k>;=-0Q9(k2Q8@ z`li!ifERt|VfD?VxS;ARcdahG=>1(v-Rk$#c;b86AFi=wW(mY#p$=3V+*J6wCu#45 zA|w>K6;@m~YuwvcQk6~t+#?bNz4?U)Qkb0uv_2^owo{tA71}DL9^~;AjiV9LB2V%L+0iyp7~u_`w5^Mx z2>!~I#^=|ak5Wf4`ZvZn>0QXgG`d3GlO54Gl=MtG?+QmdG5%~HemWsXeK3iJO7a|j zjt$$+Lqqw!r!MGB){Kar85_^|M+mCt2f4K=D(M!-h67_KxS)44QFHz}BX2BZ z8#6y>kf0lSZj;ejiu6pB<_eK6b`5Yt11HOQI|G1c*rUu2+|Kohfj(EuF+E5Pd9doo z8I^^58Gr_hu?v18u>B7KF9SKQ2|Ykd$uG8E20J9_l=nvoKVWx^Rh%Z*?gnwu;ZUh; z>4TO&nUhehTqzC`6G0cPGBHYYvL(8olmi@{+w{<}#ulT^m8j*Ezr4w&Ua7?X8-f*M zno628#WYSK~fjx zO|NZgB9k?n#UL(bT=5}abU=&aw&t+L3%40XGNgmOSBTSdR6(; zqWgNd0cG~`vNJ}I_WSo&!=Lk~QkqmG&MV{ysPy@EEdfuip^Oaf6YzG@U`H~Sg_gpK zVdn1~?(ln< zf^i0G+fDXe^E791jhT13W$N07<8H&)z?WmJQ*Aak|H?J#9wEwho*B-xPOUZ%2(xki zx>Gc0;3oW{N|*iarOB~vT^zWSl01IyWZC=pn)+AE*TeBSb(ixt&98kweK~xY~NL%>3jL}OZ)&P!OsW9@Aa=r zw`3vwa6Sn}9IJeVF7qqI2Rdc_GRdsRmzt4BVdQunza^SO5l*f1ij>;0Zf%%_RkCfs z<;mXxM{vnSSnYaSgup-CN)ZIFrSYgw;v|eB+}eAVeh%-A{>_A53)-gt@Uml{N;3&N zhDTw75LaIp9wkmACOt6?7Bl`{WCBO(XYURkb z7udc@G~H?~V|E?wZUi-9t`7G#@Ox6aBBv3r88DzUH`;)@;|j?*~9@B8;eb&Q3E z{NQyXqphXgPxk}XT!;g8e)VX*d_q(SvndvvR0#bJ{%kqPnQtq-d+4!l14d>@{djXE zkOcae0vOrW`tgcX7KLrve=XF3sD{T(@_yxcnUEw<0@kVv8ZtU9tSAo!SLpI0l*bVd zX;nSKEBdKR?&n>vF&q`G#n@5ZhauU}-=Xb0uG`jx{SstZh1i;J9}6<66H$OiKakBk zRuSj1KP+7Q`9Ewnkb+E(r&a>8idS&#~@*1o?aN;)WPOZ7S@&bP#tBK zHG08%)s(B%m+6J$j+(qSDd#`}SvP%R7{&!y8TM3*T<=J-662M9W#9c{A0&A2aB$}$ zZdpXQ{lS--b$Q7-o^E)2T-tE!b&^)Yd^E`o;Sua?yVQGmLs7zGEmrE0gl>2H$))R=7kN>A4aOXM)Gk&pE|wOc zSjp1hJ%?Qpve=%BUq23f-E<+!wrth&2))qUk=SYc!bdmtIPPQR{k8mo_1n(}dqk8B zn6J&y5GE%Z7)WH-ze*75TVumdk?DOD{`^R<#XLotGs)_PKLAxk6@ zL(j^o*h3ENEzI4b; zu;d+33Wib7d7~5YJ7Ll%6_Z`3#chLw&7PuHdi75H6Phtxi&&_l%m_jF!X61rWulB) zTvyM{ukCHU06~?aOg9s5>}aV+t>-`uzZ%HHT8b5Rc0IPdgTh9|Yk2mBd5j+j;nwNP zf}i1ZxL3V5*by~Q^j%`i9HuI9@612vlAcpqn}&GFv%6HcZD^nOdCg@Wly1^|K6X9r z`w^y{fvs>~C`+Q*V-JV)6ZM!R0NoW%>E|fTln0shj2S=LhT>Dsl(l+HmGZ{ zL*VyxN!d{$ZtUb0aapNpIa->#ypC3A>e)aH>@dlQ`%Zd2VkjN0V`x)EXA0a|NheO^Jk(f}mW^Lr_6^w%fUwn>Zc*8$M}Ep7tl=VL zIQV?54!QET+sf*`Y|{DQJKKJDkP`eDkl5;q5&W>fSicLx=Namr1>{oKIOINc&~Zq= z^vd=1<816SYXIwU^dAYKNPKSK3s7L*^;plQ4t!^ozO4CL(mZaV>WU0EnW#q`UGPn( z`_g@;&{BrmjQ<>KAi{*W^2$U(z?9Y`dX<_;HK&;D!h;8o0m9nsmS-@^7|BUWMm>JD zct3niFJq4wYFoBhR(0b*xR*efAFL?wPF5@SAJvTRP$V8{a+)@; z9_yV=s;(S@Z%y*0KZe$Ab7s(ZPLG%$iZ1m3SzJ=^Zch}YPXnfC+y{E#t5%=k(@%S` ztwN{Ga`-w%J^jYX5PJ;uLvb6=ye~(?kjt40)3kR8Wm(e5%SIp`_T$F#~*g?_<_H$4++lq)?0kr64Zbc4`GDET-*7T zuTQgK?n$LL+!9XSMvnseZzAUZ^fdaiyw+N20j39{KU;ZMq8AFi|f^|!C~3ewoMqfFZK;D6ol<;Cfkb1&2|Fpx$DG&EW=0%WpV&rK(oDBM-tN-(-#KEy z+}iu& z<&(uPE^Ig5iKGk|!Hcc7?KFIFHc69%z~O>SVQ+tGY0e;`RZf~vp*UBX_%kh`)X1ND zqzQdI8i}|z77V9j5@U$VHO*3#ttc>Vi%#;QS$RPPbr8xxzv||kWL*Q(+C!1rx4F>e zDX1FlzzqIIAm0VA?T3+jw-PCS*-y)2?b_T6Z^^HaC%{q}H?r;S?WqY^)L&#aE=!FU5P<=xz^9DIRyC6bJ@};PUpEh5 z2g`myasC5)f7m6^QuG)=IgPl05+KRqojq!PyP4Vk8=aL${jm|JeTnR?gZ9ZVf>)$(;7xrPg`2w#Cud`y5IE5bHwW;0a*1xys{ZJ>s z38BPg_IgECrFl}(8~^h!LwR{@MTps<=r(AkuiU((SDxjEY}h5Y@)c)2Jc73!SEWrS zRrpyi+(R0<-A&>3uj=aR4vIZjJ!eJBag_{OPZB^Uh3~qrM^e_!E5rd zzuPdtHZv8^ZLauGg}31m2#|JNrxdG(=#pIz{$98ATt5JK8La#xkviO6||wh!d7Q${j1jLBj3 z44+B37rQeRR{2TsLEw?Nq}U%{`T`H~-*QKpm&&+eyZmx?oh2KhUMA{&g8D(CR)IXZ zs2c!1Y{gNN!-{c6$h>-Jx*D@s;ZIfD4wLrUhHSfb;V|FSv~C_9D(N`NL^rp$bzNv{ zPkjcByL){KFdG$5MQ6I(%XYFR zoU`fI*kF%Tuo8|{-?R!mNGlm+o_Q7O&BV5{v*Y5n3;FeMe8(5P24nBS>HFKudl3lt zjVRE4$#18&g%>lSreVmMU(HjY4@2^^ToEg?X=kIzGGe{~L0whay_t3&_wY=Y$`yGu zZv%y-=j1{h=xw!?zI2d-)1c8kYX-gZupHyhJO6)DB#S((H)h!;A*k2K$aef!HfH=1 zo;-In#yArl|0n8R-55n)5QhA|e;5xB$MPgWc!RE785o)AT}%n2uvRx!PVfY^=``f4 zvVyavFI_OaIXX_fLF9-94SC7!#pPXOC2FY@SW|YxCe(Ehi0UhUL<_k`hikSm90m>N z3K2}arpn7kpbEw?Gl2;YyptRTA`DP=avsKyAT3XQM@d48Q?DEO!@h)j{sojs(6zZG z`qs*dcfVB!Bzd#X!zro;GB73XQW-lYNq(aBCe}7~d)icsV1yKKuWU=~H$VUB z#9fK*sJOqKj}b@Hph}%nenpSZx5l$yp@JlmCN*NaB~ri{R|mtLr?Z^Pf6W>2Fz~~O zsPzp|XK2ZIXtBI3NY_=`EV!i6I*1v>_=ur>ivy zRd+!U52C(HQ1~O74`I}sy<64Jn#C)3CDVqBKq*CcdZJV1Bx2P}$&w2(PoUd0KfQK| zSPd22FUCDw>9CzDANJc-=K5$q{1F*DkN5%AyyQx{uw(Fgl1HBq7?244x{R|K z*%pSf89HH@l}3e*$-6pf(NFEl_z^oTpjm5yF~p2p#uSXN)8W6-|C5YzFdFJv{nXa`zYkJuCM`fR zzg3m{qfio&?u71H&iujp@15r?cgJ;?(_?YtzWEt^nG5e^#piVI^__v|-Caw)=-7jR zZp*(yi}VtFVZjYYetaZKlo`|zgbL!Bh!w-4-lla47WV)rzRlSUtI$x6OhMd{6xQ=S_Xri3wAD6T=x71NamI z>~Wh0m+iVB?rS08?&0!Avg*JBD0ZIIp`bKjjyI17T!W>1PGH#n*S#l==f&3aL{}}@ zgix5dvVeR-b$S&IwT#4csjPH+h+PrgP_#ewFhM+@6v!*IA!h2f;GF-ydk*qe8N>^k zVc-n()2_jQybE4R*q+r5K6Iz1*07LMdJZeTM@Gr*&04%P@bJKVj=Bh?=zML9U*L<9 zrBmlyv-5%H|8}zgdm##Q5dGc!XyPjEpgxN9lM*OTkgE~~=>T*%W_?!XmKwU;RUXP4 zb7n<#*Es>4TWRz^wxR}L+3t&4>-L8Y)n$e_ybjxlayl%oi4RV(M<{61x2=~s)cV>f zmN!?~8i~tmQdoO|ro$c~+-|#Fy;dJ@t|MQ;GqluE_}8~-_}g>g(3W~6MCSwc;L`;L zb(jj3%G9Ve0PY0u!T7rFq%ijJC_$RHCK*=Sk@G6SKviHms**s@R4au0;= zNT2p+<>Bp0Kz&uVPbktjg^y3F=pcMq2ge|bO`tDx-&w7xCKs{M>pogPj{W2cldY%Q=8-Qbq9>e;pmI5rZ-~+}09evc*<65M?{^ zRj^w+ukVoSk^$wg^^%3ZLHeB3J*BjbI^`6Ejx&5w#9a`pHqx}F#tm$Ri8T@m1Og{Q z7pxqfL9RrG9Wz?z=mc%WVtA+*tZB_4$)0X_UlOfPM*}qtjrv$!PF!oaQK;bF8$L%n6F1 zmZ`w3!Ghdhd4~kyOB~dcUA)ELZP|j8QMx@W@q>_b+we?6SwwgRfN3AQ5y_C*m}Ma^ z%@yeUyiw`?^m)|(kAW9@<7qp;gXk@z%hr$7*Pgmo6xuUKt<8x74ezYTUUj0NC9!)7 z$U?UY^x0$UF+gKO^##;?sBbQ(p%n<%tk&InqlhcgpXLn^oo%{+qAs(eZFnQppqDhn zdmWnIa|kCH-xB&vd)DwdT7~UyW`kY{p+`n|s}X@QoUe+ZK{~6HqrS*QY|n>p={%Pk zsS^d0T4s*_qILt=n8U6+Ev(TQbchbykW0v?ZK_a+vzsSIpt0kUGno~L~3o2)LdYO;l-`lX|iJKyN zJ;_oK^PBez;A&Wwc6t+y`$y< z;EsPvmvXz`SUg$y%h`{%b?5$Gb++VOw4#TYSP%&j`I}#eltm0r;0HqKEC8iclv^?y zE2%oeuVd7;U>320J6UyhrlPnrC*88%IOsKeMD%U9pgC==`XoF@juXU>tJ-irQy8Kh z=c3LEhcR?)4>Uw(KkRicMwnp}eM9|P?{pVru1u^BcfdDyG^i#q{aQ|v7js0;Xb!k1 zZ%d+QQRU(NQA6iA`Eft#=#2ieGIyVjugzQt&K*uagg*{zYkMPTFAt}^1`#x=uSno_ zplB~pgDlwG!=38evv9x>SXVN)n*DFx))KH(BsG+K{eMZTD?|>%x~h09e#oxFMi=G4`k7g#Q{r!_0HjyVJ3 zzo2&1FC_Yt26)1ScCh(uyMNDGiftU>5ifgndR1i%g`mcT0|IHIE???vr2&eZ(VZ@+ z-d*eN#%+9Tz+t!vNG#nd?o@~&?Yk|7!szz*KJgKkloz&z2U1B$S}_dO9gZymWz4-o zOn9F{!r~*q`49Y?<4aqW2w&O8V*s~nV;3Pvi_vOai0Wy}1d|#;h?k=N0#;clU2|Poe{n9N8In@^5~E ztf6(~9dNa{vIn-uUTqC4ws?Ypq&3_I&RXJZO9>;?imeblexw5=1o;*@jA&TOF9+~C z@b;IwP9MXv;Q@`47&jGQtfC1_ z9kjNsik#Besy)qNx2c?WHvBaup^&Cp$}Io1{aJcF80JA z8l91eMfC9y2o9ATOK|uj))raPYOFayVJ#Xq8r0#>w8$?VO>{8@{W(S#+cT6NHL$gX zTUP#_e_71kD!*`FLWtr=Eu*cgzDQr*2WljqpFODZ8@i&Z@0|Yc{g}C!&NxSQsck6$ zNJc^)P@~|4*-MP{h94SLV9gQxQ~t&A4;L`Qm^AAdIi5ni1$B!5J;5Vh#}Sd*2H}Bt z^p~ZrjkHQyQgT&NpQ%|))nb0T?sI5qXP1s+Y6q;%6g}s&>Pl={%ti)|VEn|*C}8C$ zU6O>xPe`GG3&7YOcWWW|Ls&5cl2CUBh7Bm~t@@-^N|K?v1E z?=K^y*G-x*c`Z$+Y18sRk%oOVE@F3tiO_-iX?;*pp|ImpEn3;pB_JlKBGXfq z(q}W0Pzyv^u1utROWX*1A5S=CYkhkC!uOk{07LmJH*zdViJ}OXikGHHgsUR6j|RE+ zFSsn;u!kJgY+-N=Iy=4;#L5Xsb9Q7itHpLb*(dGZ_W~<~XUeBXbGYT-J8Hov&msn; zb+T`1Qm=BAIkE@Gz@zIIDV-3@Cr>Xf1l2VQSmg*0)PLP?Qd{`DLhxfpNQD4ejQt2! zfE+ymPTv&>W@C0vt$jGOIaaXc;Y(CuxgsB1({Vm@6d}rdo6)pu z1dT(nNeoH%%q!?AV6~4k*R@^C1RcRH!xa!UC+q4)ScLLAdjx|{}&Blty9|O=T zbhql6JTv?vk~*I@lBGi}4cQ?eqmk8njV zk+1xjYM)Iy>^N%FejMRiI3w6|)*f>=0RQ+zslGs=bCo(u{VwLz{0hXv5E1K+P`o>jr%J9IvZvI*I=7E-^2)LYA6uDkWKPXxZeK73%{dclv`gw zqTYRb^TIj)S}PI+SCo>g&3+)TFct%IZM^D~w6G`Ry#W+?k+a?(YP(QX_Z=-&t^Q+)&JKE?*!I zrj`EUd7z}XK8ieSj9EqW*u*M};i-FXp}?VtyC%cbez)&I5_hyH{mPFL7RY8wEGpi& z&!T;L)8pq4h-=$BKWQFL-XBUW_U5%0+~58|La?6vCKt8s^n$YL zok+8jbypO$SdfO&8%U2FKLi`fSg0KDs?@;MiryOT>_Q$nH}Egh>yNj}p3djV)k3Fj ztMLHXJU@)_i2kon3KOFV7ePLe(+BH3A`-7?ub7QMbn=11T4&1m4Ho>M0+sccCZOh8 zdcO+*S!qpS&aSgK$RfVU?8U5A-Fm8Qp-o@=q^sBd^U{V=Ak`Mfspra>aXe?$(sA}@ z>eN{6u$eRp_fX@VAR2AlUi2RD6rcvf;qM!e=^jHgtfUr^cvn@RZ>wfYSZvF}C5rZM zP)Ooq#^1xu@f&9CED4*|=;ahz^xv(a;OB$6K|*-{PjZ0zD0vnlFQCLq7X<0&n18_=PAl=b)S z3dE@RPnre9y(9u=dCrq?d|!4YTIT9+a&pxMZpmY+$Ti_adlvzn>A4G&ddXxAuV3;< z^1$t77_(=L-e>qwPt94QR`PyGIMzUsOotqJqIFagp zvB#q2p=BhBp~*86&q(sR)Z40%TYh;j5T&Y&E5w5*e*7l=m{}Z6qr9w1?Y#&AgQ*Eu zW1ik@e%rK8=HtV-Zgcf@A%wJi~EzY1?VbaHM~n14qSS zRdS+C!_^;Q&FaIZxv4xfXfZPW;0lgf>my}GRTovAAPh#LAru%JK-18Ues*1t2?N^= z4Px^bb0#oG$~IH2%hO~nDZ|pt<*o-wMv^qy*j1Q}NDv%^IcY{=lIfa=_xqa{G$>(5 zwRbdjka@h+DuLVX%2nz3@flebZ|)sL=u{81{s8!D5v^a2Gl-(>O#j@OehO7Q!qfK! z=j64{8dIZPD*!i({@SgSUnj8%a@dK2sM96+v5-s-l@ZJ9n8aH;SllJ>E?YD4=TMDR zS<9Z6V}f+^U8kbVVz1R7O;U^Dx_>+pAU7Ht>g~1!Jn)*)>BUMti9bCE5%spYZhzHc zxGEuF~_!~7m-)@eS|JOaaAUkh6-aV=I;BGO>zGQ9k5Qq z5vpwvNNgf>!$!W4vNl*@0Mbv*h{{Fht|I-aRDaaTXMrZLb7 zrR>(py-MXf0#DuDa02J_bXcf$#<>0Jm!F4*EfyMK;at05_n-Rk#8ayKFDSn6|F9d= zM!kr%7exzbmj2kd)J)U7VqPM}jr||aU}0LW3P&?Higr|Jn%$31vpO>1ah!3TcU<8O z)p^>50exDIKN#8>FAxL4kjpsg?V80IZltNNn$E9Yk#imhSs;|KwhJ?<9~%FtXX^e$ zWa}!{y!w8rRFe4(C2?%QPBGJ8AO$V!N^--&IADdxpc4lRb(HVLz}oBxV;W&`_7tib zE5Q~SyI_SF3Hy9IPZ;FcR6vRiH3ZGjfBLPM`mlx~1R_UG)L7Nk*w@*u>vd|71e>8v z8JY?c-7%?NKCO@kBzY$yA0%_X^8CWX7;&nzVIjEZp$C=uwlcJYH2~+5e=x4oD>%1F z9)m?t^LG>&U?h0QNg$EGZ|E;S)kIdrl!0ns@r;q?Ge5pMr{9+^15!qnO0bwob-HqY_e5!ZSF0>$*4RhU~y(a2a=qQNd zA0-#U4{r^sNAf5u6N4%TH}r!{5V;(H!i8+;#;MT$ycrB~6`f^KQ%m$d<*g7CR-q-0 z{G~^1wVA-Naw#K)|HhB0nLLSF=H=snLkQCnk;4va^SqJ5WKD}DE7oasySgxV;dW^S-`@IPGe zg#3_1AbL`w1{2A5e1*yxZsj$YA5R3!P!DUX`1*xm`c$W-thK{(i(%P_Xj!9&lf;Jh*UF&( z5eBw{s&vtee&~Ypp$Hp{^$uhQQVG1Yz5r3AT$AO<=FqYHnA{?#ciuje4b#8zv4v%3 zl94h`Pnkb5u`>h*w{#8b_}dpy7KYJ>-2#=p>Ka6#nejpUbD`&}giov%A9AP_PeM@y zHYmPZT7_@@$blV;V?B|y$h*MXn-9OSXOA?(@_I7yE|Xv2G>ahMCr(*FiBd20{qQmN z&1P%^!me}TG~)LV#XPi#HxY#BfbV9#rwxpHtr%afg7Q$I$Z5vJVRqz7Ty=IyeQkTF ztJtf6VzBdwvVlEB{In_^dA2Abqzv88oW3d*^p5}tJiq;JSO9*sSi|%lyi$tn)qgwq zJUu9zq7OQOxy5J{^;&qU+ce<wtD%<(OP3C1*QCInka)hECdMCla# z)uaadFB(aiOgIRb&_CiU3d-Gy5@u}v1cimn*g2ihA!s*&d*rcZk*Te`PestWAZ{7Vhu zfa}9G@t(oL4twC@u93;n5p%0pT(sRI7WG~-ns^o7FCri({iDrz+7?}z^^WZSePZKV zkPRm2QTs~4(p8+gRb{n#P$emR7=i?l=44?855m8w6)J7t8}C@f%C^3+=FOgUs=zMl z!n!#$)o^2Jn7YFFLQ6t;+~f$XMONkvEi+bi#s>ULC4~3Iid^{j0|}Yv<8hua^DHpV zpkD2i%||lvdj2Ri)bhQD^F1+I?UZNXc+gB)w@-}- zDq>S0Qp}r?&aawtbWHbJ?^Q^Mvrl4GrUCp3!;TPhU)(C1EUZEH`J`7|-VFctGaYbN z-t7s|HNi*am%fD1XB=GO{@!g18w)8`(>h|R7hxh-;l)Nn zFG&p4)l_J*cRqrixoX;cZ}72bddS$_!)u#z=&TffrakbQY`=JTnWDT3rp?zk2sH=I z5=ttc!LLop5I2J|V)p&Kbmgh+i3RsYGk3_ZY`$&^-3vrq{}BU>Kyh&529&6VkNH0_ zz?t^b#-aoh;q666^57kuu*`QJR`d%&4?LM9Og1l2XV5tTn`D5cMSf1N`}72tOoL3L zNS3Oqiam+N;z<6lBQO=?3bQYRzc*pOkwsOFj)zFy&mmK5$N#WObuLZ%OOiYoQvXVn zK)-C8=kFO`a525`%-#vd_JQagR9sy285g`Q?|!n9u-uLgT(zo_I&?@(EK)lQzNbfV zMpITzJNtIR^ywu19BV5*^vSpF)l1K}Mg4$;zW~Z+>bq|N)Acb^1%rX)_`%+!S2fVc zQKJ=>(Uo*%7u$aP;8gt;=|5TN4`O`EDgr2NFq`-%xU;Rq$b|gQY#Ctp^CBI;Mq+yN zQVI(|UaNboxzr9*7U9sfN&)=U9I3)v5=Aj~hf>=-dURUjD?_xCuw!p*xUZb-q4m^l z2}PX>4nkXc{&0Sz0mZ3UHaSJk$rxIYVy3LT*U|j{l0&N>k6o%Z2~9Q$CI)x_7yg?v zVecHJx|A0>l$1dX>bV_%2XjBiUUGeL@hB*Q44_(C#@aMj?T=2kB+M)F$;N`+OM&n( zOddNse0}1N4qJ5tFXFdCfSu|Y0Z|s_mYC|V)sEC?v@FeB+U-_r>{oUGtSSG(p=%{O z>%5~0@PLQTOJG$H20US4!vRBiqYdqdH|6{v0Vkt& zcM9^&GOk4tK;gsG5Q5kwF1O~(uQ7C!XTqRu>T^bh?!670FwN>rQPl%wk)DFSsqQI9 zTEB>H%vOgo!}_JKf~R9V1ZWj|^QwA>*ldON5c9RlA$>^=Ap*Eg96fLJ4hVYBa1s6f zX!#T)-jodH16O@eCPX7_@bl@39A zVwlR6{V$52fUT{$6f81f3Tb|L<33*enjGK&m3V3WOshki&zOGt26a z0f`oSI~0s0$wcQk)Ev8mkBE_Fbki3&{NOrkmpsTxM~7 ziVV@hzwFGHu%>26)z<3^RKL#6^T;+)h{o_FIR1%)9BSLA z$SlM@s-D*1J+5Y;{{F(w!Ojn>Hf2g&G0e4HoWIxnFBOtITK0;3Me1=+?)N@1+af)o zM7g16Bw*3&$ulI{NxVWxRNuHZC}C=a*Fyvkq+}UsjoGO+j?GR+jZrACRPU*(nC3Z~ zrI0w{rL{2qx@@yAx5h&aV;pB)K0jgfy2e=AB{2^NHz8St($MI8jgA)!h0Xa0p&eC)tGY%)l>=hvT~ zQaZkSdj z#SIqMsvtehLnVo=&isP>MyDocdG$fAxGuP)&P?h5WR?{J%xxYstD+(?d zs^RzWr8=B6EO7ECEkHdI?3zV}^hRNzR1y|hbKphKp-E4(TWV$#2z(>M2TH7(l3bMi zSESGx?9Bme6ct{GpEG3S1MQ2BsSP;bApcr=EC~>-Q1= z)F@ReSXailm#{cP?PP+|jHdd%JsrR=o`K`zm3jQr@Gha~qljJpP3H8d-%Fv;dBtq@ zWidEl)jS!URAm~RxZo8*|l4_*O1{@Lt_pVR&D*!BUDUfoiX9J z_NtEqQ#0`UswXZ%gTlQn>q+6uX!sZFE25Gw#{{buenf%a-!cq98=}0FnUnmX^k$lr zXzzi$c7$1Wn~yu4v4$!N^WeZzvh$8|7x8ki&n!{`rTt@t_IbS3TAK}pD7Vw!(1PaW zhbj%4J@q_x;rptD$)3l^q_%OrD7@!8syn2Y=1ujOWBUKz(HqsU7W4gPqIp_6xJvLm zoHopR^U~~r1fgJCr=rmzN6N0`mLEEzqC&u>Fc=KDZ9KE14FMhEqygTX}7OegfOL{nmoV0Z&yD6!$;?ukP<1<8I z7jJ8KM|a7THG}g{)?;tBrwmXp6NM`3Lv@w*5R$;yWq~r={R1tPP(Yu1@=i)HMWt&S zekAQ|6Ct!EOZWkw;1p$D(p&w~u^_ua4%Mm2+!7Y^fh3q|-K?zo*Ol}@$iM|J#7@i0 zlb^Z#-&H~0CvH>g*4#1kri?T*@|p0Utb5m;EkifEw{4fLDV*>XI|&{X^`JlB(d_Ma z2%7Wb>kNEqc6gLn{3Es;MSTTvVvE!Ti8I`d+k>(gCi}$+6O$&;E2TuSwd-*qsl@3U3%Qygii+zd9V?yuVaE z5c@SMR*goKnpfgo_Tnl&uPc7djVqiD>`n_cvNPH`lu{`|dwoAMAB)FHzNKCuL$jQK z6~2OzN>Am%3&@+7^GHpF4A0kL)m^pf^BkXZJ4@Rh3-;FJkxNq0mjv)o@yX(`Yk$Lc zdb?;Q5&@@1zDBPu{s9I4W^j6p#jDi+R29Xp{5jMFtF*|XV*(oigBuhk_s$n~A+~Rh z*0cMGQS{r57phcdI$%{yWe1JQseY(1Qp#3J&f_1m@DjM@tDSi5>@mm`r5j(V7+Msl zShxm`e*+VM9-#|Ta&Y>pUTo(i7v@-F#j!SOBvz1AgW8Lg|{bZLY zC$s%qv^lEzw|Ex(4h|pkbR=aK)hS!rS}XPo?py&q%5;!6Yi)K{Z%~Z&op$S8KzOWp z$M-fjK=c?R97U-%=oYZZkJ=pYDwnI-M7wrl#^c7ilH>vL0YhBwyh<9dgP_UAv?Wkdh(YHgbI_0Ti&35Vb0eGAKKHltit9alRifc)^(!OO zs4;c>yAowOB74N-Tkp1PYF~Z@vA=Rhdbu@gWTGviK7xOV!j`c7X*FJEj%Me`-!;%! znSrc1(Q?|Fn28P0_DU@If}k{EOQ2fz}RWZ`9)3zCcj!BCR z?6EO*l(l|UiaQj&K5wK(`kv&2TWY+!fX)#+oqnhftnF~kB~Y4;7N1%g;G@EcjK}LX z5zzm6#xX^j_usAp1fHWak>6@=bm^CF7U|e=hSrCflRsv;l9iT@4{YLcSW~_#OCN!@ zAHFMX+-%lK8B1GI3fIh4x|teD|BXfsJCUq9@vF19><3~qml6rbiTOapmbH1(TX^t! zE=}^LS-&1+R&;FX?`Z%p0RqFp^=;l`)5E5|OUy7ARmsEtpHDrI_~+?km^iTeOrSq5 za>y`UK#@q36<%ihj!^v51lo6Rq?0Uc09<@xK~K`dqq7FFDN0k(ith#oPc68}o$()0 zm@kCXDV=pdZ)le`1(Z*?cr5)34 zBuXl(;s-Bt;Jzy$eIJp{^24;eX_l{5Wq_4OIm#@lWtI@k2eQzFD3JQpp+r!_)JMq& z9vu|3Dg#^#8_ep|eRPVgg<7RIIW)CY!L-?obC#)pl+K@Of?QwTozT`0#@L~d-a3p1 z248+sU~gjy&?1Psme89Vm!$?!jEBA~l;=MXpXniBy=WfNk*6ly*q{-(_aa{mSDK9=yuVPn~WlcWQ}Rn-9ST`IkO}U5LXYjgccMU;9ubI*Ui!(%0qJLzy~!2y zwpP8>R!C0T)z1<~z>O_?bN8-G#TVHLeqBUCUhLK8ttBhZ8DICrWojRekvU+W2~R*+ z`4+o-vAYZ>emS^$Wks5-omk5VR=`ZX)sn&#D2TxA({}muS>O>QyKr2~|9PT-uTZE! zs%4(%f+;K9t~N|-{B%Po4f`03qqW(i0Ql4Nh7LUWMItYqVo(~DDrC>d+`^-*VIt=u zH#R;Hd>ac5GKAx3>nvI&GwvPH#uhgEdp&aH*9|P$MjNxlgbCOP^D~?SX5RQ#tx$s? z{7KXq(GFZHe~}j)s;JAS^Nq+0`n-8aU~tK~@Mg2U2|yp?_z$7T{UxDj z7YX=Uh0^&4^<)iw>Tf%aSETt9h*Dmfsc$9-1Q7;(n2r~;k{=6#_djbuF3pi>AqTY* zK}1WgQuITsn3DtCWiC;ObSL^-9W4?t82>IW$USH*Y9!8t8zZ}_m2?Jbrx7YaXRFB_ zyKy@h3h!5@B?Rh4#Vr?p;PYrzbm(ScUlFh_JVmV(+4$T!=XqfwpW0X&>wgX`TYYQk z0+k#9ieI=N{2Pn zRQbPHZ}=>dU1v&em|)So+Mr9 zr6ByzHmy^{RD zsMdiXgCbGb4NR497{mgpE2(T{8;ZDg#CI9WqC|Nr!51uVi*EA01#>s9D{`mf$6i<0 zqWOwBrx!euPN#Jn*;CvSP&jT1bx;M`ds_=S`D3XasJq-Y2{PJ(?XSK7Me5(2@egtM zj^4h8dWf1MD{Bq6(sleAPp0267m1-Pr|Zq#hyukV9)qe4I`l+gEx|G58ybNBOpd8k z&&x>iOD2Ra8J}B%1L^B`#!83N&Zu*{$F|9JWa#!RrL*_ab+V%xTD+s?$cZBA@YY}>YN+j+t}@7>++FZAit zsOswWVf`2Wyb~Qv&*q?^3^rNafpz_jLR~VS{E=)hn9b8%KoK|$thhd`5 z78EUx31lkB8K&A0pi6P5f<;#|T!>{+6%~%zUSJQkY%cf=wSn~wsAYmamGAw?S!2=l zktq{YC>o?8L0+!4o)G8qekkIKxoVpiT<;a7o{2)?U5u)(hXXt zAfm#mjRbwpJ~!MQEg<*b_(wMceiZnRoSsvm96tOBkl-HdQyp;648PbeKQIEYMpPmZ zG9Fk;rx!3T1O)T&n!u>vtAQdS*&;m5dtO?D-yY})W{qm)`*OEeYb8N$Y|lVgGwe@J z#CZX-5raD(iN#W?7bt}8+yF14O!#Dlxl9u{A=r52^-EVIE@0oJq|ndTcvVtU>e<}e z=pJE(bg)OrzS1nLLq(HYkph{85TT$5Hz2Orxsw}^9UV0O+ty#a1Z6Dt2(*F(v&Dbz-FVq!EVZGLVC2;iA3v8(KuFcO>4msZTEuduq_r!3 zd7apabmmnn!XDSyl0S;$(2*l7$w!*PW)Ji7H1X%51E-})`CBlE8dZtB;3W{%hPeQr>UisBDGR@S(W)Gwf4uspu+k(wLRB4rMbJ9+CGrz z^ON~8^LCKTHV5Yg`nd4_UY9RUE;Nm@D3RV!X3~jRc`#)jEhs`C>X1tkj4V&GFa4nq zUv$C9Ef2<`K0ts>?jmVk$gWnOh!$O_CF17k7g7kld6lrPp8(u_t{a4b%agBPq+9JGw(#G8KH_jqMbSh&Sw zV9wD43CkZeSg$~KKDx)v>LqhJo}Yg)z+{GdfHTiLbwb~aDzCxrq${xlZTEV^{&lKMzKm|=E zp6Kr-6Wo1(72O|kHtZr-JuO9XZK~s9aL{57Dkt_3Ylh`#&p|yI#9?pE9~Y)Z?xZ&Q z`f=xVycPJ)yWuRr{8YKp1VsmY4>|FwVaPkqbgw#fex9Z~rz9sNzC)nCgDpk5Tb<3kZB zI5Aq>MNd!bQvmR(C|Qq%&#PKN*5X~2>K|OmgY5liv!~k{m)ZCjbEuS|B{=`Kq$J%C zn`ZfN@+Lo)8>TzrEHy|RoJKk827moY00YH^aLWYI8~&!u3gw4ScF+OplWhC*q~bwA zofiRA#OWx>xO^aR5fMSoG!+%k8|icXW{qKDQJ9!O7rA}pOfypW%GIy-vN+>~%WquNpgOJ!IE~#QE08EabI7^yk>Vdfb$qB0ox^e>cQAVAAYJ#6qjC zPd;HLBJSYx0M>jWFp8ng^0ep|&F}U4yhHSgSkx1oe^w=YDP%ym$0{q zh<(i+DpD23lJ7lSGk4#`LwkBaX{u0XJYEg$Yit9tuwN zLDv8QBg*vt0*@6qkcxss68@zJw52Pyujc{_0@LNul=$SP=}yzMy#xUmb!3jj^Cg;} zy|4#;582gvQ}W@5WQPxDPp4|pLR1w3(e#Py8=dQ#1}I8j?upT6`@3I$&)uSo4%sJa zjt1QiU-Iua0UD6Hv|+QZl$O~`+Y22#cuMtqX+}KSv>wIeOCn68tpp8tE7y@wD9L9Bke$Qr3udE-z(8 zVUow=Uql1+YZmwp=*aDPNMO~SGpa0kJCOxqNlNI#KQr7l6evU}Ux5M@CIq1`@cph7 zDUp$!XxbaUMpvD6g_WukLq_Ee$=bqLN1bJ3m1B66a52xSiEH{~yywJ4xw#L7vF*b6 z)3-XavJh5NHW4Y(o<|E`N#7 zr%bOk1Tchv5q%20g`eury0#$(yO>^m?uFIosA1kLt~QA~I<5oBTdq zEWa<|sV?1PoyR5a?8G&xC7LBjP{M4s-Pjt<@wz>iN{v^?*B&fz+i`M`ZkdTBV~O@X z07n&RmYtxqy+S;OCoA)fm!2#rH;QZ1Ch8lJ?Qp(j@V7D9?!#yq5{{#zPaLkrf z?Gp-NofQ0^YIDh7nzfnh&C@R{z_hp7DtO_AiFG{P9rR~?*M61;s{b>aQ2uRpek6a^ z4iFTwG8FuSpPFf|1e+A}ryz@(1WXX?AX;<|l)0ZDawCl5rVMw;otJ{%TBLDwCZvvF z6%v@txO9uNK_4WF4pI5Tq=6Rw0}*mVn4C*@F5J|nE{i{5A297=X*0?-^^YAqJPM?J zz>U5lM6M{VciViLvX$^!*E;+dE-}V4B4t^8wD~K@2rw)e0 z@4R?Mpco5Jef7uwK2qZRvD6hmPT!Si0dr}1vbC8gs(jW^=h^gYJwK@dSL3FF=xT3s z5NzK+y4Fau-0>6H?dgw6o_v{4p%l4$g@+GrH;iH|zkDgW@4QgDce>mC*w=%w

ar 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%0Ay@a_KVu#ho2K#~LdzGG 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ⅅSYL^V}ZA9(crqMG4xC&WiNr+AOK=4!{r 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 wh~de>mUEeg3VbK?s$0W;>T(m!7Jt3lkN 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

Links

- - * [HTML semántico](https://curriculum.laboratoria.la/es/topics/html/02-html5/02-semantic-html) - * [Semantics - MDN Web Docs Glossary](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#Semantics_in_HTML) -

- -### CSS - -- [ ] **Uso de selectores de CSS** - -
Links

- - * [Intro a CSS](https://curriculum.laboratoria.la/es/topics/css/01-css/01-intro-css) - * [CSS Selectors - MDN](https://developer.mozilla.org/es/docs/Web/CSS/CSS_Selectors) -

- -- [ ] **Modelo de caja (box model): borde, margen, padding** - -
Links

- - * [Box Model & Display](https://curriculum.laboratoria.la/es/topics/css/01-css/02-boxmodel-and-display) - * [The box model - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model) - * [Introduction to the CSS box model - MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model) - * [CSS display - MDN](https://developer.mozilla.org/pt-BR/docs/Web/CSS/display) - * [display - CSS Tricks](https://css-tricks.com/almanac/properties/d/display/) -

- -- [ ] **Uso de flexbox en CSS** - -
Links

- - * [A Complete Guide to Flexbox - CSS Tricks](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) - * [Flexbox Froggy](https://flexboxfroggy.com/#es) - * [Flexbox - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox) -

- -- [ ] **Uso de CSS Grid Layout** - -
Links

- - * [A Complete Guide to Grid - CSS Tricks](https://css-tricks.com/snippets/css/complete-guide-grid/) - * [Grids - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grids) -

- -### Web APIs - -- [ ] **Uso de selectores del DOM** - -
Links

- - * [Manipulación del DOM](https://curriculum.laboratoria.la/es/topics/browser/02-dom/03-1-dom-methods-selection) - * [Introducción al DOM - MDN](https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction) - * [Localizando elementos DOM usando selectores - MDN](https://developer.mozilla.org/es/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors) -

- -- [ ] **Manejo de eventos del DOM (listeners, propagación, delegación)** - -
Links

- - * [Introducción a eventos - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Events) - * [EventTarget.addEventListener() - MDN](https://developer.mozilla.org/es/docs/Web/API/EventTarget/addEventListener) - * [EventTarget.removeEventListener() - MDN](https://developer.mozilla.org/es/docs/Web/API/EventTarget/removeEventListener) - * [El objeto Event](https://developer.mozilla.org/es/docs/Web/API/Event) -

- -- [ ] **Manipulación dinámica del DOM** - -
Links

- - * [Introducción al DOM](https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction) - * [Node.appendChild() - MDN](https://developer.mozilla.org/es/docs/Web/API/Node/appendChild) - * [Document.createElement() - MDN](https://developer.mozilla.org/es/docs/Web/API/Document/createElement) - * [Document.createTextNode()](https://developer.mozilla.org/es/docs/Web/API/Document/createTextNode) - * [Element.innerHTML - MDN](https://developer.mozilla.org/es/docs/Web/API/Element/innerHTML) - * [Node.textContent - MDN](https://developer.mozilla.org/es/docs/Web/API/Node/textContent) -

- -- [ ] **Ruteado (History API, evento hashchange, window.location)** - -
Links

- - * [Manipulando el historial del navegador - MDN](https://developer.mozilla.org/es/docs/DOM/Manipulando_el_historial_del_navegador) -

- -### JavaScript - -- [ ] **Arrays (arreglos)** - -
Links

- - * [Arreglos](https://curriculum.laboratoria.la/es/topics/javascript/04-arrays) - * [Array - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/) - * [Array.prototype.sort() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) - * [Array.prototype.forEach() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) - * [Array.prototype.map() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map) - * [Array.prototype.filter() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) - * [Array.prototype.reduce() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce) -

- -- [ ] **Objetos (key, value)** - -
Links

- - * [Objetos en JavaScript](https://curriculum.laboratoria.la/es/topics/javascript/05-objects/01-objects) -

- -- [ ] **Diferenciar entre tipos de datos primitivos y no primitivos** - -- [ ] **Variables (declaración, asignación, ámbito)** - -
Links

- - * [Valores, tipos de datos y operadores](https://curriculum.laboratoria.la/es/topics/javascript/01-basics/01-values-variables-and-types) - * [Variables](https://curriculum.laboratoria.la/es/topics/javascript/01-basics/02-variables) -

- -- [ ] **Uso de condicionales (if-else, switch, operador ternario, lógica booleana)** - -
Links

- - * [Estructuras condicionales y repetitivas](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/01-conditionals-and-loops) - * [Tomando decisiones en tu código — condicionales - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/conditionals) -

- -- [ ] **Uso de bucles/ciclos (while, for, for..of)** - -
Links

- - * [Bucles (Loops)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/02-loops) - * [Bucles e iteración - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Loops_and_iteration) -

- -- [ ] **Funciones (params, args, return)** - -
Links

- - * [Funciones (control de flujo)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/03-functions) - * [Funciones clásicas](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/01-classic) - * [Arrow Functions](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/02-arrow) - * [Funciones — bloques de código reutilizables - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Functions) -

- -- [ ] **Pruebas unitarias (unit tests)** - -
Links

- - * [Empezando con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/getting-started) -

- -- [ ] **Pruebas asíncronas** - -
Links

- - * [Tests de código asincrónico con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/asynchronous) -

- -- [ ] **Uso de mocks y espías** - -
Links

- - * [Manual Mocks con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/manual-mocks) -

- -- [ ] **Módulos de ECMAScript (ES Modules)** - -
Links

- - * [import - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/import) - * [export - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/export) -

- -- [ ] **Uso de linter (ESLINT)** - -- [ ] **Uso de identificadores descriptivos (Nomenclatura y Semántica)** - -- [ ] **Diferenciar entre expresiones (expressions) y sentencias (statements)** - -- [ ] **Callbacks** - -
Links

- - * [Función Callback - MDN](https://developer.mozilla.org/es/docs/Glossary/Callback_function) -

- -- [ ] **Promesas** - -
Links

- - * [Promise - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Promise) - * [How to Write a JavaScript Promise - freecodecamp (en inglés)](https://www.freecodecamp.org/news/how-to-write-a-javascript-promise-4ed8d44292b8/) -

- -### Control de Versiones (Git y GitHub) - -- [ ] **Git: Instalación y configuración** - -- [ ] **Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)** - -- [ ] **Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)** - -- [ ] **GitHub: Creación de cuenta y repos, configuración de llaves SSH** - -- [ ] **GitHub: Despliegue con GitHub Pages** - -
Links

- - * [Sitio oficial de GitHub Pages](https://pages.github.com/) -

- -- [ ] **GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)** - -- [ ] **GitHub: Organización en Github (projects | issues | labels | milestones | releases)** - -### Centrado en el usuario - -- [ ] **Diseñar y desarrollar un producto o servicio poniendo a las usuarias en el centro** - -### Diseño de producto - -- [ ] **Crear prototipos de alta fidelidad que incluyan interacciones** - -- [ ] **Seguir los principios básicos de diseño visual** - -### Investigación - -- [ ] **Planear y ejecutar testeos de usabilidad de prototipos en distintos niveles de fidelidad** - -
Links

- - * [Intro a testeos usabilidad](https://coda.io/@bootcamp-laboratoria/contenido-ux/test-de-usabilidad-15) - * [Pruebas con Usuarios 1 — ¿Qué, cuándo y para qué testeamos?](https://eugeniacasabona.medium.com/pruebas-con-usuarios-1-qu%C3%A9-cu%C3%A1ndo-y-para-qu%C3%A9-testeamos-7c3a89b4b5e7) -

- -### Firebase - -- [ ] **Firebase Auth** - -
Links

- - * [Primeros pasos con Firebase Authentication en sitios web - Documentación oficial](https://firebase.google.com/docs/auth/web/start?hl=es) - * [Administra usuarios en Firebase (onAuthStateChanged)](https://firebase.google.com/docs/auth/web/manage-users?hl=es#get_the_currently_signed-in_user) -

- -- [ ] **Firestore** - -
Links

- - * [Firestore - Documentación oficial](https://firebase.google.com/docs/firestore?hl=es) - * [Reglas de seguridad de Firestore - Documentación oficial](https://firebase.google.com/docs/rules?hl=es) - * [Obtén actualizaciones en tiempo real con Cloud Firestore - Documentación oficial](https://firebase.google.com/docs/firestore/query-data/listen?hl=es) -

- -## 4. Consideraciones generales - -* Este proyecto se debe trabajar en equipos de tres. - -* El rango de tiempo estimado para completar el proyecto es de 4 a 5 Sprints. - -* La lógica del proyecto debe estar implementada completamente en JavaScript - (ES6+), HTML y CSS :smiley:. Para este proyecto **no está permitido** utilizar - _frameworks_ o librerías de CSS y JS. - -* La división y organización del trabajo debe permitir, sin excepciones, que - **cada integrante** del equipo practique el aprendizaje de todo lo involucrado - en **cada historia**. _No se dividan el trabajo como en una fábrica._ - - ¿Hasta acá has avanzado en tus proyectos con cierta fluidez y sin mayores - problemas? Sé generosa con tus compañeras, permíteles aprender y practicar - sin restricciones, aunque tome un poco más de tiempo. Aproveha de - _coachearlas_, de hacer _pair programming_, una de las mejores maneras de - aprender es explicando verbalmente. - - - ¿Se te está haciendo difícil y te cuesta un poco más avanzar? No te quedes - con las partes "fáciles" del proyecto, conversa, negocia, exige tu oportunidad - para practicar y aprender lo que se te hace más difícil. - -* Solamente pueden trabajar en una única historia por vez, no pueden avanzar a - la siguiente sin haber completado la anterior. La historia se completa cuando - se cumplen **todos** sus Criterios de Aceptación + **toda** su Definición - de Terminado. - -Para comenzar tendrás que hacer un _fork_ y _clonar_ este repositorio. - -## 5. Criterios de aceptación mínimos del proyecto - -### 5.1 Boilerplate - -Este proyecto no incluye un _boilerplate_ completo, solo algunos archivos de -configuración basico, así es que tendrás que definir la estructura de carpetas -y escribir tus propias Pruebas Unitarias (_tests_). Para hacerlo, puedes guiarte -de los proyectos anteriores y/o organizar los archivos siguiendo una estructura -de [Modelo-Vista-Controlador](https://developer.mozilla.org/es/docs/Glossary/MVC). - -En este proyecto vamos a usar una herramienta llamada -[Vite](https://es.vitejs.dev/) para empaquetar nuestros módulos y arrancar -el servidor de desarrollo, el cual provee nuestros archivos utilizando -la estrategia `Hot Module Replacement` -[(HMR)](https://es.vitejs.dev/guide/features.html#hot-module-replacement), -esto significa que cuando hagas cambios en los archivos que estén siendo -servidos, el navegador automáticamente se actualizará sin tener que refrescar -y volver a cargar todo el sitio. Debes tener especial cuidado de no tener -ninguna _dependencia circular_ en tu código ya que -[eso puede ocasionar problemas con HMR](https://es.vitejs.dev/guide/troubleshooting.html#ocurre-un-refresco-completo-en-lugar-de-hmr). -(`eslint-plugin-import` tiene una regla -[import/no-cycle](https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-cycle.md) -que va a avisar si las tiene.) - -### 5.2 Definición del producto - -En el `README.md` cuéntanos brevemente cómo descubriste las necesidades de los -usuarios y cómo llegaste a la definición final de tu producto. Es importante -que detalles: - -* Quiénes son los principales usuarios de producto. -* Qué problema resuelve el producto / para qué le servirá a estos usuarios. - -### 5.3 Historias de usuario - -Una vez que entiendas las necesidades de tus usuarixs, escribe las Historias de -Usuario que representen todo lo que necesitan hacer/ver en la Red Social. Cada -una de tus Historias de Usuario debe tener: - -* **Criterios de Aceptación:** todo lo que debe ocurrir para satisfacer las - necesidades del usuario. - -* **Definición de terminado:** todos los aspectos técnicos que deben cumplirse - para que, como equipo, sepan que esa historia está terminada y lista - para publicarse. **Todas** tus Historias de Usuario (salvo excepciones), deben - incluir estos aspectos en su Definición de Terminado (más todo lo que - necesiten agregar): - - - Debe ser una SPA. - - Debe ser _responsive_. - - Deben haber recibido _code review_ de al menos una compañera de otro equipo. - - Hicieron los _test_ unitarios - - Testearon manualmente buscando errores e imperfecciones simples. - - Hicieron _pruebas_ de usabilidad e incorporaron el _feedback_ de los - usuarios como mejoras. - - Desplegaron su aplicación y etiquetaron la versión (git tag). - -### 5.4 Diseño de la Interfaz de Usuario (prototipo de baja fidelidad) - -Debes definir cuál será el flujo que seguirá el usuario dentro de tu aplicación -y, con eso, diseña la Interfaz de Usuario (UI por sus siglas en inglés) que -siga este flujo. - -### 5.5 Responsive - -Debe verse bien en dispositivos de pantallas grandes -(computadoras/es, laptops, etc.) y pequeñas (_tablets_, celulares, etc.). Te -sugerimos seguir la técnica de _`mobile first`_ (más detalles sobre esta técnica -al final). - -### 5.6 Consideraciones del comportamiento de la interfaz de usuario (UI) - -Estas consideraciones te ayudarán a escribir las Definiciones de Terminado de -tus H.U.: - -#### Creación de cuenta de usuario e inicio de sesión - -* _Login_ con Firebase: - - Para el _login_ y las publicaciones en el muro puedes utilizar [Firebase](https://firebase.google.com/products/database/) - - Creación de cuenta de acceso y autenticación con cuenta de correo y - contraseña, y también con una cuenta de Google. -* Validaciones: - - Solamente se permite el acceso a usuarios con cuentas válidas. - - No pueden haber usuarios repetidos. - - La cuenta de usuario debe ser un correo electrónico válido. - - Lo que se escriba en el campo (_input_) de contraseña debe ser secreto. -* Comportamiento: - - Al enviarse el formulario de registro o inicio de sesión, debe validarse. - - Si hay errores, se deben mostrar mensajes descriptivos para ayudar al - usuario a corregirlos. - -#### Muro/timeline - -* Validaciones: - - Al publicar, se debe validar que exista contenido en el _input_. -* Comportamiento: - - Al recargar la aplicación, se debe verificar si el usuario está _logueado_ - antes de mostrar contenido. - - Poder publicar un _post_. - - Poder dar y quitar _like_ a una publicación. Máximo uno por usuario. - - Llevar un conteo de los _likes_. - - Poder eliminar un post específico. - - Pedir confirmación antes de eliminar un _post_. - - Al dar _click_ para editar un _post_, debe cambiar el texto por un _input_ - que permita editar el texto y luego guardar los cambios. - - Al guardar los cambios debe cambiar de vuelta a un texto normal pero con la - información editada. - - Al recargar la página debo de poder ver los textos editados. - -### 5.7 Consideraciones técnicas Front-end - -* Separar la manipulación del DOM de la lógica (Separación de responsabilidades). -* Contar con múltiples vistas. Para esto, tu aplicación debe ser una - [Single Page Application (SPA)](https://es.wikipedia.org/wiki/Single-page_application) -* Alterar y persistir datos. Los datos que agregues o modifiques deberán - persistir a lo largo de la aplicación. Te recomendamos que uses - [Firebase](https://firebase.google.com/) para eso también. - -#### Pruebas unitarias (unit tests) - -* Recuerda que no hay un _setup_ de **tests** definido, dependerá de - la estructura de tu proyecto. Algo que no debes de olvidar es pensar en éstas - pruebas, te pueden ayudar a definir la estructura y nomenclatura de tu lógica. - -* Los tests unitarios deben cubrir un mínimo del 70% de _statements_, _functions_, - _lines_, y _branches_. - -### 5.8 Consideraciones técnicas UX - -* Hacer al menos 2 entrevistas con usuarios. -* Hacer un prototipo de baja fidelidad. -* Asegurarte de que la implementación en código siga los lineamientos del - diseño. -* Hacer sesiones de _testing de usabilidad_ con el producto en HTML. - -## 6. Hacker edition - -Las secciones llamadas _Hacker Edition_ son **opcionales**. Si **terminaste** -con todo lo anterior y te queda tiempo, intenta completarlas. Así podrás -profundizar y/o ejercitar más sobre los objetivos de aprendizaje del proyecto. - -* Permite crear posts con imágenes. -* Permite buscar usuarios, agregar y eliminar "amigos". -* Permite definir la privacidad de los _posts_ (público o solamente para amigos). -* Permite ver su muro de cualquier usuario "no-amigo" (solamente los - posts _públicos_). -* Permite comentar o responder una publicación. -* Permite editar perfil. +## 1. Introducción -## 7. Entrega +En la actualidad, el uso de las redes sociales se ha vuelto cada vez más común en nuestras vidas. Plataformas como Instagram, Snapchat, Twitter, Facebook, Twitch, LinkedIn, entre otras, se han convertido en parte de nuestra rutina diaria. A pesar de que algunas personas pueden amarlas o odiarlas, es indudable que las redes sociales han transformado la forma en que interactuamos entre nosotros y con el mundo que nos rodea. Existen redes sociales para todo tipo de intereses, desde compartir fotografías y videos, hasta conectar con otros profesionales en el ámbito laboral. En definitiva, las redes sociales han invadido nuestras vidas y continúan evolucionando día a día. -El proyecto será _entregado_ subiendo tu código a GitHub (`commit`/`push`) y la -interfaz será desplegada usando GitHub pages u otro servicio de hosting -(Firebase, Netlify, Vercel, etc) que puedas haber encontrado en el camino. -Revisa la [documentación de Vite](https://vitejs.dev/guide/static-deploy.html) -para guiarte con eso. +## 2. Emprende -*** +"Emprende" es una red social diseñada específicamente para emprendedores y personas con pequeños negocios que buscan compartir información, establecer conexiones y encontrar proveedores en su área. + A través de esta plataforma, los usuarios tienen la posibilidad de intercambiar ideas, opiniones y reacciones con otros miembros de la comunidad, lo que les permite expandir su red de contactos y obtener información valiosa sobre el mundo del emprendimiento. Con "Emprende", los usuarios pueden conectarse con personas que comparten sus mismos intereses y objetivos, y así avanzar en su camino hacia el éxito empresarial. -## 8. Pistas, tips y Lecturas complementarias +### Cosas relevantes que quieren ver en la interfaz -### Mobile first +* Quieren poder iniciar sesión y registrarse +* Quieren poder entrar con google +* Quieren poder registrar a sus mascotas +* Quieren poder crear posts +* Quieren poder editar y eliminar posts +* Quieren poder dar like -El concepto de [_mobile first_](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/) -hace referencia a un proceso de diseño y desarrollo donde partimos de cómo se ve -y cómo funciona la aplicación en un dispositivo móvil primero, y más adelante se -ve como adaptar la aplicación a pantallas progresivamente grandes y -características específicas del entorno desktop. Esto es en contraposición al -modelo tradicional, donde primero se diseñaban los websites (o webapps) para -desktop y después se trataba de _arrugar_ el diseño para que entre en pantallas -más chicas. La clave acá es asegurarse de que desde el principio diseñan usando -la vista _responsive_ de las herramientas de desarrollador (developer tools) del -navegador. De esa forma, partimos de cómo se ve y comporta la aplicación en una -pantalla y entorno móvil. +## 3. Historia de usuarios -### Múltiples vistas +* HU-1: Yo como usuario quiero registrarme a Emprende con mi correo electrónico o con una cuenta de Google para acceder a las publicaciones y visualizar el contenido. +* HU-2: Yo como usuario quiero publicar mi emprendimiento para que los demás usuarios me conozcan. +* HU-3: Yo como usuario quiero editar mi publicación realizada para mejorar la redacción hecha. +* HU-4: Yo como usuario quiero eliminar mi publicación para ocultar mis productos que ya no tengo. +* HU-5: Yo como usuario quiero darle me gusta a las publicaciones para apoyar otros emprendimientos. -En proyectos anteriores nuestras aplicaciones habían estado compuestas de una -sola _vista_ principal (una sóla _página_). En este proyecto se introduce la -necesidad de tener que dividir nuestra interfaz en varias _vistas_ o _páginas_ -y ofrecer una manera de navegar entre estas vistas. Este problema se puede -afrontar de muchas maneras: con archivos HTML independientes (cada uno con su -URL) y links tradicionales, manteniendo estado en memoria y rederizando -condicionalmente (sin refrescar la página), [manipulando el historial del -navegador](https://developer.mozilla.org/es/docs/DOM/Manipulando_el_historial_del_navegador) -con [`window.history`](https://developer.mozilla.org/es/docs/Web/API/Window/history). -En este proyecto te invitamos a explorar opciones y decidir una opción -de implementación. +## 4. Prototipo en baja fidelidad -### Escritura de datos +![Emprende](./lib/img/bajaFidelidad.png) -En los proyectos anteriores hemos consumido (leído) datos, pero todavía no -habíamos escrito datos (salvar cambios, crear datos, borrar, ...). En este -proyecto tendrás que crear (salvar) nuevos datos, así como leer, actualizar y -modificar datos existentes. Estos datos se podrán guardar de forma remota -usando [Firebase](https://firebase.google.com/). +## 5. Prototipo en alta fidelidad -Para usar Firebase hay que crear un proyecto en la consola de Firebase e -instalar la dependencia `firebase` utilizando `npm`. -Lee [las instrucciones paso a paso aqui](https://firebase.google.com/docs/web/setup). +![Emprende](./lib/img/altaFidelidad.png) -Otras: +## 6. Participantes del proyecto -* [Modulos: Export](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export) -* [Modulos: Import](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import) -* [Diseño web, responsive design y la importancia del mobile first - Media Click](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/) -* [Mobile First: el enfoque actual del diseño web móvil - 1and1](https://www.1and1.es/digitalguide/paginas-web/diseno-web/mobile-first-la-nueva-tendencia-del-diseno-web/) -* [Mobile First - desarrolloweb.com](https://desarrolloweb.com/articulos/mobile-first-responsive.html) -* [Mobile First Is NOT Mobile Only - Nielsen Norman Group](https://www.nngroup.com/articles/mobile-first-not-mobile-only/) +* [Yahaira Perez Becerra.](https://github.com/YahairaPerez1994) +* [Belen Neira Sepulveda](https://github.com/Belenoese) +* [Claudia Ortiz LLamoca](https://github.com/ClauOrtiiz) \ No newline at end of file diff --git a/src/Components/home.js b/src/Components/home.js index 36893e21..168a867b 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -49,7 +49,6 @@ function home(navigateTo) { const textarea = document.createElement('textarea'); textarea.classList.add('showPost'); textarea.value = info.text; - // textarea.setAttribute('data-id', doc.id); postContainer.setAttribute('data-id', doc.id); textarea.setAttribute('readonly', true); postContainer.appendChild(textarea); diff --git a/src/lib/img/altaFidelidad.png b/src/lib/img/altaFidelidad.png new file mode 100644 index 0000000000000000000000000000000000000000..21bacb6bd2e3735b3efc4428a251a112d312de3f GIT binary patch literal 204548 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 uY{^15G(!bwcU>lTU3t9pFWJ~-^}^eV-ZbLvXU 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 pW?57y(ZE6DB`O%;{!iKAz|w4 Date: Fri, 5 May 2023 10:33:07 -0500 Subject: [PATCH 73/75] realiza el readmi --- README.md | 568 ++-------------------------------- src/Components/home.js | 1 - src/lib/img/altaFidelidad.png | Bin 0 -> 204548 bytes src/lib/img/bajaFidelidad.png | Bin 0 -> 201127 bytes src/lib/img/emprendeText.png | Bin 0 -> 22495 bytes src/lib/style.css | 10 +- test/index.spec.js | 84 +++-- 7 files changed, 108 insertions(+), 555 deletions(-) create mode 100644 src/lib/img/altaFidelidad.png create mode 100644 src/lib/img/bajaFidelidad.png create mode 100644 src/lib/img/emprendeText.png diff --git a/README.md b/README.md index c64bad1e..2bc7c6a0 100644 --- a/README.md +++ b/README.md @@ -1,554 +1,54 @@ -# Creando una Red Social +# Emprende - Social-network + +![Emprende](./lib/img/emprende.png) ## Índice -* [1. Preámbulo](#1-preámbulo) -* [2. Resumen del proyecto](#2-resumen-del-proyecto) -* [3. Objetivos de aprendizaje](#3-objetivos-de-aprendizaje) -* [4. Consideraciones generales](#4-consideraciones-generales) -* [5. Criterios de aceptación mínimos del proyecto](#5-criterios-de-aceptación-mínimos-del-proyecto) +* [1. Introducción](#1-introducción) +* [2. Emprende](#2-emprende) +* [3. Historia de usuarios](#3-historia-de-usuarios) +* [4. Prototipo en baja fidelidad ](#4-Prototipo-en-baja-fidelidad) +* [5. Prototipo en alta fidelidad ](#5-Prototipo-en-alta-fidelidad) * [6. Hacker edition](#6-hacker-edition) * [7. Entrega](#7-entrega) * [8. Pistas, tips y lecturas complementarias](#8-pistas-tips-y-lecturas-complementarias) -## 1. Preámbulo - -Instagram, Snapchat, Twitter, Facebook, Twitch, Linkedin, etc. Las redes -sociales han invadido nuestras vidas. Las amamos u odiamos, y muchos no podemos -vivir sin ellas. - -![adem-ay-Tk9m_HP4rgQ-unsplash](https://user-images.githubusercontent.com/110297/135544666-4efa54f1-4ff6-4c4c-b398-6df04ef56117.jpg) - -Hay redes sociales de todo tipo y para todo tipo de intereses. Por ejemplo, -en una ronda de financiamiento con inversionistas, se presentó una red social -para químicos en la que los usuarios podían publicar artículos sobre sus -investigaciones, comentar en los artículos de sus colegas, y filtrar artículos -de acuerdo a determinadas etiquetas o su popularidad, lo más reciente, o lo -más comentado. - -## 2. Resumen del proyecto - -En este proyecto construirás una Red Social sobre lo que decidan tú y tu equipo. -Podría ser, por ejemplo, sobre alimentación saludable, feminismo, educación, -salud, energías renovables, amantes de las [Empanadas](https://es.wikipedia.org/wiki/Empanada) -o de los [Tacos de Canasta](https://es.wikipedia.org/wiki/Taco), -de la [Feijoada](https://es.wikipedia.org/wiki/Feijoada), o de lo que sea. - -Tu Red Social tendrá que permitir a cualquier usuario crear una cuenta de acceso -y loguearse con ella; crear, editar, borrar y _"likear"_ publicacciones. - -Por lo tanto, en este proyecto construirás una -[Single-page Application (SPA)](https://es.wikipedia.org/wiki/Single-page_application) -[_responsive_](https://curriculum.laboratoria.la/es/topics/css/02-responsive) (con más de una vista / página) -en la que podamos **leer y escribir datos**. - -### Los objetivos generales de este proyecto son los siguientes - -* Desarrollar una SPA con temática de red social -* Aplicar los conceptos de responsividad en el desarrollo de las vistas (templates) -* Implementar un router para la navegación entre las diferentes vistas de la aplicación -* Emplear un servicio externo para la persistencia de datos de la aplicación -* Crear una suite de pruebas unitarias que permitan testear código asíncrono - -Para lograr estos objetivos, deberás aprender y hacer uso de las siguientes -herramientas o habilidades técnicas: - -## 3. Objetivos de aprendizaje - -Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo. - -### HTML - -- [ ] **Uso de HTML semántico** - -

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 Mv**v0obrhKA0VV`WB>pF literal 0 HcmV?d00001 diff --git a/src/lib/img/bajaFidelidad.png b/src/lib/img/bajaFidelidad.png new file mode 100644 index 0000000000000000000000000000000000000000..69ccdf2defc3c425b9b160977ba719e5252eef55 GIT binary patch literal 201127 zcmeFYXIzr+`!`NyQ_XC-HCvW@Hg0SD^Eaw_v!gSp%xU z^o%p6Ib?JjAm6{k(q&85e@Dzc0rvmA2ECKNVEn(6`&X<*{&ymIuz$z@Ok!gH`<4IE z#s42Q76>>7=%;iucdm4d>;|7@quu!Ma7sX(ifl5vZVc`hF7b`~3?@qd-3g6mPE@W& zvR5dEg(R@>me$V8ZP{4NF8u0yHJIG$&)vFs)t!;Y6OLTSp+H-ZOVG4C_5x3$mvRuh zaA6Y16sI!2xT{=>m>r2%3sY~qb*)nFmY=RD@U-o>~V5oz?(rrEoJUkGAgQaT!dDK=MHEk z4kKz#=8(r2pEI39N8)RRO%Nd+&7K8p>*$I&*{Gl; zs6R#eGM4F2Ul^}Lq80?*?uSIHk*XPu>x+x8tfKNLWWtR>CNqU?GzG3s3}`0@AeUcV zZfvsZ+Ix=AT7bH(A!fK^?|DQH+1ZLStmpQgKsZ3rt_={(Z2u=Dd)_Hfq>>)2F|bg3 zRXJ1{F*`RF_sEkaB*%5u zV-e#T$HLTY!?w!M_>G_UKl!z#x=zY~luHj!TgG4@ zFSi$pwu&@hssr<%ILbivjbn@5fl>7f>Xlhp$!M6m=Thp=;+m7ao#Of49`ke)!|Jk zw0;twKYh0;S>|-YM+-C_L_J*YJm`&%ES&s!{1{%3k^M%uk|Fz{$Z6%!^jp(_I+)jx zn&ro+>MbFIa{h+a)5=dH_sg`sFei)O^Cus>+N>6PC&B$VXRlU@?RT%FUo}?QyS}x_ zhG}p26y^4GHxGjecJqC~7DGjZBks?Urlp~WFTCP_|D4w?Bp~3qf|W_mY)!q|X|j-t zG=bQ;F1d{mB8U|lhy%KAnETX(5sii0iPuq$^LqdLGKqi zYFvSH+#6yht`r-Wkn2__+N!i7Tq(}Pg&Ab|mhaAwFoHL|ppBbrkC-1ThdMT_N{3Tn z4xA*z#hD5SZe$Ej2^hVX;s!DY-`@Sj|fa-IxPj9=(Moje=6Q`&$xle;qer$+=;Z&)C{J&3}* z)(LJUC+Q0;=6=&O+4%h$M{-k&E$e#k2~Thj@|08Iu!m~bJj-KSWb6V~$Mxi-69Y%9N>`|HxX4<^1b z{j#&CxPH&hBgO@0Cp@&T1@^^=Z;OL5o7Wec(wGUeY3~2b2h<_^oV z_g8$X^LJV{*s zDU3eZsjzM-5P1CXK}>l-(E++5e1?lvi^?@9-?J^uIVwl9xXv+leUbiGm+-cDB;xy$ z_6m4Rm$el6ggv2^#R;=C{TV2=FXvGWa=l=BVki+}PJH*>@d9pHI^#=AC3+f@0k_5+ z8+)osI_~tw^~Bbv%~bjx#7Y+EbLOFNtBq^29~1$tpjcI_EKVHCw>4#x6pS<8$M zDZ+HD)ySJFoC>HbRw$zcdWoaNu

w)6c7lnzo`u=A+zomiXTQ&)qWzEX>0C$w6P^ zU1lOWD#pv-Pk75B+87rje-f0qsQdGBhCS|JLD!F9P*(PdHyRAN=;_nrt)lDy@Id--kIQsd--#AYn0YnmgZayou|7donnJ4#@E z2yas**tvCwbRZ34yHqS;Xj!`_C)!Clv7d0?eOpZ+RIRMl2+`Atkp-a^5BFPdkKA{s!Jn4x%$#tEd}Uf2IvCQFGM&?OgQSan`A1BOy$2_u!%p79V$z;63MKfe>jfR=pU2M*b@52ww!^WlqaF6wwAIr(2z1Q=C z*G{DT@puv}Bpf-YL+AtI&CIu|qX&x@OvHX%S0G%GCV63AiXr!m9)+BNr#0zHE!XPs z7O>A(>Tk!|F@qqiZm(4eQ;c#fHeU_#wOQ!bgg%`T7%aUo66#W}K;lK !=D#SYK z0#bfVdM68{v;^tA@Z^z~Z!-HOXYxOXbyz#~l1s+@nu)wJ}&`rd6^$sjk zLNcTpM(CR~HXW}WD)MVxHcy|++x^O;1v#&U)@QDo$!)KDz}!DQdUEBpruAD9!`t-X zxwXAHQogO@Q@Q9>X|Hz!`ioIt_5XanX7vuPpH({)h&A|Lv8{30=pZbsnb56y(ufum zKm{Xvb}#`6vqb)u688R5{iQpVFS1exE(YxBQ-9xWuJU`}c!8J)Vr)H!lNHH(I*n!w zS(X>Q>kdKV%iM{p^JzYNMje!JuLomWW#*orYaKuB9h-=p$_Vrw6h>r@I%G`?w02pk z9E+Ct@-5VX64*VQ4!u<`t(VWOJQO|ARxdUnZG!5uM#2!&XhG)TQDF6F*|iR zc>Ey3MMYV&u&O9kJ>`y*+xJqPy9~$i6!tr;OHvwS4r1`h`bVfHE5aZd**KUd9u ze~htnQB(M#^UB3rhG_x$E|)p>gQ+%0p@1GT8I7ITpV0BMp%pH|8!IxXDo$9MK zHyj=8#8s=0_WH>z&(U8k#Jll42vY3NcFYAbF4?pD6-w&FSwcrDWy4aYAa-Qd3X(;9M=jx?bbTaz>)VU}8%{Q6< zMwpxBgntGv;GFK{0kX6s6mhj_?>#G`7{^eM+{nbrjB64D3{2DoBp9j1A`Q=@gfl#0J|qFVt(fdJ(NP9 zU~H&>r~9mo2Nv>O)aY=e^5a6gxnbY$AM37`$EjX;%d|1{-Wx|UZ5W%-la!1|%oJ^3 zXs!q}sQU%w+}`ps^{W*~RT+>}hZ>$23DHQ_ z{K}dOZ=qz@Ia%k@KGyvx->2k* z?S7xe=6I5kN&Th{vYJr(l@J&U8!Hd||$ZO4hojtv4xH2i z+=#u<7q_P`%i+KsDr7xuA)xqZ^fT+rPaZRWS@#{N@0lDw9Dv(QN*4RvGgK5N90PXV zdkeZR6h8&3g} zpZLqS=)F|4hnG=K3csrNdwCpwxXE4!s&h9-w6`hz{G^{7)PS-dStpp=Obj4To`pXj z_1ZJboT*f5Udw_P8Ciu&Z4V!72y}%aDy@upe_G?wqD~UN(;qvo>K~-5nuOz_0MyFQ2y8dbaLJ~CJk!@Qc@8xrMyxPaY%al$%EY=msXf|rEo!CbauafN z^bYRQol+rB%iukuLvHw$0Zd@jSbS0LtmEd)k_Kni3f0)e9jx2GujHv~EY5NfNkTL# zfH@5*KH20ybtEHZM?1AdNHR})Q)iHo+gej8hxhxbL-*9{tUz!}io*6;RW~_(3i%!x zMFB#xo>dz@XLnk@L(kb=Y+w34vV1!bfZv(_UB$&bc`eD!6E`2MZBDr8oK3x>Cd(`qs?y(#*ZS=?eMgHa;x2OjhO6}h`Osn8JSX&se6NseqX>br8ife zPJ{{x&#FKW%lhrVpeI(D-9IX$&jd%~<}Wm9K9H<+RT!N7b&L2`m~w}lW5gs+;pV~ANwZjqI&t@JH!U4m4$bdm{>g?C+8$ZVwPQ+A^S>Ex>tDng8(tuFS1^S5PoqGs)e^iq7-87}HMfS|7mo;bvADBJ zahg$hlt6j%c9OjosrJYuPH4_GtWqRpTG@EA)AY96v(PVvpInAtdpCo-6ikzcH6MUk zS>gAa%C_L)Q0!kc^KdkhAhTPCE&_fNg3g5}p?nd2KYIzs`!uJy1`p zlrfH}9Y3w|ZTc*y+H!i_Oyp+DyK%fnV;m%{{0otEb9+pUji7U&mXOx;WQKQ+K69vW z!JfV?R7h<_pr3S|^~Yi4-j%J$Eq-y!zJLDn;@x*3`N2+um=8swgGyujoYK$0{Ub{* z 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 EMS1Ae+=s|`7?!SIPH%bhvE0lT*tCJml%|-q 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

Error 404: página no encontrada.

- volver al Inicio +
`; const keep = bug.querySelector('.initButton'); keep.addEventListener('click', () => { - // const user = currentUserNow(); - // console.log(user); - // // eslint-disable-next-line no-unused-expressions - // user ? navigateTo('/emprende') : navigateTo('/'); + navigateTo('/'); }); return bug; } diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 626a7dd5..ebd52e12 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -1,7 +1,6 @@ import { initializeApp } from 'firebase/app'; -import { getAuth } from 'firebase/auth'; +import { getAuth} from 'firebase/auth'; import { getFirestore } from 'firebase/firestore'; - // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries @@ -18,3 +17,4 @@ const firebaseConfig = { export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); + diff --git a/src/lib/img/altaFidelidad .png b/src/lib/img/altaFidelidad .png new file mode 100644 index 0000000000000000000000000000000000000000..eadfbf1c7ae33b4bbd5b16bb143a6fee54a29880 GIT binary patch literal 205507 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�GT-pJ(d?!s@>|EwN_rd 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 uY{^15G(!bwcU>lTU3t9pFWJ~-^}^eV-ZbLvXU zbE;SJ!|R6M7ceN!6H0h4HE@fECr}ZnQRs27Z1g^GWVuo29AKLEH7sG3Vw|i=BmtnR3s4 zj33{Kb7=Ve?~#77>47e_HNaCZ^0ppi55u~9AG$cYR?vSyJ{YE;2xBAC^mo>6V?!-h z^&GEq+)QfO>Gs3Dy{7;0aDR(6Jr-LIoO?5yIt3Db`FG&ZoAxc$B38&1W{}HGKC|?< z%ZIS<mB^RtcINRm`|BM;z4_Rm6jSA&wXa4_-BY17Z*EmBW2L^Q<{o;6E22!H z`?%r9%WeJiTz$`QIE*=aK@>t$|zjX>ZC=Ep|2uH%bM8qqZq`kKa%Qf!M_u z&tL4`w3P>W2%|UG4{v~E)07KttB9iZEx%`T-h(>6p$gIE?~Uyyz0!zi6Z;!|_wSSf?#wKs)T3)up% zS|%qieEz=O7o*M|Iv#9|{mCfxN@WEr<5G5n0P?A5L%^9uj@HA@Av=Ho!8%Vu%#4s; zK;HT*=P;gtIu!l2b@)%!?1#C~;YQJ4MMOa>CywcSKlrTlq0+BP=1gOABg^f`3#)IE zMTv0rUoBF8O}&cby?uc;O_3HsdHAe~rjd1J)k6bzJsH?sgnX?hYR2O zLq`RkmKM%e&YDit-|&z+T14d!n%N0#B(SKNBycKZ>{xiufc!C#@a>DYx2esUfTJ4N z16yx)3yIa9aK8;&ok(lfP{u?(IKUW4$-F*V3^S z{%}m<@b0|^jfaN{EW74Ab?(}bS=L3rOw486^v8Fz0ZQ_YYlAjh0*8FFhH5)(mi#5) zgR%6TxAR)_4^H8`MAX&wYTUITb8%sR2K``cH>-%PrqVN>OT2_g9$0L>O4y=F?>t(Z>bHqUF;>=^mLN z5St+5dAAU{H8&_@^~f2D86>Dh1O0rnBH0|XBXnwgRjA|l*cFxxOaz|sLMHQRitBQN z_^+wlfpOWsRyjQ}RAoaU`|P;$rNaHgTez~ZQO?EQ{azdT`!|^{H}AgJihhSlVIL_tQ*`LJL6Tg z%6rIb5C8

@4)gzMu(HSA!vvlJcQHd0#b1oS9(Y3 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 i12_);C|Zm#lsO literal 0 HcmV?d00001 diff --git a/src/lib/img/emprendeText.png b/src/lib/img/emprendeText.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b86e191a332860729167fded75318608882b09 GIT binary patch literal 22495 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 Nih_oGjjTo3{{Xu`@}~d* literal 0 HcmV?d00001 diff --git a/src/lib/style.css b/src/lib/style.css index 063b240a..718c3d85 100644 --- a/src/lib/style.css +++ b/src/lib/style.css @@ -532,7 +532,15 @@ u { background-size: cover; height: 100vh; } - + .createAccount, .initSection { + margin: -69px 0px 9px -273px; + } + .formInteraction, .formCreateAccount { + height: 46vh; + } + .textButtonCreateAccount, .labelEmail { + margin: 11px 170px -28px 0px; + } .sectionLogin { background-image: url(./img/fondoDesktop.png); background-size: cover; diff --git a/test/index.spec.js b/test/index.spec.js index ea6ff275..dc61aabe 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,30 +1,34 @@ +/** + * @jest-environment jsdom + */ // import { navigateTo } from '../src/main.js'; import { login } from '../src/Components/login.js'; -/* import { signIn } from '../src/lib/auth.js'; */ +import { home } from '../src/Components/home.js'; +import * as postFn from '../src/lib/post.js'; -// jest.mock('../src/lib/firebase.js'); +jest.mock('firebase/firestore'); +jest.mock('../src/lib/post.js', () => ({ + post: jest.fn(), + ref: jest.fn(), +})); const navigateTo = jest.fn(); - // Función: Inicia Sesión describe('login', () => { - test('is a function ', () => { + test('login: is a function ', () => { expect(typeof login).toBe('function'); }); - /* it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { - const myHtml = login(navigateTo); - myHtml.querySelector('.getInt').click(); - expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); */ - it('Si el usuario ingresa correctamente su gmail y su contraseña debería ir a home', () => { - const myHtml = login(navigateTo); - const email = myHtml.querySelector('.inputEmail'); - const password = myHtml.querySelector('.inputPassword'); - email.value = 'amigas@gmail.com'; - password.value = '123456'; - const button = myHtml.querySelector('.formInteraction'); - button.submit(); - expect(navigateTo).toHaveBeenCalledWith('/emprende'); - }); + // it('si el usuario se logea con éxito se redirige a home', (done) => { + // postFn.signIn.mockResolvedValueOnce({ user: { email: 'prueba@gmail.com' } }); + // const section = home(navigateTo); + // section.querySelector('#email').value = 'prueba@gmail.com'; + // section.querySelector('#password').value = '123456'; + // section.querySelector('#signin-button').dispatchEvent(new Event('click')); + // setTimeout(() => { + // expect(navigateTo).toHaveBeenCalledWith('/home'); + // done(); + // }, 0); + // }); + it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); expect(navigateTo).not.toHaveBeenCalledWith(); @@ -35,3 +39,45 @@ describe('login', () => { expect(navigateTo).toHaveBeenCalledWith('/register'); }); }); + +// Home +describe('home', () => { + test('home: is a function ', () => { + expect(typeof home).toBe('function'); + }); + + it('contiene un boton para dar like', () => { + const DOM = document.createElement('div'); + DOM.append(home()); + const haveAButton = DOM.querySelector('.like-btn'); + expect(haveAButton).not.toBe(undefined); + }); + + it('Si el usuario da click en botón Salir, navega a inicio de sesión', () => { + const salir = home(navigateTo); + salir.querySelector('.goOut').click(); + setTimeout(() => { + expect(navigateTo).toHaveBeenCalledWith('/'); + }, 0); + }); + + it('Si el usuario crea un post se debe guardar', () => { + const createPost = postFn.post.mockResolvedValueOnce({ info: '', userEmail: 'test@test.com' }); + const section = home(navigateTo); + section.querySelector('.areaPost').value = '0test post'; + section.querySelector('.post').dispatchEvent(new Event('click')); + setTimeout(() => { + expect(createPost).toHaveBeenCalledTime(1); + }, 0); + }); + + it('Si el usuario deja el campo de post vacio sale una alerta', () => { + postFn.post.mockResolvedValueOnce({ user: { email: 'prueba@gmail.com' } }); + const section = home(navigateTo); + section.querySelector('.areaPost').value = '0test post'; + section.querySelector('.post').dispatchEvent(new Event('click')); + setTimeout(() => { + expect(global.alert).toHaveBeenCalledTime('Ingrese post'); + }, 0); + }); +}); From 0a72a1f6600d977ea2ed474b0d57f2497381d4f2 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Fri, 5 May 2023 13:56:20 -0500 Subject: [PATCH 74/75] =?UTF-8?q?Finalizaci=C3=B3n=20del=20proyecto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++++-------- src/Components/mistake.js | 10 ++------- src/lib/firebase.js | 4 ++-- src/lib/img/altaFidelidad .png | Bin 0 -> 205507 bytes src/lib/img/altaFidelidad.png | Bin 204548 -> 0 bytes src/lib/img/foco.png | Bin 2738 -> 0 bytes src/lib/img/fondoHomeReadme.png | Bin 0 -> 378008 bytes src/lib/style.css | 35 +++++++++++++++++--------------- test/index.spec.js | 20 +++++------------- 9 files changed, 48 insertions(+), 50 deletions(-) create mode 100644 src/lib/img/altaFidelidad .png delete mode 100644 src/lib/img/altaFidelidad.png delete mode 100644 src/lib/img/foco.png create mode 100644 src/lib/img/fondoHomeReadme.png diff --git a/README.md b/README.md index df515e4e..e4491248 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Emprende - Social-network -![Emprende](./lib/img/emprende.png) +![Emprende](./src/lib/img/emprendeText.png) ## Índice @@ -9,7 +9,8 @@ * [3. Historia de usuarios](#3-historia-de-usuarios) * [4. Prototipo en baja fidelidad ](#4-prototipo-en-baja-fidelidad) * [5. Prototipo en alta fidelidad ](#5-prototipo-en-alta-fidelidad) -* [6. Participantes del proyecto](#6-participantes-del-proyecto) +* [6. Testeos de usabilidad ](#6-testeos-de-usabilidad) +* [7. Participantes del proyecto](#7-participantes-del-proyecto) ## 1. Introducción @@ -18,7 +19,7 @@ En la actualidad, el uso de las redes sociales se ha vuelto cada vez más común ## 2. Emprende "Emprende" es una red social diseñada específicamente para emprendedores y personas con pequeños negocios que buscan compartir información, establecer conexiones y encontrar proveedores en su área. - A través de esta plataforma, los usuarios tienen la posibilidad de intercambiar ideas, opiniones y reacciones con otros miembros de la comunidad, lo que les permite expandir su red de contactos y obtener información valiosa sobre el mundo del emprendimiento. Con "Emprende", los usuarios pueden conectarse con personas que comparten sus mismos intereses y objetivos, y así avanzar en su camino hacia el éxito empresarial. +A través de esta plataforma, los usuarios tienen la posibilidad de intercambiar ideas, opiniones y reacciones con otros miembros de la comunidad, lo que les permite expandir su red de contactos y obtener información valiosa sobre el mundo del emprendimiento. Con "Emprende", los usuarios pueden conectarse con personas que comparten sus mismos intereses y objetivos, y así avanzar en su camino hacia el éxito empresarial. ### Cosas relevantes que quieren ver en la interfaz @@ -37,16 +38,26 @@ En la actualidad, el uso de las redes sociales se ha vuelto cada vez más común * HU-4: Yo como usuario quiero eliminar mi publicación para ocultar mis productos que ya no tengo. * HU-5: Yo como usuario quiero darle me gusta a las publicaciones para apoyar otros emprendimientos. -## 4. Prototipo en baja fidelidad +## 4. Prototipo en baja fidelidad -![Emprende](./lib/img/bajaFidelidad.png) +![Emprende](./src/lib/img/bajaFidelidad.png) -## 5. Prototipo en alta fidelidad +## 5. Prototipo en alta fidelidad -![Emprende](./lib/img/altaFidelidad.png) +![Emprende](./src/lib/img/altaFidelidad%20.png) -## 6. Participantes del proyecto +![Emprende](./src/lib/img/fondoHomeReadme.png) + +## 6. Testeos de usabilidad + +* Se mejoró la profundidad del botón de "Registrarse con Google" para que resalte mejor. +* Se cambió el color del botón de Google de gris a blanco para que no desentone con nuestra paleta de colores de fondo. +* Se corrigió el botón de "Salir" para hacerlo más accesible para el usuario. Se añadió el texto "Salir" al icono. +* Se eliminó la función de "resize" en los textarea para una mejor visualización. +* Se añadió una imagen de fondo en la pantalla de escritorio para una mejor visualización. + +## 7. Participantes del proyecto * [Yahaira Perez Becerra.](https://github.com/YahairaPerez1994) * [Belen Neira Sepulveda](https://github.com/Belenoese) -* [Claudia Ortiz LLamoca](https://github.com/ClauOrtiiz) \ No newline at end of file +* [Claudia Ortiz LLamoca](https://github.com/ClauOrtiiz) diff --git a/src/Components/mistake.js b/src/Components/mistake.js index b5962ed4..073fcfe6 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -1,20 +1,14 @@ -/* eslint-disable import/named -import { currentUserNow } from '../lib/auth.js'; */ - // pantalla - error function mistake(navigateTo) { const bug = document.createElement('div'); bug.innerHTML = `

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 Mv**v0obrhKA0VV`WB>pF diff --git a/src/lib/img/foco.png b/src/lib/img/foco.png deleted file mode 100644 index 66ff1949564e3fd65893dd2a18571f3315884bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2738 zcmV;j3QhHiP)mpz&R)KuE&OpTKhc!beIaZfhxC^QliQh2%Ql?KA}

AT=ziNew)$US0!$^v>nFVcguRW! zEQNx>@yEKIh~Bwm>_2{hZXhcuW!JPSkwvFOMDIHL=%rhstKsaNQOsHJGs5NRsIq$# zMd%gA>1#se#zkF;^4b|L5U*&puEa=Jn&FzO&jhc!osO_oDu8th^)O5 zujq9DYdfdCNO|Zj&X}7Bjwi`o->y!)tDpQ51@&X-c?3Y}J&csEI3KUzJMOJT^SGOX z(5O-}$6B#*PiliMjhdhTzgtjY8X(c2HX=1lCCqtjQ## zg9Qm(St~*KfS6W~GcSnY=4T*Jh)^in&Q@UegHx+QKZu~5yEZ@g;ksMKZKoNl7g#SL zDWdymXj$k;Q{^0|fb?_Kcn*FqfqW{a!@p7j+b|7?lw?i`pNb!^Lmnu2r63xt=vWo< zC0D3uq73fIF;ezBROs_k2&g-AS)5}P@H~WDa;RqfdY=n}*f(ZRJVGGSB&5l64nukU z6TKl16iiAJq;Y8#xCqK=ns|1NPqzo^;LvAI*jN!lb(=@KnTUj@Mbp(-IXVP6gghm&(`>91wTFvgR% zY_mK^m^QhijK~9jOsuiTqn;v!wq$4`G%QC4w?QY+9YY+ELn2)I)Q(w9{?S6g)78bl zIe@jt+K7FaF;N*qAuN#!X~cOln=Vd;b7?*EhABfBaZJZum#7O7&xWFkrH2wSJ0|VI zpgX3cvcMLMJ)5nGvOX~Hvytq2m>qBHOhznaQ1XIq7fE96xYZ)Z z1@Ko(p!}4KYekb}=>1p}SC@C%FWUJs$PH1@G$5z?<&|wCY_FdwFJ>) z$rUP|6^5dFW#|%|{1>E~)H23rQMp;ILZOGW$3vTWr1}uy zYBue$Vv4r+&+ zBcRQg!#)|m_KKsZ;#16e$QzKF{Sc1nFncZ0vZE@e<91Am$O-+K18LT%^avThWdix- zs#6_hkv1n4o8G{5pi9S5ApDBxno26yZOitORDQo8#K;IF_I3QUNhnD;lB^j8-~FUJ zq^ZLk{ck%+2EWrucACU!G$Y%{02OP1Tc5@|iF1%o zzq=p)1@0^tjNP~=eqUkgwX@tfV}vE@ug9)j@w&oDi5tN}enZA=2tYS*U2!TGtmP~A z;qA#>xIU;L%g=U~kPcHx86d^g_(v_go$v*jxYd-ebWA5j?)tKg6XJtH!PMg{oWgZa{6dP`M@V+^)<1!DOuSU7V*e@&^ZR@pyTY8$ud{n(W3qMq_hG83RGW zH0gE~6AK$O3*`X};U}p;W= zw*@pUJ1KpE4nQnr?u&9oHbHmkeZeG{zEW!%TV6s_?efdGmA=bR>K0-A(4u&iDk||aLdKYCok&HB9gN02a{m__S@6;TRdMaiIDo7Xpkvm! zTb)M-^s+!O9Le~N$O_!#hNgRlxxVOC%pV66(PRG_7ssLvCtsiQ_lEZs#?m?+(7Wi= z+0Um9f*wGRtW+vyPad@37O!)+aW|#^!R;o90+bE${1ti#=Etdyz{`-)3u_*CNc4jv s&Fv*_bl-R0>{|29>k~eL8^|C31HnQHOc`j5oB#j-07*qoM6N<$f}Le5J^%m! diff --git a/src/lib/img/fondoHomeReadme.png b/src/lib/img/fondoHomeReadme.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f3b8ae0903f561c5fb56ea72ad610eadb164e0 GIT binary patch literal 378008 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

mv=YK7R)PMg%sRQ)?eMcxQW!-J<{E8H>F}5= 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 |H9-vGD674*M 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 z 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 @ssRosvz^;}L^)60GI8~o%B_BG0TO0!4u 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 w3NuLd~23CfhRRttslYH~+aXaSlC%+nx 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%0D?p@kL&dL2a2A$0Ypmn6o}lC`QJE^!+? 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 ({ + signIn: jest.fn(), +})); jest.mock('../src/lib/post.js', () => ({ post: jest.fn(), ref: jest.fn(), @@ -17,18 +19,6 @@ describe('login', () => { test('login: is a function ', () => { expect(typeof login).toBe('function'); }); - // it('si el usuario se logea con éxito se redirige a home', (done) => { - // postFn.signIn.mockResolvedValueOnce({ user: { email: 'prueba@gmail.com' } }); - // const section = home(navigateTo); - // section.querySelector('#email').value = 'prueba@gmail.com'; - // section.querySelector('#password').value = '123456'; - // section.querySelector('#signin-button').dispatchEvent(new Event('click')); - // setTimeout(() => { - // expect(navigateTo).toHaveBeenCalledWith('/home'); - // done(); - // }, 0); - // }); - it('Si el usuario no le da click a getIn, no debe cambiar de ruta', () => { login(navigateTo); expect(navigateTo).not.toHaveBeenCalledWith(); @@ -46,10 +36,10 @@ describe('home', () => { expect(typeof home).toBe('function'); }); - it('contiene un boton para dar like', () => { + it('contiene un boton de salir', () => { const DOM = document.createElement('div'); DOM.append(home()); - const haveAButton = DOM.querySelector('.like-btn'); + const haveAButton = DOM.querySelector('.goOut-btn'); expect(haveAButton).not.toBe(undefined); }); From 972f050456368b1cdb9b74379ecdd5bc1b986a29 Mon Sep 17 00:00:00 2001 From: YahairaPerez1994 Date: Mon, 8 May 2023 10:44:26 -0500 Subject: [PATCH 75/75] Ultimas actualizaciones del proyecto --- .firebase/hosting.ZGlzdA.cache | 10 + .firebaserc | 5 + README.md | 1 - .../Logo.png => dist/assets/Logo.528a4c8f.png | Bin dist/assets/fondo.9df9d0fb.png | Bin 0 -> 8043 bytes dist/assets/fondoDesktop.64fb7a8f.png | Bin 0 -> 14144 bytes dist/assets/fondoHome.d287116f.png | Bin 0 -> 4590 bytes dist/assets/fondoHomeDesktop.5b401cef.png | Bin 0 -> 555591 bytes dist/assets/index.07071509.css | 590 + dist/assets/index.2813bd98.js | 17990 +++++++++++++++ dist/assets/index.399e54be.js | 17991 ++++++++++++++++ dist/assets/index.b9154af1.js | 17990 +++++++++++++++ dist/index.html | 18 + firebase.json | 16 + src/Components/home.js | 2 +- src/Components/init.js | 4 +- src/Components/login.js | 2 +- src/Components/mistake.js | 2 +- src/Components/register.js | 2 +- src/lib/img/button-google.png | Bin 3222 -> 0 bytes src/lib/img/corazon.png | Bin 428 -> 0 bytes src/lib/img/division.png | Bin 2276 -> 0 bytes src/lib/img/error404.png | Bin 37752 -> 0 bytes src/lib/img/google.png | Bin 6126 -> 0 bytes src/lib/img/logoHome.png | Bin 11700 -> 0 bytes 25 files changed, 54616 insertions(+), 7 deletions(-) create mode 100644 .firebase/hosting.ZGlzdA.cache create mode 100644 .firebaserc rename src/lib/img/Logo.png => dist/assets/Logo.528a4c8f.png (100%) create mode 100644 dist/assets/fondo.9df9d0fb.png create mode 100644 dist/assets/fondoDesktop.64fb7a8f.png create mode 100644 dist/assets/fondoHome.d287116f.png create mode 100644 dist/assets/fondoHomeDesktop.5b401cef.png create mode 100644 dist/assets/index.07071509.css create mode 100644 dist/assets/index.2813bd98.js create mode 100644 dist/assets/index.399e54be.js create mode 100644 dist/assets/index.b9154af1.js create mode 100644 dist/index.html create mode 100644 firebase.json delete mode 100644 src/lib/img/button-google.png delete mode 100644 src/lib/img/corazon.png delete mode 100644 src/lib/img/division.png delete mode 100644 src/lib/img/error404.png delete mode 100644 src/lib/img/google.png delete mode 100644 src/lib/img/logoHome.png diff --git a/.firebase/hosting.ZGlzdA.cache b/.firebase/hosting.ZGlzdA.cache new file mode 100644 index 00000000..042878dc --- /dev/null +++ b/.firebase/hosting.ZGlzdA.cache @@ -0,0 +1,10 @@ +assets/index.2813bd98.js,1683314578839,fc1f0cbfd2583ce17fe2196ae6b7542dbb5daf2c1349aeaa652024673810df92 +assets/index.b9154af1.js,1683559027962,4c940a5a1981b0bac1c8423b00260a0d05387afcb8c71620e6845b6be2fccdd6 +index.html,1683559165486,fb596d8b8f5e6c2c0fb329d17f1c97f4086c55f263f289ef41906f84ec22363e +assets/fondoHome.d287116f.png,1683559165487,780f76c9de152739b12540398d5de6828690483a2541e32f5cee03e222dcb175 +assets/fondo.9df9d0fb.png,1683559165486,41418d20b2bb8fdeef1515bacb4480f20a686ce98180e75be07425a4b265e9da +assets/index.07071509.css,1683559165487,bb7f4a9277ea22db2aa2dd3d25ddd59ad2279619ba64a8dd5af7204b06216b92 +assets/fondoDesktop.64fb7a8f.png,1683559165487,f0ff63e0500adf20cb6732f5c3921775f298de9168bd80decc110c216eff3579 +assets/Logo.528a4c8f.png,1683559165486,890910ce800a1f4c17af782527b03bb0a13d87c67fb34465b94990910ddbb86e +assets/fondoHomeDesktop.5b401cef.png,1683559165487,67e1852ef5e3876dfd3877efbc3ab4a103236c02eb31889e23661b6210420e49 +assets/index.399e54be.js,1683559165487,ca03c711442920058542c2ec786bd36e402193aeb1cf86450ef153a37d39189d diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 00000000..b02779a0 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "social-network-dev-005" + } +} diff --git a/README.md b/README.md index e4491248..f49f821c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,6 @@ A través de esta plataforma, los usuarios tienen la posibilidad de intercambiar * Quieren poder iniciar sesión y registrarse * Quieren poder entrar con google -* Quieren poder registrar a sus mascotas * Quieren poder crear posts * Quieren poder editar y eliminar posts * Quieren poder dar like diff --git a/src/lib/img/Logo.png b/dist/assets/Logo.528a4c8f.png similarity index 100% rename from src/lib/img/Logo.png rename to dist/assets/Logo.528a4c8f.png diff --git a/dist/assets/fondo.9df9d0fb.png b/dist/assets/fondo.9df9d0fb.png new file mode 100644 index 0000000000000000000000000000000000000000..b29b50a42333cc670ccb56ebb9c6629a1247049a GIT binary patch literal 8043 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 Ib2lCSA62_IEdT%j literal 0 HcmV?d00001 diff --git a/dist/assets/fondoHome.d287116f.png b/dist/assets/fondoHome.d287116f.png new file mode 100644 index 0000000000000000000000000000000000000000..cac8990cb8d829a8a02ea5c7883dbbac58c9b6f0 GIT binary patch literal 4590 zcmeHL`&ZHj6#rtBueFoatb9yO(@vqx9h0d$Ni0K5F?h_LUoK?~!ejNQt8^mia`+=8daXHn5L>R%%HCiICM z+aOigch*)Ne$W7&62BJHqK*Swg-*uj%8q)DdR4Pa!6p z;iXD?(H?n_d#HO96t1Y{u*(BN2QgJN+PLpJt;8_g6@XQ8`5NlYF%>PZ86S(HQS_m_ zNqbr4trG`KKKyezKXvSGQlDjrmYjaYL8(PUamg|5-X8?yZW8sl3nh0bLC6_INV#Y9%F=}E zr2=G|l@07X5$V8LBxxSRcg`A9AxCw_u`OaLgS`IX$MvNNFL6lKb0k5<@;k#HY#3cE zyvg1(In5^^+fzA<&u`Z|Tz-|x>oy9TxzKaR;vd!>NqpE%GqSlp)lfE!*O;3=pUn^p z%cU=y&PkRUOzV)~-H+p7_ObOd#r;0T#{PjGA1XmY0Zkv2~Fm_M^cg`fqG_vH(IaH(BsgPgZq`TKrv#>l!X8b^?b|Ikh!u58I) zR%r??b5wMcl#15{To^v~ST4in_Ksjr<*ZD+POC&F3uZA7`+Zt@ZWVnOlS6j8KMOwR z)?+2hE}OYTMQQzJ>u=1xKl>$e;2U|hqno3bkMDpKE>>m1dgXqejdonSrmm~61~9D) z^@4;hG89+HdY@gjhaDmh_286Yx-z?#%N~A=8`tex^M}`d z78(CE>T{M^_t~uh_0A~0ENcSeMv1}tm*8=})l7}Rv_DWaAsAVWq`;vTO>0CtYJVc^ ze8GacUk%DcQ8KOR;7$wIu%|%O4hXOlY-?ulo{ib1WS&HAW@U!zHTRG|Gy6YvXo1P1cqnYvc`HV+@ty&qzlKNDg=6#n0p~C! A>;M1& literal 0 HcmV?d00001 diff --git a/dist/assets/fondoHomeDesktop.5b401cef.png b/dist/assets/fondoHomeDesktop.5b401cef.png new file mode 100644 index 0000000000000000000000000000000000000000..a7984a898b865cc805bdcfccd609e34e7d223012 GIT binary patch literal 555591 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

e}2S;M@tCg;fM` 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%0APC+2itV@jFbDr=0v`2#3jH$;UF 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

ar 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%0Ay@a_KVu#ho2K#~LdzGG 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ⅅSYL^V}ZA9(crqMG4xC&WiNr+AOK=4!{r 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 wh~de>mUEeg3VbK?s$0W;>T(m!7Jt3lkN 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

+

Error 404: p\xE1gina no encontrada.

+
`; + const keep = bug.querySelector(".initButton"); + keep.addEventListener("click", () => { + navigateTo2("/"); + }); + return bug; +} +var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var k$1, goog = goog || {}, l = commonjsGlobal || self; +function aa$1() { +} +function ba$1(a) { + var b2 = typeof a; + b2 = "object" != b2 ? b2 : a ? Array.isArray(a) ? "array" : b2 : "null"; + return "array" == b2 || "object" == b2 && "number" == typeof a.length; +} +function p(a) { + var b2 = typeof a; + return "object" == b2 && null != a || "function" == b2; +} +function ca(a) { + return Object.prototype.hasOwnProperty.call(a, da) && a[da] || (a[da] = ++ea); +} +var da = "closure_uid_" + (1e9 * Math.random() >>> 0), ea = 0; +function fa$1(a, b2, c) { + return a.call.apply(a.bind, arguments); +} +function ha$1(a, b2, c) { + if (!a) + throw Error(); + if (2 < arguments.length) { + var d = Array.prototype.slice.call(arguments, 2); + return function() { + var e = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(e, d); + return a.apply(b2, e); + }; + } + return function() { + return a.apply(b2, arguments); + }; +} +function q$1(a, b2, c) { + Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? q$1 = fa$1 : q$1 = ha$1; + return q$1.apply(null, arguments); +} +function ia(a, b2) { + var c = Array.prototype.slice.call(arguments, 1); + return function() { + var d = c.slice(); + d.push.apply(d, arguments); + return a.apply(this, d); + }; +} +function t(a, b2) { + function c() { + } + c.prototype = b2.prototype; + a.X = b2.prototype; + a.prototype = new c(); + a.prototype.constructor = a; + a.Wb = function(d, e, f) { + for (var h = Array(arguments.length - 2), n = 2; n < arguments.length; n++) + h[n - 2] = arguments[n]; + return b2.prototype[e].apply(d, h); + }; +} +function v$1() { + this.s = this.s; + this.o = this.o; +} +var ja$1 = 0; +v$1.prototype.s = false; +v$1.prototype.na = function() { + if (!this.s && (this.s = true, this.M(), 0 != ja$1)) { + ca(this); + } +}; +v$1.prototype.M = function() { + if (this.o) + for (; this.o.length; ) + this.o.shift()(); +}; +const la = Array.prototype.indexOf ? function(a, b2) { + return Array.prototype.indexOf.call(a, b2, void 0); +} : function(a, b2) { + if ("string" === typeof a) + return "string" !== typeof b2 || 1 != b2.length ? -1 : a.indexOf(b2, 0); + for (let c = 0; c < a.length; c++) + if (c in a && a[c] === b2) + return c; + return -1; +}; +function ma(a) { + const b2 = a.length; + if (0 < b2) { + const c = Array(b2); + for (let d = 0; d < b2; d++) + c[d] = a[d]; + return c; + } + return []; +} +function na(a, b2) { + for (let c = 1; c < arguments.length; c++) { + const d = arguments[c]; + if (ba$1(d)) { + const e = a.length || 0, f = d.length || 0; + a.length = e + f; + for (let h = 0; h < f; h++) + a[e + h] = d[h]; + } else + a.push(d); + } +} +function w(a, b2) { + this.type = a; + this.g = this.target = b2; + this.defaultPrevented = false; +} +w.prototype.h = function() { + this.defaultPrevented = true; +}; +var oa = function() { + if (!l.addEventListener || !Object.defineProperty) + return false; + var a = false, b2 = Object.defineProperty({}, "passive", { get: function() { + a = true; + } }); + try { + l.addEventListener("test", aa$1, b2), l.removeEventListener("test", aa$1, b2); + } catch (c) { + } + return a; +}(); +function pa(a) { + return /^[\s\xa0]*$/.test(a); +} +var qa = String.prototype.trim ? function(a) { + return a.trim(); +} : function(a) { + return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]; +}; +function ra(a, b2) { + return a < b2 ? -1 : a > b2 ? 1 : 0; +} +function sa() { + var a = l.navigator; + return a && (a = a.userAgent) ? a : ""; +} +function x$1(a) { + return -1 != sa().indexOf(a); +} +function ta(a) { + ta[" "](a); + return a; +} +ta[" "] = aa$1; +function ua(a) { + var b2 = va$1; + return Object.prototype.hasOwnProperty.call(b2, 9) ? b2[9] : b2[9] = a(9); +} +var wa = x$1("Opera"), y = x$1("Trident") || x$1("MSIE"), xa$1 = x$1("Edge"), ya = xa$1 || y, za$1 = x$1("Gecko") && !(-1 != sa().toLowerCase().indexOf("webkit") && !x$1("Edge")) && !(x$1("Trident") || x$1("MSIE")) && !x$1("Edge"), Aa$1 = -1 != sa().toLowerCase().indexOf("webkit") && !x$1("Edge"); +function Ba() { + var a = l.document; + return a ? a.documentMode : void 0; +} +var Ea$1; +a: { + var Fa = "", Ga$1 = function() { + var a = sa(); + if (za$1) + return /rv:([^\);]+)(\)|;)/.exec(a); + if (xa$1) + return /Edge\/([\d\.]+)/.exec(a); + if (y) + return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a); + if (Aa$1) + return /WebKit\/(\S+)/.exec(a); + if (wa) + return /(?:Version)[ \/]?(\S+)/.exec(a); + }(); + Ga$1 && (Fa = Ga$1 ? Ga$1[1] : ""); + if (y) { + var Ha$1 = Ba(); + if (null != Ha$1 && Ha$1 > parseFloat(Fa)) { + Ea$1 = String(Ha$1); + break a; + } + } + Ea$1 = Fa; +} +var va$1 = {}; +function Ia() { + return ua(function() { + let a = 0; + const b2 = qa(String(Ea$1)).split("."), c = qa("9").split("."), d = Math.max(b2.length, c.length); + for (let h = 0; 0 == a && h < d; h++) { + var e = b2[h] || "", f = c[h] || ""; + do { + e = /(\d*)(\D*)(.*)/.exec(e) || ["", "", "", ""]; + f = /(\d*)(\D*)(.*)/.exec(f) || ["", "", "", ""]; + if (0 == e[0].length && 0 == f[0].length) + break; + a = ra(0 == e[1].length ? 0 : parseInt(e[1], 10), 0 == f[1].length ? 0 : parseInt(f[1], 10)) || ra(0 == e[2].length, 0 == f[2].length) || ra(e[2], f[2]); + e = e[3]; + f = f[3]; + } while (0 == a); + } + return 0 <= a; + }); +} +var Ja; +if (l.document && y) { + var Ka$1 = Ba(); + Ja = Ka$1 ? Ka$1 : parseInt(Ea$1, 10) || void 0; +} else + Ja = void 0; +var La = Ja; +function z$1(a, b2) { + w.call(this, a ? a.type : ""); + this.relatedTarget = this.g = this.target = null; + this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0; + this.key = ""; + this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = false; + this.state = null; + this.pointerId = 0; + this.pointerType = ""; + this.i = null; + if (a) { + var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null; + this.target = a.target || a.srcElement; + this.g = b2; + if (b2 = a.relatedTarget) { + if (za$1) { + a: { + try { + ta(b2.nodeName); + var e = true; + break a; + } catch (f) { + } + e = false; + } + e || (b2 = null); + } + } else + "mouseover" == c ? b2 = a.fromElement : "mouseout" == c && (b2 = a.toElement); + this.relatedTarget = b2; + d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0); + this.button = a.button; + this.key = a.key || ""; + this.ctrlKey = a.ctrlKey; + this.altKey = a.altKey; + this.shiftKey = a.shiftKey; + this.metaKey = a.metaKey; + this.pointerId = a.pointerId || 0; + this.pointerType = "string" === typeof a.pointerType ? a.pointerType : Ma[a.pointerType] || ""; + this.state = a.state; + this.i = a; + a.defaultPrevented && z$1.X.h.call(this); + } +} +t(z$1, w); +var Ma = { 2: "touch", 3: "pen", 4: "mouse" }; +z$1.prototype.h = function() { + z$1.X.h.call(this); + var a = this.i; + a.preventDefault ? a.preventDefault() : a.returnValue = false; +}; +var A = "closure_listenable_" + (1e6 * Math.random() | 0); +var Na = 0; +function Oa(a, b2, c, d, e) { + this.listener = a; + this.proxy = null; + this.src = b2; + this.type = c; + this.capture = !!d; + this.ha = e; + this.key = ++Na; + this.ba = this.ea = false; +} +function Pa(a) { + a.ba = true; + a.listener = null; + a.proxy = null; + a.src = null; + a.ha = null; +} +function Qa$1(a, b2, c) { + for (const d in a) + b2.call(c, a[d], d, a); +} +function Ra$1(a) { + const b2 = {}; + for (const c in a) + b2[c] = a[c]; + return b2; +} +const Sa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); +function Ta$1(a, b2) { + let c, d; + for (let e = 1; e < arguments.length; e++) { + d = arguments[e]; + for (c in d) + a[c] = d[c]; + for (let f = 0; f < Sa.length; f++) + c = Sa[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]); + } +} +function Ua(a) { + this.src = a; + this.g = {}; + this.h = 0; +} +Ua.prototype.add = function(a, b2, c, d, e) { + var f = a.toString(); + a = this.g[f]; + a || (a = this.g[f] = [], this.h++); + var h = Va(a, b2, d, e); + -1 < h ? (b2 = a[h], c || (b2.ea = false)) : (b2 = new Oa(b2, this.src, f, !!d, e), b2.ea = c, a.push(b2)); + return b2; +}; +function Wa$1(a, b2) { + var c = b2.type; + if (c in a.g) { + var d = a.g[c], e = la(d, b2), f; + (f = 0 <= e) && Array.prototype.splice.call(d, e, 1); + f && (Pa(b2), 0 == a.g[c].length && (delete a.g[c], a.h--)); + } +} +function Va(a, b2, c, d) { + for (var e = 0; e < a.length; ++e) { + var f = a[e]; + if (!f.ba && f.listener == b2 && f.capture == !!c && f.ha == d) + return e; + } + return -1; +} +var Xa$1 = "closure_lm_" + (1e6 * Math.random() | 0), Ya$1 = {}; +function $a(a, b2, c, d, e) { + if (d && d.once) + return ab(a, b2, c, d, e); + if (Array.isArray(b2)) { + for (var f = 0; f < b2.length; f++) + $a(a, b2[f], c, d, e); + return null; + } + c = bb(c); + return a && a[A] ? a.N(b2, c, p(d) ? !!d.capture : !!d, e) : cb(a, b2, c, false, d, e); +} +function cb(a, b2, c, d, e, f) { + if (!b2) + throw Error("Invalid event type"); + var h = p(e) ? !!e.capture : !!e, n = db$1(a); + n || (a[Xa$1] = n = new Ua(a)); + c = n.add(b2, c, d, h, f); + if (c.proxy) + return c; + d = eb(); + c.proxy = d; + d.src = a; + d.listener = c; + if (a.addEventListener) + oa || (e = h), void 0 === e && (e = false), a.addEventListener(b2.toString(), d, e); + else if (a.attachEvent) + a.attachEvent(fb(b2.toString()), d); + else if (a.addListener && a.removeListener) + a.addListener(d); + else + throw Error("addEventListener and attachEvent are unavailable."); + return c; +} +function eb() { + function a(c) { + return b2.call(a.src, a.listener, c); + } + const b2 = gb; + return a; +} +function ab(a, b2, c, d, e) { + if (Array.isArray(b2)) { + for (var f = 0; f < b2.length; f++) + ab(a, b2[f], c, d, e); + return null; + } + c = bb(c); + return a && a[A] ? a.O(b2, c, p(d) ? !!d.capture : !!d, e) : cb(a, b2, c, true, d, e); +} +function hb(a, b2, c, d, e) { + if (Array.isArray(b2)) + for (var f = 0; f < b2.length; f++) + hb(a, b2[f], c, d, e); + else + (d = p(d) ? !!d.capture : !!d, c = bb(c), a && a[A]) ? (a = a.i, b2 = String(b2).toString(), b2 in a.g && (f = a.g[b2], c = Va(f, c, d, e), -1 < c && (Pa(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b2], a.h--)))) : a && (a = db$1(a)) && (b2 = a.g[b2.toString()], a = -1, b2 && (a = Va(b2, c, d, e)), (c = -1 < a ? b2[a] : null) && ib(c)); +} +function ib(a) { + if ("number" !== typeof a && a && !a.ba) { + var b2 = a.src; + if (b2 && b2[A]) + Wa$1(b2.i, a); + else { + var c = a.type, d = a.proxy; + b2.removeEventListener ? b2.removeEventListener(c, d, a.capture) : b2.detachEvent ? b2.detachEvent(fb(c), d) : b2.addListener && b2.removeListener && b2.removeListener(d); + (c = db$1(b2)) ? (Wa$1(c, a), 0 == c.h && (c.src = null, b2[Xa$1] = null)) : Pa(a); + } + } +} +function fb(a) { + return a in Ya$1 ? Ya$1[a] : Ya$1[a] = "on" + a; +} +function gb(a, b2) { + if (a.ba) + a = true; + else { + b2 = new z$1(b2, this); + var c = a.listener, d = a.ha || a.src; + a.ea && ib(a); + a = c.call(d, b2); + } + return a; +} +function db$1(a) { + a = a[Xa$1]; + return a instanceof Ua ? a : null; +} +var jb = "__closure_events_fn_" + (1e9 * Math.random() >>> 0); +function bb(a) { + if ("function" === typeof a) + return a; + a[jb] || (a[jb] = function(b2) { + return a.handleEvent(b2); + }); + return a[jb]; +} +function B$1() { + v$1.call(this); + this.i = new Ua(this); + this.P = this; + this.I = null; +} +t(B$1, v$1); +B$1.prototype[A] = true; +B$1.prototype.removeEventListener = function(a, b2, c, d) { + hb(this, a, b2, c, d); +}; +function C$1(a, b2) { + var c, d = a.I; + if (d) + for (c = []; d; d = d.I) + c.push(d); + a = a.P; + d = b2.type || b2; + if ("string" === typeof b2) + b2 = new w(b2, a); + else if (b2 instanceof w) + b2.target = b2.target || a; + else { + var e = b2; + b2 = new w(d, a); + Ta$1(b2, e); + } + e = true; + if (c) + for (var f = c.length - 1; 0 <= f; f--) { + var h = b2.g = c[f]; + e = kb(h, d, true, b2) && e; + } + h = b2.g = a; + e = kb(h, d, true, b2) && e; + e = kb(h, d, false, b2) && e; + if (c) + for (f = 0; f < c.length; f++) + h = b2.g = c[f], e = kb(h, d, false, b2) && e; +} +B$1.prototype.M = function() { + B$1.X.M.call(this); + if (this.i) { + var a = this.i, c; + for (c in a.g) { + for (var d = a.g[c], e = 0; e < d.length; e++) + Pa(d[e]); + delete a.g[c]; + a.h--; + } + } + this.I = null; +}; +B$1.prototype.N = function(a, b2, c, d) { + return this.i.add(String(a), b2, false, c, d); +}; +B$1.prototype.O = function(a, b2, c, d) { + return this.i.add(String(a), b2, true, c, d); +}; +function kb(a, b2, c, d) { + b2 = a.i.g[String(b2)]; + if (!b2) + return true; + b2 = b2.concat(); + for (var e = true, f = 0; f < b2.length; ++f) { + var h = b2[f]; + if (h && !h.ba && h.capture == c) { + var n = h.listener, u = h.ha || h.src; + h.ea && Wa$1(a.i, h); + e = false !== n.call(u, d) && e; + } + } + return e && !d.defaultPrevented; +} +var lb = l.JSON.stringify; +function mb() { + var a = nb; + let b2 = null; + a.g && (b2 = a.g, a.g = a.g.next, a.g || (a.h = null), b2.next = null); + return b2; +} +class ob { + constructor() { + this.h = this.g = null; + } + add(a, b2) { + const c = pb.get(); + c.set(a, b2); + this.h ? this.h.next = c : this.g = c; + this.h = c; + } +} +var pb = new class { + constructor(a, b2) { + this.i = a; + this.j = b2; + this.h = 0; + this.g = null; + } + get() { + let a; + 0 < this.h ? (this.h--, a = this.g, this.g = a.next, a.next = null) : a = this.i(); + return a; + } +}(() => new qb(), (a) => a.reset()); +class qb { + constructor() { + this.next = this.g = this.h = null; + } + set(a, b2) { + this.h = a; + this.g = b2; + this.next = null; + } + reset() { + this.next = this.g = this.h = null; + } +} +function rb(a) { + l.setTimeout(() => { + throw a; + }, 0); +} +function sb(a, b2) { + ub || vb(); + wb || (ub(), wb = true); + nb.add(a, b2); +} +var ub; +function vb() { + var a = l.Promise.resolve(void 0); + ub = function() { + a.then(xb); + }; +} +var wb = false, nb = new ob(); +function xb() { + for (var a; a = mb(); ) { + try { + a.h.call(a.g); + } catch (c) { + rb(c); + } + var b2 = pb; + b2.j(a); + 100 > b2.h && (b2.h++, a.next = b2.g, b2.g = a); + } + wb = false; +} +function yb(a, b2) { + B$1.call(this); + this.h = a || 1; + this.g = b2 || l; + this.j = q$1(this.lb, this); + this.l = Date.now(); +} +t(yb, B$1); +k$1 = yb.prototype; +k$1.ca = false; +k$1.R = null; +k$1.lb = function() { + if (this.ca) { + var a = Date.now() - this.l; + 0 < a && a < 0.8 * this.h ? this.R = this.g.setTimeout(this.j, this.h - a) : (this.R && (this.g.clearTimeout(this.R), this.R = null), C$1(this, "tick"), this.ca && (zb(this), this.start())); + } +}; +k$1.start = function() { + this.ca = true; + this.R || (this.R = this.g.setTimeout(this.j, this.h), this.l = Date.now()); +}; +function zb(a) { + a.ca = false; + a.R && (a.g.clearTimeout(a.R), a.R = null); +} +k$1.M = function() { + yb.X.M.call(this); + zb(this); + delete this.g; +}; +function Ab(a, b2, c) { + if ("function" === typeof a) + c && (a = q$1(a, c)); + else if (a && "function" == typeof a.handleEvent) + a = q$1(a.handleEvent, a); + else + throw Error("Invalid listener argument"); + return 2147483647 < Number(b2) ? -1 : l.setTimeout(a, b2 || 0); +} +function Bb(a) { + a.g = Ab(() => { + a.g = null; + a.i && (a.i = false, Bb(a)); + }, a.j); + const b2 = a.h; + a.h = null; + a.m.apply(null, b2); +} +class Cb extends v$1 { + constructor(a, b2) { + super(); + this.m = a; + this.j = b2; + this.h = null; + this.i = false; + this.g = null; + } + l(a) { + this.h = arguments; + this.g ? this.i = true : Bb(this); + } + M() { + super.M(); + this.g && (l.clearTimeout(this.g), this.g = null, this.i = false, this.h = null); + } +} +function D(a) { + v$1.call(this); + this.h = a; + this.g = {}; +} +t(D, v$1); +var Db = []; +function Eb(a, b2, c, d) { + Array.isArray(c) || (c && (Db[0] = c.toString()), c = Db); + for (var e = 0; e < c.length; e++) { + var f = $a(b2, c[e], d || a.handleEvent, false, a.h || a); + if (!f) + break; + a.g[f.key] = f; + } +} +function Fb(a) { + Qa$1(a.g, function(b2, c) { + this.g.hasOwnProperty(c) && ib(b2); + }, a); + a.g = {}; +} +D.prototype.M = function() { + D.X.M.call(this); + Fb(this); +}; +D.prototype.handleEvent = function() { + throw Error("EventHandler.handleEvent not implemented"); +}; +function Gb() { + this.g = true; +} +Gb.prototype.Aa = function() { + this.g = false; +}; +function Hb(a, b2, c, d, e, f) { + a.info(function() { + if (a.g) + if (f) { + var h = ""; + for (var n = f.split("&"), u = 0; u < n.length; u++) { + var m = n[u].split("="); + if (1 < m.length) { + var r = m[0]; + m = m[1]; + var F2 = r.split("_"); + h = 2 <= F2.length && "type" == F2[1] ? h + (r + "=" + m + "&") : h + (r + "=redacted&"); + } + } + } else + h = null; + else + h = f; + return "XMLHTTP REQ (" + d + ") [attempt " + e + "]: " + b2 + "\n" + c + "\n" + h; + }); +} +function Ib(a, b2, c, d, e, f, h) { + a.info(function() { + return "XMLHTTP RESP (" + d + ") [ attempt " + e + "]: " + b2 + "\n" + c + "\n" + f + " " + h; + }); +} +function E(a, b2, c, d) { + a.info(function() { + return "XMLHTTP TEXT (" + b2 + "): " + Jb(a, c) + (d ? " " + d : ""); + }); +} +function Kb(a, b2) { + a.info(function() { + return "TIMEOUT: " + b2; + }); +} +Gb.prototype.info = function() { +}; +function Jb(a, b2) { + if (!a.g) + return b2; + if (!b2) + return null; + try { + var c = JSON.parse(b2); + if (c) { + for (a = 0; a < c.length; a++) + if (Array.isArray(c[a])) { + var d = c[a]; + if (!(2 > d.length)) { + var e = d[1]; + if (Array.isArray(e) && !(1 > e.length)) { + var f = e[0]; + if ("noop" != f && "stop" != f && "close" != f) + for (var h = 1; h < e.length; h++) + e[h] = ""; + } + } + } + } + return lb(c); + } catch (n) { + return b2; + } +} +var G$1 = {}, Lb = null; +function Mb() { + return Lb = Lb || new B$1(); +} +G$1.Pa = "serverreachability"; +function Nb(a) { + w.call(this, G$1.Pa, a); +} +t(Nb, w); +function H$1(a) { + const b2 = Mb(); + C$1(b2, new Nb(b2)); +} +G$1.STAT_EVENT = "statevent"; +function Ob(a, b2) { + w.call(this, G$1.STAT_EVENT, a); + this.stat = b2; +} +t(Ob, w); +function I(a) { + const b2 = Mb(); + C$1(b2, new Ob(b2, a)); +} +G$1.Qa = "timingevent"; +function Pb(a, b2) { + w.call(this, G$1.Qa, a); + this.size = b2; +} +t(Pb, w); +function J(a, b2) { + if ("function" !== typeof a) + throw Error("Fn must not be null and must be a function"); + return l.setTimeout(function() { + a(); + }, b2); +} +var Qb = { NO_ERROR: 0, mb: 1, zb: 2, yb: 3, tb: 4, xb: 5, Ab: 6, Ma: 7, TIMEOUT: 8, Db: 9 }; +var Rb = { rb: "complete", Nb: "success", Na: "error", Ma: "abort", Fb: "ready", Gb: "readystatechange", TIMEOUT: "timeout", Bb: "incrementaldata", Eb: "progress", ub: "downloadprogress", Vb: "uploadprogress" }; +function Sb() { +} +Sb.prototype.h = null; +function Tb(a) { + return a.h || (a.h = a.i()); +} +function Ub() { +} +var K$1 = { OPEN: "a", qb: "b", Na: "c", Cb: "d" }; +function Vb() { + w.call(this, "d"); +} +t(Vb, w); +function Wb() { + w.call(this, "c"); +} +t(Wb, w); +var Xb; +function Yb() { +} +t(Yb, Sb); +Yb.prototype.g = function() { + return new XMLHttpRequest(); +}; +Yb.prototype.i = function() { + return {}; +}; +Xb = new Yb(); +function L$1(a, b2, c, d) { + this.l = a; + this.j = b2; + this.m = c; + this.U = d || 1; + this.S = new D(this); + this.O = Zb; + a = ya ? 125 : void 0; + this.T = new yb(a); + this.H = null; + this.i = false; + this.s = this.A = this.v = this.K = this.F = this.V = this.B = null; + this.D = []; + this.g = null; + this.C = 0; + this.o = this.u = null; + this.Y = -1; + this.I = false; + this.N = 0; + this.L = null; + this.$ = this.J = this.Z = this.P = false; + this.h = new $b(); +} +function $b() { + this.i = null; + this.g = ""; + this.h = false; +} +var Zb = 45e3, ac$1 = {}, bc = {}; +k$1 = L$1.prototype; +k$1.setTimeout = function(a) { + this.O = a; +}; +function cc$1(a, b2, c) { + a.K = 1; + a.v = dc$1(M(b2)); + a.s = c; + a.P = true; + ec$1(a, null); +} +function ec$1(a, b2) { + a.F = Date.now(); + N$1(a); + a.A = M(a.v); + var c = a.A, d = a.U; + Array.isArray(d) || (d = [String(d)]); + fc$1(c.i, "t", d); + a.C = 0; + c = a.l.H; + a.h = new $b(); + a.g = gc$1(a.l, c ? b2 : null, !a.s); + 0 < a.N && (a.L = new Cb(q$1(a.La, a, a.g), a.N)); + Eb(a.S, a.g, "readystatechange", a.ib); + b2 = a.H ? Ra$1(a.H) : {}; + a.s ? (a.u || (a.u = "POST"), b2["Content-Type"] = "application/x-www-form-urlencoded", a.g.da(a.A, a.u, a.s, b2)) : (a.u = "GET", a.g.da(a.A, a.u, null, b2)); + H$1(); + Hb(a.j, a.u, a.A, a.m, a.U, a.s); +} +k$1.ib = function(a) { + a = a.target; + const b2 = this.L; + b2 && 3 == O$1(a) ? b2.l() : this.La(a); +}; +k$1.La = function(a) { + try { + if (a == this.g) + a: { + const r = O$1(this.g); + var b2 = this.g.Ea(); + const F2 = this.g.aa(); + if (!(3 > r) && (3 != r || ya || this.g && (this.h.h || this.g.fa() || hc$1(this.g)))) { + this.I || 4 != r || 7 == b2 || (8 == b2 || 0 >= F2 ? H$1(3) : H$1(2)); + ic$1(this); + var c = this.g.aa(); + this.Y = c; + b: + if (jc$1(this)) { + var d = hc$1(this.g); + a = ""; + var e = d.length, f = 4 == O$1(this.g); + if (!this.h.i) { + if ("undefined" === typeof TextDecoder) { + P$1(this); + Q$1(this); + var h = ""; + break b; + } + this.h.i = new l.TextDecoder(); + } + for (b2 = 0; b2 < e; b2++) + this.h.h = true, a += this.h.i.decode(d[b2], { stream: f && b2 == e - 1 }); + d.splice( + 0, + e + ); + this.h.g += a; + this.C = 0; + h = this.h.g; + } else + h = this.g.fa(); + this.i = 200 == c; + Ib(this.j, this.u, this.A, this.m, this.U, r, c); + if (this.i) { + if (this.Z && !this.J) { + b: { + if (this.g) { + var n, u = this.g; + if ((n = u.g ? u.g.getResponseHeader("X-HTTP-Initial-Response") : null) && !pa(n)) { + var m = n; + break b; + } + } + m = null; + } + if (c = m) + E(this.j, this.m, c, "Initial handshake response via X-HTTP-Initial-Response"), this.J = true, kc$1(this, c); + else { + this.i = false; + this.o = 3; + I(12); + P$1(this); + Q$1(this); + break a; + } + } + this.P ? (lc$1(this, r, h), ya && this.i && 3 == r && (Eb(this.S, this.T, "tick", this.hb), this.T.start())) : (E(this.j, this.m, h, null), kc$1(this, h)); + 4 == r && P$1(this); + this.i && !this.I && (4 == r ? mc$1(this.l, this) : (this.i = false, N$1(this))); + } else + 400 == c && 0 < h.indexOf("Unknown SID") ? (this.o = 3, I(12)) : (this.o = 0, I(13)), P$1(this), Q$1(this); + } + } + } catch (r) { + } finally { + } +}; +function jc$1(a) { + return a.g ? "GET" == a.u && 2 != a.K && a.l.Da : false; +} +function lc$1(a, b2, c) { + let d = true, e; + for (; !a.I && a.C < c.length; ) + if (e = nc$1(a, c), e == bc) { + 4 == b2 && (a.o = 4, I(14), d = false); + E(a.j, a.m, null, "[Incomplete Response]"); + break; + } else if (e == ac$1) { + a.o = 4; + I(15); + E(a.j, a.m, c, "[Invalid Chunk]"); + d = false; + break; + } else + E(a.j, a.m, e, null), kc$1(a, e); + jc$1(a) && e != bc && e != ac$1 && (a.h.g = "", a.C = 0); + 4 != b2 || 0 != c.length || a.h.h || (a.o = 1, I(16), d = false); + a.i = a.i && d; + d ? 0 < c.length && !a.$ && (a.$ = true, b2 = a.l, b2.g == a && b2.$ && !b2.K && (b2.j.info("Great, no buffering proxy detected. Bytes received: " + c.length), oc$1(b2), b2.K = true, I(11))) : (E( + a.j, + a.m, + c, + "[Invalid Chunked Response]" + ), P$1(a), Q$1(a)); +} +k$1.hb = function() { + if (this.g) { + var a = O$1(this.g), b2 = this.g.fa(); + this.C < b2.length && (ic$1(this), lc$1(this, a, b2), this.i && 4 != a && N$1(this)); + } +}; +function nc$1(a, b2) { + var c = a.C, d = b2.indexOf("\n", c); + if (-1 == d) + return bc; + c = Number(b2.substring(c, d)); + if (isNaN(c)) + return ac$1; + d += 1; + if (d + c > b2.length) + return bc; + b2 = b2.substr(d, c); + a.C = d + c; + return b2; +} +k$1.cancel = function() { + this.I = true; + P$1(this); +}; +function N$1(a) { + a.V = Date.now() + a.O; + pc$1(a, a.O); +} +function pc$1(a, b2) { + if (null != a.B) + throw Error("WatchDog timer not null"); + a.B = J(q$1(a.gb, a), b2); +} +function ic$1(a) { + a.B && (l.clearTimeout(a.B), a.B = null); +} +k$1.gb = function() { + this.B = null; + const a = Date.now(); + 0 <= a - this.V ? (Kb(this.j, this.A), 2 != this.K && (H$1(), I(17)), P$1(this), this.o = 2, Q$1(this)) : pc$1(this, this.V - a); +}; +function Q$1(a) { + 0 == a.l.G || a.I || mc$1(a.l, a); +} +function P$1(a) { + ic$1(a); + var b2 = a.L; + b2 && "function" == typeof b2.na && b2.na(); + a.L = null; + zb(a.T); + Fb(a.S); + a.g && (b2 = a.g, a.g = null, b2.abort(), b2.na()); +} +function kc$1(a, b2) { + try { + var c = a.l; + if (0 != c.G && (c.g == a || qc$1(c.h, a))) { + if (!a.J && qc$1(c.h, a) && 3 == c.G) { + try { + var d = c.Fa.g.parse(b2); + } catch (m) { + d = null; + } + if (Array.isArray(d) && 3 == d.length) { + var e = d; + if (0 == e[0]) + a: { + if (!c.u) { + if (c.g) + if (c.g.F + 3e3 < a.F) + rc$1(c), sc$1(c); + else + break a; + tc$1(c); + I(18); + } + } + else + c.Ba = e[1], 0 < c.Ba - c.T && 37500 > e[2] && c.L && 0 == c.A && !c.v && (c.v = J(q$1(c.cb, c), 6e3)); + if (1 >= uc$1(c.h) && c.ja) { + try { + c.ja(); + } catch (m) { + } + c.ja = void 0; + } + } else + R(c, 11); + } else if ((a.J || c.g == a) && rc$1(c), !pa(b2)) + for (e = c.Fa.g.parse(b2), b2 = 0; b2 < e.length; b2++) { + let m = e[b2]; + c.T = m[0]; + m = m[1]; + if (2 == c.G) + if ("c" == m[0]) { + c.I = m[1]; + c.ka = m[2]; + const r = m[3]; + null != r && (c.ma = r, c.j.info("VER=" + c.ma)); + const F2 = m[4]; + null != F2 && (c.Ca = F2, c.j.info("SVER=" + c.Ca)); + const Ca = m[5]; + null != Ca && "number" === typeof Ca && 0 < Ca && (d = 1.5 * Ca, c.J = d, c.j.info("backChannelRequestTimeoutMs_=" + d)); + d = c; + const Z2 = a.g; + if (Z2) { + const Da2 = Z2.g ? Z2.g.getResponseHeader("X-Client-Wire-Protocol") : null; + if (Da2) { + var f = d.h; + f.g || -1 == Da2.indexOf("spdy") && -1 == Da2.indexOf("quic") && -1 == Da2.indexOf("h2") || (f.j = f.l, f.g = /* @__PURE__ */ new Set(), f.h && (vc(f, f.h), f.h = null)); + } + if (d.D) { + const tb = Z2.g ? Z2.g.getResponseHeader("X-HTTP-Session-Id") : null; + tb && (d.za = tb, S$1(d.F, d.D, tb)); + } + } + c.G = 3; + c.l && c.l.xa(); + c.$ && (c.P = Date.now() - a.F, c.j.info("Handshake RTT: " + c.P + "ms")); + d = c; + var h = a; + d.sa = wc$1(d, d.H ? d.ka : null, d.V); + if (h.J) { + xc$1(d.h, h); + var n = h, u = d.J; + u && n.setTimeout(u); + n.B && (ic$1(n), N$1(n)); + d.g = h; + } else + yc$1(d); + 0 < c.i.length && zc$1(c); + } else + "stop" != m[0] && "close" != m[0] || R(c, 7); + else + 3 == c.G && ("stop" == m[0] || "close" == m[0] ? "stop" == m[0] ? R(c, 7) : Ac$1(c) : "noop" != m[0] && c.l && c.l.wa(m), c.A = 0); + } + } + H$1(4); + } catch (m) { + } +} +function Bc$1(a) { + if (a.W && "function" == typeof a.W) + return a.W(); + if ("undefined" !== typeof Map && a instanceof Map || "undefined" !== typeof Set && a instanceof Set) + return Array.from(a.values()); + if ("string" === typeof a) + return a.split(""); + if (ba$1(a)) { + for (var b2 = [], c = a.length, d = 0; d < c; d++) + b2.push(a[d]); + return b2; + } + b2 = []; + c = 0; + for (d in a) + b2[c++] = a[d]; + return b2; +} +function Cc$1(a) { + if (a.oa && "function" == typeof a.oa) + return a.oa(); + if (!a.W || "function" != typeof a.W) { + if ("undefined" !== typeof Map && a instanceof Map) + return Array.from(a.keys()); + if (!("undefined" !== typeof Set && a instanceof Set)) { + if (ba$1(a) || "string" === typeof a) { + var b2 = []; + a = a.length; + for (var c = 0; c < a; c++) + b2.push(c); + return b2; + } + b2 = []; + c = 0; + for (const d in a) + b2[c++] = d; + return b2; + } + } +} +function Dc$1(a, b2) { + if (a.forEach && "function" == typeof a.forEach) + a.forEach(b2, void 0); + else if (ba$1(a) || "string" === typeof a) + Array.prototype.forEach.call(a, b2, void 0); + else + for (var c = Cc$1(a), d = Bc$1(a), e = d.length, f = 0; f < e; f++) + b2.call(void 0, d[f], c && c[f], a); +} +var Ec$1 = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$"); +function Fc$1(a, b2) { + if (a) { + a = a.split("&"); + for (var c = 0; c < a.length; c++) { + var d = a[c].indexOf("="), e = null; + if (0 <= d) { + var f = a[c].substring(0, d); + e = a[c].substring(d + 1); + } else + f = a[c]; + b2(f, e ? decodeURIComponent(e.replace(/\+/g, " ")) : ""); + } + } +} +function T(a, b2) { + this.g = this.s = this.j = ""; + this.m = null; + this.o = this.l = ""; + this.h = false; + if (a instanceof T) { + this.h = void 0 !== b2 ? b2 : a.h; + Gc$1(this, a.j); + this.s = a.s; + this.g = a.g; + Hc$1(this, a.m); + this.l = a.l; + b2 = a.i; + var c = new Ic$1(); + c.i = b2.i; + b2.g && (c.g = new Map(b2.g), c.h = b2.h); + Jc$1(this, c); + this.o = a.o; + } else + a && (c = String(a).match(Ec$1)) ? (this.h = !!b2, Gc$1(this, c[1] || "", true), this.s = Kc(c[2] || ""), this.g = Kc(c[3] || "", true), Hc$1(this, c[4]), this.l = Kc(c[5] || "", true), Jc$1(this, c[6] || "", true), this.o = Kc(c[7] || "")) : (this.h = !!b2, this.i = new Ic$1(null, this.h)); +} +T.prototype.toString = function() { + var a = [], b2 = this.j; + b2 && a.push(Lc$1(b2, Mc$1, true), ":"); + var c = this.g; + if (c || "file" == b2) + a.push("//"), (b2 = this.s) && a.push(Lc$1(b2, Mc$1, true), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.m, null != c && a.push(":", String(c)); + if (c = this.l) + this.g && "/" != c.charAt(0) && a.push("/"), a.push(Lc$1(c, "/" == c.charAt(0) ? Nc$1 : Oc$1, true)); + (c = this.i.toString()) && a.push("?", c); + (c = this.o) && a.push("#", Lc$1(c, Pc)); + return a.join(""); +}; +function M(a) { + return new T(a); +} +function Gc$1(a, b2, c) { + a.j = c ? Kc(b2, true) : b2; + a.j && (a.j = a.j.replace(/:$/, "")); +} +function Hc$1(a, b2) { + if (b2) { + b2 = Number(b2); + if (isNaN(b2) || 0 > b2) + throw Error("Bad port number " + b2); + a.m = b2; + } else + a.m = null; +} +function Jc$1(a, b2, c) { + b2 instanceof Ic$1 ? (a.i = b2, Qc$1(a.i, a.h)) : (c || (b2 = Lc$1(b2, Rc)), a.i = new Ic$1(b2, a.h)); +} +function S$1(a, b2, c) { + a.i.set(b2, c); +} +function dc$1(a) { + S$1(a, "zx", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ Date.now()).toString(36)); + return a; +} +function Kc(a, b2) { + return a ? b2 ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : ""; +} +function Lc$1(a, b2, c) { + return "string" === typeof a ? (a = encodeURI(a).replace(b2, Sc$1), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null; +} +function Sc$1(a) { + a = a.charCodeAt(0); + return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); +} +var Mc$1 = /[#\/\?@]/g, Oc$1 = /[#\?:]/g, Nc$1 = /[#\?]/g, Rc = /[#\?@]/g, Pc = /#/g; +function Ic$1(a, b2) { + this.h = this.g = null; + this.i = a || null; + this.j = !!b2; +} +function U$1(a) { + a.g || (a.g = /* @__PURE__ */ new Map(), a.h = 0, a.i && Fc$1(a.i, function(b2, c) { + a.add(decodeURIComponent(b2.replace(/\+/g, " ")), c); + })); +} +k$1 = Ic$1.prototype; +k$1.add = function(a, b2) { + U$1(this); + this.i = null; + a = V$1(this, a); + var c = this.g.get(a); + c || this.g.set(a, c = []); + c.push(b2); + this.h += 1; + return this; +}; +function Tc$1(a, b2) { + U$1(a); + b2 = V$1(a, b2); + a.g.has(b2) && (a.i = null, a.h -= a.g.get(b2).length, a.g.delete(b2)); +} +function Uc$1(a, b2) { + U$1(a); + b2 = V$1(a, b2); + return a.g.has(b2); +} +k$1.forEach = function(a, b2) { + U$1(this); + this.g.forEach(function(c, d) { + c.forEach(function(e) { + a.call(b2, e, d, this); + }, this); + }, this); +}; +k$1.oa = function() { + U$1(this); + const a = Array.from(this.g.values()), b2 = Array.from(this.g.keys()), c = []; + for (let d = 0; d < b2.length; d++) { + const e = a[d]; + for (let f = 0; f < e.length; f++) + c.push(b2[d]); + } + return c; +}; +k$1.W = function(a) { + U$1(this); + let b2 = []; + if ("string" === typeof a) + Uc$1(this, a) && (b2 = b2.concat(this.g.get(V$1(this, a)))); + else { + a = Array.from(this.g.values()); + for (let c = 0; c < a.length; c++) + b2 = b2.concat(a[c]); + } + return b2; +}; +k$1.set = function(a, b2) { + U$1(this); + this.i = null; + a = V$1(this, a); + Uc$1(this, a) && (this.h -= this.g.get(a).length); + this.g.set(a, [b2]); + this.h += 1; + return this; +}; +k$1.get = function(a, b2) { + if (!a) + return b2; + a = this.W(a); + return 0 < a.length ? String(a[0]) : b2; +}; +function fc$1(a, b2, c) { + Tc$1(a, b2); + 0 < c.length && (a.i = null, a.g.set(V$1(a, b2), ma(c)), a.h += c.length); +} +k$1.toString = function() { + if (this.i) + return this.i; + if (!this.g) + return ""; + const a = [], b2 = Array.from(this.g.keys()); + for (var c = 0; c < b2.length; c++) { + var d = b2[c]; + const f = encodeURIComponent(String(d)), h = this.W(d); + for (d = 0; d < h.length; d++) { + var e = f; + "" !== h[d] && (e += "=" + encodeURIComponent(String(h[d]))); + a.push(e); + } + } + return this.i = a.join("&"); +}; +function V$1(a, b2) { + b2 = String(b2); + a.j && (b2 = b2.toLowerCase()); + return b2; +} +function Qc$1(a, b2) { + b2 && !a.j && (U$1(a), a.i = null, a.g.forEach(function(c, d) { + var e = d.toLowerCase(); + d != e && (Tc$1(this, d), fc$1(this, e, c)); + }, a)); + a.j = b2; +} +var Vc$1 = class { + constructor(a, b2) { + this.h = a; + this.g = b2; + } +}; +function Wc$1(a) { + this.l = a || Xc$1; + l.PerformanceNavigationTiming ? (a = l.performance.getEntriesByType("navigation"), a = 0 < a.length && ("hq" == a[0].nextHopProtocol || "h2" == a[0].nextHopProtocol)) : a = !!(l.g && l.g.Ga && l.g.Ga() && l.g.Ga().$b); + this.j = a ? this.l : 1; + this.g = null; + 1 < this.j && (this.g = /* @__PURE__ */ new Set()); + this.h = null; + this.i = []; +} +var Xc$1 = 10; +function Yc$1(a) { + return a.h ? true : a.g ? a.g.size >= a.j : false; +} +function uc$1(a) { + return a.h ? 1 : a.g ? a.g.size : 0; +} +function qc$1(a, b2) { + return a.h ? a.h == b2 : a.g ? a.g.has(b2) : false; +} +function vc(a, b2) { + a.g ? a.g.add(b2) : a.h = b2; +} +function xc$1(a, b2) { + a.h && a.h == b2 ? a.h = null : a.g && a.g.has(b2) && a.g.delete(b2); +} +Wc$1.prototype.cancel = function() { + this.i = Zc$1(this); + if (this.h) + this.h.cancel(), this.h = null; + else if (this.g && 0 !== this.g.size) { + for (const a of this.g.values()) + a.cancel(); + this.g.clear(); + } +}; +function Zc$1(a) { + if (null != a.h) + return a.i.concat(a.h.D); + if (null != a.g && 0 !== a.g.size) { + let b2 = a.i; + for (const c of a.g.values()) + b2 = b2.concat(c.D); + return b2; + } + return ma(a.i); +} +function $c$1() { +} +$c$1.prototype.stringify = function(a) { + return l.JSON.stringify(a, void 0); +}; +$c$1.prototype.parse = function(a) { + return l.JSON.parse(a, void 0); +}; +function ad() { + this.g = new $c$1(); +} +function bd(a, b2, c) { + const d = c || ""; + try { + Dc$1(a, function(e, f) { + let h = e; + p(e) && (h = lb(e)); + b2.push(d + f + "=" + encodeURIComponent(h)); + }); + } catch (e) { + throw b2.push(d + "type=" + encodeURIComponent("_badmap")), e; + } +} +function cd(a, b2) { + const c = new Gb(); + if (l.Image) { + const d = new Image(); + d.onload = ia(dd, c, d, "TestLoadImage: loaded", true, b2); + d.onerror = ia(dd, c, d, "TestLoadImage: error", false, b2); + d.onabort = ia(dd, c, d, "TestLoadImage: abort", false, b2); + d.ontimeout = ia(dd, c, d, "TestLoadImage: timeout", false, b2); + l.setTimeout(function() { + if (d.ontimeout) + d.ontimeout(); + }, 1e4); + d.src = a; + } else + b2(false); +} +function dd(a, b2, c, d, e) { + try { + b2.onload = null, b2.onerror = null, b2.onabort = null, b2.ontimeout = null, e(d); + } catch (f) { + } +} +function ed(a) { + this.l = a.ac || null; + this.j = a.jb || false; +} +t(ed, Sb); +ed.prototype.g = function() { + return new fd(this.l, this.j); +}; +ed.prototype.i = function(a) { + return function() { + return a; + }; +}({}); +function fd(a, b2) { + B$1.call(this); + this.D = a; + this.u = b2; + this.m = void 0; + this.readyState = gd; + this.status = 0; + this.responseType = this.responseText = this.response = this.statusText = ""; + this.onreadystatechange = null; + this.v = new Headers(); + this.h = null; + this.C = "GET"; + this.B = ""; + this.g = false; + this.A = this.j = this.l = null; +} +t(fd, B$1); +var gd = 0; +k$1 = fd.prototype; +k$1.open = function(a, b2) { + if (this.readyState != gd) + throw this.abort(), Error("Error reopening a connection"); + this.C = a; + this.B = b2; + this.readyState = 1; + hd(this); +}; +k$1.send = function(a) { + if (1 != this.readyState) + throw this.abort(), Error("need to call open() first. "); + this.g = true; + const b2 = { headers: this.v, method: this.C, credentials: this.m, cache: void 0 }; + a && (b2.body = a); + (this.D || l).fetch(new Request(this.B, b2)).then(this.Wa.bind(this), this.ga.bind(this)); +}; +k$1.abort = function() { + this.response = this.responseText = ""; + this.v = new Headers(); + this.status = 0; + this.j && this.j.cancel("Request was aborted.").catch(() => { + }); + 1 <= this.readyState && this.g && 4 != this.readyState && (this.g = false, id(this)); + this.readyState = gd; +}; +k$1.Wa = function(a) { + if (this.g && (this.l = a, this.h || (this.status = this.l.status, this.statusText = this.l.statusText, this.h = a.headers, this.readyState = 2, hd(this)), this.g && (this.readyState = 3, hd(this), this.g))) + if ("arraybuffer" === this.responseType) + a.arrayBuffer().then(this.Ua.bind(this), this.ga.bind(this)); + else if ("undefined" !== typeof l.ReadableStream && "body" in a) { + this.j = a.body.getReader(); + if (this.u) { + if (this.responseType) + throw Error('responseType must be empty for "streamBinaryChunks" mode responses.'); + this.response = []; + } else + this.response = this.responseText = "", this.A = new TextDecoder(); + jd(this); + } else + a.text().then(this.Va.bind(this), this.ga.bind(this)); +}; +function jd(a) { + a.j.read().then(a.Ta.bind(a)).catch(a.ga.bind(a)); +} +k$1.Ta = function(a) { + if (this.g) { + if (this.u && a.value) + this.response.push(a.value); + else if (!this.u) { + var b2 = a.value ? a.value : new Uint8Array(0); + if (b2 = this.A.decode(b2, { stream: !a.done })) + this.response = this.responseText += b2; + } + a.done ? id(this) : hd(this); + 3 == this.readyState && jd(this); + } +}; +k$1.Va = function(a) { + this.g && (this.response = this.responseText = a, id(this)); +}; +k$1.Ua = function(a) { + this.g && (this.response = a, id(this)); +}; +k$1.ga = function() { + this.g && id(this); +}; +function id(a) { + a.readyState = 4; + a.l = null; + a.j = null; + a.A = null; + hd(a); +} +k$1.setRequestHeader = function(a, b2) { + this.v.append(a, b2); +}; +k$1.getResponseHeader = function(a) { + return this.h ? this.h.get(a.toLowerCase()) || "" : ""; +}; +k$1.getAllResponseHeaders = function() { + if (!this.h) + return ""; + const a = [], b2 = this.h.entries(); + for (var c = b2.next(); !c.done; ) + c = c.value, a.push(c[0] + ": " + c[1]), c = b2.next(); + return a.join("\r\n"); +}; +function hd(a) { + a.onreadystatechange && a.onreadystatechange.call(a); +} +Object.defineProperty(fd.prototype, "withCredentials", { get: function() { + return "include" === this.m; +}, set: function(a) { + this.m = a ? "include" : "same-origin"; +} }); +var kd = l.JSON.parse; +function W$1(a) { + B$1.call(this); + this.headers = /* @__PURE__ */ new Map(); + this.u = a || null; + this.h = false; + this.C = this.g = null; + this.H = ""; + this.m = 0; + this.j = ""; + this.l = this.F = this.v = this.D = false; + this.B = 0; + this.A = null; + this.J = ld; + this.K = this.L = false; +} +t(W$1, B$1); +var ld = "", md = /^https?$/i, nd = ["POST", "PUT"]; +k$1 = W$1.prototype; +k$1.Ka = function(a) { + this.L = a; +}; +k$1.da = function(a, b2, c, d) { + if (this.g) + throw Error("[goog.net.XhrIo] Object is active with another request=" + this.H + "; newUri=" + a); + b2 = b2 ? b2.toUpperCase() : "GET"; + this.H = a; + this.j = ""; + this.m = 0; + this.D = false; + this.h = true; + this.g = this.u ? this.u.g() : Xb.g(); + this.C = this.u ? Tb(this.u) : Tb(Xb); + this.g.onreadystatechange = q$1(this.Ha, this); + try { + this.F = true, this.g.open(b2, String(a), true), this.F = false; + } catch (f) { + od(this, f); + return; + } + a = c || ""; + c = new Map(this.headers); + if (d) + if (Object.getPrototypeOf(d) === Object.prototype) + for (var e in d) + c.set(e, d[e]); + else if ("function" === typeof d.keys && "function" === typeof d.get) + for (const f of d.keys()) + c.set(f, d.get(f)); + else + throw Error("Unknown input type for opt_headers: " + String(d)); + d = Array.from(c.keys()).find((f) => "content-type" == f.toLowerCase()); + e = l.FormData && a instanceof l.FormData; + !(0 <= la(nd, b2)) || d || e || c.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + for (const [f, h] of c) + this.g.setRequestHeader(f, h); + this.J && (this.g.responseType = this.J); + "withCredentials" in this.g && this.g.withCredentials !== this.L && (this.g.withCredentials = this.L); + try { + pd(this), 0 < this.B && ((this.K = qd(this.g)) ? (this.g.timeout = this.B, this.g.ontimeout = q$1(this.qa, this)) : this.A = Ab(this.qa, this.B, this)), this.v = true, this.g.send(a), this.v = false; + } catch (f) { + od(this, f); + } +}; +function qd(a) { + return y && Ia() && "number" === typeof a.timeout && void 0 !== a.ontimeout; +} +k$1.qa = function() { + "undefined" != typeof goog && this.g && (this.j = "Timed out after " + this.B + "ms, aborting", this.m = 8, C$1(this, "timeout"), this.abort(8)); +}; +function od(a, b2) { + a.h = false; + a.g && (a.l = true, a.g.abort(), a.l = false); + a.j = b2; + a.m = 5; + rd(a); + sd(a); +} +function rd(a) { + a.D || (a.D = true, C$1(a, "complete"), C$1(a, "error")); +} +k$1.abort = function(a) { + this.g && this.h && (this.h = false, this.l = true, this.g.abort(), this.l = false, this.m = a || 7, C$1(this, "complete"), C$1(this, "abort"), sd(this)); +}; +k$1.M = function() { + this.g && (this.h && (this.h = false, this.l = true, this.g.abort(), this.l = false), sd(this, true)); + W$1.X.M.call(this); +}; +k$1.Ha = function() { + this.s || (this.F || this.v || this.l ? td(this) : this.fb()); +}; +k$1.fb = function() { + td(this); +}; +function td(a) { + if (a.h && "undefined" != typeof goog && (!a.C[1] || 4 != O$1(a) || 2 != a.aa())) { + if (a.v && 4 == O$1(a)) + Ab(a.Ha, 0, a); + else if (C$1(a, "readystatechange"), 4 == O$1(a)) { + a.h = false; + try { + const n = a.aa(); + a: + switch (n) { + case 200: + case 201: + case 202: + case 204: + case 206: + case 304: + case 1223: + var b2 = true; + break a; + default: + b2 = false; + } + var c; + if (!(c = b2)) { + var d; + if (d = 0 === n) { + var e = String(a.H).match(Ec$1)[1] || null; + if (!e && l.self && l.self.location) { + var f = l.self.location.protocol; + e = f.substr(0, f.length - 1); + } + d = !md.test(e ? e.toLowerCase() : ""); + } + c = d; + } + if (c) + C$1(a, "complete"), C$1( + a, + "success" + ); + else { + a.m = 6; + try { + var h = 2 < O$1(a) ? a.g.statusText : ""; + } catch (u) { + h = ""; + } + a.j = h + " [" + a.aa() + "]"; + rd(a); + } + } finally { + sd(a); + } + } + } +} +function sd(a, b2) { + if (a.g) { + pd(a); + const c = a.g, d = a.C[0] ? aa$1 : null; + a.g = null; + a.C = null; + b2 || C$1(a, "ready"); + try { + c.onreadystatechange = d; + } catch (e) { + } + } +} +function pd(a) { + a.g && a.K && (a.g.ontimeout = null); + a.A && (l.clearTimeout(a.A), a.A = null); +} +function O$1(a) { + return a.g ? a.g.readyState : 0; +} +k$1.aa = function() { + try { + return 2 < O$1(this) ? this.g.status : -1; + } catch (a) { + return -1; + } +}; +k$1.fa = function() { + try { + return this.g ? this.g.responseText : ""; + } catch (a) { + return ""; + } +}; +k$1.Sa = function(a) { + if (this.g) { + var b2 = this.g.responseText; + a && 0 == b2.indexOf(a) && (b2 = b2.substring(a.length)); + return kd(b2); + } +}; +function hc$1(a) { + try { + if (!a.g) + return null; + if ("response" in a.g) + return a.g.response; + switch (a.J) { + case ld: + case "text": + return a.g.responseText; + case "arraybuffer": + if ("mozResponseArrayBuffer" in a.g) + return a.g.mozResponseArrayBuffer; + } + return null; + } catch (b2) { + return null; + } +} +k$1.Ea = function() { + return this.m; +}; +k$1.Oa = function() { + return "string" === typeof this.j ? this.j : String(this.j); +}; +function ud(a) { + let b2 = ""; + Qa$1(a, function(c, d) { + b2 += d; + b2 += ":"; + b2 += c; + b2 += "\r\n"; + }); + return b2; +} +function vd(a, b2, c) { + a: { + for (d in c) { + var d = false; + break a; + } + d = true; + } + d || (c = ud(c), "string" === typeof a ? null != c && encodeURIComponent(String(c)) : S$1(a, b2, c)); +} +function wd(a, b2, c) { + return c && c.internalChannelParams ? c.internalChannelParams[a] || b2 : b2; +} +function xd(a) { + this.Ca = 0; + this.i = []; + this.j = new Gb(); + this.ka = this.sa = this.F = this.V = this.g = this.za = this.D = this.ia = this.o = this.S = this.s = null; + this.ab = this.U = 0; + this.Za = wd("failFast", false, a); + this.L = this.v = this.u = this.m = this.l = null; + this.Y = true; + this.pa = this.Ba = this.T = -1; + this.Z = this.A = this.C = 0; + this.Xa = wd("baseRetryDelayMs", 5e3, a); + this.bb = wd("retryDelaySeedMs", 1e4, a); + this.$a = wd("forwardChannelMaxRetries", 2, a); + this.ta = wd("forwardChannelRequestTimeoutMs", 2e4, a); + this.ra = a && a.xmlHttpFactory || void 0; + this.Da = a && a.Zb || false; + this.J = void 0; + this.H = a && a.supportsCrossDomainXhr || false; + this.I = ""; + this.h = new Wc$1(a && a.concurrentRequestLimit); + this.Fa = new ad(); + this.O = a && a.fastHandshake || false; + this.N = a && a.encodeInitMessageHeaders || false; + this.O && this.N && (this.N = false); + this.Ya = a && a.Xb || false; + a && a.Aa && this.j.Aa(); + a && a.forceLongPolling && (this.Y = false); + this.$ = !this.O && this.Y && a && a.detectBufferingProxy || false; + this.ja = void 0; + this.P = 0; + this.K = false; + this.la = this.B = null; +} +k$1 = xd.prototype; +k$1.ma = 8; +k$1.G = 1; +function Ac$1(a) { + yd(a); + if (3 == a.G) { + var b2 = a.U++, c = M(a.F); + S$1(c, "SID", a.I); + S$1(c, "RID", b2); + S$1(c, "TYPE", "terminate"); + zd(a, c); + b2 = new L$1(a, a.j, b2, void 0); + b2.K = 2; + b2.v = dc$1(M(c)); + c = false; + l.navigator && l.navigator.sendBeacon && (c = l.navigator.sendBeacon(b2.v.toString(), "")); + !c && l.Image && (new Image().src = b2.v, c = true); + c || (b2.g = gc$1(b2.l, null), b2.g.da(b2.v)); + b2.F = Date.now(); + N$1(b2); + } + Ad(a); +} +function sc$1(a) { + a.g && (oc$1(a), a.g.cancel(), a.g = null); +} +function yd(a) { + sc$1(a); + a.u && (l.clearTimeout(a.u), a.u = null); + rc$1(a); + a.h.cancel(); + a.m && ("number" === typeof a.m && l.clearTimeout(a.m), a.m = null); +} +function zc$1(a) { + Yc$1(a.h) || a.m || (a.m = true, sb(a.Ja, a), a.C = 0); +} +function Bd(a, b2) { + if (uc$1(a.h) >= a.h.j - (a.m ? 1 : 0)) + return false; + if (a.m) + return a.i = b2.D.concat(a.i), true; + if (1 == a.G || 2 == a.G || a.C >= (a.Za ? 0 : a.$a)) + return false; + a.m = J(q$1(a.Ja, a, b2), Cd(a, a.C)); + a.C++; + return true; +} +k$1.Ja = function(a) { + if (this.m) + if (this.m = null, 1 == this.G) { + if (!a) { + this.U = Math.floor(1e5 * Math.random()); + a = this.U++; + const e = new L$1(this, this.j, a, void 0); + let f = this.s; + this.S && (f ? (f = Ra$1(f), Ta$1(f, this.S)) : f = this.S); + null !== this.o || this.N || (e.H = f, f = null); + if (this.O) + a: { + var b2 = 0; + for (var c = 0; c < this.i.length; c++) { + b: { + var d = this.i[c]; + if ("__data__" in d.g && (d = d.g.__data__, "string" === typeof d)) { + d = d.length; + break b; + } + d = void 0; + } + if (void 0 === d) + break; + b2 += d; + if (4096 < b2) { + b2 = c; + break a; + } + if (4096 === b2 || c === this.i.length - 1) { + b2 = c + 1; + break a; + } + } + b2 = 1e3; + } + else + b2 = 1e3; + b2 = Dd(this, e, b2); + c = M(this.F); + S$1(c, "RID", a); + S$1(c, "CVER", 22); + this.D && S$1(c, "X-HTTP-Session-Id", this.D); + zd(this, c); + f && (this.N ? b2 = "headers=" + encodeURIComponent(String(ud(f))) + "&" + b2 : this.o && vd(c, this.o, f)); + vc(this.h, e); + this.Ya && S$1(c, "TYPE", "init"); + this.O ? (S$1(c, "$req", b2), S$1(c, "SID", "null"), e.Z = true, cc$1(e, c, null)) : cc$1(e, c, b2); + this.G = 2; + } + } else + 3 == this.G && (a ? Ed(this, a) : 0 == this.i.length || Yc$1(this.h) || Ed(this)); +}; +function Ed(a, b2) { + var c; + b2 ? c = b2.m : c = a.U++; + const d = M(a.F); + S$1(d, "SID", a.I); + S$1(d, "RID", c); + S$1(d, "AID", a.T); + zd(a, d); + a.o && a.s && vd(d, a.o, a.s); + c = new L$1(a, a.j, c, a.C + 1); + null === a.o && (c.H = a.s); + b2 && (a.i = b2.D.concat(a.i)); + b2 = Dd(a, c, 1e3); + c.setTimeout(Math.round(0.5 * a.ta) + Math.round(0.5 * a.ta * Math.random())); + vc(a.h, c); + cc$1(c, d, b2); +} +function zd(a, b2) { + a.ia && Qa$1(a.ia, function(c, d) { + S$1(b2, d, c); + }); + a.l && Dc$1({}, function(c, d) { + S$1(b2, d, c); + }); +} +function Dd(a, b2, c) { + c = Math.min(a.i.length, c); + var d = a.l ? q$1(a.l.Ra, a.l, a) : null; + a: { + var e = a.i; + let f = -1; + for (; ; ) { + const h = ["count=" + c]; + -1 == f ? 0 < c ? (f = e[0].h, h.push("ofs=" + f)) : f = 0 : h.push("ofs=" + f); + let n = true; + for (let u = 0; u < c; u++) { + let m = e[u].h; + const r = e[u].g; + m -= f; + if (0 > m) + f = Math.max(0, e[u].h - 100), n = false; + else + try { + bd(r, h, "req" + m + "_"); + } catch (F2) { + d && d(r); + } + } + if (n) { + d = h.join("&"); + break a; + } + } + } + a = a.i.splice(0, c); + b2.D = a; + return d; +} +function yc$1(a) { + a.g || a.u || (a.Z = 1, sb(a.Ia, a), a.A = 0); +} +function tc$1(a) { + if (a.g || a.u || 3 <= a.A) + return false; + a.Z++; + a.u = J(q$1(a.Ia, a), Cd(a, a.A)); + a.A++; + return true; +} +k$1.Ia = function() { + this.u = null; + Fd(this); + if (this.$ && !(this.K || null == this.g || 0 >= this.P)) { + var a = 2 * this.P; + this.j.info("BP detection timer enabled: " + a); + this.B = J(q$1(this.eb, this), a); + } +}; +k$1.eb = function() { + this.B && (this.B = null, this.j.info("BP detection timeout reached."), this.j.info("Buffering proxy detected and switch to long-polling!"), this.L = false, this.K = true, I(10), sc$1(this), Fd(this)); +}; +function oc$1(a) { + null != a.B && (l.clearTimeout(a.B), a.B = null); +} +function Fd(a) { + a.g = new L$1(a, a.j, "rpc", a.Z); + null === a.o && (a.g.H = a.s); + a.g.N = 0; + var b2 = M(a.sa); + S$1(b2, "RID", "rpc"); + S$1(b2, "SID", a.I); + S$1(b2, "CI", a.L ? "0" : "1"); + S$1(b2, "AID", a.T); + S$1(b2, "TYPE", "xmlhttp"); + zd(a, b2); + a.o && a.s && vd(b2, a.o, a.s); + a.J && a.g.setTimeout(a.J); + var c = a.g; + a = a.ka; + c.K = 1; + c.v = dc$1(M(b2)); + c.s = null; + c.P = true; + ec$1(c, a); +} +k$1.cb = function() { + null != this.v && (this.v = null, sc$1(this), tc$1(this), I(19)); +}; +function rc$1(a) { + null != a.v && (l.clearTimeout(a.v), a.v = null); +} +function mc$1(a, b2) { + var c = null; + if (a.g == b2) { + rc$1(a); + oc$1(a); + a.g = null; + var d = 2; + } else if (qc$1(a.h, b2)) + c = b2.D, xc$1(a.h, b2), d = 1; + else + return; + if (0 != a.G) { + if (a.pa = b2.Y, b2.i) + if (1 == d) { + c = b2.s ? b2.s.length : 0; + b2 = Date.now() - b2.F; + var e = a.C; + d = Mb(); + C$1(d, new Pb(d, c)); + zc$1(a); + } else + yc$1(a); + else if (e = b2.o, 3 == e || 0 == e && 0 < a.pa || !(1 == d && Bd(a, b2) || 2 == d && tc$1(a))) + switch (c && 0 < c.length && (b2 = a.h, b2.i = b2.i.concat(c)), e) { + case 1: + R(a, 5); + break; + case 4: + R(a, 10); + break; + case 3: + R(a, 6); + break; + default: + R(a, 2); + } + } +} +function Cd(a, b2) { + let c = a.Xa + Math.floor(Math.random() * a.bb); + a.l || (c *= 2); + return c * b2; +} +function R(a, b2) { + a.j.info("Error code " + b2); + if (2 == b2) { + var c = null; + a.l && (c = null); + var d = q$1(a.kb, a); + c || (c = new T("//www.google.com/images/cleardot.gif"), l.location && "http" == l.location.protocol || Gc$1(c, "https"), dc$1(c)); + cd(c.toString(), d); + } else + I(2); + a.G = 0; + a.l && a.l.va(b2); + Ad(a); + yd(a); +} +k$1.kb = function(a) { + a ? (this.j.info("Successfully pinged google.com"), I(2)) : (this.j.info("Failed to ping google.com"), I(1)); +}; +function Ad(a) { + a.G = 0; + a.la = []; + if (a.l) { + const b2 = Zc$1(a.h); + if (0 != b2.length || 0 != a.i.length) + na(a.la, b2), na(a.la, a.i), a.h.i.length = 0, ma(a.i), a.i.length = 0; + a.l.ua(); + } +} +function wc$1(a, b2, c) { + var d = c instanceof T ? M(c) : new T(c, void 0); + if ("" != d.g) + b2 && (d.g = b2 + "." + d.g), Hc$1(d, d.m); + else { + var e = l.location; + d = e.protocol; + b2 = b2 ? b2 + "." + e.hostname : e.hostname; + e = +e.port; + var f = new T(null, void 0); + d && Gc$1(f, d); + b2 && (f.g = b2); + e && Hc$1(f, e); + c && (f.l = c); + d = f; + } + c = a.D; + b2 = a.za; + c && b2 && S$1(d, c, b2); + S$1(d, "VER", a.ma); + zd(a, d); + return d; +} +function gc$1(a, b2, c) { + if (b2 && !a.H) + throw Error("Can't create secondary domain capable XhrIo object."); + b2 = c && a.Da && !a.ra ? new W$1(new ed({ jb: true })) : new W$1(a.ra); + b2.Ka(a.H); + return b2; +} +function Gd() { +} +k$1 = Gd.prototype; +k$1.xa = function() { +}; +k$1.wa = function() { +}; +k$1.va = function() { +}; +k$1.ua = function() { +}; +k$1.Ra = function() { +}; +function Hd() { + if (y && !(10 <= Number(La))) + throw Error("Environmental error: no available transport."); +} +Hd.prototype.g = function(a, b2) { + return new X$1(a, b2); +}; +function X$1(a, b2) { + B$1.call(this); + this.g = new xd(b2); + this.l = a; + this.h = b2 && b2.messageUrlParams || null; + a = b2 && b2.messageHeaders || null; + b2 && b2.clientProtocolHeaderRequired && (a ? a["X-Client-Protocol"] = "webchannel" : a = { "X-Client-Protocol": "webchannel" }); + this.g.s = a; + a = b2 && b2.initMessageHeaders || null; + b2 && b2.messageContentType && (a ? a["X-WebChannel-Content-Type"] = b2.messageContentType : a = { "X-WebChannel-Content-Type": b2.messageContentType }); + b2 && b2.ya && (a ? a["X-WebChannel-Client-Profile"] = b2.ya : a = { "X-WebChannel-Client-Profile": b2.ya }); + this.g.S = a; + (a = b2 && b2.Yb) && !pa(a) && (this.g.o = a); + this.A = b2 && b2.supportsCrossDomainXhr || false; + this.v = b2 && b2.sendRawJson || false; + (b2 = b2 && b2.httpSessionIdParam) && !pa(b2) && (this.g.D = b2, a = this.h, null !== a && b2 in a && (a = this.h, b2 in a && delete a[b2])); + this.j = new Y$1(this); +} +t(X$1, B$1); +X$1.prototype.m = function() { + this.g.l = this.j; + this.A && (this.g.H = true); + var a = this.g, b2 = this.l, c = this.h || void 0; + I(0); + a.V = b2; + a.ia = c || {}; + a.L = a.Y; + a.F = wc$1(a, null, a.V); + zc$1(a); +}; +X$1.prototype.close = function() { + Ac$1(this.g); +}; +X$1.prototype.u = function(a) { + var b2 = this.g; + if ("string" === typeof a) { + var c = {}; + c.__data__ = a; + a = c; + } else + this.v && (c = {}, c.__data__ = lb(a), a = c); + b2.i.push(new Vc$1(b2.ab++, a)); + 3 == b2.G && zc$1(b2); +}; +X$1.prototype.M = function() { + this.g.l = null; + delete this.j; + Ac$1(this.g); + delete this.g; + X$1.X.M.call(this); +}; +function Id(a) { + Vb.call(this); + var b2 = a.__sm__; + if (b2) { + a: { + for (const c in b2) { + a = c; + break a; + } + a = void 0; + } + if (this.i = a) + a = this.i, b2 = null !== b2 && a in b2 ? b2[a] : void 0; + this.data = b2; + } else + this.data = a; +} +t(Id, Vb); +function Jd() { + Wb.call(this); + this.status = 1; +} +t(Jd, Wb); +function Y$1(a) { + this.g = a; +} +t(Y$1, Gd); +Y$1.prototype.xa = function() { + C$1(this.g, "a"); +}; +Y$1.prototype.wa = function(a) { + C$1(this.g, new Id(a)); +}; +Y$1.prototype.va = function(a) { + C$1(this.g, new Jd()); +}; +Y$1.prototype.ua = function() { + C$1(this.g, "b"); +}; +Hd.prototype.createWebChannel = Hd.prototype.g; +X$1.prototype.send = X$1.prototype.u; +X$1.prototype.open = X$1.prototype.m; +X$1.prototype.close = X$1.prototype.close; +Qb.NO_ERROR = 0; +Qb.TIMEOUT = 8; +Qb.HTTP_ERROR = 6; +Rb.COMPLETE = "complete"; +Ub.EventType = K$1; +K$1.OPEN = "a"; +K$1.CLOSE = "b"; +K$1.ERROR = "c"; +K$1.MESSAGE = "d"; +B$1.prototype.listen = B$1.prototype.N; +W$1.prototype.listenOnce = W$1.prototype.O; +W$1.prototype.getLastError = W$1.prototype.Oa; +W$1.prototype.getLastErrorCode = W$1.prototype.Ea; +W$1.prototype.getStatus = W$1.prototype.aa; +W$1.prototype.getResponseJson = W$1.prototype.Sa; +W$1.prototype.getResponseText = W$1.prototype.fa; +W$1.prototype.send = W$1.prototype.da; +W$1.prototype.setWithCredentials = W$1.prototype.Ka; +var createWebChannelTransport = function() { + return new Hd(); +}; +var getStatEventTarget = function() { + return Mb(); +}; +var ErrorCode = Qb; +var EventType = Rb; +var Event = G$1; +var Stat = { sb: 0, vb: 1, wb: 2, Pb: 3, Ub: 4, Rb: 5, Sb: 6, Qb: 7, Ob: 8, Tb: 9, PROXY: 10, NOPROXY: 11, Mb: 12, Ib: 13, Jb: 14, Hb: 15, Kb: 16, Lb: 17, ob: 18, nb: 19, pb: 20 }; +var FetchXmlHttpFactory = ed; +var WebChannel = Ub; +var XhrIo = W$1; +const v = "@firebase/firestore"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class b { + constructor(t2) { + this.uid = t2; + } + isAuthenticated() { + return null != this.uid; + } + toKey() { + return this.isAuthenticated() ? "uid:" + this.uid : "anonymous-user"; + } + isEqual(t2) { + return t2.uid === this.uid; + } +} +b.UNAUTHENTICATED = new b(null), b.GOOGLE_CREDENTIALS = new b("google-credentials-uid"), b.FIRST_PARTY = new b("first-party-uid"), b.MOCK_USER = new b("mock-user"); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +let P = "9.19.0"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const V = new Logger("@firebase/firestore"); +function S() { + return V.logLevel; +} +function C(t2, ...e) { + if (V.logLevel <= LogLevel.DEBUG) { + const n = e.map(k); + V.debug(`Firestore (${P}): ${t2}`, ...n); + } +} +function x(t2, ...e) { + if (V.logLevel <= LogLevel.ERROR) { + const n = e.map(k); + V.error(`Firestore (${P}): ${t2}`, ...n); + } +} +function N(t2, ...e) { + if (V.logLevel <= LogLevel.WARN) { + const n = e.map(k); + V.warn(`Firestore (${P}): ${t2}`, ...n); + } +} +function k(t2) { + if ("string" == typeof t2) + return t2; + try { + return e = t2, JSON.stringify(e); + } catch (e2) { + return t2; + } + /** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + var e; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function O(t2 = "Unexpected state") { + const e = `FIRESTORE (${P}) INTERNAL ASSERTION FAILED: ` + t2; + throw x(e), new Error(e); +} +function $(t2, e) { + t2 || O(); +} +function F(t2, e) { + return t2; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const B = { + OK: "ok", + CANCELLED: "cancelled", + UNKNOWN: "unknown", + INVALID_ARGUMENT: "invalid-argument", + DEADLINE_EXCEEDED: "deadline-exceeded", + NOT_FOUND: "not-found", + ALREADY_EXISTS: "already-exists", + PERMISSION_DENIED: "permission-denied", + UNAUTHENTICATED: "unauthenticated", + RESOURCE_EXHAUSTED: "resource-exhausted", + FAILED_PRECONDITION: "failed-precondition", + ABORTED: "aborted", + OUT_OF_RANGE: "out-of-range", + UNIMPLEMENTED: "unimplemented", + INTERNAL: "internal", + UNAVAILABLE: "unavailable", + DATA_LOSS: "data-loss" +}; +class L extends FirebaseError { + constructor(t2, e) { + super(t2, e), this.code = t2, this.message = e, this.toString = () => `${this.name}: [code=${this.code}]: ${this.message}`; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class q { + constructor() { + this.promise = new Promise((t2, e) => { + this.resolve = t2, this.reject = e; + }); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class U { + constructor(t2, e) { + this.user = e, this.type = "OAuth", this.headers = /* @__PURE__ */ new Map(), this.headers.set("Authorization", `Bearer ${t2}`); + } +} +class K { + getToken() { + return Promise.resolve(null); + } + invalidateToken() { + } + start(t2, e) { + t2.enqueueRetryable(() => e(b.UNAUTHENTICATED)); + } + shutdown() { + } +} +class G { + constructor(t2) { + this.token = t2, this.changeListener = null; + } + getToken() { + return Promise.resolve(this.token); + } + invalidateToken() { + } + start(t2, e) { + this.changeListener = e, t2.enqueueRetryable(() => e(this.token.user)); + } + shutdown() { + this.changeListener = null; + } +} +class Q { + constructor(t2) { + this.t = t2, this.currentUser = b.UNAUTHENTICATED, this.i = 0, this.forceRefresh = false, this.auth = null; + } + start(t2, e) { + let n = this.i; + const s = (t3) => this.i !== n ? (n = this.i, e(t3)) : Promise.resolve(); + let i = new q(); + this.o = () => { + this.i++, this.currentUser = this.u(), i.resolve(), i = new q(), t2.enqueueRetryable(() => s(this.currentUser)); + }; + const r = () => { + const e2 = i; + t2.enqueueRetryable(async () => { + await e2.promise, await s(this.currentUser); + }); + }, o = (t3) => { + C("FirebaseAuthCredentialsProvider", "Auth detected"), this.auth = t3, this.auth.addAuthTokenListener(this.o), r(); + }; + this.t.onInit((t3) => o(t3)), setTimeout(() => { + if (!this.auth) { + const t3 = this.t.getImmediate({ + optional: true + }); + t3 ? o(t3) : (C("FirebaseAuthCredentialsProvider", "Auth not yet detected"), i.resolve(), i = new q()); + } + }, 0), r(); + } + getToken() { + const t2 = this.i, e = this.forceRefresh; + return this.forceRefresh = false, this.auth ? this.auth.getToken(e).then((e2) => this.i !== t2 ? (C("FirebaseAuthCredentialsProvider", "getToken aborted due to token change."), this.getToken()) : e2 ? ($("string" == typeof e2.accessToken), new U(e2.accessToken, this.currentUser)) : null) : Promise.resolve(null); + } + invalidateToken() { + this.forceRefresh = true; + } + shutdown() { + this.auth && this.auth.removeAuthTokenListener(this.o); + } + u() { + const t2 = this.auth && this.auth.getUid(); + return $(null === t2 || "string" == typeof t2), new b(t2); + } +} +class z { + constructor(t2, e, n) { + this.h = t2, this.l = e, this.m = n, this.type = "FirstParty", this.user = b.FIRST_PARTY, this.g = /* @__PURE__ */ new Map(); + } + p() { + return this.m ? this.m() : null; + } + get headers() { + this.g.set("X-Goog-AuthUser", this.h); + const t2 = this.p(); + return t2 && this.g.set("Authorization", t2), this.l && this.g.set("X-Goog-Iam-Authorization-Token", this.l), this.g; + } +} +class j { + constructor(t2, e, n) { + this.h = t2, this.l = e, this.m = n; + } + getToken() { + return Promise.resolve(new z(this.h, this.l, this.m)); + } + start(t2, e) { + t2.enqueueRetryable(() => e(b.FIRST_PARTY)); + } + shutdown() { + } + invalidateToken() { + } +} +class W { + constructor(t2) { + this.value = t2, this.type = "AppCheck", this.headers = /* @__PURE__ */ new Map(), t2 && t2.length > 0 && this.headers.set("x-firebase-appcheck", this.value); + } +} +class H { + constructor(t2) { + this.I = t2, this.forceRefresh = false, this.appCheck = null, this.T = null; + } + start(t2, e) { + const n = (t3) => { + null != t3.error && C("FirebaseAppCheckTokenProvider", `Error getting App Check token; using placeholder token instead. Error: ${t3.error.message}`); + const n2 = t3.token !== this.T; + return this.T = t3.token, C("FirebaseAppCheckTokenProvider", `Received ${n2 ? "new" : "existing"} token.`), n2 ? e(t3.token) : Promise.resolve(); + }; + this.o = (e2) => { + t2.enqueueRetryable(() => n(e2)); + }; + const s = (t3) => { + C("FirebaseAppCheckTokenProvider", "AppCheck detected"), this.appCheck = t3, this.appCheck.addTokenListener(this.o); + }; + this.I.onInit((t3) => s(t3)), setTimeout(() => { + if (!this.appCheck) { + const t3 = this.I.getImmediate({ + optional: true + }); + t3 ? s(t3) : C("FirebaseAppCheckTokenProvider", "AppCheck not yet detected"); + } + }, 0); + } + getToken() { + const t2 = this.forceRefresh; + return this.forceRefresh = false, this.appCheck ? this.appCheck.getToken(t2).then((t3) => t3 ? ($("string" == typeof t3.token), this.T = t3.token, new W(t3.token)) : null) : Promise.resolve(null); + } + invalidateToken() { + this.forceRefresh = true; + } + shutdown() { + this.appCheck && this.appCheck.removeTokenListener(this.o); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Y(t2) { + const e = "undefined" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t2); + if (e && "function" == typeof e.getRandomValues) + e.getRandomValues(n); + else + for (let e2 = 0; e2 < t2; e2++) + n[e2] = Math.floor(256 * Math.random()); + return n; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Z { + static A() { + const t2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", e = Math.floor(256 / t2.length) * t2.length; + let n = ""; + for (; n.length < 20; ) { + const s = Y(40); + for (let i = 0; i < s.length; ++i) + n.length < 20 && s[i] < e && (n += t2.charAt(s[i] % t2.length)); + } + return n; + } +} +function X(t2, e) { + return t2 < e ? -1 : t2 > e ? 1 : 0; +} +function tt(t2, e, n) { + return t2.length === e.length && t2.every((t3, s) => n(t3, e[s])); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class nt { + constructor(t2, e) { + if (this.seconds = t2, this.nanoseconds = e, e < 0) + throw new L(B.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + e); + if (e >= 1e9) + throw new L(B.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + e); + if (t2 < -62135596800) + throw new L(B.INVALID_ARGUMENT, "Timestamp seconds out of range: " + t2); + if (t2 >= 253402300800) + throw new L(B.INVALID_ARGUMENT, "Timestamp seconds out of range: " + t2); + } + static now() { + return nt.fromMillis(Date.now()); + } + static fromDate(t2) { + return nt.fromMillis(t2.getTime()); + } + static fromMillis(t2) { + const e = Math.floor(t2 / 1e3), n = Math.floor(1e6 * (t2 - 1e3 * e)); + return new nt(e, n); + } + toDate() { + return new Date(this.toMillis()); + } + toMillis() { + return 1e3 * this.seconds + this.nanoseconds / 1e6; + } + _compareTo(t2) { + return this.seconds === t2.seconds ? X(this.nanoseconds, t2.nanoseconds) : X(this.seconds, t2.seconds); + } + isEqual(t2) { + return t2.seconds === this.seconds && t2.nanoseconds === this.nanoseconds; + } + toString() { + return "Timestamp(seconds=" + this.seconds + ", nanoseconds=" + this.nanoseconds + ")"; + } + toJSON() { + return { + seconds: this.seconds, + nanoseconds: this.nanoseconds + }; + } + valueOf() { + const t2 = this.seconds - -62135596800; + return String(t2).padStart(12, "0") + "." + String(this.nanoseconds).padStart(9, "0"); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class st { + constructor(t2) { + this.timestamp = t2; + } + static fromTimestamp(t2) { + return new st(t2); + } + static min() { + return new st(new nt(0, 0)); + } + static max() { + return new st(new nt(253402300799, 999999999)); + } + compareTo(t2) { + return this.timestamp._compareTo(t2.timestamp); + } + isEqual(t2) { + return this.timestamp.isEqual(t2.timestamp); + } + toMicroseconds() { + return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3; + } + toString() { + return "SnapshotVersion(" + this.timestamp.toString() + ")"; + } + toTimestamp() { + return this.timestamp; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class it { + constructor(t2, e, n) { + void 0 === e ? e = 0 : e > t2.length && O(), void 0 === n ? n = t2.length - e : n > t2.length - e && O(), this.segments = t2, this.offset = e, this.len = n; + } + get length() { + return this.len; + } + isEqual(t2) { + return 0 === it.comparator(this, t2); + } + child(t2) { + const e = this.segments.slice(this.offset, this.limit()); + return t2 instanceof it ? t2.forEach((t3) => { + e.push(t3); + }) : e.push(t2), this.construct(e); + } + limit() { + return this.offset + this.length; + } + popFirst(t2) { + return t2 = void 0 === t2 ? 1 : t2, this.construct(this.segments, this.offset + t2, this.length - t2); + } + popLast() { + return this.construct(this.segments, this.offset, this.length - 1); + } + firstSegment() { + return this.segments[this.offset]; + } + lastSegment() { + return this.get(this.length - 1); + } + get(t2) { + return this.segments[this.offset + t2]; + } + isEmpty() { + return 0 === this.length; + } + isPrefixOf(t2) { + if (t2.length < this.length) + return false; + for (let e = 0; e < this.length; e++) + if (this.get(e) !== t2.get(e)) + return false; + return true; + } + isImmediateParentOf(t2) { + if (this.length + 1 !== t2.length) + return false; + for (let e = 0; e < this.length; e++) + if (this.get(e) !== t2.get(e)) + return false; + return true; + } + forEach(t2) { + for (let e = this.offset, n = this.limit(); e < n; e++) + t2(this.segments[e]); + } + toArray() { + return this.segments.slice(this.offset, this.limit()); + } + static comparator(t2, e) { + const n = Math.min(t2.length, e.length); + for (let s = 0; s < n; s++) { + const n2 = t2.get(s), i = e.get(s); + if (n2 < i) + return -1; + if (n2 > i) + return 1; + } + return t2.length < e.length ? -1 : t2.length > e.length ? 1 : 0; + } +} +class rt extends it { + construct(t2, e, n) { + return new rt(t2, e, n); + } + canonicalString() { + return this.toArray().join("/"); + } + toString() { + return this.canonicalString(); + } + static fromString(...t2) { + const e = []; + for (const n of t2) { + if (n.indexOf("//") >= 0) + throw new L(B.INVALID_ARGUMENT, `Invalid segment (${n}). Paths must not contain // in them.`); + e.push(...n.split("/").filter((t3) => t3.length > 0)); + } + return new rt(e); + } + static emptyPath() { + return new rt([]); + } +} +const ot = /^[_a-zA-Z][_a-zA-Z0-9]*$/; +class ut extends it { + construct(t2, e, n) { + return new ut(t2, e, n); + } + static isValidIdentifier(t2) { + return ot.test(t2); + } + canonicalString() { + return this.toArray().map((t2) => (t2 = t2.replace(/\\/g, "\\\\").replace(/`/g, "\\`"), ut.isValidIdentifier(t2) || (t2 = "`" + t2 + "`"), t2)).join("."); + } + toString() { + return this.canonicalString(); + } + isKeyField() { + return 1 === this.length && "__name__" === this.get(0); + } + static keyField() { + return new ut(["__name__"]); + } + static fromServerFormat(t2) { + const e = []; + let n = "", s = 0; + const i = () => { + if (0 === n.length) + throw new L(B.INVALID_ARGUMENT, `Invalid field path (${t2}). Paths must not be empty, begin with '.', end with '.', or contain '..'`); + e.push(n), n = ""; + }; + let r = false; + for (; s < t2.length; ) { + const e2 = t2[s]; + if ("\\" === e2) { + if (s + 1 === t2.length) + throw new L(B.INVALID_ARGUMENT, "Path has trailing escape character: " + t2); + const e3 = t2[s + 1]; + if ("\\" !== e3 && "." !== e3 && "`" !== e3) + throw new L(B.INVALID_ARGUMENT, "Path has invalid escape sequence: " + t2); + n += e3, s += 2; + } else + "`" === e2 ? (r = !r, s++) : "." !== e2 || r ? (n += e2, s++) : (i(), s++); + } + if (i(), r) + throw new L(B.INVALID_ARGUMENT, "Unterminated ` in path: " + t2); + return new ut(e); + } + static emptyPath() { + return new ut([]); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ct { + constructor(t2) { + this.path = t2; + } + static fromPath(t2) { + return new ct(rt.fromString(t2)); + } + static fromName(t2) { + return new ct(rt.fromString(t2).popFirst(5)); + } + static empty() { + return new ct(rt.emptyPath()); + } + get collectionGroup() { + return this.path.popLast().lastSegment(); + } + hasCollectionId(t2) { + return this.path.length >= 2 && this.path.get(this.path.length - 2) === t2; + } + getCollectionGroup() { + return this.path.get(this.path.length - 2); + } + getCollectionPath() { + return this.path.popLast(); + } + isEqual(t2) { + return null !== t2 && 0 === rt.comparator(this.path, t2.path); + } + toString() { + return this.path.toString(); + } + static comparator(t2, e) { + return rt.comparator(t2.path, e.path); + } + static isDocumentKey(t2) { + return t2.length % 2 == 0; + } + static fromSegments(t2) { + return new ct(new rt(t2.slice())); + } +} +function mt(t2, e) { + const n = t2.toTimestamp().seconds, s = t2.toTimestamp().nanoseconds + 1, i = st.fromTimestamp(1e9 === s ? new nt(n + 1, 0) : new nt(n, s)); + return new yt(i, ct.empty(), e); +} +function gt(t2) { + return new yt(t2.readTime, t2.key, -1); +} +class yt { + constructor(t2, e, n) { + this.readTime = t2, this.documentKey = e, this.largestBatchId = n; + } + static min() { + return new yt(st.min(), ct.empty(), -1); + } + static max() { + return new yt(st.max(), ct.empty(), -1); + } +} +function pt(t2, e) { + let n = t2.readTime.compareTo(e.readTime); + return 0 !== n ? n : (n = ct.comparator(t2.documentKey, e.documentKey), 0 !== n ? n : X(t2.largestBatchId, e.largestBatchId)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const It = "The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."; +class Tt { + constructor() { + this.onCommittedListeners = []; + } + addOnCommittedListener(t2) { + this.onCommittedListeners.push(t2); + } + raiseOnCommittedEvent() { + this.onCommittedListeners.forEach((t2) => t2()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function Et(t2) { + if (t2.code !== B.FAILED_PRECONDITION || t2.message !== It) + throw t2; + C("LocalStore", "Unexpectedly lost primary lease"); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class At { + constructor(t2) { + this.nextCallback = null, this.catchCallback = null, this.result = void 0, this.error = void 0, this.isDone = false, this.callbackAttached = false, t2((t3) => { + this.isDone = true, this.result = t3, this.nextCallback && this.nextCallback(t3); + }, (t3) => { + this.isDone = true, this.error = t3, this.catchCallback && this.catchCallback(t3); + }); + } + catch(t2) { + return this.next(void 0, t2); + } + next(t2, e) { + return this.callbackAttached && O(), this.callbackAttached = true, this.isDone ? this.error ? this.wrapFailure(e, this.error) : this.wrapSuccess(t2, this.result) : new At((n, s) => { + this.nextCallback = (e2) => { + this.wrapSuccess(t2, e2).next(n, s); + }, this.catchCallback = (t3) => { + this.wrapFailure(e, t3).next(n, s); + }; + }); + } + toPromise() { + return new Promise((t2, e) => { + this.next(t2, e); + }); + } + wrapUserFunction(t2) { + try { + const e = t2(); + return e instanceof At ? e : At.resolve(e); + } catch (t3) { + return At.reject(t3); + } + } + wrapSuccess(t2, e) { + return t2 ? this.wrapUserFunction(() => t2(e)) : At.resolve(e); + } + wrapFailure(t2, e) { + return t2 ? this.wrapUserFunction(() => t2(e)) : At.reject(e); + } + static resolve(t2) { + return new At((e, n) => { + e(t2); + }); + } + static reject(t2) { + return new At((e, n) => { + n(t2); + }); + } + static waitFor(t2) { + return new At((e, n) => { + let s = 0, i = 0, r = false; + t2.forEach((t3) => { + ++s, t3.next(() => { + ++i, r && i === s && e(); + }, (t4) => n(t4)); + }), r = true, i === s && e(); + }); + } + static or(t2) { + let e = At.resolve(false); + for (const n of t2) + e = e.next((t3) => t3 ? At.resolve(t3) : n()); + return e; + } + static forEach(t2, e) { + const n = []; + return t2.forEach((t3, s) => { + n.push(e.call(this, t3, s)); + }), this.waitFor(n); + } + static mapArray(t2, e) { + return new At((n, s) => { + const i = t2.length, r = new Array(i); + let o = 0; + for (let u = 0; u < i; u++) { + const c = u; + e(t2[c]).next((t3) => { + r[c] = t3, ++o, o === i && n(r); + }, (t3) => s(t3)); + } + }); + } + static doWhile(t2, e) { + return new At((n, s) => { + const i = () => { + true === t2() ? e().next(() => { + i(); + }, s) : n(); + }; + i(); + }); + } +} +function Vt(t2) { + return "IndexedDbTransactionError" === t2.name; +} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ot { + constructor(t2, e) { + this.previousValue = t2, e && (e.sequenceNumberHandler = (t3) => this.ot(t3), this.ut = (t3) => e.writeSequenceNumber(t3)); + } + ot(t2) { + return this.previousValue = Math.max(t2, this.previousValue), this.previousValue; + } + next() { + const t2 = ++this.previousValue; + return this.ut && this.ut(t2), t2; + } +} +Ot.ct = -1; +function $t(t2) { + return null == t2; +} +function Mt(t2) { + return 0 === t2 && 1 / t2 == -1 / 0; +} +function Ft(t2) { + return "number" == typeof t2 && Number.isInteger(t2) && !Mt(t2) && t2 <= Number.MAX_SAFE_INTEGER && t2 >= Number.MIN_SAFE_INTEGER; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function we(t2) { + let e = 0; + for (const n in t2) + Object.prototype.hasOwnProperty.call(t2, n) && e++; + return e; +} +function _e(t2, e) { + for (const n in t2) + Object.prototype.hasOwnProperty.call(t2, n) && e(n, t2[n]); +} +function me(t2) { + for (const e in t2) + if (Object.prototype.hasOwnProperty.call(t2, e)) + return false; + return true; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ge { + constructor(t2, e) { + this.comparator = t2, this.root = e || pe.EMPTY; + } + insert(t2, e) { + return new ge(this.comparator, this.root.insert(t2, e, this.comparator).copy(null, null, pe.BLACK, null, null)); + } + remove(t2) { + return new ge(this.comparator, this.root.remove(t2, this.comparator).copy(null, null, pe.BLACK, null, null)); + } + get(t2) { + let e = this.root; + for (; !e.isEmpty(); ) { + const n = this.comparator(t2, e.key); + if (0 === n) + return e.value; + n < 0 ? e = e.left : n > 0 && (e = e.right); + } + return null; + } + indexOf(t2) { + let e = 0, n = this.root; + for (; !n.isEmpty(); ) { + const s = this.comparator(t2, n.key); + if (0 === s) + return e + n.left.size; + s < 0 ? n = n.left : (e += n.left.size + 1, n = n.right); + } + return -1; + } + isEmpty() { + return this.root.isEmpty(); + } + get size() { + return this.root.size; + } + minKey() { + return this.root.minKey(); + } + maxKey() { + return this.root.maxKey(); + } + inorderTraversal(t2) { + return this.root.inorderTraversal(t2); + } + forEach(t2) { + this.inorderTraversal((e, n) => (t2(e, n), false)); + } + toString() { + const t2 = []; + return this.inorderTraversal((e, n) => (t2.push(`${e}:${n}`), false)), `{${t2.join(", ")}}`; + } + reverseTraversal(t2) { + return this.root.reverseTraversal(t2); + } + getIterator() { + return new ye(this.root, null, this.comparator, false); + } + getIteratorFrom(t2) { + return new ye(this.root, t2, this.comparator, false); + } + getReverseIterator() { + return new ye(this.root, null, this.comparator, true); + } + getReverseIteratorFrom(t2) { + return new ye(this.root, t2, this.comparator, true); + } +} +class ye { + constructor(t2, e, n, s) { + this.isReverse = s, this.nodeStack = []; + let i = 1; + for (; !t2.isEmpty(); ) + if (i = e ? n(t2.key, e) : 1, e && s && (i *= -1), i < 0) + t2 = this.isReverse ? t2.left : t2.right; + else { + if (0 === i) { + this.nodeStack.push(t2); + break; + } + this.nodeStack.push(t2), t2 = this.isReverse ? t2.right : t2.left; + } + } + getNext() { + let t2 = this.nodeStack.pop(); + const e = { + key: t2.key, + value: t2.value + }; + if (this.isReverse) + for (t2 = t2.left; !t2.isEmpty(); ) + this.nodeStack.push(t2), t2 = t2.right; + else + for (t2 = t2.right; !t2.isEmpty(); ) + this.nodeStack.push(t2), t2 = t2.left; + return e; + } + hasNext() { + return this.nodeStack.length > 0; + } + peek() { + if (0 === this.nodeStack.length) + return null; + const t2 = this.nodeStack[this.nodeStack.length - 1]; + return { + key: t2.key, + value: t2.value + }; + } +} +class pe { + constructor(t2, e, n, s, i) { + this.key = t2, this.value = e, this.color = null != n ? n : pe.RED, this.left = null != s ? s : pe.EMPTY, this.right = null != i ? i : pe.EMPTY, this.size = this.left.size + 1 + this.right.size; + } + copy(t2, e, n, s, i) { + return new pe(null != t2 ? t2 : this.key, null != e ? e : this.value, null != n ? n : this.color, null != s ? s : this.left, null != i ? i : this.right); + } + isEmpty() { + return false; + } + inorderTraversal(t2) { + return this.left.inorderTraversal(t2) || t2(this.key, this.value) || this.right.inorderTraversal(t2); + } + reverseTraversal(t2) { + return this.right.reverseTraversal(t2) || t2(this.key, this.value) || this.left.reverseTraversal(t2); + } + min() { + return this.left.isEmpty() ? this : this.left.min(); + } + minKey() { + return this.min().key; + } + maxKey() { + return this.right.isEmpty() ? this.key : this.right.maxKey(); + } + insert(t2, e, n) { + let s = this; + const i = n(t2, s.key); + return s = i < 0 ? s.copy(null, null, null, s.left.insert(t2, e, n), null) : 0 === i ? s.copy(null, e, null, null, null) : s.copy(null, null, null, null, s.right.insert(t2, e, n)), s.fixUp(); + } + removeMin() { + if (this.left.isEmpty()) + return pe.EMPTY; + let t2 = this; + return t2.left.isRed() || t2.left.left.isRed() || (t2 = t2.moveRedLeft()), t2 = t2.copy(null, null, null, t2.left.removeMin(), null), t2.fixUp(); + } + remove(t2, e) { + let n, s = this; + if (e(t2, s.key) < 0) + s.left.isEmpty() || s.left.isRed() || s.left.left.isRed() || (s = s.moveRedLeft()), s = s.copy(null, null, null, s.left.remove(t2, e), null); + else { + if (s.left.isRed() && (s = s.rotateRight()), s.right.isEmpty() || s.right.isRed() || s.right.left.isRed() || (s = s.moveRedRight()), 0 === e(t2, s.key)) { + if (s.right.isEmpty()) + return pe.EMPTY; + n = s.right.min(), s = s.copy(n.key, n.value, null, null, s.right.removeMin()); + } + s = s.copy(null, null, null, null, s.right.remove(t2, e)); + } + return s.fixUp(); + } + isRed() { + return this.color; + } + fixUp() { + let t2 = this; + return t2.right.isRed() && !t2.left.isRed() && (t2 = t2.rotateLeft()), t2.left.isRed() && t2.left.left.isRed() && (t2 = t2.rotateRight()), t2.left.isRed() && t2.right.isRed() && (t2 = t2.colorFlip()), t2; + } + moveRedLeft() { + let t2 = this.colorFlip(); + return t2.right.left.isRed() && (t2 = t2.copy(null, null, null, null, t2.right.rotateRight()), t2 = t2.rotateLeft(), t2 = t2.colorFlip()), t2; + } + moveRedRight() { + let t2 = this.colorFlip(); + return t2.left.left.isRed() && (t2 = t2.rotateRight(), t2 = t2.colorFlip()), t2; + } + rotateLeft() { + const t2 = this.copy(null, null, pe.RED, null, this.right.left); + return this.right.copy(null, null, this.color, t2, null); + } + rotateRight() { + const t2 = this.copy(null, null, pe.RED, this.left.right, null); + return this.left.copy(null, null, this.color, null, t2); + } + colorFlip() { + const t2 = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null); + return this.copy(null, null, !this.color, t2, e); + } + checkMaxDepth() { + const t2 = this.check(); + return Math.pow(2, t2) <= this.size + 1; + } + check() { + if (this.isRed() && this.left.isRed()) + throw O(); + if (this.right.isRed()) + throw O(); + const t2 = this.left.check(); + if (t2 !== this.right.check()) + throw O(); + return t2 + (this.isRed() ? 0 : 1); + } +} +pe.EMPTY = null, pe.RED = true, pe.BLACK = false; +pe.EMPTY = new class { + constructor() { + this.size = 0; + } + get key() { + throw O(); + } + get value() { + throw O(); + } + get color() { + throw O(); + } + get left() { + throw O(); + } + get right() { + throw O(); + } + copy(t2, e, n, s, i) { + return this; + } + insert(t2, e, n) { + return new pe(t2, e); + } + remove(t2, e) { + return this; + } + isEmpty() { + return true; + } + inorderTraversal(t2) { + return false; + } + reverseTraversal(t2) { + return false; + } + minKey() { + return null; + } + maxKey() { + return null; + } + isRed() { + return false; + } + checkMaxDepth() { + return true; + } + check() { + return 0; + } +}(); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ie { + constructor(t2) { + this.comparator = t2, this.data = new ge(this.comparator); + } + has(t2) { + return null !== this.data.get(t2); + } + first() { + return this.data.minKey(); + } + last() { + return this.data.maxKey(); + } + get size() { + return this.data.size; + } + indexOf(t2) { + return this.data.indexOf(t2); + } + forEach(t2) { + this.data.inorderTraversal((e, n) => (t2(e), false)); + } + forEachInRange(t2, e) { + const n = this.data.getIteratorFrom(t2[0]); + for (; n.hasNext(); ) { + const s = n.getNext(); + if (this.comparator(s.key, t2[1]) >= 0) + return; + e(s.key); + } + } + forEachWhile(t2, e) { + let n; + for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) { + if (!t2(n.getNext().key)) + return; + } + } + firstAfterOrEqual(t2) { + const e = this.data.getIteratorFrom(t2); + return e.hasNext() ? e.getNext().key : null; + } + getIterator() { + return new Te(this.data.getIterator()); + } + getIteratorFrom(t2) { + return new Te(this.data.getIteratorFrom(t2)); + } + add(t2) { + return this.copy(this.data.remove(t2).insert(t2, true)); + } + delete(t2) { + return this.has(t2) ? this.copy(this.data.remove(t2)) : this; + } + isEmpty() { + return this.data.isEmpty(); + } + unionWith(t2) { + let e = this; + return e.size < t2.size && (e = t2, t2 = this), t2.forEach((t3) => { + e = e.add(t3); + }), e; + } + isEqual(t2) { + if (!(t2 instanceof Ie)) + return false; + if (this.size !== t2.size) + return false; + const e = this.data.getIterator(), n = t2.data.getIterator(); + for (; e.hasNext(); ) { + const t3 = e.getNext().key, s = n.getNext().key; + if (0 !== this.comparator(t3, s)) + return false; + } + return true; + } + toArray() { + const t2 = []; + return this.forEach((e) => { + t2.push(e); + }), t2; + } + toString() { + const t2 = []; + return this.forEach((e) => t2.push(e)), "SortedSet(" + t2.toString() + ")"; + } + copy(t2) { + const e = new Ie(this.comparator); + return e.data = t2, e; + } +} +class Te { + constructor(t2) { + this.iter = t2; + } + getNext() { + return this.iter.getNext().key; + } + hasNext() { + return this.iter.hasNext(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ae { + constructor(t2) { + this.fields = t2, t2.sort(ut.comparator); + } + static empty() { + return new Ae([]); + } + unionWith(t2) { + let e = new Ie(ut.comparator); + for (const t3 of this.fields) + e = e.add(t3); + for (const n of t2) + e = e.add(n); + return new Ae(e.toArray()); + } + covers(t2) { + for (const e of this.fields) + if (e.isPrefixOf(t2)) + return true; + return false; + } + isEqual(t2) { + return tt(this.fields, t2.fields, (t3, e) => t3.isEqual(e)); + } +} +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Re extends Error { + constructor() { + super(...arguments), this.name = "Base64DecodeError"; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class be { + constructor(t2) { + this.binaryString = t2; + } + static fromBase64String(t2) { + const e = function(t3) { + try { + return atob(t3); + } catch (t4) { + throw "undefined" != typeof DOMException && t4 instanceof DOMException ? new Re("Invalid base64 string: " + t4) : t4; + } + }(t2); + return new be(e); + } + static fromUint8Array(t2) { + const e = function(t3) { + let e2 = ""; + for (let n = 0; n < t3.length; ++n) + e2 += String.fromCharCode(t3[n]); + return e2; + }(t2); + return new be(e); + } + [Symbol.iterator]() { + let t2 = 0; + return { + next: () => t2 < this.binaryString.length ? { + value: this.binaryString.charCodeAt(t2++), + done: false + } : { + value: void 0, + done: true + } + }; + } + toBase64() { + return t2 = this.binaryString, btoa(t2); + var t2; + } + toUint8Array() { + return function(t2) { + const e = new Uint8Array(t2.length); + for (let n = 0; n < t2.length; n++) + e[n] = t2.charCodeAt(n); + return e; + }(this.binaryString); + } + approximateByteSize() { + return 2 * this.binaryString.length; + } + compareTo(t2) { + return X(this.binaryString, t2.binaryString); + } + isEqual(t2) { + return this.binaryString === t2.binaryString; + } +} +be.EMPTY_BYTE_STRING = new be(""); +const Pe = new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/); +function Ve(t2) { + if ($(!!t2), "string" == typeof t2) { + let e = 0; + const n = Pe.exec(t2); + if ($(!!n), n[1]) { + let t3 = n[1]; + t3 = (t3 + "000000000").substr(0, 9), e = Number(t3); + } + const s = new Date(t2); + return { + seconds: Math.floor(s.getTime() / 1e3), + nanos: e + }; + } + return { + seconds: Se(t2.seconds), + nanos: Se(t2.nanos) + }; +} +function Se(t2) { + return "number" == typeof t2 ? t2 : "string" == typeof t2 ? Number(t2) : 0; +} +function De(t2) { + return "string" == typeof t2 ? be.fromBase64String(t2) : be.fromUint8Array(t2); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ce(t2) { + var e, n; + return "server_timestamp" === (null === (n = ((null === (e = null == t2 ? void 0 : t2.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue); +} +function xe(t2) { + const e = t2.mapValue.fields.__previous_value__; + return Ce(e) ? xe(e) : e; +} +function Ne(t2) { + const e = Ve(t2.mapValue.fields.__local_write_time__.timestampValue); + return new nt(e.seconds, e.nanos); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ke { + constructor(t2, e, n, s, i, r, o, u) { + this.databaseId = t2, this.appId = e, this.persistenceKey = n, this.host = s, this.ssl = i, this.forceLongPolling = r, this.autoDetectLongPolling = o, this.useFetchStreams = u; + } +} +class Oe { + constructor(t2, e) { + this.projectId = t2, this.database = e || "(default)"; + } + static empty() { + return new Oe("", ""); + } + get isDefaultDatabase() { + return "(default)" === this.database; + } + isEqual(t2) { + return t2 instanceof Oe && t2.projectId === this.projectId && t2.database === this.database; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const $e = { + mapValue: { + fields: { + __type__: { + stringValue: "__max__" + } + } + } +}; +function Fe(t2) { + return "nullValue" in t2 ? 0 : "booleanValue" in t2 ? 1 : "integerValue" in t2 || "doubleValue" in t2 ? 2 : "timestampValue" in t2 ? 3 : "stringValue" in t2 ? 5 : "bytesValue" in t2 ? 6 : "referenceValue" in t2 ? 7 : "geoPointValue" in t2 ? 8 : "arrayValue" in t2 ? 9 : "mapValue" in t2 ? Ce(t2) ? 4 : Ze(t2) ? 9007199254740991 : 10 : O(); +} +function Be(t2, e) { + if (t2 === e) + return true; + const n = Fe(t2); + if (n !== Fe(e)) + return false; + switch (n) { + case 0: + case 9007199254740991: + return true; + case 1: + return t2.booleanValue === e.booleanValue; + case 4: + return Ne(t2).isEqual(Ne(e)); + case 3: + return function(t3, e2) { + if ("string" == typeof t3.timestampValue && "string" == typeof e2.timestampValue && t3.timestampValue.length === e2.timestampValue.length) + return t3.timestampValue === e2.timestampValue; + const n2 = Ve(t3.timestampValue), s = Ve(e2.timestampValue); + return n2.seconds === s.seconds && n2.nanos === s.nanos; + }(t2, e); + case 5: + return t2.stringValue === e.stringValue; + case 6: + return function(t3, e2) { + return De(t3.bytesValue).isEqual(De(e2.bytesValue)); + }(t2, e); + case 7: + return t2.referenceValue === e.referenceValue; + case 8: + return function(t3, e2) { + return Se(t3.geoPointValue.latitude) === Se(e2.geoPointValue.latitude) && Se(t3.geoPointValue.longitude) === Se(e2.geoPointValue.longitude); + }(t2, e); + case 2: + return function(t3, e2) { + if ("integerValue" in t3 && "integerValue" in e2) + return Se(t3.integerValue) === Se(e2.integerValue); + if ("doubleValue" in t3 && "doubleValue" in e2) { + const n2 = Se(t3.doubleValue), s = Se(e2.doubleValue); + return n2 === s ? Mt(n2) === Mt(s) : isNaN(n2) && isNaN(s); + } + return false; + }(t2, e); + case 9: + return tt(t2.arrayValue.values || [], e.arrayValue.values || [], Be); + case 10: + return function(t3, e2) { + const n2 = t3.mapValue.fields || {}, s = e2.mapValue.fields || {}; + if (we(n2) !== we(s)) + return false; + for (const t4 in n2) + if (n2.hasOwnProperty(t4) && (void 0 === s[t4] || !Be(n2[t4], s[t4]))) + return false; + return true; + }(t2, e); + default: + return O(); + } +} +function Le(t2, e) { + return void 0 !== (t2.values || []).find((t3) => Be(t3, e)); +} +function qe(t2, e) { + if (t2 === e) + return 0; + const n = Fe(t2), s = Fe(e); + if (n !== s) + return X(n, s); + switch (n) { + case 0: + case 9007199254740991: + return 0; + case 1: + return X(t2.booleanValue, e.booleanValue); + case 2: + return function(t3, e2) { + const n2 = Se(t3.integerValue || t3.doubleValue), s2 = Se(e2.integerValue || e2.doubleValue); + return n2 < s2 ? -1 : n2 > s2 ? 1 : n2 === s2 ? 0 : isNaN(n2) ? isNaN(s2) ? 0 : -1 : 1; + }(t2, e); + case 3: + return Ue(t2.timestampValue, e.timestampValue); + case 4: + return Ue(Ne(t2), Ne(e)); + case 5: + return X(t2.stringValue, e.stringValue); + case 6: + return function(t3, e2) { + const n2 = De(t3), s2 = De(e2); + return n2.compareTo(s2); + }(t2.bytesValue, e.bytesValue); + case 7: + return function(t3, e2) { + const n2 = t3.split("/"), s2 = e2.split("/"); + for (let t4 = 0; t4 < n2.length && t4 < s2.length; t4++) { + const e3 = X(n2[t4], s2[t4]); + if (0 !== e3) + return e3; + } + return X(n2.length, s2.length); + }(t2.referenceValue, e.referenceValue); + case 8: + return function(t3, e2) { + const n2 = X(Se(t3.latitude), Se(e2.latitude)); + if (0 !== n2) + return n2; + return X(Se(t3.longitude), Se(e2.longitude)); + }(t2.geoPointValue, e.geoPointValue); + case 9: + return function(t3, e2) { + const n2 = t3.values || [], s2 = e2.values || []; + for (let t4 = 0; t4 < n2.length && t4 < s2.length; ++t4) { + const e3 = qe(n2[t4], s2[t4]); + if (e3) + return e3; + } + return X(n2.length, s2.length); + }(t2.arrayValue, e.arrayValue); + case 10: + return function(t3, e2) { + if (t3 === $e.mapValue && e2 === $e.mapValue) + return 0; + if (t3 === $e.mapValue) + return 1; + if (e2 === $e.mapValue) + return -1; + const n2 = t3.fields || {}, s2 = Object.keys(n2), i = e2.fields || {}, r = Object.keys(i); + s2.sort(), r.sort(); + for (let t4 = 0; t4 < s2.length && t4 < r.length; ++t4) { + const e3 = X(s2[t4], r[t4]); + if (0 !== e3) + return e3; + const o = qe(n2[s2[t4]], i[r[t4]]); + if (0 !== o) + return o; + } + return X(s2.length, r.length); + }(t2.mapValue, e.mapValue); + default: + throw O(); + } +} +function Ue(t2, e) { + if ("string" == typeof t2 && "string" == typeof e && t2.length === e.length) + return X(t2, e); + const n = Ve(t2), s = Ve(e), i = X(n.seconds, s.seconds); + return 0 !== i ? i : X(n.nanos, s.nanos); +} +function Ke(t2) { + return Ge(t2); +} +function Ge(t2) { + return "nullValue" in t2 ? "null" : "booleanValue" in t2 ? "" + t2.booleanValue : "integerValue" in t2 ? "" + t2.integerValue : "doubleValue" in t2 ? "" + t2.doubleValue : "timestampValue" in t2 ? function(t3) { + const e2 = Ve(t3); + return `time(${e2.seconds},${e2.nanos})`; + }(t2.timestampValue) : "stringValue" in t2 ? t2.stringValue : "bytesValue" in t2 ? De(t2.bytesValue).toBase64() : "referenceValue" in t2 ? (n = t2.referenceValue, ct.fromName(n).toString()) : "geoPointValue" in t2 ? `geo(${(e = t2.geoPointValue).latitude},${e.longitude})` : "arrayValue" in t2 ? function(t3) { + let e2 = "[", n2 = true; + for (const s of t3.values || []) + n2 ? n2 = false : e2 += ",", e2 += Ge(s); + return e2 + "]"; + }(t2.arrayValue) : "mapValue" in t2 ? function(t3) { + const e2 = Object.keys(t3.fields || {}).sort(); + let n2 = "{", s = true; + for (const i of e2) + s ? s = false : n2 += ",", n2 += `${i}:${Ge(t3.fields[i])}`; + return n2 + "}"; + }(t2.mapValue) : O(); + var e, n; +} +function Qe(t2, e) { + return { + referenceValue: `projects/${t2.projectId}/databases/${t2.database}/documents/${e.path.canonicalString()}` + }; +} +function ze(t2) { + return !!t2 && "integerValue" in t2; +} +function je(t2) { + return !!t2 && "arrayValue" in t2; +} +function We(t2) { + return !!t2 && "nullValue" in t2; +} +function He(t2) { + return !!t2 && "doubleValue" in t2 && isNaN(Number(t2.doubleValue)); +} +function Je(t2) { + return !!t2 && "mapValue" in t2; +} +function Ye(t2) { + if (t2.geoPointValue) + return { + geoPointValue: Object.assign({}, t2.geoPointValue) + }; + if (t2.timestampValue && "object" == typeof t2.timestampValue) + return { + timestampValue: Object.assign({}, t2.timestampValue) + }; + if (t2.mapValue) { + const e = { + mapValue: { + fields: {} + } + }; + return _e(t2.mapValue.fields, (t3, n) => e.mapValue.fields[t3] = Ye(n)), e; + } + if (t2.arrayValue) { + const e = { + arrayValue: { + values: [] + } + }; + for (let n = 0; n < (t2.arrayValue.values || []).length; ++n) + e.arrayValue.values[n] = Ye(t2.arrayValue.values[n]); + return e; + } + return Object.assign({}, t2); +} +function Ze(t2) { + return "__max__" === (((t2.mapValue || {}).fields || {}).__type__ || {}).stringValue; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class sn { + constructor(t2) { + this.value = t2; + } + static empty() { + return new sn({ + mapValue: {} + }); + } + field(t2) { + if (t2.isEmpty()) + return this.value; + { + let e = this.value; + for (let n = 0; n < t2.length - 1; ++n) + if (e = (e.mapValue.fields || {})[t2.get(n)], !Je(e)) + return null; + return e = (e.mapValue.fields || {})[t2.lastSegment()], e || null; + } + } + set(t2, e) { + this.getFieldsMap(t2.popLast())[t2.lastSegment()] = Ye(e); + } + setAll(t2) { + let e = ut.emptyPath(), n = {}, s = []; + t2.forEach((t3, i2) => { + if (!e.isImmediateParentOf(i2)) { + const t4 = this.getFieldsMap(e); + this.applyChanges(t4, n, s), n = {}, s = [], e = i2.popLast(); + } + t3 ? n[i2.lastSegment()] = Ye(t3) : s.push(i2.lastSegment()); + }); + const i = this.getFieldsMap(e); + this.applyChanges(i, n, s); + } + delete(t2) { + const e = this.field(t2.popLast()); + Je(e) && e.mapValue.fields && delete e.mapValue.fields[t2.lastSegment()]; + } + isEqual(t2) { + return Be(this.value, t2.value); + } + getFieldsMap(t2) { + let e = this.value; + e.mapValue.fields || (e.mapValue = { + fields: {} + }); + for (let n = 0; n < t2.length; ++n) { + let s = e.mapValue.fields[t2.get(n)]; + Je(s) && s.mapValue.fields || (s = { + mapValue: { + fields: {} + } + }, e.mapValue.fields[t2.get(n)] = s), e = s; + } + return e.mapValue.fields; + } + applyChanges(t2, e, n) { + _e(e, (e2, n2) => t2[e2] = n2); + for (const e2 of n) + delete t2[e2]; + } + clone() { + return new sn(Ye(this.value)); + } +} +function rn(t2) { + const e = []; + return _e(t2.fields, (t3, n) => { + const s = new ut([t3]); + if (Je(n)) { + const t4 = rn(n.mapValue).fields; + if (0 === t4.length) + e.push(s); + else + for (const n2 of t4) + e.push(s.child(n2)); + } else + e.push(s); + }), new Ae(e); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class on { + constructor(t2, e, n, s, i, r, o) { + this.key = t2, this.documentType = e, this.version = n, this.readTime = s, this.createTime = i, this.data = r, this.documentState = o; + } + static newInvalidDocument(t2) { + return new on( + t2, + 0, + st.min(), + st.min(), + st.min(), + sn.empty(), + 0 + ); + } + static newFoundDocument(t2, e, n, s) { + return new on( + t2, + 1, + e, + st.min(), + n, + s, + 0 + ); + } + static newNoDocument(t2, e) { + return new on( + t2, + 2, + e, + st.min(), + st.min(), + sn.empty(), + 0 + ); + } + static newUnknownDocument(t2, e) { + return new on( + t2, + 3, + e, + st.min(), + st.min(), + sn.empty(), + 2 + ); + } + convertToFoundDocument(t2, e) { + return !this.createTime.isEqual(st.min()) || 2 !== this.documentType && 0 !== this.documentType || (this.createTime = t2), this.version = t2, this.documentType = 1, this.data = e, this.documentState = 0, this; + } + convertToNoDocument(t2) { + return this.version = t2, this.documentType = 2, this.data = sn.empty(), this.documentState = 0, this; + } + convertToUnknownDocument(t2) { + return this.version = t2, this.documentType = 3, this.data = sn.empty(), this.documentState = 2, this; + } + setHasCommittedMutations() { + return this.documentState = 2, this; + } + setHasLocalMutations() { + return this.documentState = 1, this.version = st.min(), this; + } + setReadTime(t2) { + return this.readTime = t2, this; + } + get hasLocalMutations() { + return 1 === this.documentState; + } + get hasCommittedMutations() { + return 2 === this.documentState; + } + get hasPendingWrites() { + return this.hasLocalMutations || this.hasCommittedMutations; + } + isValidDocument() { + return 0 !== this.documentType; + } + isFoundDocument() { + return 1 === this.documentType; + } + isNoDocument() { + return 2 === this.documentType; + } + isUnknownDocument() { + return 3 === this.documentType; + } + isEqual(t2) { + return t2 instanceof on && this.key.isEqual(t2.key) && this.version.isEqual(t2.version) && this.documentType === t2.documentType && this.documentState === t2.documentState && this.data.isEqual(t2.data); + } + mutableCopy() { + return new on(this.key, this.documentType, this.version, this.readTime, this.createTime, this.data.clone(), this.documentState); + } + toString() { + return `Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`; + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class un { + constructor(t2, e) { + this.position = t2, this.inclusive = e; + } +} +function cn(t2, e, n) { + let s = 0; + for (let i = 0; i < t2.position.length; i++) { + const r = e[i], o = t2.position[i]; + if (r.field.isKeyField()) + s = ct.comparator(ct.fromName(o.referenceValue), n.key); + else { + s = qe(o, n.data.field(r.field)); + } + if ("desc" === r.dir && (s *= -1), 0 !== s) + break; + } + return s; +} +function an(t2, e) { + if (null === t2) + return null === e; + if (null === e) + return false; + if (t2.inclusive !== e.inclusive || t2.position.length !== e.position.length) + return false; + for (let n = 0; n < t2.position.length; n++) { + if (!Be(t2.position[n], e.position[n])) + return false; + } + return true; +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class hn { + constructor(t2, e = "asc") { + this.field = t2, this.dir = e; + } +} +function ln(t2, e) { + return t2.dir === e.dir && t2.field.isEqual(e.field); +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class fn { +} +class dn extends fn { + constructor(t2, e, n) { + super(), this.field = t2, this.op = e, this.value = n; + } + static create(t2, e, n) { + return t2.isKeyField() ? "in" === e || "not-in" === e ? this.createKeyFieldInFilter(t2, e, n) : new An(t2, e, n) : "array-contains" === e ? new Pn(t2, n) : "in" === e ? new Vn(t2, n) : "not-in" === e ? new Sn(t2, n) : "array-contains-any" === e ? new Dn(t2, n) : new dn(t2, e, n); + } + static createKeyFieldInFilter(t2, e, n) { + return "in" === e ? new Rn(t2, n) : new vn(t2, n); + } + matches(t2) { + const e = t2.data.field(this.field); + return "!=" === this.op ? null !== e && this.matchesComparison(qe(e, this.value)) : null !== e && Fe(this.value) === Fe(e) && this.matchesComparison(qe(e, this.value)); + } + matchesComparison(t2) { + switch (this.op) { + case "<": + return t2 < 0; + case "<=": + return t2 <= 0; + case "==": + return 0 === t2; + case "!=": + return 0 !== t2; + case ">": + return t2 > 0; + case ">=": + return t2 >= 0; + default: + return O(); + } + } + isInequality() { + return ["<", "<=", ">", ">=", "!=", "not-in"].indexOf(this.op) >= 0; + } + getFlattenedFilters() { + return [this]; + } + getFilters() { + return [this]; + } + getFirstInequalityField() { + return this.isInequality() ? this.field : null; + } +} +class wn extends fn { + constructor(t2, e) { + super(), this.filters = t2, this.op = e, this.ht = null; + } + static create(t2, e) { + return new wn(t2, e); + } + matches(t2) { + return _n(this) ? void 0 === this.filters.find((e) => !e.matches(t2)) : void 0 !== this.filters.find((e) => e.matches(t2)); + } + getFlattenedFilters() { + return null !== this.ht || (this.ht = this.filters.reduce((t2, e) => t2.concat(e.getFlattenedFilters()), [])), this.ht; + } + getFilters() { + return Object.assign([], this.filters); + } + getFirstInequalityField() { + const t2 = this.lt((t3) => t3.isInequality()); + return null !== t2 ? t2.field : null; + } + lt(t2) { + for (const e of this.getFlattenedFilters()) + if (t2(e)) + return e; + return null; + } +} +function _n(t2) { + return "and" === t2.op; +} +function gn(t2) { + return yn(t2) && _n(t2); +} +function yn(t2) { + for (const e of t2.filters) + if (e instanceof wn) + return false; + return true; +} +function pn(t2) { + if (t2 instanceof dn) + return t2.field.canonicalString() + t2.op.toString() + Ke(t2.value); + if (gn(t2)) + return t2.filters.map((t3) => pn(t3)).join(","); + { + const e = t2.filters.map((t3) => pn(t3)).join(","); + return `${t2.op}(${e})`; + } +} +function In(t2, e) { + return t2 instanceof dn ? function(t3, e2) { + return e2 instanceof dn && t3.op === e2.op && t3.field.isEqual(e2.field) && Be(t3.value, e2.value); + }(t2, e) : t2 instanceof wn ? function(t3, e2) { + if (e2 instanceof wn && t3.op === e2.op && t3.filters.length === e2.filters.length) { + return t3.filters.reduce((t4, n, s) => t4 && In(n, e2.filters[s]), true); + } + return false; + }(t2, e) : void O(); +} +function En(t2) { + return t2 instanceof dn ? function(t3) { + return `${t3.field.canonicalString()} ${t3.op} ${Ke(t3.value)}`; + }(t2) : t2 instanceof wn ? function(t3) { + return t3.op.toString() + " {" + t3.getFilters().map(En).join(" ,") + "}"; + }(t2) : "Filter"; +} +class An extends dn { + constructor(t2, e, n) { + super(t2, e, n), this.key = ct.fromName(n.referenceValue); + } + matches(t2) { + const e = ct.comparator(t2.key, this.key); + return this.matchesComparison(e); + } +} +class Rn extends dn { + constructor(t2, e) { + super(t2, "in", e), this.keys = bn("in", e); + } + matches(t2) { + return this.keys.some((e) => e.isEqual(t2.key)); + } +} +class vn extends dn { + constructor(t2, e) { + super(t2, "not-in", e), this.keys = bn("not-in", e); + } + matches(t2) { + return !this.keys.some((e) => e.isEqual(t2.key)); + } +} +function bn(t2, e) { + var n; + return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((t3) => ct.fromName(t3.referenceValue)); +} +class Pn extends dn { + constructor(t2, e) { + super(t2, "array-contains", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return je(e) && Le(e.arrayValue, this.value); + } +} +class Vn extends dn { + constructor(t2, e) { + super(t2, "in", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return null !== e && Le(this.value.arrayValue, e); + } +} +class Sn extends dn { + constructor(t2, e) { + super(t2, "not-in", e); + } + matches(t2) { + if (Le(this.value.arrayValue, { + nullValue: "NULL_VALUE" + })) + return false; + const e = t2.data.field(this.field); + return null !== e && !Le(this.value.arrayValue, e); + } +} +class Dn extends dn { + constructor(t2, e) { + super(t2, "array-contains-any", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return !(!je(e) || !e.arrayValue.values) && e.arrayValue.values.some((t3) => Le(this.value.arrayValue, t3)); + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Cn { + constructor(t2, e = null, n = [], s = [], i = null, r = null, o = null) { + this.path = t2, this.collectionGroup = e, this.orderBy = n, this.filters = s, this.limit = i, this.startAt = r, this.endAt = o, this.ft = null; + } +} +function xn(t2, e = null, n = [], s = [], i = null, r = null, o = null) { + return new Cn(t2, e, n, s, i, r, o); +} +function Nn(t2) { + const e = F(t2); + if (null === e.ft) { + let t3 = e.path.canonicalString(); + null !== e.collectionGroup && (t3 += "|cg:" + e.collectionGroup), t3 += "|f:", t3 += e.filters.map((t4) => pn(t4)).join(","), t3 += "|ob:", t3 += e.orderBy.map((t4) => function(t5) { + return t5.field.canonicalString() + t5.dir; + }(t4)).join(","), $t(e.limit) || (t3 += "|l:", t3 += e.limit), e.startAt && (t3 += "|lb:", t3 += e.startAt.inclusive ? "b:" : "a:", t3 += e.startAt.position.map((t4) => Ke(t4)).join(",")), e.endAt && (t3 += "|ub:", t3 += e.endAt.inclusive ? "a:" : "b:", t3 += e.endAt.position.map((t4) => Ke(t4)).join(",")), e.ft = t3; + } + return e.ft; +} +function kn(t2, e) { + if (t2.limit !== e.limit) + return false; + if (t2.orderBy.length !== e.orderBy.length) + return false; + for (let n = 0; n < t2.orderBy.length; n++) + if (!ln(t2.orderBy[n], e.orderBy[n])) + return false; + if (t2.filters.length !== e.filters.length) + return false; + for (let n = 0; n < t2.filters.length; n++) + if (!In(t2.filters[n], e.filters[n])) + return false; + return t2.collectionGroup === e.collectionGroup && (!!t2.path.isEqual(e.path) && (!!an(t2.startAt, e.startAt) && an(t2.endAt, e.endAt))); +} +function On(t2) { + return ct.isDocumentKey(t2.path) && null === t2.collectionGroup && 0 === t2.filters.length; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Bn { + constructor(t2, e = null, n = [], s = [], i = null, r = "F", o = null, u = null) { + this.path = t2, this.collectionGroup = e, this.explicitOrderBy = n, this.filters = s, this.limit = i, this.limitType = r, this.startAt = o, this.endAt = u, this.dt = null, this.wt = null, this.startAt, this.endAt; + } +} +function Ln(t2, e, n, s, i, r, o, u) { + return new Bn(t2, e, n, s, i, r, o, u); +} +function qn(t2) { + return new Bn(t2); +} +function Un(t2) { + return 0 === t2.filters.length && null === t2.limit && null == t2.startAt && null == t2.endAt && (0 === t2.explicitOrderBy.length || 1 === t2.explicitOrderBy.length && t2.explicitOrderBy[0].field.isKeyField()); +} +function Kn(t2) { + return t2.explicitOrderBy.length > 0 ? t2.explicitOrderBy[0].field : null; +} +function Gn(t2) { + for (const e of t2.filters) { + const t3 = e.getFirstInequalityField(); + if (null !== t3) + return t3; + } + return null; +} +function Qn(t2) { + return null !== t2.collectionGroup; +} +function zn(t2) { + const e = F(t2); + if (null === e.dt) { + e.dt = []; + const t3 = Gn(e), n = Kn(e); + if (null !== t3 && null === n) + t3.isKeyField() || e.dt.push(new hn(t3)), e.dt.push(new hn(ut.keyField(), "asc")); + else { + let t4 = false; + for (const n2 of e.explicitOrderBy) + e.dt.push(n2), n2.field.isKeyField() && (t4 = true); + if (!t4) { + const t5 = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : "asc"; + e.dt.push(new hn(ut.keyField(), t5)); + } + } + } + return e.dt; +} +function jn(t2) { + const e = F(t2); + if (!e.wt) + if ("F" === e.limitType) + e.wt = xn(e.path, e.collectionGroup, zn(e), e.filters, e.limit, e.startAt, e.endAt); + else { + const t3 = []; + for (const n2 of zn(e)) { + const e2 = "desc" === n2.dir ? "asc" : "desc"; + t3.push(new hn(n2.field, e2)); + } + const n = e.endAt ? new un(e.endAt.position, e.endAt.inclusive) : null, s = e.startAt ? new un(e.startAt.position, e.startAt.inclusive) : null; + e.wt = xn(e.path, e.collectionGroup, t3, e.filters, e.limit, n, s); + } + return e.wt; +} +function Wn(t2, e) { + e.getFirstInequalityField(), Gn(t2); + const n = t2.filters.concat([e]); + return new Bn(t2.path, t2.collectionGroup, t2.explicitOrderBy.slice(), n, t2.limit, t2.limitType, t2.startAt, t2.endAt); +} +function Hn(t2, e, n) { + return new Bn(t2.path, t2.collectionGroup, t2.explicitOrderBy.slice(), t2.filters.slice(), e, n, t2.startAt, t2.endAt); +} +function Jn(t2, e) { + return kn(jn(t2), jn(e)) && t2.limitType === e.limitType; +} +function Yn(t2) { + return `${Nn(jn(t2))}|lt:${t2.limitType}`; +} +function Zn(t2) { + return `Query(target=${function(t3) { + let e = t3.path.canonicalString(); + return null !== t3.collectionGroup && (e += " collectionGroup=" + t3.collectionGroup), t3.filters.length > 0 && (e += `, filters: [${t3.filters.map((t4) => En(t4)).join(", ")}]`), $t(t3.limit) || (e += ", limit: " + t3.limit), t3.orderBy.length > 0 && (e += `, orderBy: [${t3.orderBy.map((t4) => function(t5) { + return `${t5.field.canonicalString()} (${t5.dir})`; + }(t4)).join(", ")}]`), t3.startAt && (e += ", startAt: ", e += t3.startAt.inclusive ? "b:" : "a:", e += t3.startAt.position.map((t4) => Ke(t4)).join(",")), t3.endAt && (e += ", endAt: ", e += t3.endAt.inclusive ? "a:" : "b:", e += t3.endAt.position.map((t4) => Ke(t4)).join(",")), `Target(${e})`; + }(jn(t2))}; limitType=${t2.limitType})`; +} +function Xn(t2, e) { + return e.isFoundDocument() && function(t3, e2) { + const n = e2.key.path; + return null !== t3.collectionGroup ? e2.key.hasCollectionId(t3.collectionGroup) && t3.path.isPrefixOf(n) : ct.isDocumentKey(t3.path) ? t3.path.isEqual(n) : t3.path.isImmediateParentOf(n); + }(t2, e) && function(t3, e2) { + for (const n of zn(t3)) + if (!n.field.isKeyField() && null === e2.data.field(n.field)) + return false; + return true; + }(t2, e) && function(t3, e2) { + for (const n of t3.filters) + if (!n.matches(e2)) + return false; + return true; + }(t2, e) && function(t3, e2) { + if (t3.startAt && !function(t4, e3, n) { + const s = cn(t4, e3, n); + return t4.inclusive ? s <= 0 : s < 0; + }(t3.startAt, zn(t3), e2)) + return false; + if (t3.endAt && !function(t4, e3, n) { + const s = cn(t4, e3, n); + return t4.inclusive ? s >= 0 : s > 0; + }(t3.endAt, zn(t3), e2)) + return false; + return true; + }(t2, e); +} +function ts(t2) { + return t2.collectionGroup || (t2.path.length % 2 == 1 ? t2.path.lastSegment() : t2.path.get(t2.path.length - 2)); +} +function es(t2) { + return (e, n) => { + let s = false; + for (const i of zn(t2)) { + const t3 = ns(i, e, n); + if (0 !== t3) + return t3; + s = s || i.field.isKeyField(); + } + return 0; + }; +} +function ns(t2, e, n) { + const s = t2.field.isKeyField() ? ct.comparator(e.key, n.key) : function(t3, e2, n2) { + const s2 = e2.data.field(t3), i = n2.data.field(t3); + return null !== s2 && null !== i ? qe(s2, i) : O(); + }(t2.field, e, n); + switch (t2.dir) { + case "asc": + return s; + case "desc": + return -1 * s; + default: + return O(); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ss { + constructor(t2, e) { + this.mapKeyFn = t2, this.equalsFn = e, this.inner = {}, this.innerSize = 0; + } + get(t2) { + const e = this.mapKeyFn(t2), n = this.inner[e]; + if (void 0 !== n) { + for (const [e2, s] of n) + if (this.equalsFn(e2, t2)) + return s; + } + } + has(t2) { + return void 0 !== this.get(t2); + } + set(t2, e) { + const n = this.mapKeyFn(t2), s = this.inner[n]; + if (void 0 === s) + return this.inner[n] = [[t2, e]], void this.innerSize++; + for (let n2 = 0; n2 < s.length; n2++) + if (this.equalsFn(s[n2][0], t2)) + return void (s[n2] = [t2, e]); + s.push([t2, e]), this.innerSize++; + } + delete(t2) { + const e = this.mapKeyFn(t2), n = this.inner[e]; + if (void 0 === n) + return false; + for (let s = 0; s < n.length; s++) + if (this.equalsFn(n[s][0], t2)) + return 1 === n.length ? delete this.inner[e] : n.splice(s, 1), this.innerSize--, true; + return false; + } + forEach(t2) { + _e(this.inner, (e, n) => { + for (const [e2, s] of n) + t2(e2, s); + }); + } + isEmpty() { + return me(this.inner); + } + size() { + return this.innerSize; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const is = new ge(ct.comparator); +function rs() { + return is; +} +const os = new ge(ct.comparator); +function us(...t2) { + let e = os; + for (const n of t2) + e = e.insert(n.key, n); + return e; +} +function cs(t2) { + let e = os; + return t2.forEach((t3, n) => e = e.insert(t3, n.overlayedDocument)), e; +} +function as() { + return ls(); +} +function hs() { + return ls(); +} +function ls() { + return new ss((t2) => t2.toString(), (t2, e) => t2.isEqual(e)); +} +const fs = new ge(ct.comparator); +const ds = new Ie(ct.comparator); +function ws(...t2) { + let e = ds; + for (const n of t2) + e = e.add(n); + return e; +} +const _s = new Ie(X); +function ms() { + return _s; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function gs(t2, e) { + if (t2.useProto3Json) { + if (isNaN(e)) + return { + doubleValue: "NaN" + }; + if (e === 1 / 0) + return { + doubleValue: "Infinity" + }; + if (e === -1 / 0) + return { + doubleValue: "-Infinity" + }; + } + return { + doubleValue: Mt(e) ? "-0" : e + }; +} +function ys(t2) { + return { + integerValue: "" + t2 + }; +} +function ps(t2, e) { + return Ft(e) ? ys(e) : gs(t2, e); +} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Is { + constructor() { + this._ = void 0; + } +} +function Ts(t2, e, n) { + return t2 instanceof Rs ? function(t3, e2) { + const n2 = { + fields: { + __type__: { + stringValue: "server_timestamp" + }, + __local_write_time__: { + timestampValue: { + seconds: t3.seconds, + nanos: t3.nanoseconds + } + } + } + }; + return e2 && (n2.fields.__previous_value__ = e2), { + mapValue: n2 + }; + }(n, e) : t2 instanceof vs ? bs(t2, e) : t2 instanceof Ps ? Vs(t2, e) : function(t3, e2) { + const n2 = As(t3, e2), s = Ds(n2) + Ds(t3._t); + return ze(n2) && ze(t3._t) ? ys(s) : gs(t3.serializer, s); + }(t2, e); +} +function Es(t2, e, n) { + return t2 instanceof vs ? bs(t2, e) : t2 instanceof Ps ? Vs(t2, e) : n; +} +function As(t2, e) { + return t2 instanceof Ss ? ze(n = e) || function(t3) { + return !!t3 && "doubleValue" in t3; + }(n) ? e : { + integerValue: 0 + } : null; + var n; +} +class Rs extends Is { +} +class vs extends Is { + constructor(t2) { + super(), this.elements = t2; + } +} +function bs(t2, e) { + const n = Cs(e); + for (const e2 of t2.elements) + n.some((t3) => Be(t3, e2)) || n.push(e2); + return { + arrayValue: { + values: n + } + }; +} +class Ps extends Is { + constructor(t2) { + super(), this.elements = t2; + } +} +function Vs(t2, e) { + let n = Cs(e); + for (const e2 of t2.elements) + n = n.filter((t3) => !Be(t3, e2)); + return { + arrayValue: { + values: n + } + }; +} +class Ss extends Is { + constructor(t2, e) { + super(), this.serializer = t2, this._t = e; + } +} +function Ds(t2) { + return Se(t2.integerValue || t2.doubleValue); +} +function Cs(t2) { + return je(t2) && t2.arrayValue.values ? t2.arrayValue.values.slice() : []; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class xs { + constructor(t2, e) { + this.field = t2, this.transform = e; + } +} +function Ns(t2, e) { + return t2.field.isEqual(e.field) && function(t3, e2) { + return t3 instanceof vs && e2 instanceof vs || t3 instanceof Ps && e2 instanceof Ps ? tt(t3.elements, e2.elements, Be) : t3 instanceof Ss && e2 instanceof Ss ? Be(t3._t, e2._t) : t3 instanceof Rs && e2 instanceof Rs; + }(t2.transform, e.transform); +} +class ks { + constructor(t2, e) { + this.version = t2, this.transformResults = e; + } +} +class Os { + constructor(t2, e) { + this.updateTime = t2, this.exists = e; + } + static none() { + return new Os(); + } + static exists(t2) { + return new Os(void 0, t2); + } + static updateTime(t2) { + return new Os(t2); + } + get isNone() { + return void 0 === this.updateTime && void 0 === this.exists; + } + isEqual(t2) { + return this.exists === t2.exists && (this.updateTime ? !!t2.updateTime && this.updateTime.isEqual(t2.updateTime) : !t2.updateTime); + } +} +function $s(t2, e) { + return void 0 !== t2.updateTime ? e.isFoundDocument() && e.version.isEqual(t2.updateTime) : void 0 === t2.exists || t2.exists === e.isFoundDocument(); +} +class Ms { +} +function Fs(t2, e) { + if (!t2.hasLocalMutations || e && 0 === e.fields.length) + return null; + if (null === e) + return t2.isNoDocument() ? new Ws(t2.key, Os.none()) : new Ks(t2.key, t2.data, Os.none()); + { + const n = t2.data, s = sn.empty(); + let i = new Ie(ut.comparator); + for (let t3 of e.fields) + if (!i.has(t3)) { + let e2 = n.field(t3); + null === e2 && t3.length > 1 && (t3 = t3.popLast(), e2 = n.field(t3)), null === e2 ? s.delete(t3) : s.set(t3, e2), i = i.add(t3); + } + return new Gs(t2.key, s, new Ae(i.toArray()), Os.none()); + } +} +function Bs(t2, e, n) { + t2 instanceof Ks ? function(t3, e2, n2) { + const s = t3.value.clone(), i = zs(t3.fieldTransforms, e2, n2.transformResults); + s.setAll(i), e2.convertToFoundDocument(n2.version, s).setHasCommittedMutations(); + }(t2, e, n) : t2 instanceof Gs ? function(t3, e2, n2) { + if (!$s(t3.precondition, e2)) + return void e2.convertToUnknownDocument(n2.version); + const s = zs(t3.fieldTransforms, e2, n2.transformResults), i = e2.data; + i.setAll(Qs(t3)), i.setAll(s), e2.convertToFoundDocument(n2.version, i).setHasCommittedMutations(); + }(t2, e, n) : function(t3, e2, n2) { + e2.convertToNoDocument(n2.version).setHasCommittedMutations(); + }(0, e, n); +} +function Ls(t2, e, n, s) { + return t2 instanceof Ks ? function(t3, e2, n2, s2) { + if (!$s(t3.precondition, e2)) + return n2; + const i = t3.value.clone(), r = js(t3.fieldTransforms, s2, e2); + return i.setAll(r), e2.convertToFoundDocument(e2.version, i).setHasLocalMutations(), null; + }(t2, e, n, s) : t2 instanceof Gs ? function(t3, e2, n2, s2) { + if (!$s(t3.precondition, e2)) + return n2; + const i = js(t3.fieldTransforms, s2, e2), r = e2.data; + if (r.setAll(Qs(t3)), r.setAll(i), e2.convertToFoundDocument(e2.version, r).setHasLocalMutations(), null === n2) + return null; + return n2.unionWith(t3.fieldMask.fields).unionWith(t3.fieldTransforms.map((t4) => t4.field)); + }(t2, e, n, s) : function(t3, e2, n2) { + if ($s(t3.precondition, e2)) + return e2.convertToNoDocument(e2.version).setHasLocalMutations(), null; + return n2; + }(t2, e, n); +} +function qs(t2, e) { + let n = null; + for (const s of t2.fieldTransforms) { + const t3 = e.data.field(s.field), i = As(s.transform, t3 || null); + null != i && (null === n && (n = sn.empty()), n.set(s.field, i)); + } + return n || null; +} +function Us(t2, e) { + return t2.type === e.type && (!!t2.key.isEqual(e.key) && (!!t2.precondition.isEqual(e.precondition) && (!!function(t3, e2) { + return void 0 === t3 && void 0 === e2 || !(!t3 || !e2) && tt(t3, e2, (t4, e3) => Ns(t4, e3)); + }(t2.fieldTransforms, e.fieldTransforms) && (0 === t2.type ? t2.value.isEqual(e.value) : 1 !== t2.type || t2.data.isEqual(e.data) && t2.fieldMask.isEqual(e.fieldMask))))); +} +class Ks extends Ms { + constructor(t2, e, n, s = []) { + super(), this.key = t2, this.value = e, this.precondition = n, this.fieldTransforms = s, this.type = 0; + } + getFieldMask() { + return null; + } +} +class Gs extends Ms { + constructor(t2, e, n, s, i = []) { + super(), this.key = t2, this.data = e, this.fieldMask = n, this.precondition = s, this.fieldTransforms = i, this.type = 1; + } + getFieldMask() { + return this.fieldMask; + } +} +function Qs(t2) { + const e = /* @__PURE__ */ new Map(); + return t2.fieldMask.fields.forEach((n) => { + if (!n.isEmpty()) { + const s = t2.data.field(n); + e.set(n, s); + } + }), e; +} +function zs(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + $(t2.length === n.length); + for (let i = 0; i < n.length; i++) { + const r = t2[i], o = r.transform, u = e.data.field(r.field); + s.set(r.field, Es(o, u, n[i])); + } + return s; +} +function js(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + for (const i of t2) { + const t3 = i.transform, r = n.data.field(i.field); + s.set(i.field, Ts(t3, r, e)); + } + return s; +} +class Ws extends Ms { + constructor(t2, e) { + super(), this.key = t2, this.precondition = e, this.type = 2, this.fieldTransforms = []; + } + getFieldMask() { + return null; + } +} +class Hs extends Ms { + constructor(t2, e) { + super(), this.key = t2, this.precondition = e, this.type = 3, this.fieldTransforms = []; + } + getFieldMask() { + return null; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Js { + constructor(t2, e, n, s) { + this.batchId = t2, this.localWriteTime = e, this.baseMutations = n, this.mutations = s; + } + applyToRemoteDocument(t2, e) { + const n = e.mutationResults; + for (let e2 = 0; e2 < this.mutations.length; e2++) { + const s = this.mutations[e2]; + if (s.key.isEqual(t2.key)) { + Bs(s, t2, n[e2]); + } + } + } + applyToLocalView(t2, e) { + for (const n of this.baseMutations) + n.key.isEqual(t2.key) && (e = Ls(n, t2, e, this.localWriteTime)); + for (const n of this.mutations) + n.key.isEqual(t2.key) && (e = Ls(n, t2, e, this.localWriteTime)); + return e; + } + applyToLocalDocumentSet(t2, e) { + const n = hs(); + return this.mutations.forEach((s) => { + const i = t2.get(s.key), r = i.overlayedDocument; + let o = this.applyToLocalView(r, i.mutatedFields); + o = e.has(s.key) ? null : o; + const u = Fs(r, o); + null !== u && n.set(s.key, u), r.isValidDocument() || r.convertToNoDocument(st.min()); + }), n; + } + keys() { + return this.mutations.reduce((t2, e) => t2.add(e.key), ws()); + } + isEqual(t2) { + return this.batchId === t2.batchId && tt(this.mutations, t2.mutations, (t3, e) => Us(t3, e)) && tt(this.baseMutations, t2.baseMutations, (t3, e) => Us(t3, e)); + } +} +class Ys { + constructor(t2, e, n, s) { + this.batch = t2, this.commitVersion = e, this.mutationResults = n, this.docVersions = s; + } + static from(t2, e, n) { + $(t2.mutations.length === n.length); + let s = fs; + const i = t2.mutations; + for (let t3 = 0; t3 < i.length; t3++) + s = s.insert(i[t3].key, n[t3].version); + return new Ys(t2, e, n, s); + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Zs { + constructor(t2, e) { + this.largestBatchId = t2, this.mutation = e; + } + getKey() { + return this.mutation.key; + } + isEqual(t2) { + return null !== t2 && this.mutation === t2.mutation; + } + toString() { + return `Overlay{ + largestBatchId: ${this.largestBatchId}, + mutation: ${this.mutation.toString()} + }`; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ni { + constructor(t2) { + this.count = t2; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var si, ii; +function ri(t2) { + switch (t2) { + default: + return O(); + case B.CANCELLED: + case B.UNKNOWN: + case B.DEADLINE_EXCEEDED: + case B.RESOURCE_EXHAUSTED: + case B.INTERNAL: + case B.UNAVAILABLE: + case B.UNAUTHENTICATED: + return false; + case B.INVALID_ARGUMENT: + case B.NOT_FOUND: + case B.ALREADY_EXISTS: + case B.PERMISSION_DENIED: + case B.FAILED_PRECONDITION: + case B.ABORTED: + case B.OUT_OF_RANGE: + case B.UNIMPLEMENTED: + case B.DATA_LOSS: + return true; + } +} +function oi(t2) { + if (void 0 === t2) + return x("GRPC error has no .code"), B.UNKNOWN; + switch (t2) { + case si.OK: + return B.OK; + case si.CANCELLED: + return B.CANCELLED; + case si.UNKNOWN: + return B.UNKNOWN; + case si.DEADLINE_EXCEEDED: + return B.DEADLINE_EXCEEDED; + case si.RESOURCE_EXHAUSTED: + return B.RESOURCE_EXHAUSTED; + case si.INTERNAL: + return B.INTERNAL; + case si.UNAVAILABLE: + return B.UNAVAILABLE; + case si.UNAUTHENTICATED: + return B.UNAUTHENTICATED; + case si.INVALID_ARGUMENT: + return B.INVALID_ARGUMENT; + case si.NOT_FOUND: + return B.NOT_FOUND; + case si.ALREADY_EXISTS: + return B.ALREADY_EXISTS; + case si.PERMISSION_DENIED: + return B.PERMISSION_DENIED; + case si.FAILED_PRECONDITION: + return B.FAILED_PRECONDITION; + case si.ABORTED: + return B.ABORTED; + case si.OUT_OF_RANGE: + return B.OUT_OF_RANGE; + case si.UNIMPLEMENTED: + return B.UNIMPLEMENTED; + case si.DATA_LOSS: + return B.DATA_LOSS; + default: + return O(); + } +} +(ii = si || (si = {}))[ii.OK = 0] = "OK", ii[ii.CANCELLED = 1] = "CANCELLED", ii[ii.UNKNOWN = 2] = "UNKNOWN", ii[ii.INVALID_ARGUMENT = 3] = "INVALID_ARGUMENT", ii[ii.DEADLINE_EXCEEDED = 4] = "DEADLINE_EXCEEDED", ii[ii.NOT_FOUND = 5] = "NOT_FOUND", ii[ii.ALREADY_EXISTS = 6] = "ALREADY_EXISTS", ii[ii.PERMISSION_DENIED = 7] = "PERMISSION_DENIED", ii[ii.UNAUTHENTICATED = 16] = "UNAUTHENTICATED", ii[ii.RESOURCE_EXHAUSTED = 8] = "RESOURCE_EXHAUSTED", ii[ii.FAILED_PRECONDITION = 9] = "FAILED_PRECONDITION", ii[ii.ABORTED = 10] = "ABORTED", ii[ii.OUT_OF_RANGE = 11] = "OUT_OF_RANGE", ii[ii.UNIMPLEMENTED = 12] = "UNIMPLEMENTED", ii[ii.INTERNAL = 13] = "INTERNAL", ii[ii.UNAVAILABLE = 14] = "UNAVAILABLE", ii[ii.DATA_LOSS = 15] = "DATA_LOSS"; +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ui { + constructor() { + this.onExistenceFilterMismatchCallbacks = /* @__PURE__ */ new Map(); + } + static get instance() { + return ci; + } + static getOrCreateInstance() { + return null === ci && (ci = new ui()), ci; + } + onExistenceFilterMismatch(t2) { + const e = Symbol(); + return this.onExistenceFilterMismatchCallbacks.set(e, t2), () => this.onExistenceFilterMismatchCallbacks.delete(e); + } + notifyOnExistenceFilterMismatch(t2) { + this.onExistenceFilterMismatchCallbacks.forEach((e) => e(t2)); + } +} +let ci = null; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ai { + constructor(t2, e, n, s, i) { + this.snapshotVersion = t2, this.targetChanges = e, this.targetMismatches = n, this.documentUpdates = s, this.resolvedLimboDocuments = i; + } + static createSynthesizedRemoteEventForCurrentChange(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + return s.set(t2, hi.createSynthesizedTargetChangeForCurrentChange(t2, e, n)), new ai(st.min(), s, ms(), rs(), ws()); + } +} +class hi { + constructor(t2, e, n, s, i) { + this.resumeToken = t2, this.current = e, this.addedDocuments = n, this.modifiedDocuments = s, this.removedDocuments = i; + } + static createSynthesizedTargetChangeForCurrentChange(t2, e, n) { + return new hi(n, e, ws(), ws(), ws()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class li { + constructor(t2, e, n, s) { + this.It = t2, this.removedTargetIds = e, this.key = n, this.Tt = s; + } +} +class fi { + constructor(t2, e) { + this.targetId = t2, this.Et = e; + } +} +class di { + constructor(t2, e, n = be.EMPTY_BYTE_STRING, s = null) { + this.state = t2, this.targetIds = e, this.resumeToken = n, this.cause = s; + } +} +class wi { + constructor() { + this.At = 0, this.Rt = gi(), this.vt = be.EMPTY_BYTE_STRING, this.bt = false, this.Pt = true; + } + get current() { + return this.bt; + } + get resumeToken() { + return this.vt; + } + get Vt() { + return 0 !== this.At; + } + get St() { + return this.Pt; + } + Dt(t2) { + t2.approximateByteSize() > 0 && (this.Pt = true, this.vt = t2); + } + Ct() { + let t2 = ws(), e = ws(), n = ws(); + return this.Rt.forEach((s, i) => { + switch (i) { + case 0: + t2 = t2.add(s); + break; + case 2: + e = e.add(s); + break; + case 1: + n = n.add(s); + break; + default: + O(); + } + }), new hi(this.vt, this.bt, t2, e, n); + } + xt() { + this.Pt = false, this.Rt = gi(); + } + Nt(t2, e) { + this.Pt = true, this.Rt = this.Rt.insert(t2, e); + } + kt(t2) { + this.Pt = true, this.Rt = this.Rt.remove(t2); + } + Ot() { + this.At += 1; + } + $t() { + this.At -= 1; + } + Mt() { + this.Pt = true, this.bt = true; + } +} +class _i { + constructor(t2) { + this.Ft = t2, this.Bt = /* @__PURE__ */ new Map(), this.Lt = rs(), this.qt = mi(), this.Ut = new Ie(X); + } + Kt(t2) { + for (const e of t2.It) + t2.Tt && t2.Tt.isFoundDocument() ? this.Gt(e, t2.Tt) : this.Qt(e, t2.key, t2.Tt); + for (const e of t2.removedTargetIds) + this.Qt(e, t2.key, t2.Tt); + } + zt(t2) { + this.forEachTarget(t2, (e) => { + const n = this.jt(e); + switch (t2.state) { + case 0: + this.Wt(e) && n.Dt(t2.resumeToken); + break; + case 1: + n.$t(), n.Vt || n.xt(), n.Dt(t2.resumeToken); + break; + case 2: + n.$t(), n.Vt || this.removeTarget(e); + break; + case 3: + this.Wt(e) && (n.Mt(), n.Dt(t2.resumeToken)); + break; + case 4: + this.Wt(e) && (this.Ht(e), n.Dt(t2.resumeToken)); + break; + default: + O(); + } + }); + } + forEachTarget(t2, e) { + t2.targetIds.length > 0 ? t2.targetIds.forEach(e) : this.Bt.forEach((t3, n) => { + this.Wt(n) && e(n); + }); + } + Jt(t2) { + var e; + const n = t2.targetId, s = t2.Et.count, i = this.Yt(n); + if (i) { + const r = i.target; + if (On(r)) + if (0 === s) { + const t3 = new ct(r.path); + this.Qt(n, t3, on.newNoDocument(t3, st.min())); + } else + $(1 === s); + else { + const i2 = this.Zt(n); + i2 !== s && (this.Ht(n), this.Ut = this.Ut.add(n), null === (e = ui.instance) || void 0 === e || e.notifyOnExistenceFilterMismatch({ + localCacheCount: i2, + existenceFilterCount: t2.Et.count + })); + } + } + } + Xt(t2) { + const e = /* @__PURE__ */ new Map(); + this.Bt.forEach((n2, s2) => { + const i = this.Yt(s2); + if (i) { + if (n2.current && On(i.target)) { + const e2 = new ct(i.target.path); + null !== this.Lt.get(e2) || this.te(s2, e2) || this.Qt(s2, e2, on.newNoDocument(e2, t2)); + } + n2.St && (e.set(s2, n2.Ct()), n2.xt()); + } + }); + let n = ws(); + this.qt.forEach((t3, e2) => { + let s2 = true; + e2.forEachWhile((t4) => { + const e3 = this.Yt(t4); + return !e3 || 2 === e3.purpose || (s2 = false, false); + }), s2 && (n = n.add(t3)); + }), this.Lt.forEach((e2, n2) => n2.setReadTime(t2)); + const s = new ai(t2, e, this.Ut, this.Lt, n); + return this.Lt = rs(), this.qt = mi(), this.Ut = new Ie(X), s; + } + Gt(t2, e) { + if (!this.Wt(t2)) + return; + const n = this.te(t2, e.key) ? 2 : 0; + this.jt(t2).Nt(e.key, n), this.Lt = this.Lt.insert(e.key, e), this.qt = this.qt.insert(e.key, this.ee(e.key).add(t2)); + } + Qt(t2, e, n) { + if (!this.Wt(t2)) + return; + const s = this.jt(t2); + this.te(t2, e) ? s.Nt(e, 1) : s.kt(e), this.qt = this.qt.insert(e, this.ee(e).delete(t2)), n && (this.Lt = this.Lt.insert(e, n)); + } + removeTarget(t2) { + this.Bt.delete(t2); + } + Zt(t2) { + const e = this.jt(t2).Ct(); + return this.Ft.getRemoteKeysForTarget(t2).size + e.addedDocuments.size - e.removedDocuments.size; + } + Ot(t2) { + this.jt(t2).Ot(); + } + jt(t2) { + let e = this.Bt.get(t2); + return e || (e = new wi(), this.Bt.set(t2, e)), e; + } + ee(t2) { + let e = this.qt.get(t2); + return e || (e = new Ie(X), this.qt = this.qt.insert(t2, e)), e; + } + Wt(t2) { + const e = null !== this.Yt(t2); + return e || C("WatchChangeAggregator", "Detected inactive target", t2), e; + } + Yt(t2) { + const e = this.Bt.get(t2); + return e && e.Vt ? null : this.Ft.ne(t2); + } + Ht(t2) { + this.Bt.set(t2, new wi()); + this.Ft.getRemoteKeysForTarget(t2).forEach((e) => { + this.Qt(t2, e, null); + }); + } + te(t2, e) { + return this.Ft.getRemoteKeysForTarget(t2).has(e); + } +} +function mi() { + return new ge(ct.comparator); +} +function gi() { + return new ge(ct.comparator); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const yi = (() => { + const t2 = { + asc: "ASCENDING", + desc: "DESCENDING" + }; + return t2; +})(), pi = (() => { + const t2 = { + "<": "LESS_THAN", + "<=": "LESS_THAN_OR_EQUAL", + ">": "GREATER_THAN", + ">=": "GREATER_THAN_OR_EQUAL", + "==": "EQUAL", + "!=": "NOT_EQUAL", + "array-contains": "ARRAY_CONTAINS", + in: "IN", + "not-in": "NOT_IN", + "array-contains-any": "ARRAY_CONTAINS_ANY" + }; + return t2; +})(), Ii = (() => { + const t2 = { + and: "AND", + or: "OR" + }; + return t2; +})(); +class Ti { + constructor(t2, e) { + this.databaseId = t2, this.useProto3Json = e; + } +} +function Ei(t2, e) { + if (t2.useProto3Json) { + return `${new Date(1e3 * e.seconds).toISOString().replace(/\.\d*/, "").replace("Z", "")}.${("000000000" + e.nanoseconds).slice(-9)}Z`; + } + return { + seconds: "" + e.seconds, + nanos: e.nanoseconds + }; +} +function Ai(t2, e) { + return t2.useProto3Json ? e.toBase64() : e.toUint8Array(); +} +function Ri(t2, e) { + return Ei(t2, e.toTimestamp()); +} +function vi(t2) { + return $(!!t2), st.fromTimestamp(function(t3) { + const e = Ve(t3); + return new nt(e.seconds, e.nanos); + }(t2)); +} +function bi(t2, e) { + return function(t3) { + return new rt(["projects", t3.projectId, "databases", t3.database]); + }(t2).child("documents").child(e).canonicalString(); +} +function Pi(t2) { + const e = rt.fromString(t2); + return $(Xi(e)), e; +} +function Vi(t2, e) { + return bi(t2.databaseId, e.path); +} +function Si(t2, e) { + const n = Pi(e); + if (n.get(1) !== t2.databaseId.projectId) + throw new L(B.INVALID_ARGUMENT, "Tried to deserialize key from different project: " + n.get(1) + " vs " + t2.databaseId.projectId); + if (n.get(3) !== t2.databaseId.database) + throw new L(B.INVALID_ARGUMENT, "Tried to deserialize key from different database: " + n.get(3) + " vs " + t2.databaseId.database); + return new ct(Ni(n)); +} +function Di(t2, e) { + return bi(t2.databaseId, e); +} +function Ci(t2) { + const e = Pi(t2); + return 4 === e.length ? rt.emptyPath() : Ni(e); +} +function xi(t2) { + return new rt(["projects", t2.databaseId.projectId, "databases", t2.databaseId.database]).canonicalString(); +} +function Ni(t2) { + return $(t2.length > 4 && "documents" === t2.get(4)), t2.popFirst(5); +} +function ki(t2, e, n) { + return { + name: Vi(t2, e), + fields: n.value.mapValue.fields + }; +} +function Mi(t2, e) { + let n; + if ("targetChange" in e) { + e.targetChange; + const s = function(t3) { + return "NO_CHANGE" === t3 ? 0 : "ADD" === t3 ? 1 : "REMOVE" === t3 ? 2 : "CURRENT" === t3 ? 3 : "RESET" === t3 ? 4 : O(); + }(e.targetChange.targetChangeType || "NO_CHANGE"), i = e.targetChange.targetIds || [], r = function(t3, e2) { + return t3.useProto3Json ? ($(void 0 === e2 || "string" == typeof e2), be.fromBase64String(e2 || "")) : ($(void 0 === e2 || e2 instanceof Uint8Array), be.fromUint8Array(e2 || new Uint8Array())); + }(t2, e.targetChange.resumeToken), o = e.targetChange.cause, u = o && function(t3) { + const e2 = void 0 === t3.code ? B.UNKNOWN : oi(t3.code); + return new L(e2, t3.message || ""); + }(o); + n = new di(s, i, r, u || null); + } else if ("documentChange" in e) { + e.documentChange; + const s = e.documentChange; + s.document, s.document.name, s.document.updateTime; + const i = Si(t2, s.document.name), r = vi(s.document.updateTime), o = s.document.createTime ? vi(s.document.createTime) : st.min(), u = new sn({ + mapValue: { + fields: s.document.fields + } + }), c = on.newFoundDocument(i, r, o, u), a = s.targetIds || [], h = s.removedTargetIds || []; + n = new li(a, h, c.key, c); + } else if ("documentDelete" in e) { + e.documentDelete; + const s = e.documentDelete; + s.document; + const i = Si(t2, s.document), r = s.readTime ? vi(s.readTime) : st.min(), o = on.newNoDocument(i, r), u = s.removedTargetIds || []; + n = new li([], u, o.key, o); + } else if ("documentRemove" in e) { + e.documentRemove; + const s = e.documentRemove; + s.document; + const i = Si(t2, s.document), r = s.removedTargetIds || []; + n = new li([], r, i, null); + } else { + if (!("filter" in e)) + return O(); + { + e.filter; + const t3 = e.filter; + t3.targetId; + const s = t3.count || 0, i = new ni(s), r = t3.targetId; + n = new fi(r, i); + } + } + return n; +} +function Fi(t2, e) { + let n; + if (e instanceof Ks) + n = { + update: ki(t2, e.key, e.value) + }; + else if (e instanceof Ws) + n = { + delete: Vi(t2, e.key) + }; + else if (e instanceof Gs) + n = { + update: ki(t2, e.key, e.data), + updateMask: Zi(e.fieldMask) + }; + else { + if (!(e instanceof Hs)) + return O(); + n = { + verify: Vi(t2, e.key) + }; + } + return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((t3) => function(t4, e2) { + const n2 = e2.transform; + if (n2 instanceof Rs) + return { + fieldPath: e2.field.canonicalString(), + setToServerValue: "REQUEST_TIME" + }; + if (n2 instanceof vs) + return { + fieldPath: e2.field.canonicalString(), + appendMissingElements: { + values: n2.elements + } + }; + if (n2 instanceof Ps) + return { + fieldPath: e2.field.canonicalString(), + removeAllFromArray: { + values: n2.elements + } + }; + if (n2 instanceof Ss) + return { + fieldPath: e2.field.canonicalString(), + increment: n2._t + }; + throw O(); + }(0, t3))), e.precondition.isNone || (n.currentDocument = function(t3, e2) { + return void 0 !== e2.updateTime ? { + updateTime: Ri(t3, e2.updateTime) + } : void 0 !== e2.exists ? { + exists: e2.exists + } : O(); + }(t2, e.precondition)), n; +} +function Li(t2, e) { + return t2 && t2.length > 0 ? ($(void 0 !== e), t2.map((t3) => function(t4, e2) { + let n = t4.updateTime ? vi(t4.updateTime) : vi(e2); + return n.isEqual(st.min()) && (n = vi(e2)), new ks(n, t4.transformResults || []); + }(t3, e))) : []; +} +function qi(t2, e) { + return { + documents: [Di(t2, e.path)] + }; +} +function Ui(t2, e) { + const n = { + structuredQuery: {} + }, s = e.path; + null !== e.collectionGroup ? (n.parent = Di(t2, s), n.structuredQuery.from = [{ + collectionId: e.collectionGroup, + allDescendants: true + }]) : (n.parent = Di(t2, s.popLast()), n.structuredQuery.from = [{ + collectionId: s.lastSegment() + }]); + const i = function(t3) { + if (0 === t3.length) + return; + return Yi(wn.create(t3, "and")); + }(e.filters); + i && (n.structuredQuery.where = i); + const r = function(t3) { + if (0 === t3.length) + return; + return t3.map((t4) => function(t5) { + return { + field: Hi(t5.field), + direction: zi(t5.dir) + }; + }(t4)); + }(e.orderBy); + r && (n.structuredQuery.orderBy = r); + const o = function(t3, e2) { + return t3.useProto3Json || $t(e2) ? e2 : { + value: e2 + }; + }(t2, e.limit); + var u; + return null !== o && (n.structuredQuery.limit = o), e.startAt && (n.structuredQuery.startAt = { + before: (u = e.startAt).inclusive, + values: u.position + }), e.endAt && (n.structuredQuery.endAt = function(t3) { + return { + before: !t3.inclusive, + values: t3.position + }; + }(e.endAt)), n; +} +function Ki(t2) { + let e = Ci(t2.parent); + const n = t2.structuredQuery, s = n.from ? n.from.length : 0; + let i = null; + if (s > 0) { + $(1 === s); + const t3 = n.from[0]; + t3.allDescendants ? i = t3.collectionId : e = e.child(t3.collectionId); + } + let r = []; + n.where && (r = function(t3) { + const e2 = Qi(t3); + if (e2 instanceof wn && gn(e2)) + return e2.getFilters(); + return [e2]; + }(n.where)); + let o = []; + n.orderBy && (o = n.orderBy.map((t3) => function(t4) { + return new hn( + Ji(t4.field), + function(t5) { + switch (t5) { + case "ASCENDING": + return "asc"; + case "DESCENDING": + return "desc"; + default: + return; + } + }(t4.direction) + ); + }(t3))); + let u = null; + n.limit && (u = function(t3) { + let e2; + return e2 = "object" == typeof t3 ? t3.value : t3, $t(e2) ? null : e2; + }(n.limit)); + let c = null; + n.startAt && (c = function(t3) { + const e2 = !!t3.before, n2 = t3.values || []; + return new un(n2, e2); + }(n.startAt)); + let a = null; + return n.endAt && (a = function(t3) { + const e2 = !t3.before, n2 = t3.values || []; + return new un(n2, e2); + }(n.endAt)), Ln(e, i, o, r, u, "F", c, a); +} +function Gi(t2, e) { + const n = function(t3, e2) { + switch (e2) { + case 0: + return null; + case 1: + return "existence-filter-mismatch"; + case 2: + return "limbo-document"; + default: + return O(); + } + }(0, e.purpose); + return null == n ? null : { + "goog-listen-tags": n + }; +} +function Qi(t2) { + return void 0 !== t2.unaryFilter ? function(t3) { + switch (t3.unaryFilter.op) { + case "IS_NAN": + const e = Ji(t3.unaryFilter.field); + return dn.create(e, "==", { + doubleValue: NaN + }); + case "IS_NULL": + const n = Ji(t3.unaryFilter.field); + return dn.create(n, "==", { + nullValue: "NULL_VALUE" + }); + case "IS_NOT_NAN": + const s = Ji(t3.unaryFilter.field); + return dn.create(s, "!=", { + doubleValue: NaN + }); + case "IS_NOT_NULL": + const i = Ji(t3.unaryFilter.field); + return dn.create(i, "!=", { + nullValue: "NULL_VALUE" + }); + default: + return O(); + } + }(t2) : void 0 !== t2.fieldFilter ? function(t3) { + return dn.create(Ji(t3.fieldFilter.field), function(t4) { + switch (t4) { + case "EQUAL": + return "=="; + case "NOT_EQUAL": + return "!="; + case "GREATER_THAN": + return ">"; + case "GREATER_THAN_OR_EQUAL": + return ">="; + case "LESS_THAN": + return "<"; + case "LESS_THAN_OR_EQUAL": + return "<="; + case "ARRAY_CONTAINS": + return "array-contains"; + case "IN": + return "in"; + case "NOT_IN": + return "not-in"; + case "ARRAY_CONTAINS_ANY": + return "array-contains-any"; + default: + return O(); + } + }(t3.fieldFilter.op), t3.fieldFilter.value); + }(t2) : void 0 !== t2.compositeFilter ? function(t3) { + return wn.create(t3.compositeFilter.filters.map((t4) => Qi(t4)), function(t4) { + switch (t4) { + case "AND": + return "and"; + case "OR": + return "or"; + default: + return O(); + } + }(t3.compositeFilter.op)); + }(t2) : O(); +} +function zi(t2) { + return yi[t2]; +} +function ji(t2) { + return pi[t2]; +} +function Wi(t2) { + return Ii[t2]; +} +function Hi(t2) { + return { + fieldPath: t2.canonicalString() + }; +} +function Ji(t2) { + return ut.fromServerFormat(t2.fieldPath); +} +function Yi(t2) { + return t2 instanceof dn ? function(t3) { + if ("==" === t3.op) { + if (He(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NAN" + } + }; + if (We(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NULL" + } + }; + } else if ("!=" === t3.op) { + if (He(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NOT_NAN" + } + }; + if (We(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NOT_NULL" + } + }; + } + return { + fieldFilter: { + field: Hi(t3.field), + op: ji(t3.op), + value: t3.value + } + }; + }(t2) : t2 instanceof wn ? function(t3) { + const e = t3.getFilters().map((t4) => Yi(t4)); + if (1 === e.length) + return e[0]; + return { + compositeFilter: { + op: Wi(t3.op), + filters: e + } + }; + }(t2) : O(); +} +function Zi(t2) { + const e = []; + return t2.fields.forEach((t3) => e.push(t3.canonicalString())), { + fieldPaths: e + }; +} +function Xi(t2) { + return t2.length >= 4 && "projects" === t2.get(0) && "databases" === t2.get(2); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class tr { + constructor(t2, e, n, s, i = st.min(), r = st.min(), o = be.EMPTY_BYTE_STRING) { + this.target = t2, this.targetId = e, this.purpose = n, this.sequenceNumber = s, this.snapshotVersion = i, this.lastLimboFreeSnapshotVersion = r, this.resumeToken = o; + } + withSequenceNumber(t2) { + return new tr(this.target, this.targetId, this.purpose, t2, this.snapshotVersion, this.lastLimboFreeSnapshotVersion, this.resumeToken); + } + withResumeToken(t2, e) { + return new tr(this.target, this.targetId, this.purpose, this.sequenceNumber, e, this.lastLimboFreeSnapshotVersion, t2); + } + withLastLimboFreeSnapshotVersion(t2) { + return new tr(this.target, this.targetId, this.purpose, this.sequenceNumber, this.snapshotVersion, t2, this.resumeToken); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class er { + constructor(t2) { + this.se = t2; + } +} +function hr(t2) { + const e = Ki({ + parent: t2.parent, + structuredQuery: t2.structuredQuery + }); + return "LAST" === t2.limitType ? Hn(e, e.limit, "L") : e; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Br { + constructor() { + this.He = new Lr(); + } + addToCollectionParentIndex(t2, e) { + return this.He.add(e), At.resolve(); + } + getCollectionParents(t2, e) { + return At.resolve(this.He.getEntries(e)); + } + addFieldIndex(t2, e) { + return At.resolve(); + } + deleteFieldIndex(t2, e) { + return At.resolve(); + } + getDocumentsMatchingTarget(t2, e) { + return At.resolve(null); + } + getIndexType(t2, e) { + return At.resolve(0); + } + getFieldIndexes(t2, e) { + return At.resolve([]); + } + getNextCollectionGroupToUpdate(t2) { + return At.resolve(null); + } + getMinOffset(t2, e) { + return At.resolve(yt.min()); + } + getMinOffsetFromCollectionGroup(t2, e) { + return At.resolve(yt.min()); + } + updateCollectionGroup(t2, e, n) { + return At.resolve(); + } + updateIndexEntries(t2, e) { + return At.resolve(); + } +} +class Lr { + constructor() { + this.index = {}; + } + add(t2) { + const e = t2.lastSegment(), n = t2.popLast(), s = this.index[e] || new Ie(rt.comparator), i = !s.has(n); + return this.index[e] = s.add(n), i; + } + has(t2) { + const e = t2.lastSegment(), n = t2.popLast(), s = this.index[e]; + return s && s.has(n); + } + getEntries(t2) { + return (this.index[t2] || new Ie(rt.comparator)).toArray(); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class so { + constructor(t2) { + this.Rn = t2; + } + next() { + return this.Rn += 2, this.Rn; + } + static vn() { + return new so(0); + } + static bn() { + return new so(-1); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class _o { + constructor() { + this.changes = new ss((t2) => t2.toString(), (t2, e) => t2.isEqual(e)), this.changesApplied = false; + } + addEntry(t2) { + this.assertNotApplied(), this.changes.set(t2.key, t2); + } + removeEntry(t2, e) { + this.assertNotApplied(), this.changes.set(t2, on.newInvalidDocument(t2).setReadTime(e)); + } + getEntry(t2, e) { + this.assertNotApplied(); + const n = this.changes.get(e); + return void 0 !== n ? At.resolve(n) : this.getFromCache(t2, e); + } + getEntries(t2, e) { + return this.getAllFromCache(t2, e); + } + apply(t2) { + return this.assertNotApplied(), this.changesApplied = true, this.applyChanges(t2); + } + assertNotApplied() { + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ro { + constructor(t2, e) { + this.overlayedDocument = t2, this.mutatedFields = e; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class vo { + constructor(t2, e, n, s) { + this.remoteDocumentCache = t2, this.mutationQueue = e, this.documentOverlayCache = n, this.indexManager = s; + } + getDocument(t2, e) { + let n = null; + return this.documentOverlayCache.getOverlay(t2, e).next((s) => (n = s, this.remoteDocumentCache.getEntry(t2, e))).next((t3) => (null !== n && Ls(n.mutation, t3, Ae.empty(), nt.now()), t3)); + } + getDocuments(t2, e) { + return this.remoteDocumentCache.getEntries(t2, e).next((e2) => this.getLocalViewOfDocuments(t2, e2, ws()).next(() => e2)); + } + getLocalViewOfDocuments(t2, e, n = ws()) { + const s = as(); + return this.populateOverlays(t2, s, e).next(() => this.computeViews(t2, e, s, n).next((t3) => { + let e2 = us(); + return t3.forEach((t4, n2) => { + e2 = e2.insert(t4, n2.overlayedDocument); + }), e2; + })); + } + getOverlayedDocuments(t2, e) { + const n = as(); + return this.populateOverlays(t2, n, e).next(() => this.computeViews(t2, e, n, ws())); + } + populateOverlays(t2, e, n) { + const s = []; + return n.forEach((t3) => { + e.has(t3) || s.push(t3); + }), this.documentOverlayCache.getOverlays(t2, s).next((t3) => { + t3.forEach((t4, n2) => { + e.set(t4, n2); + }); + }); + } + computeViews(t2, e, n, s) { + let i = rs(); + const r = ls(), o = ls(); + return e.forEach((t3, e2) => { + const o2 = n.get(e2.key); + s.has(e2.key) && (void 0 === o2 || o2.mutation instanceof Gs) ? i = i.insert(e2.key, e2) : void 0 !== o2 ? (r.set(e2.key, o2.mutation.getFieldMask()), Ls(o2.mutation, e2, o2.mutation.getFieldMask(), nt.now())) : r.set(e2.key, Ae.empty()); + }), this.recalculateAndSaveOverlays(t2, i).next((t3) => (t3.forEach((t4, e2) => r.set(t4, e2)), e.forEach((t4, e2) => { + var n2; + return o.set(t4, new Ro(e2, null !== (n2 = r.get(t4)) && void 0 !== n2 ? n2 : null)); + }), o)); + } + recalculateAndSaveOverlays(t2, e) { + const n = ls(); + let s = new ge((t3, e2) => t3 - e2), i = ws(); + return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t2, e).next((t3) => { + for (const i2 of t3) + i2.keys().forEach((t4) => { + const r = e.get(t4); + if (null === r) + return; + let o = n.get(t4) || Ae.empty(); + o = i2.applyToLocalView(r, o), n.set(t4, o); + const u = (s.get(i2.batchId) || ws()).add(t4); + s = s.insert(i2.batchId, u); + }); + }).next(() => { + const r = [], o = s.getReverseIterator(); + for (; o.hasNext(); ) { + const s2 = o.getNext(), u = s2.key, c = s2.value, a = hs(); + c.forEach((t3) => { + if (!i.has(t3)) { + const s3 = Fs(e.get(t3), n.get(t3)); + null !== s3 && a.set(t3, s3), i = i.add(t3); + } + }), r.push(this.documentOverlayCache.saveOverlays(t2, u, a)); + } + return At.waitFor(r); + }).next(() => n); + } + recalculateAndSaveOverlaysForDocumentKeys(t2, e) { + return this.remoteDocumentCache.getEntries(t2, e).next((e2) => this.recalculateAndSaveOverlays(t2, e2)); + } + getDocumentsMatchingQuery(t2, e, n) { + return function(t3) { + return ct.isDocumentKey(t3.path) && null === t3.collectionGroup && 0 === t3.filters.length; + }(e) ? this.getDocumentsMatchingDocumentQuery(t2, e.path) : Qn(e) ? this.getDocumentsMatchingCollectionGroupQuery(t2, e, n) : this.getDocumentsMatchingCollectionQuery(t2, e, n); + } + getNextDocuments(t2, e, n, s) { + return this.remoteDocumentCache.getAllFromCollectionGroup(t2, e, n, s).next((i) => { + const r = s - i.size > 0 ? this.documentOverlayCache.getOverlaysForCollectionGroup(t2, e, n.largestBatchId, s - i.size) : At.resolve(as()); + let o = -1, u = i; + return r.next((e2) => At.forEach(e2, (e3, n2) => (o < n2.largestBatchId && (o = n2.largestBatchId), i.get(e3) ? At.resolve() : this.remoteDocumentCache.getEntry(t2, e3).next((t3) => { + u = u.insert(e3, t3); + }))).next(() => this.populateOverlays(t2, e2, i)).next(() => this.computeViews(t2, u, e2, ws())).next((t3) => ({ + batchId: o, + changes: cs(t3) + }))); + }); + } + getDocumentsMatchingDocumentQuery(t2, e) { + return this.getDocument(t2, new ct(e)).next((t3) => { + let e2 = us(); + return t3.isFoundDocument() && (e2 = e2.insert(t3.key, t3)), e2; + }); + } + getDocumentsMatchingCollectionGroupQuery(t2, e, n) { + const s = e.collectionGroup; + let i = us(); + return this.indexManager.getCollectionParents(t2, s).next((r) => At.forEach(r, (r2) => { + const o = function(t3, e2) { + return new Bn( + e2, + null, + t3.explicitOrderBy.slice(), + t3.filters.slice(), + t3.limit, + t3.limitType, + t3.startAt, + t3.endAt + ); + }(e, r2.child(s)); + return this.getDocumentsMatchingCollectionQuery(t2, o, n).next((t3) => { + t3.forEach((t4, e2) => { + i = i.insert(t4, e2); + }); + }); + }).next(() => i)); + } + getDocumentsMatchingCollectionQuery(t2, e, n) { + let s; + return this.documentOverlayCache.getOverlaysForCollection(t2, e.path, n.largestBatchId).next((i) => (s = i, this.remoteDocumentCache.getDocumentsMatchingQuery(t2, e, n, s))).next((t3) => { + s.forEach((e2, n3) => { + const s2 = n3.getKey(); + null === t3.get(s2) && (t3 = t3.insert(s2, on.newInvalidDocument(s2))); + }); + let n2 = us(); + return t3.forEach((t4, i) => { + const r = s.get(t4); + void 0 !== r && Ls(r.mutation, i, Ae.empty(), nt.now()), Xn(e, i) && (n2 = n2.insert(t4, i)); + }), n2; + }); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class bo { + constructor(t2) { + this.serializer = t2, this.Zn = /* @__PURE__ */ new Map(), this.Xn = /* @__PURE__ */ new Map(); + } + getBundleMetadata(t2, e) { + return At.resolve(this.Zn.get(e)); + } + saveBundleMetadata(t2, e) { + var n; + return this.Zn.set(e.id, { + id: (n = e).id, + version: n.version, + createTime: vi(n.createTime) + }), At.resolve(); + } + getNamedQuery(t2, e) { + return At.resolve(this.Xn.get(e)); + } + saveNamedQuery(t2, e) { + return this.Xn.set(e.name, function(t3) { + return { + name: t3.name, + query: hr(t3.bundledQuery), + readTime: vi(t3.readTime) + }; + }(e)), At.resolve(); + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Po { + constructor() { + this.overlays = new ge(ct.comparator), this.ts = /* @__PURE__ */ new Map(); + } + getOverlay(t2, e) { + return At.resolve(this.overlays.get(e)); + } + getOverlays(t2, e) { + const n = as(); + return At.forEach(e, (e2) => this.getOverlay(t2, e2).next((t3) => { + null !== t3 && n.set(e2, t3); + })).next(() => n); + } + saveOverlays(t2, e, n) { + return n.forEach((n2, s) => { + this.re(t2, e, s); + }), At.resolve(); + } + removeOverlaysForBatchId(t2, e, n) { + const s = this.ts.get(n); + return void 0 !== s && (s.forEach((t3) => this.overlays = this.overlays.remove(t3)), this.ts.delete(n)), At.resolve(); + } + getOverlaysForCollection(t2, e, n) { + const s = as(), i = e.length + 1, r = new ct(e.child("")), o = this.overlays.getIteratorFrom(r); + for (; o.hasNext(); ) { + const t3 = o.getNext().value, r2 = t3.getKey(); + if (!e.isPrefixOf(r2.path)) + break; + r2.path.length === i && (t3.largestBatchId > n && s.set(t3.getKey(), t3)); + } + return At.resolve(s); + } + getOverlaysForCollectionGroup(t2, e, n, s) { + let i = new ge((t3, e2) => t3 - e2); + const r = this.overlays.getIterator(); + for (; r.hasNext(); ) { + const t3 = r.getNext().value; + if (t3.getKey().getCollectionGroup() === e && t3.largestBatchId > n) { + let e2 = i.get(t3.largestBatchId); + null === e2 && (e2 = as(), i = i.insert(t3.largestBatchId, e2)), e2.set(t3.getKey(), t3); + } + } + const o = as(), u = i.getIterator(); + for (; u.hasNext(); ) { + if (u.getNext().value.forEach((t3, e2) => o.set(t3, e2)), o.size() >= s) + break; + } + return At.resolve(o); + } + re(t2, e, n) { + const s = this.overlays.get(n.key); + if (null !== s) { + const t3 = this.ts.get(s.largestBatchId).delete(n.key); + this.ts.set(s.largestBatchId, t3); + } + this.overlays = this.overlays.insert(n.key, new Zs(e, n)); + let i = this.ts.get(e); + void 0 === i && (i = ws(), this.ts.set(e, i)), this.ts.set(e, i.add(n.key)); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Vo { + constructor() { + this.es = new Ie(So.ns), this.ss = new Ie(So.rs); + } + isEmpty() { + return this.es.isEmpty(); + } + addReference(t2, e) { + const n = new So(t2, e); + this.es = this.es.add(n), this.ss = this.ss.add(n); + } + os(t2, e) { + t2.forEach((t3) => this.addReference(t3, e)); + } + removeReference(t2, e) { + this.us(new So(t2, e)); + } + cs(t2, e) { + t2.forEach((t3) => this.removeReference(t3, e)); + } + hs(t2) { + const e = new ct(new rt([])), n = new So(e, t2), s = new So(e, t2 + 1), i = []; + return this.ss.forEachInRange([n, s], (t3) => { + this.us(t3), i.push(t3.key); + }), i; + } + ls() { + this.es.forEach((t2) => this.us(t2)); + } + us(t2) { + this.es = this.es.delete(t2), this.ss = this.ss.delete(t2); + } + fs(t2) { + const e = new ct(new rt([])), n = new So(e, t2), s = new So(e, t2 + 1); + let i = ws(); + return this.ss.forEachInRange([n, s], (t3) => { + i = i.add(t3.key); + }), i; + } + containsKey(t2) { + const e = new So(t2, 0), n = this.es.firstAfterOrEqual(e); + return null !== n && t2.isEqual(n.key); + } +} +class So { + constructor(t2, e) { + this.key = t2, this.ds = e; + } + static ns(t2, e) { + return ct.comparator(t2.key, e.key) || X(t2.ds, e.ds); + } + static rs(t2, e) { + return X(t2.ds, e.ds) || ct.comparator(t2.key, e.key); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Do { + constructor(t2, e) { + this.indexManager = t2, this.referenceDelegate = e, this.mutationQueue = [], this.ws = 1, this._s = new Ie(So.ns); + } + checkEmpty(t2) { + return At.resolve(0 === this.mutationQueue.length); + } + addMutationBatch(t2, e, n, s) { + const i = this.ws; + this.ws++, this.mutationQueue.length > 0 && this.mutationQueue[this.mutationQueue.length - 1]; + const r = new Js(i, e, n, s); + this.mutationQueue.push(r); + for (const e2 of s) + this._s = this._s.add(new So(e2.key, i)), this.indexManager.addToCollectionParentIndex(t2, e2.key.path.popLast()); + return At.resolve(r); + } + lookupMutationBatch(t2, e) { + return At.resolve(this.gs(e)); + } + getNextMutationBatchAfterBatchId(t2, e) { + const n = e + 1, s = this.ys(n), i = s < 0 ? 0 : s; + return At.resolve(this.mutationQueue.length > i ? this.mutationQueue[i] : null); + } + getHighestUnacknowledgedBatchId() { + return At.resolve(0 === this.mutationQueue.length ? -1 : this.ws - 1); + } + getAllMutationBatches(t2) { + return At.resolve(this.mutationQueue.slice()); + } + getAllMutationBatchesAffectingDocumentKey(t2, e) { + const n = new So(e, 0), s = new So(e, Number.POSITIVE_INFINITY), i = []; + return this._s.forEachInRange([n, s], (t3) => { + const e2 = this.gs(t3.ds); + i.push(e2); + }), At.resolve(i); + } + getAllMutationBatchesAffectingDocumentKeys(t2, e) { + let n = new Ie(X); + return e.forEach((t3) => { + const e2 = new So(t3, 0), s = new So(t3, Number.POSITIVE_INFINITY); + this._s.forEachInRange([e2, s], (t4) => { + n = n.add(t4.ds); + }); + }), At.resolve(this.ps(n)); + } + getAllMutationBatchesAffectingQuery(t2, e) { + const n = e.path, s = n.length + 1; + let i = n; + ct.isDocumentKey(i) || (i = i.child("")); + const r = new So(new ct(i), 0); + let o = new Ie(X); + return this._s.forEachWhile((t3) => { + const e2 = t3.key.path; + return !!n.isPrefixOf(e2) && (e2.length === s && (o = o.add(t3.ds)), true); + }, r), At.resolve(this.ps(o)); + } + ps(t2) { + const e = []; + return t2.forEach((t3) => { + const n = this.gs(t3); + null !== n && e.push(n); + }), e; + } + removeMutationBatch(t2, e) { + $(0 === this.Is(e.batchId, "removed")), this.mutationQueue.shift(); + let n = this._s; + return At.forEach(e.mutations, (s) => { + const i = new So(s.key, e.batchId); + return n = n.delete(i), this.referenceDelegate.markPotentiallyOrphaned(t2, s.key); + }).next(() => { + this._s = n; + }); + } + En(t2) { + } + containsKey(t2, e) { + const n = new So(e, 0), s = this._s.firstAfterOrEqual(n); + return At.resolve(e.isEqual(s && s.key)); + } + performConsistencyCheck(t2) { + return this.mutationQueue.length, At.resolve(); + } + Is(t2, e) { + return this.ys(t2); + } + ys(t2) { + if (0 === this.mutationQueue.length) + return 0; + return t2 - this.mutationQueue[0].batchId; + } + gs(t2) { + const e = this.ys(t2); + if (e < 0 || e >= this.mutationQueue.length) + return null; + return this.mutationQueue[e]; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Co { + constructor(t2) { + this.Ts = t2, this.docs = new ge(ct.comparator), this.size = 0; + } + setIndexManager(t2) { + this.indexManager = t2; + } + addEntry(t2, e) { + const n = e.key, s = this.docs.get(n), i = s ? s.size : 0, r = this.Ts(e); + return this.docs = this.docs.insert(n, { + document: e.mutableCopy(), + size: r + }), this.size += r - i, this.indexManager.addToCollectionParentIndex(t2, n.path.popLast()); + } + removeEntry(t2) { + const e = this.docs.get(t2); + e && (this.docs = this.docs.remove(t2), this.size -= e.size); + } + getEntry(t2, e) { + const n = this.docs.get(e); + return At.resolve(n ? n.document.mutableCopy() : on.newInvalidDocument(e)); + } + getEntries(t2, e) { + let n = rs(); + return e.forEach((t3) => { + const e2 = this.docs.get(t3); + n = n.insert(t3, e2 ? e2.document.mutableCopy() : on.newInvalidDocument(t3)); + }), At.resolve(n); + } + getDocumentsMatchingQuery(t2, e, n, s) { + let i = rs(); + const r = e.path, o = new ct(r.child("")), u = this.docs.getIteratorFrom(o); + for (; u.hasNext(); ) { + const { key: t3, value: { document: o2 } } = u.getNext(); + if (!r.isPrefixOf(t3.path)) + break; + t3.path.length > r.length + 1 || (pt(gt(o2), n) <= 0 || (s.has(o2.key) || Xn(e, o2)) && (i = i.insert(o2.key, o2.mutableCopy()))); + } + return At.resolve(i); + } + getAllFromCollectionGroup(t2, e, n, s) { + O(); + } + Es(t2, e) { + return At.forEach(this.docs, (t3) => e(t3)); + } + newChangeBuffer(t2) { + return new xo(this); + } + getSize(t2) { + return At.resolve(this.size); + } +} +class xo extends _o { + constructor(t2) { + super(), this.Jn = t2; + } + applyChanges(t2) { + const e = []; + return this.changes.forEach((n, s) => { + s.isValidDocument() ? e.push(this.Jn.addEntry(t2, s)) : this.Jn.removeEntry(n); + }), At.waitFor(e); + } + getFromCache(t2, e) { + return this.Jn.getEntry(t2, e); + } + getAllFromCache(t2, e) { + return this.Jn.getEntries(t2, e); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class No { + constructor(t2) { + this.persistence = t2, this.As = new ss((t3) => Nn(t3), kn), this.lastRemoteSnapshotVersion = st.min(), this.highestTargetId = 0, this.Rs = 0, this.vs = new Vo(), this.targetCount = 0, this.bs = so.vn(); + } + forEachTarget(t2, e) { + return this.As.forEach((t3, n) => e(n)), At.resolve(); + } + getLastRemoteSnapshotVersion(t2) { + return At.resolve(this.lastRemoteSnapshotVersion); + } + getHighestSequenceNumber(t2) { + return At.resolve(this.Rs); + } + allocateTargetId(t2) { + return this.highestTargetId = this.bs.next(), At.resolve(this.highestTargetId); + } + setTargetsMetadata(t2, e, n) { + return n && (this.lastRemoteSnapshotVersion = n), e > this.Rs && (this.Rs = e), At.resolve(); + } + Sn(t2) { + this.As.set(t2.target, t2); + const e = t2.targetId; + e > this.highestTargetId && (this.bs = new so(e), this.highestTargetId = e), t2.sequenceNumber > this.Rs && (this.Rs = t2.sequenceNumber); + } + addTargetData(t2, e) { + return this.Sn(e), this.targetCount += 1, At.resolve(); + } + updateTargetData(t2, e) { + return this.Sn(e), At.resolve(); + } + removeTargetData(t2, e) { + return this.As.delete(e.target), this.vs.hs(e.targetId), this.targetCount -= 1, At.resolve(); + } + removeTargets(t2, e, n) { + let s = 0; + const i = []; + return this.As.forEach((r, o) => { + o.sequenceNumber <= e && null === n.get(o.targetId) && (this.As.delete(r), i.push(this.removeMatchingKeysForTargetId(t2, o.targetId)), s++); + }), At.waitFor(i).next(() => s); + } + getTargetCount(t2) { + return At.resolve(this.targetCount); + } + getTargetData(t2, e) { + const n = this.As.get(e) || null; + return At.resolve(n); + } + addMatchingKeys(t2, e, n) { + return this.vs.os(e, n), At.resolve(); + } + removeMatchingKeys(t2, e, n) { + this.vs.cs(e, n); + const s = this.persistence.referenceDelegate, i = []; + return s && e.forEach((e2) => { + i.push(s.markPotentiallyOrphaned(t2, e2)); + }), At.waitFor(i); + } + removeMatchingKeysForTargetId(t2, e) { + return this.vs.hs(e), At.resolve(); + } + getMatchingKeysForTargetId(t2, e) { + const n = this.vs.fs(e); + return At.resolve(n); + } + containsKey(t2, e) { + return At.resolve(this.vs.containsKey(e)); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ko { + constructor(t2, e) { + this.Ps = {}, this.overlays = {}, this.Vs = new Ot(0), this.Ss = false, this.Ss = true, this.referenceDelegate = t2(this), this.Ds = new No(this); + this.indexManager = new Br(), this.remoteDocumentCache = function(t3) { + return new Co(t3); + }((t3) => this.referenceDelegate.Cs(t3)), this.serializer = new er(e), this.xs = new bo(this.serializer); + } + start() { + return Promise.resolve(); + } + shutdown() { + return this.Ss = false, Promise.resolve(); + } + get started() { + return this.Ss; + } + setDatabaseDeletedListener() { + } + setNetworkEnabled() { + } + getIndexManager(t2) { + return this.indexManager; + } + getDocumentOverlayCache(t2) { + let e = this.overlays[t2.toKey()]; + return e || (e = new Po(), this.overlays[t2.toKey()] = e), e; + } + getMutationQueue(t2, e) { + let n = this.Ps[t2.toKey()]; + return n || (n = new Do(e, this.referenceDelegate), this.Ps[t2.toKey()] = n), n; + } + getTargetCache() { + return this.Ds; + } + getRemoteDocumentCache() { + return this.remoteDocumentCache; + } + getBundleCache() { + return this.xs; + } + runTransaction(t2, e, n) { + C("MemoryPersistence", "Starting transaction:", t2); + const s = new Oo(this.Vs.next()); + return this.referenceDelegate.Ns(), n(s).next((t3) => this.referenceDelegate.ks(s).next(() => t3)).toPromise().then((t3) => (s.raiseOnCommittedEvent(), t3)); + } + Os(t2, e) { + return At.or(Object.values(this.Ps).map((n) => () => n.containsKey(t2, e))); + } +} +class Oo extends Tt { + constructor(t2) { + super(), this.currentSequenceNumber = t2; + } +} +class $o { + constructor(t2) { + this.persistence = t2, this.$s = new Vo(), this.Ms = null; + } + static Fs(t2) { + return new $o(t2); + } + get Bs() { + if (this.Ms) + return this.Ms; + throw O(); + } + addReference(t2, e, n) { + return this.$s.addReference(n, e), this.Bs.delete(n.toString()), At.resolve(); + } + removeReference(t2, e, n) { + return this.$s.removeReference(n, e), this.Bs.add(n.toString()), At.resolve(); + } + markPotentiallyOrphaned(t2, e) { + return this.Bs.add(e.toString()), At.resolve(); + } + removeTarget(t2, e) { + this.$s.hs(e.targetId).forEach((t3) => this.Bs.add(t3.toString())); + const n = this.persistence.getTargetCache(); + return n.getMatchingKeysForTargetId(t2, e.targetId).next((t3) => { + t3.forEach((t4) => this.Bs.add(t4.toString())); + }).next(() => n.removeTargetData(t2, e)); + } + Ns() { + this.Ms = /* @__PURE__ */ new Set(); + } + ks(t2) { + const e = this.persistence.getRemoteDocumentCache().newChangeBuffer(); + return At.forEach(this.Bs, (n) => { + const s = ct.fromPath(n); + return this.Ls(t2, s).next((t3) => { + t3 || e.removeEntry(s, st.min()); + }); + }).next(() => (this.Ms = null, e.apply(t2))); + } + updateLimboDocument(t2, e) { + return this.Ls(t2, e).next((t3) => { + t3 ? this.Bs.delete(e.toString()) : this.Bs.add(e.toString()); + }); + } + Cs(t2) { + return 0; + } + Ls(t2, e) { + return At.or([() => At.resolve(this.$s.containsKey(e)), () => this.persistence.getTargetCache().containsKey(t2, e), () => this.persistence.Os(t2, e)]); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Go { + constructor(t2, e, n, s) { + this.targetId = t2, this.fromCache = e, this.Vi = n, this.Si = s; + } + static Di(t2, e) { + let n = ws(), s = ws(); + for (const t3 of e.docChanges) + switch (t3.type) { + case 0: + n = n.add(t3.doc.key); + break; + case 1: + s = s.add(t3.doc.key); + } + return new Go(t2, e.fromCache, n, s); + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Qo { + constructor() { + this.Ci = false; + } + initialize(t2, e) { + this.xi = t2, this.indexManager = e, this.Ci = true; + } + getDocumentsMatchingQuery(t2, e, n, s) { + return this.Ni(t2, e).next((i) => i || this.ki(t2, e, s, n)).next((n2) => n2 || this.Oi(t2, e)); + } + Ni(t2, e) { + if (Un(e)) + return At.resolve(null); + let n = jn(e); + return this.indexManager.getIndexType(t2, n).next((s) => 0 === s ? null : (null !== e.limit && 1 === s && (e = Hn(e, null, "F"), n = jn(e)), this.indexManager.getDocumentsMatchingTarget(t2, n).next((s2) => { + const i = ws(...s2); + return this.xi.getDocuments(t2, i).next((s3) => this.indexManager.getMinOffset(t2, n).next((n2) => { + const r = this.$i(e, s3); + return this.Mi(e, r, i, n2.readTime) ? this.Ni(t2, Hn(e, null, "F")) : this.Fi(t2, r, e, n2); + })); + }))); + } + ki(t2, e, n, s) { + return Un(e) || s.isEqual(st.min()) ? this.Oi(t2, e) : this.xi.getDocuments(t2, n).next((i) => { + const r = this.$i(e, i); + return this.Mi(e, r, n, s) ? this.Oi(t2, e) : (S() <= LogLevel.DEBUG && C("QueryEngine", "Re-using previous result from %s to execute query: %s", s.toString(), Zn(e)), this.Fi(t2, r, e, mt(s, -1))); + }); + } + $i(t2, e) { + let n = new Ie(es(t2)); + return e.forEach((e2, s) => { + Xn(t2, s) && (n = n.add(s)); + }), n; + } + Mi(t2, e, n, s) { + if (null === t2.limit) + return false; + if (n.size !== e.size) + return true; + const i = "F" === t2.limitType ? e.last() : e.first(); + return !!i && (i.hasPendingWrites || i.version.compareTo(s) > 0); + } + Oi(t2, e) { + return S() <= LogLevel.DEBUG && C("QueryEngine", "Using full collection scan to execute query:", Zn(e)), this.xi.getDocumentsMatchingQuery(t2, e, yt.min()); + } + Fi(t2, e, n, s) { + return this.xi.getDocumentsMatchingQuery(t2, n, s).next((t3) => (e.forEach((e2) => { + t3 = t3.insert(e2.key, e2); + }), t3)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class zo { + constructor(t2, e, n, s) { + this.persistence = t2, this.Bi = e, this.serializer = s, this.Li = new ge(X), this.qi = new ss((t3) => Nn(t3), kn), this.Ui = /* @__PURE__ */ new Map(), this.Ki = t2.getRemoteDocumentCache(), this.Ds = t2.getTargetCache(), this.xs = t2.getBundleCache(), this.Gi(n); + } + Gi(t2) { + this.documentOverlayCache = this.persistence.getDocumentOverlayCache(t2), this.indexManager = this.persistence.getIndexManager(t2), this.mutationQueue = this.persistence.getMutationQueue(t2, this.indexManager), this.localDocuments = new vo(this.Ki, this.mutationQueue, this.documentOverlayCache, this.indexManager), this.Ki.setIndexManager(this.indexManager), this.Bi.initialize(this.localDocuments, this.indexManager); + } + collectGarbage(t2) { + return this.persistence.runTransaction("Collect garbage", "readwrite-primary", (e) => t2.collect(e, this.Li)); + } +} +function jo(t2, e, n, s) { + return new zo(t2, e, n, s); +} +async function Wo(t2, e) { + const n = F(t2); + return await n.persistence.runTransaction("Handle user change", "readonly", (t3) => { + let s; + return n.mutationQueue.getAllMutationBatches(t3).next((i) => (s = i, n.Gi(e), n.mutationQueue.getAllMutationBatches(t3))).next((e2) => { + const i = [], r = []; + let o = ws(); + for (const t4 of s) { + i.push(t4.batchId); + for (const e3 of t4.mutations) + o = o.add(e3.key); + } + for (const t4 of e2) { + r.push(t4.batchId); + for (const e3 of t4.mutations) + o = o.add(e3.key); + } + return n.localDocuments.getDocuments(t3, o).next((t4) => ({ + Qi: t4, + removedBatchIds: i, + addedBatchIds: r + })); + }); + }); +} +function Ho(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Acknowledge batch", "readwrite-primary", (t3) => { + const s = e.batch.keys(), i = n.Ki.newChangeBuffer({ + trackRemovals: true + }); + return function(t4, e2, n2, s2) { + const i2 = n2.batch, r = i2.keys(); + let o = At.resolve(); + return r.forEach((t5) => { + o = o.next(() => s2.getEntry(e2, t5)).next((e3) => { + const r2 = n2.docVersions.get(t5); + $(null !== r2), e3.version.compareTo(r2) < 0 && (i2.applyToRemoteDocument(e3, n2), e3.isValidDocument() && (e3.setReadTime(n2.commitVersion), s2.addEntry(e3))); + }); + }), o.next(() => t4.mutationQueue.removeMutationBatch(e2, i2)); + }(n, t3, e, i).next(() => i.apply(t3)).next(() => n.mutationQueue.performConsistencyCheck(t3)).next(() => n.documentOverlayCache.removeOverlaysForBatchId(t3, s, e.batch.batchId)).next(() => n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t3, function(t4) { + let e2 = ws(); + for (let n2 = 0; n2 < t4.mutationResults.length; ++n2) { + t4.mutationResults[n2].transformResults.length > 0 && (e2 = e2.add(t4.batch.mutations[n2].key)); + } + return e2; + }(e))).next(() => n.localDocuments.getDocuments(t3, s)); + }); +} +function Jo(t2) { + const e = F(t2); + return e.persistence.runTransaction("Get last remote snapshot version", "readonly", (t3) => e.Ds.getLastRemoteSnapshotVersion(t3)); +} +function Yo(t2, e) { + const n = F(t2), s = e.snapshotVersion; + let i = n.Li; + return n.persistence.runTransaction("Apply remote event", "readwrite-primary", (t3) => { + const r = n.Ki.newChangeBuffer({ + trackRemovals: true + }); + i = n.Li; + const o = []; + e.targetChanges.forEach((r2, u2) => { + const c2 = i.get(u2); + if (!c2) + return; + o.push(n.Ds.removeMatchingKeys(t3, r2.removedDocuments, u2).next(() => n.Ds.addMatchingKeys(t3, r2.addedDocuments, u2))); + let a = c2.withSequenceNumber(t3.currentSequenceNumber); + e.targetMismatches.has(u2) ? a = a.withResumeToken(be.EMPTY_BYTE_STRING, st.min()).withLastLimboFreeSnapshotVersion(st.min()) : r2.resumeToken.approximateByteSize() > 0 && (a = a.withResumeToken(r2.resumeToken, s)), i = i.insert(u2, a), function(t4, e2, n2) { + if (0 === t4.resumeToken.approximateByteSize()) + return true; + if (e2.snapshotVersion.toMicroseconds() - t4.snapshotVersion.toMicroseconds() >= 3e8) + return true; + return n2.addedDocuments.size + n2.modifiedDocuments.size + n2.removedDocuments.size > 0; + }(c2, a, r2) && o.push(n.Ds.updateTargetData(t3, a)); + }); + let u = rs(), c = ws(); + if (e.documentUpdates.forEach((s2) => { + e.resolvedLimboDocuments.has(s2) && o.push(n.persistence.referenceDelegate.updateLimboDocument(t3, s2)); + }), o.push(Zo(t3, r, e.documentUpdates).next((t4) => { + u = t4.zi, c = t4.ji; + })), !s.isEqual(st.min())) { + const e2 = n.Ds.getLastRemoteSnapshotVersion(t3).next((e3) => n.Ds.setTargetsMetadata(t3, t3.currentSequenceNumber, s)); + o.push(e2); + } + return At.waitFor(o).next(() => r.apply(t3)).next(() => n.localDocuments.getLocalViewOfDocuments(t3, u, c)).next(() => u); + }).then((t3) => (n.Li = i, t3)); +} +function Zo(t2, e, n) { + let s = ws(), i = ws(); + return n.forEach((t3) => s = s.add(t3)), e.getEntries(t2, s).next((t3) => { + let s2 = rs(); + return n.forEach((n2, r) => { + const o = t3.get(n2); + r.isFoundDocument() !== o.isFoundDocument() && (i = i.add(n2)), r.isNoDocument() && r.version.isEqual(st.min()) ? (e.removeEntry(n2, r.readTime), s2 = s2.insert(n2, r)) : !o.isValidDocument() || r.version.compareTo(o.version) > 0 || 0 === r.version.compareTo(o.version) && o.hasPendingWrites ? (e.addEntry(r), s2 = s2.insert(n2, r)) : C("LocalStore", "Ignoring outdated watch update for ", n2, ". Current version:", o.version, " Watch version:", r.version); + }), { + zi: s2, + ji: i + }; + }); +} +function Xo(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Get next mutation batch", "readonly", (t3) => (void 0 === e && (e = -1), n.mutationQueue.getNextMutationBatchAfterBatchId(t3, e))); +} +function tu(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Allocate target", "readwrite", (t3) => { + let s; + return n.Ds.getTargetData(t3, e).next((i) => i ? (s = i, At.resolve(s)) : n.Ds.allocateTargetId(t3).next((i2) => (s = new tr(e, i2, 0, t3.currentSequenceNumber), n.Ds.addTargetData(t3, s).next(() => s)))); + }).then((t3) => { + const s = n.Li.get(t3.targetId); + return (null === s || t3.snapshotVersion.compareTo(s.snapshotVersion) > 0) && (n.Li = n.Li.insert(t3.targetId, t3), n.qi.set(e, t3.targetId)), t3; + }); +} +async function eu(t2, e, n) { + const s = F(t2), i = s.Li.get(e), r = n ? "readwrite" : "readwrite-primary"; + try { + n || await s.persistence.runTransaction("Release target", r, (t3) => s.persistence.referenceDelegate.removeTarget(t3, i)); + } catch (t3) { + if (!Vt(t3)) + throw t3; + C("LocalStore", `Failed to update sequence numbers for target ${e}: ${t3}`); + } + s.Li = s.Li.remove(e), s.qi.delete(i.target); +} +function nu(t2, e, n) { + const s = F(t2); + let i = st.min(), r = ws(); + return s.persistence.runTransaction("Execute query", "readonly", (t3) => function(t4, e2, n2) { + const s2 = F(t4), i2 = s2.qi.get(n2); + return void 0 !== i2 ? At.resolve(s2.Li.get(i2)) : s2.Ds.getTargetData(e2, n2); + }(s, t3, jn(e)).next((e2) => { + if (e2) + return i = e2.lastLimboFreeSnapshotVersion, s.Ds.getMatchingKeysForTargetId(t3, e2.targetId).next((t4) => { + r = t4; + }); + }).next(() => s.Bi.getDocumentsMatchingQuery(t3, e, n ? i : st.min(), n ? r : ws())).next((t4) => (ru(s, ts(e), t4), { + documents: t4, + Wi: r + }))); +} +function ru(t2, e, n) { + let s = t2.Ui.get(e) || st.min(); + n.forEach((t3, e2) => { + e2.readTime.compareTo(s) > 0 && (s = e2.readTime); + }), t2.Ui.set(e, s); +} +class _u { + constructor() { + this.activeTargetIds = ms(); + } + tr(t2) { + this.activeTargetIds = this.activeTargetIds.add(t2); + } + er(t2) { + this.activeTargetIds = this.activeTargetIds.delete(t2); + } + Xi() { + const t2 = { + activeTargetIds: this.activeTargetIds.toArray(), + updateTimeMs: Date.now() + }; + return JSON.stringify(t2); + } +} +class gu { + constructor() { + this.Br = new _u(), this.Lr = {}, this.onlineStateHandler = null, this.sequenceNumberHandler = null; + } + addPendingMutation(t2) { + } + updateMutationState(t2, e, n) { + } + addLocalQueryTarget(t2) { + return this.Br.tr(t2), this.Lr[t2] || "not-current"; + } + updateQueryState(t2, e, n) { + this.Lr[t2] = e; + } + removeLocalQueryTarget(t2) { + this.Br.er(t2); + } + isLocalQueryTarget(t2) { + return this.Br.activeTargetIds.has(t2); + } + clearQueryState(t2) { + delete this.Lr[t2]; + } + getAllActiveQueryTargets() { + return this.Br.activeTargetIds; + } + isActiveQueryTarget(t2) { + return this.Br.activeTargetIds.has(t2); + } + start() { + return this.Br = new _u(), Promise.resolve(); + } + handleUserChange(t2, e, n) { + } + setOnlineState(t2) { + } + shutdown() { + } + writeSequenceNumber(t2) { + } + notifyBundleLoaded(t2) { + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class yu { + qr(t2) { + } + shutdown() { + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class pu { + constructor() { + this.Ur = () => this.Kr(), this.Gr = () => this.Qr(), this.zr = [], this.jr(); + } + qr(t2) { + this.zr.push(t2); + } + shutdown() { + window.removeEventListener("online", this.Ur), window.removeEventListener("offline", this.Gr); + } + jr() { + window.addEventListener("online", this.Ur), window.addEventListener("offline", this.Gr); + } + Kr() { + C("ConnectivityMonitor", "Network connectivity changed: AVAILABLE"); + for (const t2 of this.zr) + t2(0); + } + Qr() { + C("ConnectivityMonitor", "Network connectivity changed: UNAVAILABLE"); + for (const t2 of this.zr) + t2(1); + } + static D() { + return "undefined" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener; + } +} +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +let Iu = null; +function Tu() { + return null === Iu ? Iu = 268435456 + Math.round(2147483648 * Math.random()) : Iu++, "0x" + Iu.toString(16); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Eu = { + BatchGetDocuments: "batchGet", + Commit: "commit", + RunQuery: "runQuery", + RunAggregationQuery: "runAggregationQuery" +}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Au { + constructor(t2) { + this.Wr = t2.Wr, this.Hr = t2.Hr; + } + Jr(t2) { + this.Yr = t2; + } + Zr(t2) { + this.Xr = t2; + } + onMessage(t2) { + this.eo = t2; + } + close() { + this.Hr(); + } + send(t2) { + this.Wr(t2); + } + no() { + this.Yr(); + } + so(t2) { + this.Xr(t2); + } + io(t2) { + this.eo(t2); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Ru = "WebChannelConnection"; +class vu extends class { + constructor(t2) { + this.databaseInfo = t2, this.databaseId = t2.databaseId; + const e = t2.ssl ? "https" : "http"; + this.ro = e + "://" + t2.host, this.oo = "projects/" + this.databaseId.projectId + "/databases/" + this.databaseId.database + "/documents"; + } + get uo() { + return false; + } + co(t2, e, n, s, i) { + const r = Tu(), o = this.ao(t2, e); + C("RestConnection", `Sending RPC '${t2}' ${r}:`, o, n); + const u = {}; + return this.ho(u, s, i), this.lo(t2, o, u, n).then((e2) => (C("RestConnection", `Received RPC '${t2}' ${r}: `, e2), e2), (e2) => { + throw N("RestConnection", `RPC '${t2}' ${r} failed with error: `, e2, "url: ", o, "request:", n), e2; + }); + } + fo(t2, e, n, s, i, r) { + return this.co(t2, e, n, s, i); + } + ho(t2, e, n) { + t2["X-Goog-Api-Client"] = "gl-js/ fire/" + P, t2["Content-Type"] = "text/plain", this.databaseInfo.appId && (t2["X-Firebase-GMPID"] = this.databaseInfo.appId), e && e.headers.forEach((e2, n2) => t2[n2] = e2), n && n.headers.forEach((e2, n2) => t2[n2] = e2); + } + ao(t2, e) { + const n = Eu[t2]; + return `${this.ro}/v1/${e}:${n}`; + } +} { + constructor(t2) { + super(t2), this.forceLongPolling = t2.forceLongPolling, this.autoDetectLongPolling = t2.autoDetectLongPolling, this.useFetchStreams = t2.useFetchStreams; + } + lo(t2, e, n, s) { + const i = Tu(); + return new Promise((r, o) => { + const u = new XhrIo(); + u.setWithCredentials(true), u.listenOnce(EventType.COMPLETE, () => { + try { + switch (u.getLastErrorCode()) { + case ErrorCode.NO_ERROR: + const e2 = u.getResponseJson(); + C(Ru, `XHR for RPC '${t2}' ${i} received:`, JSON.stringify(e2)), r(e2); + break; + case ErrorCode.TIMEOUT: + C(Ru, `RPC '${t2}' ${i} timed out`), o(new L(B.DEADLINE_EXCEEDED, "Request time out")); + break; + case ErrorCode.HTTP_ERROR: + const n2 = u.getStatus(); + if (C(Ru, `RPC '${t2}' ${i} failed with status:`, n2, "response text:", u.getResponseText()), n2 > 0) { + let t3 = u.getResponseJson(); + Array.isArray(t3) && (t3 = t3[0]); + const e3 = null == t3 ? void 0 : t3.error; + if (e3 && e3.status && e3.message) { + const t4 = function(t5) { + const e4 = t5.toLowerCase().replace(/_/g, "-"); + return Object.values(B).indexOf(e4) >= 0 ? e4 : B.UNKNOWN; + }(e3.status); + o(new L(t4, e3.message)); + } else + o(new L(B.UNKNOWN, "Server responded with status " + u.getStatus())); + } else + o(new L(B.UNAVAILABLE, "Connection failed.")); + break; + default: + O(); + } + } finally { + C(Ru, `RPC '${t2}' ${i} completed.`); + } + }); + const c = JSON.stringify(s); + C(Ru, `RPC '${t2}' ${i} sending request:`, s), u.send(e, "POST", c, n, 15); + }); + } + wo(t2, e, n) { + const s = Tu(), i = [this.ro, "/", "google.firestore.v1.Firestore", "/", t2, "/channel"], r = createWebChannelTransport(), o = getStatEventTarget(), u = { + httpSessionIdParam: "gsessionid", + initMessageHeaders: {}, + messageUrlParams: { + database: `projects/${this.databaseId.projectId}/databases/${this.databaseId.database}` + }, + sendRawJson: true, + supportsCrossDomainXhr: true, + internalChannelParams: { + forwardChannelRequestTimeoutMs: 6e5 + }, + forceLongPolling: this.forceLongPolling, + detectBufferingProxy: this.autoDetectLongPolling + }; + this.useFetchStreams && (u.xmlHttpFactory = new FetchXmlHttpFactory({})), this.ho(u.initMessageHeaders, e, n), u.encodeInitMessageHeaders = true; + const c = i.join(""); + C(Ru, `Creating RPC '${t2}' stream ${s}: ${c}`, u); + const a = r.createWebChannel(c, u); + let h = false, l2 = false; + const f = new Au({ + Wr: (e2) => { + l2 ? C(Ru, `Not sending because RPC '${t2}' stream ${s} is closed:`, e2) : (h || (C(Ru, `Opening RPC '${t2}' stream ${s} transport.`), a.open(), h = true), C(Ru, `RPC '${t2}' stream ${s} sending:`, e2), a.send(e2)); + }, + Hr: () => a.close() + }), d = (t3, e2, n2) => { + t3.listen(e2, (t4) => { + try { + n2(t4); + } catch (t5) { + setTimeout(() => { + throw t5; + }, 0); + } + }); + }; + return d(a, WebChannel.EventType.OPEN, () => { + l2 || C(Ru, `RPC '${t2}' stream ${s} transport opened.`); + }), d(a, WebChannel.EventType.CLOSE, () => { + l2 || (l2 = true, C(Ru, `RPC '${t2}' stream ${s} transport closed`), f.so()); + }), d(a, WebChannel.EventType.ERROR, (e2) => { + l2 || (l2 = true, N(Ru, `RPC '${t2}' stream ${s} transport errored:`, e2), f.so(new L(B.UNAVAILABLE, "The operation could not be completed"))); + }), d(a, WebChannel.EventType.MESSAGE, (e2) => { + var n2; + if (!l2) { + const i2 = e2.data[0]; + $(!!i2); + const r2 = i2, o2 = r2.error || (null === (n2 = r2[0]) || void 0 === n2 ? void 0 : n2.error); + if (o2) { + C(Ru, `RPC '${t2}' stream ${s} received error:`, o2); + const e3 = o2.status; + let n3 = function(t3) { + const e4 = si[t3]; + if (void 0 !== e4) + return oi(e4); + }(e3), i3 = o2.message; + void 0 === n3 && (n3 = B.INTERNAL, i3 = "Unknown error status: " + e3 + " with message " + o2.message), l2 = true, f.so(new L(n3, i3)), a.close(); + } else + C(Ru, `RPC '${t2}' stream ${s} received:`, i2), f.io(i2); + } + }), d(o, Event.STAT_EVENT, (e2) => { + e2.stat === Stat.PROXY ? C(Ru, `RPC '${t2}' stream ${s} detected buffering proxy`) : e2.stat === Stat.NOPROXY && C(Ru, `RPC '${t2}' stream ${s} detected no buffering proxy`); + }), setTimeout(() => { + f.no(); + }, 0), f; + } +} +function Pu() { + return "undefined" != typeof document ? document : null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Vu(t2) { + return new Ti(t2, true); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Su { + constructor(t2, e, n = 1e3, s = 1.5, i = 6e4) { + this.Ws = t2, this.timerId = e, this._o = n, this.mo = s, this.yo = i, this.po = 0, this.Io = null, this.To = Date.now(), this.reset(); + } + reset() { + this.po = 0; + } + Eo() { + this.po = this.yo; + } + Ao(t2) { + this.cancel(); + const e = Math.floor(this.po + this.Ro()), n = Math.max(0, Date.now() - this.To), s = Math.max(0, e - n); + s > 0 && C("ExponentialBackoff", `Backing off for ${s} ms (base delay: ${this.po} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`), this.Io = this.Ws.enqueueAfterDelay(this.timerId, s, () => (this.To = Date.now(), t2())), this.po *= this.mo, this.po < this._o && (this.po = this._o), this.po > this.yo && (this.po = this.yo); + } + vo() { + null !== this.Io && (this.Io.skipDelay(), this.Io = null); + } + cancel() { + null !== this.Io && (this.Io.cancel(), this.Io = null); + } + Ro() { + return (Math.random() - 0.5) * this.po; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Du { + constructor(t2, e, n, s, i, r, o, u) { + this.Ws = t2, this.bo = n, this.Po = s, this.connection = i, this.authCredentialsProvider = r, this.appCheckCredentialsProvider = o, this.listener = u, this.state = 0, this.Vo = 0, this.So = null, this.Do = null, this.stream = null, this.Co = new Su(t2, e); + } + xo() { + return 1 === this.state || 5 === this.state || this.No(); + } + No() { + return 2 === this.state || 3 === this.state; + } + start() { + 4 !== this.state ? this.auth() : this.ko(); + } + async stop() { + this.xo() && await this.close(0); + } + Oo() { + this.state = 0, this.Co.reset(); + } + $o() { + this.No() && null === this.So && (this.So = this.Ws.enqueueAfterDelay(this.bo, 6e4, () => this.Mo())); + } + Fo(t2) { + this.Bo(), this.stream.send(t2); + } + async Mo() { + if (this.No()) + return this.close(0); + } + Bo() { + this.So && (this.So.cancel(), this.So = null); + } + Lo() { + this.Do && (this.Do.cancel(), this.Do = null); + } + async close(t2, e) { + this.Bo(), this.Lo(), this.Co.cancel(), this.Vo++, 4 !== t2 ? this.Co.reset() : e && e.code === B.RESOURCE_EXHAUSTED ? (x(e.toString()), x("Using maximum backoff delay to prevent overloading the backend."), this.Co.Eo()) : e && e.code === B.UNAUTHENTICATED && 3 !== this.state && (this.authCredentialsProvider.invalidateToken(), this.appCheckCredentialsProvider.invalidateToken()), null !== this.stream && (this.qo(), this.stream.close(), this.stream = null), this.state = t2, await this.listener.Zr(e); + } + qo() { + } + auth() { + this.state = 1; + const t2 = this.Uo(this.Vo), e = this.Vo; + Promise.all([this.authCredentialsProvider.getToken(), this.appCheckCredentialsProvider.getToken()]).then(([t3, n]) => { + this.Vo === e && this.Ko(t3, n); + }, (e2) => { + t2(() => { + const t3 = new L(B.UNKNOWN, "Fetching auth token failed: " + e2.message); + return this.Go(t3); + }); + }); + } + Ko(t2, e) { + const n = this.Uo(this.Vo); + this.stream = this.Qo(t2, e), this.stream.Jr(() => { + n(() => (this.state = 2, this.Do = this.Ws.enqueueAfterDelay(this.Po, 1e4, () => (this.No() && (this.state = 3), Promise.resolve())), this.listener.Jr())); + }), this.stream.Zr((t3) => { + n(() => this.Go(t3)); + }), this.stream.onMessage((t3) => { + n(() => this.onMessage(t3)); + }); + } + ko() { + this.state = 5, this.Co.Ao(async () => { + this.state = 0, this.start(); + }); + } + Go(t2) { + return C("PersistentStream", `close with error: ${t2}`), this.stream = null, this.close(4, t2); + } + Uo(t2) { + return (e) => { + this.Ws.enqueueAndForget(() => this.Vo === t2 ? e() : (C("PersistentStream", "stream callback skipped by getCloseGuardedDispatcher."), Promise.resolve())); + }; + } +} +class Cu extends Du { + constructor(t2, e, n, s, i, r) { + super(t2, "listen_stream_connection_backoff", "listen_stream_idle", "health_check_timeout", e, n, s, r), this.serializer = i; + } + Qo(t2, e) { + return this.connection.wo("Listen", t2, e); + } + onMessage(t2) { + this.Co.reset(); + const e = Mi(this.serializer, t2), n = function(t3) { + if (!("targetChange" in t3)) + return st.min(); + const e2 = t3.targetChange; + return e2.targetIds && e2.targetIds.length ? st.min() : e2.readTime ? vi(e2.readTime) : st.min(); + }(t2); + return this.listener.zo(e, n); + } + jo(t2) { + const e = {}; + e.database = xi(this.serializer), e.addTarget = function(t3, e2) { + let n2; + const s = e2.target; + return n2 = On(s) ? { + documents: qi(t3, s) + } : { + query: Ui(t3, s) + }, n2.targetId = e2.targetId, e2.resumeToken.approximateByteSize() > 0 ? n2.resumeToken = Ai(t3, e2.resumeToken) : e2.snapshotVersion.compareTo(st.min()) > 0 && (n2.readTime = Ei(t3, e2.snapshotVersion.toTimestamp())), n2; + }(this.serializer, t2); + const n = Gi(this.serializer, t2); + n && (e.labels = n), this.Fo(e); + } + Wo(t2) { + const e = {}; + e.database = xi(this.serializer), e.removeTarget = t2, this.Fo(e); + } +} +class xu extends Du { + constructor(t2, e, n, s, i, r) { + super(t2, "write_stream_connection_backoff", "write_stream_idle", "health_check_timeout", e, n, s, r), this.serializer = i, this.Ho = false; + } + get Jo() { + return this.Ho; + } + start() { + this.Ho = false, this.lastStreamToken = void 0, super.start(); + } + qo() { + this.Ho && this.Yo([]); + } + Qo(t2, e) { + return this.connection.wo("Write", t2, e); + } + onMessage(t2) { + if ($(!!t2.streamToken), this.lastStreamToken = t2.streamToken, this.Ho) { + this.Co.reset(); + const e = Li(t2.writeResults, t2.commitTime), n = vi(t2.commitTime); + return this.listener.Zo(n, e); + } + return $(!t2.writeResults || 0 === t2.writeResults.length), this.Ho = true, this.listener.Xo(); + } + tu() { + const t2 = {}; + t2.database = xi(this.serializer), this.Fo(t2); + } + Yo(t2) { + const e = { + streamToken: this.lastStreamToken, + writes: t2.map((t3) => Fi(this.serializer, t3)) + }; + this.Fo(e); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Nu extends class { +} { + constructor(t2, e, n, s) { + super(), this.authCredentials = t2, this.appCheckCredentials = e, this.connection = n, this.serializer = s, this.eu = false; + } + nu() { + if (this.eu) + throw new L(B.FAILED_PRECONDITION, "The client has already been terminated."); + } + co(t2, e, n) { + return this.nu(), Promise.all([this.authCredentials.getToken(), this.appCheckCredentials.getToken()]).then(([s, i]) => this.connection.co(t2, e, n, s, i)).catch((t3) => { + throw "FirebaseError" === t3.name ? (t3.code === B.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), this.appCheckCredentials.invalidateToken()), t3) : new L(B.UNKNOWN, t3.toString()); + }); + } + fo(t2, e, n, s) { + return this.nu(), Promise.all([this.authCredentials.getToken(), this.appCheckCredentials.getToken()]).then(([i, r]) => this.connection.fo(t2, e, n, i, r, s)).catch((t3) => { + throw "FirebaseError" === t3.name ? (t3.code === B.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), this.appCheckCredentials.invalidateToken()), t3) : new L(B.UNKNOWN, t3.toString()); + }); + } + terminate() { + this.eu = true; + } +} +class Ou { + constructor(t2, e) { + this.asyncQueue = t2, this.onlineStateHandler = e, this.state = "Unknown", this.su = 0, this.iu = null, this.ru = true; + } + ou() { + 0 === this.su && (this.uu("Unknown"), this.iu = this.asyncQueue.enqueueAfterDelay("online_state_timeout", 1e4, () => (this.iu = null, this.cu("Backend didn't respond within 10 seconds."), this.uu("Offline"), Promise.resolve()))); + } + au(t2) { + "Online" === this.state ? this.uu("Unknown") : (this.su++, this.su >= 1 && (this.hu(), this.cu(`Connection failed 1 times. Most recent error: ${t2.toString()}`), this.uu("Offline"))); + } + set(t2) { + this.hu(), this.su = 0, "Online" === t2 && (this.ru = false), this.uu(t2); + } + uu(t2) { + t2 !== this.state && (this.state = t2, this.onlineStateHandler(t2)); + } + cu(t2) { + const e = `Could not reach Cloud Firestore backend. ${t2} +This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`; + this.ru ? (x(e), this.ru = false) : C("OnlineStateTracker", e); + } + hu() { + null !== this.iu && (this.iu.cancel(), this.iu = null); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class $u { + constructor(t2, e, n, s, i) { + this.localStore = t2, this.datastore = e, this.asyncQueue = n, this.remoteSyncer = {}, this.lu = [], this.fu = /* @__PURE__ */ new Map(), this.du = /* @__PURE__ */ new Set(), this.wu = [], this._u = i, this._u.qr((t3) => { + n.enqueueAndForget(async () => { + Qu(this) && (C("RemoteStore", "Restarting streams for network reachability change."), await async function(t4) { + const e2 = F(t4); + e2.du.add(4), await Fu(e2), e2.mu.set("Unknown"), e2.du.delete(4), await Mu(e2); + }(this)); + }); + }), this.mu = new Ou(n, s); + } +} +async function Mu(t2) { + if (Qu(t2)) + for (const e of t2.wu) + await e(true); +} +async function Fu(t2) { + for (const e of t2.wu) + await e(false); +} +function Bu(t2, e) { + const n = F(t2); + n.fu.has(e.targetId) || (n.fu.set(e.targetId, e), Gu(n) ? Ku(n) : ac(n).No() && qu(n, e)); +} +function Lu(t2, e) { + const n = F(t2), s = ac(n); + n.fu.delete(e), s.No() && Uu(n, e), 0 === n.fu.size && (s.No() ? s.$o() : Qu(n) && n.mu.set("Unknown")); +} +function qu(t2, e) { + t2.gu.Ot(e.targetId), ac(t2).jo(e); +} +function Uu(t2, e) { + t2.gu.Ot(e), ac(t2).Wo(e); +} +function Ku(t2) { + t2.gu = new _i({ + getRemoteKeysForTarget: (e) => t2.remoteSyncer.getRemoteKeysForTarget(e), + ne: (e) => t2.fu.get(e) || null + }), ac(t2).start(), t2.mu.ou(); +} +function Gu(t2) { + return Qu(t2) && !ac(t2).xo() && t2.fu.size > 0; +} +function Qu(t2) { + return 0 === F(t2).du.size; +} +function zu(t2) { + t2.gu = void 0; +} +async function ju(t2) { + t2.fu.forEach((e, n) => { + qu(t2, e); + }); +} +async function Wu(t2, e) { + zu(t2), Gu(t2) ? (t2.mu.au(e), Ku(t2)) : t2.mu.set("Unknown"); +} +async function Hu(t2, e, n) { + if (t2.mu.set("Online"), e instanceof di && 2 === e.state && e.cause) + try { + await async function(t3, e2) { + const n2 = e2.cause; + for (const s of e2.targetIds) + t3.fu.has(s) && (await t3.remoteSyncer.rejectListen(s, n2), t3.fu.delete(s), t3.gu.removeTarget(s)); + }(t2, e); + } catch (n2) { + C("RemoteStore", "Failed to remove targets %s: %s ", e.targetIds.join(","), n2), await Ju(t2, n2); + } + else if (e instanceof li ? t2.gu.Kt(e) : e instanceof fi ? t2.gu.Jt(e) : t2.gu.zt(e), !n.isEqual(st.min())) + try { + const e2 = await Jo(t2.localStore); + n.compareTo(e2) >= 0 && await function(t3, e3) { + const n2 = t3.gu.Xt(e3); + return n2.targetChanges.forEach((n3, s) => { + if (n3.resumeToken.approximateByteSize() > 0) { + const i = t3.fu.get(s); + i && t3.fu.set(s, i.withResumeToken(n3.resumeToken, e3)); + } + }), n2.targetMismatches.forEach((e4) => { + const n3 = t3.fu.get(e4); + if (!n3) + return; + t3.fu.set(e4, n3.withResumeToken(be.EMPTY_BYTE_STRING, n3.snapshotVersion)), Uu(t3, e4); + const s = new tr(n3.target, e4, 1, n3.sequenceNumber); + qu(t3, s); + }), t3.remoteSyncer.applyRemoteEvent(n2); + }(t2, n); + } catch (e2) { + C("RemoteStore", "Failed to raise snapshot:", e2), await Ju(t2, e2); + } +} +async function Ju(t2, e, n) { + if (!Vt(e)) + throw e; + t2.du.add(1), await Fu(t2), t2.mu.set("Offline"), n || (n = () => Jo(t2.localStore)), t2.asyncQueue.enqueueRetryable(async () => { + C("RemoteStore", "Retrying IndexedDB access"), await n(), t2.du.delete(1), await Mu(t2); + }); +} +function Yu(t2, e) { + return e().catch((n) => Ju(t2, n, e)); +} +async function Zu(t2) { + const e = F(t2), n = hc(e); + let s = e.lu.length > 0 ? e.lu[e.lu.length - 1].batchId : -1; + for (; Xu(e); ) + try { + const t3 = await Xo(e.localStore, s); + if (null === t3) { + 0 === e.lu.length && n.$o(); + break; + } + s = t3.batchId, tc(e, t3); + } catch (t3) { + await Ju(e, t3); + } + ec(e) && nc(e); +} +function Xu(t2) { + return Qu(t2) && t2.lu.length < 10; +} +function tc(t2, e) { + t2.lu.push(e); + const n = hc(t2); + n.No() && n.Jo && n.Yo(e.mutations); +} +function ec(t2) { + return Qu(t2) && !hc(t2).xo() && t2.lu.length > 0; +} +function nc(t2) { + hc(t2).start(); +} +async function sc(t2) { + hc(t2).tu(); +} +async function ic(t2) { + const e = hc(t2); + for (const n of t2.lu) + e.Yo(n.mutations); +} +async function rc(t2, e, n) { + const s = t2.lu.shift(), i = Ys.from(s, e, n); + await Yu(t2, () => t2.remoteSyncer.applySuccessfulWrite(i)), await Zu(t2); +} +async function oc(t2, e) { + e && hc(t2).Jo && await async function(t3, e2) { + if (n = e2.code, ri(n) && n !== B.ABORTED) { + const n2 = t3.lu.shift(); + hc(t3).Oo(), await Yu(t3, () => t3.remoteSyncer.rejectFailedWrite(n2.batchId, e2)), await Zu(t3); + } + var n; + }(t2, e), ec(t2) && nc(t2); +} +async function uc(t2, e) { + const n = F(t2); + n.asyncQueue.verifyOperationInProgress(), C("RemoteStore", "RemoteStore received new credentials"); + const s = Qu(n); + n.du.add(3), await Fu(n), s && n.mu.set("Unknown"), await n.remoteSyncer.handleCredentialChange(e), n.du.delete(3), await Mu(n); +} +async function cc(t2, e) { + const n = F(t2); + e ? (n.du.delete(2), await Mu(n)) : e || (n.du.add(2), await Fu(n), n.mu.set("Unknown")); +} +function ac(t2) { + return t2.yu || (t2.yu = function(t3, e, n) { + const s = F(t3); + return s.nu(), new Cu(e, s.connection, s.authCredentials, s.appCheckCredentials, s.serializer, n); + }(t2.datastore, t2.asyncQueue, { + Jr: ju.bind(null, t2), + Zr: Wu.bind(null, t2), + zo: Hu.bind(null, t2) + }), t2.wu.push(async (e) => { + e ? (t2.yu.Oo(), Gu(t2) ? Ku(t2) : t2.mu.set("Unknown")) : (await t2.yu.stop(), zu(t2)); + })), t2.yu; +} +function hc(t2) { + return t2.pu || (t2.pu = function(t3, e, n) { + const s = F(t3); + return s.nu(), new xu(e, s.connection, s.authCredentials, s.appCheckCredentials, s.serializer, n); + }(t2.datastore, t2.asyncQueue, { + Jr: sc.bind(null, t2), + Zr: oc.bind(null, t2), + Xo: ic.bind(null, t2), + Zo: rc.bind(null, t2) + }), t2.wu.push(async (e) => { + e ? (t2.pu.Oo(), await Zu(t2)) : (await t2.pu.stop(), t2.lu.length > 0 && (C("RemoteStore", `Stopping write stream with ${t2.lu.length} pending writes`), t2.lu = [])); + })), t2.pu; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class lc { + constructor(t2, e, n, s, i) { + this.asyncQueue = t2, this.timerId = e, this.targetTimeMs = n, this.op = s, this.removalCallback = i, this.deferred = new q(), this.then = this.deferred.promise.then.bind(this.deferred.promise), this.deferred.promise.catch((t3) => { + }); + } + static createAndSchedule(t2, e, n, s, i) { + const r = Date.now() + n, o = new lc(t2, e, r, s, i); + return o.start(n), o; + } + start(t2) { + this.timerHandle = setTimeout(() => this.handleDelayElapsed(), t2); + } + skipDelay() { + return this.handleDelayElapsed(); + } + cancel(t2) { + null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new L(B.CANCELLED, "Operation cancelled" + (t2 ? ": " + t2 : "")))); + } + handleDelayElapsed() { + this.asyncQueue.enqueueAndForget(() => null !== this.timerHandle ? (this.clearTimeout(), this.op().then((t2) => this.deferred.resolve(t2))) : Promise.resolve()); + } + clearTimeout() { + null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), this.timerHandle = null); + } +} +function fc(t2, e) { + if (x("AsyncQueue", `${e}: ${t2}`), Vt(t2)) + return new L(B.UNAVAILABLE, `${e}: ${t2}`); + throw t2; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class dc { + constructor(t2) { + this.comparator = t2 ? (e, n) => t2(e, n) || ct.comparator(e.key, n.key) : (t3, e) => ct.comparator(t3.key, e.key), this.keyedMap = us(), this.sortedSet = new ge(this.comparator); + } + static emptySet(t2) { + return new dc(t2.comparator); + } + has(t2) { + return null != this.keyedMap.get(t2); + } + get(t2) { + return this.keyedMap.get(t2); + } + first() { + return this.sortedSet.minKey(); + } + last() { + return this.sortedSet.maxKey(); + } + isEmpty() { + return this.sortedSet.isEmpty(); + } + indexOf(t2) { + const e = this.keyedMap.get(t2); + return e ? this.sortedSet.indexOf(e) : -1; + } + get size() { + return this.sortedSet.size; + } + forEach(t2) { + this.sortedSet.inorderTraversal((e, n) => (t2(e), false)); + } + add(t2) { + const e = this.delete(t2.key); + return e.copy(e.keyedMap.insert(t2.key, t2), e.sortedSet.insert(t2, null)); + } + delete(t2) { + const e = this.get(t2); + return e ? this.copy(this.keyedMap.remove(t2), this.sortedSet.remove(e)) : this; + } + isEqual(t2) { + if (!(t2 instanceof dc)) + return false; + if (this.size !== t2.size) + return false; + const e = this.sortedSet.getIterator(), n = t2.sortedSet.getIterator(); + for (; e.hasNext(); ) { + const t3 = e.getNext().key, s = n.getNext().key; + if (!t3.isEqual(s)) + return false; + } + return true; + } + toString() { + const t2 = []; + return this.forEach((e) => { + t2.push(e.toString()); + }), 0 === t2.length ? "DocumentSet ()" : "DocumentSet (\n " + t2.join(" \n") + "\n)"; + } + copy(t2, e) { + const n = new dc(); + return n.comparator = this.comparator, n.keyedMap = t2, n.sortedSet = e, n; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class wc { + constructor() { + this.Iu = new ge(ct.comparator); + } + track(t2) { + const e = t2.doc.key, n = this.Iu.get(e); + n ? 0 !== t2.type && 3 === n.type ? this.Iu = this.Iu.insert(e, t2) : 3 === t2.type && 1 !== n.type ? this.Iu = this.Iu.insert(e, { + type: n.type, + doc: t2.doc + }) : 2 === t2.type && 2 === n.type ? this.Iu = this.Iu.insert(e, { + type: 2, + doc: t2.doc + }) : 2 === t2.type && 0 === n.type ? this.Iu = this.Iu.insert(e, { + type: 0, + doc: t2.doc + }) : 1 === t2.type && 0 === n.type ? this.Iu = this.Iu.remove(e) : 1 === t2.type && 2 === n.type ? this.Iu = this.Iu.insert(e, { + type: 1, + doc: n.doc + }) : 0 === t2.type && 1 === n.type ? this.Iu = this.Iu.insert(e, { + type: 2, + doc: t2.doc + }) : O() : this.Iu = this.Iu.insert(e, t2); + } + Tu() { + const t2 = []; + return this.Iu.inorderTraversal((e, n) => { + t2.push(n); + }), t2; + } +} +class _c { + constructor(t2, e, n, s, i, r, o, u, c) { + this.query = t2, this.docs = e, this.oldDocs = n, this.docChanges = s, this.mutatedKeys = i, this.fromCache = r, this.syncStateChanged = o, this.excludesMetadataChanges = u, this.hasCachedResults = c; + } + static fromInitialDocuments(t2, e, n, s, i) { + const r = []; + return e.forEach((t3) => { + r.push({ + type: 0, + doc: t3 + }); + }), new _c( + t2, + e, + dc.emptySet(e), + r, + n, + s, + true, + false, + i + ); + } + get hasPendingWrites() { + return !this.mutatedKeys.isEmpty(); + } + isEqual(t2) { + if (!(this.fromCache === t2.fromCache && this.hasCachedResults === t2.hasCachedResults && this.syncStateChanged === t2.syncStateChanged && this.mutatedKeys.isEqual(t2.mutatedKeys) && Jn(this.query, t2.query) && this.docs.isEqual(t2.docs) && this.oldDocs.isEqual(t2.oldDocs))) + return false; + const e = this.docChanges, n = t2.docChanges; + if (e.length !== n.length) + return false; + for (let t3 = 0; t3 < e.length; t3++) + if (e[t3].type !== n[t3].type || !e[t3].doc.isEqual(n[t3].doc)) + return false; + return true; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class mc { + constructor() { + this.Eu = void 0, this.listeners = []; + } +} +class gc { + constructor() { + this.queries = new ss((t2) => Yn(t2), Jn), this.onlineState = "Unknown", this.Au = /* @__PURE__ */ new Set(); + } +} +async function yc(t2, e) { + const n = F(t2), s = e.query; + let i = false, r = n.queries.get(s); + if (r || (i = true, r = new mc()), i) + try { + r.Eu = await n.onListen(s); + } catch (t3) { + const n2 = fc(t3, `Initialization of query '${Zn(e.query)}' failed`); + return void e.onError(n2); + } + if (n.queries.set(s, r), r.listeners.push(e), e.Ru(n.onlineState), r.Eu) { + e.vu(r.Eu) && Ec(n); + } +} +async function pc(t2, e) { + const n = F(t2), s = e.query; + let i = false; + const r = n.queries.get(s); + if (r) { + const t3 = r.listeners.indexOf(e); + t3 >= 0 && (r.listeners.splice(t3, 1), i = 0 === r.listeners.length); + } + if (i) + return n.queries.delete(s), n.onUnlisten(s); +} +function Ic(t2, e) { + const n = F(t2); + let s = false; + for (const t3 of e) { + const e2 = t3.query, i = n.queries.get(e2); + if (i) { + for (const e3 of i.listeners) + e3.vu(t3) && (s = true); + i.Eu = t3; + } + } + s && Ec(n); +} +function Tc(t2, e, n) { + const s = F(t2), i = s.queries.get(e); + if (i) + for (const t3 of i.listeners) + t3.onError(n); + s.queries.delete(e); +} +function Ec(t2) { + t2.Au.forEach((t3) => { + t3.next(); + }); +} +class Ac { + constructor(t2, e, n) { + this.query = t2, this.bu = e, this.Pu = false, this.Vu = null, this.onlineState = "Unknown", this.options = n || {}; + } + vu(t2) { + if (!this.options.includeMetadataChanges) { + const e2 = []; + for (const n of t2.docChanges) + 3 !== n.type && e2.push(n); + t2 = new _c( + t2.query, + t2.docs, + t2.oldDocs, + e2, + t2.mutatedKeys, + t2.fromCache, + t2.syncStateChanged, + true, + t2.hasCachedResults + ); + } + let e = false; + return this.Pu ? this.Su(t2) && (this.bu.next(t2), e = true) : this.Du(t2, this.onlineState) && (this.Cu(t2), e = true), this.Vu = t2, e; + } + onError(t2) { + this.bu.error(t2); + } + Ru(t2) { + this.onlineState = t2; + let e = false; + return this.Vu && !this.Pu && this.Du(this.Vu, t2) && (this.Cu(this.Vu), e = true), e; + } + Du(t2, e) { + if (!t2.fromCache) + return true; + const n = "Offline" !== e; + return (!this.options.xu || !n) && (!t2.docs.isEmpty() || t2.hasCachedResults || "Offline" === e); + } + Su(t2) { + if (t2.docChanges.length > 0) + return true; + const e = this.Vu && this.Vu.hasPendingWrites !== t2.hasPendingWrites; + return !(!t2.syncStateChanged && !e) && true === this.options.includeMetadataChanges; + } + Cu(t2) { + t2 = _c.fromInitialDocuments(t2.query, t2.docs, t2.mutatedKeys, t2.fromCache, t2.hasCachedResults), this.Pu = true, this.bu.next(t2); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Vc { + constructor(t2) { + this.key = t2; + } +} +class Sc { + constructor(t2) { + this.key = t2; + } +} +class Dc { + constructor(t2, e) { + this.query = t2, this.Lu = e, this.qu = null, this.hasCachedResults = false, this.current = false, this.Uu = ws(), this.mutatedKeys = ws(), this.Ku = es(t2), this.Gu = new dc(this.Ku); + } + get Qu() { + return this.Lu; + } + zu(t2, e) { + const n = e ? e.ju : new wc(), s = e ? e.Gu : this.Gu; + let i = e ? e.mutatedKeys : this.mutatedKeys, r = s, o = false; + const u = "F" === this.query.limitType && s.size === this.query.limit ? s.last() : null, c = "L" === this.query.limitType && s.size === this.query.limit ? s.first() : null; + if (t2.inorderTraversal((t3, e2) => { + const a = s.get(t3), h = Xn(this.query, e2) ? e2 : null, l2 = !!a && this.mutatedKeys.has(a.key), f = !!h && (h.hasLocalMutations || this.mutatedKeys.has(h.key) && h.hasCommittedMutations); + let d = false; + if (a && h) { + a.data.isEqual(h.data) ? l2 !== f && (n.track({ + type: 3, + doc: h + }), d = true) : this.Wu(a, h) || (n.track({ + type: 2, + doc: h + }), d = true, (u && this.Ku(h, u) > 0 || c && this.Ku(h, c) < 0) && (o = true)); + } else + !a && h ? (n.track({ + type: 0, + doc: h + }), d = true) : a && !h && (n.track({ + type: 1, + doc: a + }), d = true, (u || c) && (o = true)); + d && (h ? (r = r.add(h), i = f ? i.add(t3) : i.delete(t3)) : (r = r.delete(t3), i = i.delete(t3))); + }), null !== this.query.limit) + for (; r.size > this.query.limit; ) { + const t3 = "F" === this.query.limitType ? r.last() : r.first(); + r = r.delete(t3.key), i = i.delete(t3.key), n.track({ + type: 1, + doc: t3 + }); + } + return { + Gu: r, + ju: n, + Mi: o, + mutatedKeys: i + }; + } + Wu(t2, e) { + return t2.hasLocalMutations && e.hasCommittedMutations && !e.hasLocalMutations; + } + applyChanges(t2, e, n) { + const s = this.Gu; + this.Gu = t2.Gu, this.mutatedKeys = t2.mutatedKeys; + const i = t2.ju.Tu(); + i.sort((t3, e2) => function(t4, e3) { + const n2 = (t5) => { + switch (t5) { + case 0: + return 1; + case 2: + case 3: + return 2; + case 1: + return 0; + default: + return O(); + } + }; + return n2(t4) - n2(e3); + }(t3.type, e2.type) || this.Ku(t3.doc, e2.doc)), this.Hu(n); + const r = e ? this.Ju() : [], o = 0 === this.Uu.size && this.current ? 1 : 0, u = o !== this.qu; + if (this.qu = o, 0 !== i.length || u) { + return { + snapshot: new _c( + this.query, + t2.Gu, + s, + i, + t2.mutatedKeys, + 0 === o, + u, + false, + !!n && n.resumeToken.approximateByteSize() > 0 + ), + Yu: r + }; + } + return { + Yu: r + }; + } + Ru(t2) { + return this.current && "Offline" === t2 ? (this.current = false, this.applyChanges( + { + Gu: this.Gu, + ju: new wc(), + mutatedKeys: this.mutatedKeys, + Mi: false + }, + false + )) : { + Yu: [] + }; + } + Zu(t2) { + return !this.Lu.has(t2) && (!!this.Gu.has(t2) && !this.Gu.get(t2).hasLocalMutations); + } + Hu(t2) { + t2 && (t2.addedDocuments.forEach((t3) => this.Lu = this.Lu.add(t3)), t2.modifiedDocuments.forEach((t3) => { + }), t2.removedDocuments.forEach((t3) => this.Lu = this.Lu.delete(t3)), this.current = t2.current); + } + Ju() { + if (!this.current) + return []; + const t2 = this.Uu; + this.Uu = ws(), this.Gu.forEach((t3) => { + this.Zu(t3.key) && (this.Uu = this.Uu.add(t3.key)); + }); + const e = []; + return t2.forEach((t3) => { + this.Uu.has(t3) || e.push(new Sc(t3)); + }), this.Uu.forEach((n) => { + t2.has(n) || e.push(new Vc(n)); + }), e; + } + Xu(t2) { + this.Lu = t2.Wi, this.Uu = ws(); + const e = this.zu(t2.documents); + return this.applyChanges(e, true); + } + tc() { + return _c.fromInitialDocuments(this.query, this.Gu, this.mutatedKeys, 0 === this.qu, this.hasCachedResults); + } +} +class Cc { + constructor(t2, e, n) { + this.query = t2, this.targetId = e, this.view = n; + } +} +class xc { + constructor(t2) { + this.key = t2, this.ec = false; + } +} +class Nc { + constructor(t2, e, n, s, i, r) { + this.localStore = t2, this.remoteStore = e, this.eventManager = n, this.sharedClientState = s, this.currentUser = i, this.maxConcurrentLimboResolutions = r, this.nc = {}, this.sc = new ss((t3) => Yn(t3), Jn), this.ic = /* @__PURE__ */ new Map(), this.rc = /* @__PURE__ */ new Set(), this.oc = new ge(ct.comparator), this.uc = /* @__PURE__ */ new Map(), this.cc = new Vo(), this.ac = {}, this.hc = /* @__PURE__ */ new Map(), this.lc = so.bn(), this.onlineState = "Unknown", this.fc = void 0; + } + get isPrimaryClient() { + return true === this.fc; + } +} +async function kc(t2, e) { + const n = aa(t2); + let s, i; + const r = n.sc.get(e); + if (r) + s = r.targetId, n.sharedClientState.addLocalQueryTarget(s), i = r.view.tc(); + else { + const t3 = await tu(n.localStore, jn(e)); + n.isPrimaryClient && Bu(n.remoteStore, t3); + const r2 = n.sharedClientState.addLocalQueryTarget(t3.targetId); + s = t3.targetId, i = await Oc(n, e, s, "current" === r2, t3.resumeToken); + } + return i; +} +async function Oc(t2, e, n, s, i) { + t2.dc = (e2, n2, s2) => async function(t3, e3, n3, s3) { + let i2 = e3.view.zu(n3); + i2.Mi && (i2 = await nu( + t3.localStore, + e3.query, + false + ).then(({ documents: t4 }) => e3.view.zu(t4, i2))); + const r2 = s3 && s3.targetChanges.get(e3.targetId), o2 = e3.view.applyChanges( + i2, + t3.isPrimaryClient, + r2 + ); + return Wc(t3, e3.targetId, o2.Yu), o2.snapshot; + }(t2, e2, n2, s2); + const r = await nu( + t2.localStore, + e, + true + ), o = new Dc(e, r.Wi), u = o.zu(r.documents), c = hi.createSynthesizedTargetChangeForCurrentChange(n, s && "Offline" !== t2.onlineState, i), a = o.applyChanges( + u, + t2.isPrimaryClient, + c + ); + Wc(t2, n, a.Yu); + const h = new Cc(e, n, o); + return t2.sc.set(e, h), t2.ic.has(n) ? t2.ic.get(n).push(e) : t2.ic.set(n, [e]), a.snapshot; +} +async function $c(t2, e) { + const n = F(t2), s = n.sc.get(e), i = n.ic.get(s.targetId); + if (i.length > 1) + return n.ic.set(s.targetId, i.filter((t3) => !Jn(t3, e))), void n.sc.delete(e); + if (n.isPrimaryClient) { + n.sharedClientState.removeLocalQueryTarget(s.targetId); + n.sharedClientState.isActiveQueryTarget(s.targetId) || await eu( + n.localStore, + s.targetId, + false + ).then(() => { + n.sharedClientState.clearQueryState(s.targetId), Lu(n.remoteStore, s.targetId), zc(n, s.targetId); + }).catch(Et); + } else + zc(n, s.targetId), await eu( + n.localStore, + s.targetId, + true + ); +} +async function Mc(t2, e, n) { + const s = ha(t2); + try { + const t3 = await function(t4, e2) { + const n2 = F(t4), s2 = nt.now(), i = e2.reduce((t5, e3) => t5.add(e3.key), ws()); + let r, o; + return n2.persistence.runTransaction("Locally write mutations", "readwrite", (t5) => { + let u = rs(), c = ws(); + return n2.Ki.getEntries(t5, i).next((t6) => { + u = t6, u.forEach((t7, e3) => { + e3.isValidDocument() || (c = c.add(t7)); + }); + }).next(() => n2.localDocuments.getOverlayedDocuments(t5, u)).next((i2) => { + r = i2; + const o2 = []; + for (const t6 of e2) { + const e3 = qs(t6, r.get(t6.key).overlayedDocument); + null != e3 && o2.push(new Gs(t6.key, e3, rn(e3.value.mapValue), Os.exists(true))); + } + return n2.mutationQueue.addMutationBatch(t5, s2, o2, e2); + }).next((e3) => { + o = e3; + const s3 = e3.applyToLocalDocumentSet(r, c); + return n2.documentOverlayCache.saveOverlays(t5, e3.batchId, s3); + }); + }).then(() => ({ + batchId: o.batchId, + changes: cs(r) + })); + }(s.localStore, e); + s.sharedClientState.addPendingMutation(t3.batchId), function(t4, e2, n2) { + let s2 = t4.ac[t4.currentUser.toKey()]; + s2 || (s2 = new ge(X)); + s2 = s2.insert(e2, n2), t4.ac[t4.currentUser.toKey()] = s2; + }(s, t3.batchId, n), await Yc(s, t3.changes), await Zu(s.remoteStore); + } catch (t3) { + const e2 = fc(t3, "Failed to persist write"); + n.reject(e2); + } +} +async function Fc(t2, e) { + const n = F(t2); + try { + const t3 = await Yo(n.localStore, e); + e.targetChanges.forEach((t4, e2) => { + const s = n.uc.get(e2); + s && ($(t4.addedDocuments.size + t4.modifiedDocuments.size + t4.removedDocuments.size <= 1), t4.addedDocuments.size > 0 ? s.ec = true : t4.modifiedDocuments.size > 0 ? $(s.ec) : t4.removedDocuments.size > 0 && ($(s.ec), s.ec = false)); + }), await Yc(n, t3, e); + } catch (t3) { + await Et(t3); + } +} +function Bc(t2, e, n) { + const s = F(t2); + if (s.isPrimaryClient && 0 === n || !s.isPrimaryClient && 1 === n) { + const t3 = []; + s.sc.forEach((n2, s2) => { + const i = s2.view.Ru(e); + i.snapshot && t3.push(i.snapshot); + }), function(t4, e2) { + const n2 = F(t4); + n2.onlineState = e2; + let s2 = false; + n2.queries.forEach((t5, n3) => { + for (const t6 of n3.listeners) + t6.Ru(e2) && (s2 = true); + }), s2 && Ec(n2); + }(s.eventManager, e), t3.length && s.nc.zo(t3), s.onlineState = e, s.isPrimaryClient && s.sharedClientState.setOnlineState(e); + } +} +async function Lc(t2, e, n) { + const s = F(t2); + s.sharedClientState.updateQueryState(e, "rejected", n); + const i = s.uc.get(e), r = i && i.key; + if (r) { + let t3 = new ge(ct.comparator); + t3 = t3.insert(r, on.newNoDocument(r, st.min())); + const n2 = ws().add(r), i2 = new ai( + st.min(), + /* @__PURE__ */ new Map(), + new Ie(X), + t3, + n2 + ); + await Fc(s, i2), s.oc = s.oc.remove(r), s.uc.delete(e), Jc(s); + } else + await eu( + s.localStore, + e, + false + ).then(() => zc(s, e, n)).catch(Et); +} +async function qc(t2, e) { + const n = F(t2), s = e.batch.batchId; + try { + const t3 = await Ho(n.localStore, e); + Qc(n, s, null), Gc(n, s), n.sharedClientState.updateMutationState(s, "acknowledged"), await Yc(n, t3); + } catch (t3) { + await Et(t3); + } +} +async function Uc(t2, e, n) { + const s = F(t2); + try { + const t3 = await function(t4, e2) { + const n2 = F(t4); + return n2.persistence.runTransaction("Reject batch", "readwrite-primary", (t5) => { + let s2; + return n2.mutationQueue.lookupMutationBatch(t5, e2).next((e3) => ($(null !== e3), s2 = e3.keys(), n2.mutationQueue.removeMutationBatch(t5, e3))).next(() => n2.mutationQueue.performConsistencyCheck(t5)).next(() => n2.documentOverlayCache.removeOverlaysForBatchId(t5, s2, e2)).next(() => n2.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t5, s2)).next(() => n2.localDocuments.getDocuments(t5, s2)); + }); + }(s.localStore, e); + Qc(s, e, n), Gc(s, e), s.sharedClientState.updateMutationState(e, "rejected", n), await Yc(s, t3); + } catch (n2) { + await Et(n2); + } +} +function Gc(t2, e) { + (t2.hc.get(e) || []).forEach((t3) => { + t3.resolve(); + }), t2.hc.delete(e); +} +function Qc(t2, e, n) { + const s = F(t2); + let i = s.ac[s.currentUser.toKey()]; + if (i) { + const t3 = i.get(e); + t3 && (n ? t3.reject(n) : t3.resolve(), i = i.remove(e)), s.ac[s.currentUser.toKey()] = i; + } +} +function zc(t2, e, n = null) { + t2.sharedClientState.removeLocalQueryTarget(e); + for (const s of t2.ic.get(e)) + t2.sc.delete(s), n && t2.nc.wc(s, n); + if (t2.ic.delete(e), t2.isPrimaryClient) { + t2.cc.hs(e).forEach((e2) => { + t2.cc.containsKey(e2) || jc(t2, e2); + }); + } +} +function jc(t2, e) { + t2.rc.delete(e.path.canonicalString()); + const n = t2.oc.get(e); + null !== n && (Lu(t2.remoteStore, n), t2.oc = t2.oc.remove(e), t2.uc.delete(n), Jc(t2)); +} +function Wc(t2, e, n) { + for (const s of n) + if (s instanceof Vc) + t2.cc.addReference(s.key, e), Hc(t2, s); + else if (s instanceof Sc) { + C("SyncEngine", "Document no longer in limbo: " + s.key), t2.cc.removeReference(s.key, e); + t2.cc.containsKey(s.key) || jc(t2, s.key); + } else + O(); +} +function Hc(t2, e) { + const n = e.key, s = n.path.canonicalString(); + t2.oc.get(n) || t2.rc.has(s) || (C("SyncEngine", "New document in limbo: " + n), t2.rc.add(s), Jc(t2)); +} +function Jc(t2) { + for (; t2.rc.size > 0 && t2.oc.size < t2.maxConcurrentLimboResolutions; ) { + const e = t2.rc.values().next().value; + t2.rc.delete(e); + const n = new ct(rt.fromString(e)), s = t2.lc.next(); + t2.uc.set(s, new xc(n)), t2.oc = t2.oc.insert(n, s), Bu(t2.remoteStore, new tr(jn(qn(n.path)), s, 2, Ot.ct)); + } +} +async function Yc(t2, e, n) { + const s = F(t2), i = [], r = [], o = []; + s.sc.isEmpty() || (s.sc.forEach((t3, u) => { + o.push(s.dc(u, e, n).then((t4) => { + if ((t4 || n) && s.isPrimaryClient && s.sharedClientState.updateQueryState(u.targetId, (null == t4 ? void 0 : t4.fromCache) ? "not-current" : "current"), t4) { + i.push(t4); + const e2 = Go.Di(u.targetId, t4); + r.push(e2); + } + })); + }), await Promise.all(o), s.nc.zo(i), await async function(t3, e2) { + const n2 = F(t3); + try { + await n2.persistence.runTransaction("notifyLocalViewChanges", "readwrite", (t4) => At.forEach(e2, (e3) => At.forEach(e3.Vi, (s2) => n2.persistence.referenceDelegate.addReference(t4, e3.targetId, s2)).next(() => At.forEach(e3.Si, (s2) => n2.persistence.referenceDelegate.removeReference(t4, e3.targetId, s2))))); + } catch (t4) { + if (!Vt(t4)) + throw t4; + C("LocalStore", "Failed to update sequence numbers: " + t4); + } + for (const t4 of e2) { + const e3 = t4.targetId; + if (!t4.fromCache) { + const t5 = n2.Li.get(e3), s2 = t5.snapshotVersion, i2 = t5.withLastLimboFreeSnapshotVersion(s2); + n2.Li = n2.Li.insert(e3, i2); + } + } + }(s.localStore, r)); +} +async function Zc(t2, e) { + const n = F(t2); + if (!n.currentUser.isEqual(e)) { + C("SyncEngine", "User change. New user:", e.toKey()); + const t3 = await Wo(n.localStore, e); + n.currentUser = e, function(t4, e2) { + t4.hc.forEach((t5) => { + t5.forEach((t6) => { + t6.reject(new L(B.CANCELLED, e2)); + }); + }), t4.hc.clear(); + }(n, "'waitForPendingWrites' promise is rejected due to a user change."), n.sharedClientState.handleUserChange(e, t3.removedBatchIds, t3.addedBatchIds), await Yc(n, t3.Qi); + } +} +function Xc(t2, e) { + const n = F(t2), s = n.uc.get(e); + if (s && s.ec) + return ws().add(s.key); + { + let t3 = ws(); + const s2 = n.ic.get(e); + if (!s2) + return t3; + for (const e2 of s2) { + const s3 = n.sc.get(e2); + t3 = t3.unionWith(s3.view.Qu); + } + return t3; + } +} +function aa(t2) { + const e = F(t2); + return e.remoteStore.remoteSyncer.applyRemoteEvent = Fc.bind(null, e), e.remoteStore.remoteSyncer.getRemoteKeysForTarget = Xc.bind(null, e), e.remoteStore.remoteSyncer.rejectListen = Lc.bind(null, e), e.nc.zo = Ic.bind(null, e.eventManager), e.nc.wc = Tc.bind(null, e.eventManager), e; +} +function ha(t2) { + const e = F(t2); + return e.remoteStore.remoteSyncer.applySuccessfulWrite = qc.bind(null, e), e.remoteStore.remoteSyncer.rejectFailedWrite = Uc.bind(null, e), e; +} +class fa { + constructor() { + this.synchronizeTabs = false; + } + async initialize(t2) { + this.serializer = Vu(t2.databaseInfo.databaseId), this.sharedClientState = this.createSharedClientState(t2), this.persistence = this.createPersistence(t2), await this.persistence.start(), this.localStore = this.createLocalStore(t2), this.gcScheduler = this.createGarbageCollectionScheduler(t2, this.localStore), this.indexBackfillerScheduler = this.createIndexBackfillerScheduler(t2, this.localStore); + } + createGarbageCollectionScheduler(t2, e) { + return null; + } + createIndexBackfillerScheduler(t2, e) { + return null; + } + createLocalStore(t2) { + return jo(this.persistence, new Qo(), t2.initialUser, this.serializer); + } + createPersistence(t2) { + return new ko($o.Fs, this.serializer); + } + createSharedClientState(t2) { + return new gu(); + } + async terminate() { + this.gcScheduler && this.gcScheduler.stop(), await this.sharedClientState.shutdown(), await this.persistence.shutdown(); + } +} +class _a { + async initialize(t2, e) { + this.localStore || (this.localStore = t2.localStore, this.sharedClientState = t2.sharedClientState, this.datastore = this.createDatastore(e), this.remoteStore = this.createRemoteStore(e), this.eventManager = this.createEventManager(e), this.syncEngine = this.createSyncEngine( + e, + !t2.synchronizeTabs + ), this.sharedClientState.onlineStateHandler = (t3) => Bc(this.syncEngine, t3, 1), this.remoteStore.remoteSyncer.handleCredentialChange = Zc.bind(null, this.syncEngine), await cc(this.remoteStore, this.syncEngine.isPrimaryClient)); + } + createEventManager(t2) { + return new gc(); + } + createDatastore(t2) { + const e = Vu(t2.databaseInfo.databaseId), n = (s = t2.databaseInfo, new vu(s)); + var s; + return function(t3, e2, n2, s2) { + return new Nu(t3, e2, n2, s2); + }(t2.authCredentials, t2.appCheckCredentials, n, e); + } + createRemoteStore(t2) { + return e = this.localStore, n = this.datastore, s = t2.asyncQueue, i = (t3) => Bc(this.syncEngine, t3, 0), r = pu.D() ? new pu() : new yu(), new $u(e, n, s, i, r); + var e, n, s, i, r; + } + createSyncEngine(t2, e) { + return function(t3, e2, n, s, i, r, o) { + const u = new Nc(t3, e2, n, s, i, r); + return o && (u.fc = true), u; + }(this.localStore, this.remoteStore, this.eventManager, this.sharedClientState, t2.initialUser, t2.maxConcurrentLimboResolutions, e); + } + terminate() { + return async function(t2) { + const e = F(t2); + C("RemoteStore", "RemoteStore shutting down."), e.du.add(5), await Fu(e), e._u.shutdown(), e.mu.set("Unknown"); + }(this.remoteStore); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ga { + constructor(t2) { + this.observer = t2, this.muted = false; + } + next(t2) { + this.observer.next && this.gc(this.observer.next, t2); + } + error(t2) { + this.observer.error ? this.gc(this.observer.error, t2) : x("Uncaught Error in snapshot listener:", t2.toString()); + } + yc() { + this.muted = true; + } + gc(t2, e) { + this.muted || setTimeout(() => { + this.muted || t2(e); + }, 0); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ta { + constructor(t2, e, n, s) { + this.authCredentials = t2, this.appCheckCredentials = e, this.asyncQueue = n, this.databaseInfo = s, this.user = b.UNAUTHENTICATED, this.clientId = Z.A(), this.authCredentialListener = () => Promise.resolve(), this.appCheckCredentialListener = () => Promise.resolve(), this.authCredentials.start(n, async (t3) => { + C("FirestoreClient", "Received user=", t3.uid), await this.authCredentialListener(t3), this.user = t3; + }), this.appCheckCredentials.start(n, (t3) => (C("FirestoreClient", "Received new app check token=", t3), this.appCheckCredentialListener(t3, this.user))); + } + async getConfiguration() { + return { + asyncQueue: this.asyncQueue, + databaseInfo: this.databaseInfo, + clientId: this.clientId, + authCredentials: this.authCredentials, + appCheckCredentials: this.appCheckCredentials, + initialUser: this.user, + maxConcurrentLimboResolutions: 100 + }; + } + setCredentialChangeListener(t2) { + this.authCredentialListener = t2; + } + setAppCheckTokenChangeListener(t2) { + this.appCheckCredentialListener = t2; + } + verifyNotTerminated() { + if (this.asyncQueue.isShuttingDown) + throw new L(B.FAILED_PRECONDITION, "The client has already been terminated."); + } + terminate() { + this.asyncQueue.enterRestrictedMode(); + const t2 = new q(); + return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async () => { + try { + this._onlineComponents && await this._onlineComponents.terminate(), this._offlineComponents && await this._offlineComponents.terminate(), this.authCredentials.shutdown(), this.appCheckCredentials.shutdown(), t2.resolve(); + } catch (e) { + const n = fc(e, "Failed to shutdown persistence"); + t2.reject(n); + } + }), t2.promise; + } +} +async function Ea(t2, e) { + t2.asyncQueue.verifyOperationInProgress(), C("FirestoreClient", "Initializing OfflineComponentProvider"); + const n = await t2.getConfiguration(); + await e.initialize(n); + let s = n.initialUser; + t2.setCredentialChangeListener(async (t3) => { + s.isEqual(t3) || (await Wo(e.localStore, t3), s = t3); + }), e.persistence.setDatabaseDeletedListener(() => t2.terminate()), t2._offlineComponents = e; +} +async function Aa(t2, e) { + t2.asyncQueue.verifyOperationInProgress(); + const n = await va(t2); + C("FirestoreClient", "Initializing OnlineComponentProvider"); + const s = await t2.getConfiguration(); + await e.initialize(n, s), t2.setCredentialChangeListener((t3) => uc(e.remoteStore, t3)), t2.setAppCheckTokenChangeListener((t3, n2) => uc(e.remoteStore, n2)), t2._onlineComponents = e; +} +function Ra(t2) { + return "FirebaseError" === t2.name ? t2.code === B.FAILED_PRECONDITION || t2.code === B.UNIMPLEMENTED : !("undefined" != typeof DOMException && t2 instanceof DOMException) || (22 === t2.code || 20 === t2.code || 11 === t2.code); +} +async function va(t2) { + if (!t2._offlineComponents) + if (t2._uninitializedComponentsProvider) { + C("FirestoreClient", "Using user provided OfflineComponentProvider"); + try { + await Ea(t2, t2._uninitializedComponentsProvider._offline); + } catch (e) { + const n = e; + if (!Ra(n)) + throw n; + N("Error using user provided cache. Falling back to memory cache: " + n), await Ea(t2, new fa()); + } + } else + C("FirestoreClient", "Using default OfflineComponentProvider"), await Ea(t2, new fa()); + return t2._offlineComponents; +} +async function ba(t2) { + return t2._onlineComponents || (t2._uninitializedComponentsProvider ? (C("FirestoreClient", "Using user provided OnlineComponentProvider"), await Aa(t2, t2._uninitializedComponentsProvider._online)) : (C("FirestoreClient", "Using default OnlineComponentProvider"), await Aa(t2, new _a()))), t2._onlineComponents; +} +function Da(t2) { + return ba(t2).then((t3) => t3.syncEngine); +} +async function xa(t2) { + const e = await ba(t2), n = e.eventManager; + return n.onListen = kc.bind(null, e.syncEngine), n.onUnlisten = $c.bind(null, e.syncEngine), n; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Ka = /* @__PURE__ */ new Map(); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ga(t2, e, n) { + if (!n) + throw new L(B.INVALID_ARGUMENT, `Function ${t2}() cannot be called with an empty ${e}.`); +} +function Qa(t2, e, n, s) { + if (true === e && true === s) + throw new L(B.INVALID_ARGUMENT, `${t2} and ${n} cannot be used together.`); +} +function za(t2) { + if (!ct.isDocumentKey(t2)) + throw new L(B.INVALID_ARGUMENT, `Invalid document reference. Document references must have an even number of segments, but ${t2} has ${t2.length}.`); +} +function ja(t2) { + if (ct.isDocumentKey(t2)) + throw new L(B.INVALID_ARGUMENT, `Invalid collection reference. Collection references must have an odd number of segments, but ${t2} has ${t2.length}.`); +} +function Wa(t2) { + if (void 0 === t2) + return "undefined"; + if (null === t2) + return "null"; + if ("string" == typeof t2) + return t2.length > 20 && (t2 = `${t2.substring(0, 20)}...`), JSON.stringify(t2); + if ("number" == typeof t2 || "boolean" == typeof t2) + return "" + t2; + if ("object" == typeof t2) { + if (t2 instanceof Array) + return "an array"; + { + const e = function(t3) { + if (t3.constructor) + return t3.constructor.name; + return null; + }(t2); + return e ? `a custom ${e} object` : "an object"; + } + } + return "function" == typeof t2 ? "a function" : O(); +} +function Ha(t2, e) { + if ("_delegate" in t2 && (t2 = t2._delegate), !(t2 instanceof e)) { + if (e.name === t2.constructor.name) + throw new L(B.INVALID_ARGUMENT, "Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?"); + { + const n = Wa(t2); + throw new L(B.INVALID_ARGUMENT, `Expected type '${e.name}', but it was: ${n}`); + } + } + return t2; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ya { + constructor(t2) { + var e; + if (void 0 === t2.host) { + if (void 0 !== t2.ssl) + throw new L(B.INVALID_ARGUMENT, "Can't provide ssl option if host option is not set"); + this.host = "firestore.googleapis.com", this.ssl = true; + } else + this.host = t2.host, this.ssl = null === (e = t2.ssl) || void 0 === e || e; + if (this.credentials = t2.credentials, this.ignoreUndefinedProperties = !!t2.ignoreUndefinedProperties, this.cache = t2.localCache, void 0 === t2.cacheSizeBytes) + this.cacheSizeBytes = 41943040; + else { + if (-1 !== t2.cacheSizeBytes && t2.cacheSizeBytes < 1048576) + throw new L(B.INVALID_ARGUMENT, "cacheSizeBytes must be at least 1048576"); + this.cacheSizeBytes = t2.cacheSizeBytes; + } + this.experimentalForceLongPolling = !!t2.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t2.experimentalAutoDetectLongPolling, this.useFetchStreams = !!t2.useFetchStreams, Qa("experimentalForceLongPolling", t2.experimentalForceLongPolling, "experimentalAutoDetectLongPolling", t2.experimentalAutoDetectLongPolling); + } + isEqual(t2) { + return this.host === t2.host && this.ssl === t2.ssl && this.credentials === t2.credentials && this.cacheSizeBytes === t2.cacheSizeBytes && this.experimentalForceLongPolling === t2.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t2.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t2.ignoreUndefinedProperties && this.useFetchStreams === t2.useFetchStreams; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Za { + constructor(t2, e, n, s) { + this._authCredentials = t2, this._appCheckCredentials = e, this._databaseId = n, this._app = s, this.type = "firestore-lite", this._persistenceKey = "(lite)", this._settings = new Ya({}), this._settingsFrozen = false; + } + get app() { + if (!this._app) + throw new L(B.FAILED_PRECONDITION, "Firestore was not initialized using the Firebase SDK. 'app' is not available"); + return this._app; + } + get _initialized() { + return this._settingsFrozen; + } + get _terminated() { + return void 0 !== this._terminateTask; + } + _setSettings(t2) { + if (this._settingsFrozen) + throw new L(B.FAILED_PRECONDITION, "Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object."); + this._settings = new Ya(t2), void 0 !== t2.credentials && (this._authCredentials = function(t3) { + if (!t3) + return new K(); + switch (t3.type) { + case "firstParty": + return new j(t3.sessionIndex || "0", t3.iamToken || null, t3.authTokenFactory || null); + case "provider": + return t3.client; + default: + throw new L(B.INVALID_ARGUMENT, "makeAuthCredentialsProvider failed due to invalid credential type"); + } + }(t2.credentials)); + } + _getSettings() { + return this._settings; + } + _freezeSettings() { + return this._settingsFrozen = true, this._settings; + } + _delete() { + return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask; + } + toJSON() { + return { + app: this._app, + databaseId: this._databaseId, + settings: this._settings + }; + } + _terminate() { + return function(t2) { + const e = Ka.get(t2); + e && (C("ComponentProvider", "Removing Datastore"), Ka.delete(t2), e.terminate()); + }(this), Promise.resolve(); + } +} +function Xa(t2, e, n, s = {}) { + var i; + const r = (t2 = Ha(t2, Za))._getSettings(); + if ("firestore.googleapis.com" !== r.host && r.host !== e && N("Host has been set in both settings() and useEmulator(), emulator host will be used"), t2._setSettings(Object.assign(Object.assign({}, r), { + host: `${e}:${n}`, + ssl: false + })), s.mockUserToken) { + let e2, n2; + if ("string" == typeof s.mockUserToken) + e2 = s.mockUserToken, n2 = b.MOCK_USER; + else { + e2 = createMockUserToken(s.mockUserToken, null === (i = t2._app) || void 0 === i ? void 0 : i.options.projectId); + const r2 = s.mockUserToken.sub || s.mockUserToken.user_id; + if (!r2) + throw new L(B.INVALID_ARGUMENT, "mockUserToken must contain 'sub' or 'user_id' field!"); + n2 = new b(r2); + } + t2._authCredentials = new G(new U(e2, n2)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class th { + constructor(t2, e, n) { + this.converter = e, this._key = n, this.type = "document", this.firestore = t2; + } + get _path() { + return this._key.path; + } + get id() { + return this._key.path.lastSegment(); + } + get path() { + return this._key.path.canonicalString(); + } + get parent() { + return new nh(this.firestore, this.converter, this._key.path.popLast()); + } + withConverter(t2) { + return new th(this.firestore, t2, this._key); + } +} +class eh { + constructor(t2, e, n) { + this.converter = e, this._query = n, this.type = "query", this.firestore = t2; + } + withConverter(t2) { + return new eh(this.firestore, t2, this._query); + } +} +class nh extends eh { + constructor(t2, e, n) { + super(t2, e, qn(n)), this._path = n, this.type = "collection"; + } + get id() { + return this._query.path.lastSegment(); + } + get path() { + return this._query.path.canonicalString(); + } + get parent() { + const t2 = this._path.popLast(); + return t2.isEmpty() ? null : new th( + this.firestore, + null, + new ct(t2) + ); + } + withConverter(t2) { + return new nh(this.firestore, t2, this._path); + } +} +function sh(t2, e, ...n) { + if (t2 = getModularInstance(t2), Ga("collection", "path", e), t2 instanceof Za) { + const s = rt.fromString(e, ...n); + return ja(s), new nh(t2, null, s); + } + { + if (!(t2 instanceof th || t2 instanceof nh)) + throw new L(B.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore"); + const s = t2._path.child(rt.fromString(e, ...n)); + return ja(s), new nh( + t2.firestore, + null, + s + ); + } +} +function rh(t2, e, ...n) { + if (t2 = getModularInstance(t2), 1 === arguments.length && (e = Z.A()), Ga("doc", "path", e), t2 instanceof Za) { + const s = rt.fromString(e, ...n); + return za(s), new th( + t2, + null, + new ct(s) + ); + } + { + if (!(t2 instanceof th || t2 instanceof nh)) + throw new L(B.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore"); + const s = t2._path.child(rt.fromString(e, ...n)); + return za(s), new th(t2.firestore, t2 instanceof nh ? t2.converter : null, new ct(s)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ch { + constructor() { + this.Nc = Promise.resolve(), this.kc = [], this.Oc = false, this.$c = [], this.Mc = null, this.Fc = false, this.Bc = false, this.Lc = [], this.Co = new Su(this, "async_queue_retry"), this.qc = () => { + const t3 = Pu(); + t3 && C("AsyncQueue", "Visibility state changed to " + t3.visibilityState), this.Co.vo(); + }; + const t2 = Pu(); + t2 && "function" == typeof t2.addEventListener && t2.addEventListener("visibilitychange", this.qc); + } + get isShuttingDown() { + return this.Oc; + } + enqueueAndForget(t2) { + this.enqueue(t2); + } + enqueueAndForgetEvenWhileRestricted(t2) { + this.Uc(), this.Kc(t2); + } + enterRestrictedMode(t2) { + if (!this.Oc) { + this.Oc = true, this.Bc = t2 || false; + const e = Pu(); + e && "function" == typeof e.removeEventListener && e.removeEventListener("visibilitychange", this.qc); + } + } + enqueue(t2) { + if (this.Uc(), this.Oc) + return new Promise(() => { + }); + const e = new q(); + return this.Kc(() => this.Oc && this.Bc ? Promise.resolve() : (t2().then(e.resolve, e.reject), e.promise)).then(() => e.promise); + } + enqueueRetryable(t2) { + this.enqueueAndForget(() => (this.kc.push(t2), this.Gc())); + } + async Gc() { + if (0 !== this.kc.length) { + try { + await this.kc[0](), this.kc.shift(), this.Co.reset(); + } catch (t2) { + if (!Vt(t2)) + throw t2; + C("AsyncQueue", "Operation failed with retryable error: " + t2); + } + this.kc.length > 0 && this.Co.Ao(() => this.Gc()); + } + } + Kc(t2) { + const e = this.Nc.then(() => (this.Fc = true, t2().catch((t3) => { + this.Mc = t3, this.Fc = false; + const e2 = function(t4) { + let e3 = t4.message || ""; + t4.stack && (e3 = t4.stack.includes(t4.message) ? t4.stack : t4.message + "\n" + t4.stack); + return e3; + }(t3); + throw x("INTERNAL UNHANDLED ERROR: ", e2), t3; + }).then((t3) => (this.Fc = false, t3)))); + return this.Nc = e, e; + } + enqueueAfterDelay(t2, e, n) { + this.Uc(), this.Lc.indexOf(t2) > -1 && (e = 0); + const s = lc.createAndSchedule(this, t2, e, n, (t3) => this.Qc(t3)); + return this.$c.push(s), s; + } + Uc() { + this.Mc && O(); + } + verifyOperationInProgress() { + } + async zc() { + let t2; + do { + t2 = this.Nc, await t2; + } while (t2 !== this.Nc); + } + jc(t2) { + for (const e of this.$c) + if (e.timerId === t2) + return true; + return false; + } + Wc(t2) { + return this.zc().then(() => { + this.$c.sort((t3, e) => t3.targetTimeMs - e.targetTimeMs); + for (const e of this.$c) + if (e.skipDelay(), "all" !== t2 && e.timerId === t2) + break; + return this.zc(); + }); + } + Hc(t2) { + this.Lc.push(t2); + } + Qc(t2) { + const e = this.$c.indexOf(t2); + this.$c.splice(e, 1); + } +} +function ah(t2) { + return function(t3, e) { + if ("object" != typeof t3 || null === t3) + return false; + const n = t3; + for (const t4 of e) + if (t4 in n && "function" == typeof n[t4]) + return true; + return false; + }(t2, ["next", "error", "complete"]); +} +class fh extends Za { + constructor(t2, e, n, s) { + super(t2, e, n, s), this.type = "firestore", this._queue = new ch(), this._persistenceKey = (null == s ? void 0 : s.name) || "[DEFAULT]"; + } + _terminate() { + return this._firestoreClient || mh(this), this._firestoreClient.terminate(); + } +} +function wh(e, n) { + const s = "object" == typeof e ? e : getApp(), i = "string" == typeof e ? e : n || "(default)", r = _getProvider(s, "firestore").getImmediate({ + identifier: i + }); + if (!r._initialized) { + const t2 = getDefaultEmulatorHostnameAndPort("firestore"); + t2 && Xa(r, ...t2); + } + return r; +} +function _h(t2) { + return t2._firestoreClient || mh(t2), t2._firestoreClient.verifyNotTerminated(), t2._firestoreClient; +} +function mh(t2) { + var e, n, s; + const i = t2._freezeSettings(), r = function(t3, e2, n2, s2) { + return new ke(t3, e2, n2, s2.host, s2.ssl, s2.experimentalForceLongPolling, s2.experimentalAutoDetectLongPolling, s2.useFetchStreams); + }(t2._databaseId, (null === (e = t2._app) || void 0 === e ? void 0 : e.options.appId) || "", t2._persistenceKey, i); + t2._firestoreClient = new Ta(t2._authCredentials, t2._appCheckCredentials, t2._queue, r), (null === (n = i.cache) || void 0 === n ? void 0 : n._offlineComponentProvider) && (null === (s = i.cache) || void 0 === s ? void 0 : s._onlineComponentProvider) && (t2._firestoreClient._uninitializedComponentsProvider = { + _offlineKind: i.cache.kind, + _offline: i.cache._offlineComponentProvider, + _online: i.cache._onlineComponentProvider + }); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Dh { + constructor(t2) { + this._byteString = t2; + } + static fromBase64String(t2) { + try { + return new Dh(be.fromBase64String(t2)); + } catch (t3) { + throw new L(B.INVALID_ARGUMENT, "Failed to construct data from Base64 string: " + t3); + } + } + static fromUint8Array(t2) { + return new Dh(be.fromUint8Array(t2)); + } + toBase64() { + return this._byteString.toBase64(); + } + toUint8Array() { + return this._byteString.toUint8Array(); + } + toString() { + return "Bytes(base64: " + this.toBase64() + ")"; + } + isEqual(t2) { + return this._byteString.isEqual(t2._byteString); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ch { + constructor(...t2) { + for (let e = 0; e < t2.length; ++e) + if (0 === t2[e].length) + throw new L(B.INVALID_ARGUMENT, "Invalid field name at argument $(i + 1). Field names must not be empty."); + this._internalPath = new ut(t2); + } + isEqual(t2) { + return this._internalPath.isEqual(t2._internalPath); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Nh { + constructor(t2) { + this._methodName = t2; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class kh { + constructor(t2, e) { + if (!isFinite(t2) || t2 < -90 || t2 > 90) + throw new L(B.INVALID_ARGUMENT, "Latitude must be a number between -90 and 90, but was: " + t2); + if (!isFinite(e) || e < -180 || e > 180) + throw new L(B.INVALID_ARGUMENT, "Longitude must be a number between -180 and 180, but was: " + e); + this._lat = t2, this._long = e; + } + get latitude() { + return this._lat; + } + get longitude() { + return this._long; + } + isEqual(t2) { + return this._lat === t2._lat && this._long === t2._long; + } + toJSON() { + return { + latitude: this._lat, + longitude: this._long + }; + } + _compareTo(t2) { + return X(this._lat, t2._lat) || X(this._long, t2._long); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Oh = /^__.*__$/; +class $h { + constructor(t2, e, n) { + this.data = t2, this.fieldMask = e, this.fieldTransforms = n; + } + toMutation(t2, e) { + return null !== this.fieldMask ? new Gs(t2, this.data, this.fieldMask, e, this.fieldTransforms) : new Ks(t2, this.data, e, this.fieldTransforms); + } +} +class Mh { + constructor(t2, e, n) { + this.data = t2, this.fieldMask = e, this.fieldTransforms = n; + } + toMutation(t2, e) { + return new Gs(t2, this.data, this.fieldMask, e, this.fieldTransforms); + } +} +function Fh(t2) { + switch (t2) { + case 0: + case 2: + case 1: + return true; + case 3: + case 4: + return false; + default: + throw O(); + } +} +class Bh { + constructor(t2, e, n, s, i, r) { + this.settings = t2, this.databaseId = e, this.serializer = n, this.ignoreUndefinedProperties = s, void 0 === i && this.Jc(), this.fieldTransforms = i || [], this.fieldMask = r || []; + } + get path() { + return this.settings.path; + } + get Yc() { + return this.settings.Yc; + } + Zc(t2) { + return new Bh(Object.assign(Object.assign({}, this.settings), t2), this.databaseId, this.serializer, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask); + } + Xc(t2) { + var e; + const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t2), s = this.Zc({ + path: n, + ta: false + }); + return s.ea(t2), s; + } + na(t2) { + var e; + const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t2), s = this.Zc({ + path: n, + ta: false + }); + return s.Jc(), s; + } + sa(t2) { + return this.Zc({ + path: void 0, + ta: true + }); + } + ia(t2) { + return rl(t2, this.settings.methodName, this.settings.ra || false, this.path, this.settings.oa); + } + contains(t2) { + return void 0 !== this.fieldMask.find((e) => t2.isPrefixOf(e)) || void 0 !== this.fieldTransforms.find((e) => t2.isPrefixOf(e.field)); + } + Jc() { + if (this.path) + for (let t2 = 0; t2 < this.path.length; t2++) + this.ea(this.path.get(t2)); + } + ea(t2) { + if (0 === t2.length) + throw this.ia("Document fields must not be empty"); + if (Fh(this.Yc) && Oh.test(t2)) + throw this.ia('Document fields cannot begin and end with "__"'); + } +} +class Lh { + constructor(t2, e, n) { + this.databaseId = t2, this.ignoreUndefinedProperties = e, this.serializer = n || Vu(t2); + } + ua(t2, e, n, s = false) { + return new Bh({ + Yc: t2, + methodName: e, + oa: n, + path: ut.emptyPath(), + ta: false, + ra: s + }, this.databaseId, this.serializer, this.ignoreUndefinedProperties); + } +} +function qh(t2) { + const e = t2._freezeSettings(), n = Vu(t2._databaseId); + return new Lh(t2._databaseId, !!e.ignoreUndefinedProperties, n); +} +function Uh(t2, e, n, s, i, r = {}) { + const o = t2.ua(r.merge || r.mergeFields ? 2 : 0, e, n, i); + el("Data must be an object, but it was:", o, s); + const u = Xh(s, o); + let c, a; + if (r.merge) + c = new Ae(o.fieldMask), a = o.fieldTransforms; + else if (r.mergeFields) { + const t3 = []; + for (const s2 of r.mergeFields) { + const i2 = nl(e, s2, n); + if (!o.contains(i2)) + throw new L(B.INVALID_ARGUMENT, `Field '${i2}' is specified in your field mask but missing from your input data.`); + ol(t3, i2) || t3.push(i2); + } + c = new Ae(t3), a = o.fieldTransforms.filter((t4) => c.covers(t4.field)); + } else + c = null, a = o.fieldTransforms; + return new $h(new sn(u), c, a); +} +class Kh extends Nh { + _toFieldTransform(t2) { + if (2 !== t2.Yc) + throw 1 === t2.Yc ? t2.ia(`${this._methodName}() can only appear at the top level of your update data`) : t2.ia(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`); + return t2.fieldMask.push(t2.path), null; + } + isEqual(t2) { + return t2 instanceof Kh; + } +} +function Gh(t2, e, n) { + return new Bh({ + Yc: 3, + oa: e.settings.oa, + methodName: t2._methodName, + ta: n + }, e.databaseId, e.serializer, e.ignoreUndefinedProperties); +} +class zh extends Nh { + constructor(t2, e) { + super(t2), this.ca = e; + } + _toFieldTransform(t2) { + const e = Gh( + this, + t2, + true + ), n = this.ca.map((t3) => Zh(t3, e)), s = new vs(n); + return new xs(t2.path, s); + } + isEqual(t2) { + return this === t2; + } +} +class jh extends Nh { + constructor(t2, e) { + super(t2), this.ca = e; + } + _toFieldTransform(t2) { + const e = Gh( + this, + t2, + true + ), n = this.ca.map((t3) => Zh(t3, e)), s = new Ps(n); + return new xs(t2.path, s); + } + isEqual(t2) { + return this === t2; + } +} +function Hh(t2, e, n, s) { + const i = t2.ua(1, e, n); + el("Data must be an object, but it was:", i, s); + const r = [], o = sn.empty(); + _e(s, (t3, s2) => { + const u2 = il(e, t3, n); + s2 = getModularInstance(s2); + const c = i.na(u2); + if (s2 instanceof Kh) + r.push(u2); + else { + const t4 = Zh(s2, c); + null != t4 && (r.push(u2), o.set(u2, t4)); + } + }); + const u = new Ae(r); + return new Mh(o, u, i.fieldTransforms); +} +function Jh(t2, e, n, s, i, r) { + const o = t2.ua(1, e, n), u = [nl(e, s, n)], c = [i]; + if (r.length % 2 != 0) + throw new L(B.INVALID_ARGUMENT, `Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`); + for (let t3 = 0; t3 < r.length; t3 += 2) + u.push(nl(e, r[t3])), c.push(r[t3 + 1]); + const a = [], h = sn.empty(); + for (let t3 = u.length - 1; t3 >= 0; --t3) + if (!ol(a, u[t3])) { + const e2 = u[t3]; + let n2 = c[t3]; + n2 = getModularInstance(n2); + const s2 = o.na(e2); + if (n2 instanceof Kh) + a.push(e2); + else { + const t4 = Zh(n2, s2); + null != t4 && (a.push(e2), h.set(e2, t4)); + } + } + const l2 = new Ae(a); + return new Mh(h, l2, o.fieldTransforms); +} +function Yh(t2, e, n, s = false) { + return Zh(n, t2.ua(s ? 4 : 3, e)); +} +function Zh(t2, e) { + if (tl( + t2 = getModularInstance(t2) + )) + return el("Unsupported field value:", e, t2), Xh(t2, e); + if (t2 instanceof Nh) + return function(t3, e2) { + if (!Fh(e2.Yc)) + throw e2.ia(`${t3._methodName}() can only be used with update() and set()`); + if (!e2.path) + throw e2.ia(`${t3._methodName}() is not currently supported inside arrays`); + const n = t3._toFieldTransform(e2); + n && e2.fieldTransforms.push(n); + }(t2, e), null; + if (void 0 === t2 && e.ignoreUndefinedProperties) + return null; + if (e.path && e.fieldMask.push(e.path), t2 instanceof Array) { + if (e.settings.ta && 4 !== e.Yc) + throw e.ia("Nested arrays are not supported"); + return function(t3, e2) { + const n = []; + let s = 0; + for (const i of t3) { + let t4 = Zh(i, e2.sa(s)); + null == t4 && (t4 = { + nullValue: "NULL_VALUE" + }), n.push(t4), s++; + } + return { + arrayValue: { + values: n + } + }; + }(t2, e); + } + return function(t3, e2) { + if (null === (t3 = getModularInstance(t3))) + return { + nullValue: "NULL_VALUE" + }; + if ("number" == typeof t3) + return ps(e2.serializer, t3); + if ("boolean" == typeof t3) + return { + booleanValue: t3 + }; + if ("string" == typeof t3) + return { + stringValue: t3 + }; + if (t3 instanceof Date) { + const n = nt.fromDate(t3); + return { + timestampValue: Ei(e2.serializer, n) + }; + } + if (t3 instanceof nt) { + const n = new nt(t3.seconds, 1e3 * Math.floor(t3.nanoseconds / 1e3)); + return { + timestampValue: Ei(e2.serializer, n) + }; + } + if (t3 instanceof kh) + return { + geoPointValue: { + latitude: t3.latitude, + longitude: t3.longitude + } + }; + if (t3 instanceof Dh) + return { + bytesValue: Ai(e2.serializer, t3._byteString) + }; + if (t3 instanceof th) { + const n = e2.databaseId, s = t3.firestore._databaseId; + if (!s.isEqual(n)) + throw e2.ia(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${n.projectId}/${n.database}`); + return { + referenceValue: bi(t3.firestore._databaseId || e2.databaseId, t3._key.path) + }; + } + throw e2.ia(`Unsupported field value: ${Wa(t3)}`); + }(t2, e); +} +function Xh(t2, e) { + const n = {}; + return me(t2) ? e.path && e.path.length > 0 && e.fieldMask.push(e.path) : _e(t2, (t3, s) => { + const i = Zh(s, e.Xc(t3)); + null != i && (n[t3] = i); + }), { + mapValue: { + fields: n + } + }; +} +function tl(t2) { + return !("object" != typeof t2 || null === t2 || t2 instanceof Array || t2 instanceof Date || t2 instanceof nt || t2 instanceof kh || t2 instanceof Dh || t2 instanceof th || t2 instanceof Nh); +} +function el(t2, e, n) { + if (!tl(n) || !function(t3) { + return "object" == typeof t3 && null !== t3 && (Object.getPrototypeOf(t3) === Object.prototype || null === Object.getPrototypeOf(t3)); + }(n)) { + const s = Wa(n); + throw "an object" === s ? e.ia(t2 + " a custom object") : e.ia(t2 + " " + s); + } +} +function nl(t2, e, n) { + if ((e = getModularInstance(e)) instanceof Ch) + return e._internalPath; + if ("string" == typeof e) + return il(t2, e); + throw rl( + "Field path arguments must be of type string or ", + t2, + false, + void 0, + n + ); +} +const sl = new RegExp("[~\\*/\\[\\]]"); +function il(t2, e, n) { + if (e.search(sl) >= 0) + throw rl( + `Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`, + t2, + false, + void 0, + n + ); + try { + return new Ch(...e.split("."))._internalPath; + } catch (s) { + throw rl( + `Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`, + t2, + false, + void 0, + n + ); + } +} +function rl(t2, e, n, s, i) { + const r = s && !s.isEmpty(), o = void 0 !== i; + let u = `Function ${e}() called with invalid data`; + n && (u += " (via `toFirestore()`)"), u += ". "; + let c = ""; + return (r || o) && (c += " (found", r && (c += ` in field ${s}`), o && (c += ` in document ${i}`), c += ")"), new L(B.INVALID_ARGUMENT, u + t2 + c); +} +function ol(t2, e) { + return t2.some((t3) => t3.isEqual(e)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ul { + constructor(t2, e, n, s, i) { + this._firestore = t2, this._userDataWriter = e, this._key = n, this._document = s, this._converter = i; + } + get id() { + return this._key.path.lastSegment(); + } + get ref() { + return new th(this._firestore, this._converter, this._key); + } + exists() { + return null !== this._document; + } + data() { + if (this._document) { + if (this._converter) { + const t2 = new cl( + this._firestore, + this._userDataWriter, + this._key, + this._document, + null + ); + return this._converter.fromFirestore(t2); + } + return this._userDataWriter.convertValue(this._document.data.value); + } + } + get(t2) { + if (this._document) { + const e = this._document.data.field(al("DocumentSnapshot.get", t2)); + if (null !== e) + return this._userDataWriter.convertValue(e); + } + } +} +class cl extends ul { + data() { + return super.data(); + } +} +function al(t2, e) { + return "string" == typeof e ? il(t2, e) : e instanceof Ch ? e._internalPath : e._delegate._internalPath; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function hl(t2) { + if ("L" === t2.limitType && 0 === t2.explicitOrderBy.length) + throw new L(B.UNIMPLEMENTED, "limitToLast() queries require specifying at least one orderBy() clause"); +} +class ll { +} +class fl extends ll { +} +function dl(t2, e, ...n) { + let s = []; + e instanceof ll && s.push(e), s = s.concat(n), function(t3) { + const e2 = t3.filter((t4) => t4 instanceof ml).length, n2 = t3.filter((t4) => t4 instanceof wl).length; + if (e2 > 1 || e2 > 0 && n2 > 0) + throw new L(B.INVALID_ARGUMENT, "InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`."); + }(s); + for (const e2 of s) + t2 = e2._apply(t2); + return t2; +} +class wl extends fl { + constructor(t2, e, n) { + super(), this._field = t2, this._op = e, this._value = n, this.type = "where"; + } + static _create(t2, e, n) { + return new wl(t2, e, n); + } + _apply(t2) { + const e = this._parse(t2); + return Nl(t2._query, e), new eh(t2.firestore, t2.converter, Wn(t2._query, e)); + } + _parse(t2) { + const e = qh(t2.firestore), n = function(t3, e2, n2, s, i, r, o) { + let u; + if (i.isKeyField()) { + if ("array-contains" === r || "array-contains-any" === r) + throw new L(B.INVALID_ARGUMENT, `Invalid Query. You can't perform '${r}' queries on documentId().`); + if ("in" === r || "not-in" === r) { + xl(o, r); + const e3 = []; + for (const n3 of o) + e3.push(Cl(s, t3, n3)); + u = { + arrayValue: { + values: e3 + } + }; + } else + u = Cl(s, t3, o); + } else + "in" !== r && "not-in" !== r && "array-contains-any" !== r || xl(o, r), u = Yh( + n2, + e2, + o, + "in" === r || "not-in" === r + ); + return dn.create(i, r, u); + }(t2._query, "where", e, t2.firestore._databaseId, this._field, this._op, this._value); + return n; + } +} +class ml extends ll { + constructor(t2, e) { + super(), this.type = t2, this._queryConstraints = e; + } + static _create(t2, e) { + return new ml(t2, e); + } + _parse(t2) { + const e = this._queryConstraints.map((e2) => e2._parse(t2)).filter((t3) => t3.getFilters().length > 0); + return 1 === e.length ? e[0] : wn.create(e, this._getOperator()); + } + _apply(t2) { + const e = this._parse(t2); + return 0 === e.getFilters().length ? t2 : (function(t3, e2) { + let n = t3; + const s = e2.getFlattenedFilters(); + for (const t4 of s) + Nl(n, t4), n = Wn(n, t4); + }(t2._query, e), new eh(t2.firestore, t2.converter, Wn(t2._query, e))); + } + _getQueryConstraints() { + return this._queryConstraints; + } + _getOperator() { + return "and" === this.type ? "and" : "or"; + } +} +function Cl(t2, e, n) { + if ("string" == typeof (n = getModularInstance(n))) { + if ("" === n) + throw new L(B.INVALID_ARGUMENT, "Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string."); + if (!Qn(e) && -1 !== n.indexOf("/")) + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`); + const s = e.path.child(rt.fromString(n)); + if (!ct.isDocumentKey(s)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${s}' is not because it has an odd number of segments (${s.length}).`); + return Qe(t2, new ct(s)); + } + if (n instanceof th) + return Qe(t2, n._key); + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${Wa(n)}.`); +} +function xl(t2, e) { + if (!Array.isArray(t2) || 0 === t2.length) + throw new L(B.INVALID_ARGUMENT, `Invalid Query. A non-empty array is required for '${e.toString()}' filters.`); +} +function Nl(t2, e) { + if (e.isInequality()) { + const n2 = Gn(t2), s = e.field; + if (null !== n2 && !n2.isEqual(s)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n2.toString()}' and '${s.toString()}'`); + const i = Kn(t2); + null !== i && kl(t2, s, i); + } + const n = function(t3, e2) { + for (const n2 of t3) + for (const t4 of n2.getFlattenedFilters()) + if (e2.indexOf(t4.op) >= 0) + return t4.op; + return null; + }(t2.filters, function(t3) { + switch (t3) { + case "!=": + return ["!=", "not-in"]; + case "array-contains-any": + case "in": + return ["not-in"]; + case "not-in": + return ["array-contains-any", "in", "not-in", "!="]; + default: + return []; + } + }(e.op)); + if (null !== n) + throw n === e.op ? new L(B.INVALID_ARGUMENT, `Invalid query. You cannot use more than one '${e.op.toString()}' filter.`) : new L(B.INVALID_ARGUMENT, `Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`); +} +function kl(t2, e, n) { + if (!n.isEqual(e)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`); +} +class $l { + convertValue(t2, e = "none") { + switch (Fe(t2)) { + case 0: + return null; + case 1: + return t2.booleanValue; + case 2: + return Se(t2.integerValue || t2.doubleValue); + case 3: + return this.convertTimestamp(t2.timestampValue); + case 4: + return this.convertServerTimestamp(t2, e); + case 5: + return t2.stringValue; + case 6: + return this.convertBytes(De(t2.bytesValue)); + case 7: + return this.convertReference(t2.referenceValue); + case 8: + return this.convertGeoPoint(t2.geoPointValue); + case 9: + return this.convertArray(t2.arrayValue, e); + case 10: + return this.convertObject(t2.mapValue, e); + default: + throw O(); + } + } + convertObject(t2, e) { + const n = {}; + return _e(t2.fields, (t3, s) => { + n[t3] = this.convertValue(s, e); + }), n; + } + convertGeoPoint(t2) { + return new kh(Se(t2.latitude), Se(t2.longitude)); + } + convertArray(t2, e) { + return (t2.values || []).map((t3) => this.convertValue(t3, e)); + } + convertServerTimestamp(t2, e) { + switch (e) { + case "previous": + const n = xe(t2); + return null == n ? null : this.convertValue(n, e); + case "estimate": + return this.convertTimestamp(Ne(t2)); + default: + return null; + } + } + convertTimestamp(t2) { + const e = Ve(t2); + return new nt(e.seconds, e.nanos); + } + convertDocumentKey(t2, e) { + const n = rt.fromString(t2); + $(Xi(n)); + const s = new Oe(n.get(1), n.get(3)), i = new ct(n.popFirst(5)); + return s.isEqual(e) || x(`Document ${i} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`), i; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ml(t2, e, n) { + let s; + return s = t2 ? n && (n.merge || n.mergeFields) ? t2.toFirestore(e, n) : t2.toFirestore(e) : e, s; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Gl { + constructor(t2, e) { + this.hasPendingWrites = t2, this.fromCache = e; + } + isEqual(t2) { + return this.hasPendingWrites === t2.hasPendingWrites && this.fromCache === t2.fromCache; + } +} +class Ql extends ul { + constructor(t2, e, n, s, i, r) { + super(t2, e, n, s, r), this._firestore = t2, this._firestoreImpl = t2, this.metadata = i; + } + exists() { + return super.exists(); + } + data(t2 = {}) { + if (this._document) { + if (this._converter) { + const e = new zl( + this._firestore, + this._userDataWriter, + this._key, + this._document, + this.metadata, + null + ); + return this._converter.fromFirestore(e, t2); + } + return this._userDataWriter.convertValue(this._document.data.value, t2.serverTimestamps); + } + } + get(t2, e = {}) { + if (this._document) { + const n = this._document.data.field(al("DocumentSnapshot.get", t2)); + if (null !== n) + return this._userDataWriter.convertValue(n, e.serverTimestamps); + } + } +} +class zl extends Ql { + data(t2 = {}) { + return super.data(t2); + } +} +class jl { + constructor(t2, e, n, s) { + this._firestore = t2, this._userDataWriter = e, this._snapshot = s, this.metadata = new Gl(s.hasPendingWrites, s.fromCache), this.query = n; + } + get docs() { + const t2 = []; + return this.forEach((e) => t2.push(e)), t2; + } + get size() { + return this._snapshot.docs.size; + } + get empty() { + return 0 === this.size; + } + forEach(t2, e) { + this._snapshot.docs.forEach((n) => { + t2.call(e, new zl(this._firestore, this._userDataWriter, n.key, n, new Gl(this._snapshot.mutatedKeys.has(n.key), this._snapshot.fromCache), this.query.converter)); + }); + } + docChanges(t2 = {}) { + const e = !!t2.includeMetadataChanges; + if (e && this._snapshot.excludesMetadataChanges) + throw new L(B.INVALID_ARGUMENT, "To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot()."); + return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === e || (this._cachedChanges = function(t3, e2) { + if (t3._snapshot.oldDocs.isEmpty()) { + let e3 = 0; + return t3._snapshot.docChanges.map((n) => { + const s = new zl(t3._firestore, t3._userDataWriter, n.doc.key, n.doc, new Gl(t3._snapshot.mutatedKeys.has(n.doc.key), t3._snapshot.fromCache), t3.query.converter); + return n.doc, { + type: "added", + doc: s, + oldIndex: -1, + newIndex: e3++ + }; + }); + } + { + let n = t3._snapshot.oldDocs; + return t3._snapshot.docChanges.filter((t4) => e2 || 3 !== t4.type).map((e3) => { + const s = new zl(t3._firestore, t3._userDataWriter, e3.doc.key, e3.doc, new Gl(t3._snapshot.mutatedKeys.has(e3.doc.key), t3._snapshot.fromCache), t3.query.converter); + let i = -1, r = -1; + return 0 !== e3.type && (i = n.indexOf(e3.doc.key), n = n.delete(e3.doc.key)), 1 !== e3.type && (n = n.add(e3.doc), r = n.indexOf(e3.doc.key)), { + type: Wl(e3.type), + doc: s, + oldIndex: i, + newIndex: r + }; + }); + } + }(this, e), this._cachedChangesIncludeMetadataChanges = e), this._cachedChanges; + } +} +function Wl(t2) { + switch (t2) { + case 0: + return "added"; + case 2: + case 3: + return "modified"; + case 1: + return "removed"; + default: + return O(); + } +} +class Yl extends $l { + constructor(t2) { + super(), this.firestore = t2; + } + convertBytes(t2) { + return new Dh(t2); + } + convertReference(t2) { + const e = this.convertDocumentKey(t2, this.firestore._databaseId); + return new th(this.firestore, null, e); + } +} +function rf(t2, e, n, ...s) { + t2 = Ha(t2, th); + const i = Ha(t2.firestore, fh), r = qh(i); + let o; + o = "string" == typeof (e = getModularInstance(e)) || e instanceof Ch ? Jh(r, "updateDoc", t2._key, e, n, s) : Hh(r, "updateDoc", t2._key, e); + return hf(i, [o.toMutation(t2._key, Os.exists(true))]); +} +function of(t2) { + return hf(Ha(t2.firestore, fh), [new Ws(t2._key, Os.none())]); +} +function uf(t2, e) { + const n = Ha(t2.firestore, fh), s = rh(t2), i = Ml(t2.converter, e); + return hf(n, [Uh(qh(t2.firestore), "addDoc", s._key, i, null !== t2.converter, {}).toMutation(s._key, Os.exists(false))]).then(() => s); +} +function cf(t2, ...e) { + var n, s, i; + t2 = getModularInstance(t2); + let r = { + includeMetadataChanges: false + }, o = 0; + "object" != typeof e[o] || ah(e[o]) || (r = e[o], o++); + const u = { + includeMetadataChanges: r.includeMetadataChanges + }; + if (ah(e[o])) { + const t3 = e[o]; + e[o] = null === (n = t3.next) || void 0 === n ? void 0 : n.bind(t3), e[o + 1] = null === (s = t3.error) || void 0 === s ? void 0 : s.bind(t3), e[o + 2] = null === (i = t3.complete) || void 0 === i ? void 0 : i.bind(t3); + } + let c, a, h; + if (t2 instanceof th) + a = Ha(t2.firestore, fh), h = qn(t2._key.path), c = { + next: (n2) => { + e[o] && e[o](lf(a, t2, n2)); + }, + error: e[o + 1], + complete: e[o + 2] + }; + else { + const n2 = Ha(t2, eh); + a = Ha(n2.firestore, fh), h = n2._query; + const s2 = new Yl(a); + c = { + next: (t3) => { + e[o] && e[o](new jl(a, s2, n2, t3)); + }, + error: e[o + 1], + complete: e[o + 2] + }, hl(t2._query); + } + return function(t3, e2, n2, s2) { + const i2 = new ga(s2), r2 = new Ac(e2, i2, n2); + return t3.asyncQueue.enqueueAndForget(async () => yc(await xa(t3), r2)), () => { + i2.yc(), t3.asyncQueue.enqueueAndForget(async () => pc(await xa(t3), r2)); + }; + }(_h(a), h, u, c); +} +function hf(t2, e) { + return function(t3, e2) { + const n = new q(); + return t3.asyncQueue.enqueueAndForget(async () => Mc(await Da(t3), e2, n)), n.promise; + }(_h(t2), e); +} +function lf(t2, e, n) { + const s = n.docs.get(e._key), i = new Yl(t2); + return new Ql(t2, i, e._key, s, new Gl(n.hasPendingWrites, n.fromCache), e.converter); +} +function Sf(...t2) { + return new zh("arrayUnion", t2); +} +function Df(...t2) { + return new jh("arrayRemove", t2); +} +!function(t2, e = true) { + !function(t3) { + P = t3; + }(SDK_VERSION), _registerComponent(new Component("firestore", (t3, { instanceIdentifier: n, options: s }) => { + const i = t3.getProvider("app").getImmediate(), r = new fh(new Q(t3.getProvider("auth-internal")), new H(t3.getProvider("app-check-internal")), function(t4, e2) { + if (!Object.prototype.hasOwnProperty.apply(t4.options, ["projectId"])) + throw new L(B.INVALID_ARGUMENT, '"projectId" not provided in firebase.initializeApp.'); + return new Oe(t4.options.projectId, e2); + }(i, n), i); + return s = Object.assign({ + useFetchStreams: e + }, s), r._setSettings(s), r; + }, "PUBLIC").setMultipleInstances(true)), registerVersion(v, "3.10.0", t2), registerVersion(v, "3.10.0", "esm2017"); +}(); +var name = "firebase"; +var version = "9.19.1"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +registerVersion(name, version, "app"); +const firebaseConfig = { + apiKey: "AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg", + authDomain: "social-network-dev-005.firebaseapp.com", + projectId: "social-network-dev-005", + storageBucket: "social-network-dev-005.appspot.com", + messagingSenderId: "974878862098", + appId: "1:974878862098:web:3992591ee2ebb888c6e1cb" +}; +const app = initializeApp(firebaseConfig); +const auth = getAuth(app); +const db = wh(app); +const ref = () => dl(sh(db, "posts")); +const colPost = sh(db, "posts"); +const post = (postText) => { + uf(colPost, { + text: postText, + userEmail: auth.currentUser.email, + likes: [] + }); +}; +const editPost = (id2, text) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + text + }); +}; +const deleteDocData = (id2) => { + of(rh(db, "posts", `${id2}`)); +}; +const like = (id2, email) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + likes: Sf(email) + }); +}; +const disLike = (id2, email) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + likes: Df(email) + }); +}; +function home(navigateTo2) { + const postForm = document.createElement("section"); + postForm.classList.add("home"); + postForm.innerHTML = ` + +
+ + +
+ `; + const salir = postForm.querySelector(".goOut"); + salir.addEventListener("click", () => { + signOut(auth).then(() => { + navigateTo2("/"); + }).catch(() => { + }); + }); + const buttonPost = postForm.querySelector(".post"); + buttonPost.addEventListener("click", (e) => { + e.preventDefault(); + const textarea = postForm.querySelector(".areaPost"); + const postText = textarea.value; + if (postText.trim() !== "") { + post(postText); + } else { + alert("Ingrese post"); + } + textarea.value = ""; + }); + const printPost = (info, doc) => { + const postContainer = document.createElement("div"); + postContainer.classList.add("divPost"); + const name2 = document.createElement("h6"); + name2.classList.add("userName"); + postContainer.appendChild(name2); + name2.innerHTML = `${info.userEmail}`; + const textarea = document.createElement("textarea"); + textarea.classList.add("showPost"); + textarea.value = info.text; + postContainer.setAttribute("data-id", doc.id); + textarea.setAttribute("readonly", true); + postContainer.appendChild(textarea); + const buttonsContainer = document.createElement("div"); + buttonsContainer.classList.add("buttonsPost"); + const editButton = document.createElement("button"); + editButton.classList.add("edit"); + editButton.textContent = "Editar"; + editButton.addEventListener("click", () => { + if (editButton.textContent === "Editar") { + editButton.textContent = "Guardar"; + textarea.removeAttribute("readonly"); + } else if (editButton.textContent === "Guardar") { + const editedTextarea = postContainer.querySelector("textarea").value; + editPost(doc.id, editedTextarea); + editButton.textContent = "Editar"; + textarea.setAttribute("readonly", true); + } + }); + if (auth.currentUser.email === info.userEmail) { + buttonsContainer.appendChild(editButton); + } + const deleteButton = document.createElement("button"); + deleteButton.classList.add("delete-btn"); + deleteButton.textContent = "Eliminar"; + deleteButton.addEventListener("click", () => { + const confirmDelete = confirm("\xBFEst\xE1s seguro que deseas eliminar este post?"); + if (confirmDelete) { + deleteDocData(doc.id); + deleteButton.value = doc.id; + deleteButton.closest(".divPost").remove(); + } + }); + if (auth.currentUser.email === info.userEmail) { + buttonsContainer.appendChild(deleteButton); + } + const likeButton = document.createElement("button"); + likeButton.classList.add("like-btn"); + likeButton.addEventListener("click", () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + buttonsContainer.appendChild(likeButton); + postContainer.appendChild(buttonsContainer); + postForm.appendChild(postContainer); + return postForm; + }; + cf(ref(), (querySnapshot) => { + querySnapshot.forEach((doc) => { + const postInfo = doc.data(); + const postExists = postForm.querySelector(`div[data-id="${doc.id}"]`); + if (postExists) { + const textarea = document.querySelector(".showPost"); + textarea.removeAttribute("readonly"); + } else { + const nodoP = printPost(postInfo, doc); + nodoP.setAttribute("data-id", doc.id); + } + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector(".like-btn"); + buttonLike.innerHTML = ` ${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener("click", () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } + }); + }); + localStorage.getItem("userId"); + return postForm; +} +const provider = new GoogleAuthProvider(); +const loginWithGoogle = () => signInWithPopup(auth, provider); +const createUser = (email, password) => createUserWithEmailAndPassword(auth, email, password); +const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); +function init(navigateTo2) { + const section = document.createElement("section"); + section.classList.add("init"); + section.innerHTML = ` + + + + + + `; + const logIn = section.querySelector(".logIn"); + logIn.addEventListener("click", () => { + navigateTo2("/login"); + }); + const register = section.querySelector(".register"); + register.addEventListener("click", () => { + navigateTo2("/register"); + }); + const google = section.querySelector(".google"); + google.addEventListener("click", () => { + loginWithGoogle().then(() => { + navigateTo2("/emprende"); + }).catch(() => { + }); + }); + return section; +} +function login(navigateTo2) { + const sectionLogin = document.createElement("section"); + sectionLogin.classList.add("sectionLogin"); + sectionLogin.innerHTML = ` + +
+

Inicio de Sesi\xF3n

+ + + + + + +
+ +

vAF_x{4KTV~xXOG@+p&=dG*7Y+9sa+3Mstsjj&l3J zrkoShq-*?Y+Bpj_sb04}q%kRE*YO#J1QpaG^elvnjC$VIc2{BeI7w*(W!S-l3FcY@ zNrhAp_Km6e^zg)>ZH~>!@`{wRePW?*1(|WBu=(439VJxF3P>G51ORDg??JCiaiZ(& zR)svd)26QK7(ZIH(dM+-wh!p>WvCzx8)`E&lr*6T522*WI|m_EezawC6Pisy5ojdM z)4jBE4pMiYrpYi6uMc)G!>t?58y?o2z}pT=zQo9%+_{%EmWAsRDZjG6Hd*ZR2$5 zL>hQ>TB!=qQi7tMwdVZ(G{=Qy@IcBG57J5=)?9m5?Ti>ppC8lQy(7GO&4$ON^o%9c zvG|upS~PG4HlCRLL}4rs+FZ%$ibc6^4I{F)>`W_nDcT;HO)IlV@@)Y<5$9|gb}2=! zUKW2WoH6}sCOa>6!)q_f|G-NAw`h!t1eTn0x@?%YMC%B|L;E$gAu23r+?{lT2!(3> zhR}*@5yIk@K}v1v?QCoQURm|A%I{PuXBis#@E+H|S{m(vcD zD=&yk3|^bh+NgkFdIf`ICkfs*8ZurQTErvFt57f?8Uu^=do|gI0L}uP&=fZ3Dc^o` ztF~q>R;@B#I-$w_NKqHsez+-NtI_v#2=cx>Wh(drTyGsb(|gsTZh`d^3p`i(to z-aYkr6UAAaUWyF$KxNBhb|}^{iSUyw z8ua5x>YPxEGt}Rh{Fk+EJVAQq$!`5Iu~o2L(O6pSw=WL7SpL896<)1*a{^k?zbGxb zA({V5%K0nt!2gzP#~cnE(f0t73Y1V?Ma%O}o-F1-{eo3Ln`xxNjm4c8IIS{^NqSQ; zZm<09t)Rw8Ah!n&N$X6GA9My^X`AL>f)VvpLQ|2JB1ldW=ckYpV1-Fi|v|;qGpd@YR8{N(kY_2F zv)iYR=!0=>qnqT>anRhE81jk7QEf>zs7TddAYE0c7ppQ)DY_9$Y@sFlnGkK|D|dsL z+2I;1@d!y;9IBDdn$+p?*-b7!+tV4E=sf%$U>!4a$B$6JgH>nX#YMn z;GhI%p;^3;Y1t9Vj3wJ^Z`|6BWIr>W>lE7VWM)(uXJ&5Ia(sJN5ow_9i5uhg@=F^b ztkNL}@{$&3ISo7ypN6#@AMS-{I;AellMrrKuAOg!kNFuIjIh`D6;bzj^{tE!Ok{ed zPz&a|TRnCvl?RFo0zR`9_aRi@LSy^KO1Bo7rjsE}{{JU%GCIVJu_q1j1%anp;|-3+ zkQt15A<3py!!)^oFfEVdtx6vT=B@m_LI@x8v2bmjC@x|?ew31$v1yl#iFFAvlx?A; zQ?IN}I!d6dL5qhPYUVLsf<>$EgEA=Q-ii-Qxm5*so1JzdF20FY_!HEx?NqoYl?SXH z^7%~m+w3Dm)GvG~sXXqW2JbjDpykKvv{aLL0FZ(>)ox%hjnh-j*vypvx;(;X`7)2N z_1O#e0^bA5?5VVBpi#L{%k&p4Lzu@ty)n<`WHqDhIx_($7dTq+eqXdx;<`FGl?JdppUc3t;O&N!qA_ZT`US_Hlyh4On%+0{nt>*?BO$C*wy*wwzNB!Wkfkr zH?;4X5+6ZAH-AZKjik`Y$gHV2zo&Xr6E9l)h_l#LREKze>-%`TmSZbcsamVK&c0+kF(DG5EQK z9Z=0LHt4?fHq`fZ$@sMwtGI+=X$Srz(jYcza#JS^0ZVJ2dC*E5L@9Ud8KmQYaDY5_ z7AT=4PjvFj<4FZrrmKs=W)HcVD1Jy54$9ReXhmzYXOX1i*u4;zXEX z9tmI?Co+bE^?C}H*3#ij=-Q~gs6WS!qq+yJe0?H1u?24vu+9Sf7YsNckZP(QZw3pA zCs?zWR&WPZZKKbntq6uvwrK3-*1uZI3H1UFo@_t6+V)&UlDX#j+m?}(x{9kmvmbbb z12Qx_s&f}P-``IU3*(;WS@`6DLU)nqj$1R*1}_yj9-}0G#sj(NnLXr=ed_iH@eENaZ~au{1Ptgz+K2reZUZ zUJ6W|yga9bcTBDQuO`0W%Z~URWBPuSHnzg?1@R{ySBNY-R#psAoc>u{;qYK6CpzL# zsx$bSrCILRbcet|_swkg&5NyqfG?~IE+`P0D#oH}fA;D&ypLxsbZlZ@2tO_eVg0UO zkFEZKA|Z#1Uj?K~gI0HeY(sb`AI#;A=9aNuFJzf`PjvqyCqH>6To0!g5*I}R7nGe* z%w%n^`pE7fTk^VE{NzWQhQ_Z`V)YQIsspq~vShc#1Y>4#ZJyMw;5k=xqi{@w#eRU# zO)||QWSv_-Nw9;(pI7x*wjI^~4lf$S{;bJd8)dqdhe_UGR?(3OcV?5ragbo`M9z7o z$_i7~M`k_cM(hO7s{oE~Z%B7|a3k8FP^Bo|}({1h<<2gEHhYD)H(I7c+LO`o#|VYCUxpI6B>UDj_=4-WvYoTca&m->$#TmQPTAuBKsUV(cYw zls~j+M`nJ>*N*vvV9DXeswS17Xu?gYJ{a>$K6x!4R{hgU%9fuK+TZ)L*B1TlhoP~x zR?a9rEV`sNxLpagcEwLm(+9PzL*E;XF8LjY1>rV@fbL&@M)DO;xK!$k5qLxM9I9k) zf(&*GY>kH)y0(30C!hAS)2m8;*I!p|W}!(ICi-%YEZ^aN@@}Fj2oVrbd9J^Cn>6<2 z*hlP?K*GDNxq*$6fXKEo+2pzgjgL@0aZLHU6-bk;tF7Kz^PtVzszB>pM6SNRRwI1} z_2Ui%AUu$1e>6?<4&t;_J0nNk8b!kZj(2ig!H~b{NP^lUbvv8Cb-IM~F znzJ86ypH@MBY2Y~xL-DGO zZIjdc$)ek2vLx&^99y-^nTx~z77(OFZefU`kcd?WqywH(Y$XMOW0|9qk!Fd}ce0u!$&6McdNxio`$IPMrE&&3d@$t?Kw`DyN|$MMMpVqs;b;FQlgk<2u^cPUpsM zaT`CzS4n^%R`p~c9bw>`dU^eAuqtyWH1v+_J3y^a^`#r}{1h}6e-kD`ENtU!K#w`` zkp8S8h2CZxEzm&C^9xmc zu^7H#WkraeQTlFvThum+|IK3Cg~Wp3KXoe6-LmfzzkQp@OL3LmBNj5iGM#KDWa$89 zgQ#&|^!!P1#O?pE`{l`)i4d5(LDN$hzp;$Da zqQJlFp+s9fTP*+4xp$pXFRD7c5%m&WRi{1dMlVk};S06g`XZ?$tlU$CNlpf_N^ii$ znPMlh>+R79E#d!T4B!Cv8?@*Oe_g9Z%3(7P=cej*0OGasim1q&j_Pn)4Sa;c4ix@s z@>@857vWBX#q-p(Y{gnuy2?sPL=JVPmte!&OTE#NOPV!taSmC+J3%b^HY5L+VcZVX zox&GnrMvZCCd^Kx(R8yXU}|~}rhU2Y#Cel8%~|fNFkOu0!QTG@ zss8hrGJ;Mzh+o!}BJ1j+`)Ya<4ptzFSFZ@c4KCb_M}7p_ahRht@d=1H`4d?8PBD)F zckhaq^*|A<2BI|;Y)<*m3p66JtrN!i9e#} z|B8)YQk!-oW%Sp9{gt=ulbbRpyM+o%RL6_B*!6^J))sqY@r}ZG_Ijbz^}KDSqOQ`m zA-ATj$}&5u45_0wk>istzL1(;it#D^QpH9dqot({lNAf^z1UMyF;E~~P9@56pIv6` zw~Y5w6@&c(v>Gn2FKR5ZNDc1yqqJ5sImWMv-KF+?laU4m?f?)z%%GL*GVkNLYE4@g z9I0m|FEKI@>PfRP^kTy4a1VBR6zzX4sR@-XxmtwLIsd|i3Ea>B&9Jj%hjK2k8BXb$ zB&FzOn4T9wLakgzq85cUZMkiEdZ{xta1Af09ktzbaSYmw9kxY!pI$5^{db?Qe7{-s z-H*NIzVNVk+>ZEdzkTBunZ9~-0I%J50r6B~fvN`lnne@V&`>n-8|L#pcP1WKTO$Oi zf0Tc(-n0Jf1@gBUK?l9*43Op)7wY)MjxmSJOlz>!!%)roVaLBj2I}^$sNpQIw z;)LG$=)uzde01T{m^e>1Msu4_R?@aT%u47&GN;+ic}{W#<(A$qsZg&59BplKko&9& zaiuqlQi(%D#j6tQ=jXhVdIazmL?hJHlr`%$rWWRcL{|%o6C03soQzjW2ul5p@bNOl zhO>xQu4DOkf3iH@%5dZ5skrm|{>v47i~TO2aD5-({GXYy?yWh@Tg_WOYY9!Ze&@QI zMt4fF?aL+f*JKRA1luUX8xB{{E(sKYL6} zl%apAB|%sD_)LhpxU5ZJ-Lhx9RCB%HO$k~H#nYnUB&V&Wiriq{hYwOf}fHeG9@gr&)mZGsg-y?|lH z;?w1+^8yxOE~aO^5o3H zj!t3regPI2kL;8X+Gx;6QAy%`QLB5rTV-@R0kyW~y;=gPUC`aW*WTDN`hEY_TC?&k z#77&{b4D9551EVPcHBozPP!o}Fggy`GcjhaYa0erQ*HP+T~b(eOb)(ZV&`+^PazOb z<=9}S5T|J_zYIy~=BNPQm7RpHy(whEtu`)#&3P2;`LsjoB5Z`d1=aX{ONDlDnRGs? zuOrG4;D_C@)VyBU_tcb^ARnS=Yk8Ev1nJjWH7U}Ord z#3g+$v`*+lzZ!C(idP_vB^7gArp`ZTy+(5@wNOTyrIgbO@i49T=gPrZo*<74502aXHr9Tq`nhCgAFne9>w(S?BWE(IUgNt5 z$@ESKmd9cmg?=K)HI9s!;XYTCyJoYskbbYnYhz)7{Dr{7B5Y!;`!t4g&B*_jf{7&V zPawK+d}Pb|j&)>;XPQpK;9O(-PXu>n-6xOKpmYTa=)X@+tBGfvRJAd~F>5aQNHBaN zTIrW+KoO@IQvJ<6ijW{_Nr4XHe+3GU@P^pE^%#j%#HX0>V7;#ZIP&dkLw^|I=c6wZ zl9BGtx_*hhjd3BGrF4GuvVXZXg+of9IWqhGpaXqMJx~2VEE zz9&182Gh;COnkMU%2@U~^LRSkCC+uiGoa*4Ms&t#{b4wsyC8uYC`Z}4n~vlldz^W; zU)7HRJh36exRrixQt5wopun9<{M0;n@qS7v57Clq)JEJ1TP20vCon|L-RW2@L$udi zr&4q0b>X!6A~7G5BtcddzIt{W>kLKKP$Q3|}Yzp~|mxPtlT591x<<{mQ6P*{(s#}@R~S|tu**Z6IqG) zw|m(wT)>g-C?ijCF{P4vcLiptqN2Xt#8q4H)7QUnmi%mhFd?6|IEm=Fp;z?i33&GN=^^0WqpTS$RNl^q(i4U2a}A@Qn!ArwagK6M@vov^QnCjY1QU z@uz?PZws&b%}qpFCXOra^1#8}+i=%u)$RHmU22-_C8`!X^OL~&`1~^cbkAQN=#vhZ zEhyXaf*LcJ#5ghIZqKDL6SfqHEtX(sPCrq*o_dp!op=O(FXcW3rf!I0<-y$Gm=yZ* zaS(LWuy04e_&bq9taoqv`5(D!Wb-e-2ttzOtRueg*b<5aigwjyRlS|LmuegST1u-E?-V}n=HSbwkU#UCwXuP0!mOC^tky1RpbQNZEYF6NeQiYwfgrf|08 z+XVFe(7?!$I?6Wl`+p3OLceh(1h+eE(Gk%N>j^>|@uk>>NI=1ffSRJ3>_jrnghUWD z$=N;`$#kAp02H8=Wqk^A%FX1`o8hluq!9+hAd$sNHHmyxfkIynB~2=q?ZvhazCci@ z?sIk~puucru7NFMj#1+GdY%SBq(7X=uR#_RJHFqMdwm}-0*J6ckpE)8*eZyuc4Q9L zlEPF6dwlz1qxGc*(#xqz-f@LzX%{*XLHCHR(#Qj{tzVErrrBw>CFA0>cw`kZOsh9= z`IT5A%)@)2lQg_BMHEuqH8W2>PWZ$txf*1t2~M%PKhERHAPv-lM^&eorcdz|h&jjt zs%L!&5;F6$na4Qib};2Fjr!Db$43sIr+n&0>jX6M>K^U=)!Lg_f5kF)+m|0d$bWz6 zTV5&?HJC#uw>^7}54vD+CnNAlsIojsinIRMD0}=Z_%rVA!*trqwvov%OAU#Kb$Z`1EbdL&}*Q}CoFJnkz7_@f+Rr~ zv9JBGJydiusHfKP@keiZ$7cA=heT+Fes#Pby4n<+W>GG7b#n=zQWuQgV2lnwo4pl> z2Nd$qXBPB<{3-f6Ubk*HlyyFa755DPxjfQ^cM^jW3W(7sM?-s<$`oavPu3ASPC7R# zKc>_T-i7g#{jMEQfwerlzuiIV?RvZci{l>~k+P@{PZP_tofLE+R{>&I*bCRYe02di37!Gi&hUT$%6bQ^)3UupvXJ~HTf*Bb)V)ii@E3ith-R1$X8~# zo*qy!r{xZc>&TtK$yY~A7Yn11w15i4_Fb4&J46E0BRBqk^;i))hH)W#PY~ht5r#L{ zxJc(0NV;B_WwOqyoJA7JE&)h8ZUv&hoz+I%kTz4U?D0Xgu7Afp2T= zX(UQeRcADRiqili_mwhTc=b2u+awt!TJ~QivGfjBE7UOMSLfCKGz?FMTPb&?Ee52(btD!9{QWJ+GbD_5A-LJK%zqtD$hcR>O zcWs<=3W?8i=%`+3cy~~CyvGB_LDqa5j2a_$9o%XWT+Mk9J<1Q?bJhejfUEral+AZJ zS%Hp}u;218Nz~5Q2|Ix?18YW?a~(BmB>Ja;v-!y*sWBCS`C*}<1n}aLEtTKY;Gy&^ zHEvO*MGnu4%{*4}#?wov^(L!vQ-4iAY$uEHOAC^!>!fK6*<+wLq#H(YC->0UlAkXJ z+PXGld-qS(n?V*>Vw0fWtC}t=bx>uBK_!X3u6)!-DLx_{MTj;Z@LJV!j_D}-FQmbta>ssG>0&{e{Alj^xzg znm?YfQ1XY6h>Y?tMYw%#gN6WhU`{84$yFGZux3qmfh~|aFx{71p?V|WhSO0)nFjU8-t0znl@jCDVOP?u`5`J;!c$vIs#7U*8l?^f zvpuWxB_e)&HSM>k@9ZSs6?SfMz!ysTjbNDGA&Z!K)#74N1g<*&rC;## zix8pPr2d-4m1Z^~?4^d`yRHa)aBwxE4R*h9ti6Dkn#D}ttC4|l0^y<_;1oSN&D&IZ zVtj$NVLhc;)kEl$>as{PuYOgu^>CCFl+t0XL?B2IN;=R6m)ix3goqNg* zv`ZIZ6KdXKaI&C)2vBDeAtO`3;09m{EsaM*d5&--OomPsvtdI~dG$}zN~A2Yi`W2Fm`fRzCab`zJzBs~lh3(ftmlSiY4U=t=Ry z%ZuuW98XwYe&{VC|3}L7BH+9HBnGSOM-O`v$&;v3JkW>-mO8S>(9RgxDGtW|6c1o2 zSQDt8C-X|;^@cn6YqNjj5`}~bQdV3540ly0akX-i{|T{iNO8=&&%1kaK>kuF_tTRa z1M}FX*W{NOqm!~GdloI|>q(Bt3LQgGo&8U)<(xx;8H=XHb8f4977T-82aAImYotnE zG|cWwJwfD-WtqY-X$Q9p+61 zy8i~I@88(rkMDY|IKu2ayDFIA!JaU~xRVF-9Xm#Lb|h%Y+bwiy%Kt;YeY+MmPpGiy zEc;@`&bDH917hfzhlVK00@Er(Gdf<4obR@bbcTZm?VO{`xdT030@Pr1P`Ti!|yYoL{t5K~XQn7*Dvc|UE1!<88{(7TL_93iz+I7WKRk2`S zByn!PKy}8^z|0RvR<)YW3lY$BnUB3a=h+?WxTR;(f$wyO1sI9 zWT`ne?nWb)ydll=61fb+1&hsp{8iwcTRcv!;%lRyIuhi)Yn}p3(L?9E+byB{!})-I zjYlCJWA6p3 z;`3puzajN=QrhCr@Tpe5MU~5ztF5lMe7Zng$Z^oefx=*nYv zFNe}pjYSr@6<=AQnHZzaf-5yx+cw=dIR4K8xQ_z>-*sVE>o@{U_HXU>cZW#%Db3Ov*~U>1v^aHsV5`$2Px?< zI{*~1^;UuqpS{DKrhAvj*i;#c)Tn_C^$V>x%*f&EV64r6rO}XA$ZiF;@LBg*0=9nZ zaQy|97CvdNX)UFoA$JP*<_`4}r93waUYHHvc}Cpa^Z(Vfxz;;<7`m}QUD`)lFs0(E zPc^<5PZ_QWmca6!GiIa6p7`|(X{>y%5f$d?l6D7f-*D)lbPh1oRALh3&ktoO5F@JS%1H0_m(_pB|K#gS+H^$NS2mvVgO z231;~0xufCgnXixK~V@}EYKg?U!XX0=WK|kHs8g~Y!?*$3fxMqQ5kfN!$=+SLW{i}!9 zVhSI=S>Ch}UAa>7UbRJY36oh8{g-`w&k#q3W_WKkauy|e80C7|hv|5S@1?z46%L{U zMpm>IOVJ!y%p>tumXZK6DiQT`qNyy%GI*iq4NG+<)S>w_&y;4N^=Y;Io zyV&y)Jq6LN<~oT&zVbvM-8o2$NvTvl2BTkosXR6BL`#;DM6S9i-$ZGW8{y2dBFA!5n*D< zG$@{TFC41X%Umm(lm62bRMOVkdejWi^2S4n8XyL8gZyUZRYj^n)UU5bonIeR_GK>c z&%BOx2kDbMD8|jk;G5kYs=U$9pXgm~(+3q<*{V48oMTOTikCaQ1<^vQ09v22>_mHk z;-$&nD+HkN8;1Z@V!MA~C#W0l0#HNP*J zaJhiw_cB#x&u_RnBxJK8kkajZw*;w1f|UR$p#2;ap2b+yNn+1@Qp(CO2-8@rl`ZUp zS}YqzS4P=|XqensH`);paFt3;XAt=3`CV}Uy%6R08q4*4VkR7*Y^}{yFj^J~w7078 z%}E*y)P9+Lk-J|B;=!bdC^s=`tLEd_$XPBN#jHkR5~;uO_iCbpgZrECiI(w%UKXr zsb~BL%&A#}d^AoZrkrTcQE)3_)6$NKw-4u90lZjg0Cl%!7N*wAnnbfT@r$j$hNTsz zzfFH7lBE2b6y#H|SA+T^(+$7&1kB1pJ7TKB6kOhwo=TfDEXHc$xW;^f>CAE*J0Yj3 zhM7ARl#CV&{&8Xi@sJ!>{L0ApjAY+T1kN>F{S}ksp}=De*3j(tRL3e7l$D=MjoHEX z*bT)Wm)KB|yH-r7O_Q39d5y!lL{+6@w8&`5(0}7NRtjAwy~h@7iTF0dt5SxRx{Pn0 zp}{%OnPA=J2#-4^Uh;4g`q=o3M8^inV{Z@; ztLn$Kq*@tW;!iZ-Z z#?3G6EFxvlJ3p|QP~6Z*pUjtTpZoV0^S=)wMaQ)qj(|rVseZVcHy%9LDY}!gkX7-sj5J< z9t`;mFwa``nRjkrSBQ1KHH_1dgv$eiS`Lok#4sa$8%GN7I8VHypV|tETb)|2EjgyH zi~Wr>3zm=4|ISO1$9JF8F6?9@ZhejbOv#ZBYFo-HXjSN$cQI2y64O0de7rqwHj-SX zS}KDrawougn;xdnyviR=A)DwSROJhgs!`E?Q3jtifeBTG;6O8J!iue}UKQ2??>#fu zT^943EC)VJs}*e;E$WSCzKV_d$n%^b6l`3{AY1Na+)R}RVgjyV`6p2WI?9XngMf+- za9PXKdJSda?!H~)K+_(!56x>APUMQF+hc&;Gv3qSAqT#_&)|IB1fa!SxvN}}Fp_u! zBgNYgsN$KU1RuL=RQDrnpO(7W6o1Y)fw>(t3ZP3?cw)W8i@ab(4-3-@t@wQ2? z-7ozZMJ*?Uj(fOVNv$B*3Yw1(duP36hZa&t-UJPSF`-M|M~rkp(`wy~q8JG4-u7Ug zmN!h*J+{})sf)o2NA=f2s)klX&xz`o13slD{=05gs0;B_^wo&*q9PR2%2G*Q zCsr5X4oxXBc3yyND64+L`gOxzVgt-Z!^F4PyCnbSQ=j0m|HYk?e#I(?Ag#Td++C=KF@+(jjA4%}9dc3dxkz5;b!^k7byhz?aA32w^fHQ6r zJ`M0Fzh-5>hkVg!MKBR6I~2|ff4sU=<9y6L&w;7k`Y~)UYr#ronWnP2X(5%l38EaS z4anf($xH^=Aoj;6L@ZU?qKx>+ofN#-NZm((@l|k`m*1-f2&yyqQy?@-$AD@Jr}ZxHFA4eLt_ zlgVork_rw+O0B?vaj@Wt`_$fd9A6u>es@10zRuHGkUHY^sBKIAw-2~2m`gm)4$}c@ ztxl$?-~n#Dr}YeVLi3XDUF}<8Epz*uHHI)@Mh=5tOIY}Vje^NLVC*On@lvayfnYYv zLv{Oz3T4*NI)<|NqGsKaLKNT0XLkeGY?|8NgD4*jX@H8Z60ZH2dQz?PGc^Kc3|jbH zl`!i_L0@PirZmXnBk@{VxiG51Io!Xx(jx{;Sl}tK`A$|_HQuHQ_I})iN3Yjt+(UTm zlkA3Msu7@?y0SM0${fa-SSYtK9en6#dSg)bqvfP+e+}P?+W^O>PCo1E2r&x>ao+*yC zecT@S&TAwpOqv>?N`~H#9XzesnFb7<&O9Fq%h~OP@h}IleWX-3Z z@7LBTjI{NZbw0{n7=T_dqkV!0G9zr%Ni#n%E7Ou zjFON0jNb7jkwtOWe~JTJk+R$rm&#lkks9PnCr={+4Mk-6r_;D1(>#8>O&n)WUa)^V0PwLWq#l? zHiYWLe0X@5o$XBEj_jy7PPZE8f+g9IfMdZu=(n9K>yLFAPjjK+Q2$z1b^Ae7SO-7G zOIJ+J`fsTL$Lq%fpI&TcuAfk=?*tsMcuPPwg2!|v0VR)^HV&c6tZOiJ-rSYY#`A+c zspZ||f+y#{e9yGQ3S;9&XjDswd!i8~fz5-bYBvIkneAu$!6G~{a8@G^b9&UhwcOfI z18Z2{+BQ38R`T<+G%lC}c^p2M^F>?oNOA?)$U+jCT0-jTA<99gD&5jbCdb5mg=4i+QgDm6!lUlim328cfcBLAi;gtMOddil(|6)mY;E!_VmcE{Vbpda!waHJmxob-i%is%Txi1vz~Vx5w=zq z2D+j3UJ^K2TTA7|>lf7W6~fTe!pSZ~)5gxQg-uZyHz5}su}9y#Uqo6zN(NQVkeP&6 zX<2-cGSX{S`S*R!K~pgvWQeXn^Fx6P$y2Jq=gp{1wxc)%1fGk*q@sBh#qx1)EY7V+ zG9S6aeeA-gb#E_q08E#B5#>f%gWESNyKykeKgP$b3@U)H4gIvup zR83M%CsfwmF8kB(dF%ZA$R*VnU^~(m45h&3^1QFGt%lt_?jFC4GpZ27%{9cupA62J zw%5Y3jb*xRin(p_CZ zT#K>0|7M8rpy4kzLculw>@N=E3K&E}oYmGng8P78`UmNw_`*2iW2GB6`3POv%5@E* zWD?Z%6+yg3Zn-KjBYnuh@5&Om`Lpuw9hu2iDd_3dsy{x7%JNdU|5_P1!>=P363qJy zVhpnF=h?;j;;33WbMKM|XPD?pi3HyDN;8d=-DGo6W^w53)iFyc#&wFd@OckNO*2(h z!W(qiRp<+DUkc0pK-+@`%zb>qta%ka%fgc~-@=X6@4+o8mGCDR&zH&&wFvl#+w>X9 zDr}h43;F;ofrE)c;I-6wU5ObE+oWX{)kE4fs8^2;70LI_S^pHoy*lS4B!+V)*cs~W ze9IAm5!nduYC-LLAK(1x5F0Idm03-SfSe0;Zbk#Ti~i+JBQT ze314+h8|inr(gciQ)+Kk3$ZI+%s1-d0s|6l;P>emju++X)RGc^iQa!i2J9eL5nJkO zW+b;) z*PKkI(?T8N&30mmaJaFGvHfjAnyDuyy`CgSveBEc+mFZsa=dlPkys%EEG>)+;~yG0 zP-eB_ZJab-@-a`*L~}0!PRu#M74j#zxd729THLvQq7;maCYJI{+4T6VajAF=p3ih% z;71cunX0Qop;*XdDUr|DsI=;%(ZFFfu_7}C3F(DuYf!UfX;Iio9nBm+Kl@AiPKO{f z)j1n;SO?x1rasr-SQu|`PMi4e6p&3E%Xn_x&bn$#$+H9V)dT1q5FYL@VuWhAR^{Su z)494#C=c;<=@Vu$r@$QDuRPUwtOl1kDNlYHMCI>@8^;DU5ugjz8p5lHWv*X-zGvs) zdq(y1bmgJ1aZefI3T=1!;j09}iDsB-Q($Hoopb$Qj$2+wq<<|};9jKKEoYk*(9@0j zPhi*T9c|nVRMch%u|MPcqQify3RrG_=SQZ&@5FdHyU zp=oB~s7IP`fDUhshadhCL6x!IZ^+;w)BO8EKD#uAKRc2c4U3K}hLRHj%8)L{N^O&B z*n4ZT+D1?3_*lt{m>Jymr*k0UG$;k8u=e~e!N{b>(qL}G$LTbV1SBZo<^y+>#$IgK zbT#lYKpF@A2L8@!4k#R>cLB=00mOtlawu2Y_fL;+kFJ!oT{p0WwYbUTn;4qJGI+1J z$szvE z5#4aq9uoyN<0ZEEcWsLL5c3NdW<%9QKbV`c*VRhn&i&UQuRjZ#&7ao1d12e`lLcbh zZyv+nbV_fHhS<6v5mn=yA&C$Q2a!^e=Ic-_5@Fc8_av{zb7v|-yI@zXdO*A(3)6K5 zah@c$(SUUfZ=gr;5ECx7=znt;2kd)JrVpmf26oqyiNCeaDh6JHd%26l}cd| z78@S?d>8}f+cttb)8XP{86Pzo94htL$ z&`ol2Z92!GK}u`&DT}p8pJyJfUU)APPrGWrIXaddeRzum#?RdNi&E`5zdbhomJRQ+ zcr-TES|?#!(YA_l<6YomPGeAKg{fdKUg?m(Cch1+S`9uvUi9_u9R)ycJh89~C@2%= z4p~`lEK8kH6t6e0jObiM!Rf^F>qAhlgdbSy`=!oZI3fipZqx@YROvT@YNX^Ph~kL% zbWQgR5VJIc2r+vrps}NLDkUF1OMoFg>Qky5vRU)4tuk)?Tvuj^|6`97S1bR8XZ<53 zBJ; z^eew_>rS5_)g4d}qO`uTM&c5C({)cI*vOjSS;LHkNw3UJbqm#&ELt1VdxQx_v3*~- z{=`h2U}ekoKpJ%TYFA?`mw`07lHJ{?Ee_*^oPDK)N&oY7F2?Eztizp#Hye)h?M8(X z7Hpu3$75DCPI1&7V(RW0N_=3vI56I`9?W8{L}em9DRLtKs4JwkkGLP1=m_~U>m!B4(qK;ib@MU=pFI!O&)s~;XNJinxnIEilW|Q}ZwF_m?|tUD z8of07k_geq%D~#UW_Kn!-H>Yb`h~_crV17S=R3FIxEo82i(x$gZH8)u!o$1uc~0Ta zv^pJ^Vs#|)sO0bNb$>ykEK1=zSXy+U$Js~LrG{EXP~u5PpJH{`^rX#PlpAG!_oths z+?^M?c)^%46}?g`0qLLdwZ`s5=?z8e&<2O+Sgl)tDPzAYU8Vs7f#ajsG7 zrTlzsQXzn&5@BAlGTcd7=4{B)Z_MCqIR8A(t@UmmYiwm3UiAu{Iw9lWxmw{Ot;t@R)ajvvi@@dGZkALoircINXZrm=gyupX2J+ zLJSOpI|PX7%OtK5`0sV1f0&Br89C#OnPm7X`)*GB0;{IJu_6qp&NttM(OxuXTa$(? ze#GP<=BBw)GT4!pWT;oQn=i9W@8GuvaUfUs?zaB6=S89i>Ak~B*XgREzUdGZWD~K` z=2PVqKX2W*CD6E38JXPOse>Y^IEh=OPtY`DxBE2A7S&8uqvv1YQgFFg6D4HT>YZJJ zeBfL=$R$?voorVu1xs>c&=>gWN>rG5v!6*iTHb(I3HxEEGL@f+wo0QvHp6=q4qBk( zCG%jj1%!!(cPl^#v!ZwW0HFY-Mri%Q9q%3PDQX7~KNV2GP-YqQ_%z)IC#T)2s_bUJ8h4P3 zT;*fgv=5j2?cxkzAbR{mC;G;rmXAT4>tChMF3;$UycPiJ1Mb2pM_i<%1BdMJF>eky z&V6eTe!7vk&>-`s)1};u)VI*x`>WHs-*v3KGr&SudFngmX(^B4w6f;2kg)H7t@$M1%1A6pg3@cr z@ba4+{*L!dY8FmNn5&Tsr42-u+Cl}t9W%YsF1|9_{CKlFNDJ~JdtjcZINP(Hz@WR}fSYUX1{svu zU!_r<^tRk`9dFG2JrK2JR7R}Uk6`IonKXFMDWT`CJy$r1l@u}&sBw3N69rgBAUmO=KLUHrB~IfqLYttu6t%{DTcku-v-uZD`Kf^ z*!2i`gQ4u?{BV5 zPgP5LI>{@DIPai03-IMhWuh2SkJQLKps)|7QKBAFlkP>bdAQLghTje|_Yhs^0~HZYNMgyy{VU z2M5(Bwx7Zu|H6m;K-Zu?*20Oh&hM)T$9g?iRFLHQg7movsT7OI^{vx7D~n%`ue>)5 zg^HXxAcs2Aiz>q6;s8qwA01!yTP#L<5S>2lB}Ecme-)-AjfoLK3d#cYWTh~GtGgi= z{*XaJ5*kz`*2{r=6LB;o5sGEX2HWTIZ`XHuI|qzd3U1XO$zqg}Og_R)#cY z0m*Ay$kqBmh>&13C7wJj&lTx$VtT(@@M9PF)|DJEq(lcOKPY2K^sTb|jFM-pA zuk(A~I1l>!2hnA&!{)Cf0S&xSFDZ#;*Cy z&gTZ7c^SiYCnb?9dM$o2OB0$o*sU}^4_BT(vnv&yIe2Jpj|;w>!hLWJGNe{{q=58*9?gZb{{Bt6A&K~OM zLvam`CMj3r1DCbbB1wWuFT&q|1|e%bEUV3gLBefCaW!YI2|WKh(mj+0?ofcb^sy9! zg?mAp$B@)=6@|?)<<(FNmBsmiy@5sdQ*CUT!i+W70Ctr;Px`@U-~|(^%Xgz*XYG>+ z9mnGwMpmuaW+yPq5O3&=6G8GhT_o^@HeS=^rRIdbquo_J_r-o9_C!3IIdw5-FX$|^ zBbd=+y{G?rTb4VP3iJ)Gyno9pr_H0fJf~}P$E70^&>w%q|6bUA`KgX9vzf4JCYPm? z0P}%^AF6Vp(%<1|xumQMQaXbNO9jB(IPiN@4I2km9H>&1Ur6-s%Hcj_(n>grdnN)uz`E3j`Lw`9Dg;JGBU zCPJCh?J7Tjed3%};V({e7fc)?%!i1x_s6+Y)=AagsTW4?g*Zm`*RLgS!6VLcq*)U4 zBtf}b&&{B>qC6-kKtjI@@Z#_GWLq>W zsCF%sxm={I{Q|@S*&M~{kTdiL!-6IjJ)0_12_&v(A~>mh=HO&h%GX+d0b& z5ys@ogw?qjN*9J3^X`(f`@{=fK^`jc@jq8NcXUQ%#IJ0$KIB1(MLDxKQXo1j=G#O; z_enj2jS=;Hw+S&L!&YUjTwT$uY)Ny&ny3y|-CbYiHWD=dRL# zmB4AUia)gV-i7D4iKY@5RguBSn3$kc@?wBLx)snh&^f|_t3z|UTq_zbS6qyYpBd5DujtRfP&QHlR4zwUWyC|Hd&&1k369=B%<6P=rAeeA(uVdN};Z;YDL@k8*a{OvFcjxB%^i17ClZQXPiO(S^-+Nz4a zV4mwi$wem<6X5*$e9e!C*0(ghzBF*_A#bj?!lcBT%1<#O+bBqBv=&<`u#V_PDb%PA zjhZI5G=iZydO3V>_dl4BGPycITW4yFSsSY;Ochd~k21fmzztrymDrJmc&xJH-*c3H>52dGD+Jh)Vx*Lg;nEr`{aA8jwPs1trQSFJ03p5Hsn66@uuLgrF3LVFO=u zW40$-fpot6Qn;wNa$&aleRW6$+VFhB`Xp;fI20g0TbPsY&YQ&NyVb~Vhz53(%87OE z+g4{It1LP26#sNLJr$o+Xato5V{vl!1A3PB}2pAqge+rs#_D+l5A$M}wN#RtZq z#K?FDEir1a=0|+946O{lT@}$CUp3UCv8si}2Ctf}(JnVxsszrGWiAs4?0e{9kz&6K zp?{8g_H@IFns)hA;{!>G^Ydyall=7}0umI3e~A2cxABvL@}dJI{ePuBJNu zuOq|kKD0Mv)R`&BV?)|g({tu&S%@U+cv?UexNL@ z=-WNWT<)X@q&ioeXpJw5^gp?$Bv^FkRPJX^&}Uqm?`CvxLTAXWmSKSPMQA{uF!;j8yT1an;Q?D6TmGEt_vdp&aa?8&Z! zJ%iPAVY#DOC+D^L>w2u0e*P})&rRM9Bzo)K>cgHeQ~4YYZDf$OXUi?!jv*o<0_x@D z4RA?i=%fRZF(&5=qE-J{IS8g2o@60>{+Mli?!~7e4ZtgCK`2ghB2rK(E`EO6s{N5= z6JHoeFnq64X!eeKH;R%tUyt(|Yx$E#UPa@UJZIftb4y_K_?JZnnl?L6*9-Dlbjc7x z2OGmuepl)%2e5n=ALIvj@=>gJfFlR;?DD6rRS(ifXiEhWQRArhPBV5BHOBY~R9|T3 zl|cLu3@55ub4wL6T62W;X6igw!i7=@{&^4_-6U6sh04zEh>KP~1of#FRZAykT2za2 z)j66SJTep<9=2hRo*!bXuKfCT(sO~}@ zIU}Q@%DVhI2hs5M_O`o^8#~S)4m&jLX@ZTtZT)-SYHaF=9FvYlr82m8w;30)wx7tR zNFFXXpY8?*u$p97l86In^9?X}W7XFs&JpdI&6|SFrSzfM6ruA+N7JxvVdU?#MHX6P z4<%rJV)JvBVuoMyP@D#C8sCF)IFICod1C#IRzIGgr}pd`k^%)~PndO_tc{+u0`<-a z32Rbw4n^VRl4$zJ`xx}arVYgDL`~Xz8#j}sh4~W~l?-$(1j>QsFQt4ANeM!&n3k57 z{?3Qcc)6?mB)4J0b~npd#o!EqueIH{4{`74zE~{@(57o;zRS_7Z8R3{oK;(EL&Smh zLflB_M%#2kE2ysz>!V2O9NImrA+gGZrXJpBVF{@IKM+3}Lo^>Hj%SexlDl1*!syFThp7=F@p~PE6Y4vg&v8w2!-Xt^{k_Q~+MG8|?~70PyyZ1>gX)t)nT0_kHU_)u=k3dj&AQgAx}Psj zakP&OwOCiTQUp)Q^Wb#|G=(;^!s+rOi1^iBicwPq6+kbm)Rc#cnk9ORHryAGm|lE^ zg%WgLTq$xCb9{nVHD$tE`39;4MPur)*Jd7skcpdy!K&Trwh;(UARCZ6B4$bNC$WeO zWvGG%2qjl@#I_#H!)Z>ypIUG|y{xMfQza<(H2dvk3)je`-9537!ta}jJSBLaLdY|A zsc?fkg6NQ(L{Kly@MYdj$7#Rwd#ArCypQN}A}}l%CES_^ad8vOtZn(&w{E*LOlrpM ze7?HN&LeN=REY0f_v?(%hScLNfae%JG+U#`clxhV1@zOWe|&98p}q|vuns#f zr|mHs!Aevi^=*(-0FA8Uw^{>>f)PCW;A0Nx`-xI z#k;$!GnwP&ulnYnnu_~m#K=SoT3a?IVVK_4rwyc(33sv>G4C5I{APL@eZYL!3H zL3vXvawg1_mYZ2l#+>sA<8|COp#sC6s@Q@`Aj|Y1^{1zp#OfW>f+7W(^708&*15fk zECDBdf+Ptj$mQLriZ@%mUA zmh0}YmC+5q@M94u;bVL(~D;q|A%zka0s^NS;qblAnZJHCn8rU5d>@wD<1)?3`ug!ImHyAbo~6|z4(>{ z>i^|mn(4lo@geoi|4u?~+YDC6cjFJe3n6T9m3Od9vFo#)he5vN=4)-h&2+ruo2vZn zECZ;ueUL#RF42Z}D%fr@A!=ntw1dh@b_da;&54oM};gM#_CdI)C9S33undF&@O zWWLgnsdW1;?7wKyTs}#=U=;a1Qk7Lz=y9Eh*O=O7@K(Y)l|_OQnYUDm3%0Bt z>z?tPTI=p~MF}XOwVXet<(TC@l+ucSGiaCo$a{BWX$B|o5V+vvbss%MILyh3k54re z1g65o%I`rOA2c-6dicJ$qTkyqV%=f=>n$J^UZ~{3Dic+XCFgj7;0~Pjo&+TnGD2TE zYq;aUgQ}f!M$v^DEH?#{zT^PH@;5pr6~hbTH8gH}+qmYRrvUMvkUBXm<-i$-=`yjY zNz;=HjbpUT8Y)#oKP!;8^~Rd3b5R|P{qs!+b1RzI$Vnlwf)VlCVoO#BnmhRh9(f}C zD$3e7+sF_<^Ox7!4lVahw{1fehICX+lfEs@7>M6xuAoCcMVe>kj`=m^@=Yz}MZIsK1 z?vHo`+(|jew=sUtDG1c4OA~Bmr|aDVK;N#{&?Be)1%fD_EBev_VY*tYNDn;eJIigG z!P%1@ENbs@*=AHFoetqtkDfSb=V+HueBew&@T-sC2wfu}RWM~p$#7BEs4MlQNpoP7 z(FJ)kv`En#D zdtb(HU;s!2`~12)t7XRh^xs}qsQ*sFO`4Ks=DpAFJVu^8U#`k61kwDFKmjJPM`PU< z?{9#@<=|p}iLEIb6VfDvI+UgS+enU#uGQud=Wi6MnmW9W@X8Hv z!9VWmPoXe~x}LtC!HZZ z%zBm?1Ju83r_0Ed^f2V5R9AL;dD}l*JpXv2`?hR?x+(M24chg7pXh*cTFCh${s-2O z0l{*?&ywEYX5;g{cN*)F_shECb$l`3(#pY$kI`LqQSgToCesw3@3CiNER^B#xdXWl z-wNC8@p?$nu+PE!HoBr3`*;g$tuQdW0=s;FLo~G7Y`@3Ez}OK{bRBZDBd-C0VlI$E z<%H}{jtTk_-P#)VHhf8($rZhS4Ko z*)ucOy-d_tJ2-+26MZA2_+n;%C%C-k6TJQYq138LsC^4Pw zUx?V;TsIs=DgyMs*k&MXjob3G8%MP$tGm(rThJmQ(aCUg^L^;Hs6_Dh%!D`xR7LSi z(a|Z2cX+?SQ%UhN9Tr^2#`gk4XD-rMKD42|q?%SFuF2*?Wf#85mLXL#lH z@vB%gr&@mHX_@~(kEQES)V$*AxR9{{T7xo_Kg34+wv#*gB12W@oN}-56HodEQ0D+} zW>9nHs7v8s;ZKjQSB`m%XH*eP{tI^`J^>B!wb5ha?C2m>Ob0!V0;0%sJ!npU zgPw;7%01xCdEbtFzxI2Wx2ZX4cV6(rVN^C6Dg4iekkM2ZZS5{a0dN@u{ksHr%N7p5 zIxIejh}tc9WkBz(2d~L%-I*w(+u$)B_^R5U;~G4X0{AuAv8rK83h1|^w02Q*-sq`- z3%?Wi_W>&)mTc+3go9>i^f+279OVFwu=~@!U)*SiUTGjyiPn!$SrHVi`2g&2;oh3> znU`>kBv8-ZK|=*&*RxqA@GCB|hZL10hy=pp&GY3SY$frku=roZM?3STPoI~xW{?x= zPBPiGk$+6iNy;?w?Lj6$?+=C`Z2k&@(+QSfiA{sf-s3zpoU1Y>q2+ zB-8TfOr=2neq!L9SHAqnWP(X40Co3J-h}75=D#*Y=pP&jlzSxmZ_&$vTDX6zWTb@C zIrGP7zX}QI%^P9F1_QirzjLwse$gEdSzfA0Yl6IQ#M8`SJ0~A1@+$OpD$zI{_da-( zd5b&g6ccU5(&Zba7k%b4|E=L2I$A^>uqG30_^!#EYMo(-N6?RK2GQ{~y_cv&x8_V-rkR0!GU`nM>YQ_tyOXwUP84+{~*_qt08W`mLa(t1B)~^P1 zqm92q$X_%*xIi-M-w2MhY}z!zWUR1YY_ihfa@oJPg)V=IDR${)JlT_R!OK_Mz6vecztS$>%!@rp)n_EvkyreWnkXUM{C~#-KU#;=FB!)U9G%02MNWfWLRI z%%EFyT={C4?*xzHIVB@2?)b@%ed7hCe?%0kx4t_|xxuRqMaKi(k{Gv~DZUTJ&3*BJ0N1#1Y+}$^nrB9;pS`*CyLo`H ze;_=iG|0RP5h?s12m`bkHs4Ci^51kT9tUr-eBpL|Da52cBpDJcRRW#un_tcA!|QK2jHph*0NYkflv zMW1~ISa+3fhr?*S50bSx{g``j{kDtYoSleCBbSCm(lqPmE z=wz{JNtYIt+r%vFJJ#*=)jb!EF?7`|DxL)AHIK zeehAJZ-l2*ad%_%^hfd?kxLk`+8AB9{Bj3A_HTrS=ETiqtbWR#N=;Gr7dN`oSawQ^ z3+aOjP&c^jFJePGiX0HK94eG{#B<+cwzjjz z>Cft@S!Z+SjfJ`5<8h4B_SmZp=SGi@LON18Z2lcwB_upc+E43K)nAX|sk2ar8`_2# z+3qxL8)1KF&3$b|btKE(!B77#YU%mF!NS*b&jHgN^Y{BynSFc&wx<3VWgVP^y-}L? zcxy0?VA}C>^0z7}VQ$$ut_@s$ZJsv>94g2sB*84)*1R{*-Hwfl^lx>Bz;eP$!#@@BEwgy zD`v)`1od7asP#N$galiK<&@}cekFHlQq2f-QVJoV?ykTp3ZV5GWr^Fq zoxdRl79I32x==$%l|sc2E9f+wR=6sa-4i4)LDuW@$E&^KMCeZi1ysY$Gk*+J{fxL-!WQuALRZwJ3YG+HXuO?Vjbru z@7*Dwl;6uqm1FqwC=XRUguG^*wF%kOn2DrWV#0jJlQ&Wn$|V`VC{~nX+`-&kP6bVw z?tN}wK_i-wr>paJhUdvW)-3ZEaL~ansHRWEeS}_UT9H54@V1rC=?mWqG~`{pRG=+t zX&xRA^2|Mn&StWNh9P!5Pob`N(y>2qDiKO?W~JXU37!H5U*#Vqhzy>aKpXwJ^JAkI zXGJ=-E`W|y_eg{rRn;zFx115Oo9yP@XcXfY=P_TAx57sRgEk?srqx~p&9?ANAK}33 zr1XI`iOri4N=ObgD>iOQZN!%hLe^{>F$i*@a)?ZiSgB%iVSg5s$a~z3>}BWO^Xz=H z>`h;*FeJ3U^|Up^UGZAD_erL3Xy6FFU*^F(AKm~kW=a137yDYX{AZq-2}NNSLEWqR zyo$;;Asyn9Y++lx;wBK*@7;;sHzSxej&3{||QEM*f0y z_I@^rb#HOJm(HGWV|L0T!qOPH#4-T{Z?_0&25QrqAP|ppv`^W?X47v^wY`%)O0fuv37yEOWFu?4W+rZ;@aa)-dhcp{Sj_t0G~0?75gc7Yt@3${QIR zTAn|UmH8OkT9Kpk$^J7{zY|K>KzA>9q~?FNjtc70GYWXiZ!fl5BUw#NzfJLsFXsYr zqlv4K>ZB?fBU=MFNd=Z_JIP4&YYMlSijUod;3VxUT2P%e7vsCC zmOD||xoGpw_Ta~wcjx4{cjsNz3&u-~FM;4rTG?ljAXlMIWq90tTJ#{AE z($SHn(gIy;kxA0MHt)3+3ZTMi&qT=Q;9`U@>|)9;Y!d7P3#l_EeHBEEV(@{qf%sJN@Qfv|5T=}sN$JiQJs z3)#u5HUo`rJKRkE&>2+7Xn;O5lK*@+77Xi*Co?hoo<5!<})p-M#% z-eVT2Ub2c_Q^?t!`MyR&8;Fha#(o>;*WI3pVT9=j+3+!62ZB0C)%Qu%E<5vW52B%1!Y?)$`fd$S(k?i-a z#y}I%sOdGBNEc2697r=I;t4G%^;upi1uz|&(%00gQw|&q+_$2oZ=5dmT;S%@@$`n6> zpvqNibhOU!jC9>OkL8!!_D^Co+M@Hl>q<=mf8G`k{r&J>nLMbRl8e4bgTTR_sGbl% zvN+_7&$&BU1Y4+_5gZ^(k)fGd2{6dHT0}t<*|h={tHCmJ)Jjyc_F!Xcqa)kFrvl#D z+=S9v_vp9Cpy6UM$o-nS!~>m@({k-!)p{#($0AGFqUWc6$H|I4=QzOk0M|>KMuFP3 zYw_}5tJ=&7oMgACe5@yHAHjJPiEB810-cA71p2YFS}! zjArbc(wiwd9_^MOTP5(#qa(H(xE=PqGt3{w)OlL!ok_8|zyHCyQW+?iolm)5>s?qi zL6w#y%)LU0NF0QE8C=gF^XTFCb;JC;ebvt5RExNGS;C|tvY;~U)g6@?u+8D+?i{Fg z%(LRde~?zV;-SteaFU1qAd$QrLhQhs1vBIdof1ZKm~FglzhzCf63O;@>!dMY(`pU{n7fi_U^@id>-$0 zXmbBEf1JY|spp7iC8v#L@cQJg*HgYpTyqr$VNf8ed#xmAQK4!&8$)IE@2Bx@ZiG%S zYC@5-VrZz?;+ypxg;|T=4Ht9=a7Gok(_5vzZr=Sp_Ct1g!mZHEkNCkeLCal*$QKqN z^%luz_pc!(Nlp%DWcrk~BjZL7t+{RVN-H;+`?ch19zpG;g2F$qLYGgGe3yMLqz9z5 z7Z|Wpy7+;wTSPan*_(>9$>5JHhu0+k#WG%g6z%)i*G}MbkW7h`!7Ffzc&TxnL#RJ( zhgKnIL`YGFt8ScSX*JhAPgi_vZ!m(qgiZlnqR(qgHIY=t5n2X2lEg+r|Bt9|49qNA zmW^#sY}@=|+qRudYgwuhiraLo;x^|$5W`dZ zYi2LTtD0u^^A$R1@#B+_jiQo&bEs^k95NPQp|>NhF+{BMz~Kp~F8lf*)IaN_cs3G5 zdi5m*P)S7tpg7p{%@Ni|HC6i6q9BB>L+Op%1K(Dw;R&=+8M!En474Y!^W3&KOKGzu zRK47_O@HYBp%Ab2Apo$Lmc>uowHUtHiI~!rU{d5lvtL^lYlVHDI6azqs~!^TYs?>9 zaTcvQxRbEIYe^_b{8>we0I#(0FFKG(WLvJUF7Ep!sk+2wqitNjJ@>t}pvkvKW6+B^ znb}K;tt&S3P4VH_meT<~TkV5GRyByjQ$nMkaB06=Dx9HnNA#mUJg(WesUTe}T>aUK zd)4+5wr3tl_?rC2DJxt4DE|$QBxi$9kS2`cA24naYy`$V;Csv^v|^e|{-AG|_vQbU z#Y)_=&t_>68mUn^jGPxy5f`C99CETQ2EyLSETrO{uK1F9`k3T%#~jOtyFJd@g5Ow{ zt-sb(_JcJjSHj9bJ%{%kG~lU03WC{DQN(vec2~Gz+7RZ{dGCcIVvC#U17w9O^FPs+ z7C;RTvYr?uy&n`ZP!>$JQwPRM>i;8U7J%_maeH0xiUvE!(T3@)Sg=OIr)43F|B0`9 zHnWZ2=Dqtd3W31`^s*pnv8@fYOiVaeyw9Ax14N=2g_7Yc@jwNdOZP&%g4>e&<|i|^ z@s)8Asc98nQ|HW#G^*E-#h6_Cp7=*XMbU{-w1;NlWg9zQUGs!ql*Lxx;^Uk|*6KY7 zOo@|t+?95y<*Wym)R1igL5?e9ZDvhn9EG6v%?^&R)fCb#u3-4@69(Jz-QJu|>#*l; z%#)BrZhy8@)-%2lr~EppPpe>L+0Q$!xJ3qLiGO}w&p1Hw8VF9XN8JkOxmzTw;ccnp zRH*8LR{Uc+_DYV*EoQU~&=Jw2n{mwcmOE{$e9)k~f9{|lEEM)ZzLeaWE=b1o#lH5TM~@X{oR2g$skbxaQS7RqA#1qIr6Ymt;Gs@m;0 z(;#-g2Bq6tLE6OAfD6p4Gsc375_KRhdxqmTX%%m9yBXSbtt;1#phaKaGZ{s;CK_fT zEsE3hRW9fW%FErm!VDHhu*z(b9jDYlSwli4U8+1MwCACy)f;{Jz2rHi+D&nz^X`GoeS~Yj1IDKyOwkZB(=3P&b@g924^lf| zN-wQR!?d#lXZ2LAs?0%qNY{|cP9Gnaj`E6X0jF|D}WX;71Sr0~R|!Dy%g zLc5Lb9VB3hGGm!7WdHL;#dixKrDIP$&MgTyR0aR&C699i#V<()Ft;@ftyj2aaAsVBAPHx~@O@yhWyE zeZ4PxeZGd~NpxNiO(F1Acj-ZPK1gON#$x;!KYTUgMVK(ZO+$Fehj=dy2ETkSH^PY< z?o|hU9L2DD0BGr3{RvQ|I=jhW?i?jTgWBS=6|dx|#ob0Yyts%JGq}K~+f8=|4oXn<4(SF;i(9_Jx)*w7)zDld+DDDTf{vkAH;=s(oQ|r%p3~NZ?8|dN1 z-~k!?&u<{ggBO`3mO33)NtQqWv$szgBEdF1i54=+`)JU5T$}`3-O^Nb>0t-Lbh0%2T`oe43v=7Q4 zO>IIPWXUgiViT`(rbD%-P3_5wUbiu>p`y-R3mbq&i$kolefOf&)Q}zPq=h*>^Kr@6 zW;_Bul;dHl>o0blp_xsWBu>lXT25hjF>rSNutaM2?|j+s>2%3(!x65 z5fbjPYJj-vO~SWTyHj*{M#2g=uNqy2PbeBx+GZdquNhG`QAK!#yI_Nx`vo|3S)#=S z=|PRI_12F~%H6l#+8s&XqZ2@TSY65OC;&fJoXWtU$h}TG@^b0)sksVuudFZI>2O4Y z6{rCJSjHQZV)vpuWcO*~4EnIltsVj`0}|&T10g7m9RGG1|JkE*t6sc1AMmBX9=~I2 zFf?C1er+Qz)SR>@2>Kx!5fmE_ut=0S=+JB9DY30yGq+FvpZX8#J4j?6`ZX5nHFtl-G^;C@D3K0ChwBk^(q!;3a6P z73YX_Gt}kOTFH6z!AaBFqi5HDNI2&(q1lggXVn#IZ6y9~sX^U;E$4x3C>16spPPRm z@{WpuxiwvNMX=&zMTFH+J1eR$+| zEXpkx3@A+^J>+~(dAl-9Eb$aJ&(!pxN?0KLFnn6x`_RwbXo6)>)0p#Vp}f_FL49e! zPy|B|$ty9P(^vDe2H#7&U3QKWj%%#CY{RS4_dLLAgmGp-2oknJ{U|v-!;eeole`N# zcvZ8DbwE|DbpZ22T{esoI2jKVh)9))GmcP4be*ZY=t0~5g-Qfxy@9g$4}V2m^&V9T z!v7etbwpboVmWk)7#mCtkXp^bsF-760d>Age~8UL-F{)b+e{BuVU5ioM|ByqrCUop z91n_cqP%XGDFq>|c~NPnjQJ9pGd<+W=h`-LYOT*kj%FydvADv5o}v|Nj6wYfS2?4_ zRR+d|sM}i}=_vnQ!r$@yTrt5iBLUEdgCqTPd0zl)?0e6LzRy~W6yj6O_u=Ccg3kVQ z&?d=y1ozJey&{c%wh2I$Z%(in-?jzF(5<7#mel(B(QMXx;*jHFSHH0rvr8l*2ozL? zeSOG}4r)Pe%XYR@lvF%K)(njut?p_V3h7L)SW>az2N$Vq#5AX=2H2LMCPQ8XSO4Bu zyb#3L!tW|kA-Myp7^rRd8s_*Uf-Wt}r)hd%A=6k(2-b8Edw0P)&J2lq{szQsb!1!)gn@E}Djaqh>ttXzonqZl z9=Vp_XT>=N&DoZxpoD{ouJ2W-ozkyLN6nk>Ov~^(^o%xv$O+@1I0@;X8nWTAr5D}oGG&{P zx1F}gV$jJFw*SpfCR3O>eTPx@vlOgl^3ENh_|4t2t5);dNk}3{0VZ<&w~2KERy^1} z#QkX8c&lQ&l;u!8md2`Prt5TL5fay591-}XqR8dy#|F0Y#|3C?tfcCA8+K2#KK;v+ zcRB<0B`xQxxjCNQPtL872qB;{S|V%>voJyo1@Y9)nkdln1Lh$=%#z0kY>@4G#@`zeu(hZ zJ-p*;Fabh7uhwaxe`jqyv=mi4x?2wYxRBB;T7xiGb4;Jlg8|cqk7i{>Qfi-PB0vC@ zv<`rF)Imn)DNxm{CP}ZbdXgkrm4i9M&tw}d2xi;DEMTr_j~RlL!$8mN1o=skLsdG@ z4%Uo(QJJz5IdL9T{MH*p&tqDQMsamFkG@`TU^l?rjK_sp5NQtLyX9Bkl1~^5PTNj^ zciZr#`)Sv)$%f;PiF%HG&wxxty5k&BwHGJEjR zJIe8$nkIk0!5aQ>$Kc)IK$E9Eyuwf*?+zo)W9U8S61#sABF9(dtHOYj5tGwZ9Ro{Z zT)o#sZ6JQMCr{R2kYK4OjG}*w4JY3=;yTux)=0;vhR~6lqnf7r>J; zUpkcLDGGpii3Ol3|8Xu55csLsZ&cKR6ke^f{evys6AucX3DlcrAGPcvA3H+qu(t9n@3JR zuMe{{uD?3re$g-iV^-ugKuewzLLb`~l);0>hwJp@Lpd%*zTO)tDz&v2Bn3QrMTs3H za`n;?8uc}I+3lq;8ZjWbib8jz1VR7JiIQPQ^`L!(i7K9n^Gs?lEi<@S`n|7KzHX`V zu(x+v;`)Y3f*{*wm27k7>d*PkF*~xZIc0TWcwk!RVzsz2b~Il&;V2HgzubIOejkG< zHdH}lKNWQEH<;Imx$+ApwI1QmIiK$}8@7vW?8~;j;X7V%PrY|^1tp)& zte;8=pLL>yo7-O34&D9E`qF(lP|bo)duzvzJ%&ymhHb_x9+dA6h_+>Ipy$U{t_Olw z0Vu5}b28-q%|}!_9|KHQ z*fj}@M;&&@e7RwRSkUgjSk51{>BjTqnCO?RTNo=?^Xtkk(xjct3Lqfll?{`&-;=jS zkdgv^s4~r!@WUsRREJ3gh>WSqnNoY1{&YByrq=aemi9k`bi<_r?C$lqD8@UjG4J+O zLny5FJN(_>t)4ildo22TBx%tou`e*d+BIVuL5|s{9(TR@#CSKZ6(9AZ2<7$+FHa$k zi-^HxCKK}2=&+7uN?77@9X^pTki8O$!QVG)PSM3#2k6B5^7YW-!arB=LVgT?bYw9A z?LQ&;p?*E~!P|VkGG{E+LA$_}qB&FjmT~-W#!2sjUc;=iB|)BB*d#f4SHA!V_^dQ1 zm;4`L9I&{YcC2qHny?p72T7eUq-Fdwp%^Z&Nlrp==ttfvI6A#GlxEV&#jBUViWJP# z$tn+8l$RwO2o*BduGFkn9iTZ~2YbegtWIZ0k=?v6`@u$yL5SsA$hQuOmxQ`*!Y#J2 zW+m7_W;KD07$%jm;;^`EVI&&f*~5d%4110X2?ov`gZ{vqzAlzDuLs&-zN*$7(PchN zc#3icad%y6u*4;D8CVis=jQ4+gbVGWnof4-O8P8H)#G@3#|9AeZ#A$Mj_{o~W(blH zAEJoC%N(+}w}yTR%#7?HG!5PxbE65xB$FpRO0wrc+YVm+qI+x6Iip*@Vq5%1#_cl@ z9puSNE~{MTncn0A)KmwL+MwU^60h@EoeRFf0+KI?HdxA zi=v@y3Prc-Lc03kgLb^6T?nIHF-w0LPde@`iw-JpZt*$}b~A|YF^h9m38PolzNE^v zt7K;PhtCwFV3R1p1641tL~M4OEjJ}(85hN5i}FB=3($`YT3A|<)AT|OgT%47L>9Cm zBeNZ;rVI%t8D13h9PWD<&5(2~yWMuzQZ(Q$bH#K(D00 z7nFsSjQyJ<1>13VbUM0pqE%~YcT2%+R$~yk7c32>M2GOfZ;y3)D^Vgqd*X&$a1iaZ zZ_1^gcH=bx<-+mg zn4R}lDfrI;hPkUhCHiH$jxXTc{`#Qp?^6(7@UZO<;yR^%26~I{lga;O!R6;t632le zOH=1y%9iBDzwu5nhSqWWF(*Ky-X%)p-h%-}TeqF@s4^vzx|ruBC3ukqc}O`WUr&F{kr5n@&jU!@-m5j$?$yui z^so+7sKw-go74Q$hyU9BVlR^~yG$rM>iqgk!kKuz#K7%OC_bZ&!;wl^pvF@`)Ogtr zs!Lw6Z)k}d@AEFl)?@Ht>zKd}lB<2eMw^I{hm7fdLXKMF^>(bszqxXL5b_LRUBtT4 zL{D73UiikpP>XSV(8Sa?59gC~k!B93oyD-`7!+WZ+05q5%-BM%I(zYXGPcyN`r64h ztHzE(>ngo9Fg-1^NwZCpVQX}RWCQAh3X{Sce9?Qb@JFbpd$74Z@8K1nCgL;t1?$M{ zK4KDJV&E$!lHuk#Jk~yx&D}4eaW+P{ut;)czH;8b{&QW4c7mNzdvd&IePI*@VnK0L z^of2vZ+_uA9pqLYO3l(oJ%1}le0Zw|pF#9QY!xt3PjDghY))#CcBRMt%OnU^C65*N z+e)5;XRVV*qu+28S)*LQKJ1m`E&UziEP^>PITgMsXnEy~8P>LPuhnMT%@*^w`3tdg zh6~6lFHOng7Jffgm(tHbJIE+i0`j7(>x+QP^kv9k5@_A~yV4jcvO%5k~2<-+pOuv!1D5?Bn0 ztv*minx#suRiVboUNt0g43CpGoZem-X|daYtDQm&HBuS`6ye0t$d9BmNYX|_l1FME z)D_StKz&<%d5&sTmqnl8Y+EaIOL5=b%aemtKX`a=G`PFVPlgMTJ(L9hPj+na^>#NU z41!K@AWy?C^Jt0l4E*hFcg%4A;?M_on@vp-;uMnVsbdzr%BmjICZ?C58IuzxpIHQZ zvRntl+*dcTAqHGgA9Ivf0lW*^r#$U`i@2h)2MAkpy~3&opwk&=Sx970GfF1V*p(iO zUC#AK1@CK9o*bs$-J(u496K^c?X0sLWCPOlhboiM?%S@!|D^$LycAq)=>1mw*wt$C znthoe?h4Fpge7`{=X{ORvIGeWlZ%>r0OF@>ePS{V*M)ReA1%|8-!|DMhHXVgw?wr@ z!Dd|nG^uk|UN`G}?0&1>#dj`BLQZ1UW``LWxo1R6dxFV=x9CSpx$*-wd!!H^>04La zE4)=lFCQP2DLAAcZ!F0z1DWQ;?|<83@knT9C=M}iJ>wPwSyPK2n6g;nL#PU7N_d`15Z&OcZ|z$y-l}Ho z2G5pD7psH8Z+6vr+o&Q!K?2T2a3)YS;Q0J^l+By$NL2Lui#8enge$M2DM=z#o%3 zQ`zM&!wxHCbsdg>5#RNfaiJQ63 zYl5ajBBlfR3l8)(z{o?OEdc-;B5u{DuFTeG*Xz#Fw>CVVgbBgvfV*lk`;J`#>rZ?zUopN(eRb*j4eS?EzZVjCte1PHSU z4p_Dflt2cHiZ&Yr%&&zGK=ElpX$e^T>&Ev{F2{-ySo`$yyp6vVD4fjXTyr}pBEvE5 zZq`_k<-zpd@hTX~IlaQyr14ghJB#gE3vidp=9(7zzuIl@Saz%=D9mnKE3 zUlnUL_k8govnKpw1)xs6?ucufU1}$L6YQEoc1;w)n|X zORGvTweO~Xy693Lo2O2yb>oZ!z5jA{ChILt5htZ200F}m3fj?U2MA(`Q5W@QT`SGG zWZDd-{8S$}(J|HcL&?ocTLQU%762i%PL3-J>(u%o)@FD8?IZXlT`BP&HXyzx~n3i?${_$7h6EJ=BNeKc^YeQ$C6t3PW)4=J$LwHLW# z3i=Py3M8dmc?NrR5AYCJ?(Hx zE2~eIvF~-(xlBGI!!mN$N}w{P?4`A!$g@SE%R)YhX_YQlrf_Av`2z$oDC~X==b5TZ zIpk2_z}Pf}CnL%ipyPWZL2^Q5D_(`U-kRUa1L>GsDs7>mEy?S%j zH0b!Yjkfq0|KTu4FUmQxU$2btg@KnswH*5q-AFsiZlNJSuDFepXL-2MzAAkZMdE8qLRV#8^xU ztR5_p0C~khf(=ygzh;ogcc&W_7+cT`r!1%?IsZQGx9ksde!G9zZb`6D+2Rkan!>x-F<^_X`( z(3e!Oq)X7M=*50hxqSG~AQ&5&Av?G@F$)RjAr zsCV(B#MK?!MW+fx2FU>h6|cmb1Zb+}(oA(qIDc@M2pqtF_HH8%#7Y6Q3JJ!f@eyAk zo}XkJIwji@##yg9%?+pXK9A#nkJBDU-|#UK%dFT)cb=~rAM18xFkmCIp$ymykhlyr zny7KMacv&W=har5k3ikFIr*9$H_N5>4)Bi}l6A>0Oy~{&TSjBK{wvAn5zP*BL-Xoo zg|8tkT;HGob}VI}Gg8_yN}#<;0?7CgmuxaoaL0?i#LoXOl@Kd~7NX=iAkBH%#w3%Z zLEy~h^5gAF6RzB&`N!`0WrPz3N`&=)u&MzfJ_Nzq;D!JBz6b^ewq?=q2j*)(%1OsC zU}zx&+mah1`j~@0k`WPK;igA_C@#i?%8n;zGPfFUpxryKef#P+rfRKFSh06Z_QRRZ zZ&))eYsB5$kX zb+Plp=ecbfoI}oNN^`@WRxg~~6)MKBN%O9N?>NHtg!>31y3ypv-Sz%K@e2Vk>^Wf} zz=|L|ok9n&s=%E-9k%-pQ+mvj&nRH}rW}LSI1`ktpshA5!tnSl`PoWDtb}f)1&B7B zoAE{Ft0-UCNe=?8311Y8)Wdu)v zQcXBcks##9mHMi~xd6yp-kcg`$$nWU$4xCxBV5ZdoJP?u4Adlqpox2_rBKnz3cPKEJ(?&Yp^_UT z{${lKeuJ@_cQ=9j2=1{gsLF7B561zT$+rD>G(JM3annVAur88(v?)zPg~1^2njdE( z_%njPf6X?mF->a92nl~-7O3(Y@2*ZBuzXah!gxkiYfd)?D^hvVK~ZP!HUy!au%NH*Fb_TE zwx*gE9AQ0t>#kN_?WNwL--sxoOIv?=-@h~rf^z=BO4ETWMz>}#A*?n3Q~!^P^*(!*tnKtg=}Cbwb`dPA7HB^Eq8 z^Hv|d6NWtJaLNmjh4x)AVqXzdWTgJ3_Q|ZdJz9-00pK^y#O*H#MHQ=sQccP(7R-UM z-p5Zn$w~`vkW@r_WX#Y~Ms-C-*7iVQfacwKd;1;zve;uw+bGqPrn+Gx1^y6KNF1E2 zeUL1KO3NT6y99D(VEn=9IH>${RL{bO=~v3DIOk;n8c5~uH$G+LppdB7Y*ucbvYMX^ z?}Y56c1KJGEE;cc?vFw|i4wepZjUx?`QzpogfjDENYH#Ij(@f-pKaa{JM4})B7Vcq z`KY{XmrDxlz!s}Sz*w}KW9QJBgF~6p&q-0|{UfS;5egT?5^Ul|TRB*JhW8FKC;8h^ zxD#BO@d@hIZfjEm+^6)0TX^;bOuj&gCRBUr@aL2Sx#$s`Qh zl+ztte}4UNA{+CzlVMG?fNHuX@ELYGTIh#4s1}0A*{CxO-3G9x(q%Ov=t#o|z|h_j zjj8qLKNtm^KGUWHpP9?5KJkXl9S!8BqI}Hz$nIoab))q$^~U5@2b4|ye%{kzz9YO* z{f;5L!+kU{e;60^F;5T=daax|EbzJ52|=?sfp<*q=Pw?KTZQ6%ZoICvL(4Ul1@IG< zDc@-Casi%!558UoQEk5LvR?;I%Ble#fCYf2A^214I)VtG6V3IHJSqBsdpacZ0VsR= zhuB^<(i(h^h#x_>d_C8{r;MI4qjIn(FNmqplYz&Wsj1vpYBKz*x$WUPC-%JVJLG?>Zn*825I z3JVf7liF{0pIrIYAk2WZyn2Ti)xSaj`E&FfUX8u8|70yjL{0MgdZ!K?UeKuURZ(oe z7z1qNx1Xm=d7*$aWoIa;3>1|&^8_gospCWqVTD4uV0$XLX5lzhM58^vZLY{VAEeg9 zS8gf`(3#?Z5(Fb?1R+>y(x@l2>mPYH* zwLZHRN0c{Z;+%;4-$sF?AdA*fDmx{>G`Z=puKW}2+xV<4bd{&rs_XufKu z;wjMjQc7z?vqU#qfPV2Rt%8#0?#ZMpUwYT~fRW@5y}c9#05zabnbX|xeIGb*hZR{; zN|#{^e4&~pg?C#4*)rf5D=8QRcuM>czLA(+nlcm4YdeJV!Hc5pnMIF}ryaj)Mhy*g z-PXJ8#`qQ<+4+s67=+V#={F{mi5L3d1EQpW(6ZVg1d;M}xzmfm@gqwmrn4O4-KM#P zPzwWayPkNRBfflkt4mLDo^%xxuZ(|Bfs^ywFK%yQB!C-T~$H^VE&`292Ft8;Afn# zE2Sq+X68n&%u2n2HUdSX{e#)kw9EcH;+%UGA|If6!F<|LSr{#x0gXGYEQ|89p!8e% zaevrgxHRkGb9I#~|62gva1p;?090aiZx+~G8U#{I*-jT>f5n3&Kv}5t!A(gbMJ6~$ zvv3`;OF#aV9WCp68QktP$6Jw?5^EWXj10$aR|x2j;LBe~5GD*Pd1$w0;vz|jkokSD z-8QXNQW|+U2q*Pp>m1GXXX29?S$2ej-nwL!io>DSpqjB!fjYZwxzF3mRVZP50$CJt z8`gIA^2-ApU&|`GF5`Uf{mPiRkFQmBa_Tai*)#}YNHd!K!MXu!O|H#0iJ!1z3F7S2 z6VtP|b^=zwwCt?Ujrk!>nvMC@k;tCccT$iRXxWaFz&sdug0evCDhUW4J*)tOc0+cf zjhoB4EX4aG6^eiSygZz>2qvI-Ozo?RX6vKBqs%}E|EXe?sFyH60JQ$&iL%BPAwSW> zuEFps+4<3_{D1{{CTu{PtFy~7%#W(;Zz6p~=eVe#G|l2Z*{DAkWd2hqRUVgced7&J zm+A$TML?X~|M{-k0@bSWk)$#f^oRfmc4Fz}h|XY?Tw(Glz&|H5fK{n%C36fw@?8-6 z&X!)8mgqRIVb#F&IkB|eo@Ii$D4SqB^hFjyX?Zn|F3tdS$uMUh9mXUjVO@^ zRh4(r6YgZ$yqXM3d3_QVs3db=b}V8oZKcmJ9NW|J$uqR=T0JFP$A&pB-BEJ96`^hB zaU`+h-Z^hIY25+a6e`;Ip2bsdp2RiRCvkmQgR$S$24*jEyXjn@yR~r2 zHU}cG_?jxTO*|)2tuLx(Q%U%+5kM7#C|eNbBj1CrDu`SzYJNK9vZoMSkoBR&3K?wE z#xk$xL7J+cv0P>dQ%ABJ=hf=pD%kh>3|GW95DbM;fZY) zcs7;Z!}PyZYp^4$S#EqXQ1qK+j38;AiKbOD$9WHu>HS^`w%LdPBNOnV988o#6qE?t z(4UiDyuV-$)yF9yPO3?>W?X^&a`X4*AjIRM@E=#b(>_iGsll>YnjOq{Qk!lH- zx0Na%zbx@zeLXQz(gI|R{YKkCR>1|0Qx|#(|wEAY6DWt;fdaI?{MF(MPyufJ)EL}fbB!jXU5VJ z4HZFo^Z|jg_rM9Jgw~Ck;9v+UhrBL&oB{yzb+hk?sxU^ZIWN6@_hDeyruExm zxtRod7^8|HSjvIpHuCQ>dV7*jN5T)(GR+w<7oqj}r>x%+1*Q9Au>3Hw z?QWmfHhf1>_a1*wp6O4$&}QuF6}f6#VN?tWhNxQGZvOPUvi~&8yb@Y^%Nx`2{IL0Z z8o5yW^s^eHncVQ9!AuwS2DiQ@c@X@epqRhNUr!@amYw`~2Ictb>FGlg%f#w?OAmFC z=DnEaD$TLpA3{|vds4e^rnn}Q)%Sb%_ho95$Z}!t5Y$TO46VYTQhv&gx!)Hs^hK0^ zF+oIXl5-m6kU;T}Y8S>7I={JW)B;S;<%SKYxM{>icXm=~${}m>rip^UiJJ7?0r{5o z>>*JpVW}I+VY5gonbl>vg?zf_v=i}&p2(q~NO#VRpY+SM&Akbi^8Db8sZmj34wlS6 zDYnErk~=xv5aF>P*-1H-jDt#WM%Pen_tYzq_jVK_M6B-Dr{KOlIvX0b)(pEtsR*m4 zGp&q+(Ti7d7VRscDASrm9JP8C>7>xT-`5)fY6PoWhciNWQVyb@`>)T>Zj_-U(Q&D# z0q)dtBIQRdXXGReukb3+3j)g^2^-OJbCgu%9~S_h*NukKk-v0$GIb*4erN659v`_= z@E6`PqzW+L(4r6CDtnse64a&?SEgNOi=wnrkrmCRdUhKcW9;=@b9Zzz3l(v*q0_QZ z$&9anOuneN8Llw7cU(yUeQ33#GRWnkkbOOh$cI=$xIj{?n(U-E!Y|!pYGbOjk%MXs zP-MiTzhL)8cx5WJcD~hnK!%xsqcT@f;@-uRd4WHpqJ$Yw9}A?G9@VAv%&qaq&btUr zaUnzH->AH=T5GX^t33=mI4n_kmA@IJGwe_KHxyIZr&7}> zCvBfk3=4dtn{XRt@81xKmw=TgTGAFr^MSX=(r%A}Q1x93(68v-+d;tU9S_pS$YE{M zK{UQTTy!Bbe$*BTlY#l=e&r0I)i^n`9b>PD15IaTSO3|YX!3zCO!r$)f1KHqCUFMe zKLB7Ip^fY&K85064$h@c?8ViV%Kk}IV{3wF+I;EGhO)jVA8ywn=qF2u=t6I0l_>F! z^*%758f^crGbMT}A z27C2bYjEX@IYmIA&Y(46MF)obTrRUKpXqJUKKDPvtkI;-N-vHVM^x(7h`sSBB#A;=P~utoFgw;D)lHsOI#lkr=S zl!gOjK9r-gX6;ut%2yFp!p}|cmT{X2GyU;Gz-%Z({QKu3!{0r&aQX`IP#zIj;qq4x z-JOj98-ZY~YOx4?;@rBL*ct}|zncZvRZzx)-zdZxotdIlv>U%i0z_4tW^y}RAc8-j ztRc4aKieY&qLRK>91PppN{&phm~!jEPIb;VLUzz0>RZ!sKR-SWpI#)m%%E_HpvH#zBu(MD&KU;bCJ(GpN572%+rqGu2tFqE8o z%nqw~2%TGvliW$n#zv!^-pcK8>Pyv>h0c3t^z#WjRd|QVQ=QBnRbiCB0XG;Tt8Yy~ zgtZ4n%cL$J?YsLGj&UjSSeIdhn68MXezP)4e~Su$83zN2iB~(ywlg|v zAK4c;Qd& zeGPdC6C@Cj2xr-`Ab+8FDyPn99#%Azjm>Ck&`tmAl39>5OuZpckd(Mj zlK%H+{|-BZ>R$Sh&PX4*^R3L{%f{dx5Mlj`EI1%R*E29t%S%QVx@scl!c2jmq~dx? zU$Zmusf!hmfhnAOhyF(OVeV9!Pagj~eT!Q`5kMtXmjHw0FM zM8v$S*(xCL5|TRjW3K{<4p!o@qg0;-wVR^Kq{>oJ?YT<5nBJ6AaE^xuEv!LK!|SME ztF#C`U=gnYYbimh_GER04=6;5EM(N|7 z)W+Vn9RdEs_r$HIdwe44f77%hYOBzXp{tih2|?~f!L$h0S6mJlFq3X;7%TOV*YP(E zJ&AK_(w24Xw8N3sZgIqiEVXks7b9e`b#aYWvuS%uB?KL3y)&TntzmA+qB~hvXp$WyTW?zB+@Y(vIeEY+Q_IH$>%n-bl;0wEaWw;(jo2!w%;>w*X67g&N6J9~$IsLlQ zjyVGU35>BWW(`lhAjn0FrvDPY}cCmcSvmgN|`jGU-B7{Uk0?WV?7D%qe&$_V(q- z5B1Q!=#+pIJ5k_GD=Mvb-9CV~RrQUch6i$ME<0fGX)?IWgMqg)p*1)?!e0WXqld&k zSz3Cdj#sW5%n60eJ=-Zn5R=CSF6l#du`xrv&9C3X=6um%jf|2jSTXpBcc&%24k#B` z?dY*BjUdxr_(yK=_=jpoQ6N;vRo;;V#A*UY`pPoYDxxwo? z4kA7Fa`o189zjP>uZStF*t{vt7{SjLS)|bn2LUQ2b86y0+Dcm%1Rw$I4XZM-?x zZ#hu0Z0NZz@isEzCn}2Yh4^O^-$v?FRTG%e94<4PN?#dQhcmlHVBke?Q2X#r=b07_ z*auT$UJOe}pdqk48v9lb+XS)c(v_}N48&GevQ|4}XxQ`}*Rr9```{Q6>f_s-vc z6Vj%GUH$TYl|3k_KeWr~rBHft7?53WfVjV@_zDCZ9|= z|D2-c>*hqCbM4BIIHMqsqBA>KjFF#%*=Tz{>|C#^KWHaNG5ESUqiwbZ-R`Vq|CD+P4g3{o>B(2r4#JrJD=bSXaAJ=`6M;l%s7jTG( zI*`YT-$now^|b1Pnq*fivqmYulu8*ueo*@gVdFA(kA7ue5j zA@118bfRjjWqd?Yu3|RzzqI2Rg$F)wW0G~4iWn%XKAybKMD zP+$*%xy`9couM0P5Z9k>3{!EOCbOqJ^$Do~b4}%u0-u)~n=i_qOE_+#eZ4nF zZ!Vs)+S)HqOuDxjRF%7ZD%}Z*Lm;OHq#y(~$1u}hNb<_k!MtKQ&<_}Mbm{~ee@OF9xpnjZQ|EUopfQa0`JM_a5rsAttB?RlM zjg#?4M|>B#R{$ih#VP_qlmQV^Ef*J{vY?Xt*Mt`nSSMMc8Omdmhw~EiCRUG1!uDZB zOjdD%N7Qf>`MimYUpGFo9v&N%k3rUPuMdU2?hPr{Y?|8Or{@Nw+>2nN)woBV=SUq) z$g`CwR$FNZUZxWN7tpN2^dQd7FCn`82j!TWlK-Cjvp>qZw?6$%+i(0-~?7xEn0>HvskOm!LxSmerg+C#$QkUgOCQf(X&O#@1 zrV2k}Fx%Kg1ZpfRk@WTx2P25>9N=Z{dTaO)wD2PaJ&l`p^0t&ah~kI|_o*!aC1qiDohWGcxB_c^@sT?3MjFy(wiWPE8+i6VJG&-0!6gUqnwa@hRYVB%VLJ}osCY=9FY;>IRs*9~IdS4JNe3co`Nlh%?B+EUZ zpx2p84i7DkcP7eJrZ^sC*$La6VjWlYGt{#4G-EnEA^ryb1^>@DXgc3 z2jqiL0s;2(Z3`&i(CG{o8=FzF!e3TK%EJQ{rXAJ9m6}r^D&Gst)&<_#Z-2~h@3GhL z-eKi_Cev!AH`w`^H|$^c2Mb@7h+fcv*=|xq|Z0*pY z`CA!{QTu0jyHO0%5azIrz& zk)A7)wqAGrvA{EbcfJudOK@Ehf*YRlwRBl?>;D)vF`(=*C&^)`*u0@%<9Z8=JuG2rru?-;9NG4y%M$|xTThhG*nP~JNoHQ;oH!rWZBHC&Hkv`F zErM^HJ8Aq;tdk#FD}>T6zY;b?S3z$Z%U=}s>8VlNwTlRMTv}f7SP4%ZN0NNhdG4YZ z-N^Rk_Sj+<+XOGKxc|QNxV#w^Ua!y8mxfn?c#s7Xyw%XmN*Pi&NYdch}-hf#UA&P-Jm;x5XCM)Au~Rzu%B6SCW}z1|jwMFm}U4}^_Pe}^{Kv34M@ur28$+}`8P=a9#D@w>6Ek0q2t!mB> zuPZlN6rk{lc9|vWbAF?m$Z^fiZ>+n#WKYXh7B|Vb)N9LkBvGDil^pw6o79hl1StPk zg#NGMyGsbUPaoj-pQf$Npus<$eKy7@iJ#2vlNZDFr+^A#V*#+H4_~xM}DCm zku1+PLvfwzjj57f!OC!l20oMo9fXJp5#Nn|cK4D(7Qauh#Vb4WZy@gKVEKbHPlB%(u^pt(V=mt0o_?*#<<O-L|{{_qsV_2s>_sP=I5j= zdMJmV1jWWp@HbHW!b76M1_OH033VD<+&0Bpj5(+HGE+!-y2=gb1INB|&^MQ<_L5S)R+*ak)LLgs zW%AX(e4MZild&Nm$%w5qFqhp5e0tr9{?1gt9u9?BjfN}&ZD!$5{e;mad|cymGa83# zXx*Xue<2djzhpBGVUN;b8o5Zf%HcYTw4^YQvx8pBOsRZs^AKk_(X%1QxO1IAZyJ~X zrWy$zGO;!w>fi01g!S$7SNXYayz(Q5Y}CQp0znL~mPtpXV}y*sadD9x-Z?<*)~hK) zt-IhHTORs(){U1%(TN>;;;j#NFW$zIfRf=AnKn=wKJ3iOi5-HDx)jBs7vihJ3qbmo{qOsZ6?>0v06&Nw6`E)Do@~&O8NL$%K;KGls z+;)hSm!OAzEX7$`!RED8?0~$yzt>PMImm;jslf5A(Jl=B+f>bE(UHX<#k9>Gm9xmv zS}UI~<}?n2kj6K}%g zNw9K6xbNmq=1jQ&@;4t7X3Befq^k`+oDttJwB-8~{&icPti9yEpvsZMTm-s&X2wD6 zk4L78Q{_`TESL56SEAUR6v>BA33cNpflt@pNkcbRqqSP5Ok;o4wdLOAOUa?bf2E zG1e?7KW_ciI#0tl=8i+U*yavG=Exs9&qkXb!?!rg% zsauTUkFI)u?Os*sF$th$pFM|gqqnyy35oTN0M37PUYbFmcUg!lUd@eR(JR2sdEY&R zE~FzRP``mK{>?YuR~Oyye+nnd^}=NDFY)4-_6hD;z1dwL6)uJ;3LQg_%im3gRFZ0Ot_;P zh}!WQ3h95}Y7matta;EidRsqevZGoCZGYV8Gg^CBGUK$?WOM~3@?i2uXsNdpK;v`? zoAVLdU@NMt30FB3m1bYmw$><58r27KE>iHpAIA6}=qd@`AEG_Jc{0i+JT^uVyK4!H zl-2p7IAsl#C05tRWpa#le*a@+1u-Fe*xNLB ziqDOXwo{?+b1MF~1t+a;2|oLbM)M%VLQZ&^&UyxUxpuTSzCyPecsX`>P^#~JvXF7E zYSZdhqdQuVfJgj&rE6QhP@c|bOgv@SxHqb&O1Q3Bz5>QKS7l)y=0DmGI+x_x zMgf++Ngit$6OxbK|J9}Yt*c{4A^;0Ji%@pPI7_g{-6M~s5Y3voiuJa5)pXyjCFb&3 z&M0?EJ*P57YX*|URsd3HlI=af2DuKokJLk$edgNCw-|20P^BQBAtzn5Gfkv!m7)go zHlUKb0P1BkeRxE+JNs9B;fsYAOxy2?96iwy)aLKw);Nec6pYo1QZeF|gkf{zPjGgm z$01OTwy)a1(k8jqzw!w|q73h!JgLh_LS=bhht}&@C;(T0Zb0cPEd3p?HTe3nbOGOM zBi)Z8v!oicN)wX-XsuvU^52@FWDoB`5rxKeI|)MT}-HvM)7CX*azeG!c!DyqdvP~t_VbGQ03yuCFq#{@G#8s zhhN{E>;B_9%m*ipu68o0NF}5`>+00CQ@RXAm9NZ^C?1aTOb{B{gQgv zY5}*)bav~yofInNnUXf15lHOKB+Z@MIg|qm5YsgRbFRVN7`Wjqb9khbrFhSrPe{eh za!R?s9mAb5^JrGnG|tMb%$5nSF6g`=L~#9jJe;OI6c-Z7-hb z$PdF1bXIq*H~RQ3PZI384U~<#g0P`cj+t7t`^zLU2Z7}Vk3e8)l833>pM=iBSL`y8 zRea2q_o__N1XWp*tVJ!&ZUBB4Nb;{?Y3A!~hnDwJbRItAp-N7U5855fl64;rc@oegG!DKml1bK5^)&Qv~mlMsc0L!dz=Z_xp#dnSE z>zAu9-by>Ie+t7bdL+e!FTOjf>rGy6*3c~ZQsL399oTjX*$&7T8>$pB?=3-%coinj`b>jhxr*`0acGv`E`sVe+ zXSSgicX8Hf$0oLqYSnd{B>`JmFv$_=ygc~n3hvQhhDUro1w9YZa}sjM1n z`Cy=Mlh!7c#~|n!9x3>&=(XGazjp` zkVmbR*A+vb=Jzwe%~rS+^tCdKL!nk{(i^Jql2AjRNe*V|(rVrctkRCXBU>rF!27C; zeOUedEzsa*4;D=6{O%0d+}QJ-Aei_;GY~w&z2#jIRsBFXoXkhp?7qE)Rt;$nH`*t{ zZ7DuSd3Wu|^iP?DyM_On3ph1q0v9hA{?1jRiN4g`d1UV4`2yjl9H8n^WzbqlvzG^e z<2&MeLq6W>rCR5QTf-PxAAy26eb0Pgjo~;o2^9AVk{pG6=dEgN@-xx!pUYcshep*` z3rjb6mYu2bk}9F!>z8IGd^eHNk>M(7vfv})&$#w#6@IC9p=tiO)G=W#&y4#ZJ#(Dr z`obMK-_XH{KDOt~FUf9JBUYigyRi8O4qN{5W%fG(d1705kPEGkU48<-u4nHuf62e< zL-wI@Z3`eVmbGl;xdNY$dWG@nv_WEOTLF*whXGN;M`O%rGs7OOx5Bw8_7e8|Sb96W z`nOZ@29E948Aaqs_!#woKZYPw3K`EgPvMAp*w+x4pbLLJC&3z?n`<-DUZDyc78N{g zX;eQIFp1S%Ryww-Db}CesfN)P7}L+-Ty9w& zWnJPRAW2I7#15J?uO4)FLR1!kzmq*=&BerjfA#&XqtPd_hgbGYfBuo5Y$PtS_bd(ZRCJ<5Pr30t>(7p z=9EDl1gvU<``DuE!jS7H9O_4K(u3|Y6)XpbHAcG+1@)RbeE45n;8Absd$S~v?nvXB zXPq9sO|Q~YMVU&-&SfsD+;C4NpvK@sM*=18^X+xZhYyV_eeiVLSPL(Ylkj@$JrPF) z&2U=L#^^I9{_@onq)DZU@Yfe!4~Jsx1yTXJAu}K82Z>W>-E5zv0{<$10=%WR;Ul(JgGKxek*~B%v+rA4H;HoEm z7hQG&BDaxvS2Bo6e6-6|_@h9ibqY8LeSFk1xiyh|pu8jU8s3XK_WVW8Y)pCalBnM^ z9Horaj^{#~_nOp@(^>PKhqdVV@nzWqv>}5Z0#5_8p{mklRDE9KRz?l?_pU-Er){B& z<>&7oBJ9(OZ*8;l8epN|xK6j-uK%D@f%s8#5G(eACy^RNJ2OJqr#q;Owmw{n4AEXG zirp$k!bkobq4E@kh#Nm=PH+Jbav33HozNwRl)W_m`mAgpi4&HPYJ-Qv>1TdRd7TB< zt{c1AXnXQY*=U({>bSNk(X_)9G3#|9t{G>NLR+CLN; zc?ji|cxGgm!#hfy^kbGK~! zvJAzqHLEU_kiUOgB>uuCrEJjj!){lMLkiWo0q?IPOnc+OoRE>JFE}dC`*)EDxOF(i zl<2SIE+}S`Y(jmu6W*yCo*MzlgOCnWaWThG2GR(rN1pv3xJLh?YPqxfHDIVl0l`{z zT>k{y+`)wA939}~HZCaccstImBk7dD*1cLmz=gN_9QAilNg=-6m9^Zc4$&4YgkVuX zL%Y1$f6$sVUdNpd^ePFX%(?KN+I@J8{9sjmyJ_&$A{|6Sq|#25}P31KJ`B(VB8Yxhgs zu9}P+*7@cB;h`EhS-?emxU8m!qL*^gdf9%745KT+AjiQf;p+e!x<2Iev(GuETl~w` zIiFDdo}#2e;n1|jc^);~V1cg>j%zEn%ic{6Wxfb8sjHnn(`-k6OOVak*vE|Xq-Ug8 zRaVo>FWNGF_i+zgc7DLaEafO^^=&S91ZB`sD~(WMnLzFHoi++d2TvCp)+{W9yAVB} zq|m~wUgR?d7~#(AbY;_;HB_y3q3WA~%2@eL<7SB9aKvfS^?XV0k7-?>hTg0j*8irI zIDcf`Q4Of#a^YBqfp(Ww=Y&X&eusQfmt{ zjtP>qC;2=a*f~g%3BX0}{@{)=r7ZX%$!)>Pa!8ai9SUva@O|c^<9z3azQqF$+q@I9 zsxB}h-5;JNzxkj@_DIFw<%8Y_-@baB*4+kN#@J#v14ku5$U(a;UvWb&>FUpLd*`^{ z@mSqI4%gbzN`r3ws-Df3uqJk$y~!Zg5|4_{w@adV=@ZiRJ0x#!6FyXRP~%^P1g@f` zgx}@KKlzFMq3U0kIc1a z-k?LpyF3JUlwq#QQp&p>=MP$5rcJ=*lb(R(iCX&LWS60q;C~T}Sz193Fg(WGs~b;; zmIfEk7LbCJ>d!MDzmt=Os9)X{C5Inxh0@Wm(@f$IcYD-aa`qOVf_H!{W@2fArV1bH z7mQ&xnya~qtQ&jpzPyy|2~=NP=%{)zf8IYGOT1&*m4eZIiD;c7_oS%Fmsel?cxv`G zy9dGew3Kp_-Xx_IZXukb`im79nH;SNc`Z8Q6^1SgCM^|AxT}A4biq);5Bj~1N5SZ0 zR4?_oILR#0w95ckI1*M7-i>MOn}3y&8562U-BuL87_|sxRBLCBUo5@FXN^QD_=vj4 zrT-pEPRBekLe+8JNOP=thNiU#sSYmJy9;7>z!55nIoq^kc6CAc?}^@1AVXbiXAUY2 zF_~ghYmL`K;iP{g23eI%ubl7du`}grB`~NCdR5n>AIZJsx#o8Fqw!;fLqU4f$;|ER zCl-mgzMbtHqh^WdNiGkIVef&VC*N&@PbGM4Vo71X2rp%^eQ`#uWz(X-%O%5e87+1G z>2&aQCu>FUEgj3<<8{#e=;_r%z|o`?_fxd3(O=&G>kBu;)7LBUe%`_~U{-oWM3A$- z@MSj=K)XGP!e|XH`9uGZ>5<~Exeu}4v*dB5`ZUksCHWgM$kfBR-j6ufJCg>Z1MITb z7rV~H$J@5zz3xx;v1Hf`J%AizXd~Ogps_ZrNnusa+H!~yUUs@yf9_CzCcJ|K#mOUf z%dlJc>zCaths=~^KVK2K0rtr;^2Y7C#iV9(dB(3hI#ki@DB(Wa&4b4n)nlw`e;; z=y1eFiPZ-casr}8aaCCvs_!`Vg9z@OyC&r*vg_dlll*N9G7mu%9d&=D7_A}!xf~qB zL-v!(qAX(sYcLQ{`I+a20~~n>-L{c!Q-dEt3JP)c8%m3uD8l1f0f zM>qshLDGaNOO5cxpwm1!QocXUdCMv|NUsb>76i3hxMsE3WE2t2izv(m>bM1Mji<>( z{IZRn@TA&X;<$A6r9Eqq-W;Y4BN2##)@QQMIlG>esg6LIdzsYZJO1)4hKsoUlhT=1 zDFDlcz5+^IRfYZK#m@Qt*i*a4Z6i!pTTW6u2#9iHE#b>|2hAh@exCX(!Gg}H+}Y?K z(O@M}Jjb=xv>RTJo`IZzMyHII?F;s?SQr%T|CGh_9{jkF%vG_No9+Cl`WcnT;mwyAb801-|55Se_Do*J zH>Ye*GwB)Q$Id5diTc>z>1F22DgL=yWgviPY$<&r7a>TBP5Tk_A*N>k$Dp77ja9rj zC~3;~%e3JoUkEpLUw_q>?7Lv{|jDwW` z9yM6bfz=%({0XaHP;QmfN(b)yb|_@K9o-?DsKglW9*17S?5(*;1`eINE&n>WxSq2^ zTW+{AclN&YVllzx)QuuZWwl>K-f%%DO|^ORffUUb&q#r=WWSKLe&zHlZVBjAaYJ)C zJR*l{t@6Qyon7E?x8}tV1U0<=@ zWA&Svi1oeeDCUYhHpU@uB_&Zh6;0$r@AuvBAtjBIjj59SZ}+0bKnKgQsy42Am0*@00Mde~mCF)fsN8jrw;KI25> zctpz{x7`xWU2hRp2U`5^fYx7<3FQfFeG2hY`VBQmB5Kq(fPncaJBrFJTauMOy->mj z3k;3s4r9F@>A`pV55oMpWT7!J>o$d@fh26;@*y*eA4>cHd&mDZj%uSNxfAD0|p4^8Yxu$G;XP zJ98^vio*ow@(+>@GuGZ2G&ahewf%YTc!$?)QQGdBR3`0d(d)cH2k90HS_tf=o_l<& z%`e086rPj2$6I(aIzaA5^8Lu7N@w$ZkjaSE0#D()>57a6P1+$l=+v$$TZ$b^&Q8*( zBg`V+7=o?El#~!oN`JMV4Yde9ZBr>pil0DRUF**EVq#qQX@ZqLC(%Nw;on3Dw=F(Q)8Z8JFsj$V8(&V`A||UNv3x)ATORiFgh~It zd2s#?<>M!pjTIasf1`Zu6r1CPFv!6D{sM_BPX3Lpi+9TV?T=7Fm50*j50a5_MleFm zNg5OB$)B!Q5Dx`^_cws}Ru;seE614ZI_`{w+>nd!3;x~(4%CM;^_=k&u5@u8-3c|o zz;=-peSQForgi9lddZ#-r0Og{uEzP_B0&e9V6n6{6vM1j9U69GVT3~^K=4%mCTM8W zR28cJ!5YZ4;BBk&@Y{Of)+xZ83ao6aP$Se9#-f}Pk}D+gLv9L{!fPNhXs=d3ubYU2 zf*DAB)3VXoq^3D*9V(JGGHxsA){ED$BAs(P=ByJg8jFM4QIY2itbb-5i<>l#i5pIFemVjNT&Nf>n-gu|R#HR=z@BP$8D=0dB`=o8xof+}4=B2UH z06&C~{!nGgDR3k%DzAIus<9DlYP1xXi^HyKYmuh%NPb-?Dc4T<WfO=g6pYTcIyL8>mKjt^9Bs7Ukm<(VbkcwB8w zba|dS%`-n5>(QsUMeVL$PX$P4L386sveSQr;l8@Ou865+&RUxI{Uu+2%|Eh{C~h|* z8UcQ2bQ_g$$Jgu8>Izf@X#YzL8L?o_mJ=6$91y#wCAUL9MOwtTLcHzKXyn#>+URPg zOYKDxGoxa#_tR5HxJ(3H^0@J)7zu|j1rk_fcy`M(_Q08z;_|tg!uJj3E6CDk1D7T* zH6(F;e-zfDpIu_)#C7~O#GUQ^J4So8(A+pNz7^mA%FFD5|B*@3S#R&@NLp~HQ)6+2 zD9?nmY0G$~d)3o2FNJv1eUtC1Bm4c<1Udrc2CNck%)T9MDJGQpO4wY-+sf2^jvWwb zJ4{$vf`IgDbq`86`j%taXzPUSD}~}-CVO>g=pZg?L*Wdl^yoLx@s8lBhCx?Iw zVBnHNsQZy`mf$?KtgRf6wUg3p=3qS>&WFljwg64fRt~<_}SOfF?v5sG{Jp(D9ozm5JHy=lHKN3EArZIg7gO=`gP&) z_o9ess+!yB)k&Fb)Ah=2rjf0N47+6lxqqgG)<&20D9RQ&95p`t-c0g5GYMf=+M|h@ zPIC?d0cUd%;AP02!CsS1_yHI59gS?OOk7tOdm$KQi3 z0VtoMH@+6y5I-uo+>&S8=`53$0@{D$zD#$NuZ1l>I{Fct-I5nOtb@~Ca&l%GLG@Um z74)Xd_5+v3H*xR2;f%szGX|y#aRfoJZ5~Px>ySdWC9e?pqE|iQ|6%%WOqyp*Kx>Mm zo*=Wo^mWU_o+%S=RUK%gXx~Jl`aILSwap+U5^}Fn>^uXByHONc(GT7n z4l6(X4H5kQEW%$Ha&(30m8Hy0no6Zf>J*YR#O=s=5kg~IlswAo^F9oMshz*%A;11q zC;v;2?vCTsndG9lx$*A&>O!M?BUn#+x@=FthKXU{sn!zSwEpCK>2TR)Z@rj7SPk)$ zHTePB5{|1+)clP3RKNXGCmqG0LbYB}3i=m?YF}e{BCp1(>v&LW_K6Sj-BfsN0@jTD zWCZ^T)n#5a9^LuKA_p?9hw1#zZuZmTmV1{AV1Q)bjYtRsBu=RIK-9|KkqLtMh;pqo zM-C;f%z5F^y!@w`s?%#gXB z*y6nh?^MgvlwzdNgcJSuP(W3;6e7(kenNY+`eb z#~e+n)-)o&{Xq8GNO@uIhIGLoSdmk zX^gq3nQ802xPO(WFBK)^JFbM0L&bx*C3o3lkJF6XMe75#QWov-r3 zs0*1Rrpfh70uKqB3uwioO3Lsx|<|@XLb*yU=BweBC~{O2iLi+jmRlrq?2cPX z48D6<@Mm@UeR?w)*>axaS1G9jLfeGz&d+TlhoImb1D@uGQvAYzOFjzf0#JFPJx<^l3rEQd$b-mrKN3M`?z-wzE?`d%oR zb7M)k%6l*&OUf3bSGRTxa`e&Mk-dN~NYr%FO%|^MnY^V*ce(y#m5<@PBIz zkQ@r=fZ&uDtd#5dcV#Uw8F(kt`5;g6G>_OxXQXHQ@MZc33AHB;fI|840Puc}5*(Kf zAdUZc6PPw6rcCC!8;Uk#d~Y1T=mD`uCOMh(P8Cm=Z|7{iT6cVZ2xXH!R5^{EjuN9s z>NG}Re!Fz1fUPu}h_2^*j(8R|TIK%}%-I`9UJO8q^|7&-&ws86rRc!XWcY_QcfboG zSc#|cBH8V+#LA2=P?N}2$$88$m|J@(5vC!Tt|{qoETbZH1o~|r@?Y_pv!Ol(nkvsg z)7v3-+opN5(%qX*&$%Up$cXQ$Q(or=tGM&+3L0X+(aWlX^lj|cM|8h%jwl_Z|22%v zxF!Jbohmav%rJ5LRZWoh84AfiLbR7WC^AIi+#H8}zSx7Nwc#qWj`y#uygTK)e+XkS z9fmnvafsB?A!eK`A5{bm3Of%U4V}8kDs?iIDITLYLS>;_Onj1s6Za0#7aJE2HWR&N*tI5gqd@Vuz%p>2F(e1~vls{qJ0{n{Z?<-|*)O)fwk) zv>B5lGg7OE!QHMXIhTIdT>g8r#Xptz>!MD*v^}9>6%ySdgS3}j$PCIe4u_YXkt9m9 z;bU;w+PiDER`Z9GUXRC9?S0)KOINtOb z%+;2>ok09-)V=V_RB{IZ>vmZ%_s?G#;Ipx5?t-fNW`)MM%})dc%eMmnyYxVKd}ti9 zaVzMrK3xXqVk04{{s<8t>52k)+=BAPE6GB#;Y$Hgl^l)EX`zluD+DG!8^Y*qMr(^` zHR$uP5)J{IZjNYut;>%zerK$uGYnX@(#p?#8YtK;ssqnGxdpE`1!-@d^)|nX`~w*l zyZz%Q-wu)=EIq@zbSM5>*Szm_iW%d+80<=*&yreFEN)i=k3M`o7-K!4=Vf{XDl5~T z*YPMdaAD(2AlU`VQ4dB6&|ZFeAQ%h$fE6&2XZ85u`%)^!h3Cpg;`SZ*0It_Jy?C1% z#;`eME}ciak;=#kUbK|$I{?l+WdHhi)+p``Kis3Od((Ik;Cgv6%Jf6K9bA2BIb!WR zecy?_BfC}Y04g=<#H$!)z)gN-_VwZdmC@woOhO`j$z4bb8w>XYs~}^#ZVwJ$$8R4=5@>Tp57|4bM$(swu!H>bhNy*H*U$Z z(ESLIXnFhylJh`ITwLc}3%RTe6%IpuoB&%ca=lN zC=ZGVt@#{zXeD!9h;cBXIb3!=Hbmnn`jt83=Dv}`Z{J4t2y3Gwp(`k!yB*bO#&aG; znm^ZGzULS9K>7!1x*|f_#09eKrP+&!zZQQU1{jri35LIb-*cKQdz^IDf3B=J-b){k zrp8b27EA^gz8q97P?=ox#8U1&s`^fe;H1aj)vsg;n!yEd!W^6{6hcFcV}5V0@^<&T z$C%{(KDJJA<1ysq=w(Na&5qwQtWCV`F~6B>9M{QJ*Vdpb3KWzIZ&XnaTrJ zHJIklA?%ZjE28eTvEAN06x%_(+T&?qYEEJ2lZegRUzyD~C$jTa38!CZVUJNwTmNH{ z5qdcA7GY-u=zgu_?!9ITzgC{!V4d2 zN&?(KR=@9SNSNRdY#z-Xj5X2XVoMEfX?KsSY5P%(pmT>gGgTIC_wRcEgMx=r>anOn z!3!`2ih>-_A60FTDLocUe3{;b`#+oqu)QDlY=#&RlP~`+(?!qvyFc9wn$1L5b-UQ@ zZE9KXwJbj_W0NXpz&X|LfT~;}fH;Um{Kg4Fcv8%Y-F#~cb&hBEf?BwhBON><@j@q< z2nSq*cWiIUpjR!By<5-rB5+Uh);-~T19~x!$wm$sd^zAyst6Ufqy83j86k}94P?MX z0$1ie=s7&MKf!G>o2Y$0+Jq935t8PF98R2LWWj#W^q7Pf+PN)kb>1aZisPO3PixA& zdF8V3qUkVj;;KJT)gJ+Ky$JvGbA_@G@F8&Og- zOY-4Fp>R-i&t^D>?hDNLZ zM<@kAjfdEUW7wwAw83G)1h?S>bFw4w^n^RN^37Ft@S7J!@d7ZYyY)3BvAAA8(Nla` zjt*y07BWL^wf@dZSE#p&#MR{mvs>`#&7gcS=QB!dHzHn>LMSk26WbS#w_)i17{(^P zFJW~8ytq&$SbGbfRHJ~ENlBM`VWq)dpGe*Kht25#39F<0$_dQhuj3vBJRyZVe_9-9 zuo+?}5E2R-Akt5mvWohhLfrAQBubaKT4mwQFM#fbfse-rBlJlr>Oxp|CyD~!CZ;Y&$%_x~2INLPFQvjx(}~*qR<}L_Xl`747(%`& zxqcZ-tMJj}q0%o|RkX>0-{EbXK)9M*zdsCUQO0&*XXPi^lu@yg1o)YX*PL8HzsBPF z==U-Uw5S;_uN;1&Txre^=;~Ts#AsJbBrV)!LW%u<=sodT9K#3d?VvckU9t>VLt(!u z6-!JuOG5WWekIm82ckQVPHo!SC1m?Cw_RvmZJV_v=T(^l`HLpmIws!L) zaKqH+edUeHS*Q~rA<^N@9k{I-*4k?XFc+-D1=IMVxpDYns2>8ikm3zHKk51b&9HN zg)wS&k_uL^w{XZ48_63}+;_fo@ErrVgX_y`ZMW^>?(A-pLtYn~Q$ii{aGkb914M4r zm)t1uMWM5W0fgUq-T<-N{3;oosxJUpS971J5V3v%o!Jlr%Z3IFH?cVH`erHOj+m&<@fUbNb}xmJ7lHwLYUhjR6_aRl?u4}C`WMV%SP4{UyZX;{X;6~EnY ze`iB_T{sppu-#0JSrS_2j&|W+3ajqLKmsSE+IRnLWAndyFsFGejKkcA0nqnMVuX7Z z_QNPC2kA?+L`HN%lnG$HF`- zk^Ny_`5$}_L}#x(ZL+qnJa{_bjA{TBXyhRMOm3tNnQ2d)`s0b}q@0>PoK%KRY7J=4 zn+-f2ZGx#j-plG82KHJH4y27+8Ri}3c7s?qx>fOmZ?R{hp(wG|TtCT6vT~01(8A_v-S~0cYW9&m2^EE^c@>El@awj0PpQNH-`s# zRl4Zz-^iBC&5>yUv(NLaD+E^|3Jm3ruXpnqFUt>E_q(>iU-ZuksA9X^N|8I@jJR-q zgJ+MCx@u&C*BF#>0^2vViH{Q~E&gIM=LlFJ-5TS@A)f}cepOTSN$JBK=9$N*`TKsb zcTXfAhnCZ+% z(!QrHz-1jfU*Xsh;w+qyufkJ)pLh@4mMTmH9N&GVL$GAqOh$(v&EoCp1gYR^s>YpeGZV+ zO_?sp?g3TIg%9h^W7yOS@dGNg-F?Pk7JqZ2wvwY z-5+&D@9@y9M+@9N9C$|Pq@N)?H_jS3+V7h1H?>6={4!oO7lVbqdY zlLf0Nj44ewR%?IJl=H!;G_?be^NPD~K>r2j!c5g+R(WZj4&ESjLv+cYgzoJ2A!=WP z*O>B9EEdCn&YV8}xlL_JY7B5lam5e((tX+bLt5U>xJhTM6nmZCpq5Up0T|<;YQSPs z3QD6LsY3f4I*W<{$y%6L>y=!&CZ@MtA$5k(Xc7}mz8lYVJ<9@p%fV&6zkn7yo&pNi zcb!LKM0M^uywzLAMTJ-0gE}3J-}Bb%^IT@7YHFu3;kNrCY{#zRWdGXRzcWe#A$KA$ zIUB#MojF8hz)J!?hdDUNB1E>06m~xwwNSy9$+jta$&!|XpA z*D5u~=qRF!o;~*5J@l+F5DfcaH|v@mvfREy$?QhEOWg=vp%ZRH8~%M49}d6ibDzf|X*RFpp8ycA-N)6Z0}WCh z6Qb~!vHVb!8ukNMm9e3@Kxw4lYTP&HoOYS^)}b*44UFUIdipql>gp+B|qc6oH+*aUSC4jOio-l&4FbCuN%}q=8k1wQC^A3{8kIT@o zTBv?&ZWpf_H)lLDWz0?9kUQTvk*{=RdjNM@h|z?=dA4dgo|*RU4F~2a!8#;4IJ$9mBnAfKo(>y!rj$@G>aI*`!jorC^TfyX(HbkB3z+&}F z8gIf=G+RCM)Jc-&?sZ zQs;7LDACFS0R7lBm3d+6Bon4%R9#x9kDOccZnXWtWAt{g&uw%_H*%ssUVs3g z?mHM+4+p4-xN~jUt61zelzw1|Xn^*&!QouFz9IA+rJMA`TIM*(ctGGNhk?Nm8WNyHYz~{hm4xy%1Uj%NqG{5|;Cqm%_72rKdLw z#w^8|Zu{uDEcO$-goCbG%GXVR9!BjlHL-{j&w6b0h{uW@NxAlWbkW4w( zjjky0gNlm&kIRJ3WU_%KBI`~H6k#f~5&8zfaLQbE&Sw87(CUf$c` zf0CrRmf|8io6tp$mo}nEpqWYBOm%!p^HBV7zDPk`g(g9N=E-PxQw|42Ai6OG|A}cj z{j&Cner_^s52CmFvzjvZ9)$E4KJ9GqbIwx;(wCR?ZY#!RI9p*zT*NO-Oc$Mdz=a8VCGDVl{&)k9>ZXXvRUr05ga82){N0B{zUXKLGEN1 z`x!-j&TnCipFEG~-ipNdjaCB&EJmY@?6C=?uO znuzthk&m)-eL>SJg0rC`b2u{X*pnYOns%592bC@0RQTKg!JN?__b+H>9!X93FRF1v zL$ZAkmDYY=xbu@EOl9HP$AL;JeKs}!1PierPg=9R@Uk4Kd=+g!U+R?5q{z)BCEFf| z+y)~=Tra2e-(-6)2(WIx6tqy$alPz_o|+kTKG((wJ!Z{^OsFT8x42eQMi{NqFu-cI*M4aY}IxTTUWLKJ$3=c~WZMM&**Q@X7>GFlve<*$@dO!&Bjw*L` zFB1Bwz74-7R<&hr|0Kll@z1ZT!HzNyGs2+G^w!@vah)o^;1D^iu$DtOH)h9MOuvkb zT4SXBQXEdZ@k1~vQG~WzbB?iiCj}a|gyWr7iYjdni$`XkWT{J9C{^-g5wy6{_HPmx z!%ptZwKs-z$D(I17<|w>`0F#&U8{PAOJ)B3z$UnZfHn1nVNq*MOg|@QkK7T*kRopa;`#EFnqlR&-8sF|z7rc4 zBfHDy9_#Xc0x7$9P|~6ti7@2Dc2|KftK{!%3;`LE)UeNa+mzSqr>@nh%wKm{0q#SdIH zWhc8{AJ<6X^O%KM$b(!*Gz>{bk}H~xD(tGk-sahlDL9|0kgCmiMx*7>2Wdg6e# z7V?TeccUcoOtYwl#d>zYvCV;$(aDm0>3jKn_yf&;Or5p#4_cy}#gWgqeP~Jb=!i?Z zlU}Nbt039GZ?oHIPG4Q%HqU(Ewp_92(4#)!;S(IS$JJkzVzb||vt!$~ZFG{3osMlg zIkBydI!?#7ZJ*e-ZGIW!yPx+j?7dg5T~%|=D;c%zdMWP|fi*c;)v-~}AJ&rd^yh$9 z1W8^O=VgZZmD;+1F9Fnw>>iNyT2n%G6hGX*<#YwPPqzXNZ zjmZ2qp@rwqUq1ge}weUZ}0 zIxKdSRmv%w|?Y9L>B*EX5S2ibQP82b##WNHIXY^jQ1*E@5f z35KadR}CTHSSlk&EvtK}hI{>tC;DA284%%>k75`0#+?$o<9deCrYV>7+A#_CiTY8- zN?0v__5yco`4t4?;?5lsWTqOoNpcV$j3383&{k||gih!KyHV!3XBu&t%5#c+*o3TO z2kP|UlJwR_PuHZKy34EKQ)AYMzd7AI5soS~kRrua-0*%_MuWYTWf-EcvpB?1Cupn~6{n$i8?h2MW#+BQR zp+=Gr!FQZPZQK3&MQz-It0&TN1V=7h#&^iv4J_o|MBe^xs0nGeN;!xMqZ}~fP&`|h z7xVnI`~jNXj)_Vp?}|(6*e84o%Eq|IBm;=65+cVx4i8;i^#JM-DYHCbQ9x=7#I;c^ z@&XucY4ex&O#lRYI;xh!wN(O?e5;|vt)(;u6zf!x z>@we0wj+Mwu)|Zk4l+bH0Q%)HdfkG1!Oj9=Y`thfry0k6*&yr#eoU|Tio^eg8X)w~ zM6^dKLuR3ApKi*aVt?VskD$w4Ss=6mdK-Z_?gT8eEj~g<#$AXRNo{>RZaf10%PHzB zyAQR4gkQSj5}SOXJ_4Cx*xuUDNy1rddYpE}wWYiy^CzD#!q&znRkDB6z2yYAV7yjv z*9VDr5rGpbY)qwFzTWK)Nfa9#BQt`5zjY#?Cs=cJ5jySrHFi*?(hP1mznyTkKzcG` zwy=ePRvXj6ah%PJof{E|29%Z)^6@Q6*35#Wo@;W?OY|*YpZk+zVdy(xmNFi}$>Y>q z;WvW%_kA!#7QRVL@k4ZD5*kM~qDkq#0g8_P7oliT4MCWP^2s1EIX?^=V*H;)eaP?m z#Hu@m7xmnHNMFu(cnom%(Ss8r9|g#O4rKm#djMZP5=qz`xq$Vi)z4pZ$#t?QVa>_s+bGPA4n#2_P;Us z8FS==h%$#*{A^$vQ7o4Ux$Ij4NvKsi`I^>ItMw8~ab)MvyUv*)NoFeK?W(Q2Nyf(F zTm-T9-ieO4lZu+C_Y5vm?YaApC8W?&-YvJ@RfUY7=$r668N&7465QY+TOfie>yims z%`2P3sXXsS;TjvZh7ZmP!?FQQmT#W)Lv5Q+d_$5|nku+mpNRy0yu?_@u7r%nqVfY|_l5v(v3nQ}w;`AdxwqB@_r5 z+)I#zP?x-iAdr&O5lC3bEmoatXyLg5pOZCz`WNbC zvL`hBA5DpDE&byl1(%U@ zd@+?V<#gjhgc^mfKk8|k@s7@+UEvUUvxXTGwMWI3 zou=+l#W7*RqgA2q&5lHp!avzv$RrtcXc8#akf>f9*A4A^VN8fy_T>eSGN^@HXxh{tMokz58B=@B_Vgkgs?Kd1t^td*Y}Zee@(?IO0Wb0Fd}oe z`afi3;!s@dFyn;^`a#oPy47zgrdFSD zBf2BD@eM4xAF(7f895?piV#WgtD(J$D0`DvqNFXuO@ifWx#C5|8yvg*7s*k!hSjr# zCiPd&9e6 N+t<6d;ST4m)ae>Y>(1tM$&-D~ZHBQD#}ssHhE6)9EvdHp zT*^9sQZL}!3p@0EEe*v})}j!PL;9`)R}U(R#xxH$vD#KXvJDjkzf?7eqdT*iuwYMb zj1_3ae@t|W`$EJpxsJaZ1b&-XHSk%n&$O6VPiFKiXm>6~$HuXA|9%;v4=!Ng-l*CO{uPdBD$XPo+sz{4fMNW=O%Pw7TAY@M$W zTOQTS#pK{2H1@TyWB_2*_-lG7_LIukU9ky-;bCJC10-&3YvpkLufwOQ)v>2nmhiW! zORL}vRV`EVd1YI@x01FnYn$^>K0&2xFwAQ;&~-xxB6!*@k*iU+G>bqz$0h0%z_r^3 z!EFI<=^JS$aL%CCM6q&Vj(miDhG}nE&*`I}{R9fpKwxr-+!Rh;iKPa@B{bUXlQVbH z3LXS_j8#@0l|^)~351|(+^#Y5u5(opc-*XN&M5hiJwE?8V5AWslNhh1$$WB=9B8>I zLD35nv#x~UlDg+q$C{|WEd5#)@>E&GdU8b?wXaI{`x#I8c*pXaW@b)Ef7t8mv-J^d zy;ThMZ}90}+>Vcs=-Zu8oCkOe@CCT~8d=wrSZin(baA#UZ*TZa@ZYg^?QJgC`GTCO zZxz$7Kx+20ihusiWNPRm%&e`OEh{DaU!`#ettCiAwF)uB#L9KUiXJyzh}IuSQ~5P> zY03yw;%rRe*LwVrX*>Sw@j7C$we2-L(N<%`T%8gO@+G=#BhvHKC>scqHdG~PaJT>E zlyFo$r#1AZ0lroph%{<@#}WAvMBEvRk`!P3oJ54sEX#6ZZz61rslD;(Mo)6fafpeh z$yds;RTrOJ)g>3v5~2Wp(CV6~P1O2F<@e@A^t6ZcaD{*~0XJkAwe9^7okRPNYd3x1 z6Wa7im<9PAn7Mp})+!tHJBM673ee3Bn&qFL!Kvf`rsd(cEST=40c||^DZaeeHvUaK ziKg|T9nhn&W}k@YqV@|($=jZwK|HcrbsCcflr9ZKogz(Pxq$l}?%ar*cemzA>TwX` zAf(SeWZ6!tS7f{oq_NYo3eY8k@q#nJb^&A3sa+X!yUSSKRQ|6gf+@Qm@6o#HX)tgE zj#(33)4~hq-r6B1M`{L)^6Ww>lAhjoeG`-UZZy#C9rGRRhc(%fI9EN?&M2&TZAB^d z|NX4nT6nPU4qk(*sbxgs^)PVjj1I3j>%haZi)jwWSn5y(vJqK_!O_LwWDz+)!BB=c zUj=dF=(7Y4A3k*XhD{7|CBBpHGB&2a9TE9MzvPi*`Bw)_7K%hXh|{2d;-0r5HVQq{ z7hR*FROnNcLl5d~TYn?e(j37~{mRBjynz<4@(>e;~%%D{HB+=~$s7KB<4?cOWy%>8w|tod2l||BLY=D= z#qHL!YsGhLB)$(W%x%n|27AWJ7pQz4*dXwmf8Q$#FjY(G0Hz6RL6XJ9b88uuFB#&A zgVa|0_W&TMt)u~4xKig%C{(|3{Sgsd;8DqUVrfGt{KqEw!KX|4f2ZV)T>o!lNAT~} zWGB1olZOPIhJ)ZiqrKUb;ZV*l7e^5>Oq-R7%sM!G^!`;JHCQ_`AHZf7yI1BTeZjMY za$fVzMeEx0mf)B2k0!B>3PT61kZ#CyZ5gu*P%VvT&s;+1O}C`n&W8;WI5dogMt8cC zkIRcCb|$y6nWL@O-Mbb})<6QCofwUr{wmAE=2!Bx!8LLo#3@y^ZJ8ctvj^`zz!iCJ za*s~Pb_?$=Whzk21;klMqT7E$lU{OMwG&@yl<|fGX7hals1SxBKf=22>Bzj_L zb_|43;oY1>IJUYQ8!Y*nb$Jn50PT+utUga`C;STMMO&8i;8VyCxoZ(I9DDRnumTkj zI!+km$cSse5I)qK^nN|!VLM7ce|U<3E%w{wRpsFue)nz(gMi0)5L`&gr&l6sFjHMdj;I1Pw zn$g`4JPIYUbo@xLeiw7}0Sr;F270j5Cy)mJL6lDS?IoeI7AHwYrY0T#bM@mZK+n%@O(sqXhb=)(7$u)gdU6$< zeks}ZVBq=*%>i5b%{*_y$rh;1y^tRA$ACDIc?Pd#k~tUp_!z%EobW zq^&s47t@*v=z8cS0Uu&8#gmWOlRgBS62eIdEp=?V7+oDQG1*YYnZ9b9a%W&@KXoIj)Ne0g`Rb+d1av%8; z=5Ta304yQjL>#BN++cc%>U;tjTvc!LyS~RdxDdxbq$ly1Yf$%_N~693w6fe{5c1qF z*PSr<0gN|@=a?oFYbi|@;&cxUYTEzzM`~es$%!^#Ttl_T{7oxtwWY!hmT)IoD5-5I z&OnNQSKJk~qGpgAcC%$d%^1$>lJl!FK8T{p9L9I6tu52OkT_)XN&W*DlaBL-U^yYr z5&DtQ!y-hYvViF;s5yZVP`3|qje9trY7CEJt(ak$$z3zIZVLUEF`Cd6cDFprhe=A9&-?SFTy`7Bq-vsiHYu#bPhyRas+ z`{-Qvrl9q1z@dVqUnVU1Qj4i@G_AL*g4`^Mwyzt+r9{ZIhqZl2!@p+g3jo=&ExJ%w zNJ;z3swsTRltVF)(MLkY;<;auH%7axAO zA~(UTl+iGpIWJwcFz7l#4eGr|pJF4EN_Ly$Q0h}J)K#(NqO;vqat*K$Md5xsp)Sm9 zsIA|o*B@Hb#5oiODiHTT$@m^h)Ilwzx3;3bRWW~JJI@6L`e~y#84xASa;89C97?l= zYohb;oxB+@vTLMdvtA=ew zNYXcffX^O+I~nZ1Ea&AZ3WSbDjn(Q!WX@jwn0Dy~4;YXro^ z^{R~bM|MW8;fv6! z**b`KwTF)9jTpYEevGv3R^AvRtUrJC*(kg$k!9P5Y}?5+xbMOt`QM`_0wYvw%vz2p zdO4#;zc>}hj$^tthqzymaTf*C_ah8i)6s2?Kb(;KA*UKZ_hLeCAIR1tJrNIk#*;C1 zw5iX2`V@p=xt{L*{OS2~2hE^(p%TTf@4fE&hXb|Wi!>YQgT&bwnbcj1^f44w27EPV zDwfdeqGTG9qeDcRrQTmcy;i&%?D^MecLFAB(yfKy=5JBnQE58)rqL{$Hv1<=M-6@G z^0Pqwg9gg9F<0Gf^Dhzx&QEBadx*UoTOPzvNlpm_z>G!tb53C5^be|3a$9XdXa*_b zXudb<3|^cYGc<=5BnZQ&o&9FFF*<%%T;I8ZStrV7)sLlM11fKm2iB{cDr1j!?!n!) z8?>pY2Rk3e*g*YBIO>`}mHhS`Nl~DZPcO2Pw`q;RziyiMja#c{sCTC<>-+gj=qJzaCc#RM~F1MX~0I4*lP4OY7aOy6(N&5 z2@o}GzT8s>kZ0+Xgtw25eOxXkjTVGNgeBML4!Bax2Qh&Mc`hJgg#2hLNDD+|J7nuj zTl(W!7XAdU)h6Wq`vz9xj?+~ido5O6cVbO#ibubsc<@nVslTg?U@82N7v+P8ya55U z;%;$?;4xMwq)%axnzuz#tYA=zf)|6OZRhYhOAOqai9s#|{#8IwF!FU}?!K>%nr)Ij zKRpTh9vY-N8_nb_N>*xky?2$;!8_gr<@R>b32*Udh07P7r*7wJ?td*oocPt>R?Nmo z#km12{19mEF>&J=jG*Bq66!n8$3HLLAaBu>ERcw9;KL;~6d~KhHLd|95OWCy9?6uh z8D@%S=epvCp0XbjBfbk_vY%OZv3*CP3as$CP3cEi(0p*!kcA*9oa?5WeQUy9W~$l< zDiA>sREptxIc!nUZm#wpn6~E$o2P=(sjZAjcO~B_9`Btudpt;J4n?Y7-aU}UN|&3p zaelFy;3lW6x+KgU0Q9C!Zyt0mw4X5gJ+QYge$ZcZOi+MkrQL?S?yZ@%jV36o*frf9 ztB^y&5n?6fxuyr>>}x^~FUUS&qtf}p4Fank=|+BnDWw%3L?dGj~@~&|9R=uHer(I9=5Vo0J81H|RvMWd1NeGV#MUBf2kjn*ZWs z9`sA}qT;^U$6J+Ao0oKo+D!urFz)Mwgk^gI26CjX1`^w2V+!-(rAwhlI}h$aZ7>>@ zMao}68T%4ZrgXZiq2w|?vh=&NxeL!Rh~8mM*zuVQ|AuxXhQ3 z-C=M-I9~cre2y}<{qwT>FGqAs7pFT(HzDhi42z7d;G)RAvS9XGH>9DjK4}B3wSFfL zx$-pZ#_s?MHQhJBhV>DT{>d(vqv3H-!QrGg^A+R4-Q{%4WWu{7e&wdN0~Khe5c;c4 zVe8*~G(_9#)4N7)>#g1jx)!k+d3jzbvQ$MxWZ4B<6^Og}8gKJvSK*T)m}peFt> zSEOq24~6hQ%hlTBfAlg9F;ZTN6l%clQQE&y4f^9UBOJ$x@V zak05bp-a*_rsX%Fa?~cSy>z`Yb=H^Uovk9^Cu%&HR~A#7Bn`Lya8RT7Dzo7~qIZ!4AkYz0mawMx9WH zn8_a!5gm8ZD;S5dZs-1+WV)HK_8s}^{Tuilm26lTxsP5R5C<)3(#|{9rx3MQ5LvCA(4TWM#3JXv_I&A(46iGX9#NO zJY(fpzW7qohOSy56sC^xz`Oj_@Qq0_un8mjU>GS2?Wn{D5+hxM&%lC7(`5FxJrRh5 zPzwfubH7L(^Q^W6pl)mE=JGG;b7tOq6O2{moHc)CUSfu(p^;Xwk7Y2wga=s#A%v74G$u za39F^OK_yEpHb?Hc=nnm3m0r1io}pJ@^wI@icG|eScb@POY!siItizhxmM2*DJ7)X zsMSvEQPQzbAHCwAG?+py;vg3nRFBWpvO-&%k9W`#@94hxia);8KH_0@xTe2Sdi8G0 z|Dgx(y=iZ1%(?3c*Riv=h(`d1G?C7wk2VCJAG+oF#J+r3mcw@NLNuh)hP|bwdC;Q3 z(jXI>ii3_9hphtt^T!K9(Yq+``X4o_x5&5>^c4OnIGnAMg|oQPbPK?-nxU1G>0%k5 z3ToaU6&o|ylR!)1z(X@f)mQ*x=P)!e@poNH-!$7m_-lG(%YOWL<^VtB&%W4K>)CBl z1MTaEZ!S`bE#~P|c`of?xq>QPp;SAnO1(3K-9)^9vFpg|)AETMbf)dxKSY>7Rz6IYAU z42@qlLhhi5&E)%#x4KPQ@pwL=&8LL)F@(Ri>i6}LzBTyqB-%o>0#%3tXf-U3?$L3s z?ZM4IaVFskJ@#Erb$lm$j)SZtx8fu2YIa&qDG3(Mv?7txBPnq|E{UA+x+&G7huuND z1Y-UdzlsDhmkB)b$xk%4=A$g|jQ$yf|9GQU@ZIfJY>B5$dz?n~+*uV3+#&}jDoAyP zu;sN+T&0!_ngIMGnvLGOQD}`iYcs`&4e`RNgW>mv?CHQ>f#AJ?l)T+*qU02rFSR`* zDVHSY{8P%<1Lu5~`uXL;nku6m9Zx2K?6oIaZL7#QR1V^TY~p36>)W_vX6R2anA5NB z6vmK}k`Yn&&oZ``XE{rkE*e_6T&_me0>A|%v=#}`HiNcBf4B|!C z0)OAQzp62R&~^zIYA){?KfilWEpNDcox$WVs!J#NSXBCxUah51;T9g)R$C(<$rj`& z`h^vrYzJ!4$e9E`4c{`kJY)7MlAhXo9>r)-1DN-#C>a#>YRL|Miq4Vcg9;Be}gg7A^UHFR2RCaUU#|sx)2AwIWcfiCgnSo08X6O+Cu9skuKt9jck~ z7C4U|(5DXDH>=Ebe)*l(65Y$UU8&oR#m|P9^A6L{^n}-a zS+_!n5i@V&F_p2%V%{e)YG(pvua>YnIY0v)6-CWa`R0I?)z4k-IeSEG^;6^*ik_c<@3v z*yIdAaV&2j8vyA_{bif*a=QuHZWo8aIY^?o;tEaxC@YUmdwhXA?#H&Rn)^fLKW6m{E zfzyq|kA|O0VCAS0pQ%!3^8-k%xcckXl(Cp+20I2w3mFHb5K)PP)XTve7$FZ>fsq;1FS}}*M6Py zEl*wOAM*@qhRraDx8rn0WvgzrbX8E8`mhZAEvub|a7GijyWW@YNP!X`Z79>(6ePX0 zRGMfj6Ann;3d6mn_4)Vi8c5fTQjUEUzK2_rw&V)fQ%BGq%aq`&wN3XD;8S!38|L$t z*$D;J$wj&UZJ==&zoge7r>@uuqfcd=9FRo*-SoOq z--NX(X1c77%4;!8u(cnfvM35$Y%*p)LQU4fM6zUAl)B=&bCyiYqG9&klI6WB+HDK- zFkZR>F|B(1tR~o%gFAk&pD|sgL=bvs@uDZO-YHOFq1bpaJOeBy$m|uc8$HG~iH0%P ze}=uK9z1j)MlqM%wrELukebFIxF<&Z>pF_j*)a-#KZ@c~5-l(M*}NN7Hm$SU;-F?& zB~yAThZtW9)>arE0`R*y#5*Hgx(wLZ#RfnXY4hfC}|(b994;<&F3Sl)GYo@My}7py9dl8LV?Jt#o47QDOo z$~4UyNqJ@*Tz4Ii#|^qDw^2YISW$L4P?rBf{rQ)pelruXzNq~BZKi4pMd$0Yb|aW~ z;+0A?(jKD0yCT?)#Xd>d5lTC(p6WG=vTIMLaLFe{w_kn)ld$|*SHHp^$NtVFvJY5f z@UBS>9iy=b+KnTt^DU*3#deEgZcPp%)7N(N?E%d6VB}aAlro^^UFAhW@pINObr30e z#Cw&5=_Y5#z0A}jg+Uf}EN^#zJ^6j3cA`kE{0{Q6_Iz3|@tyFz@QhclH#tFb{P1q9 zXzH5cgcAKTJ|sUcDnbthc(pSqO8;uS2(;1>TYp(lc2qKaBsy#Tr%NCL8*1Q>ppe3j zWhsVwTmKr2!*)ib$X&B@*b!+e+UL3I3xQBDC&?Y|D&5#zQCaXNS|l+Wq%mPy(b=IJ zjz<5|#LS5^uBOTB(+^p|gcm%Cs_yMOGeF3mQfefyI`Q%Ro0>Y;Dpc(9anAu-BTW+* z6bwa`-pGJi)er7JMAfh@KHTJp>RxCG*p%e|C1m}DcL_B_yND*k6gEXnyGdi1s%u? zfjDTM%5f+5$G|kz81Af+%-H*Dhm_%Th#aQhPIcMyXRSB^Lw}Mn+2_%H`3i;2PoZYwf8<(nz7~x@Gt&B|I1$4-=Pa$ zy2s^Wka1FRZA==D3UrOE<8Gc*2kg~tpjCk_N%yX&`~aSr`8DDYhsejaqDnbX>Q=c5P9_RjjifZ#aPMZr#z@j3{5r|^ETI)+6CZK5LP9mHh z(z(#CT$NR%94>&-p^+r)##_Vu@Tn3RBt@q|ik254R|1GiLJlGHa{KH-*lQEQ3iQj&RLJdxEp~12I(_3yGh}zm2G%-Fu+fLkF9z`sWiiut3}|Jp^YJ&BdF{7 zCR=(>#1iLkN<_0=-C#2_((_5~Tr?*vQkU1f$ZF3f6?Hp91nnw(n~dS&MfcoEzEujR zpSelKbX5+aNe5ACE&ZZL)qn5pAF{DvMp$uRFez~jk1OVv+@jU}dgL%Ro1_mXVRCK$ zOJ?2e3;AOTRVi6rc-9bO(n|1;H299zZmOwq0D;A3Dsq(4HC`uF)fY`LEzvfg7)b~g zad7FpUpqAx)n?0k1Z)Ab)}vs1zHuE7m_5*8#u#+H(#b^0L*rC3SyksQyU0_!L@#yOA>t<4xGB_Q-751x0-X4TG_}u&F zBmWf9Y?v)EEx=swh39S}l1N2`eWVV3^%&3*cJp@1_}>8NnHyqfhPgB+=34Hq4=P@D z`tkCYID54h7p3bOLN;5(Q<({K#^8a`z>@%3R}OKalPfC0vL|Vu0KWPTlfRn?T6XuJ z*AJ?o=(~iJA0O&P9#;=^vXk4L>Jscl*Txj=ftvegV}RX`O9gvKcRU!zq=~x478wTY zw-^W)&H*#pr#?5x3NyRkAh8pdfqdA9Seg-K4-b+F0t~N9-()5$l_$-EK!@>BDQ%7X zSEAy34=T=|`S+rD2{9a=40mDgzi|_izj?y+l*xosW|g((Pr9YeLdb42+)A>Rp0yvE zOEdNvaP8U^f6kk^Xa;iE+I5~=XnGlahlplx4#~uBFjqkg+tPh8Mmn<7Jr;N4GZz;C z4yOBe`{h1C!xOeJJDNiOI64X6-%GvpZE+as&^EuIsnkWA(a?P!-NJM5pua|llp9zPxLHhfTCn&7w#2+Su9o+Xpo_T$rY|TcAxAVhmoMgNrc{|bJ02|4iIYx- zZXe%Dy+IY~Kqh^wgtzw_lFoQ~g!Oip+Ih!u|F^&IK;!H%BEc%;3hjYSY7ssX&dz$P z<5iSS`goo>`jwb4W}hFMwc-{8drTxky9L?iYbV}7SO-Oi0s5jJfb5VDQrY@>6>tlC zT3?aULbqhuPbaWMw`ft>D{_a;PfqAlmyu3IM3VA72Lc>5*N-d7Z5C?k z=eE^1p(tOYb|B#%>W=#oMUP*TvaqVs*_1$@xD@4GDH_~Qqc&95<}-LGLPhl;E8g&? z=mL%qT#J~WQ_rf05+>db{ez)H&WkxD25!%J{OVG4A&H;^9q5_4L*jUuu`iJ#bP2 z%amA>9mtyU-N4!e8;=Or_@;!vOFF#8!_0ZerW1+0LwU-G%(Aj;izRINS+;k5!W3O# zjmAX)vXgN(D+TIl{NI%0XK%gEEHdC6bsm4MATC?mX8lxTAf0AU`S+guKbh}ZE!vtC zsKAUZ%}W4@ei6A|?m+7HB!M&)e$4Q~J@84p&$umj@!E84GMz77^ERy8vPK z+@b5c_9NaG0gOnR)h@cP;0TPxA=-**ZpNADujrk-%IO==p&)ahk8SpXHvahGP(p;0 zGoC)QJHPTnJxy-RrjBgz6N>F7-U{nIS+R^_{TR0pzYY1e)R|!otLp_;k05`7^T40B zq)uuj*!=0Sbk^sBf_&FNJPOlAOr%vmBhn0aU^wc!B01c`fRNobFY z7V)6TznH2~LeZ4(H%kK)CKk>zWM&akKB(025@32h2)igZ2=h!)O-TP&RdC9g#afMK z&>q-eekY<;?>{X#TwOLJv>OSq2j|?Q4sFUH9fAmm#qq$Zkt0iP`6W~3?Di;UzN9r7 zs+^fR;f{~Vfjg6w1J2*Xm5HwAJ6=mIgK-t1BcLz6xoTeio_xTC$r z|Gah700@9!e?Mb=54uC3{=bpeAFUu8lp2&g60cHW{dSX0kw)@|$7ZcJH8*;53B-dOF6ZYhhSf)Fi~ zeR^WiGX%fRSCyO)K_BH#s0_Q~JX)lhly;9cLb^amVN3$3cA9B&U750|4+*?iN17#+ zt>wpJnbMZg*I|zHLZiSDbK!n!Oj8VT<%8}v{$)US@saf!c-V~r?THx)sOo1x2UHi7 zEW4qMiEw8{A1^eT+@lBOM#McU$F-*^2zG7>=q8gsv4;lbi9~ zRRgjA!gDg9-2CBjC>4J<7d!xErt9}J%<&u4uv+~S8=3ga??Z~;6HUpC-RHdM z4vmoNP`&hDky5_UY z3z@Y3#{7(P!W$)#=4O=Xp;6l2JaRg3j$bbItyJ{^(k3*x%MYQDKhA#8yqh;+$z(j@ zIj(7%SqXHNKLwS6n)1vWd77xXnH$krqi%uXiqnVQ#&2^iJ6vCkk39?zQzcoZ_^RiAB!~fIEzW&fnf$T2Ln)WI0ESAs}wS4-0MXYp@iJkYWIuxRgWbz)LtR z1A+@Xwk<(vzu<*)F@9>!_cA_m)(zje``4kV&_>067~X6J^Kw>xrb}AT6+kimpwiV* zc@5&SfX07Yat|gaKzBww3BqvE&m7a(EBtX`{{E^UZ94}!e6=y@JP|^oY~bz-{kuQX zWt_j|U`vM8aI7+66(Qiod8gZRA}a$`i^J%{zSl0>Zm}{%AL8*!&@r@4%ero%xDtK!yCo^ss-q9787T4w<#&CO+xeNzT00MvV}=Ko5hSk~ zr9V;z(eOnrFi*X8m%%NSdhyDQ!vZL=GMkNqMe_dSf8h^Dx+FKvX-5^PYS6jPUB=-l z1!Mq1HwtmLl7vgqroCqW{MuTi)}he5;(D!hn$m^6?MhgXLJ;KV+8AAm)4M7Tls0MH zh!=){W=cF5PZ;+{bKhm?f`s(&XP;sa-wpsqppPGuFEM}7jHaOH)8NLjz_2VlES5YZ z2cs9mZ&hIR6sk@?2?r6SuuQXKb40$&{pw3431k;buf)NbEWHu`yGd#XZTPW!=){X< zp(vL;Nai5Q^Q&J2;VWa)*z8yAoYM-aHT>MZq6cV79aa8as764#{W6JK})1B=*1IgV(H_WMUt*ktk$5dWnx~e{96jf z=pI)d0k|#l+U_IX#p`E=lxMrUVlk&zTq`&`K7KLo?Ei(K(+l-vjTnZ<17fSt^cH-! z6-9nN>QKrl4(RZkqdHhMq2s>i{I(P4yeCM(V=|zM%@(?beJhqXaE(4+sTbY#t3j=~ zj>?VB+$5t)Itu%-B7Ds&jccB?!bx>yW#V!g)QsEA$WgiKX&Dn@b>xfqQF;whp~9 z`4lj`iT7o@0-CBd8vavy-nK>A+?bl{sP39jXx@rv6E9!3FR89XvAgi-KA=2hmlD^I zCtS}mF<5BJP8uA1Jo)Q?l9|pTqaxb=>);4Oek}(*wSxLZj@S#* z&TnHM-zSbWC(+0kPsct05z!-jH``^}vLA6n125k@_`3BWfFVfoK2~C=XYj(G-&$1l z`CILC)em^V+@LPeS}iV-x?S?HI?J_-yiB%5!_@ zLjBLW!Z1j~sonoSb)q{yif`kT>h3Ku)$Oc564T35@GGpXPaWx<%gKL(5bWtr$jl8p zB$9Y3!v*BDZ-gcRL9X-mJovpZGN;VTaxQ8!S|;Y#D}1Z+PPd@UF!Cq*+Z^FHPD2en z0^_XX_x0|qDGsG!B$U5EV4zzYmFSw44(;j9l@Hfsu)78$gP>SU>~;LIZgVD2W>%Bz zclZ^n&pxV?4yRbNDO#ST-=3hryyAiKvHQykYzu5}7A`6T)rn1DA|4RVfozij@q*u* zcRtpCyT{fY@oFR^;`u*K7C!p{`qAV|#utQ(WMI+4zy>TnR%!I@a@u~Zr`n>RJ!t5q z1}p;?GnaT^hegy?_mOBCnJX{i3uMfWq@a+X!0!ZJsw2c90zwvtH3S@XrIH)n(yRSk zG5)b=dOaqA3Mlq81HzecHgQ(8AW7kb zd|Z0HN^lqX4khC&MRLAZV8_gLK_N^4vaRr!e-tC4_5z-%!;j?U z{hwfd1iE^7wrdc;U$$?G8~sBY$?S6paNALZ7+(e9?;-*XjpVoOLmcO4?FVN3`fm;P zo|@YztUk(n=7K^rFENPZg(%9Jb_iCIB1Sd5k6ayt=p8RjJa&j_5P)c4QXDvi^Z_>-kfPK5vo$0EHjYzh z{3&EsM-Le(D(zF*!i)uaVzHPC1-@?5_TP@8Kl|MDZcooaSoJ>X~wx&*bzC)@| znB-oH>PoM8a?!B4snUKLpO$_DrOBIc)!wOvQi0MdWr$F$r2Ggtzok}5kfv&=jht|N z1Vcwa5Rwjg8(N&1=QJIj`Y@XtkPS$Iuoef zrFA1xq&=o9(G6Y^1_>qrE~Vd?9}Cb5-k9CZGFXcVtj9ftZC%`a7(ZY2niz`Yk%OxF z{CoYyq>h|d=s7s((jH4kJV*Epo)Nd>YK|kIc>wC1?u) zVHaFK;hbWctkg~I*d+&pzJM{&gR(DdqU7% zl*P^Lgt{h6h~zk>S?*+Dya5ulz4)??yYDiEEzA@i7SzWGpfAbdB7`-m@?&WZHKScI zMRsVTUl$Qw6HO`?{+wQvj<<<1VKMI@VE}i`y5Iu6o?UR*QvSJh?c+T2_gW9%pn;go zCoujt1`|K1!rH8#gtlAFZ)|q;zSV<53x%EnVnwDG-hAa1 z$4W6q^*o>p(dSS`kcK{fer68K?QEF{KBU~tn_YbJllkK1S1RPIpfRPidEx$AUQ8~U za`)g@`dq*I?+d-c>rp}6vuA_?E5*A9!|~L5y;D(U+}dRy<{`MHqAY*O`wZ$l(+|3m z$ltis{(Cpc`i{5+_VDgTGP5LfP1;|7GM=9L)eZ#^j0~B`KO1c6m{;*@^|b15J=N?@ z@!f=hmm04&w=Q-t2`dIG2#MFrp}-F#+qk!xEn3@z-!gIi6796MT2D5Jkv1q>Rh*4v zMu(rkQ>G7{R15^e9}V2PN#OJf_vF9W?*bpYdbu#v31G~!*#17&F21z*e762C^80Pu zQ*Oe3a##Lhsfp!^a|+=E#ELRwpP8vtayHf`Wp}P9gKQm1aap#jJrWazx1Fa%N7b4E=|JB=&nCccubI! zQ5(+JzxVVTsFY;Ck_Ltj1oe1DCRkUi?WWotj*Bl=*ckchh^;R89)9a|1$;Bqzq9<< zNf{7Uk`LTV2G#m~o#c9(Upys8?=*8QSn%1In#jZZ&U_oadR>H9)S?!?g~gE1n<&6} z+hU@o60mGxdpqln7m$3KyZ^`2IdEsvb=^8<$F^j%{^thbLov z?{j`ajT*IU?zQGM=h44}9hIsKYd?Fq4W0!9^|&@%Lz-`MMBKcvx+z1%1d`k#=xls& zlw6=>_*EO0pn)(;}Y9>S<`dW9@Kn*Ua6%@11a@yQGR;)6|LzjGJh7lXA(j zlss2!e_qU!i<7iqL|Aa9EeEix`De?IKf~2FoBnV$$&{+AuH}@F0XiNIo2NAaZE;MH zAgAxNx-V|LqTs#@hyU&juo!Dxb4IhQ%a%7_)gH9$&aL_r>W}6D-ixNsL|cnU5@anUuXK(+o6I zxvoF)o2-f1zO8}M-uXU(=hwfA1G-XTHqcH0KwjD+K-<|V!c=FuqD=xf9McM**bWLN zVd@9QxK=2m1A2fe$mE5+6Sw_!sL0<;@I2bwT-v`*|M%E=!hDPe%Hok$*9J|&r&%W` z1g$kYA4nZxGtkW%gxrg?)ST(~Z_D#3{2lOyvH6&9xv6(-q#!C9b!N@)B^t#D@i>#^fXiQ=P5L3;(qtXFa_J+1y* zfOH?!TlYUMjp!KlqyE0PoamG{!W1@;+pW0V5Gq2!3#F}g#W;`LNbV(-1znua&}g%q z6sAMtKO=Zs4UC^F=rFEU(SezeAWnPxV~Eh#b9Jy^+5uI~l8VjW_+NAQtbO?NH;|p7ZEnF4!E6#86GfSSzj8HPk#`c zJir`G6`Cn>oRvhON}qcecBo=~GupFv7rbq^o+n{ofB%tB2z3|Y#nZ+*hdU4Ooz0~G zKMC-vKs>gV!7Qn|y($|qV(^56Lf%m=*3=^MEi^onIgjK1FWb=O7a5as1!`%4@yy{* zRx&vz|62OehH3%HBX={Gj*XuLy98_!7nnq)-t08}<#kB#y9WGgp-*N(;`-s%S1)V& zRiwg2WQIIe7q7jZh(@JTZJfqq8Ap&TIGylvG>nEOZv-HNSk?{mrOj<7QujM7N9IXY zZBQdUm1&$jy{2`B$#v%u1d1yVpi5_(<^ygip9ME8Y{XBFfYa{n#mS-!l^^=!8214} ze++tvsGuy&&kNDfDr&aYGE5iXU{;DkX=C&8)UD-Mo-@XY8+>0R#G_aplh0tou14H9 zsNBtnz|xnm#S-^QoIKVSEi#*cUR;6tZHt>SeM0s|^KK54q|N}N{4n&s-E%VYFz5Yl3qp9TqzilfM5KAs&TfJN_314%e}uJXR7{7 zWR%3Makq303d~sacH(!HGK!43^`$8eg?1;cDt8X3e%4X_FylHDs*+8K_gx)V6c3JX zl`;yQxvk_0()mMU9Twhxnj{5+O;{AM3?m2c*k3ZZo$8U3mwEV~4@wW5_ieabwpESkg#GKkDNmlW>q1B7~k4WXVur?!< zIdosfpN&&F&Pww=d3lS?%nyf8BMH0?IBI(1LNjMBLhJ($|2eVW)i9ky@{qvNN6%h+ z;w@i~a{>-Xh8N&@q|qKE5?qHnU=}0ep2UUmTO!a78i$*P4q_6gWRH^64<=uzWv-nU zJD~6ZB5=OhfgWGj1uanfg!!tiwx2-BbLO?-?vOICW{|6DAk zZyu;LVpKvaaJv#$F#L2%UU%~p(o6>;lcs-9=f`ei@vF*5a9XZ6A<)G5+HwuOOPeG~ zEIl)bmt{YROMaN#8rXT->67{mGX0%;y)GE`b(=hwxg>9fEa3mG(KH&F56%qU@dD~a zpW)?I$hZOf9>-Xe@xoT`<=fJ*bLU(lEk{&PPn>HEh~OP+kaP&Wxda71d<#(MjrFH! zdKyy1?iXG5SApb#Ok^$EN0P!FskKKT3S#1)?c6~l2{bHGb_8Y6Q~cZ5(ccV6FRmZn zDp{xNGVW)(?ngRc&#%TN=JHH4n$h6Dobk~uG&m}; zFI0rt+>G4tow@tQK^S*T4uTr$jJ(^ix%-)|I*LGqj3defLOQs?1_9f;`-bEG_EsCb z5-wP23L@+09~Jiw-aJB zDucuWL-!5D7KOoQg+c$ciTvy_P%#!QNPv1Jb@=*Q;YA#6|CryO?dXHbmkfV}Z}MB@ zkVF{s0{Ja(KPHo56em^%B`rq<}TJ^K7_gY5!DqCi{q5UDgNNiAfA zi|u$LS6265(%5NT^vu8BcEM5Vr_O&Nd?#o@)qCki5_g>Q?r;@qoAV^kQ#0a(f;rb# z$WrKNdmT`6bBdAa6r5_8zrN&E$1lpCSPR>7EWcn)rai zCi8{gC=uxdO)P4c4r`M*$S28weLbN5`D2*gNbyXhm;B9=I1r4=4!;RwRP`i7ueJV8 z*yh>Lw%A&4$FJ}Hfvw9hxFt0v0MX)20b{t?J^q??qpXUb`7wrM%FXS_6<`=b-{CaG zKlk#L#SGO`0LIYXprx@H{p@2Nyg;EN!;=4Fc&8(6tQFO$ zb#lOsjGsu1pW1r^$DUk&_Qw~0HpSWKsu2~Yj}||$UVDS#9^!vjvFQEJd(_Sp+nppR zdBVq=Ke*Y>T!H?JMy-k4x&gNnG@r5HO0tJl97M??3z+69Znh#u>7~+}6 z#S4q+`E{6iTL-qxarY5ejR_UHD`zRE7;`O#zL0GJ$g5ADI+r_?z&`2kd=Js z2$uwI2ZkAgFPDFJ=MnW^9t#tYnE;@yrowEIzK zcU12a$n)5$9UajmgOCaU4nOEl+qy9@O+71>uua3MgAaDYK>9@o?u*H%uvgQ;I`NKc zci(~lVxg9YI*mZAdgg8nhYfLP!2XI5DGYofn)Hkx6HOC{Rq~)iuQqm&b-mqGY+Ir2 zc*&x^jy+DI5M693Y#c%tx3QJelDIJZDZxD*wYTIp-=u=I55c3M7k-y%#PbX<_lU44 zJw+*ivChBk*u%>!$vcXtt&O((sib_hgCMfxzl>D-fMz15msTbYqliZCSZodo8bJ^4 zd=>fw5WHqB?=G8?>GKjRE}P=IiF)OY7~t~w-O6r%#yKnuDiyU=oLvN^u&jd(SdlJ9 z*@;uK6~NGsN5!}AANKssdp;ot2#vt|H5|;;w-K`qU zmj^PjfYYJj5stodgw)+HkuEm=cvHt75r8Lw`DC=o0U?iJ5-Y)81j&;#LpxHpip|TS z^dGbwc?!$RME`e;Hdg`(!C(m^df`5&M$WHRTt1CO$0hM0(7G+)NGO`}cbz@iQ_6$W zT+$Mh;yFt0#dkXw6=R1_$S{Q|i<-SoHnOml$?RyV{B1Q+G=D2C{?6204ZPXv-W_Ay zm8f!=7dSkh=VuU-;v@D80fs6XjDBh1)FCs|(vB9z3ym^{b)2$ZalSQ^@pEF(NV>eo zhBHA+VC#}Kj}-fCTfyh3KV#ooH9*0VK3JSkli>W#0&lJkJYkB0hhJS^VZotlcpD#w zSlF+Y97FJ#9yiIH8_Euw%YJZOYyREvm>n~BL+L{5!?Ywc<_&KWYm%i z&gg0_X1{53kk4&x0u}Xs$qk6U)bC5&(mzd=tI1>o2KWoqwI?r-l0;aYB!`^H1uel@ydh z%Pm#*dRATsaI|}V0#sg;+*`w zDNu3Pv}quNN-8r^imOGMN}%dcQ*eWL*)CRuA$z9BE)Qa8);0b!1$pqY;GRt&gl600tCw;9hz`v zI#0Mo<|I~)aC1zbdE=GIzqx(sD`UmKkxSOKAo$w9Er7A<%NUb8>}ZlzY5fMROzq?H z4n=j|nIt;$WPcHFLImhE2rlkA#6fj0Y8TyS?H>RWs+xpfisMGTwEpJ>4vnG2&kuJd zm(^gvzzP6x-Y=sg#ZCG^QGr2mv#TWzgD?B1oep9sf@G_@Xw}?uKtUq|uExj4s(#_g z{Nz-vTm$Gk=2)UNbS7z*BO_5laV)8QGNHO@<`@3lZU(>K%RQzQ2r7OMtuH2eXsyj? zxs)p5;tT4vm+43{G|mylWQH8ajAiSx`~7|hQZ@MFaLi`{chmtP%$~*&jT8RPWrSUx zI*9jfr!SZhVP1|mdYcIvTfsZ32?L)e2l#jjY(r2M?A}zS_aG{0B`!y94qmk2oWPX3 zRa>FDjT9xAQP;e1%`IlNEUD`+Q_3KQ5e)w8c|Sga{}$iep5mh?mew!rlEHJnG>JW2 zj5w;XEs2--9dibPT_fMMIWfT{59|bs;^P;t|0*QXTKP=TPf}HlKPWFaXSIAfTblfG z30_O2H@X!TX^F2>%Q-Q8wocx!)4DV7{BtGoLO60LhMUhRn6AX}T=>?b7zoxlN4bx1 z^NWl4;#E}p*nEcYmsRgJI&|_(ggz$J^DPB(!-KQN!<$CnfyY}XxI*PeG3$+*G^|MT zeHXE`wY0X5r>vkagZNb9WOEfPzO#hMo3{|@ks7qfcHCqG$ZcJ`74h5V^+jqcCW$xO z;T7-DDBZXJr}FF?f)pThFw*Ym*l))albZyi(Hw<%r}EXmh>#3hZ1+~fnTJ0_G&!G3 zoDXb$CZkkd4p%JEhT?IT$sV|DIJ!2YS!oW&qQ;X%d=MBb7pUZNvH(f%IX-4*&oqGy zN1^@S#PPozzhDD+&cJ{=acp>eZqB4$>MlG+WpEOgITj_Fo;YK+}>}EY{PKE zrQu4Tx&XKUFI&T}9$1haG1*<;AZ9=e5&EH<7h9iGT>#4zNQ{}%i34Sq3F zLaB0v^hX4&3I`UX+5u0a2Ic|czJ~wE-_-PUU~3F_v%b(SwT`;~({%CLhCz#x?(dX- zEVVZG8OSYJX=<1qD7q>Wy(0_>FYgIBM2&cjPRaT3%gV8`OMahgnYZ5!%)aeJcK;Hs zMuaRALKy95wupL!PQCy$1Y6*R9rn#df3e*8mM?NN?87u}0_Sa=ZktICiUv&7`(9PQ zKEAtSFc)RkJT|$-#LY#E&JiK~IO+f8K{~(c8S7ih`hp!e`AUE9nf@p1a_5UK?dTwr zT>oxXfs~g$(&kO&%~H=>D#MX55MF<4lo9r82-$Egcg2opnroul`aQCYyBag{rOZ`V z<;xYU+^h7>?FNY3g%+Xv{Xwu@D_w!Zd9Debc22V8*N*&&I>YE8B`)Skf1hl~=dqC* zfEuG`TT??Kw)O7-*S1iyx1i0=}ocrDGD5#xqeNMbVTr=UnIbqSB%c~hUlwi2u zw^0mm%$hp9?)>acFK`Y!ml*^EZrbQ{JplRCVLaZL*IUa=ea*Vvh@j1DsZ?iwhV6h0 z)x8;?&@P%sAnsl&Smn`Qf|C7`$ZD?yhZYgLzVwE>dzH}Pn>n&=r>s=L6pKb@xPf#I z_F*?tx)xjK(aMiraUWI;zeNjiTCl+YoKM5uCZX;DF*GZ^=d&#`@{WGFTEB|#-CfLv zF5GY(VjpXAelSp^C{ty8V22Vbj~_9*n)BasOImxT=aq{27NCnEUu{SJOSi31P$s7$ zqS9=JQN_B0=+CV@d>=z=S=TG1{$B45sP<-q`W=hjb>Huo0m*4>5R5M;TjIPER2{vY zL;~|v3Jl^!x=DXtT`c6>DAHcv(FfvNihlKT-);Wk$I7-4#okYZL?)*Rl}BF@a<)n= zaWNprg4ldLWTyD(hpqLPF<<$k5RahvLwqN`*8e}e8~W&}F*Rw?Rvpx-sY{9^nwvJE zHC7pibncU_qp}|aGpj=`^Rm{sR|P}kIdj3C`@J`ZwS4T@Rh8vp_t(~j&O`?d?*ks{ zc96J#3Oh5^qAerZkxrSYZ2<1U(+d#w2*{o^mzZXXl@UA^8L?}${A4)g6h$Rn1`$3k zzz;;&@jN{Ex86~DY1*xZvD{XV2V8yVw( zI(pYOdrg`jN&93(3B_{n>~VO-xpnClTBl%@5dWO?&j{t)gi2#=^ilIuAzLi|+#opv zK7K>cg`$JqsLEO;%Ep_Ed-2+o{vtq=%9lcXpGg&n2KuB*`;}~f68@BQ&H3n7@TX(- z*A^=Ob1WpACO-caF&dLJG`fi$rBW^itYFXpO7w{C zRsai}g$Y7`N!s(vZ-dF(M7tNh{{D5oW!ld%zCv|t(Cu3tYML$kIdH99tvnpZm=v+6 z(c84u<6X%$w%af*`AZ4ggfDEJDAljLvdaJM`XCQ|_%rFU;ybq`Fp4v_lA1jEqEjZu zQva-2iJP|r*yF7=)fxgKo9U@N5(J*))sVGL`F7(IoGNOAHx?_|a!j!qR9)_>iC9AF zG_#!eWj~y?SP6-Z&^eK5Vl^kj1HRU$K_8Wy(b4=Za@!-ffNCEmhA6 z>W^6Lj-0=VqF&rl=8@1`oiA%qjEpbaOiFi<0Mi-q9T=R53daz{Shv4V<5PWbxJE{y z75J!cvg#1?W_EV3tvCPnBsedKL%GMFIVFOBZACcj#G&KiHbE_TGhN`+ z>l1KO>ZDELd1WhF;y1{cEa*fVU%UJKqh+k;>OAPA1Knf>DZ-H@eKl4gQxJ7{VQ6d|tNL%i23izkX)dr>RMvU*F z(I6*n&!8R9?K+Zm?g2?s(P(QCiQ3}(fpTb7^e;C}1uR+xxTOuE6%K7hh`=__d#M|l zTR(aUKierw<0%Qke&%KkNyqrRvMw1-8w>Bbh=8}?f9s!DgyGYwnouO6cmQiPC2-gf zYlyrteldE%T(lV^a<5}A21x`Kq_4(wEKqfU}AChs5S9)Nu_Tnr$hIMP&$hdl3gJQsuDt2I+1s~%8mg}c%~7+RRbHieQ$oJKaz z_BRQX!|$QzJ|P#}T8%JS%~c#ReeK4|0_vuMj0od~{97J$yRVAraT!HHs!d-wMElw8 z1fg?a&qxPi%WiK>VgUiBp*J}IUs}F#XB|5}bw0&cDyZ+2?m2ew#`!s)`1v!jd5Kim zInm`osDc?<1b@c1JvtK)e8yta;%!25T)x;Nos!rxb(b8>1=Vu>x?7i+r7`H9lA{CA zY!zI!U>elv>9VV)mqvp2TXP+HID5T$?=2&;LUHp?-$z}T8k7#d8BHcPS_#=`x1`0V z1ProP6{fz-Rp8jyB_ZCnkF#~5RIClSVfY-FB7B`WMS(&YBWDrr`9-U)ifuo)*HXbm zecc8=FyV5oWoa&@rYI{(k3eG~jPP@}4JWE$uVIxlJ`_{a@gLRl#^4VKlFV&=AEuS@ zjYo2QBPfI?5FPKAI%(z_ zKkXyA5PxQVtQ3~)5TS~qJUPD>Y?hLfI*Ciqla$U3yyGXkU#0{f<2Ex=YxW3-SN3RF zDPe=^LCXNa5WtK<#6>=KR7;O?C65c2-;03lM`6wrCtMe19&sDYP?*UOjrEYhn)iJm zYU=Gxmi_p)OBd@?`T_|JaLsDX%ZD6~^+`^Qfk}34W&L@RV0hB^5S%fDVIL zvhxqrT|k#!+SqaP;6k0`HN@tmTB&$RR>KNRgrO$LnHP(v|%tKem8Os+|Il~tT)WdJF)epalktXy(nBBIJ9k)qovQk z!_$7-aYZ`MpY4{_!k$I;!ITo>jmT$RJSR)T9y~RbDN}yeQYZ;U+I5?(j+(jI{i%Ia!POGS~S-DHy99LY~yw0dvyT zK-oylYoXt9-={l~#D>ZlhSFp^lrb8Sh!t$edh3s=|?f z?`(bX)|GM z>371rz7a6#C!&%ZT@$Wc=|}Ldtc#WGZf4bu8#l8VdzIl{9`Ww1Z>wz6T-Endt!7?a zLn}aDy#xWuSt-tV!eFNM7Z7n)^sBEJ!OBDN;Pgw<2YwH?1*%Xq)KL$}1C1pdS#9#| z!d{S8MF=(yB=CEyB%KoW(THD{&uiZHgL5o?Nz-#_cRU9;G+di>%d7~*Px(BR5*x{1 zd|oc3TnLmzETMO@r{0c}C0E?{n%h4&P6jhk-P8m&q2NNQvol*WuanqWC`G-Re{jpJ zw{IBW%lK>;4E40o7-g*dldE>o03U1pm-7E3fnJR#H0#;h#GIHw!v=&d&^C^wQ~Y#K z*|twE)lnGqOJk81PDW=U5b%#1kvDDkvf_mVawE!EY4L?|6jI$A!?f*d`v0Uoqz5kx zsMDjN)Kdb-7SHdk;P&0QaZ-q(K-cCIu7fGiB5xEJ>OvxvJ;TZIhQdlTJSUy@<3Q6r zHLuGN8emA`bL=Ib1a`Kjb-*!lX>eg-bf}mB&_rxP(Zt7sVoBA{(9!oeOd+q+i#W zL1Wj&FYmI%&|G2-j;<7W6{y9gui8JsWbG4>dJ?#(adYi^A`{z2L|NL~Yu5R5=L)3t zg2uW+wCYvN0LwZWtDj$=-#74DvCwGZjDRWPXQ7xiE{aO;ke~pq85X~XwzrX zJ4pK=Wb%ZTfC)(Vc~WR8>U_C@mmkl8!H&C9@NinxF#h&93_0F~N^1 zJ{{N{i(+Ev%#t^Bo9V`_nIOn=&GYlgB?q)sV@Zsc%+ZEYOqdH4XyQriU-#%qE)L^l z)&B`8OiQ6prg^f%6StSWq6D`5<3i?5+eEIUQHYK+RVHG2-HmfZDxA>s!-w|RU3~Yr zs!2-*z9AH6`|%8#Q48;@P$K1_^O36#*FEq^(TQ{f5L*C?1Q;gn^()1J>RU`1k#6^L z@X48rp|1MS=8zsnH-GQMwY4Ufgv|dO(UBZ9+A$zjZ!l#R9Z9QOT;kY52{IVFjtJ5% zX-feoz%w4xRUoh<4Zh=IILXI>QtglRB%iy|8ObUm{9=S*1UzsLuD^q1L<-@`{M}q- z`=Jcs3}d@mh>@)6M0EQHc^w@k^~lt0wgX8!mx`%)aKBd4-K^A_B;8vj1&_VQBAs=_t58? z-NGqwe*3cm}vKDJbai zAPH7X4(BpDntK(_$r_B9utYjI#d6VV?o~*hy*C84dH+FZNkp?F<~=6%&IwKPkW!Zz z#}aO5v|4bBRGdD!{P<|kOJ7~g-MJBRm$Y8!+*OgS3tZs85i(Ol$5<;6`m|?6BO!jkA6_GWwcdc%AyA)3kvNC zh5khKZT+WJ<~iMEU!w!fiHT(73cZY&`0)*&c;@rS#6LSb%R=u=vkR%EnncjAy@Z%z z^dm0YG;QKa&4>27BI&9M=hs~pT6aI57Cl;FL(#LE69KJVLfJ`dw8|rz+zX?SEr06( zlzw%1nRs9e`iKcU9Fx&Y4vsv0N#S^oy+l(OIb&_>m(pIt-KNnZNk2H9-*@JXf=TUi zdPmGr_5;L&Ev46#9#azoEqvBGwaHnLhRzR|pwO@_tS;bBD+~(Xn+%V)AQpw{m_pe4 z>z3Ay=LunRypPF?+gr;^!doZ#hR#l*9Kkh-aoH~UX@9oP>B_lRPchWY7y2@Ls+7++iUek-BcSdSq zal_&BDlfwp!)s2!a)z{G!ZmNc%9}hg2%r%h0B_d-rK+Tv>Ti$3=B#%BT0)rT8I06G zX(|Vi(8(+n#P{~<0tyB4v$JGH5vsx4Wq<_EL(;zL{G&Cs8^}O@JRdxTZPX3(wRWRE zksV9_jCABR-ba~gc)E}ebW_6{F8HIK#>DlUMb8aMj5NU4X}yTD4U>}kB~VoqDVq%K zff$vPc}!I4BjrNhG|K5OO&f1MKYCZZ)0^0i&7>U=_VbOX=qu0molz4q;gH*8G z9TJ=;fvv4GoOwBTf;5V0ybMv!!~ZJ?p47qccLFer$gwipHcMN9@m}tYpYqDJxqZ>EpeIjY?#D6kJq?c6Y@IwZycYSPULKVXAb$Iio*Nr~Ex4Xl(|W(ucHjjk z9|`jZBikfZEVH)ekcjAMDE?lnCEO*dI<1YV;9c5m5tDEcXjiV4)sU#?OOWG=0 zt9!81G z9yYj)ztCgW-);7BmE}z`c(hIqKa*^aP+fleZuGznviy2u?h}F+Tkdip3r)NiH!@LL#fwzz}v zlp3J(ifclD4hM-n{z9hx-Jru@u6SReqdgt0ghu`WHZOhf`VwbOT(CRhMScb+fjSx< z+=I?+M^vOgs|Ea9by)l$gLu9rpeiE8d)MTJ*UMA}>)jT=ui{M;q2Hif0AjM`Denn~ zg}ooEdhvd5gzaRap_B&fyfzg6C@!u`4s{AR>5RZ>RJtA0aR|3pEE~_4C54gXVsfz< zdXR7F-FQX;5}vf7{0ab64k+1aPQzxt_F~r;fiYkuFWOS%CAmp3=P-!T571S* zK59;$=tB)L4F{O;M81O z{5G^9|8Y1lh zP69p zdBLcPqpxu0l$-wp~i+pLjYFr|gI&;Wk?0kr3X1-|pfIX|xUwPYjcXE>WL5Pd9ELyyle zh1VK(h8iEW%h;|$y&!QrX!umHmT`O*Bp*+8AW zNEE5$j_3B)si+K(A4;#RO=GCgqM|p25QGaO0x@tG+inrsB?bGqS;ImtYD%v2M_8Cw zjG_mRdF9;6dl$Z#Dnz!sxfi2k*NJao>trRTc{x8$yR(KCy^3i!Hm0X1qZ%48oDH}1 zxD%2jNqt3PEj=6)PoNbRUgI$G(GP0JQ5-T%fi|e_Lx8s`YmRp4{X5x0Z4D*5GD@ z%~hg}D*tHqWKNzmofU8LLX2)d>A+*J-5UBag!yB-;qtPY4u&TWCycGWki;IFKJ2za zq{gm^6>cow0z#6h`(P1-NOCzcy+$wgN&xdK`9*%kbK~0aRJM85XVQ{q$EnM0Q8run zYcBP>H{nBa$$h6UJd~byTsZDLuvA^(7q&U6lOj}WWU4u~+@y5ITK3-$YAt>Hv0Hd` zJ*j{qL>e%sZ`EI!+q^G|HCCi)(_zMP+|=!7q;442VLAfVV&wZ4*Wj-7U@32W#c0BU zkAkL)Q#3;AS zyZt`CmlM^sbQ_)!5AU5$snOK97{WeUUr|1Nz{P z?^6_F58zC)F5WcWgV@vD;86y7HsfgfJ9t&@% zI}JW%H4Y~sg-03GvZ+4uv{CbP4(lW3AUGc1oZ|V-?Z457<3#dV!pYolS!HzTQTKIq z%>`gdg*7_~SmCAlci5j1qxLv?VWJZ2A2$)x@I zqYG_@wq{rogP^}CgkrtGO`i654Nbj@M>ACAlCN@YrYUGLf~xg+{cjSq8rzo>1_}nL zRpJkVbnDd2n>(s1@#`&+FBq7Z4|><(wOK5ng1GmN@Z+n3A-Pxf4S&@7qGqJ8LQTj| z|K81w;g%QOXzzIQVfbXbK`TKxOI944XmaFO<<5-R$IWC*toFY5*5#`y8Pq&8=Bo3Dn27+Poo{x3?2I9LK$a9jNYLGqLYt5| zlR5o(Y4-(&29`)CIFx+bjWO>XrY2UR`18gjNwsN&nrD2RRt zj~}dcmJ2NHP?n+-iLZ8mBMWuEZKbIpBO~Eo-k9OWum^+(Q z%&vKeVx}{vm|N2kr_N}2K6q}R#;tZ!F<0rk?M?wwE8W{LsgnK+n~44s3OO2* zJh99SjP+aq!?9@%KHHU-y1>qgYY_t4Ee#};;wdyN81bY&d0yW0h4QT8{Ns8qVGfu- zz0Ch0c4|CJS)^kc>$|KxeS`RLcvszfVWb0a+l-~?>crr<=B7my8~K@szp z)plwf(O0vzvC+Y&sPRxi@J@s}bMszvu{|@h42gv5@-+I^DAd$nfEy`&-C+#s;?HOqv?}80VKLeAo_j=oLO?8dG z2jg^8ezF3TitqYADv0vKDFG$q=osR9yRN8oKIoOR8D~FjZ2FYkFbuf_gF{>9kjtHygutW*i^(Se&z3<+FW5P1Qen zjW<6Z+Apv6yX0I-CwTH;-rS}dfbNmo$dpgo7?!*ALUfWYg6EficITLUe9aF00pi~6 z)?a3dZ^af7B2#^NJ3e3yJpD?(ov#q|E-1;QP z1@DP>$o`t>i$&!Myc+%utAN>oVM9Wc*zq^`kz>U*0*eE+R6oWd4 z);DMJwC$%D4_#vMoSLB3?$phnib>K@IsMte+&9HGe@Gi*>pj4ymG53$n*%t1b z)+Cm8#c^l+Z6x>C__RJ68X4hBc` z`Lu^S3q={Nl6F8FFVttK{!eUO@m`!Bz7OVwTeS4n-jHvR?gq}TLP?#ry+_aVdzkz64Ey$d(>~Qf z-C!A&*#4;g+-3p^z;m}Jv}H|cga4|xbR1~tp;#u>u?eV1kHyco;c0B)io*vSbqCL- zaq80cu#U6mzcIVpoez5Ldhez_>!b7b>>SYsTGl2CGIVYTx~xiZveSnq4oI?LZ-CHp zq{DveVB^gAL|*dDw#7}trE1~yD7h5Cy#5rM-4B6LrH>Ef*N~yCHq+tbm+&BP!b%c% zrH5QfZ;=x&QHGLYqga`Fc8^Ez4U>7~gS)<--qE|=)H?6f>Z#djGQ@9-ecCwT^B}o{ zJeXoGOSk9?tpTYT(nr%7RP)8WcvxA}(R*dVvG8fP+3MthU?__l*4H3J0prE!J!9~} zx<;HsWy8M|tpj%{c5Q_gzIa5VK1x&2@bp4=b*dB;k~|!*{Hz(eS;6 z+ziCI;~|B#DH6)c;o)-{sZU6#N6*)Mvpn@;>yqD%3>>Pz=i1`&pIX@u%mjeMQ)X2& zrTOLj=e!PK{_%2703CC7N+c$|Z~G}QKuO{El0kXH#kgkz&&bKF;z1|RMjWA!^q&2oi7ivKs-~Np|xF-(b!}-hIUQs5yyvz;$ zAXB&&PU@9tBa&9ncwcSCvmY&q?N3@M{U*yo+PRbum4}<8Zb4|Y7hpGfIX+9aV5BuK z$Ql^RDC;FL|1w7cK)JI1Qy#E_v>TU%Rr>95bIEb zzZ6O&-U+L?5}*w2AbEX(K<#nKqDd?gcDpFoP48v+%kp4+uG{S?sdKtBUr&_OOj;ZV zd>)ELk@*~Q@-9z82V3?9xs`BjHiT_oPq6urU%Dw7E()*p!)M`t4rhFwhj3PVDX)9n7fJ`<^>g0P&!Zhaw=w&J+no955+{Yw z|NS8a*z#i+*FS!(6~7f44T}1BiwachA`ZjOM4A%5sNT}JK4Z@bXwdx+u!UAMrC$HL zc||Q2Qs|mI&~%|PZ6XE=-a($NO`b6>$$XJ#6aK(o*+*ViKvd;4ge7@N;yQH$hhWJ& z!OdND(RtTvVWe51xz1~zH?4-Ywmh0la!;+69DT~|BPTib6WIV??K#g)vO24pjo1Z~ zQI8Dx0+ulJ5@`l7_y>nN8m%m(dYoJ)2MQb$9yrkbyr>H7wj%Fw2z#7hjVzLBPtl3@hF= zLd}UY-i(zM&f+L1iwM|HuO2$&H`*Ak%QrTgo$%ZjWrIH~C{RU|hRs~Aj?@C+Y7%yB zk9WZA)R2W#oK;X-4l^WNa8&eQ_J1Qx`tCzE^A5k-a$B?-sx+%&Z$4~BpGMM**ts}& zV>TVv?bhKE*l|#*hS%RuIOeN8tRXW|Q^63yp^-?$EVlAi+ztNvY)eEJ>xG~6{XeF@ z!7bDFi#FS~YjTsDY}bUzw(WYe&B?ZHW732-+qTWqxvp=1=ll!LbKm>kd#$zCnnhHV z7CQwARFAMMKre;1dPePm9uS1g3X5JKnQ&(;AE(@x6U=l1k zwsTs+{l4c;eVfd$x%&mvF3*3s$m4B6v{o4bLuOmaL0x6JbaQnYSf-s`qSDV$=?k%G z7XE}TrU%H|lMe(+!Sx{-dOktTT-fUI5d3P0{EtZZ=^s1T*h`ZBvMh#);#(EH_#yWg zu8XX4iCa1y;fJIcf@zWHrX!2#qz&h&&6}-30*we$8+Q23{|zmFg)&PfIKSJ*3>6rf zWg3nd^33P->g{XnKsK_mi&nesk!RxbP)phPJ1-&?$95Nwn37f!QeIj$$FwQMgq^Ju zgy8eN;qs(E_D6#I?zrJ7$^V**hTid2n+N z2%CFClloM7%$&j19Jdd)3S{aFtsn9c$?+eB2}n)6^?ZLQPGmZsUpd!Y2N=!e=8p_8 z1znB4g0Rq%AY3u&ZEkS7PXNvQLZThzH*tor$>JP2z^R{jped4^TH9OHEL^L8GB4u0 zsrz`gmWQag@N`2fZl}>AFvyj4`@_5o0vOuy6onKYZ`USJ`o7+&Ww0$nFFr>gO-K2$wxHI5Sww^7{gfl z0+sci7OuH$vS*~vWy@^i>9W^NMdsajFCK)gIP6C2^U$c3#F&{w z6W&LoRRnQmvT>FPngex_KeIzlK5VP7VrY2nlyaRp&32d1jg=Zy$JRFX2EQPDws;)Q zPdcns)YUjJ8JJUs7hmThN?v|^$8=WO?TI|?Lf7v4DIX)BSeiYUHuNSBIq|z4pXS|5 z>Ii-hK3S#LbHGB${tCe`%0_qMOmSzm5dTC4ts7U!2HQLZBp;FHCY#RzZtc@n$Jp5N zC!8K#^M*nPB4rL~JTSa5#ylb3=-^wU_QL+F_LDh)OXM_5?dr+7+tE;?xCLAo1*N7MH=`*&?%r=y66D#Y z8xqadY$F>~`>Cq6YWF*SMMG%-V+W-*&!&Sg%9(NJ z88=T@6wa|6*O%Ex`H5=ko!9~2TmF!}sjyZ*lFnE@M=InS6{#r zQVUiv>;TdqUZBHxlxxo`Uu&JtUAqXpfJsn0b+k0(JGtQGeZE=Q)#l=LROnJI3WO}# zmE4Z?(201F`rnu?zqK{aN3Nq!>w+S#u&sUeM24?aabC@5GBdD{d0?&Ko}JyQT|+u! z-s&GMW7&w9?cc>-It-iOol9ieJ{eGXl|)+AnR7jLGV;{N1sk<0&y`m5Y}iOxmA;|E z+t3CgD<`>0dVCj|F>F1?HV(WGY+)B){{S3Zjr25sqS|Z4-G7_bhWUKUilOa=u_ZQK zN6(jPU_Ehsw%_^L!u^%h=g3@I4&;#%9zU*G(Wt;Wks*mnS$jD5sJ}jtgs1u|`kX9O zUS?su;6JEiKwr#c7ztXjWg5jae%Vo72Ymvi@y?7mk*9(l83Qbu-P!n%*36s0GeGv6 znbwcYB>Riz7+TGTH9_mS?<8l zAIZ1&W?v{6wo(?bke0zF;=V79Y0}8xAAIZNY<+CQ;XSiJVv0P-U6 zFi%Ywq=!Jq)#ym3^GYuY%x%cUF3jbwuKU0;)hu=kY5sn(&cB!2wmc-i!x*FsEeD%U zek81xg}%fQXJ8sm>DDvu^#g;k$tcu%LTGooyhpp1kZ|tOc?l}F;4J!t2qCWGo~-{G zk^`c*TyplWDh^G)$=D=eFygFA1)bSCRW~6uDdc$;t9NUD!P{(1%AMyxe`=7r7+~V}I-j}c_ zcOh2iO;ZIyEOTaPV6+XtuaZ59*UCn&Jw7ZaXr!T1uw`CQ9UV}fbZ^mNvWKfdLu)p9 zQjs4Z0Cl91LiR=|_MqMOfpNtpg;oDY6g_{6_>&ow!H}pqJXN-F7x!?i={uo@wiAqF ztIiq4dTNb=XYXm`7Rk*s95)jnW657Vu>gf&+A`-0-X`!}9_RdoLA7S_-=A@1k_>xW zEN)-$g;T%k7(Z`9T3F0d3+>{R>P(g}nM{-Qw?a*W6^MjbHy|8ATsEUD&vZ`~*u3yI z#(XA5GP!Tsw=Ypy)I5t{XU}Sim!Bm$J^!e{E)tzy@&Q*XH~U2M5c~Dzy&T79PUyXC zi{S%$i+|0RXGXbJDWhG+07YOFH$OpJTSw_# zXgBXz+jyLU5=XC|MaxQc-C0u}d4MM46uzvuPLC{W=9KF#)tkshDhe#vQ^j-brW*Mh%-aBuq1gDxJ!SN%mxxf~%W= z{x!4U+^*Z}nR}!mZ3s zTPI)$H82ROO|uM15-Q7~cdCuTSku+xZ6S z!#v75R5+2tH8s#VbeZ#dhR_&>nNve>zGN>&iYBh5U&p)`SlR7dfTi;DwMOTKqj$hC z%l$r2g9BTuzBX>QFcvY}ua&rll7qwYYN3 zfHUxA1>vULfNqDTFKPD;%YWze#lFOe_osv9YrcPZc@LmUjPnu-dRx9ovE5;@lsQf; zWn8->RAeLh>k!nmamS z_I@}+r~B^y_W1L)_92E}GR!n1L|xMqVaGad5ScHUM}Rx%ziE%!Z@EoQSp68_jJIsX z#S3teg{31~7P!7XpR&;pgAMr|vTRk^tQ#~N3+-`^JK^`p&6*>_-_s@)uUOV8l@f4s zIQs+Z%4zKfj-9R3?{06b!lni>F0KO1YuVEk4x@+`zTuWkoZhP4-ORf3YUV$wXy9N~ zMhj@qRZV`$ag+VjfsYTS-u-NFjh1h$O2NWITwMBn<Mxf?K(uD??Bh~!;q3GOY1 zZ*B#GH4RH-UV4EC-IYDlN5;-KB6J=&6}liY)y|!IYzB|UkRzUWdp+U7W(%Q;ulndG z^CLP2>V4+0zrq}7h-;Sb_%!XVS4(6$kFZ%+FfDY+$atztDnvq zwzAuDHU2Ooi>j5#jzB^5Zp3QDF5x14#K zT77=m&fALMGfFa4;Ruvy!^e=UWnm;zb0?pC!N%zI_gD#ut6>{p@ao;-R!dU$}Y zZbaVtdo3N9U17{wG#dCIv14Krh}*Kxm3}{DrHa3p3to&=F^(Q2D%^p`-GaHZ--3rM7C7>x)C^Oip8qwY z($UfI^7M!YsymDYjDi!5f7n%u(0>NF>#pLKiw##k5a?<<%t!G6pLF`MvtT#q-NH%o zP}N?fWGUGE(Dn$KS0?}3k#0S=Fkhqd8#9WjZMd8c2IFU-P#wGd3Y(LJkHdniL7PG{ zMAMwajlnn;qbo$H@QfF(i<}GSSm%4B5g0vdz$)f;2(8za)vS7q%jZu)&BLeD>)O`_ zQeJjl;Hb(4jy=MP&v8Nks*y73J*^K;!!8Czu&r_xcpqyw6@1BVKer77P1+Qn25ajC zgVKoA!mjWbNA;sOVA_@xn6c45c?p@$Wb2AJ zfTtULYyIjk_E>qMv}WSL0C;N(mM#AADZyTY7k|f%vT{CBeU-czKei8NVUPL?qN?7A zORX2r%ZWdejz@JIPJIyy4QQ2xxi`OrL8SUZ^(%jc3(AP!A^r3bIC317a?+HiJEniF z+j`9P4P}=&ca4D4P1>jE`*=67l8lQW;qW%Ar;lTV7*&MsVmp$8(&I^U_Q31kIE8Ew zR$(qyScRQSvPW{zEyn+8kxEFL18pg_#7IchZ8=+)##_Q14_q63O?}Vy=yuFx)6!*` zmXdPP6+bX9CZWmzc%aIQyM2fy0rh#KAkDRZ*bE!&Cr;+rK2i55F|OJKx$}OGK$rm* z!6iC3(dBN!#}!kaEe6OdyI{I6@l=_MmziC2ZY|s^u38*8LC^I~sxe5cWoy5K78I6O zc%(JNu@U#GtoW_ZI8$cuU7c5r&zgWJ z=ZIOmdQ`X>{&?ESzPT7QvSAlC18Gh;^M=gLbP&eXAwl9Gho{H6MC!hgjCnLK3P zBRirNFPNpTl`w;9qv~pSO0`oyP-gRxX-KmO{jyH8ts@<)_2^ZBfvzQAIB)r6nIO4s z+!+P?2wt%O`{DLkKGM4|wY@T;#7GuyI0_MczcW2hhlo!5e9EkrkE2H0y>vP3*<<^l zcpzB%_PQ3&%ABIj7_y^D(uE$<9U62(fxQuH#fY6v?@B2+sgb1wE7MZZ14DMYqxoRz zjy6{m=$yJmoKu12ayktw=*$R0^v9-e)tHjhW(I?79beX>?O5`T>{|G%&s*A7;FJc1 z4k@Dce_gU3F|*T0nb=Zn*`tg^8J1+=EKe2Lj_rf9jj_rYn)oE;oOqSedvr?q#a0dB zol0?Yv0*SX%ocXX2s;~I6yp(e^uWHFD2 z;eOR2o^U0{ChUAPTQca(>Luc1k^Xy#gio}7ZNee_&$yfKiknW?$*3a6*^n{z^{OMR zqTi{ve%gC70sb!^LdJv`RGWrXty$Zv((4a?Ekz;QQ-`$K5x~TuZoNFgqKGV~gGq2=JbIvt~=Bt2{>1i4q)uS=~pb6t&r&a}>oe#HetPBr!OSwj= zC)Ng0jqE0H;j-LMjtwzEo^}kh3^uRXk2R68DkRG7mzuJoQ2Vl^DkxysOWC{YZ> zN}g66(PbNq59-!W^X!Wx+m~3vy|a6XmXyPTYrli1OBi=ySRxm^KeU_X%Z?)NBk3qz zX83Wn!(G2L4oU&ef~!J8c&$$YjUQ)K6jd=2&XRi&Y^3Q$Go)X*^7jcoNO4_0Yqpm@ z1;V}e`br#wqgUxO1(AP8I2Jr{D?%7U-^m~aW@IVjuz=T9#6B63mhslXk zQKN&2+kgI^dA_MiKdVh9FY^IG8I$6NuW|k`VgAFpM5HjAlxYeXn1U5#^~ou(^h#p5 z8%WLdEd6WBVegu)tF)g4G#eZ-RPm8G+*l_(F4sYdLcDcu{?dBE)fLjayl}P+*eN zPrtaZ8h`SB%yP)9S}TyvRrt>l_GU#7LG%0LdKcXF-grH#^J;mc@Y<&S`cLtdAtWBa zEUJ$JK33(Kn1Y{AE&GY}f%Js^Xl+x(j~4zKH)|j=DZHcBJF25>vf821bY_EiqoD>e ziFQt7mqmYYd8^I9vZQ#iv(2M{R%ICkH`Cuj%63=dW-Nh(?hx^K=Rp z=PgMIHKidt=X|h(U!de(!BNdJX4+lh0d*ji5z!O<1B_D_-suL0pAYilf)!vZ;I{lY=I01zn`&biX+cjmSQHm4;Kf3^L?P>z zX~;A;B+=8#82n1JnIt(&;z6sP>WK8P%{1wkeyAtu{ib^jXRp?MAug+t|3o8C#`?77 z;`rN`>OS>mm?GE0zJxnThd~U@(22lB{cV(>D?eMq)2%zYXpR;RK!pK}1IW;ux!C9q z%2BOwiq%`K+ugN00-0K{xFzYdT=+yXnnyP`i^r>ZjpD|NF2Q2XRjs(#X8PwEMKKK_ zHiDyC^Pm$Gmh>Q5EQYg9hGnB~ph9Kh#G_YPt}jNW(7a%5gvTb2_a__JN?$VC(r^9j zmG35McIG|@VsFmRrn>m%pNgisYgptk2wecG&M3nl-w3hY$XfQ(T===LBu5BO`Hy9j zcwpNVcn)Ji^PexO2F1oE?YSLZ-Z2)YgZuSDA7Nkm!6hJ0kP(515Hf?@f{gsz6!mT* zMAxclp7q^Zd;8c$3Lz3ecRxpU7z0f^sAg}B6*ryraUAa%Zb;b>sdaik!LHUARcrev zzDBD}P(|Vf8Anm#0vT0vBE!wpyc+}$H(4YcA>DIe zkmiiqMrJPgU>3GTs&>e*UhH{(g&FNg>H1h+8N>rEHx+G!v98``9#xN?nUrfvKKAB| z+tq)a%e153EaCk^zGX$F^_m*Lf83gdH4j0lW|M!~|Lwu8721bQJ<&{0>6@3t2%6@H zH-2;Ui{lSujMy+*g=3I7!g_0w?MPx>e%_Li4B~#oU7Z$fo3GxPIEeLTRg=u2YkVQsXTGnlN~qkiNO(RlHm-RU_a*9#ZJlYK3zm$tBE30wmZv>e zGXCIFH~4u^m@}aHT=j$own7?=V9g5X3sASeQ$XYiCo4YYvh`cpW`F)5iRN6pzTiW3 z%kGOn(DXHA-ojk2{AnKaR}~^cyes5J;c+0`HOv_^u2nEGk`P}bv^2;iU(pP zKrYswTo|Gq&k^B*u7CYC@GDH|1Y;g^G8{m~G?P5qftUDB$ritO+{+g>gPHQmhlUEY zer$_~a7;LdDu+uQTv_%pf^4_u>&dp+2reDmZ8JsIvTx)iuJc1=_nyYmjZD|XKcUCk zP5t3;u4g6}uLY>ZOUxlJ+6jL8%Ura2>19JUnya(2G12fcuJJh5&A{s(mPX|L!^~4N zX@7gP$``=J^F^$QQjfGmYJkI{cmMqLTJ%+}!!_@{r;kuy3oYS9I5&-1cHI>*ZoBna z(m0jWDm-o5ND#nG@Izr=sCAq)#7b*ki;HR>TtlMkP0*T%4HRY$TTx_wf!ZVd}SHkpga&S_&%lVvu!;R~}TvC6xDDo|uW*r5TBg zWI`t|<=CJEE@TcMYH9PkHUr`J8|+YxP(qSPMe6v8*tU7`ml5cIEX2+)ZUg+}Rd0s$ zp5!<%eKv=icGR66RcjT$)MC~DDWR{->GtILQP?|pzUAoXP3dPWw^TgPz6rNZ8eWXCw>C1E@v{M+HPymEDKL0S$hpE*fZ5 zR(@E&yo1Ybu@7ta&W@YSZz@6i{eW?z%w^bI3_Dj50bO{8c5h?CmWYLQw|cbZpVz6k zo@dIy&u{Ww83^V#x+slDVEf(XcY(@=nT;IirGo0<#hUYs0>)jCnC(X({{REdK@6r6VsAPP1E2l^|FENt#FnElSfi6=0!Iz2kLF>Asfxgt+%OFUBdt)#x8_ z7hKJ?Fw%j|I(LUvpI_V_g+LWlXhYYpN`-^9{?HdIOMB*U;Pb1JiynU0_cJij<3kKe z0%i4dJjxWjI;3Ee&?{KYH>7er8DAxaD7}yjeX}4o>%O`BRMdveojx~0quL(%PUtoa=^jCNw%UfR9hY?qM-_NFuzu%&@m|zWRDyf zTlWEdCIVaL%4Si*PG$DSa_`_!3C%MvGaX=A} zVWx2yu@;`x$O4JVEcwekcxBRB#%w84T?_|q;SZ}V)-AALi^TJrQBVvz>ydH8$2xe7 zOC6Xe$IL!p!5KO8Z&24&ivg_4*!}$Q@5`)}p9Jq4^LzJ%8neS^1#B>LFrS6q!_Nqx zT46>HPk4ir&fopJvm3izs3%|KXmXh|zBSSiR2s7RZkS!?(tPONV5dBF4ek1k9K5|& zWu+mswM;+?>0QZl0?mo;?Vo(9%!+V`Vxp!il_oX7nM)iQY3Sjy)ap5Mbu7x#I;pk1 z?o2l3Ql9b68Y9e{3Pwx^*}nZjoX*-@RS^~0$b}1U&5|I^oLF$k9%#Y7YT)Z~OMSGG zkX1TY zc#{p)Znbv@vk5nj8b(!Fam8>oNZ%i(rdSf^ncda$H(i@ZyA=J#l_h@_ORirO!1(6i z+^|i8x4?^+S8!un1syL6gQD_`~Lb`m{DdVoOetN3O|S_fuJ4p%oroCak5i_X>X{vla~oyOZSPppqyrKWWs-yPzZ z&iskTl2dHJtHUh`7A<$OZUZOA<_ywC4{x6-;H|%z7xxhn@}D@-@hASX!kOeee2lQkw-{=+220;asOab)9uoD@7_r z(u>rVzl^@>pD02TTEC3(Km{3VpVoVv|7-2+K&tAeVAevwnSNzzbREDQlZAYMO^uq# zQfw!_JsAI?UmP_c`~4Y!W1Dhfmd%uP$U1)b!}?p2sBJlvD;d6Q(uh;~f*gT)a>X^@ zq~N*mMtf?g{$+dayz+{1Tf{n9;>f3Zm^)U2R%hC5O6wA@(S`T;wS6M@bFsIJ~;KuuiSgi#hB;GGVuwU6&hU%p=of$&{)*uw)EaU z*;Zg-T8mWXo3Qj~BaSYu>`3S{``%;0{Z~6w>gf1Ho2@HW#Dwn`CpR!nbkFH~e|5A+ zvb9&lj|5GEoKxA%#>gG(M2Xg`7N?^}vdZBeI=URUZ#Dwd? z1n6*leR>0!@Y1H7y+k6?4Nkx}6Z<72&KlFY9(5=gSwS}@D$r4KJP^m16y5>mPMC>E zv5}4(c>R& zMvN&zV%_>-adQJ22Y;+%CFLk0Q~5B}yuOF&Ap9Z6XfdiB zB(Au84kv*(XL)Mb%T?$Z(0m$3oqFv5X)JAN=Dqv+)7~}%1Cv!aJbH<;e8J}&s7T!j zM`$c7Y)uve>i25m-2?Zs;lHG{J7x@yc&~eK^tw#;ezNX@wBNuXQUR?@OV-d#)0e6p z)GtcZP+hz+wi{tW20s^7d8=8l87*mp_L1-hN5}++~|oN3>$CD_XZLsiFEKM-MjzyN$uGM&chy1@h0lW78B?vnufJ*K!Bwu&~h=_nUh zR&`LBRHS)nSHIifysTUOiakj0Wl&?);nIIY*ThCb1z;d$g78F?zcd+<2M{)}%cf{p z55SMGb_(XpL(;fXn|09AAeB!Z0P#W+a2jUPRYRFXWyn`Cv%w5kdt)FEtBX#x-*uki zr|{ff-oEr)I6ylvj(d5;1e;@mre5{+Yj|I5$3U_B6UU#V;#NKb8xPiYlwQRCoXw$` zDf9Wbw`t@TmF^4vBaINnt$Gp_*1THxTN-dC2$y>#c@}Y#EYw=r*X^R1TbejbjqQsI zvch&?rv+#YwvkmoRzT(0x0(swI@*FmF}ai2I1wqhwlfo`|#txbKJl96w0$b8W$N5~BNa0r9=K#-oZL?J)JQAr7c& zOgM9hA#E2nuDk+c)C|!;8xPFC2y!L~=u?k`j(Y(h$oaB<0ICv2V&Vk=%yte5vMxEM(&<@KOxTZc4mohRFFlU}) z0&Bl&5fX}vX)NDP9K7Vcoj5_XAy=b(tXmr zx*cQkeptN}7~XAZt@U5)9=f%Am<->1tu9-fQE1eV49kGcF1Y>E&oE424!CM^ z_4oGPlYb_pYY_vY4sA-AEZ1l>iDnEX!81Le_nz!TS6L!OfB`riB&W*DH&Kuo0aSj~6O zT#xYsZ~iqbu&36X2ni1Ez?jN5_Bu6+yBv@~0Z{GfV!I+uH_oeOs^zw{DjGwEaQc`Z z;E1U3iA`0Aj_6Z!f3i+D8%s;boyZkF4XB(mm@kFQUwIiO%J?m1`U6NFk`CH`&_Uj< z4S<9m@M2pjz1610-Wv;1U}7A1p59>hD_}=Du0^0Ax$ppZ@;QZTm>}36UyZ22UhswT z#rLQer1C8*zjoAzm4vWAcncMXZV=s6KaGeeoG}KW^f(uXL4c0f9n(ngb3D(LVo+up zK4^|J!sCTl zf;w;rDQ+|%+4QBjikJBR_DTd;vD9k%^p%Z$Sg2TpxgOj#q@Vq#76BlcA0j@!Vj4hK zpM#RIRzn&4LRcUmJwf*HR5!acQ0|>?w@p;8jU0=?s5PRiCGr&Xv8Wt>WdD?#F?IJ{ zTGR+X$}=rC)}X$(1Q2$1Yp9I!0>Q>aF;&>RFQ42qJUW<4l-03b07%H?a}T|7*uu`l zmOzk$=S1W2^qi(8hekTr2=RQnk|Z%LAUN=^e%`WUk__m3r~9Nwb zi!OKMiw2x8zA6W41l>{e(oBLX?XJXTHGlI&C4fI`(sBKDD}R|p3JSdnR|*k(ujbd! z1JFoy`%+@(78q_6N;-I!VG|jqK&%a5hN@1CoU7|BJ238}=#9p%J56udz~YmIpIad@ ziMe@?D+l(2FxH;;16*aLwg2D;+5dN{wlU8EwGz6Zzxit*aDt9boq^yh^`0}<*Vo}topCD9mF=ZqMmu4zL*swZJfr4d{iz)bYUIjV+cJi4Y zq8G4;j~Enyej%qDz`;m25;Y3aSQ8Pdy@|Pr13E(}+)AklOw7_tC~PPT(yx1+^6LRztlCtJKs`FLEZcmTX6KM<#|fQ|FZY6 zdHQFCIAYZhQ5c6kg7pyd?`z)n_ipz)`y%VC_%a(NWwbqb-<@#l;-|cq;2ryfg08F& zn%!P`Win`N7Dg@Ap6M}wI^veS;wrCDa$#+mDWa>1iHY?$fv7X zJ54*w-6apBjBV=k!|1QBt&(ko6W}xt{VYAG;VeHkwl&NJ#!MeJtCN7fNMeElpsl9@ z^bn1KJa8AHT!aO-AHh8k#=t`#)!-|su6X2ODJUF-ojGdfV5V+Im$Ufd*dXMeQSMl) z(b(=DKZFFVKw(uWf9Ai)JX^*fjGYyW6(Z`{6Pv<8`wQW> zOtD@OTB@Bkbb@vC7y9Ag(ep|$Y<5obA%+?|&6u($SdQbDI#oK)A-yvF-KzQ!S z6ho{`#-=#nTS;J`6ckxD{{g3=UQ0z-xLf0_`lBs9k!VM~&B8}s9!ZK3%2aP92Z@c@ zVTSW6y8V2)oad?oEXBCl`#U%MYRW2dY@YD7jj=1u|J!3BD5y|$GGdLozk3U@sfv>~ zTJFCTANkolevU12ATjQpIdO`kSl^%a9dS(TCQ2^JV`RB!aR?9&yJ!pHbSify>!Bo4 z9O0^WjLm3CtqVMDOO69tTeu&weEz!W7@UqbsX2#8Q!xN5mUuKbCAQc|w(Fr};j$!> z0)1v&t})*!)UbSua*@_bX}cbSzl=O5PMrP0v$U`(w|&t}_B2BLi1q!RStI<{6Z+R% zC?zN^>9GQ%g)DhET=p%vzXoy{F{NPH>{d?K*oL9=A#XD!P~oYq5&!j%#rB7*%bR;N+-lsnZ6; z1|{GDd(Y`b8_KqJpyiSfh+o)=7{>J%8GakU5z8q)P+%*7DN8>u_h0XB);kYO$_|9# zVaY7id>vVEKl{0@<#VCPs{;>N4q{PncvijuJ@H^&4udtw-#$Sy)EO^jTHix@0*VPT z!HtX_k52t8b1;#&)3cAPfm?-pteGL9b+ioX<_HV zhzu{H^0nGLA^+#C#)Wc)(Q1}LqtPkuDc^@`T&l6WvKjF>6Qld*YHJ#8`*~sFWtci% zp+EpxZVrs`VB6D<5sNK1Q`X#{^G0Kvfc7>tKW1|bJ27}<_ z+a|NsM6sw24_hB3IiUK($Ff6EIPkg}viLHS7WnaU7N2;lLE{ITLl(|x<~WeBMeR#OU(3=G1Q!3FCBFZpH3>?+dP-!0tZrc?LL6L7VGaz$N2mV8cB~Ur+ zVv;Nllc6jfB(@>F%f3^;$s@S%Qj(5{_ITgR4%NZFaTSv$ z9iXs{nAM$q-)D^=%#H9{+CW9$B!k@1z!((0h#~_h)wk$mX+?0Si7ATzf_I3SjUF&t z&K|p|9P-hSbg*GvX@bs!IoSP<`;7vW^i~=vAuY3$@U=IHued+FK1QmHUqz~+@>D8J zmjIcOtcLM0MK~g=ya7BnJND}t!EMFg!H5o*+iersCO-4SHrCF&Lig7XIsi|ed42_a5HmNI6}t4+8sNn ziF7@Qi|<3bA-8S$tYb~}n47CE`zG+)h-xa`zmnb{UW42=4hC;!lvbfzEA6-ZbIj(W zg}I6wtEt`pyT_rVwDRO-s=GWM76o$3(VlR;Na5cw=C1^*v|d6fp-Bvp z73ZUertC9L+$U~iIA&g?v_;=;OBexU;(k&QCi0$DUyq8j;B^_2DAEf0JdgXT29B~ zE%%w1mkQo8^3OsL89WMjS!iP%{3SLU)<-}5!1Bt#QN3>UPuI>`MX}fP5mUCe z)9q^%NRD(&m^Qxg|M>(!R+|%+U4RVO8inBrz50m-rpcRH z0?)r(Ly>bD?d=bL^CQ`W@}ZuXiRoL@b8V&GGUsjOWW?Pv7s)6d`yf*B9>jX{NBChA z;qd+C!7Z0sw2^TS|3DMpoy70=7q7f!xQQ@xO)w?^5fb<0M(giL6=F5=u0+ zFRmvCw(%}<_L+iHrIB`+V408LBmDEZiv*WC^*3ZxX*z^mIu@lfQ`My(cEVI?7uM=* z03NzvgsvVsm^N&73FtBoLrfzpfnEp?R9rKh8g6gXIq4uwOpdY=Zsm$iztuhBa=dFG zVxYC(syW&{Xw^+MH^!^>f7AL8lKk~Yb&T(D>7yMWCOy}OTOa+3DNtK^0zE(xHaaZT zjb8c{gS-Uv{(RF5zF)KTyz0|;cYHa-QtE>X1FDmuBh5Nyu^}ZaVgfpK9J&|Xn0sG= z8*Nkx<%-Sc-*E&4drm4I6R=*WQ$U!y?b;C{ui*${)a(h-ZiOeIxT9-=cpLuE&v(`_ zM5%9H|td#j)tK(n6V4z05wYIPA>u*YYISfs)Bp4k0+oW0{;5In%UTazO z|J!;8yZa0!OCPpKm2eRQd&fLV>V3;WZ6OBy(5C+5Bt&KOx+c;|Zd?a@<33rs*YG7d zMP)&}=~QmHFI{m=(Bzpofp0R|c>ehy0gv1~U;U!|7!0LF%rwj4O5~-W)CPIYaM|Zs zz7N5p0V+zGd(Kxn^mK7QMRL-Vf>^fw*?&~g@s?PDQB*lCkod$a&%HNs?2 zK^_oLAIU53+4^o%PW3r5l*+~nvLl(F&#uUzZvzd{5-m(31G4gTCd}VdLDlHR< zfE#@?i6$@cLvsa?(8Sdrbj$yn; zJm(t!fBKMbAPy2PwTd=77mvADW83Uz#sDM~7j>d!A`r00jjosEavQNBU+OzFFxRZ3{gDSgI^d z(){2@7bdLS0F_Ai4wdwokCLw?9~3-jcig!qN+UFG4Fu1=lvdnIb@_uwapK}zn@{oP zmdAD9L7vE(=&QgG_|_1KfGzrmPM zl)@(zXM@t|T-nTPG$cT>j;kuUNTD79AIZI`%56V+y>}nv_fWwngbl(FZ_)Up7L;KE z7+jw%okbPJe=LmfHhQfJ3Jxpf$pjm}+#Q~^@pSMej56x06KD^hbV2SAhF8KlL8TIJ zx!*or7?U11NlBrm%<;*jG<)6x<#nNO>I<0#iUV-r7&`Z3pNWxFq}JGj%1M? z^V>NJ1icotCEn(9o9?LYx&JYfSxZx}+{k|;K3Zo+eyyPZHm^Jq6R+gbMsS8;bhr6P zl*f6Ng1L58$)oA*+a>6pRoa8 z$*-pDy5AVrGR<8a9|P<24O<^9P661DO}qIx{9x!Z-AY0X)#ddNa9@Q;`V;>aYmzF< zJG%_?D7ZJfvN!jpPb=WwwPH;qZJY@0O6hk;!g?y0CJU!mqD0+enBkSH?5xirng4)i zfb|8qX%n-=^k827!{w2Ha4*nF-Kq4RA_8tL65CRhrXt78;z!NpzON|$=J2<+ zmo(3b=MSVW_~0-2%dR6PQWb5|+^lgm2YouT}A+;!oO2CFfm1E%1QX>2<{3_y4y(>$ReMeNp>4FnI z;VtxZeFsz^k=Vg|3D3h{Z1>^3xV$92IWM{<&m28$x#rR7A>i zv)h}0K1%?E#`;Y^9PJkz^j+|%7Xn)GcO~)qtM%`Yyrx>PAf$@Kj3JQ9ES!{7KN9EW zfrds);(gt=e+|BsEHka}C27_7O=W4??EP&X&ZoQa{G=m4oVEV$z7dempFJoagpIN~ zx=UKcSv4!lb+J3Hh7a@&8$V5lJ>sW_RT)Wa?g1QHcTO3k8)lbf&#Vz8JjQ;0d1(^$ zl-Qa*^FGWjdIOO^q?!r2VnDYP;#XI{po=dw1@wJy%l6Aq>2hspQa?OK=+zc%gxRt>am_-aM1vHD&*Z{L^eLk9gGP`P`KK`Nt-gPxh`WhiOnv>yGu^0J zXf|u9D}k(_mLhbwZBpvGc>nI%TIYv3&v;@5I$KZK-%&Xco6hzDsCfhpxlS+0Gfc9e zCP%TJ3%3WJfsaR$e5ntzpXR*5(&0X&StX`E#`=kw{2ZbDBZMcQ#B3hZvH!a2;aa)v z6bYO{tYT&z8DLJ4zQ#7Zfsxmw3Ifwc+-iSH;*^H>IF4w8ral*GG^ydV)6zUJ)M5_n zug^3mCl&sh-d=D$`&5w`^p`blr+#*ddH@HU$lC!5_lSxkI6iz{p&z|^UNe@BNplR zfvS%d%YzEnlT&otKQNF#BTs9TpjM6v<7>GN>9NfmS-u+JjA|kgji6arVRBD(5(g7x zZYL~{&Sy#tZx>Ybe~5a=xJ=tGTsTagY+I9U+nQ|GWZO0;*PU(KoN#BmCfn}q-TRsU z{(fCw*6+kRk97dPZm9u73Pg#!VdR#zYy)yw?$O~W8;Z8FH3zDVn!_C$P+R)ugZv2T z?&jsA$N(V%yvdS!qRL2UF1fo={C?>;8SgX9EY;QFa0Sh7)9lg)$h@CMYSpR654s$d zbtv$a3Y7Z5Vc&0f{u`Q!~zfEgzW^ILu?Yp2Af3M6-8886F= zwxm7aE`MfUNN_;0cZ%P<(|A`$toJQIc@?c+T&gqdUXTPbWE&I@WK~y)q!IL@Gs+J7scRgr zMJ~@9CP+Qqb~67csdzx>7Hx`25+x{^YW_%X#axEv)&WBr>Hj`+g!8VLT30f~*4o*)9Bwr0i4Eg{)fl0yC28&}+FIz+#VqN;dU9Th zHK4#VZx{U~;i6*dOviUt6=Io5`ZCaYVS@ob?9KaNWqf_DM-am*vz&7j&sj#fn~+Vv-6Gzk^d8YB0cMVlh%K!2huclx-5V~@ zxg?Tj2ijelt+#u>smHORoy(`n>-|iw;;sk_Kx}=v%W35dF1nIc8}$z&yNcPrwIGk= zb`z$~tsFXcN9sLH9#mxAu&}XllVf^IITy}a^3B-`MScK7yZfVyfqLwXXL_!Rp)206jbjY^TKLxze7y5wv#rd&dR6O4J|95adG19w0 zq!BDZ%nft!^Hb3C3P4h?5My>|Gl1wvrV+<`QqxdZu%qwVWht|=nbh;vPZwpPw5r(G zAL)SgX1GtiqT)`WR<+2t(;7Ra-=ZLpa78&$Ip7%437500;YQDu3pv1F=vM6nRY73? zW@xciYT%scI2CQO>rqj_?j=h9L;L38!8PU@CqX`1^EsbPu;s-({lb-xPROeHTl<^P zPE9WK5h0kv!7nZ96v>4WiMl>_tM+!+vq{O^&_#!I24wR3^n~|hdIH1v$u!AoE2Tz7 zVd)S!4^j_Q%eA){qDn79K)?o-QiKz~hov%&zr4ogj6SU4E4ht?@5o=XKcGmIfHg-E zaQAA1-p=(iN>Uk3K?UWsJc(Sfx%3BGE;UlLR?M9d({JvTH1Ii#t;ReaiV)2NosP)~ zvODk@aaNT(S2OCMukA$8cXFN%Ipact*reW*C%OBak8s zaYQS?zr$Q&8w@D8NII=3c-rdDgHR2+Viz{`E_4X7mh^Yd@1qaT8h6L(8{?3zJ^TvI z@-k#~5P3@2xQ?)>v$Y4bSrBNg0{^A;ZJ@m#O_J*>e|LuJB64S*(%SGAVieMRTjG4D zA%yc44v|UwVeG57OjnJzJ6G813h#!;#eOq+!LtcF(YQl86SPIkrNzO0)>_E1SIc!9 zCAj7lk!RM)uMf0H{|_NWnpi1rG75)fKeydqbd%yCeLU7d%q zl0l6+DhXJYZ782U=S}QWG7-zgE+a_#&_vUv=!kcf_lDv~lma;pC!_>?Nxm;-(0 z&;SS7QfjOZirO@EFr?Nyr^a1{?WN zImJ7{j1=^3D+MmHQ_DM{NZM>r>e(wp%n`NSL^F-VK?YHEibe-i63o=x-pBPXPqD?R zN8N2e25s;O-FN>jSC$`C6Q>@;-!~pY>@1+7`fo_3>v|4*9PAm5+G3)#Qll8AE5%?! zzTG!cXx8gOYJTIeZO@}}4b-Ml7&XY-p^>1}4QpHxN69PISP9~>qJPcjI#M#Zp=9j- zwbeg92Cciog}=|HS%>xtLV2o<_Swp**6gz&@Te%{b#Jc9C-V{b#0NC@b8gOZD#3M|JpYCt##tqSUx!QHv0_w42)GBe-9U&l38{3 zc{T)VwFMbyIb;@W1C2T+`;xK60tC-o4$C!#Ic+ccKti2N^3=MmG|%aJPy<(aO4HJ^ z@?!#>j7u>6vvub|6NN0-%F>aT_LFws=9(nPo~S|Mr#s}2&am3Jf*ZY7KFNDpKWs6< zPgaegg_ZoJ^%*(kt5bs++VfWGq$XBzT#M82qdem9LKg%+vQW>t_@(w3x`38j{7zww z0*U?1`!{*XN6|tqhK;{KJGi!5Vk_3?<<7gv{T_6x;5>}3gP7Bb!hlWK!6lwW<~&mXCJ^EwF|X>T76 zCFfrjC;aLA-_5&2isjUmJ4tk)VVQn5P(IL`ANB!eL>5=xZwls)aIQeCTz?7Wqb83nEgK#vs1t^kr)kGId{TsQ|+E2(Vpii_W{Lw#}(>9;cHbIGA z2Eu$U+Cq)+lpv6-g>C=28N*=xiY>RFNKL3>5_0ro{9!q=P>x0pQ0X*Vsmj%@_OyXW zLm_sT8LQoRP?fvD(xlbDJi0eR_$Q%t{JHKiECo86k%bucYLjja5mrXBH8gwn#)~s z(>(C02hA7Q@c#D~Q2M%oEpqv{|4K@Dm7;!A)4%nP-OC!Q@?*6)EXdhOIC9p#{;FbU zutdI~g(R(Jbr%C`C6^g<+cirn626^enI((dog^P?$_666CK0I?b$TBxy@ezy;7Ay{ zfx>*Uoym!oO4Xr}KXJuc);1Fq>1zNXU8!Qp{QK6#i6T5hJ?-SAl=9WnZ{J4`_s0%x zQ_KNZa~XDPO5G~sfzvEl1N6?BS@;h+Q*E|cco?h#xZ6Fo?Fv>1i$-#%s;G+*Jjt2+})+v!G6=vzjJ=NBJj zyrA;hWIyMNK z2rUNJ(;;Lfm^HVcR?+j(h{Uf(que{&uNl+C6%!b4Vh&|9*xJy8KXn~EBxOakuX}5< znh{_*Zz-|}F;7SIWkd{QbU{DX=v{@XS`$=Tl;ZX$YhFJ>Dr~&8d)zId_xQgkry`X% zbh@l|3}%qi0P8ER$vkQ4Xg_MND8&X#WRJJ6Hy5RYaGOUqO~%01@+og!kr=-~7k$jq z7INRX@R@v{)ATQvwJw}MJS<)qK{SzQu0Nr&uE>a}Q(@pZ0cWS0QSbH*Z2CPS3o{1; z>lE;?MVDUUE!Bo1q76N)4juES=`b%rYc7pw);AthG(|=Bdz!H}6m2yX0K3VN3qFPB zo|ed-Hx1s^i=r#MuSOI~nCI6;T3YyGY*a)8c`;kyq7WWiN88bD`m zx-?<maS8(t7IVdH%XRe_)uuGS9;*aLBmu8 z`Dxann+;mUBW+*`vl;apSufYtC^L~&%~}-5ci;iuk!DlK8zCw=vCvcq`sPSy&c=t* zTLWl;t>UsQywO*lm zeNY=T2%4dVYet>%(h}QR|LjOMpQGb|W-@Ch|Q-4AVqFNyj zD<3z%m6-4+#CNcHQ3mKO6o0JUk^yFY&Qb3`7}Fd;jsk-)Gy`1tkmv^j&?YO~G_f7V z@+}e_>ca2G2-t#hoiXA#Yz`^xo)H0X`{eW+v|xWHv_;%d(nroR0d`=7fhL=e)no;Kh}jgqc~IYnqyc{qzs zda5HBzbV6W=iLVvxV_QP8Egn$S()qRgfJ-m4zXmfu8}|Mq;wn(p1z~@@hjJ^JAS)9 zu&?`f6+n{l9l3+gw$8)0JufSvC;XH?5(v%`J9a{TDrWkUkx}mOyxs8tG-;bV*~RKH zjS#_B=YboM0FILc(C(FvwKd4>fh)2qxlRH)jnAG`OyaNftFsg$-|YR}Y(1oeD%$7w z0#npePnE^{%w%?vGC6UI+iuS)3MrF&Yj?$>2H(lUq+eb~BfIw2i5nB5-LOdn&$z~a zt|ogV?^*odzb2(z^IsufCYn_z;`cMz%`SPhLj2(C6uAJHQ(Fr{JE9tguFeRZCA&;#SXAsTYWU%!JqKs>*Uh)987MHk^fuiuR7&{Sz`of+@V z%F-ZLVvj3z2rgw%Ka)mzPth5fRQ)SHT)u09)M&wB0sHskD#^>y{Cop;`FU^@~%q3dIR#psZNi*BSAkqQ_Mgw?tG7`eDZXZ@DiK zDQ`Bo_m70f4}06ft3PS?Cj1WfG5INw!fziCZAKl{HT-QCe&fK_6_@>#F|ae8TLXO# z4s@g4B%+|~wXz(E^2{v)6#I$>TepRJjQk$EfJ^M?Ch(7n_3>fuYT1cpg z*xB*ZWuH|=M~+GNt-yv`$fSuKPufb+SHxN%TsWrc#JnlOx#q|&FVw;WDD8S3Vo-mD z`NbMc5(e|nchBjg15M^ELWUbi`AB}k-rB4_*StE3!>6q3G+e^T6fT(i8ztuSy4U=YcmE5~+?g{7j0k_n zeQuzOhsUhBK!!&5<#p%hY$9^tn?tRU>ktTD8Z<$R4Ki>okYoNynF*?dviZa;H>&3g zsG?#Pie9^$QeWFS)sbZWnK5yWMICNHo?&V`ueyB@0;f58f4QZ!W-3 z*e;g}<-LsWs>Ibn>8kD9Vs=}L#NnW3M^fdX$qPW$|K|2l3?PQi-|zvQ-ipth`;w4; zRU0+%HF#j~M5jU$PHi5JSF6h8);6H8gpkU+(Z_v{ul<8RLq7?Rqa#8zPGZrJrj7GD z=3+Vpp}UOvAuI?;dOyQ0qlGkJ7o8Ovh~<>;oDw;%b_Kfj zm0-*XKjKdUsroUcm26$(Vjn0j2VPmK)vF8U;hp2Q-`!VGVZ_`dr$jpt1$$CJ2=HY} zI2Puo912EWs^6L>U8U>BLu`X7q(mB3_4Mc{+hEPx^-9Fc+h2J_@?o@cipp*fXm z_a{_N*ay%LJ=Q+Kpm9IGo9btTUN#<~^;HK%do9Vu+qP3Y%->n$ti;o};m(vjlm`fd z)q(w+A`N9-*;G!VGe6j}A7s^JXWoCWN&ifuFzp~~^vl7`$A$ZQtLam>L1FsD>E&4F zYq`vRBVc|cu2v8M;16|sfXnk;Jgi=?*4)|>`I_}W%DryK>Z5g*o7Ug@-_8)HuX4C+TN;Nuy%b#4lb}hHEq?v-&U9+|pI}v<;^0 z7quc#Jt&NtKSF~tk~c$Iq`9UZ3B&|q)w*RzD`~Ngr9R#(-5it({ci@@7a~(j>I#DY z+2oF}-2@epTgmx>6^g#8{&9ty=)xm4rsAr+0^pJX zv&8(!n@wn@Mw@=9n%w&pbMi8rwD6pO8ourow=T&!V;+8-+(;EYAVmv8VMYb%t=XT1R z)o6@F!uY=oDsKc6Z*H5Bl%T{|;c0d-n%(EPeoN=JSU9IbxzhW9-6tVs z?76>@QV?R-7{}fy*4H}oiUcumMpnsln&{gk-pqvNJ!V7w@x#HeN%fp(*bczQXSyD{ z(eTZuF5*5%=B^zM4@Jyw{I`a$d61|9-47b7-`>qTg3dW~dNm7EOVyk0<>(O`kuCQ3 z>kAbIs_2s&98eIPLuMCR+vjakYeg=V?gu^OT4x+mO1w_@di2a#AH5+hfpHW7 zDE?73pQfm1_6m{=HR)S6- zj68JJh;DvRXutlzHty4%Vq%NWUfTMX=)2^A>&!c6NI9{J{V9pmi?-x%di?o*_k=l3 z?B&D| zzLOgv1MNl-VBpo~L6pt?8#N3?x$d6>q%3|33-Xf=TDtMWTuq%8hmrj+OOvHSozlgjO>I|qO;=+ zu+4;CW4A8e$_JKTX%qGEC1n%}b2`A=aV9ryIdVtG$j6*w;BQZ;p@|#a6r={K6UXyA zs4@b>R8=SDUM<6?yf-e>T%oV6ZYin7FU!qevo18peu1Tm3iQPw=BvRXbYbK3En&5b68y%d1GUIo-kS?$?ZY5Z6ofkGqT+Z z;+@SmtM=UVR0F{&@3!B()`gQ zr%*#A=tlDer}U3T!E{w#*+G?2{X6?b)%O%vG%}Z7NmIQ2s%kGM(*gumUNL6d6G3&b zi@na0Lgvk4jrLjWb6&&o^d)g6X<;W=EGXXg_-PWW;jw0kIvXXf5_C^8y{e_Ib1d-c z|CN!ba3QoZ@%mT1p1i;S(VSXfNk1T9q0tZy4n0p+L5S(aWdlOG4`Vci($uzne|cFQU&ry6_+Hv5S2Euuqd^k+}&&#cGpAi#F9L*@E}+2nu!dBZOhfJ_&%`}0Bg&Zru-$j2w>n) zn=rjbwNAIh?qpkDex{1}SnP$}kp$ms{C!X7FBc44 zjr+rR2=rg4X4JYvWg^9T-b?l8(+kQiXOEke{bM8)OCNmn-%K!7O(Ds_n0ZN`lDIe6 zSjMSoNKl~ogHB?3ga~b8RJsoG&{q+J1V3ym{6j58MneE1 z--rtHCy|ZL!g+$%Jq=dup-Jmog^JLr&$ots=y?U7jx-vsBw3S2Bp?}Acy}`)DrT!g zbX>Pg0k59gF4zsF8U%6U<|U~~NO~o6!o$tjv2X8|XxiT$fHZ|?8Quhkw_ylj`mq$8 z%0TmMnYx>m-$!9(x`{v#!>%I)Tz)^a*Mz^zSA>L6&GcN7_*8uK1q+BzOjSbFM-Ocz zx74!r1#s#6h%p^h7pELTLzzy09EZPlHuxF(T5cSnu+w8-m&tEU#~b@gu*#^LcPx{w z3$Nsh+N0#`nc(Gtl%S9j9sgK};gaV*QHC;oP6<~jNGQ6GFYgVEu&*fj7U6dLMUw&UdRsA^{MqLB)y-SR_0}qY!@po59teNA zn&hil%Di|#P*F0TK_#UxY6Qb0ceR$Rw`%hn7bkCPxm;+H%tXC3s&mWU^<2QHcxgB- zxYBRZN9i22kf-B9JotkWSq+XKPuli#ctoOmYu{aqR{uKf1x5lryWjG#Lse5XfP*ff(pa87>dww;` z{BMnq=E`r0c8ufCM;}wnM8cGFuaU`WElZX+(42wozARa+5NMvG9is7 z-T@%0X0~RNb!?JI_}(od-$+|LKtqf6khvm10=-X7l(GA8-#SBmC@i(g-|FhzxO>{@ zSqXJ?fVmnLL&3_jU{!@RbBm)R)CeB;rcK6&_@|#KYbG-Fs{2nK6cwzF`u9`m=vhzL zuwxq<{?YS9TAQ`Y+kVS<)3m4)uN>0e>B`BsY#X1(6UrPyi)LIS%+t=2ci%4z00~N+ zAI{@A!K^!t;#6);e*TD&|eFIg&Cf$bfUcJLg{ zYggT*Ca{Ks%8&Pu6qX%?ngt9p45`a7CS&Hhd$evdls>fGobi>v;mwHNPPXIpi{yy_ z!_39sH0avq-b)&O3+r5wCZaj6EH`g1GniE!GKDWjD|L8s>#W@-JK3S;w<@MEyU5qv z5w;Wh^?sv$v>@t4gI?oMX!7Q9hdhTCd2G0JZLy=e zLm*qqt7&ic(b1$VDDYk4!5i|{J4O44_}$XpMCAEiLx7&gC#EZi>)z~7B;_zawonAC zU@1tOxe)IAJtFM8$#=XVwAOeK0MD-$hj_R)?#+I;Kt90Q{Fgy!*SNgBi62f2S{qiX z%?t9MxNrY4TSDT3)Lu-XLbUL0BQYQXJwKBS`?}6kmPU276n~6cF>kpZV;bh8=kFZc`jKbtxM^HrT z{_eT#MYS?=S+K5(JgxuzK_Gp?RYX$M$LXFFgorn+@5Ow0*tY7F(iu{_{JTNng9a3} z8)%H$59BI#nl1%Kzu;gBISxbg-$$VjgfK{mf=+tkzto7}9`DVJKgleLWbvL1;d;nETd8222cg_lCXSscASe$D9 zKORr)cG6ozCNf0E{G^$6ZQPAZ zHb*Q|JC=vf?b$bx5oR8BoklX_)!hTMWSJ>FBJtBUWcC>(FOH_37q$ySjlUp665BJ; z`;H4;Gstp*EXq5&3;KPAE*C%vCN^0rW=(Cig zlQk$YsvrJI&eb_){T!*Jm?*WvLFm^Eyp*hrq?>vrn74Pz9eIl1$bLtg{rz4f=&Sdy z0VU#0N~9q6TP0gnvj>`y=cWRSU8PVOcWSung?8?#*HuB~sStPZ^Xe!ImW|$)l56WL z=VZmlSssFa&wnLbY5Sfjss#h!Cl&EVl2u#6rAy1(@pHc2{dpx#T0w7Bep+An2n(Xh zON|m$ozZc2AVK!L&hmbuED@BhokSD8ZYI|Y-WZ#0o1-Ea&6;M0%0R#p0@ya=+_WW3 zPXm<6DTuXkJ=yu9-@C5Yyw8DVE6B~4!Wh6`JxqBo{5_atugjvJlw#jq z!243K9PUVxR=n0Cj)+cU!fo>#*l6P?jL7PN6 zdKmM{_q%RQ@G9-WXmW}aP2sCy6%eG6J=zFToVa04j409^{76(v{^@v11P>_^fz>9M zaWjRXvT)<@s=O6HR;8N9fBFtsmAw=9t+SIM8#|wSy@<|FiwkxTR<1cc@q3`~qe_!Z z3*|UqBEP3^w;dWX0}Y9v8Sm5upm;=CqdF?F2xtHb43ud=%4?&=@A5RR=Ho3ybWAHc z29-RKPRh#ftLC!3QyX+-$(;Njj{uDfR-SkhF$iEuL&CyFv6RIro)H1p)=Kf7JJO{& z@q=CmMGvTabCN2lYRH3m6Jn6eo|Xol29I>@FNCJqr;s& z*w2r$FW*-w55swRA*Z)y6&)2+(hzvM}+SU6d-LrufFInwBu`vA-1qnC5%k9UEg z3vrzgNv&g*3qV7zXse3`=pzRI9{>p#{kEA~P&?a}x}?QBldCCiw^ihYf&}q?K9(Y% zE}a?n$eg#B43vtz_+ey^xSzD^qVz2^ejLo>UB3-CgRWnt0;J^O5}K#BDV_;b_fGm= ztrTz43#!kcib5bW-4&SvMqoou-e3jby%BCfs7nBrkZYW&)I~LAO++VxLR-QA4-0_! z^A#B$WU@msWHQk)p8-C%PN5CwUGC`ccuo^(X;t9pZL&*AUZ{O)b`QyPdBR!&i`K~U(j})1S)zhJcGq_7 z3-4Un<-d*%nylZDu7bnj;-v1x#C#RotH}Mn^f0yOJmy4ie+*~OJQV+4EVCuDOUspx zdB^m;x7HxI+Y1|Y88!j;vG^ME2n-YvE&0uU!AM2S6R!X6nF^F*ut-zwP_VBBU|4hU zHdzPcm%Fvq>>FEr4d0Xc1O!=lAjp4KO5C7gUxA-&*7W|B+lnv)VRkV}g{|^coqtd*_lzn5=vW@ApS_++!pAjJKTl8_HAT{Ep+4kYnZyO|ewR9cIfW(u;#Qml@onQ{VEJF9z-^9nAF9X@+P zlk`u9up26;d2{5bLXS2m(stxL8nAXmVqG^cNK(Q{^Q^~22m@w9Ofb*%lE)wi9G_+B zyT(U~#+^sa74KxHON&J;3n@rCTD!NdbNHdU6pWRTuz>o7K4k|r0GF#8fXn?QciYu$_rNoutmYSq!y_Fmj5dKt= z*1LZk-R(oZPH7Sf!%v9?3Gz%O62{iV9D%K|j4>1PbSR-emQ*Zm)fmt7weHL#5_Cpq zuV;Ejp8-M0QV3jeishKlB4M>1oeCk%) zs57wV6R_i15A=({aN*0=jBDlx{%XmiX72=eH)KwnwuK+|D?q*SE6g2<^rBJoEgv@0 zy7$6_$w~YVhG9UhRZ5#Td)h4z@Zf@sV?d z#}Yw4tQ2f;aeuam+>DN+Bc;F#$#{yON=bN!_1p;=dUf!^9pWu46xI6_vlAaH59d&>i#l5f8`?n|#=r`@7hy6AFFT)8% zyw@Hzu(-FEGKX9?c3OA8mt6j1E9mzTiD%&`;?JaY3{IdyZTxj=IVAll3ku(iSbRpI z_QUfB-@OpC<2i9o0SgSgK)L58hcFBmzb|c?5elZ^vMr+k(Sk0*+U?%vZOFyb+l!~T z{ovv1M&$eCn3sm1UtMd~eQMlpkWKhuvL4YFyEbZ5Ez@8C#Cw7tU$ z05NCvyOeq=GlQU+>8#Fney7Qb%{keqC!u=k)NacDB7lCoGBmA#pbkdjXP)$81L@h} z1AXTG0b|~DYt4@9^wX*+nZM712fr+o=h-0}k|fc~2aJ@2i~CL$Hd4dcolF_?=-p(& zl`V0UjIK@&s&N5+8!i^16Mqj9njL92$_~xUg#1qNcg3zhpJQ86Vn2~w*PlpNnm3HJ z%#6}pF3$s3FembJGqkleSx}RY7bcgBS3Sw()~V*NDAuoM&B)R<2JtAOUwz??O}!;X>@dAz&uK)#`RNBrV=b z5)2t2g}cefmD|y#|M`db6DQ^o*EV{j`{qP*1TuQ)-K-=)2tH_Oh?7gHeuNNzSJ4&? z9;nxMLZ{LRG9y3JO>%}!drc8fn6bcK1ojnOhQA-0A?1VwD=Fg9;MbXq6!z$o7=ZM$@3>E+UWV_l1s zza{>q?ZEDBmDev*@%B8}z(5jt%g_5ele*9EA$kf7T3B3RvBV-Y1eWSB4d{xaH=DD7 zD5Eg&!}3FCC{$ehQ#fy7Tkx;GWcggvSPU1JAX9emHJn(_e4(Ej#ekR>Q-UWM^a7lX-59-|Zl=jiFZ`a_3 zg|6NHP1KM=M9+K$?d871Cfsgj_!LxVzLYxIfl6iRH9KX%T|~N|7NpuVub()h|I_J$ zVs+LNC0U~d22_b(&ZP}9e1qJ!8e;E* zt;U~#RXIVGlf^tl zF_%Kbnc)BdC#RL{ct~G<^S&ZYM0_kTJ&fO>_AnkEKpARaT0Cb|W?wZ*MZNZ3!ys_P11YQu8v{jwFc9KxJ1vfpwQAkV5` zVNyHEA`Bu<4Z_kIXXa>D7h~~FFLij#sEPRc(l&WBKYh{KoF6dX+&AP<4$Y5>x-U~& zprF)R-SqXfKF=^f?q#b^5~)h$ndV*M^_^fevCHm_3BZHe79^<9m*^oT$}%724V#|> zge${7OhD6x^+m7{tG`S-IbHg?G(l8Y?pXjj@{+@2bF)(W?q_3YLtX7Sw_eilUStXA z;6EMFb_=g9^4vD|Im(ZksH^;5zlH7kmau(%tfm>m>+r404OVi#nT>GLz79z52BBT5 zEIjX7R&>$55FmuGN8s=mQ4>>|zFo+-U5yBx!hj&QisKYQp5~Se8Qux~>k8w*=LTtY zkeC`~k$x%E8174JXpMOu8BGFVwxn!2j`S$QNu2Vh$;b^n#-t8RdH})VD!guWtBP!# zQ8VtglefoypRrnT5R_v&g)}3wrT3KqqqS{h@n-7+v3@jctySZn~TlQ!TuU_-y-0TC~zB~cj z;Oa_yV|>Qubd(>Nei%8=Zg4Mn$7gEAzVQKE_|uCO`{5*7c?q5~STeOK3!jx*IhB8R zFAv%m3yHufw}v%BvK~dK&cf5xV?%sfpFVc=it_iRyel>hfjaLkP!-s?gdvpWx8pgV zqxRMy$FW9^ObI_6B!pt5K`*moNBMl3Rex~YNT^bcYl$6yIUxVwQl5Dr^ZWdGr_AQq zy5nwI4!aCH&%<9bBV!fe!DUd^Fwx#g?f(rf%<06WM4FrW$cc3DUWhu&Wbhu!sQh0~ zaydB4=!DD)!DkX2kYL7%bwY;Q-nDs1k#9q9CQ3NARp|=XkCKzhMHV4(bxEGLQIPWZ zN_%UL=@c=$@`<60Cj0!cDw%cIXdST^{di=0_i`GmES#TSZ6$6( z?W|QmcVI=HS2!dNd(OZi@{2xpQWf;d4J;_eV>%HN#PnsNLdUQk-}dEpjskO|+nt_B zgsgr>{9jiR#arJ`hK7?~%sFVqNFcB^@`#J1!W12?CC-!kbXV@_6goC~yrq_gBjLY|N0f*R~1~lDJyC*udhgD@fCGiX}vsx+Ta4d11@m$jGg?G6?{fF_0Hg z^EA)c%8`$8o=wSj&~U|4x!?Sr*-oWD6xgS_c)80&;IWy1EftTp{cDYMk)(=NoFU)= zwM^}pN0wKM(=TEE(8-C2s)i(C ze~#0k>9otfkZe#>WHHsze~*4(?=*AGq3Av!!MrzPHYs@?RcJxidb!}6+NIE@`I-U+ znkjuJZ(2;S20iQMA)qGsLD=132<$f;=h!-6Y-;bC@D0w?H0t|?n@vSoZ)Be+ncc?k z4EcwH?O_6{Pw@!v1NIIVDkq#u&yPn1%Zh{M%$j&$9XyYirP#`GXO^|knYElVhRa(z z%zeYEJzgsaY3TPUw8|5)$;;9c^>Yp+1`m`b5pmVL+wRFuJM$e7tvTz9uZ_-f)7(XY zC+B{~mRjSe-V*ilUP&-=p3AEd*1rKgu7}|I{qx9dvBAslhV5|$0cg5MNQlR1J#4u$ z_5J3#oXExdi!{j7d$Is&OJNK3vOD5;H|Z`~;F#C9Vq3kNWMX4oJiW1spxJ{M-+n8^ zT|?OO-93}tH4{EU5_ZOS(W029o$Eg63VdnX{L{9b!!aq9D%GQs4%pVf_1L2m&~}x{ z^n#k~r0@M#aqgaMs5CFLy2$RQi(KcSC`H?sgEh!BaM`UnwN{1 zyKJg2{^fI3wK*n@OV%L7yy~y>>@!ZG} zaUUvjof=nW(r=A#c}JZO%dPv2-Z|blmub!l$h%%&UmxB1bm6FGDGN)5Vb8@6V*7T8AC0ElN-SJ^NMs*C?x9)o!S0a_^00Qy?-` z&vx6bkGTAUXqiZ~h6`?b$OpA?yjcYH0L&aBRHu% zrt?m?BU@FYv6=7-Ep)9`Gbs?ybIT_opK0+{YYu~0AKAmoKw!Q%jfJlk^MVl8usE@O zz5?Q-!uAZ&@}ivB39X+nuv`p9J3T+DIVtXb#D>HL4u=#3j1uQ$%|pte>yF2){W>}09A>qqTj7YoJPoL?X;TIzlrq!%n%k2ri;SV4kc zkmeK4RCpnOkF?-*+fG6!^@cLlr+Pyw1=Ff_P?M46{(@ZSu5IF+B~B4btN*1>d?l2n zt%Ud9m*lNmZ->m;PG%?S3Zr0>Uc_uU=gFGUKt1a=m<3XNmRJz8)UCLCBy2eD9`_9NNiOWAzTEuD%Ss+5+{en$^2km&d!X-zdU+=zo#4MC zdnF4#&r5HD=uY?U77uk<4mF&0i$DDPD}82&KdFBeP0@z^XgdV*zHY3O-;Nk{Bbfjy zjzrpGPi_A((~Fg=QuKOeeYVQV_X=aTkdp=!r(C;PBe;JFq^igIgmCiD>)(Z$YM+l= z1AjF3M!}4=Yj)DyY{a`485|RDziGj#SLgE!=4nhU@2}I|&R={?2jkK%-$OuOMZiz> zkx5yYle^^j2jy|=bFi_+{e%N}Z??;5562nXddD%TF~q7zkP)E;U&=LACrv%5ZSlDQ zRpdREMdN5!6@d_K4D&5_Eu(9&&nSRb?99K{AM%YaqKFAf5lgvZH|5wyEuvgk_O;0j$Cbn%& z>>X!f+qN^YZCg8-*tTukwllH5ocBD>`Su^!*VTQmTGiF7s}9c%H`B|QpV@)^x8GG2 zcP^MQW;j#q-EaH@CWcp?A)h@>xvj^f9&KXAsVM^-RK(J-k2Er&l<1*^Zq9o$YT)j| z3q2=~DiSJwRfu#agV*8j9DOFI_WYi<_Acs|_p2ev^F)7*0{C+X0+!k@^shfMtm#_B z4juj?>~~&y9iUx+|9Iyt%bq!l&4qL>RQtNo`qe?I9htGI?Q-m~h5Th_hMuz-KK!Pt zB`orGu z;--U}1X=MF@u>;(zYgn%VwPy?0`r5|b=;UaB3if_|ZP-++!mT}`Qmiq1 zbIj^8X-!y>WQ=^!Y=QFKiD81Zg zeTs{Nu&Ic1?0NBkqzQ)V_PI^p59#lR3KmQK$BI`gGspGgw+-3ou~0nx2q_cp_aLc zjYe)6&n;Z-{B)>X8L%ZODisTHTzQE>TJ{5a5!lv(pvVZ?rW0oSmP>n0?3+(XZNH*} z-&n3;#Pum(R&_4jRUHc+-mFj{UO!l)smbhUmH)Q~vVNus7Jg-ngI_@jkwa<%MJs>e z)A1Yyp=SNZ4SIsqY>sjxobM*21^wkBTSKZMf`5Z9$&Dy9S$@mO;=Fe@`KxXytSFce zH%*M3E(KCC@P^4#1l(bi*wvOpa3Wc9jVIom^_3 z2=XLvl>pdk9)n=l92`^nfs?zXtqHs}y;ZUt%3d!tuM5)qQuO8?v}C&AT6NpD)5E9= z$Pjz@WDJ`nHr^jh3rF))_ODxX=M$jufb&Rut8#{m#6Kh1?>3J=zI zi|^OFOt-&YYLcq}FRLq-%L2yTbRb?lE1c;D!xV52B)0y^Oq6qFPBhd}G~nDOP^77K zOGeXCl%28JuZ=!v4fFbnVhs1KA4W?EuA~=H{B`E;&KDrf)Z^$VWKVI&LgsVOu^G4? zjzx7D=VC|za5aK}rt>sS$O}|x>bK;bVMimY-zu9bx^_u6v~p5PRWo25A_R63P&4UU zLQgpGWKZ(L`nmW2xqVw{>h1c5*g0IjYok~gc&D{%Em(Ud*#c%oyD$9rAU?(NPnK+8 zzKABfeER)%RGkyznNH?33RvopFA8S1V`$EVq1f>Z4;nnv4Ns+yJbbX1E zV=cF9w}`nBQ#P#(Amk#LJ%WDZs41SiDsHN(f-dh6-FPNrJb!bZtHnfl}9h0)m#=)4> z?~&HMdsQ72iu#Qu{zp!T_VH86klW+Ov%}=Fiu=%%Mz288f$`u6XHe9Q_Dno-<%8Lk z7MAH*a!`}uTw-Y9fs1KF8=}wLwzE--+FPA#gcNaf6U&|-X<3igU_&Y%`tzG%&(R|( zU&HdfYpmtTQ5f1~VdoXPozXA9AUQ>*)pfM=r|~tzx;x~@ics4uvad=4iAxuXF{@lx z5o(Ai5gL!tg}%rfaNo1a0*y8cff@-lM}p%eMR>2^e~aFS_5CTf{myF`OekGA))ht=pAj?el9_Lwe{PAb7_#k!Hs9p0B$9PL953GfdU#Z6wQ^MGH?hL=8QX0IKvC4 zq8W#r8ig2F36IjMKCJzaA!83APLr<;fhj>Sex?2Ez_Q18BeEzMAQi~hbnh2=gK_(} zng^&3Jpsm5(ztHPA|SPA4>gkPWymd|(+CUAV5tetu+L5Plq=a@mlZ~H;@yZ`E@sv| zO-B*GQpmq*24R+5k-x|Z zT-@3^!OU^as2HmOGteb?Gqi%St1Jf#w}*3P1O`b1OkUM{3Eva7Dhp{<=3|1k^^9Hl zOTk7W?vp|z*I?Y(6jE+}f~yz{EP`PFw~#=J#uf!}GnO=hsZpeO&)HabxeslmzzEa{ zW5d_RJZYki=*3!Z7$Qru;I4)(9#d`U$%vLZDMf=EFFACj7}6i!UbG>= zd6F_&*m2ZM|7;uyDsKVHYwKAJ>@Tm~Za=-C7lKP@d=-TZvAY#u#OR|0S$CSLd<;Az@B#^zPeJ?sxZ>~ilp>P50Kv0O^KkMGa zgZoavhJ09?|IL2+kyEHiP82^mA#Azx1Z2+HjG5x# zvndju^L@B@ROatBjBnGXegQ7-J+-{MRPO4!AnUg!n2CxogcrVvH+J0*%(0`;PpuH= zT=_9Ij9#~?Dp$X8iavxk#>TSNu4W z3O?+H;_Kt!>vedz@O2i+^CvuH#4t;xCSw6-R!~++_JA^Mbt!NN2G|=|tUldWW?-IL z^(Q9&29JUVRZ34Y+lpKYvoE31l`qIAfTClZ--7)M9W>wmeH0}xH_REb{HsX+POx;g zI;H*u>P{-81Z$@3w>A)N_W+_%c5#<*E2q{8h$ky`$NlAV{YLRUJEU@rMFO4D6-Rk0FJCnD`qkwCxc zbJ4DK)eLkqI>IjlvP!1Mq`er*%50QtJm%gBQ(?K~0k1B*CVB-Xd~+5zJ%iA^F}P9( zs+LhEk~{b!lFkoS9yOi{p^n>jEHFG)B!&8IekG5yL66*08gK%$Yioa> za0gwzJ}E=3y%IGekcKZG_k$ov+ancY9dHZj{_&u3>M1Z@ma|7r1Nj0WL%v(|NaJh;KBxjYYt< z-l}^Qr2w{b8rekv7`VH(G8%y@%Vivljd|-!U*4}YX2s680odSeJG>td0=bw#ArQO) zLOtoS(XG;C)LG5d?h-CsJb20ILLCKU@cS(@NkL8FI!h2CJUwZ(3C{ zly63^V0hzPro2(&DA+g6+-82?&$j-tuZJNBkghxDOtX*{r&C?WPiDkSm`aaJj)0yG zXK%|s?g*&WkRG5v(UQG#jxj^h5r{co3jS67dzPisGot&rp(W=F%yP%5zl`Oad5V9D0dh~j|!3MnGn1FjH+y&RQPykHw7wO<`Dt2P- zPl=!*R}K$(H0>az{Hnaq0=phPX+6JDr8dJoMatUfe!05ksVFA%ZEO6l)>@EUZiT@LJ2eAl+awiF8*UZm|&V`8%0C0@Jt-q~}T z4C{F3efCYT2hdozZ;q4EU~~f{H<;6iSBbz_JQ^Owp^saj{ynzG7$7VlJt*flzfewfJS^dPPv>k-^W^S5+-RweF`Cbu))}q%p9fTGq#^#f z+SVrhYvOq-oD*xWO^3(Y=bT())m0FJ7B?@551f>^jtejOcz-orOqAjw`1YZu&(35i zqq=!pV~$b-uW{#(W5a>oWDSB8Z_d_CUv|VwpgC19r2^!%jRMthB_O#b|;q&2L2MQAFOZFok!-${Y*|~3I#jzNo5PD6^n}qP!~7w zrp2kWJ(^0)bvZf|Kh*L&Ptl2h!j2NSPL|J35vcWbJz(h_d+N%fUt4i(QY)|^1^l1s ztS>hcM}9IJH<{n?vuP0#($-JZO~UY1!UAg)9AY{N3>P-oO|q0zel~H_dS{CjQf#_B z3>Vqb9Tji8U8yNmbm&|Dc*tCUJVeXf1?Jf%&hKgW%PFjqu`;Ck#m|G?L6;s%kk3UN(rz4Ou!Qw*UCTo{?`AqI!skfY&xl97<;U74zJ zO7;Q1QqG!oReXmMKb$9TI6pyuT1mTvS$cYPm{6@ny-}3S{aKF{{vGZ~zYd`tcGbSq zP6he`K~6#?q#qGO0c7TpVAV9O7~RoIN!1F)9c$CTnJ`tRE^aiT*295{yb1OtiJYKD zYT92pXIy3UBrHiiHM;5#_$GNI*ssh^sjPKm!*1{mLBOP-j->N!Xbn=f&_Ly?BG=vd z6=D62#ry13r9H1MMoG7GY`OsYycebLpRl!pBCApa4#LlHu8sI^+W4RpR?X z<>=fKlE@zqdgFs-YEzV}lJ6{_TO+|Q zd5+AXd=J%Q>L_!hXRe$HIw99QTYMrD%DfBE2DjRyfa}ID`~M9heh!Q9h{lfA%Zr(^ zWQb>fuDnej3d_6&$1jnqnmvT?3awqQMhL%P8$Y-J9E2+Jk zT#rT{1#=3prb!2OGP}>l+TGDb*rpg|kLp~pnd63h45)~}K5wnKHf7O2h=y|y4Eq_R z@_R?M_*vPJJkT6OI=xK`c$3*PCeq|t-uf_B7p8fQb-9qFOTeq|c)B7~lUE=#t_L+9 zeA~+KqVob`^dqiG)F8MU$F6jRc3pYe605LO0I$@m`&tTdQ$ZefST^#xm&Sxgi<}x@ zf6Z>{+In+>o;H3 zg=%6CXUfbM6c*H;q@AX!^KzZh)EFevD#SiRqo^|RXg1R{UT*h#T9frkf#E)L|K==M zEiPf;=+KU~jl^^Ugy#91Fqj1|H|JthzlIBte#ub}@%dOI<<98obqRRc`VB zEuG<<z*#)Nv?0c^A#)^~Qz;Dr&zlZN*jD8cD(kg{pj$5%!<8YAD7+zlbYD!F8+oJRx69S=eYh_x9h!JBG#}Td(JK(vZ(U zGJ6%TjQqdLs4*-Z>71v}4dRRVg#*_x@z&~nfQJxZ!pHe-ZRNByQDN_X5yU#Wr_ zIsKrRCj^i^z8hzR@1ZqV`AeRMAW-gIrgNLZpT{HJ=jzk;N&|Im(20zn^Yt^^!`2Y# zmuo<6R%1rLcvGrlqqk%|v0}g8&t{#2=6H6mdYH@VCtTMMPuAO(!39CvItT5%NK|xm zWQ{FlsN(~r+^-RsM8-*b9>*?rl7yqH{=3loI?Snps%Iz=U9#w%xY2q_;5%Q5-nE1s z(is&b@sU{>5a$yVcqd-AMEvFBCBM4H4HQd0q&2A5mzT_;aS{o#2l)+QP#F!lEWvF>qDH%_%hwqeV7V zH8<}Y$~E|=n<4|MbzjyWvF+34>7bgwlPy9;|IC=NU`Gvhg|L|JrP>MId*G85iqL|R zDs$4X*a$}u{VCx=(YS-LDc>>5v=uUx3{@2#&i{as18rhzq*n56vp?WGXG@nUvrz`p z?G2U)b8beBjeTqZH0)9WorAtKLvvXwBHT5t&i3wpSeBc&t6ZMX8yB8oPt**Qq$;BX zK@wS!b?+t!-RD;?{sX31^V# zY}HV8=;+HB>o>T;=o^+&uGo4`xR|4o#h>2m^y6(-Hcc}}=6jDd8rE`3*y}*)$HQ4+ zlxYOtF+QMrpVQ&9k&?m!f#fq-%peBhV`Yf|DvmkrCgA0{%;hj>ydBOq&zG~HWr{`i zX^0}9R#$`VgjbzMNKpZK!G6FHY>O&CD;$i~|lgi(gc! zd#To%C{s}`esBH4O;zGMr&l@9$J}yB|onrGFYlK86@%SvJ2^lkrIIS74e@y+pp0Ia06N=X79{2c*>5z^> zPkXu;Z8&p9OMZTBth)KCnpJ842fmG5xSkcr-)&5P`sU@BGMT>)0$ji~EwoAenZvb% z2a+ja`dz{*`L2373zklj+6*qg61Z^Ebo|U!cj>bM`G0DnP2YYCiY^J(>D)MmnJSE) z={+K$@8nNe)J|&7L-@?;%2+aH8&Y5-ohzT}*uhJ5wuwBA2Pcg{Fq0^4)h|*dLlUMN z)Gp`#{G}zT3ACdi0|J81$iMexaef9E?4mFO)nOe|zIF`f2ypH|s*=%OM#ZCyprh)$ zxbSaR^+Zr?g2NWPJ$?9yWwi;qlP1S5BgfS!6 zGTdwuE&}re0ZCK4*Zs2QUbNsx5IPx4;t(V0Q-NP!T3}@WT5npt zU*DNi$ZByp8`M5H0?yHE?_sabVk{g2FYI?RW?cmBiD<4J8^=!CJXaqDU~L&EAIh7j zz#j<}KIqUQ6DYBwKg(usRM&bW%trTG^ja*g*t)c)93FhHk+xqb^i>3|d}0@v6Sdt7 z@gJ)!9ZA#@zhX)%^5 z@ya(@4jFCfHKI9fNphwX)nf385d^#%N~J|!4sSuuB+60+^EfVz{wB$ac!Z#Tom-1^ zsorN)h&<|N&Jy+Dg0ff52spHrEnQ0+%K2-u)TzA=H8(j2;KU&SLkicZW$JHHYB|!) z@X7G)4Dd7Gr2mNk(_Gr}R4=N8PJ`Zq?J@;>-=!dAyGJbkFgK{oIBoWZB*qsdx0Oj3SI z@m;0reD=3d4E29@;Q!hIH(~yI=%6*0P>JpxOA9l)!O9LJW(W}md40YMLg1>xo&-rR z|JPH!n_rEtOp@F|=O(pJT*|+@i7tM|M@l`4qyM?gbyv1B7)o8+_4u>w8H&NuS>Oxk z;_tc!&Pk$UB(Q{U(N)@bk`Hr&*OU;-6SmR)kSo1@{*g^`A+N`Ojk6G-ZvVoq3Zm&% z(NF(4S>_onaZ74D^N3e36n;~x_j}{_ErpGu1%bS+DLR@=11WU$unxwp+nQDo|r`l&8RJO;<$Xevo4@Tyj*nt{+) z6^{qari+B%EyGXRqvQ~RuN$?g})gET;{j3A-Xt{VDkYY(}3wHK6w0G zC2$r4+W5a3PCPDPu;rO)ZShlYuQssJ|1ABZkoc-vSjnp|qprzhZvVB>ON!bzy5@Gu z9iEuw&_Xuz3}$dp8GcLKEF%9jYm$|vM*RnBre+wWFk_~L`k9^7su7^n&jITgHKHu# z*73ju8-m%jMV!i9r5c;-v!{vsLIf3~M#W3+0e~>n;@Q$vaKemdCmhoa9tBf*oL=bR zWEdj1>g1F8xc!tuH#C&jcco6sX3V4bYev4m=tT-5j>OA#PvX=oBj=KjSZI6kq4qP{ zUqCP0pP4G&G@AAydM}PLO)(r8tiG5->Z7B#NuKNT0DR2R*(XwNWk(?aUn$*!?7?}? za@^`e?L8J|F`1MdIgJZ9qHVghYklKq8)k^i;z-Piz zZcL3yFSdXXjh*|?r~My{Ay5H9OPf`rqiODgA99vDzeNB1335TVr|#Qd6*nNJS|_Ch zK)^s!Y&cn7pL!PNm(_e_yg9eA#Mk6{{&A>JW0Rl-*VeJD=JkdOO0>Z+l&C23;}~w! z8$aX&UnY;-gHX9Kf5;)y@W&JPzRTWL@8tX*SVt%wq-IW}oN$>Srt|yjR2*=hC48b7 zwu|X|Es$Yss}&G-@F5Fv0(RFczfO^rWhXOb9!l**p6)`YN-1#~K;yQupU}q()a;&f z1$|;!H}J1I$L&r}b&Dj=vEBCON7W%;iKv(1iQ)U)A)(gMJZV;_V5Stk+z7jWkAu=g zom6Yg(3w#_smMlxjd9KPqOA39V!opV&hGI%Jb|e{L}RdF5TylyH6fRp=cDTKG|vRG zWDu%ZG3KLOjsUkXa8F{g*r?-qS$3Z{%VhyF{q@_fTtDlQjke(V_N**efKa-=ex=U` zO{@!+8)$S)pJGMn_Oz%jB)K^MpvqOykiU_*4->s*>Xl=^#`dIt%hxosN~1tm~603kGZ z{c{_R^nIwL$-hs_CI3P1SH|`hT}r=UD7}i(dl;67HYj<8VwRC-9u(G=)mgN$p;qg{ zRdqv|8IZ5(6k5@ld^-&xfhI51fz$bBt8mbC!3ONzVv^)6dQ|M{Wl|U-oBf8t)WV&Q z*n6X}Zt5BZD5TcH2^rHh(FqNeJ{%_nJq@S}EM}w*cP9bv9GV9>p7Ja!@>>ytLG&c7F zG74iC@3OshIT-D}VQG&+YrZ*y@q0p-xTCOM<se}cYqv@X~E~6q44D^-p2PzA-FOd_&7Tj1D7~l@ISc&}ju~{Zr zh)V+_!{7*qHLKG1?chX!OXT@%NInR6Jxh&T93-|6sbyRd6*&C}I=AtzzK9Q3&Sw_$ z6trwrQBQFY!GG4;2Og7{goVsOtlX}6gQ!@Q9!v5f>K(#HaDO5ci^9m!!)x3gH|$=N zjqtZwB=n6No!uOV(y;9}MLENj2c!gRdfHiQr7Il_Wlkb^bc8&ly*Xio++hzF&&wbC zC+hQ}fqF8l$fmUp?a;>zA(?0#yKk5>4}$KLXRqbZ7~4*Jk0yMz(;pwe-{R_tJ?i-@zh8t0DZyR z=>YnVKe20Qrf9cOu`~DyaYsf#bz$?R8m#BB38<7?)KATRB1Wg5Pr|$dh+YlQBbro@ zb>#qT#zHpvmkxEJiJ?F`fo7t-W&duB?oq66bOS^f5Z5#Ibu&-N)V=ht4EC+%`qCh4 z*A&MOygLOiZf_q|w!Khidl?t!3}85UVY)O%Tc6Gid_rKc&%GsWMyk5YZA++*okp zqL6-YaqE7i&Y~57sw$6Oh_4Iy_P~Vo0=~TPk8%f)bWk%-zU%h(pw}oe&YLAgQfdC| z93VN+_?9Vxx$arYKR=oTKOK1)n=z9ilI?5$l}n4vi;&sofv+%d9X_DWhNVGCXQ8Jp zN*~Hk*hS2Y_VYBFa#YCTPH4~$+(DgEiO+(lwqmFMYrast?t*1w*tHhDi?oy^o%1BX z<8e)df}TmJ>(2(k+Jo>x-ClocHt;OceNQ$Zv0XgG?X~9xz$1=+cZvg z88&r_PBN3@(lCB~#7^0mW`_1`C@i;Cg^W_;yx6D-UP)P9kbD>ACA2t?x?j6*e)U?C z>^Q25U(PTUhI7Yt;6qj&=CLj-h%(s`FX8B#+G0MWhncdecIe}69pZ?s-v)86_xpVl z65zat-8e|_&rOzqh-dm@P1nN;d5-LGb{Dj@_|tK==Pq+xWF$LAq&fmEbO??837Mob z{XR`T#)r1z%=Hu>M$42ivk(_X23!!%_SGV4?A(%}Mv1a=(3%r^h0(qhT1|1iz*vE2 zjSxWn&uK%!+Kq95G!)H+!cLm;)}WwLfN^_KlGg+hP+XaLBBrJ7E_kzs1F~`mbSFC{ zMUGFB9KXxrcB;0{wXjMkiVwFfYo-V_>a>Ke_kwTw^Ln{`W zGY^2zw#hd*PK-Z%NcB@IZa9KCa<2-*o0>}fk&B>6i^WB2X~ z0;$rmFfRDpuE%(=OF{!reLxw1@DPtWOpaMzdw6k^XOLZGr@#9=9POBvdj4s#`jzTN zf)q#?JZ0P%m&5IhR1X8XsowgIanenf~C#`U65r&&eYqqcS!RH=Of zk}<8kCXfDRKG=7!!@l3859%0Wn*%B@l**iDVG{4 zb7B`j1MC}s)Zq1OvwzEuEafT8ON5V<$^;`&6mh$;0OZ|jp$+v+yo>Hl`8#Ey;LqZr z$FBEmUlf*q)x3PA@^K(lqDDjpJ0I+dtpfH19f}UMcYxNxV+1xw((ER`;PBDdftpn@ zwi*=ii8oIkv@VNR_1+E{c>>hn#k3%J*3?O=vnG<%7vd zygUTd!5yW#hqmUiqvlh>jkig0RS(mtgw4|UOHEaPk&C}Z2I`B8>*Cf!eRF^ZMzQGL zt6`|b0rmqx!@;CW)%TqC;(?E>nh1eC*8O1fzeM>4WO_L~k%t*Awm5Q#+`fR#eJcj@ zlo)?PV!d^P7`SM;D2L5Lezz<`W6YVz0-C-jF14!;u2h-Fmc*(_Fziep>*Z58SV|ZW z{bW5$7iS*=y5tJa!}j(AX(cStg(yfqs>AdBDj>X*nby?%cC%@7&g`wE`73j1X9B>8 z;sZc}JzdZ03i+yU#1E2agw_gFo+d{04WCgly9zx%`dcVTbXTenf6~aT>O~QVu-V5T zXtTN=JrTw=JJ-6O)wL*rR;xqB6L{!2@V?7Mv?fwP=lJ@em(L=#h;iOyqNE544GnBm z88y{d4?WZ0UtdGq0~phAqe+u#eWfuJUsDxE8&VEIb?6V0$v(1De{Ys;{Y^pYQu+vb ziYf({GM&fS!s$b$(7S_}Vw_bonNuf1rQ&ClEm>;YTq2dD(EjIZ1i;LtmuaW|NT!x0 z$&S)ep&8WPZI#cc)(q14U{^daIcp{@DpG0+`vy{9l0%)%ZtZ)Vkw}&sjtsFA1&9tE z`B9c9L{Z+PW*D6OH($o-Ox)`v43wA%I$lelJ9^N2D z76Mr$>NjhX3G=nktho)6h2S1oyJBprDM#YCNu3kVxT33?$jQ4v4s7L;#wOZ+W( z0o~tuZ!OfvjRUe_VB3X$6a?T14%$wCedV7{=Z@WD$;8Y}@){#Ynk*n* zpy*@Js(&~0&9c8yWFPqZ#P%*N(Y!s~2!-MMs&V8P=PWdh-Bqc;_rpRw=w}Hr?5B>J zQJ$JK0k^HYKE7#&DsjX9xW$@6-T-CrxE&Z9ARXOpD-4> zu8mvhycoApEN49K*9fb{GD!q4W>3@b+P0Bq5o>aBlixadl}tCyt9BF+6gry2*+LJf zk1Ga)5Cud`OdMj>XwH|y_>{X5z~epu*8VwS0lrz3G>3tvdt3yf87O6!gfI@7RxPQb zz){7Goz-kmD?Ogk+b8xLGOQz*b@Q356tfXXAs1O-l}T_W2X2x;Db1Yc5sbfRFW|=o z3BPo?DSL=wa36>+jn0@okoz%t0)&-~_wT0FP%b>~H5zBk-j;gq*6+8m*fZt9r5g+m z{7TEAk3ldRk)|n;v#bXE$WJ(z>vWM&Rcriq&+}m(da3NXLjh`qhjb+SGx~K z!CB=ZP^K`Z7RrIFiLP~>O<3%S3s^*=ess+kasH74S31)iA)t8f?%BER8|;Hyg2OF6~GIQki&$;IpKOHl@Ms6dEy=twq8hCjqa2w|H@e>TAZdcDP38!j~ z?W~76kY#eYGEny`sU#E2;63DX2<$Oti2!@5mycS*_eCX~dYkq~R!t=shc!Bnf9WRzo9y9RYU#nH-I}>A_{*snE32mfkPtJ=a&CgJ6VoOEfOpjqhUzpAP zqs5h}r>_xb8)n}?1f-CKob=`{PoU7M@oI;ZHT4#QGO^PppoSm~2G`7}oSsD?t6iu4 z`FX7IU5iR9vF&C)f7~@73QtyNQVw7`1UzNCxW7v{N%)~6eTdJp;<5PNZmhoxOD4gz z(P4QbiFKR@E~17mJC8pdWec{L+-%C-hZEpVCPFH6EN}~@b;V=(L8Z+66xllRkDm9* z){aHk+I*xm;9kC&m)*^b}%CmQsm7}aYk|wfe#j^lakD^I*2B2N748yGXzU!QXv|N%|oVI*bqBh~| zsp)oL!Hp}W*D>jY`IQ86EA%mpM3Xi(mef)%H6Z)PUz@(mr16!LlrfXjBUi;pQL*f} z1HJ>}dmW%eZRu(nA7d&Sy77IEblu9^s=cJBf#QfBNBcNHc_*gR7p3PAnmq84p0vI! zJ4$GYago$bo|nOs`Ki|c9C)?dE7JMPGd{2!0U6tYpmRFx5bHV!D(G9jLR-txAUmi; zujm-##;@3g_fwSAT*7oT=7p?cq}T1XA=zzRtYrffFReNEs;P zD6#si#8MWxavRcgaZ~$76b?DQVW-+T&*c7V7ia|}5@KmB^xiW=4CU9~?wL2^OWnav zCIs{<;gGdwA!PUh1mNoEG_mmup&rqu34HwQK~>z+*PSV2`Y2ZByHfit-X`uNjzgi9 zz^wxdi=){|LMm$dmqXg=bw)U5TYK3kja9$y{hBV{?;o0=j2TmGID5vj<7l~58unjm z4t8a}9YJ^|CCc2knA|b)43^%yZ3u31i0h!u>9*Kh8w$#-igT(n7+~unJkx1VIH+W5 z(UW8>Y z@-fEV_EY4xrn4A9z#Q3FpAcfLFC)Fb)<<0KLnk;hxkP$%X;jx$pPw^|g1Au2 zNxIw8ruAD+Ij$Mrb5!JdIN=~@&s!t^+o1pFWD=#FrQ5uKanb~GNRIq=z`D#jwT({-*N1?LZB+xb^5 z=c^^EU(=@@#j61HN%vI?a*UaV%$C?zjAnML*!z13x8dbg;uVFJ1k!FcW6b!z4+*f` zdFZsvKCnKBCnnjq)8WOhT2wcSS!dmOK%LNS&I^gduMClsK6vvsau>R)N)B8#_6+qb zb-G8OD_X=9R-Rb0VEbUCnt5m8Xa%nlg`KY8BI#-3Ab+(O*{Q0bPFoo03&Sf=TnHBW zR2*ruVWMxBfgXT1Xv5uO0n-w@(6gATzIbZhyEEpF=n14Do}h@N<8Kbbve6tdO_8qp zVO=@o(aUGo~K@5DAYSDlL6#kcrpy zQ}BrZxm|THG3B_95=u!iJBRT10RDq%W$@oaR$u6KH9*?nsGy$)pzvQ2h% { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node of mutation.addedNodes) { + if (node.tagName === "LINK" && node.rel === "modulepreload") + processPreload(node); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(script) { + const fetchOpts = {}; + if (script.integrity) + fetchOpts.integrity = script.integrity; + if (script.referrerpolicy) + fetchOpts.referrerPolicy = script.referrerpolicy; + if (script.crossorigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (script.crossorigin === "anonymous") + fetchOpts.credentials = "omit"; + else + fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + function processPreload(link) { + if (link.ep) + return; + link.ep = true; + const fetchOpts = getFetchOpts(link); + fetch(link.href, fetchOpts); + } +})(); +const style = ""; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const stringToByteArray$1 = function(str) { + const out = []; + let p2 = 0; + for (let i = 0; i < str.length; i++) { + let c = str.charCodeAt(i); + if (c < 128) { + out[p2++] = c; + } else if (c < 2048) { + out[p2++] = c >> 6 | 192; + out[p2++] = c & 63 | 128; + } else if ((c & 64512) === 55296 && i + 1 < str.length && (str.charCodeAt(i + 1) & 64512) === 56320) { + c = 65536 + ((c & 1023) << 10) + (str.charCodeAt(++i) & 1023); + out[p2++] = c >> 18 | 240; + out[p2++] = c >> 12 & 63 | 128; + out[p2++] = c >> 6 & 63 | 128; + out[p2++] = c & 63 | 128; + } else { + out[p2++] = c >> 12 | 224; + out[p2++] = c >> 6 & 63 | 128; + out[p2++] = c & 63 | 128; + } + } + return out; +}; +const byteArrayToString = function(bytes) { + const out = []; + let pos = 0, c = 0; + while (pos < bytes.length) { + const c1 = bytes[pos++]; + if (c1 < 128) { + out[c++] = String.fromCharCode(c1); + } else if (c1 > 191 && c1 < 224) { + const c2 = bytes[pos++]; + out[c++] = String.fromCharCode((c1 & 31) << 6 | c2 & 63); + } else if (c1 > 239 && c1 < 365) { + const c2 = bytes[pos++]; + const c3 = bytes[pos++]; + const c4 = bytes[pos++]; + const u = ((c1 & 7) << 18 | (c2 & 63) << 12 | (c3 & 63) << 6 | c4 & 63) - 65536; + out[c++] = String.fromCharCode(55296 + (u >> 10)); + out[c++] = String.fromCharCode(56320 + (u & 1023)); + } else { + const c2 = bytes[pos++]; + const c3 = bytes[pos++]; + out[c++] = String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63); + } + } + return out.join(""); +}; +const base64 = { + 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: typeof atob === "function", + encodeByteArray(input, webSafe) { + if (!Array.isArray(input)) { + throw Error("encodeByteArray takes an array as a parameter"); + } + this.init_(); + const byteToCharMap = webSafe ? this.byteToCharMapWebSafe_ : this.byteToCharMap_; + const output = []; + for (let i = 0; i < input.length; i += 3) { + const byte1 = input[i]; + const haveByte2 = i + 1 < input.length; + const byte2 = haveByte2 ? input[i + 1] : 0; + const haveByte3 = i + 2 < input.length; + const byte3 = haveByte3 ? input[i + 2] : 0; + const outByte1 = byte1 >> 2; + const outByte2 = (byte1 & 3) << 4 | byte2 >> 4; + let outByte3 = (byte2 & 15) << 2 | byte3 >> 6; + let outByte4 = byte3 & 63; + if (!haveByte3) { + outByte4 = 64; + if (!haveByte2) { + outByte3 = 64; + } + } + output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]); + } + return output.join(""); + }, + encodeString(input, webSafe) { + if (this.HAS_NATIVE_SUPPORT && !webSafe) { + return btoa(input); + } + return this.encodeByteArray(stringToByteArray$1(input), webSafe); + }, + decodeString(input, webSafe) { + if (this.HAS_NATIVE_SUPPORT && !webSafe) { + return atob(input); + } + return byteArrayToString(this.decodeStringToByteArray(input, webSafe)); + }, + decodeStringToByteArray(input, webSafe) { + this.init_(); + const charToByteMap = webSafe ? this.charToByteMapWebSafe_ : this.charToByteMap_; + const output = []; + for (let i = 0; i < input.length; ) { + const byte1 = charToByteMap[input.charAt(i++)]; + const haveByte2 = i < input.length; + const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0; + ++i; + const haveByte3 = i < input.length; + const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64; + ++i; + const haveByte4 = i < input.length; + const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64; + ++i; + if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) { + throw new DecodeBase64StringError(); + } + const outByte1 = byte1 << 2 | byte2 >> 4; + output.push(outByte1); + if (byte3 !== 64) { + const outByte2 = byte2 << 4 & 240 | byte3 >> 2; + output.push(outByte2); + if (byte4 !== 64) { + const outByte3 = byte3 << 6 & 192 | byte4; + output.push(outByte3); + } + } + } + return output; + }, + init_() { + if (!this.byteToCharMap_) { + this.byteToCharMap_ = {}; + this.charToByteMap_ = {}; + this.byteToCharMapWebSafe_ = {}; + this.charToByteMapWebSafe_ = {}; + for (let i = 0; i < this.ENCODED_VALS.length; i++) { + this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i); + this.charToByteMap_[this.byteToCharMap_[i]] = i; + this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i); + this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i; + if (i >= this.ENCODED_VALS_BASE.length) { + this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i; + this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i; + } + } + } + } +}; +class DecodeBase64StringError extends Error { + constructor() { + super(...arguments); + this.name = "DecodeBase64StringError"; + } +} +const base64Encode = function(str) { + const utf8Bytes = stringToByteArray$1(str); + return base64.encodeByteArray(utf8Bytes, true); +}; +const base64urlEncodeWithoutPadding = function(str) { + return base64Encode(str).replace(/\./g, ""); +}; +const base64Decode = function(str) { + try { + return base64.decodeString(str, true); + } catch (e) { + console.error("base64Decode failed: ", e); + } + return null; +}; +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getGlobal() { + if (typeof self !== "undefined") { + return self; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof global !== "undefined") { + return global; + } + throw new Error("Unable to locate global object."); +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__; +const getDefaultsFromEnvVariable = () => { + if (typeof process === "undefined" || typeof process.env === "undefined") { + return; + } + const defaultsJsonString = {}.__FIREBASE_DEFAULTS__; + if (defaultsJsonString) { + return JSON.parse(defaultsJsonString); + } +}; +const getDefaultsFromCookie = () => { + if (typeof document === "undefined") { + return; + } + let match; + try { + match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/); + } catch (e) { + return; + } + const decoded = match && base64Decode(match[1]); + return decoded && JSON.parse(decoded); +}; +const getDefaults = () => { + try { + return getDefaultsFromGlobal() || getDefaultsFromEnvVariable() || getDefaultsFromCookie(); + } catch (e) { + console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`); + return; + } +}; +const getDefaultEmulatorHost = (productName) => { + var _a2, _b; + return (_b = (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; +}; +const getDefaultEmulatorHostnameAndPort = (productName) => { + const host = getDefaultEmulatorHost(productName); + if (!host) { + return void 0; + } + const separatorIndex = host.lastIndexOf(":"); + if (separatorIndex <= 0 || separatorIndex + 1 === host.length) { + throw new Error(`Invalid host ${host} with no separate hostname and port!`); + } + const port = parseInt(host.substring(separatorIndex + 1), 10); + if (host[0] === "[") { + return [host.substring(1, separatorIndex - 1), port]; + } else { + return [host.substring(0, separatorIndex), port]; + } +}; +const getDefaultAppConfig = () => { + var _a2; + return (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2.config; +}; +const getExperimentalSetting = (name2) => { + var _a2; + return (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2[`_${name2}`]; +}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Deferred { + constructor() { + this.reject = () => { + }; + this.resolve = () => { + }; + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; + }); + } + wrapCallback(callback) { + return (error, value) => { + if (error) { + this.reject(error); + } else { + this.resolve(value); + } + if (typeof callback === "function") { + this.promise.catch(() => { + }); + if (callback.length === 1) { + callback(error); + } else { + callback(error, value); + } + } + }; + } +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createMockUserToken(token, projectId) { + if (token.uid) { + throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.'); + } + const header = { + alg: "none", + type: "JWT" + }; + const project = projectId || "demo-project"; + const iat = token.iat || 0; + const sub = token.sub || token.user_id; + if (!sub) { + throw new Error("mockUserToken must contain 'sub' or 'user_id' field!"); + } + const payload = Object.assign({ + iss: `https://securetoken.google.com/${project}`, + aud: project, + iat, + exp: iat + 3600, + auth_time: iat, + sub, + user_id: sub, + firebase: { + sign_in_provider: "custom", + identities: {} + } + }, token); + const signature = ""; + return [ + base64urlEncodeWithoutPadding(JSON.stringify(header)), + base64urlEncodeWithoutPadding(JSON.stringify(payload)), + signature + ].join("."); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getUA() { + if (typeof navigator !== "undefined" && typeof navigator["userAgent"] === "string") { + return navigator["userAgent"]; + } else { + return ""; + } +} +function isMobileCordova() { + return typeof window !== "undefined" && !!(window["cordova"] || window["phonegap"] || window["PhoneGap"]) && /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()); +} +function isBrowserExtension() { + const runtime = typeof chrome === "object" ? chrome.runtime : typeof browser === "object" ? browser.runtime : void 0; + return typeof runtime === "object" && runtime.id !== void 0; +} +function isReactNative() { + return typeof navigator === "object" && navigator["product"] === "ReactNative"; +} +function isIE() { + const ua2 = getUA(); + return ua2.indexOf("MSIE ") >= 0 || ua2.indexOf("Trident/") >= 0; +} +function isIndexedDBAvailable() { + try { + return typeof indexedDB === "object"; + } catch (e) { + return false; + } +} +function validateIndexedDBOpenable() { + return new Promise((resolve, reject) => { + try { + let preExist = true; + const DB_CHECK_NAME = "validate-browser-context-for-indexeddb-analytics-module"; + const request = self.indexedDB.open(DB_CHECK_NAME); + request.onsuccess = () => { + request.result.close(); + if (!preExist) { + self.indexedDB.deleteDatabase(DB_CHECK_NAME); + } + resolve(true); + }; + request.onupgradeneeded = () => { + preExist = false; + }; + request.onerror = () => { + var _a2; + reject(((_a2 = request.error) === null || _a2 === void 0 ? void 0 : _a2.message) || ""); + }; + } catch (error) { + reject(error); + } + }); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const ERROR_NAME = "FirebaseError"; +class FirebaseError extends Error { + constructor(code, message, customData) { + super(message); + this.code = code; + this.customData = customData; + this.name = ERROR_NAME; + Object.setPrototypeOf(this, FirebaseError.prototype); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, ErrorFactory.prototype.create); + } + } +} +class ErrorFactory { + constructor(service, serviceName, errors) { + this.service = service; + this.serviceName = serviceName; + this.errors = errors; + } + create(code, ...data) { + const customData = data[0] || {}; + const fullCode = `${this.service}/${code}`; + const template = this.errors[code]; + const message = template ? replaceTemplate(template, customData) : "Error"; + const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`; + const error = new FirebaseError(fullCode, fullMessage, customData); + return error; + } +} +function replaceTemplate(template, data) { + return template.replace(PATTERN, (_, key) => { + const value = data[key]; + return value != null ? String(value) : `<${key}?>`; + }); +} +const PATTERN = /\{\$([^}]+)}/g; +function isEmpty(obj) { + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + return false; + } + } + return true; +} +function deepEqual(a, b2) { + if (a === b2) { + return true; + } + const aKeys = Object.keys(a); + const bKeys = Object.keys(b2); + for (const k2 of aKeys) { + if (!bKeys.includes(k2)) { + return false; + } + const aProp = a[k2]; + const bProp = b2[k2]; + if (isObject(aProp) && isObject(bProp)) { + if (!deepEqual(aProp, bProp)) { + return false; + } + } else if (aProp !== bProp) { + return false; + } + } + for (const k2 of bKeys) { + if (!aKeys.includes(k2)) { + return false; + } + } + return true; +} +function isObject(thing) { + return thing !== null && typeof thing === "object"; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function querystring(querystringParams) { + const params = []; + for (const [key, value] of Object.entries(querystringParams)) { + if (Array.isArray(value)) { + value.forEach((arrayVal) => { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(arrayVal)); + }); + } else { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + } + } + return params.length ? "&" + params.join("&") : ""; +} +function querystringDecode(querystring2) { + const obj = {}; + const tokens = querystring2.replace(/^\?/, "").split("&"); + tokens.forEach((token) => { + if (token) { + const [key, value] = token.split("="); + obj[decodeURIComponent(key)] = decodeURIComponent(value); + } + }); + return obj; +} +function extractQuerystring(url) { + const queryStart = url.indexOf("?"); + if (!queryStart) { + return ""; + } + const fragmentStart = url.indexOf("#", queryStart); + return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : void 0); +} +function createSubscribe(executor, onNoObservers) { + const proxy = new ObserverProxy(executor, onNoObservers); + return proxy.subscribe.bind(proxy); +} +class ObserverProxy { + constructor(executor, onNoObservers) { + this.observers = []; + this.unsubscribes = []; + this.observerCount = 0; + this.task = Promise.resolve(); + this.finalized = false; + this.onNoObservers = onNoObservers; + this.task.then(() => { + executor(this); + }).catch((e) => { + this.error(e); + }); + } + next(value) { + this.forEachObserver((observer) => { + observer.next(value); + }); + } + error(error) { + this.forEachObserver((observer) => { + observer.error(error); + }); + this.close(error); + } + complete() { + this.forEachObserver((observer) => { + observer.complete(); + }); + this.close(); + } + subscribe(nextOrObserver, error, complete) { + let observer; + if (nextOrObserver === void 0 && error === void 0 && complete === void 0) { + throw new Error("Missing Observer."); + } + if (implementsAnyMethods(nextOrObserver, [ + "next", + "error", + "complete" + ])) { + observer = nextOrObserver; + } else { + observer = { + next: nextOrObserver, + error, + complete + }; + } + if (observer.next === void 0) { + observer.next = noop; + } + if (observer.error === void 0) { + observer.error = noop; + } + if (observer.complete === void 0) { + observer.complete = noop; + } + const unsub = this.unsubscribeOne.bind(this, this.observers.length); + if (this.finalized) { + this.task.then(() => { + try { + if (this.finalError) { + observer.error(this.finalError); + } else { + observer.complete(); + } + } catch (e) { + } + return; + }); + } + this.observers.push(observer); + return unsub; + } + unsubscribeOne(i) { + if (this.observers === void 0 || this.observers[i] === void 0) { + return; + } + delete this.observers[i]; + this.observerCount -= 1; + if (this.observerCount === 0 && this.onNoObservers !== void 0) { + this.onNoObservers(this); + } + } + forEachObserver(fn2) { + if (this.finalized) { + return; + } + for (let i = 0; i < this.observers.length; i++) { + this.sendOne(i, fn2); + } + } + sendOne(i, fn2) { + this.task.then(() => { + if (this.observers !== void 0 && this.observers[i] !== void 0) { + try { + fn2(this.observers[i]); + } catch (e) { + if (typeof console !== "undefined" && console.error) { + console.error(e); + } + } + } + }); + } + close(err) { + if (this.finalized) { + return; + } + this.finalized = true; + if (err !== void 0) { + this.finalError = err; + } + this.task.then(() => { + this.observers = void 0; + this.onNoObservers = void 0; + }); + } +} +function implementsAnyMethods(obj, methods) { + if (typeof obj !== "object" || obj === null) { + return false; + } + for (const method of methods) { + if (method in obj && typeof obj[method] === "function") { + return true; + } + } + return false; +} +function noop() { +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getModularInstance(service) { + if (service && service._delegate) { + return service._delegate; + } else { + return service; + } +} +class Component { + constructor(name2, instanceFactory, type) { + this.name = name2; + this.instanceFactory = instanceFactory; + this.type = type; + this.multipleInstances = false; + this.serviceProps = {}; + this.instantiationMode = "LAZY"; + this.onInstanceCreated = null; + } + setInstantiationMode(mode) { + this.instantiationMode = mode; + return this; + } + setMultipleInstances(multipleInstances) { + this.multipleInstances = multipleInstances; + return this; + } + setServiceProps(props) { + this.serviceProps = props; + return this; + } + setInstanceCreatedCallback(callback) { + this.onInstanceCreated = callback; + return this; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ENTRY_NAME$1 = "[DEFAULT]"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Provider { + constructor(name2, container) { + this.name = name2; + this.container = container; + this.component = null; + this.instances = /* @__PURE__ */ new Map(); + this.instancesDeferred = /* @__PURE__ */ new Map(); + this.instancesOptions = /* @__PURE__ */ new Map(); + this.onInitCallbacks = /* @__PURE__ */ new Map(); + } + get(identifier) { + const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier); + if (!this.instancesDeferred.has(normalizedIdentifier)) { + const deferred = new Deferred(); + this.instancesDeferred.set(normalizedIdentifier, deferred); + if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) { + try { + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + if (instance) { + deferred.resolve(instance); + } + } catch (e) { + } + } + } + return this.instancesDeferred.get(normalizedIdentifier).promise; + } + getImmediate(options) { + var _a2; + const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier); + const optional = (_a2 = options === null || options === void 0 ? void 0 : options.optional) !== null && _a2 !== void 0 ? _a2 : false; + if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) { + try { + return this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + } catch (e) { + if (optional) { + return null; + } else { + throw e; + } + } + } else { + if (optional) { + return null; + } else { + throw Error(`Service ${this.name} is not available`); + } + } + } + getComponent() { + return this.component; + } + setComponent(component) { + if (component.name !== this.name) { + throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`); + } + if (this.component) { + throw Error(`Component for ${this.name} has already been provided`); + } + this.component = component; + if (!this.shouldAutoInitialize()) { + return; + } + if (isComponentEager(component)) { + try { + this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME$1 }); + } catch (e) { + } + } + for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) { + const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier); + try { + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + instanceDeferred.resolve(instance); + } catch (e) { + } + } + } + clearInstance(identifier = DEFAULT_ENTRY_NAME$1) { + this.instancesDeferred.delete(identifier); + this.instancesOptions.delete(identifier); + this.instances.delete(identifier); + } + async delete() { + const services = Array.from(this.instances.values()); + await Promise.all([ + ...services.filter((service) => "INTERNAL" in service).map((service) => service.INTERNAL.delete()), + ...services.filter((service) => "_delete" in service).map((service) => service._delete()) + ]); + } + isComponentSet() { + return this.component != null; + } + isInitialized(identifier = DEFAULT_ENTRY_NAME$1) { + return this.instances.has(identifier); + } + getOptions(identifier = DEFAULT_ENTRY_NAME$1) { + return this.instancesOptions.get(identifier) || {}; + } + initialize(opts = {}) { + const { options = {} } = opts; + const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier); + if (this.isInitialized(normalizedIdentifier)) { + throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`); + } + if (!this.isComponentSet()) { + throw Error(`Component ${this.name} has not been registered yet`); + } + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier, + options + }); + for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) { + const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier); + if (normalizedIdentifier === normalizedDeferredIdentifier) { + instanceDeferred.resolve(instance); + } + } + return instance; + } + onInit(callback, identifier) { + var _a2; + const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier); + const existingCallbacks = (_a2 = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a2 !== void 0 ? _a2 : /* @__PURE__ */ new Set(); + existingCallbacks.add(callback); + this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks); + const existingInstance = this.instances.get(normalizedIdentifier); + if (existingInstance) { + callback(existingInstance, normalizedIdentifier); + } + return () => { + existingCallbacks.delete(callback); + }; + } + invokeOnInitCallbacks(instance, identifier) { + const callbacks = this.onInitCallbacks.get(identifier); + if (!callbacks) { + return; + } + for (const callback of callbacks) { + try { + callback(instance, identifier); + } catch (_a2) { + } + } + } + getOrInitializeService({ instanceIdentifier, options = {} }) { + let instance = this.instances.get(instanceIdentifier); + if (!instance && this.component) { + instance = this.component.instanceFactory(this.container, { + instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier), + options + }); + this.instances.set(instanceIdentifier, instance); + this.instancesOptions.set(instanceIdentifier, options); + this.invokeOnInitCallbacks(instance, instanceIdentifier); + if (this.component.onInstanceCreated) { + try { + this.component.onInstanceCreated(this.container, instanceIdentifier, instance); + } catch (_a2) { + } + } + } + return instance || null; + } + normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME$1) { + if (this.component) { + return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME$1; + } else { + return identifier; + } + } + shouldAutoInitialize() { + return !!this.component && this.component.instantiationMode !== "EXPLICIT"; + } +} +function normalizeIdentifierForFactory(identifier) { + return identifier === DEFAULT_ENTRY_NAME$1 ? void 0 : identifier; +} +function isComponentEager(component) { + return component.instantiationMode === "EAGER"; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ComponentContainer { + constructor(name2) { + this.name = name2; + this.providers = /* @__PURE__ */ new Map(); + } + addComponent(component) { + const provider2 = this.getProvider(component.name); + if (provider2.isComponentSet()) { + throw new Error(`Component ${component.name} has already been registered with ${this.name}`); + } + provider2.setComponent(component); + } + addOrOverwriteComponent(component) { + const provider2 = this.getProvider(component.name); + if (provider2.isComponentSet()) { + this.providers.delete(component.name); + } + this.addComponent(component); + } + getProvider(name2) { + if (this.providers.has(name2)) { + return this.providers.get(name2); + } + const provider2 = new Provider(name2, this); + this.providers.set(name2, provider2); + return provider2; + } + getProviders() { + return Array.from(this.providers.values()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var LogLevel; +(function(LogLevel2) { + LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG"; + LogLevel2[LogLevel2["VERBOSE"] = 1] = "VERBOSE"; + LogLevel2[LogLevel2["INFO"] = 2] = "INFO"; + LogLevel2[LogLevel2["WARN"] = 3] = "WARN"; + LogLevel2[LogLevel2["ERROR"] = 4] = "ERROR"; + LogLevel2[LogLevel2["SILENT"] = 5] = "SILENT"; +})(LogLevel || (LogLevel = {})); +const levelStringToEnum = { + "debug": LogLevel.DEBUG, + "verbose": LogLevel.VERBOSE, + "info": LogLevel.INFO, + "warn": LogLevel.WARN, + "error": LogLevel.ERROR, + "silent": LogLevel.SILENT +}; +const defaultLogLevel = LogLevel.INFO; +const ConsoleMethod = { + [LogLevel.DEBUG]: "log", + [LogLevel.VERBOSE]: "log", + [LogLevel.INFO]: "info", + [LogLevel.WARN]: "warn", + [LogLevel.ERROR]: "error" +}; +const defaultLogHandler = (instance, logType, ...args) => { + if (logType < instance.logLevel) { + return; + } + const now = new Date().toISOString(); + const method = ConsoleMethod[logType]; + if (method) { + console[method](`[${now}] ${instance.name}:`, ...args); + } else { + throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`); + } +}; +class Logger { + constructor(name2) { + this.name = name2; + this._logLevel = defaultLogLevel; + this._logHandler = defaultLogHandler; + this._userLogHandler = null; + } + get logLevel() { + return this._logLevel; + } + set logLevel(val) { + if (!(val in LogLevel)) { + throw new TypeError(`Invalid value "${val}" assigned to \`logLevel\``); + } + this._logLevel = val; + } + setLogLevel(val) { + this._logLevel = typeof val === "string" ? levelStringToEnum[val] : val; + } + get logHandler() { + return this._logHandler; + } + set logHandler(val) { + if (typeof val !== "function") { + throw new TypeError("Value assigned to `logHandler` must be a function"); + } + this._logHandler = val; + } + get userLogHandler() { + return this._userLogHandler; + } + set userLogHandler(val) { + this._userLogHandler = val; + } + debug(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args); + this._logHandler(this, LogLevel.DEBUG, ...args); + } + log(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.VERBOSE, ...args); + this._logHandler(this, LogLevel.VERBOSE, ...args); + } + info(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args); + this._logHandler(this, LogLevel.INFO, ...args); + } + warn(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args); + this._logHandler(this, LogLevel.WARN, ...args); + } + error(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args); + this._logHandler(this, LogLevel.ERROR, ...args); + } +} +const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c); +let idbProxyableTypes; +let cursorAdvanceMethods; +function getIdbProxyableTypes() { + return idbProxyableTypes || (idbProxyableTypes = [ + IDBDatabase, + IDBObjectStore, + IDBIndex, + IDBCursor, + IDBTransaction + ]); +} +function getCursorAdvanceMethods() { + return cursorAdvanceMethods || (cursorAdvanceMethods = [ + IDBCursor.prototype.advance, + IDBCursor.prototype.continue, + IDBCursor.prototype.continuePrimaryKey + ]); +} +const cursorRequestMap = /* @__PURE__ */ new WeakMap(); +const transactionDoneMap = /* @__PURE__ */ new WeakMap(); +const transactionStoreNamesMap = /* @__PURE__ */ new WeakMap(); +const transformCache = /* @__PURE__ */ new WeakMap(); +const reverseTransformCache = /* @__PURE__ */ new WeakMap(); +function promisifyRequest(request) { + const promise = new Promise((resolve, reject) => { + const unlisten = () => { + request.removeEventListener("success", success); + request.removeEventListener("error", error); + }; + const success = () => { + resolve(wrap(request.result)); + unlisten(); + }; + const error = () => { + reject(request.error); + unlisten(); + }; + request.addEventListener("success", success); + request.addEventListener("error", error); + }); + promise.then((value) => { + if (value instanceof IDBCursor) { + cursorRequestMap.set(value, request); + } + }).catch(() => { + }); + reverseTransformCache.set(promise, request); + return promise; +} +function cacheDonePromiseForTransaction(tx) { + if (transactionDoneMap.has(tx)) + return; + const done = new Promise((resolve, reject) => { + const unlisten = () => { + tx.removeEventListener("complete", complete); + tx.removeEventListener("error", error); + tx.removeEventListener("abort", error); + }; + const complete = () => { + resolve(); + unlisten(); + }; + const error = () => { + reject(tx.error || new DOMException("AbortError", "AbortError")); + unlisten(); + }; + tx.addEventListener("complete", complete); + tx.addEventListener("error", error); + tx.addEventListener("abort", error); + }); + transactionDoneMap.set(tx, done); +} +let idbProxyTraps = { + get(target, prop, receiver) { + if (target instanceof IDBTransaction) { + if (prop === "done") + return transactionDoneMap.get(target); + if (prop === "objectStoreNames") { + return target.objectStoreNames || transactionStoreNamesMap.get(target); + } + if (prop === "store") { + return receiver.objectStoreNames[1] ? void 0 : receiver.objectStore(receiver.objectStoreNames[0]); + } + } + return wrap(target[prop]); + }, + set(target, prop, value) { + target[prop] = value; + return true; + }, + has(target, prop) { + if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) { + return true; + } + return prop in target; + } +}; +function replaceTraps(callback) { + idbProxyTraps = callback(idbProxyTraps); +} +function wrapFunction(func) { + if (func === IDBDatabase.prototype.transaction && !("objectStoreNames" in IDBTransaction.prototype)) { + return function(storeNames, ...args) { + const tx = func.call(unwrap(this), storeNames, ...args); + transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]); + return wrap(tx); + }; + } + if (getCursorAdvanceMethods().includes(func)) { + return function(...args) { + func.apply(unwrap(this), args); + return wrap(cursorRequestMap.get(this)); + }; + } + return function(...args) { + return wrap(func.apply(unwrap(this), args)); + }; +} +function transformCachableValue(value) { + if (typeof value === "function") + return wrapFunction(value); + if (value instanceof IDBTransaction) + cacheDonePromiseForTransaction(value); + if (instanceOfAny(value, getIdbProxyableTypes())) + return new Proxy(value, idbProxyTraps); + return value; +} +function wrap(value) { + if (value instanceof IDBRequest) + return promisifyRequest(value); + if (transformCache.has(value)) + return transformCache.get(value); + const newValue = transformCachableValue(value); + if (newValue !== value) { + transformCache.set(value, newValue); + reverseTransformCache.set(newValue, value); + } + return newValue; +} +const unwrap = (value) => reverseTransformCache.get(value); +function openDB(name2, version2, { blocked, upgrade, blocking, terminated } = {}) { + const request = indexedDB.open(name2, version2); + const openPromise = wrap(request); + if (upgrade) { + request.addEventListener("upgradeneeded", (event) => { + upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction)); + }); + } + if (blocked) + request.addEventListener("blocked", () => blocked()); + openPromise.then((db2) => { + if (terminated) + db2.addEventListener("close", () => terminated()); + if (blocking) + db2.addEventListener("versionchange", () => blocking()); + }).catch(() => { + }); + return openPromise; +} +const readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"]; +const writeMethods = ["put", "add", "delete", "clear"]; +const cachedMethods = /* @__PURE__ */ new Map(); +function getMethod(target, prop) { + if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) { + return; + } + if (cachedMethods.get(prop)) + return cachedMethods.get(prop); + const targetFuncName = prop.replace(/FromIndex$/, ""); + const useIndex = prop !== targetFuncName; + const isWrite = writeMethods.includes(targetFuncName); + if (!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) { + return; + } + const method = async function(storeName, ...args) { + const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly"); + let target2 = tx.store; + if (useIndex) + target2 = target2.index(args.shift()); + return (await Promise.all([ + target2[targetFuncName](...args), + isWrite && tx.done + ]))[0]; + }; + cachedMethods.set(prop, method); + return method; +} +replaceTraps((oldTraps) => ({ + ...oldTraps, + get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver), + has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop) +})); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class PlatformLoggerServiceImpl { + constructor(container) { + this.container = container; + } + getPlatformInfoString() { + const providers = this.container.getProviders(); + return providers.map((provider2) => { + if (isVersionServiceProvider(provider2)) { + const service = provider2.getImmediate(); + return `${service.library}/${service.version}`; + } else { + return null; + } + }).filter((logString) => logString).join(" "); + } +} +function isVersionServiceProvider(provider2) { + const component = provider2.getComponent(); + return (component === null || component === void 0 ? void 0 : component.type) === "VERSION"; +} +const name$o = "@firebase/app"; +const version$1$1 = "0.9.7"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const logger = new Logger("@firebase/app"); +const name$n = "@firebase/app-compat"; +const name$m = "@firebase/analytics-compat"; +const name$l = "@firebase/analytics"; +const name$k = "@firebase/app-check-compat"; +const name$j = "@firebase/app-check"; +const name$i = "@firebase/auth"; +const name$h = "@firebase/auth-compat"; +const name$g = "@firebase/database"; +const name$f = "@firebase/database-compat"; +const name$e = "@firebase/functions"; +const name$d = "@firebase/functions-compat"; +const name$c = "@firebase/installations"; +const name$b = "@firebase/installations-compat"; +const name$a = "@firebase/messaging"; +const name$9 = "@firebase/messaging-compat"; +const name$8 = "@firebase/performance"; +const name$7 = "@firebase/performance-compat"; +const name$6 = "@firebase/remote-config"; +const name$5 = "@firebase/remote-config-compat"; +const name$4 = "@firebase/storage"; +const name$3 = "@firebase/storage-compat"; +const name$2 = "@firebase/firestore"; +const name$1$1 = "@firebase/firestore-compat"; +const name$p = "firebase"; +const version$2 = "9.19.1"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ENTRY_NAME = "[DEFAULT]"; +const PLATFORM_LOG_STRING = { + [name$o]: "fire-core", + [name$n]: "fire-core-compat", + [name$l]: "fire-analytics", + [name$m]: "fire-analytics-compat", + [name$j]: "fire-app-check", + [name$k]: "fire-app-check-compat", + [name$i]: "fire-auth", + [name$h]: "fire-auth-compat", + [name$g]: "fire-rtdb", + [name$f]: "fire-rtdb-compat", + [name$e]: "fire-fn", + [name$d]: "fire-fn-compat", + [name$c]: "fire-iid", + [name$b]: "fire-iid-compat", + [name$a]: "fire-fcm", + [name$9]: "fire-fcm-compat", + [name$8]: "fire-perf", + [name$7]: "fire-perf-compat", + [name$6]: "fire-rc", + [name$5]: "fire-rc-compat", + [name$4]: "fire-gcs", + [name$3]: "fire-gcs-compat", + [name$2]: "fire-fst", + [name$1$1]: "fire-fst-compat", + "fire-js": "fire-js", + [name$p]: "fire-js-all" +}; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _apps = /* @__PURE__ */ new Map(); +const _components = /* @__PURE__ */ new Map(); +function _addComponent(app2, component) { + try { + app2.container.addComponent(component); + } catch (e) { + logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app2.name}`, e); + } +} +function _registerComponent(component) { + const componentName = component.name; + if (_components.has(componentName)) { + logger.debug(`There were multiple attempts to register component ${componentName}.`); + return false; + } + _components.set(componentName, component); + for (const app2 of _apps.values()) { + _addComponent(app2, component); + } + return true; +} +function _getProvider(app2, name2) { + const heartbeatController = app2.container.getProvider("heartbeat").getImmediate({ optional: true }); + if (heartbeatController) { + void heartbeatController.triggerHeartbeat(); + } + return app2.container.getProvider(name2); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const ERRORS = { + ["no-app"]: "No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()", + ["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", + ["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}." +}; +const ERROR_FACTORY = new ErrorFactory("app", "Firebase", ERRORS); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FirebaseAppImpl { + constructor(options, config, container) { + this._isDeleted = false; + this._options = Object.assign({}, options); + this._config = Object.assign({}, config); + this._name = config.name; + this._automaticDataCollectionEnabled = config.automaticDataCollectionEnabled; + this._container = container; + this.container.addComponent(new Component("app", () => this, "PUBLIC")); + } + get automaticDataCollectionEnabled() { + this.checkDestroyed(); + return this._automaticDataCollectionEnabled; + } + set automaticDataCollectionEnabled(val) { + this.checkDestroyed(); + this._automaticDataCollectionEnabled = val; + } + get name() { + this.checkDestroyed(); + return this._name; + } + get options() { + this.checkDestroyed(); + return this._options; + } + get config() { + this.checkDestroyed(); + return this._config; + } + get container() { + return this._container; + } + get isDeleted() { + return this._isDeleted; + } + set isDeleted(val) { + this._isDeleted = val; + } + checkDestroyed() { + if (this.isDeleted) { + throw ERROR_FACTORY.create("app-deleted", { appName: this._name }); + } + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const SDK_VERSION = version$2; +function initializeApp(_options, rawConfig = {}) { + let options = _options; + if (typeof rawConfig !== "object") { + const name3 = rawConfig; + rawConfig = { name: name3 }; + } + const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig); + const name2 = config.name; + if (typeof name2 !== "string" || !name2) { + throw ERROR_FACTORY.create("bad-app-name", { + appName: String(name2) + }); + } + options || (options = getDefaultAppConfig()); + if (!options) { + throw ERROR_FACTORY.create("no-options"); + } + const existingApp = _apps.get(name2); + if (existingApp) { + if (deepEqual(options, existingApp.options) && deepEqual(config, existingApp.config)) { + return existingApp; + } else { + throw ERROR_FACTORY.create("duplicate-app", { appName: name2 }); + } + } + const container = new ComponentContainer(name2); + for (const component of _components.values()) { + container.addComponent(component); + } + const newApp = new FirebaseAppImpl(options, config, container); + _apps.set(name2, newApp); + return newApp; +} +function getApp(name2 = DEFAULT_ENTRY_NAME) { + const app2 = _apps.get(name2); + if (!app2 && name2 === DEFAULT_ENTRY_NAME) { + return initializeApp(); + } + if (!app2) { + throw ERROR_FACTORY.create("no-app", { appName: name2 }); + } + return app2; +} +function registerVersion(libraryKeyOrName, version2, variant) { + var _a2; + let library = (_a2 = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a2 !== void 0 ? _a2 : libraryKeyOrName; + if (variant) { + library += `-${variant}`; + } + const libraryMismatch = library.match(/\s|\//); + const versionMismatch = version2.match(/\s|\//); + if (libraryMismatch || versionMismatch) { + const warning = [ + `Unable to register library "${library}" with version "${version2}":` + ]; + if (libraryMismatch) { + warning.push(`library name "${library}" contains illegal characters (whitespace or "/")`); + } + if (libraryMismatch && versionMismatch) { + warning.push("and"); + } + if (versionMismatch) { + warning.push(`version name "${version2}" contains illegal characters (whitespace or "/")`); + } + logger.warn(warning.join(" ")); + return; + } + _registerComponent(new Component(`${library}-version`, () => ({ library, version: version2 }), "VERSION")); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DB_NAME$1 = "firebase-heartbeat-database"; +const DB_VERSION$1 = 1; +const STORE_NAME = "firebase-heartbeat-store"; +let dbPromise = null; +function getDbPromise() { + if (!dbPromise) { + dbPromise = openDB(DB_NAME$1, DB_VERSION$1, { + upgrade: (db2, oldVersion) => { + switch (oldVersion) { + case 0: + db2.createObjectStore(STORE_NAME); + } + } + }).catch((e) => { + throw ERROR_FACTORY.create("idb-open", { + originalErrorMessage: e.message + }); + }); + } + return dbPromise; +} +async function readHeartbeatsFromIndexedDB(app2) { + try { + const db2 = await getDbPromise(); + return db2.transaction(STORE_NAME).objectStore(STORE_NAME).get(computeKey(app2)); + } catch (e) { + if (e instanceof FirebaseError) { + logger.warn(e.message); + } else { + const idbGetError = ERROR_FACTORY.create("idb-get", { + originalErrorMessage: e === null || e === void 0 ? void 0 : e.message + }); + logger.warn(idbGetError.message); + } + } +} +async function writeHeartbeatsToIndexedDB(app2, heartbeatObject) { + try { + const db2 = await getDbPromise(); + const tx = db2.transaction(STORE_NAME, "readwrite"); + const objectStore = tx.objectStore(STORE_NAME); + await objectStore.put(heartbeatObject, computeKey(app2)); + return tx.done; + } catch (e) { + if (e instanceof FirebaseError) { + logger.warn(e.message); + } else { + const idbGetError = ERROR_FACTORY.create("idb-set", { + originalErrorMessage: e === null || e === void 0 ? void 0 : e.message + }); + logger.warn(idbGetError.message); + } + } +} +function computeKey(app2) { + return `${app2.name}!${app2.options.appId}`; +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const MAX_HEADER_BYTES = 1024; +const STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1e3; +class HeartbeatServiceImpl { + constructor(container) { + this.container = container; + this._heartbeatsCache = null; + const app2 = this.container.getProvider("app").getImmediate(); + this._storage = new HeartbeatStorageImpl(app2); + this._heartbeatsCachePromise = this._storage.read().then((result) => { + this._heartbeatsCache = result; + return result; + }); + } + async triggerHeartbeat() { + const platformLogger = this.container.getProvider("platform-logger").getImmediate(); + const agent = platformLogger.getPlatformInfoString(); + const date = getUTCDateString(); + if (this._heartbeatsCache === null) { + this._heartbeatsCache = await this._heartbeatsCachePromise; + } + if (this._heartbeatsCache.lastSentHeartbeatDate === date || this._heartbeatsCache.heartbeats.some((singleDateHeartbeat) => singleDateHeartbeat.date === date)) { + return; + } else { + this._heartbeatsCache.heartbeats.push({ date, agent }); + } + this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter((singleDateHeartbeat) => { + const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf(); + const now = Date.now(); + return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS; + }); + return this._storage.overwrite(this._heartbeatsCache); + } + async getHeartbeatsHeader() { + if (this._heartbeatsCache === null) { + await this._heartbeatsCachePromise; + } + if (this._heartbeatsCache === null || this._heartbeatsCache.heartbeats.length === 0) { + return ""; + } + const date = getUTCDateString(); + const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats); + const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })); + this._heartbeatsCache.lastSentHeartbeatDate = date; + if (unsentEntries.length > 0) { + this._heartbeatsCache.heartbeats = unsentEntries; + await this._storage.overwrite(this._heartbeatsCache); + } else { + this._heartbeatsCache.heartbeats = []; + void this._storage.overwrite(this._heartbeatsCache); + } + return headerString; + } +} +function getUTCDateString() { + const today = new Date(); + return today.toISOString().substring(0, 10); +} +function extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) { + const heartbeatsToSend = []; + let unsentEntries = heartbeatsCache.slice(); + for (const singleDateHeartbeat of heartbeatsCache) { + const heartbeatEntry = heartbeatsToSend.find((hb2) => hb2.agent === singleDateHeartbeat.agent); + if (!heartbeatEntry) { + heartbeatsToSend.push({ + agent: singleDateHeartbeat.agent, + dates: [singleDateHeartbeat.date] + }); + if (countBytes(heartbeatsToSend) > maxSize) { + heartbeatsToSend.pop(); + break; + } + } else { + heartbeatEntry.dates.push(singleDateHeartbeat.date); + if (countBytes(heartbeatsToSend) > maxSize) { + heartbeatEntry.dates.pop(); + break; + } + } + unsentEntries = unsentEntries.slice(1); + } + return { + heartbeatsToSend, + unsentEntries + }; +} +class HeartbeatStorageImpl { + constructor(app2) { + this.app = app2; + this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck(); + } + async runIndexedDBEnvironmentCheck() { + if (!isIndexedDBAvailable()) { + return false; + } else { + return validateIndexedDBOpenable().then(() => true).catch(() => false); + } + } + async read() { + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return { heartbeats: [] }; + } else { + const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app); + return idbHeartbeatObject || { heartbeats: [] }; + } + } + async overwrite(heartbeatsObject) { + var _a2; + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return; + } else { + const existingHeartbeatsObject = await this.read(); + return writeHeartbeatsToIndexedDB(this.app, { + lastSentHeartbeatDate: (_a2 = heartbeatsObject.lastSentHeartbeatDate) !== null && _a2 !== void 0 ? _a2 : existingHeartbeatsObject.lastSentHeartbeatDate, + heartbeats: heartbeatsObject.heartbeats + }); + } + } + async add(heartbeatsObject) { + var _a2; + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return; + } else { + const existingHeartbeatsObject = await this.read(); + return writeHeartbeatsToIndexedDB(this.app, { + lastSentHeartbeatDate: (_a2 = heartbeatsObject.lastSentHeartbeatDate) !== null && _a2 !== void 0 ? _a2 : existingHeartbeatsObject.lastSentHeartbeatDate, + heartbeats: [ + ...existingHeartbeatsObject.heartbeats, + ...heartbeatsObject.heartbeats + ] + }); + } + } +} +function countBytes(heartbeatsCache) { + return base64urlEncodeWithoutPadding( + JSON.stringify({ version: 2, heartbeats: heartbeatsCache }) + ).length; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function registerCoreComponents(variant) { + _registerComponent(new Component("platform-logger", (container) => new PlatformLoggerServiceImpl(container), "PRIVATE")); + _registerComponent(new Component("heartbeat", (container) => new HeartbeatServiceImpl(container), "PRIVATE")); + registerVersion(name$o, version$1$1, variant); + registerVersion(name$o, version$1$1, "esm2017"); + registerVersion("fire-js", ""); +} +registerCoreComponents(""); +function __rest(s, e) { + var t2 = {}; + for (var p2 in s) + if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0) + t2[p2] = s[p2]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) { + if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i])) + t2[p2[i]] = s[p2[i]]; + } + return t2; +} +function _prodErrorMap() { + return { + ["dependent-sdk-initialized-before-auth"]: "Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK." + }; +} +const prodErrorMap = _prodErrorMap; +const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory("auth", "Firebase", _prodErrorMap()); +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const logClient = new Logger("@firebase/auth"); +function _logError(msg, ...args) { + if (logClient.logLevel <= LogLevel.ERROR) { + logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _fail(authOrCode, ...rest) { + throw createErrorInternal(authOrCode, ...rest); +} +function _createError(authOrCode, ...rest) { + return createErrorInternal(authOrCode, ...rest); +} +function _errorWithCustomMessage(auth2, code, message) { + const errorMap = Object.assign(Object.assign({}, prodErrorMap()), { [code]: message }); + const factory = new ErrorFactory("auth", "Firebase", errorMap); + return factory.create(code, { + appName: auth2.name + }); +} +function _assertInstanceOf(auth2, object, instance) { + const constructorInstance = instance; + if (!(object instanceof constructorInstance)) { + if (constructorInstance.name !== object.constructor.name) { + _fail(auth2, "argument-error"); + } + throw _errorWithCustomMessage(auth2, "argument-error", `Type of ${object.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`); + } +} +function createErrorInternal(authOrCode, ...rest) { + if (typeof authOrCode !== "string") { + const code = rest[0]; + const fullParams = [...rest.slice(1)]; + if (fullParams[0]) { + fullParams[0].appName = authOrCode.name; + } + return authOrCode._errorFactory.create(code, ...fullParams); + } + return _DEFAULT_AUTH_ERROR_FACTORY.create(authOrCode, ...rest); +} +function _assert(assertion, authOrCode, ...rest) { + if (!assertion) { + throw createErrorInternal(authOrCode, ...rest); + } +} +function debugFail(failure) { + const message = `INTERNAL ASSERTION FAILED: ` + failure; + _logError(message); + throw new Error(message); +} +function debugAssert(assertion, message) { + if (!assertion) { + debugFail(message); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const instanceCache = /* @__PURE__ */ new Map(); +function _getInstance(cls) { + debugAssert(cls instanceof Function, "Expected a class definition"); + let instance = instanceCache.get(cls); + if (instance) { + debugAssert(instance instanceof cls, "Instance stored in cache mismatched with class"); + return instance; + } + instance = new cls(); + instanceCache.set(cls, instance); + return instance; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function initializeAuth(app2, deps) { + const provider2 = _getProvider(app2, "auth"); + if (provider2.isInitialized()) { + const auth3 = provider2.getImmediate(); + const initialOptions = provider2.getOptions(); + if (deepEqual(initialOptions, deps !== null && deps !== void 0 ? deps : {})) { + return auth3; + } else { + _fail(auth3, "already-initialized"); + } + } + const auth2 = provider2.initialize({ options: deps }); + return auth2; +} +function _initializeAuthInstance(auth2, deps) { + const persistence = (deps === null || deps === void 0 ? void 0 : deps.persistence) || []; + const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance); + if (deps === null || deps === void 0 ? void 0 : deps.errorMap) { + auth2._updateErrorMap(deps.errorMap); + } + auth2._initializeWithPersistence(hierarchy, deps === null || deps === void 0 ? void 0 : deps.popupRedirectResolver); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getCurrentUrl() { + var _a2; + return typeof self !== "undefined" && ((_a2 = self.location) === null || _a2 === void 0 ? void 0 : _a2.href) || ""; +} +function _isHttpOrHttps() { + return _getCurrentScheme() === "http:" || _getCurrentScheme() === "https:"; +} +function _getCurrentScheme() { + var _a2; + return typeof self !== "undefined" && ((_a2 = self.location) === null || _a2 === void 0 ? void 0 : _a2.protocol) || null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _isOnline() { + if (typeof navigator !== "undefined" && navigator && "onLine" in navigator && typeof navigator.onLine === "boolean" && (_isHttpOrHttps() || isBrowserExtension() || "connection" in navigator)) { + return navigator.onLine; + } + return true; +} +function _getUserLanguage() { + if (typeof navigator === "undefined") { + return null; + } + const navigatorLanguage = navigator; + return navigatorLanguage.languages && navigatorLanguage.languages[0] || navigatorLanguage.language || null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Delay { + constructor(shortDelay, longDelay) { + this.shortDelay = shortDelay; + this.longDelay = longDelay; + debugAssert(longDelay > shortDelay, "Short delay should be less than long delay!"); + this.isMobile = isMobileCordova() || isReactNative(); + } + get() { + if (!_isOnline()) { + return Math.min(5e3, this.shortDelay); + } + return this.isMobile ? this.longDelay : this.shortDelay; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _emulatorUrl(config, path) { + debugAssert(config.emulator, "Emulator should always be set here"); + const { url } = config.emulator; + if (!path) { + return url; + } + return `${url}${path.startsWith("/") ? path.slice(1) : path}`; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FetchProvider { + static initialize(fetchImpl, headersImpl, responseImpl) { + this.fetchImpl = fetchImpl; + if (headersImpl) { + this.headersImpl = headersImpl; + } + if (responseImpl) { + this.responseImpl = responseImpl; + } + } + static fetch() { + if (this.fetchImpl) { + return this.fetchImpl; + } + if (typeof self !== "undefined" && "fetch" in self) { + return self.fetch; + } + debugFail("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } + static headers() { + if (this.headersImpl) { + return this.headersImpl; + } + if (typeof self !== "undefined" && "Headers" in self) { + return self.Headers; + } + debugFail("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } + static response() { + if (this.responseImpl) { + return this.responseImpl; + } + if (typeof self !== "undefined" && "Response" in self) { + return self.Response; + } + debugFail("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const SERVER_ERROR_MAP = { + ["CREDENTIAL_MISMATCH"]: "custom-token-mismatch", + ["MISSING_CUSTOM_TOKEN"]: "internal-error", + ["INVALID_IDENTIFIER"]: "invalid-email", + ["MISSING_CONTINUE_URI"]: "internal-error", + ["INVALID_PASSWORD"]: "wrong-password", + ["MISSING_PASSWORD"]: "missing-password", + ["EMAIL_EXISTS"]: "email-already-in-use", + ["PASSWORD_LOGIN_DISABLED"]: "operation-not-allowed", + ["INVALID_IDP_RESPONSE"]: "invalid-credential", + ["INVALID_PENDING_TOKEN"]: "invalid-credential", + ["FEDERATED_USER_ID_ALREADY_LINKED"]: "credential-already-in-use", + ["MISSING_REQ_TYPE"]: "internal-error", + ["EMAIL_NOT_FOUND"]: "user-not-found", + ["RESET_PASSWORD_EXCEED_LIMIT"]: "too-many-requests", + ["EXPIRED_OOB_CODE"]: "expired-action-code", + ["INVALID_OOB_CODE"]: "invalid-action-code", + ["MISSING_OOB_CODE"]: "internal-error", + ["CREDENTIAL_TOO_OLD_LOGIN_AGAIN"]: "requires-recent-login", + ["INVALID_ID_TOKEN"]: "invalid-user-token", + ["TOKEN_EXPIRED"]: "user-token-expired", + ["USER_NOT_FOUND"]: "user-token-expired", + ["TOO_MANY_ATTEMPTS_TRY_LATER"]: "too-many-requests", + ["INVALID_CODE"]: "invalid-verification-code", + ["INVALID_SESSION_INFO"]: "invalid-verification-id", + ["INVALID_TEMPORARY_PROOF"]: "invalid-credential", + ["MISSING_SESSION_INFO"]: "missing-verification-id", + ["SESSION_EXPIRED"]: "code-expired", + ["MISSING_ANDROID_PACKAGE_NAME"]: "missing-android-pkg-name", + ["UNAUTHORIZED_DOMAIN"]: "unauthorized-continue-uri", + ["INVALID_OAUTH_CLIENT_ID"]: "invalid-oauth-client-id", + ["ADMIN_ONLY_OPERATION"]: "admin-restricted-operation", + ["INVALID_MFA_PENDING_CREDENTIAL"]: "invalid-multi-factor-session", + ["MFA_ENROLLMENT_NOT_FOUND"]: "multi-factor-info-not-found", + ["MISSING_MFA_ENROLLMENT_ID"]: "missing-multi-factor-info", + ["MISSING_MFA_PENDING_CREDENTIAL"]: "missing-multi-factor-session", + ["SECOND_FACTOR_EXISTS"]: "second-factor-already-in-use", + ["SECOND_FACTOR_LIMIT_EXCEEDED"]: "maximum-second-factor-count-exceeded", + ["BLOCKING_FUNCTION_ERROR_RESPONSE"]: "internal-error" +}; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_API_TIMEOUT_MS = new Delay(3e4, 6e4); +function _addTidIfNecessary(auth2, request) { + if (auth2.tenantId && !request.tenantId) { + return Object.assign(Object.assign({}, request), { tenantId: auth2.tenantId }); + } + return request; +} +async function _performApiRequest(auth2, method, path, request, customErrorMap = {}) { + return _performFetchWithErrorHandling(auth2, customErrorMap, async () => { + let body = {}; + let params = {}; + if (request) { + if (method === "GET") { + params = request; + } else { + body = { + body: JSON.stringify(request) + }; + } + } + const query = querystring(Object.assign({ key: auth2.config.apiKey }, params)).slice(1); + const headers = await auth2._getAdditionalHeaders(); + headers["Content-Type"] = "application/json"; + if (auth2.languageCode) { + headers["X-Firebase-Locale"] = auth2.languageCode; + } + return FetchProvider.fetch()(_getFinalTarget(auth2, auth2.config.apiHost, path, query), Object.assign({ + method, + headers, + referrerPolicy: "no-referrer" + }, body)); + }); +} +async function _performFetchWithErrorHandling(auth2, customErrorMap, fetchFn) { + auth2._canInitEmulator = false; + const errorMap = Object.assign(Object.assign({}, SERVER_ERROR_MAP), customErrorMap); + try { + const networkTimeout = new NetworkTimeout(auth2); + const response = await Promise.race([ + fetchFn(), + networkTimeout.promise + ]); + networkTimeout.clearNetworkTimeout(); + const json = await response.json(); + if ("needConfirmation" in json) { + throw _makeTaggedError(auth2, "account-exists-with-different-credential", json); + } + if (response.ok && !("errorMessage" in json)) { + return json; + } else { + const errorMessage = response.ok ? json.errorMessage : json.error.message; + const [serverErrorCode, serverErrorMessage] = errorMessage.split(" : "); + if (serverErrorCode === "FEDERATED_USER_ID_ALREADY_LINKED") { + throw _makeTaggedError(auth2, "credential-already-in-use", json); + } else if (serverErrorCode === "EMAIL_EXISTS") { + throw _makeTaggedError(auth2, "email-already-in-use", json); + } else if (serverErrorCode === "USER_DISABLED") { + throw _makeTaggedError(auth2, "user-disabled", json); + } + const authError = errorMap[serverErrorCode] || serverErrorCode.toLowerCase().replace(/[_\s]+/g, "-"); + if (serverErrorMessage) { + throw _errorWithCustomMessage(auth2, authError, serverErrorMessage); + } else { + _fail(auth2, authError); + } + } + } catch (e) { + if (e instanceof FirebaseError) { + throw e; + } + _fail(auth2, "network-request-failed", { "message": String(e) }); + } +} +async function _performSignInRequest(auth2, method, path, request, customErrorMap = {}) { + const serverResponse = await _performApiRequest(auth2, method, path, request, customErrorMap); + if ("mfaPendingCredential" in serverResponse) { + _fail(auth2, "multi-factor-auth-required", { + _serverResponse: serverResponse + }); + } + return serverResponse; +} +function _getFinalTarget(auth2, host, path, query) { + const base = `${host}${path}?${query}`; + if (!auth2.config.emulator) { + return `${auth2.config.apiScheme}://${base}`; + } + return _emulatorUrl(auth2.config, base); +} +class NetworkTimeout { + constructor(auth2) { + this.auth = auth2; + this.timer = null; + this.promise = new Promise((_, reject) => { + this.timer = setTimeout(() => { + return reject(_createError(this.auth, "network-request-failed")); + }, DEFAULT_API_TIMEOUT_MS.get()); + }); + } + clearNetworkTimeout() { + clearTimeout(this.timer); + } +} +function _makeTaggedError(auth2, code, response) { + const errorParams = { + appName: auth2.name + }; + if (response.email) { + errorParams.email = response.email; + } + if (response.phoneNumber) { + errorParams.phoneNumber = response.phoneNumber; + } + const error = _createError(auth2, code, errorParams); + error.customData._tokenResponse = response; + return error; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function deleteAccount(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:delete", request); +} +async function getAccountInfo(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:lookup", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function utcTimestampToDateString(utcTimestamp) { + if (!utcTimestamp) { + return void 0; + } + try { + const date = new Date(Number(utcTimestamp)); + if (!isNaN(date.getTime())) { + return date.toUTCString(); + } + } catch (e) { + } + return void 0; +} +async function getIdTokenResult(user, forceRefresh = false) { + const userInternal = getModularInstance(user); + const token = await userInternal.getIdToken(forceRefresh); + const claims = _parseToken(token); + _assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error"); + const firebase = typeof claims.firebase === "object" ? claims.firebase : void 0; + const signInProvider = firebase === null || firebase === void 0 ? void 0 : firebase["sign_in_provider"]; + return { + claims, + token, + authTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.auth_time)), + issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)), + expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)), + signInProvider: signInProvider || null, + signInSecondFactor: (firebase === null || firebase === void 0 ? void 0 : firebase["sign_in_second_factor"]) || null + }; +} +function secondsStringToMilliseconds(seconds) { + return Number(seconds) * 1e3; +} +function _parseToken(token) { + const [algorithm, payload, signature] = token.split("."); + if (algorithm === void 0 || payload === void 0 || signature === void 0) { + _logError("JWT malformed, contained fewer than 3 sections"); + return null; + } + try { + const decoded = base64Decode(payload); + if (!decoded) { + _logError("Failed to decode base64 JWT payload"); + return null; + } + return JSON.parse(decoded); + } catch (e) { + _logError("Caught error parsing JWT payload as JSON", e === null || e === void 0 ? void 0 : e.toString()); + return null; + } +} +function _tokenExpiresIn(token) { + const parsedToken = _parseToken(token); + _assert(parsedToken, "internal-error"); + _assert(typeof parsedToken.exp !== "undefined", "internal-error"); + _assert(typeof parsedToken.iat !== "undefined", "internal-error"); + return Number(parsedToken.exp) - Number(parsedToken.iat); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _logoutIfInvalidated(user, promise, bypassAuthState = false) { + if (bypassAuthState) { + return promise; + } + try { + return await promise; + } catch (e) { + if (e instanceof FirebaseError && isUserInvalidated(e)) { + if (user.auth.currentUser === user) { + await user.auth.signOut(); + } + } + throw e; + } +} +function isUserInvalidated({ code }) { + return code === `auth/${"user-disabled"}` || code === `auth/${"user-token-expired"}`; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ProactiveRefresh { + constructor(user) { + this.user = user; + this.isRunning = false; + this.timerId = null; + this.errorBackoff = 3e4; + } + _start() { + if (this.isRunning) { + return; + } + this.isRunning = true; + this.schedule(); + } + _stop() { + if (!this.isRunning) { + return; + } + this.isRunning = false; + if (this.timerId !== null) { + clearTimeout(this.timerId); + } + } + getInterval(wasError) { + var _a2; + if (wasError) { + const interval = this.errorBackoff; + this.errorBackoff = Math.min(this.errorBackoff * 2, 96e4); + return interval; + } else { + this.errorBackoff = 3e4; + const expTime = (_a2 = this.user.stsTokenManager.expirationTime) !== null && _a2 !== void 0 ? _a2 : 0; + const interval = expTime - Date.now() - 3e5; + return Math.max(0, interval); + } + } + schedule(wasError = false) { + if (!this.isRunning) { + return; + } + const interval = this.getInterval(wasError); + this.timerId = setTimeout(async () => { + await this.iteration(); + }, interval); + } + async iteration() { + try { + await this.user.getIdToken(true); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) === `auth/${"network-request-failed"}`) { + this.schedule(true); + } + return; + } + this.schedule(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class UserMetadata { + constructor(createdAt, lastLoginAt) { + this.createdAt = createdAt; + this.lastLoginAt = lastLoginAt; + this._initializeTime(); + } + _initializeTime() { + this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt); + this.creationTime = utcTimestampToDateString(this.createdAt); + } + _copy(metadata) { + this.createdAt = metadata.createdAt; + this.lastLoginAt = metadata.lastLoginAt; + this._initializeTime(); + } + toJSON() { + return { + createdAt: this.createdAt, + lastLoginAt: this.lastLoginAt + }; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _reloadWithoutSaving(user) { + var _a2; + const auth2 = user.auth; + const idToken = await user.getIdToken(); + const response = await _logoutIfInvalidated(user, getAccountInfo(auth2, { idToken })); + _assert(response === null || response === void 0 ? void 0 : response.users.length, auth2, "internal-error"); + const coreAccount = response.users[0]; + user._notifyReloadListener(coreAccount); + const newProviderData = ((_a2 = coreAccount.providerUserInfo) === null || _a2 === void 0 ? void 0 : _a2.length) ? extractProviderData(coreAccount.providerUserInfo) : []; + const providerData = mergeProviderData(user.providerData, newProviderData); + const oldIsAnonymous = user.isAnonymous; + const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !(providerData === null || providerData === void 0 ? void 0 : providerData.length); + const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous; + const updates = { + uid: coreAccount.localId, + displayName: coreAccount.displayName || null, + photoURL: coreAccount.photoUrl || null, + email: coreAccount.email || null, + emailVerified: coreAccount.emailVerified || false, + phoneNumber: coreAccount.phoneNumber || null, + tenantId: coreAccount.tenantId || null, + providerData, + metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt), + isAnonymous + }; + Object.assign(user, updates); +} +async function reload(user) { + const userInternal = getModularInstance(user); + await _reloadWithoutSaving(userInternal); + await userInternal.auth._persistUserIfCurrent(userInternal); + userInternal.auth._notifyListenersIfCurrent(userInternal); +} +function mergeProviderData(original, newData) { + const deduped = original.filter((o) => !newData.some((n) => n.providerId === o.providerId)); + return [...deduped, ...newData]; +} +function extractProviderData(providers) { + return providers.map((_a2) => { + var { providerId } = _a2, provider2 = __rest(_a2, ["providerId"]); + return { + providerId, + uid: provider2.rawId || "", + displayName: provider2.displayName || null, + email: provider2.email || null, + phoneNumber: provider2.phoneNumber || null, + photoURL: provider2.photoUrl || null + }; + }); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function requestStsToken(auth2, refreshToken) { + const response = await _performFetchWithErrorHandling(auth2, {}, async () => { + const body = querystring({ + "grant_type": "refresh_token", + "refresh_token": refreshToken + }).slice(1); + const { tokenApiHost, apiKey } = auth2.config; + const url = _getFinalTarget(auth2, tokenApiHost, "/v1/token", `key=${apiKey}`); + const headers = await auth2._getAdditionalHeaders(); + headers["Content-Type"] = "application/x-www-form-urlencoded"; + return FetchProvider.fetch()(url, { + method: "POST", + headers, + body + }); + }); + return { + accessToken: response.access_token, + expiresIn: response.expires_in, + refreshToken: response.refresh_token + }; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class StsTokenManager { + constructor() { + this.refreshToken = null; + this.accessToken = null; + this.expirationTime = null; + } + get isExpired() { + return !this.expirationTime || Date.now() > this.expirationTime - 3e4; + } + updateFromServerResponse(response) { + _assert(response.idToken, "internal-error"); + _assert(typeof response.idToken !== "undefined", "internal-error"); + _assert(typeof response.refreshToken !== "undefined", "internal-error"); + const expiresIn = "expiresIn" in response && typeof response.expiresIn !== "undefined" ? Number(response.expiresIn) : _tokenExpiresIn(response.idToken); + this.updateTokensAndExpiration(response.idToken, response.refreshToken, expiresIn); + } + async getToken(auth2, forceRefresh = false) { + _assert(!this.accessToken || this.refreshToken, auth2, "user-token-expired"); + if (!forceRefresh && this.accessToken && !this.isExpired) { + return this.accessToken; + } + if (this.refreshToken) { + await this.refresh(auth2, this.refreshToken); + return this.accessToken; + } + return null; + } + clearRefreshToken() { + this.refreshToken = null; + } + async refresh(auth2, oldToken) { + const { accessToken, refreshToken, expiresIn } = await requestStsToken(auth2, oldToken); + this.updateTokensAndExpiration(accessToken, refreshToken, Number(expiresIn)); + } + updateTokensAndExpiration(accessToken, refreshToken, expiresInSec) { + this.refreshToken = refreshToken || null; + this.accessToken = accessToken || null; + this.expirationTime = Date.now() + expiresInSec * 1e3; + } + static fromJSON(appName, object) { + const { refreshToken, accessToken, expirationTime } = object; + const manager = new StsTokenManager(); + if (refreshToken) { + _assert(typeof refreshToken === "string", "internal-error", { + appName + }); + manager.refreshToken = refreshToken; + } + if (accessToken) { + _assert(typeof accessToken === "string", "internal-error", { + appName + }); + manager.accessToken = accessToken; + } + if (expirationTime) { + _assert(typeof expirationTime === "number", "internal-error", { + appName + }); + manager.expirationTime = expirationTime; + } + return manager; + } + toJSON() { + return { + refreshToken: this.refreshToken, + accessToken: this.accessToken, + expirationTime: this.expirationTime + }; + } + _assign(stsTokenManager) { + this.accessToken = stsTokenManager.accessToken; + this.refreshToken = stsTokenManager.refreshToken; + this.expirationTime = stsTokenManager.expirationTime; + } + _clone() { + return Object.assign(new StsTokenManager(), this.toJSON()); + } + _performRefresh() { + return debugFail("not implemented"); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function assertStringOrUndefined(assertion, appName) { + _assert(typeof assertion === "string" || typeof assertion === "undefined", "internal-error", { appName }); +} +class UserImpl { + constructor(_a2) { + var { uid, auth: auth2, stsTokenManager } = _a2, opt = __rest(_a2, ["uid", "auth", "stsTokenManager"]); + this.providerId = "firebase"; + this.proactiveRefresh = new ProactiveRefresh(this); + this.reloadUserInfo = null; + this.reloadListener = null; + this.uid = uid; + this.auth = auth2; + this.stsTokenManager = stsTokenManager; + this.accessToken = stsTokenManager.accessToken; + this.displayName = opt.displayName || null; + this.email = opt.email || null; + this.emailVerified = opt.emailVerified || false; + this.phoneNumber = opt.phoneNumber || null; + this.photoURL = opt.photoURL || null; + this.isAnonymous = opt.isAnonymous || false; + this.tenantId = opt.tenantId || null; + this.providerData = opt.providerData ? [...opt.providerData] : []; + this.metadata = new UserMetadata(opt.createdAt || void 0, opt.lastLoginAt || void 0); + } + async getIdToken(forceRefresh) { + const accessToken = await _logoutIfInvalidated(this, this.stsTokenManager.getToken(this.auth, forceRefresh)); + _assert(accessToken, this.auth, "internal-error"); + if (this.accessToken !== accessToken) { + this.accessToken = accessToken; + await this.auth._persistUserIfCurrent(this); + this.auth._notifyListenersIfCurrent(this); + } + return accessToken; + } + getIdTokenResult(forceRefresh) { + return getIdTokenResult(this, forceRefresh); + } + reload() { + return reload(this); + } + _assign(user) { + if (this === user) { + return; + } + _assert(this.uid === user.uid, this.auth, "internal-error"); + this.displayName = user.displayName; + this.photoURL = user.photoURL; + this.email = user.email; + this.emailVerified = user.emailVerified; + this.phoneNumber = user.phoneNumber; + this.isAnonymous = user.isAnonymous; + this.tenantId = user.tenantId; + this.providerData = user.providerData.map((userInfo) => Object.assign({}, userInfo)); + this.metadata._copy(user.metadata); + this.stsTokenManager._assign(user.stsTokenManager); + } + _clone(auth2) { + const newUser = new UserImpl(Object.assign(Object.assign({}, this), { auth: auth2, stsTokenManager: this.stsTokenManager._clone() })); + newUser.metadata._copy(this.metadata); + return newUser; + } + _onReload(callback) { + _assert(!this.reloadListener, this.auth, "internal-error"); + this.reloadListener = callback; + if (this.reloadUserInfo) { + this._notifyReloadListener(this.reloadUserInfo); + this.reloadUserInfo = null; + } + } + _notifyReloadListener(userInfo) { + if (this.reloadListener) { + this.reloadListener(userInfo); + } else { + this.reloadUserInfo = userInfo; + } + } + _startProactiveRefresh() { + this.proactiveRefresh._start(); + } + _stopProactiveRefresh() { + this.proactiveRefresh._stop(); + } + async _updateTokensIfNecessary(response, reload2 = false) { + let tokensRefreshed = false; + if (response.idToken && response.idToken !== this.stsTokenManager.accessToken) { + this.stsTokenManager.updateFromServerResponse(response); + tokensRefreshed = true; + } + if (reload2) { + await _reloadWithoutSaving(this); + } + await this.auth._persistUserIfCurrent(this); + if (tokensRefreshed) { + this.auth._notifyListenersIfCurrent(this); + } + } + async delete() { + const idToken = await this.getIdToken(); + await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken })); + this.stsTokenManager.clearRefreshToken(); + return 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((userInfo) => Object.assign({}, userInfo)), + 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(auth2, object) { + var _a2, _b, _c2, _d, _e2, _f, _g, _h2; + const displayName = (_a2 = object.displayName) !== null && _a2 !== void 0 ? _a2 : void 0; + const email = (_b = object.email) !== null && _b !== void 0 ? _b : void 0; + const phoneNumber = (_c2 = object.phoneNumber) !== null && _c2 !== void 0 ? _c2 : void 0; + const photoURL = (_d = object.photoURL) !== null && _d !== void 0 ? _d : void 0; + const tenantId = (_e2 = object.tenantId) !== null && _e2 !== void 0 ? _e2 : void 0; + const _redirectEventId = (_f = object._redirectEventId) !== null && _f !== void 0 ? _f : void 0; + const createdAt = (_g = object.createdAt) !== null && _g !== void 0 ? _g : void 0; + const lastLoginAt = (_h2 = object.lastLoginAt) !== null && _h2 !== void 0 ? _h2 : void 0; + const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object; + _assert(uid && plainObjectTokenManager, auth2, "internal-error"); + const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager); + _assert(typeof uid === "string", auth2, "internal-error"); + assertStringOrUndefined(displayName, auth2.name); + assertStringOrUndefined(email, auth2.name); + _assert(typeof emailVerified === "boolean", auth2, "internal-error"); + _assert(typeof isAnonymous === "boolean", auth2, "internal-error"); + assertStringOrUndefined(phoneNumber, auth2.name); + assertStringOrUndefined(photoURL, auth2.name); + assertStringOrUndefined(tenantId, auth2.name); + assertStringOrUndefined(_redirectEventId, auth2.name); + assertStringOrUndefined(createdAt, auth2.name); + assertStringOrUndefined(lastLoginAt, auth2.name); + const user = new UserImpl({ + uid, + auth: auth2, + email, + emailVerified, + displayName, + isAnonymous, + photoURL, + phoneNumber, + tenantId, + stsTokenManager, + createdAt, + lastLoginAt + }); + if (providerData && Array.isArray(providerData)) { + user.providerData = providerData.map((userInfo) => Object.assign({}, userInfo)); + } + if (_redirectEventId) { + user._redirectEventId = _redirectEventId; + } + return user; + } + static async _fromIdTokenResponse(auth2, idTokenResponse, isAnonymous = false) { + const stsTokenManager = new StsTokenManager(); + stsTokenManager.updateFromServerResponse(idTokenResponse); + const user = new UserImpl({ + uid: idTokenResponse.localId, + auth: auth2, + stsTokenManager, + isAnonymous + }); + await _reloadWithoutSaving(user); + return user; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class InMemoryPersistence { + constructor() { + this.type = "NONE"; + this.storage = {}; + } + async _isAvailable() { + return true; + } + async _set(key, value) { + this.storage[key] = value; + } + async _get(key) { + const value = this.storage[key]; + return value === void 0 ? null : value; + } + async _remove(key) { + delete this.storage[key]; + } + _addListener(_key, _listener) { + return; + } + _removeListener(_key, _listener) { + return; + } +} +InMemoryPersistence.type = "NONE"; +const inMemoryPersistence = InMemoryPersistence; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _persistenceKeyName(key, apiKey, appName) { + return `${"firebase"}:${key}:${apiKey}:${appName}`; +} +class PersistenceUserManager { + constructor(persistence, auth2, userKey) { + this.persistence = persistence; + this.auth = auth2; + this.userKey = userKey; + const { config, name: name2 } = this.auth; + this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name2); + this.fullPersistenceKey = _persistenceKeyName("persistence", config.apiKey, name2); + this.boundEventHandler = auth2._onStorageEvent.bind(auth2); + this.persistence._addListener(this.fullUserKey, this.boundEventHandler); + } + setCurrentUser(user) { + return this.persistence._set(this.fullUserKey, user.toJSON()); + } + async getCurrentUser() { + const blob = await this.persistence._get(this.fullUserKey); + return blob ? UserImpl._fromJSON(this.auth, blob) : null; + } + removeCurrentUser() { + return this.persistence._remove(this.fullUserKey); + } + savePersistenceForRedirect() { + return this.persistence._set(this.fullPersistenceKey, this.persistence.type); + } + async setPersistence(newPersistence) { + if (this.persistence === newPersistence) { + return; + } + const currentUser = await this.getCurrentUser(); + await this.removeCurrentUser(); + this.persistence = newPersistence; + if (currentUser) { + return this.setCurrentUser(currentUser); + } + } + delete() { + this.persistence._removeListener(this.fullUserKey, this.boundEventHandler); + } + static async create(auth2, persistenceHierarchy, userKey = "authUser") { + if (!persistenceHierarchy.length) { + return new PersistenceUserManager(_getInstance(inMemoryPersistence), auth2, userKey); + } + const availablePersistences = (await Promise.all(persistenceHierarchy.map(async (persistence) => { + if (await persistence._isAvailable()) { + return persistence; + } + return void 0; + }))).filter((persistence) => persistence); + let selectedPersistence = availablePersistences[0] || _getInstance(inMemoryPersistence); + const key = _persistenceKeyName(userKey, auth2.config.apiKey, auth2.name); + let userToMigrate = null; + for (const persistence of persistenceHierarchy) { + try { + const blob = await persistence._get(key); + if (blob) { + const user = UserImpl._fromJSON(auth2, blob); + if (persistence !== selectedPersistence) { + userToMigrate = user; + } + selectedPersistence = persistence; + break; + } + } catch (_a2) { + } + } + const migrationHierarchy = availablePersistences.filter((p2) => p2._shouldAllowMigration); + if (!selectedPersistence._shouldAllowMigration || !migrationHierarchy.length) { + return new PersistenceUserManager(selectedPersistence, auth2, userKey); + } + selectedPersistence = migrationHierarchy[0]; + if (userToMigrate) { + await selectedPersistence._set(key, userToMigrate.toJSON()); + } + await Promise.all(persistenceHierarchy.map(async (persistence) => { + if (persistence !== selectedPersistence) { + try { + await persistence._remove(key); + } catch (_a2) { + } + } + })); + return new PersistenceUserManager(selectedPersistence, auth2, userKey); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getBrowserName(userAgent) { + const ua2 = userAgent.toLowerCase(); + if (ua2.includes("opera/") || ua2.includes("opr/") || ua2.includes("opios/")) { + return "Opera"; + } else if (_isIEMobile(ua2)) { + return "IEMobile"; + } else if (ua2.includes("msie") || ua2.includes("trident/")) { + return "IE"; + } else if (ua2.includes("edge/")) { + return "Edge"; + } else if (_isFirefox(ua2)) { + return "Firefox"; + } else if (ua2.includes("silk/")) { + return "Silk"; + } else if (_isBlackBerry(ua2)) { + return "Blackberry"; + } else if (_isWebOS(ua2)) { + return "Webos"; + } else if (_isSafari(ua2)) { + return "Safari"; + } else if ((ua2.includes("chrome/") || _isChromeIOS(ua2)) && !ua2.includes("edge/")) { + return "Chrome"; + } else if (_isAndroid(ua2)) { + return "Android"; + } else { + const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/; + const matches = userAgent.match(re); + if ((matches === null || matches === void 0 ? void 0 : matches.length) === 2) { + return matches[1]; + } + } + return "Other"; +} +function _isFirefox(ua2 = getUA()) { + return /firefox\//i.test(ua2); +} +function _isSafari(userAgent = getUA()) { + const ua2 = userAgent.toLowerCase(); + return ua2.includes("safari/") && !ua2.includes("chrome/") && !ua2.includes("crios/") && !ua2.includes("android"); +} +function _isChromeIOS(ua2 = getUA()) { + return /crios\//i.test(ua2); +} +function _isIEMobile(ua2 = getUA()) { + return /iemobile/i.test(ua2); +} +function _isAndroid(ua2 = getUA()) { + return /android/i.test(ua2); +} +function _isBlackBerry(ua2 = getUA()) { + return /blackberry/i.test(ua2); +} +function _isWebOS(ua2 = getUA()) { + return /webos/i.test(ua2); +} +function _isIOS(ua2 = getUA()) { + return /iphone|ipad|ipod/i.test(ua2) || /macintosh/i.test(ua2) && /mobile/i.test(ua2); +} +function _isIOSStandalone(ua2 = getUA()) { + var _a2; + return _isIOS(ua2) && !!((_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.standalone); +} +function _isIE10() { + return isIE() && document.documentMode === 10; +} +function _isMobileBrowser(ua2 = getUA()) { + return _isIOS(ua2) || _isAndroid(ua2) || _isWebOS(ua2) || _isBlackBerry(ua2) || /windows phone/i.test(ua2) || _isIEMobile(ua2); +} +function _isIframe() { + try { + return !!(window && window !== window.top); + } catch (e) { + return false; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getClientVersion(clientPlatform, frameworks = []) { + let reportedPlatform; + switch (clientPlatform) { + case "Browser": + reportedPlatform = _getBrowserName(getUA()); + break; + case "Worker": + reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`; + break; + default: + reportedPlatform = clientPlatform; + } + const reportedFrameworks = frameworks.length ? frameworks.join(",") : "FirebaseCore-web"; + return `${reportedPlatform}/${"JsCore"}/${SDK_VERSION}/${reportedFrameworks}`; +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthMiddlewareQueue { + constructor(auth2) { + this.auth = auth2; + this.queue = []; + } + pushCallback(callback, onAbort) { + const wrappedCallback = (user) => new Promise((resolve, reject) => { + try { + const result = callback(user); + resolve(result); + } catch (e) { + reject(e); + } + }); + wrappedCallback.onAbort = onAbort; + this.queue.push(wrappedCallback); + const index = this.queue.length - 1; + return () => { + this.queue[index] = () => Promise.resolve(); + }; + } + async runMiddleware(nextUser) { + if (this.auth.currentUser === nextUser) { + return; + } + const onAbortStack = []; + try { + for (const beforeStateCallback of this.queue) { + await beforeStateCallback(nextUser); + if (beforeStateCallback.onAbort) { + onAbortStack.push(beforeStateCallback.onAbort); + } + } + } catch (e) { + onAbortStack.reverse(); + for (const onAbort of onAbortStack) { + try { + onAbort(); + } catch (_) { + } + } + throw this.auth._errorFactory.create("login-blocked", { + originalMessage: e === null || e === void 0 ? void 0 : e.message + }); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthImpl { + constructor(app2, heartbeatServiceProvider, config) { + this.app = app2; + this.heartbeatServiceProvider = heartbeatServiceProvider; + this.config = config; + this.currentUser = null; + this.emulatorConfig = null; + this.operations = Promise.resolve(); + this.authStateSubscription = new Subscription(this); + this.idTokenSubscription = new Subscription(this); + this.beforeStateQueue = new AuthMiddlewareQueue(this); + this.redirectUser = null; + this.isProactiveRefreshEnabled = false; + this._canInitEmulator = true; + this._isInitialized = false; + this._deleted = false; + this._initializationPromise = null; + this._popupRedirectResolver = null; + this._errorFactory = _DEFAULT_AUTH_ERROR_FACTORY; + this.lastNotifiedUid = void 0; + this.languageCode = null; + this.tenantId = null; + this.settings = { appVerificationDisabledForTesting: false }; + this.frameworks = []; + this.name = app2.name; + this.clientVersion = config.sdkClientVersion; + } + _initializeWithPersistence(persistenceHierarchy, popupRedirectResolver) { + if (popupRedirectResolver) { + this._popupRedirectResolver = _getInstance(popupRedirectResolver); + } + this._initializationPromise = this.queue(async () => { + var _a2, _b; + if (this._deleted) { + return; + } + this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy); + if (this._deleted) { + return; + } + if ((_a2 = this._popupRedirectResolver) === null || _a2 === void 0 ? void 0 : _a2._shouldInitProactively) { + try { + await this._popupRedirectResolver._initialize(this); + } catch (e) { + } + } + await this.initializeCurrentUser(popupRedirectResolver); + this.lastNotifiedUid = ((_b = this.currentUser) === null || _b === void 0 ? void 0 : _b.uid) || null; + if (this._deleted) { + return; + } + this._isInitialized = true; + }); + return this._initializationPromise; + } + async _onStorageEvent() { + if (this._deleted) { + return; + } + const user = await this.assertedPersistence.getCurrentUser(); + if (!this.currentUser && !user) { + return; + } + if (this.currentUser && user && this.currentUser.uid === user.uid) { + this._currentUser._assign(user); + await this.currentUser.getIdToken(); + return; + } + await this._updateCurrentUser(user, true); + } + async initializeCurrentUser(popupRedirectResolver) { + var _a2; + const previouslyStoredUser = await this.assertedPersistence.getCurrentUser(); + let futureCurrentUser = previouslyStoredUser; + let needsTocheckMiddleware = false; + if (popupRedirectResolver && this.config.authDomain) { + await this.getOrInitRedirectPersistenceManager(); + const redirectUserEventId = (_a2 = this.redirectUser) === null || _a2 === void 0 ? void 0 : _a2._redirectEventId; + const storedUserEventId = futureCurrentUser === null || futureCurrentUser === void 0 ? void 0 : futureCurrentUser._redirectEventId; + const result = await this.tryRedirectSignIn(popupRedirectResolver); + if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) && (result === null || result === void 0 ? void 0 : result.user)) { + futureCurrentUser = result.user; + needsTocheckMiddleware = true; + } + } + if (!futureCurrentUser) { + return this.directlySetCurrentUser(null); + } + if (!futureCurrentUser._redirectEventId) { + if (needsTocheckMiddleware) { + try { + await this.beforeStateQueue.runMiddleware(futureCurrentUser); + } catch (e) { + futureCurrentUser = previouslyStoredUser; + this._popupRedirectResolver._overrideRedirectResult(this, () => Promise.reject(e)); + } + } + if (futureCurrentUser) { + return this.reloadAndSetCurrentUserOrClear(futureCurrentUser); + } else { + return this.directlySetCurrentUser(null); + } + } + _assert(this._popupRedirectResolver, this, "argument-error"); + await this.getOrInitRedirectPersistenceManager(); + if (this.redirectUser && this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId) { + return this.directlySetCurrentUser(futureCurrentUser); + } + return this.reloadAndSetCurrentUserOrClear(futureCurrentUser); + } + async tryRedirectSignIn(redirectResolver) { + let result = null; + try { + result = await this._popupRedirectResolver._completeRedirectFn(this, redirectResolver, true); + } catch (e) { + await this._setRedirectUser(null); + } + return result; + } + async reloadAndSetCurrentUserOrClear(user) { + try { + await _reloadWithoutSaving(user); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) !== `auth/${"network-request-failed"}`) { + return this.directlySetCurrentUser(null); + } + } + return this.directlySetCurrentUser(user); + } + useDeviceLanguage() { + this.languageCode = _getUserLanguage(); + } + async _delete() { + this._deleted = true; + } + async updateCurrentUser(userExtern) { + const user = userExtern ? getModularInstance(userExtern) : null; + if (user) { + _assert(user.auth.config.apiKey === this.config.apiKey, this, "invalid-user-token"); + } + return this._updateCurrentUser(user && user._clone(this)); + } + async _updateCurrentUser(user, skipBeforeStateCallbacks = false) { + if (this._deleted) { + return; + } + if (user) { + _assert(this.tenantId === user.tenantId, this, "tenant-id-mismatch"); + } + if (!skipBeforeStateCallbacks) { + await this.beforeStateQueue.runMiddleware(user); + } + return this.queue(async () => { + await this.directlySetCurrentUser(user); + this.notifyAuthListeners(); + }); + } + async signOut() { + await this.beforeStateQueue.runMiddleware(null); + if (this.redirectPersistenceManager || this._popupRedirectResolver) { + await this._setRedirectUser(null); + } + return this._updateCurrentUser(null, true); + } + setPersistence(persistence) { + return this.queue(async () => { + await this.assertedPersistence.setPersistence(_getInstance(persistence)); + }); + } + _getPersistence() { + return this.assertedPersistence.persistence.type; + } + _updateErrorMap(errorMap) { + this._errorFactory = new ErrorFactory("auth", "Firebase", errorMap()); + } + onAuthStateChanged(nextOrObserver, error, completed) { + return this.registerStateListener(this.authStateSubscription, nextOrObserver, error, completed); + } + beforeAuthStateChanged(callback, onAbort) { + return this.beforeStateQueue.pushCallback(callback, onAbort); + } + onIdTokenChanged(nextOrObserver, error, completed) { + return this.registerStateListener(this.idTokenSubscription, nextOrObserver, error, completed); + } + toJSON() { + var _a2; + return { + apiKey: this.config.apiKey, + authDomain: this.config.authDomain, + appName: this.name, + currentUser: (_a2 = this._currentUser) === null || _a2 === void 0 ? void 0 : _a2.toJSON() + }; + } + async _setRedirectUser(user, popupRedirectResolver) { + const redirectManager = await this.getOrInitRedirectPersistenceManager(popupRedirectResolver); + return user === null ? redirectManager.removeCurrentUser() : redirectManager.setCurrentUser(user); + } + async getOrInitRedirectPersistenceManager(popupRedirectResolver) { + if (!this.redirectPersistenceManager) { + const resolver = popupRedirectResolver && _getInstance(popupRedirectResolver) || this._popupRedirectResolver; + _assert(resolver, this, "argument-error"); + this.redirectPersistenceManager = await PersistenceUserManager.create(this, [_getInstance(resolver._redirectPersistence)], "redirectUser"); + this.redirectUser = await this.redirectPersistenceManager.getCurrentUser(); + } + return this.redirectPersistenceManager; + } + async _redirectUserForId(id2) { + var _a2, _b; + if (this._isInitialized) { + await this.queue(async () => { + }); + } + if (((_a2 = this._currentUser) === null || _a2 === void 0 ? void 0 : _a2._redirectEventId) === id2) { + return this._currentUser; + } + if (((_b = this.redirectUser) === null || _b === void 0 ? void 0 : _b._redirectEventId) === id2) { + return this.redirectUser; + } + return null; + } + async _persistUserIfCurrent(user) { + if (user === this.currentUser) { + return this.queue(async () => this.directlySetCurrentUser(user)); + } + } + _notifyListenersIfCurrent(user) { + if (user === this.currentUser) { + this.notifyAuthListeners(); + } + } + _key() { + return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`; + } + _startProactiveRefresh() { + this.isProactiveRefreshEnabled = true; + if (this.currentUser) { + this._currentUser._startProactiveRefresh(); + } + } + _stopProactiveRefresh() { + this.isProactiveRefreshEnabled = false; + if (this.currentUser) { + this._currentUser._stopProactiveRefresh(); + } + } + get _currentUser() { + return this.currentUser; + } + notifyAuthListeners() { + var _a2, _b; + if (!this._isInitialized) { + return; + } + this.idTokenSubscription.next(this.currentUser); + const currentUid = (_b = (_a2 = this.currentUser) === null || _a2 === void 0 ? void 0 : _a2.uid) !== null && _b !== void 0 ? _b : null; + if (this.lastNotifiedUid !== currentUid) { + this.lastNotifiedUid = currentUid; + this.authStateSubscription.next(this.currentUser); + } + } + registerStateListener(subscription, nextOrObserver, error, completed) { + if (this._deleted) { + return () => { + }; + } + const cb2 = typeof nextOrObserver === "function" ? nextOrObserver : nextOrObserver.next.bind(nextOrObserver); + const promise = this._isInitialized ? Promise.resolve() : this._initializationPromise; + _assert(promise, this, "internal-error"); + promise.then(() => cb2(this.currentUser)); + if (typeof nextOrObserver === "function") { + return subscription.addObserver(nextOrObserver, error, completed); + } else { + return subscription.addObserver(nextOrObserver); + } + } + async directlySetCurrentUser(user) { + if (this.currentUser && this.currentUser !== user) { + this._currentUser._stopProactiveRefresh(); + } + if (user && this.isProactiveRefreshEnabled) { + user._startProactiveRefresh(); + } + this.currentUser = user; + if (user) { + await this.assertedPersistence.setCurrentUser(user); + } else { + await this.assertedPersistence.removeCurrentUser(); + } + } + queue(action) { + this.operations = this.operations.then(action, action); + return this.operations; + } + get assertedPersistence() { + _assert(this.persistenceManager, this, "internal-error"); + return this.persistenceManager; + } + _logFramework(framework) { + if (!framework || this.frameworks.includes(framework)) { + return; + } + this.frameworks.push(framework); + this.frameworks.sort(); + this.clientVersion = _getClientVersion(this.config.clientPlatform, this._getFrameworks()); + } + _getFrameworks() { + return this.frameworks; + } + async _getAdditionalHeaders() { + var _a2; + const headers = { + ["X-Client-Version"]: this.clientVersion + }; + if (this.app.options.appId) { + headers["X-Firebase-gmpid"] = this.app.options.appId; + } + const heartbeatsHeader = await ((_a2 = this.heartbeatServiceProvider.getImmediate({ + optional: true + })) === null || _a2 === void 0 ? void 0 : _a2.getHeartbeatsHeader()); + if (heartbeatsHeader) { + headers["X-Firebase-Client"] = heartbeatsHeader; + } + return headers; + } +} +function _castAuth(auth2) { + return getModularInstance(auth2); +} +class Subscription { + constructor(auth2) { + this.auth = auth2; + this.observer = null; + this.addObserver = createSubscribe((observer) => this.observer = observer); + } + get next() { + _assert(this.observer, this.auth, "internal-error"); + return this.observer.next.bind(this.observer); + } +} +function connectAuthEmulator(auth2, url, options) { + const authInternal = _castAuth(auth2); + _assert(authInternal._canInitEmulator, authInternal, "emulator-config-failed"); + _assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme"); + const disableWarnings = !!(options === null || options === void 0 ? void 0 : options.disableWarnings); + const protocol = extractProtocol(url); + const { host, port } = extractHostAndPort(url); + const portStr = port === null ? "" : `:${port}`; + authInternal.config.emulator = { url: `${protocol}//${host}${portStr}/` }; + authInternal.settings.appVerificationDisabledForTesting = true; + authInternal.emulatorConfig = Object.freeze({ + host, + port, + protocol: protocol.replace(":", ""), + options: Object.freeze({ disableWarnings }) + }); + if (!disableWarnings) { + emitEmulatorWarning(); + } +} +function extractProtocol(url) { + const protocolEnd = url.indexOf(":"); + return protocolEnd < 0 ? "" : url.substr(0, protocolEnd + 1); +} +function extractHostAndPort(url) { + const protocol = extractProtocol(url); + const authority = /(\/\/)?([^?#/]+)/.exec(url.substr(protocol.length)); + if (!authority) { + return { host: "", port: null }; + } + const hostAndPort = authority[2].split("@").pop() || ""; + const bracketedIPv6 = /^(\[[^\]]+\])(:|$)/.exec(hostAndPort); + if (bracketedIPv6) { + const host = bracketedIPv6[1]; + return { host, port: parsePort(hostAndPort.substr(host.length + 1)) }; + } else { + const [host, port] = hostAndPort.split(":"); + return { host, port: parsePort(port) }; + } +} +function parsePort(portStr) { + if (!portStr) { + return null; + } + const port = Number(portStr); + if (isNaN(port)) { + return null; + } + return port; +} +function emitEmulatorWarning() { + function attachBanner() { + const el2 = document.createElement("p"); + const sty = el2.style; + el2.innerText = "Running in emulator mode. Do not use with production credentials."; + sty.position = "fixed"; + sty.width = "100%"; + sty.backgroundColor = "#ffffff"; + sty.border = ".1em solid #000000"; + sty.color = "#b50000"; + sty.bottom = "0px"; + sty.left = "0px"; + sty.margin = "0px"; + sty.zIndex = "10000"; + sty.textAlign = "center"; + el2.classList.add("firebase-emulator-warning"); + document.body.appendChild(el2); + } + if (typeof console !== "undefined" && typeof console.info === "function") { + console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."); + } + if (typeof window !== "undefined" && typeof document !== "undefined") { + if (document.readyState === "loading") { + window.addEventListener("DOMContentLoaded", attachBanner); + } else { + attachBanner(); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthCredential { + constructor(providerId, signInMethod) { + this.providerId = providerId; + this.signInMethod = signInMethod; + } + toJSON() { + return debugFail("not implemented"); + } + _getIdTokenResponse(_auth) { + return debugFail("not implemented"); + } + _linkToIdToken(_auth, _idToken) { + return debugFail("not implemented"); + } + _getReauthenticationResolver(_auth) { + return debugFail("not implemented"); + } +} +async function updateEmailPassword(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:update", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithPassword(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithPassword", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithEmailLink$1(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithEmailLink", _addTidIfNecessary(auth2, request)); +} +async function signInWithEmailLinkForLinking(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithEmailLink", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class EmailAuthCredential extends AuthCredential { + constructor(_email, _password, signInMethod, _tenantId = null) { + super("password", signInMethod); + this._email = _email; + this._password = _password; + this._tenantId = _tenantId; + } + static _fromEmailAndPassword(email, password) { + return new EmailAuthCredential(email, password, "password"); + } + static _fromEmailAndCode(email, oobCode, tenantId = null) { + return new EmailAuthCredential(email, oobCode, "emailLink", tenantId); + } + toJSON() { + return { + email: this._email, + password: this._password, + signInMethod: this.signInMethod, + tenantId: this._tenantId + }; + } + static fromJSON(json) { + const obj = typeof json === "string" ? JSON.parse(json) : json; + if ((obj === null || obj === void 0 ? void 0 : obj.email) && (obj === null || obj === void 0 ? void 0 : obj.password)) { + if (obj.signInMethod === "password") { + return this._fromEmailAndPassword(obj.email, obj.password); + } else if (obj.signInMethod === "emailLink") { + return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId); + } + } + return null; + } + async _getIdTokenResponse(auth2) { + switch (this.signInMethod) { + case "password": + return signInWithPassword(auth2, { + returnSecureToken: true, + email: this._email, + password: this._password + }); + case "emailLink": + return signInWithEmailLink$1(auth2, { + email: this._email, + oobCode: this._password + }); + default: + _fail(auth2, "internal-error"); + } + } + async _linkToIdToken(auth2, idToken) { + switch (this.signInMethod) { + case "password": + return updateEmailPassword(auth2, { + idToken, + returnSecureToken: true, + email: this._email, + password: this._password + }); + case "emailLink": + return signInWithEmailLinkForLinking(auth2, { + idToken, + email: this._email, + oobCode: this._password + }); + default: + _fail(auth2, "internal-error"); + } + } + _getReauthenticationResolver(auth2) { + return this._getIdTokenResponse(auth2); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithIdp(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithIdp", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const IDP_REQUEST_URI$1 = "http://localhost"; +class OAuthCredential extends AuthCredential { + constructor() { + super(...arguments); + this.pendingToken = null; + } + static _fromParams(params) { + const cred = new OAuthCredential(params.providerId, params.signInMethod); + if (params.idToken || params.accessToken) { + if (params.idToken) { + cred.idToken = params.idToken; + } + if (params.accessToken) { + cred.accessToken = params.accessToken; + } + if (params.nonce && !params.pendingToken) { + cred.nonce = params.nonce; + } + if (params.pendingToken) { + cred.pendingToken = params.pendingToken; + } + } else if (params.oauthToken && params.oauthTokenSecret) { + cred.accessToken = params.oauthToken; + cred.secret = params.oauthTokenSecret; + } else { + _fail("argument-error"); + } + return cred; + } + 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(json) { + const obj = typeof json === "string" ? JSON.parse(json) : json; + const { providerId, signInMethod } = obj, rest = __rest(obj, ["providerId", "signInMethod"]); + if (!providerId || !signInMethod) { + return null; + } + const cred = new OAuthCredential(providerId, signInMethod); + cred.idToken = rest.idToken || void 0; + cred.accessToken = rest.accessToken || void 0; + cred.secret = rest.secret; + cred.nonce = rest.nonce; + cred.pendingToken = rest.pendingToken || null; + return cred; + } + _getIdTokenResponse(auth2) { + const request = this.buildRequest(); + return signInWithIdp(auth2, request); + } + _linkToIdToken(auth2, idToken) { + const request = this.buildRequest(); + request.idToken = idToken; + return signInWithIdp(auth2, request); + } + _getReauthenticationResolver(auth2) { + const request = this.buildRequest(); + request.autoCreate = false; + return signInWithIdp(auth2, request); + } + buildRequest() { + const request = { + requestUri: IDP_REQUEST_URI$1, + returnSecureToken: true + }; + if (this.pendingToken) { + request.pendingToken = this.pendingToken; + } else { + const postBody = {}; + if (this.idToken) { + postBody["id_token"] = this.idToken; + } + if (this.accessToken) { + postBody["access_token"] = this.accessToken; + } + if (this.secret) { + postBody["oauth_token_secret"] = this.secret; + } + postBody["providerId"] = this.providerId; + if (this.nonce && !this.pendingToken) { + postBody["nonce"] = this.nonce; + } + request.postBody = querystring(postBody); + } + return request; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function parseMode(mode) { + switch (mode) { + 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; + } +} +function parseDeepLink(url) { + const link = querystringDecode(extractQuerystring(url))["link"]; + const doubleDeepLink = link ? querystringDecode(extractQuerystring(link))["deep_link_id"] : null; + const iOSDeepLink = querystringDecode(extractQuerystring(url))["deep_link_id"]; + const iOSDoubleDeepLink = iOSDeepLink ? querystringDecode(extractQuerystring(iOSDeepLink))["link"] : null; + return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url; +} +class ActionCodeURL { + constructor(actionLink) { + var _a2, _b, _c2, _d, _e2, _f; + const searchParams = querystringDecode(extractQuerystring(actionLink)); + const apiKey = (_a2 = searchParams["apiKey"]) !== null && _a2 !== void 0 ? _a2 : null; + const code = (_b = searchParams["oobCode"]) !== null && _b !== void 0 ? _b : null; + const operation = parseMode((_c2 = searchParams["mode"]) !== null && _c2 !== void 0 ? _c2 : null); + _assert(apiKey && code && operation, "argument-error"); + this.apiKey = apiKey; + this.operation = operation; + this.code = code; + this.continueUrl = (_d = searchParams["continueUrl"]) !== null && _d !== void 0 ? _d : null; + this.languageCode = (_e2 = searchParams["languageCode"]) !== null && _e2 !== void 0 ? _e2 : null; + this.tenantId = (_f = searchParams["tenantId"]) !== null && _f !== void 0 ? _f : null; + } + static parseLink(link) { + const actionLink = parseDeepLink(link); + try { + return new ActionCodeURL(actionLink); + } catch (_a2) { + return null; + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class EmailAuthProvider { + constructor() { + this.providerId = EmailAuthProvider.PROVIDER_ID; + } + static credential(email, password) { + return EmailAuthCredential._fromEmailAndPassword(email, password); + } + static credentialWithLink(email, emailLink) { + const actionCodeUrl = ActionCodeURL.parseLink(emailLink); + _assert(actionCodeUrl, "argument-error"); + return EmailAuthCredential._fromEmailAndCode(email, actionCodeUrl.code, actionCodeUrl.tenantId); + } +} +EmailAuthProvider.PROVIDER_ID = "password"; +EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD = "password"; +EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD = "emailLink"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FederatedAuthProvider { + constructor(providerId) { + this.providerId = providerId; + this.defaultLanguageCode = null; + this.customParameters = {}; + } + setDefaultLanguage(languageCode) { + this.defaultLanguageCode = languageCode; + } + setCustomParameters(customOAuthParameters) { + this.customParameters = customOAuthParameters; + return this; + } + getCustomParameters() { + return this.customParameters; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BaseOAuthProvider extends FederatedAuthProvider { + constructor() { + super(...arguments); + this.scopes = []; + } + addScope(scope) { + if (!this.scopes.includes(scope)) { + this.scopes.push(scope); + } + return this; + } + getScopes() { + return [...this.scopes]; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FacebookAuthProvider extends BaseOAuthProvider { + constructor() { + super("facebook.com"); + } + static credential(accessToken) { + return OAuthCredential._fromParams({ + providerId: FacebookAuthProvider.PROVIDER_ID, + signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD, + accessToken + }); + } + static credentialFromResult(userCredential) { + return FacebookAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return FacebookAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse || !("oauthAccessToken" in tokenResponse)) { + return null; + } + if (!tokenResponse.oauthAccessToken) { + return null; + } + try { + return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD = "facebook.com"; +FacebookAuthProvider.PROVIDER_ID = "facebook.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GoogleAuthProvider extends BaseOAuthProvider { + constructor() { + super("google.com"); + this.addScope("profile"); + } + static credential(idToken, accessToken) { + return OAuthCredential._fromParams({ + providerId: GoogleAuthProvider.PROVIDER_ID, + signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD, + idToken, + accessToken + }); + } + static credentialFromResult(userCredential) { + return GoogleAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return GoogleAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse) { + return null; + } + const { oauthIdToken, oauthAccessToken } = tokenResponse; + if (!oauthIdToken && !oauthAccessToken) { + return null; + } + try { + return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD = "google.com"; +GoogleAuthProvider.PROVIDER_ID = "google.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GithubAuthProvider extends BaseOAuthProvider { + constructor() { + super("github.com"); + } + static credential(accessToken) { + return OAuthCredential._fromParams({ + providerId: GithubAuthProvider.PROVIDER_ID, + signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD, + accessToken + }); + } + static credentialFromResult(userCredential) { + return GithubAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return GithubAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse || !("oauthAccessToken" in tokenResponse)) { + return null; + } + if (!tokenResponse.oauthAccessToken) { + return null; + } + try { + return GithubAuthProvider.credential(tokenResponse.oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +GithubAuthProvider.GITHUB_SIGN_IN_METHOD = "github.com"; +GithubAuthProvider.PROVIDER_ID = "github.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class TwitterAuthProvider extends BaseOAuthProvider { + constructor() { + super("twitter.com"); + } + static credential(token, secret) { + return OAuthCredential._fromParams({ + providerId: TwitterAuthProvider.PROVIDER_ID, + signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD, + oauthToken: token, + oauthTokenSecret: secret + }); + } + static credentialFromResult(userCredential) { + return TwitterAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return TwitterAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse) { + return null; + } + const { oauthAccessToken, oauthTokenSecret } = tokenResponse; + if (!oauthAccessToken || !oauthTokenSecret) { + return null; + } + try { + return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret); + } catch (_a2) { + return null; + } + } +} +TwitterAuthProvider.TWITTER_SIGN_IN_METHOD = "twitter.com"; +TwitterAuthProvider.PROVIDER_ID = "twitter.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signUp(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signUp", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class UserCredentialImpl { + constructor(params) { + this.user = params.user; + this.providerId = params.providerId; + this._tokenResponse = params._tokenResponse; + this.operationType = params.operationType; + } + static async _fromIdTokenResponse(auth2, operationType, idTokenResponse, isAnonymous = false) { + const user = await UserImpl._fromIdTokenResponse(auth2, idTokenResponse, isAnonymous); + const providerId = providerIdForResponse(idTokenResponse); + const userCred = new UserCredentialImpl({ + user, + providerId, + _tokenResponse: idTokenResponse, + operationType + }); + return userCred; + } + static async _forOperation(user, operationType, response) { + await user._updateTokensIfNecessary(response, true); + const providerId = providerIdForResponse(response); + return new UserCredentialImpl({ + user, + providerId, + _tokenResponse: response, + operationType + }); + } +} +function providerIdForResponse(response) { + if (response.providerId) { + return response.providerId; + } + if ("phoneNumber" in response) { + return "phone"; + } + return null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class MultiFactorError extends FirebaseError { + constructor(auth2, error, operationType, user) { + var _a2; + super(error.code, error.message); + this.operationType = operationType; + this.user = user; + Object.setPrototypeOf(this, MultiFactorError.prototype); + this.customData = { + appName: auth2.name, + tenantId: (_a2 = auth2.tenantId) !== null && _a2 !== void 0 ? _a2 : void 0, + _serverResponse: error.customData._serverResponse, + operationType + }; + } + static _fromErrorAndOperation(auth2, error, operationType, user) { + return new MultiFactorError(auth2, error, operationType, user); + } +} +function _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential, user) { + const idTokenProvider = operationType === "reauthenticate" ? credential._getReauthenticationResolver(auth2) : credential._getIdTokenResponse(auth2); + return idTokenProvider.catch((error) => { + if (error.code === `auth/${"multi-factor-auth-required"}`) { + throw MultiFactorError._fromErrorAndOperation(auth2, error, operationType, user); + } + throw error; + }); +} +async function _link$1(user, credential, bypassAuthState = false) { + const response = await _logoutIfInvalidated(user, credential._linkToIdToken(user.auth, await user.getIdToken()), bypassAuthState); + return UserCredentialImpl._forOperation(user, "link", response); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _reauthenticate(user, credential, bypassAuthState = false) { + const { auth: auth2 } = user; + const operationType = "reauthenticate"; + try { + const response = await _logoutIfInvalidated(user, _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential, user), bypassAuthState); + _assert(response.idToken, auth2, "internal-error"); + const parsed = _parseToken(response.idToken); + _assert(parsed, auth2, "internal-error"); + const { sub: localId } = parsed; + _assert(user.uid === localId, auth2, "user-mismatch"); + return UserCredentialImpl._forOperation(user, operationType, response); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) === `auth/${"user-not-found"}`) { + _fail(auth2, "user-mismatch"); + } + throw e; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _signInWithCredential(auth2, credential, bypassAuthState = false) { + const operationType = "signIn"; + const response = await _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential); + const userCredential = await UserCredentialImpl._fromIdTokenResponse(auth2, operationType, response); + if (!bypassAuthState) { + await auth2._updateCurrentUser(userCredential.user); + } + return userCredential; +} +async function signInWithCredential(auth2, credential) { + return _signInWithCredential(_castAuth(auth2), credential); +} +async function createUserWithEmailAndPassword(auth2, email, password) { + const authInternal = _castAuth(auth2); + const response = await signUp(authInternal, { + returnSecureToken: true, + email, + password + }); + const userCredential = await UserCredentialImpl._fromIdTokenResponse(authInternal, "signIn", response); + await authInternal._updateCurrentUser(userCredential.user); + return userCredential; +} +function signInWithEmailAndPassword(auth2, email, password) { + return signInWithCredential(getModularInstance(auth2), EmailAuthProvider.credential(email, password)); +} +function onIdTokenChanged(auth2, nextOrObserver, error, completed) { + return getModularInstance(auth2).onIdTokenChanged(nextOrObserver, error, completed); +} +function beforeAuthStateChanged(auth2, callback, onAbort) { + return getModularInstance(auth2).beforeAuthStateChanged(callback, onAbort); +} +function onAuthStateChanged(auth2, nextOrObserver, error, completed) { + return getModularInstance(auth2).onAuthStateChanged(nextOrObserver, error, completed); +} +function signOut(auth2) { + return getModularInstance(auth2).signOut(); +} +const STORAGE_AVAILABLE_KEY = "__sak"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BrowserPersistenceClass { + constructor(storageRetriever, type) { + this.storageRetriever = storageRetriever; + this.type = type; + } + _isAvailable() { + try { + if (!this.storage) { + return Promise.resolve(false); + } + this.storage.setItem(STORAGE_AVAILABLE_KEY, "1"); + this.storage.removeItem(STORAGE_AVAILABLE_KEY); + return Promise.resolve(true); + } catch (_a2) { + return Promise.resolve(false); + } + } + _set(key, value) { + this.storage.setItem(key, JSON.stringify(value)); + return Promise.resolve(); + } + _get(key) { + const json = this.storage.getItem(key); + return Promise.resolve(json ? JSON.parse(json) : null); + } + _remove(key) { + this.storage.removeItem(key); + return Promise.resolve(); + } + get storage() { + return this.storageRetriever(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _iframeCannotSyncWebStorage() { + const ua2 = getUA(); + return _isSafari(ua2) || _isIOS(ua2); +} +const _POLLING_INTERVAL_MS$1 = 1e3; +const IE10_LOCAL_STORAGE_SYNC_DELAY = 10; +class BrowserLocalPersistence extends BrowserPersistenceClass { + constructor() { + super(() => window.localStorage, "LOCAL"); + this.boundEventHandler = (event, poll) => this.onStorageEvent(event, poll); + this.listeners = {}; + this.localCache = {}; + this.pollTimer = null; + this.safariLocalStorageNotSynced = _iframeCannotSyncWebStorage() && _isIframe(); + this.fallbackToPolling = _isMobileBrowser(); + this._shouldAllowMigration = true; + } + forAllChangedKeys(cb2) { + for (const key of Object.keys(this.listeners)) { + const newValue = this.storage.getItem(key); + const oldValue = this.localCache[key]; + if (newValue !== oldValue) { + cb2(key, oldValue, newValue); + } + } + } + onStorageEvent(event, poll = false) { + if (!event.key) { + this.forAllChangedKeys((key2, _oldValue, newValue) => { + this.notifyListeners(key2, newValue); + }); + return; + } + const key = event.key; + if (poll) { + this.detachListener(); + } else { + this.stopPolling(); + } + if (this.safariLocalStorageNotSynced) { + const storedValue2 = this.storage.getItem(key); + if (event.newValue !== storedValue2) { + if (event.newValue !== null) { + this.storage.setItem(key, event.newValue); + } else { + this.storage.removeItem(key); + } + } else if (this.localCache[key] === event.newValue && !poll) { + return; + } + } + const triggerListeners = () => { + const storedValue2 = this.storage.getItem(key); + if (!poll && this.localCache[key] === storedValue2) { + return; + } + this.notifyListeners(key, storedValue2); + }; + const storedValue = this.storage.getItem(key); + if (_isIE10() && storedValue !== event.newValue && event.newValue !== event.oldValue) { + setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY); + } else { + triggerListeners(); + } + } + notifyListeners(key, value) { + this.localCache[key] = value; + const listeners = this.listeners[key]; + if (listeners) { + for (const listener of Array.from(listeners)) { + listener(value ? JSON.parse(value) : value); + } + } + } + startPolling() { + this.stopPolling(); + this.pollTimer = setInterval(() => { + this.forAllChangedKeys((key, oldValue, newValue) => { + this.onStorageEvent( + new StorageEvent("storage", { + key, + oldValue, + newValue + }), + true + ); + }); + }, _POLLING_INTERVAL_MS$1); + } + stopPolling() { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + attachListener() { + window.addEventListener("storage", this.boundEventHandler); + } + detachListener() { + window.removeEventListener("storage", this.boundEventHandler); + } + _addListener(key, listener) { + if (Object.keys(this.listeners).length === 0) { + if (this.fallbackToPolling) { + this.startPolling(); + } else { + this.attachListener(); + } + } + if (!this.listeners[key]) { + this.listeners[key] = /* @__PURE__ */ new Set(); + this.localCache[key] = this.storage.getItem(key); + } + this.listeners[key].add(listener); + } + _removeListener(key, listener) { + if (this.listeners[key]) { + this.listeners[key].delete(listener); + if (this.listeners[key].size === 0) { + delete this.listeners[key]; + } + } + if (Object.keys(this.listeners).length === 0) { + this.detachListener(); + this.stopPolling(); + } + } + async _set(key, value) { + await super._set(key, value); + this.localCache[key] = JSON.stringify(value); + } + async _get(key) { + const value = await super._get(key); + this.localCache[key] = JSON.stringify(value); + return value; + } + async _remove(key) { + await super._remove(key); + delete this.localCache[key]; + } +} +BrowserLocalPersistence.type = "LOCAL"; +const browserLocalPersistence = BrowserLocalPersistence; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BrowserSessionPersistence extends BrowserPersistenceClass { + constructor() { + super(() => window.sessionStorage, "SESSION"); + } + _addListener(_key, _listener) { + return; + } + _removeListener(_key, _listener) { + return; + } +} +BrowserSessionPersistence.type = "SESSION"; +const browserSessionPersistence = BrowserSessionPersistence; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _allSettled(promises) { + return Promise.all(promises.map(async (promise) => { + try { + const value = await promise; + return { + fulfilled: true, + value + }; + } catch (reason) { + return { + fulfilled: false, + reason + }; + } + })); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Receiver { + constructor(eventTarget) { + this.eventTarget = eventTarget; + this.handlersMap = {}; + this.boundEventHandler = this.handleEvent.bind(this); + } + static _getInstance(eventTarget) { + const existingInstance = this.receivers.find((receiver) => receiver.isListeningto(eventTarget)); + if (existingInstance) { + return existingInstance; + } + const newInstance = new Receiver(eventTarget); + this.receivers.push(newInstance); + return newInstance; + } + isListeningto(eventTarget) { + return this.eventTarget === eventTarget; + } + async handleEvent(event) { + const messageEvent = event; + const { eventId, eventType, data } = messageEvent.data; + const handlers = this.handlersMap[eventType]; + if (!(handlers === null || handlers === void 0 ? void 0 : handlers.size)) { + return; + } + messageEvent.ports[0].postMessage({ + status: "ack", + eventId, + eventType + }); + const promises = Array.from(handlers).map(async (handler) => handler(messageEvent.origin, data)); + const response = await _allSettled(promises); + messageEvent.ports[0].postMessage({ + status: "done", + eventId, + eventType, + response + }); + } + _subscribe(eventType, eventHandler) { + if (Object.keys(this.handlersMap).length === 0) { + this.eventTarget.addEventListener("message", this.boundEventHandler); + } + if (!this.handlersMap[eventType]) { + this.handlersMap[eventType] = /* @__PURE__ */ new Set(); + } + this.handlersMap[eventType].add(eventHandler); + } + _unsubscribe(eventType, eventHandler) { + if (this.handlersMap[eventType] && eventHandler) { + this.handlersMap[eventType].delete(eventHandler); + } + if (!eventHandler || this.handlersMap[eventType].size === 0) { + delete this.handlersMap[eventType]; + } + if (Object.keys(this.handlersMap).length === 0) { + this.eventTarget.removeEventListener("message", this.boundEventHandler); + } + } +} +Receiver.receivers = []; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _generateEventId(prefix = "", digits = 10) { + let random = ""; + for (let i = 0; i < digits; i++) { + random += Math.floor(Math.random() * 10); + } + return prefix + random; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Sender { + constructor(target) { + this.target = target; + this.handlers = /* @__PURE__ */ new Set(); + } + removeMessageHandler(handler) { + if (handler.messageChannel) { + handler.messageChannel.port1.removeEventListener("message", handler.onMessage); + handler.messageChannel.port1.close(); + } + this.handlers.delete(handler); + } + async _send(eventType, data, timeout = 50) { + const messageChannel = typeof MessageChannel !== "undefined" ? new MessageChannel() : null; + if (!messageChannel) { + throw new Error("connection_unavailable"); + } + let completionTimer; + let handler; + return new Promise((resolve, reject) => { + const eventId = _generateEventId("", 20); + messageChannel.port1.start(); + const ackTimer = setTimeout(() => { + reject(new Error("unsupported_event")); + }, timeout); + handler = { + messageChannel, + onMessage(event) { + const messageEvent = event; + if (messageEvent.data.eventId !== eventId) { + return; + } + switch (messageEvent.data.status) { + case "ack": + clearTimeout(ackTimer); + completionTimer = setTimeout(() => { + reject(new Error("timeout")); + }, 3e3); + break; + case "done": + clearTimeout(completionTimer); + resolve(messageEvent.data.response); + break; + default: + clearTimeout(ackTimer); + clearTimeout(completionTimer); + reject(new Error("invalid_response")); + break; + } + } + }; + this.handlers.add(handler); + messageChannel.port1.addEventListener("message", handler.onMessage); + this.target.postMessage({ + eventType, + eventId, + data + }, [messageChannel.port2]); + }).finally(() => { + if (handler) { + this.removeMessageHandler(handler); + } + }); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _window() { + return window; +} +function _setWindowLocation(url) { + _window().location.href = url; +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _isWorker() { + return typeof _window()["WorkerGlobalScope"] !== "undefined" && typeof _window()["importScripts"] === "function"; +} +async function _getActiveServiceWorker() { + if (!(navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker)) { + return null; + } + try { + const registration = await navigator.serviceWorker.ready; + return registration.active; + } catch (_a2) { + return null; + } +} +function _getServiceWorkerController() { + var _a2; + return ((_a2 = navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker) === null || _a2 === void 0 ? void 0 : _a2.controller) || null; +} +function _getWorkerGlobalScope() { + return _isWorker() ? self : null; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DB_NAME = "firebaseLocalStorageDb"; +const DB_VERSION = 1; +const DB_OBJECTSTORE_NAME = "firebaseLocalStorage"; +const DB_DATA_KEYPATH = "fbase_key"; +class DBPromise { + constructor(request) { + this.request = request; + } + toPromise() { + return new Promise((resolve, reject) => { + this.request.addEventListener("success", () => { + resolve(this.request.result); + }); + this.request.addEventListener("error", () => { + reject(this.request.error); + }); + }); + } +} +function getObjectStore(db2, isReadWrite) { + return db2.transaction([DB_OBJECTSTORE_NAME], isReadWrite ? "readwrite" : "readonly").objectStore(DB_OBJECTSTORE_NAME); +} +function _deleteDatabase() { + const request = indexedDB.deleteDatabase(DB_NAME); + return new DBPromise(request).toPromise(); +} +function _openDatabase() { + const request = indexedDB.open(DB_NAME, DB_VERSION); + return new Promise((resolve, reject) => { + request.addEventListener("error", () => { + reject(request.error); + }); + request.addEventListener("upgradeneeded", () => { + const db2 = request.result; + try { + db2.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH }); + } catch (e) { + reject(e); + } + }); + request.addEventListener("success", async () => { + const db2 = request.result; + if (!db2.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) { + db2.close(); + await _deleteDatabase(); + resolve(await _openDatabase()); + } else { + resolve(db2); + } + }); + }); +} +async function _putObject(db2, key, value) { + const request = getObjectStore(db2, true).put({ + [DB_DATA_KEYPATH]: key, + value + }); + return new DBPromise(request).toPromise(); +} +async function getObject(db2, key) { + const request = getObjectStore(db2, false).get(key); + const data = await new DBPromise(request).toPromise(); + return data === void 0 ? null : data.value; +} +function _deleteObject(db2, key) { + const request = getObjectStore(db2, true).delete(key); + return new DBPromise(request).toPromise(); +} +const _POLLING_INTERVAL_MS = 800; +const _TRANSACTION_RETRY_COUNT = 3; +class IndexedDBLocalPersistence { + constructor() { + this.type = "LOCAL"; + this._shouldAllowMigration = true; + this.listeners = {}; + this.localCache = {}; + this.pollTimer = null; + this.pendingWrites = 0; + this.receiver = null; + this.sender = null; + this.serviceWorkerReceiverAvailable = false; + this.activeServiceWorker = null; + this._workerInitializationPromise = this.initializeServiceWorkerMessaging().then(() => { + }, () => { + }); + } + async _openDb() { + if (this.db) { + return this.db; + } + this.db = await _openDatabase(); + return this.db; + } + async _withRetries(op) { + let numAttempts = 0; + while (true) { + try { + const db2 = await this._openDb(); + return await op(db2); + } catch (e) { + if (numAttempts++ > _TRANSACTION_RETRY_COUNT) { + throw e; + } + if (this.db) { + this.db.close(); + this.db = void 0; + } + } + } + } + async initializeServiceWorkerMessaging() { + return _isWorker() ? this.initializeReceiver() : this.initializeSender(); + } + async initializeReceiver() { + this.receiver = Receiver._getInstance(_getWorkerGlobalScope()); + this.receiver._subscribe("keyChanged", async (_origin, data) => { + const keys = await this._poll(); + return { + keyProcessed: keys.includes(data.key) + }; + }); + this.receiver._subscribe("ping", async (_origin, _data) => { + return ["keyChanged"]; + }); + } + async initializeSender() { + var _a2, _b; + this.activeServiceWorker = await _getActiveServiceWorker(); + if (!this.activeServiceWorker) { + return; + } + this.sender = new Sender(this.activeServiceWorker); + const results = await this.sender._send("ping", {}, 800); + if (!results) { + return; + } + if (((_a2 = results[0]) === null || _a2 === void 0 ? void 0 : _a2.fulfilled) && ((_b = results[0]) === null || _b === void 0 ? void 0 : _b.value.includes("keyChanged"))) { + this.serviceWorkerReceiverAvailable = true; + } + } + async notifyServiceWorker(key) { + if (!this.sender || !this.activeServiceWorker || _getServiceWorkerController() !== this.activeServiceWorker) { + return; + } + try { + await this.sender._send( + "keyChanged", + { key }, + this.serviceWorkerReceiverAvailable ? 800 : 50 + ); + } catch (_a2) { + } + } + async _isAvailable() { + try { + if (!indexedDB) { + return false; + } + const db2 = await _openDatabase(); + await _putObject(db2, STORAGE_AVAILABLE_KEY, "1"); + await _deleteObject(db2, STORAGE_AVAILABLE_KEY); + return true; + } catch (_a2) { + } + return false; + } + async _withPendingWrite(write) { + this.pendingWrites++; + try { + await write(); + } finally { + this.pendingWrites--; + } + } + async _set(key, value) { + return this._withPendingWrite(async () => { + await this._withRetries((db2) => _putObject(db2, key, value)); + this.localCache[key] = value; + return this.notifyServiceWorker(key); + }); + } + async _get(key) { + const obj = await this._withRetries((db2) => getObject(db2, key)); + this.localCache[key] = obj; + return obj; + } + async _remove(key) { + return this._withPendingWrite(async () => { + await this._withRetries((db2) => _deleteObject(db2, key)); + delete this.localCache[key]; + return this.notifyServiceWorker(key); + }); + } + async _poll() { + const result = await this._withRetries((db2) => { + const getAllRequest = getObjectStore(db2, false).getAll(); + return new DBPromise(getAllRequest).toPromise(); + }); + if (!result) { + return []; + } + if (this.pendingWrites !== 0) { + return []; + } + const keys = []; + const keysInResult = /* @__PURE__ */ new Set(); + for (const { fbase_key: key, value } of result) { + keysInResult.add(key); + if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) { + this.notifyListeners(key, value); + keys.push(key); + } + } + for (const localKey of Object.keys(this.localCache)) { + if (this.localCache[localKey] && !keysInResult.has(localKey)) { + this.notifyListeners(localKey, null); + keys.push(localKey); + } + } + return keys; + } + notifyListeners(key, newValue) { + this.localCache[key] = newValue; + const listeners = this.listeners[key]; + if (listeners) { + for (const listener of Array.from(listeners)) { + listener(newValue); + } + } + } + startPolling() { + this.stopPolling(); + this.pollTimer = setInterval(async () => this._poll(), _POLLING_INTERVAL_MS); + } + stopPolling() { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + _addListener(key, listener) { + if (Object.keys(this.listeners).length === 0) { + this.startPolling(); + } + if (!this.listeners[key]) { + this.listeners[key] = /* @__PURE__ */ new Set(); + void this._get(key); + } + this.listeners[key].add(listener); + } + _removeListener(key, listener) { + if (this.listeners[key]) { + this.listeners[key].delete(listener); + if (this.listeners[key].size === 0) { + delete this.listeners[key]; + } + } + if (Object.keys(this.listeners).length === 0) { + this.stopPolling(); + } + } +} +IndexedDBLocalPersistence.type = "LOCAL"; +const indexedDBLocalPersistence = IndexedDBLocalPersistence; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getScriptParentElement() { + var _a2, _b; + return (_b = (_a2 = document.getElementsByTagName("head")) === null || _a2 === void 0 ? void 0 : _a2[0]) !== null && _b !== void 0 ? _b : document; +} +function _loadJS(url) { + return new Promise((resolve, reject) => { + const el2 = document.createElement("script"); + el2.setAttribute("src", url); + el2.onload = resolve; + el2.onerror = (e) => { + const error = _createError("internal-error"); + error.customData = e; + reject(error); + }; + el2.type = "text/javascript"; + el2.charset = "UTF-8"; + getScriptParentElement().appendChild(el2); + }); +} +function _generateCallbackName(prefix) { + return `__${prefix}${Math.floor(Math.random() * 1e6)}`; +} +new Delay(3e4, 6e4); +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _withDefaultResolver(auth2, resolverOverride) { + if (resolverOverride) { + return _getInstance(resolverOverride); + } + _assert(auth2._popupRedirectResolver, auth2, "argument-error"); + return auth2._popupRedirectResolver; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class IdpCredential extends AuthCredential { + constructor(params) { + super("custom", "custom"); + this.params = params; + } + _getIdTokenResponse(auth2) { + return signInWithIdp(auth2, this._buildIdpRequest()); + } + _linkToIdToken(auth2, idToken) { + return signInWithIdp(auth2, this._buildIdpRequest(idToken)); + } + _getReauthenticationResolver(auth2) { + return signInWithIdp(auth2, this._buildIdpRequest()); + } + _buildIdpRequest(idToken) { + const request = { + requestUri: this.params.requestUri, + sessionId: this.params.sessionId, + postBody: this.params.postBody, + tenantId: this.params.tenantId, + pendingToken: this.params.pendingToken, + returnSecureToken: true, + returnIdpCredential: true + }; + if (idToken) { + request.idToken = idToken; + } + return request; + } +} +function _signIn(params) { + return _signInWithCredential(params.auth, new IdpCredential(params), params.bypassAuthState); +} +function _reauth(params) { + const { auth: auth2, user } = params; + _assert(user, auth2, "internal-error"); + return _reauthenticate(user, new IdpCredential(params), params.bypassAuthState); +} +async function _link(params) { + const { auth: auth2, user } = params; + _assert(user, auth2, "internal-error"); + return _link$1(user, new IdpCredential(params), params.bypassAuthState); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AbstractPopupRedirectOperation { + constructor(auth2, filter, resolver, user, bypassAuthState = false) { + this.auth = auth2; + this.resolver = resolver; + this.user = user; + this.bypassAuthState = bypassAuthState; + this.pendingPromise = null; + this.eventManager = null; + this.filter = Array.isArray(filter) ? filter : [filter]; + } + execute() { + return new Promise(async (resolve, reject) => { + this.pendingPromise = { resolve, reject }; + try { + this.eventManager = await this.resolver._initialize(this.auth); + await this.onExecution(); + this.eventManager.registerConsumer(this); + } catch (e) { + this.reject(e); + } + }); + } + async onAuthEvent(event) { + const { urlResponse, sessionId, postBody, tenantId, error, type } = event; + if (error) { + this.reject(error); + return; + } + const params = { + auth: this.auth, + requestUri: urlResponse, + sessionId, + tenantId: tenantId || void 0, + postBody: postBody || void 0, + user: this.user, + bypassAuthState: this.bypassAuthState + }; + try { + this.resolve(await this.getIdpTask(type)(params)); + } catch (e) { + this.reject(e); + } + } + onError(error) { + this.reject(error); + } + getIdpTask(type) { + switch (type) { + case "signInViaPopup": + case "signInViaRedirect": + return _signIn; + case "linkViaPopup": + case "linkViaRedirect": + return _link; + case "reauthViaPopup": + case "reauthViaRedirect": + return _reauth; + default: + _fail(this.auth, "internal-error"); + } + } + resolve(cred) { + debugAssert(this.pendingPromise, "Pending promise was never set"); + this.pendingPromise.resolve(cred); + this.unregisterAndCleanUp(); + } + reject(error) { + debugAssert(this.pendingPromise, "Pending promise was never set"); + this.pendingPromise.reject(error); + this.unregisterAndCleanUp(); + } + unregisterAndCleanUp() { + if (this.eventManager) { + this.eventManager.unregisterConsumer(this); + } + this.pendingPromise = null; + this.cleanUp(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2e3, 1e4); +async function signInWithPopup(auth2, provider2, resolver) { + const authInternal = _castAuth(auth2); + _assertInstanceOf(auth2, provider2, FederatedAuthProvider); + const resolverInternal = _withDefaultResolver(authInternal, resolver); + const action = new PopupOperation(authInternal, "signInViaPopup", provider2, resolverInternal); + return action.executeNotNull(); +} +class PopupOperation extends AbstractPopupRedirectOperation { + constructor(auth2, filter, provider2, resolver, user) { + super(auth2, filter, resolver, user); + this.provider = provider2; + this.authWindow = null; + this.pollId = null; + if (PopupOperation.currentPopupAction) { + PopupOperation.currentPopupAction.cancel(); + } + PopupOperation.currentPopupAction = this; + } + async executeNotNull() { + const result = await this.execute(); + _assert(result, this.auth, "internal-error"); + return result; + } + async onExecution() { + debugAssert(this.filter.length === 1, "Popup operations only handle one event"); + const eventId = _generateEventId(); + this.authWindow = await this.resolver._openPopup( + this.auth, + this.provider, + this.filter[0], + eventId + ); + this.authWindow.associatedEvent = eventId; + this.resolver._originValidation(this.auth).catch((e) => { + this.reject(e); + }); + this.resolver._isIframeWebStorageSupported(this.auth, (isSupported) => { + if (!isSupported) { + this.reject(_createError(this.auth, "web-storage-unsupported")); + } + }); + this.pollUserCancellation(); + } + get eventId() { + var _a2; + return ((_a2 = this.authWindow) === null || _a2 === void 0 ? void 0 : _a2.associatedEvent) || null; + } + cancel() { + this.reject(_createError(this.auth, "cancelled-popup-request")); + } + cleanUp() { + if (this.authWindow) { + this.authWindow.close(); + } + if (this.pollId) { + window.clearTimeout(this.pollId); + } + this.authWindow = null; + this.pollId = null; + PopupOperation.currentPopupAction = null; + } + pollUserCancellation() { + const poll = () => { + var _a2, _b; + if ((_b = (_a2 = this.authWindow) === null || _a2 === void 0 ? void 0 : _a2.window) === null || _b === void 0 ? void 0 : _b.closed) { + this.pollId = window.setTimeout(() => { + this.pollId = null; + this.reject(_createError(this.auth, "popup-closed-by-user")); + }, 2e3); + return; + } + this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get()); + }; + poll(); + } +} +PopupOperation.currentPopupAction = null; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const PENDING_REDIRECT_KEY = "pendingRedirect"; +const redirectOutcomeMap = /* @__PURE__ */ new Map(); +class RedirectAction extends AbstractPopupRedirectOperation { + constructor(auth2, resolver, bypassAuthState = false) { + super(auth2, [ + "signInViaRedirect", + "linkViaRedirect", + "reauthViaRedirect", + "unknown" + ], resolver, void 0, bypassAuthState); + this.eventId = null; + } + async execute() { + let readyOutcome = redirectOutcomeMap.get(this.auth._key()); + if (!readyOutcome) { + try { + const hasPendingRedirect = await _getAndClearPendingRedirectStatus(this.resolver, this.auth); + const result = hasPendingRedirect ? await super.execute() : null; + readyOutcome = () => Promise.resolve(result); + } catch (e) { + readyOutcome = () => Promise.reject(e); + } + redirectOutcomeMap.set(this.auth._key(), readyOutcome); + } + if (!this.bypassAuthState) { + redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null)); + } + return readyOutcome(); + } + async onAuthEvent(event) { + if (event.type === "signInViaRedirect") { + return super.onAuthEvent(event); + } else if (event.type === "unknown") { + this.resolve(null); + return; + } + if (event.eventId) { + const user = await this.auth._redirectUserForId(event.eventId); + if (user) { + this.user = user; + return super.onAuthEvent(event); + } else { + this.resolve(null); + } + } + } + async onExecution() { + } + cleanUp() { + } +} +async function _getAndClearPendingRedirectStatus(resolver, auth2) { + const key = pendingRedirectKey(auth2); + const persistence = resolverPersistence(resolver); + if (!await persistence._isAvailable()) { + return false; + } + const hasPendingRedirect = await persistence._get(key) === "true"; + await persistence._remove(key); + return hasPendingRedirect; +} +function _overrideRedirectResult(auth2, result) { + redirectOutcomeMap.set(auth2._key(), result); +} +function resolverPersistence(resolver) { + return _getInstance(resolver._redirectPersistence); +} +function pendingRedirectKey(auth2) { + return _persistenceKeyName(PENDING_REDIRECT_KEY, auth2.config.apiKey, auth2.name); +} +async function _getRedirectResult(auth2, resolverExtern, bypassAuthState = false) { + const authInternal = _castAuth(auth2); + const resolver = _withDefaultResolver(authInternal, resolverExtern); + const action = new RedirectAction(authInternal, resolver, bypassAuthState); + const result = await action.execute(); + if (result && !bypassAuthState) { + delete result.user._redirectEventId; + await authInternal._persistUserIfCurrent(result.user); + await authInternal._setRedirectUser(null, resolverExtern); + } + return result; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1e3; +class AuthEventManager { + constructor(auth2) { + this.auth = auth2; + this.cachedEventUids = /* @__PURE__ */ new Set(); + this.consumers = /* @__PURE__ */ new Set(); + this.queuedRedirectEvent = null; + this.hasHandledPotentialRedirect = false; + this.lastProcessedEventTime = Date.now(); + } + registerConsumer(authEventConsumer) { + this.consumers.add(authEventConsumer); + if (this.queuedRedirectEvent && this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)) { + this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer); + this.saveEventToCache(this.queuedRedirectEvent); + this.queuedRedirectEvent = null; + } + } + unregisterConsumer(authEventConsumer) { + this.consumers.delete(authEventConsumer); + } + onEvent(event) { + if (this.hasEventBeenHandled(event)) { + return false; + } + let handled = false; + this.consumers.forEach((consumer) => { + if (this.isEventForConsumer(event, consumer)) { + handled = true; + this.sendToConsumer(event, consumer); + this.saveEventToCache(event); + } + }); + if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) { + return handled; + } + this.hasHandledPotentialRedirect = true; + if (!handled) { + this.queuedRedirectEvent = event; + handled = true; + } + return handled; + } + sendToConsumer(event, consumer) { + var _a2; + if (event.error && !isNullRedirectEvent(event)) { + const code = ((_a2 = event.error.code) === null || _a2 === void 0 ? void 0 : _a2.split("auth/")[1]) || "internal-error"; + consumer.onError(_createError(this.auth, code)); + } else { + consumer.onAuthEvent(event); + } + } + isEventForConsumer(event, consumer) { + const eventIdMatches = consumer.eventId === null || !!event.eventId && event.eventId === consumer.eventId; + return consumer.filter.includes(event.type) && eventIdMatches; + } + hasEventBeenHandled(event) { + if (Date.now() - this.lastProcessedEventTime >= EVENT_DUPLICATION_CACHE_DURATION_MS) { + this.cachedEventUids.clear(); + } + return this.cachedEventUids.has(eventUid(event)); + } + saveEventToCache(event) { + this.cachedEventUids.add(eventUid(event)); + this.lastProcessedEventTime = Date.now(); + } +} +function eventUid(e) { + return [e.type, e.eventId, e.sessionId, e.tenantId].filter((v2) => v2).join("-"); +} +function isNullRedirectEvent({ type, error }) { + return type === "unknown" && (error === null || error === void 0 ? void 0 : error.code) === `auth/${"no-auth-event"}`; +} +function isRedirectEvent(event) { + switch (event.type) { + case "signInViaRedirect": + case "linkViaRedirect": + case "reauthViaRedirect": + return true; + case "unknown": + return isNullRedirectEvent(event); + default: + return false; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _getProjectConfig(auth2, request = {}) { + return _performApiRequest(auth2, "GET", "/v1/projects", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const IP_ADDRESS_REGEX = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; +const HTTP_REGEX = /^https?/; +async function _validateOrigin(auth2) { + if (auth2.config.emulator) { + return; + } + const { authorizedDomains } = await _getProjectConfig(auth2); + for (const domain of authorizedDomains) { + try { + if (matchDomain(domain)) { + return; + } + } catch (_a2) { + } + } + _fail(auth2, "unauthorized-domain"); +} +function matchDomain(expected) { + const currentUrl = _getCurrentUrl(); + const { protocol, hostname } = new URL(currentUrl); + if (expected.startsWith("chrome-extension://")) { + const ceUrl = new URL(expected); + if (ceUrl.hostname === "" && hostname === "") { + return protocol === "chrome-extension:" && expected.replace("chrome-extension://", "") === currentUrl.replace("chrome-extension://", ""); + } + return protocol === "chrome-extension:" && ceUrl.hostname === hostname; + } + if (!HTTP_REGEX.test(protocol)) { + return false; + } + if (IP_ADDRESS_REGEX.test(expected)) { + return hostname === expected; + } + const escapedDomainPattern = expected.replace(/\./g, "\\."); + const re = new RegExp("^(.+\\." + escapedDomainPattern + "|" + escapedDomainPattern + ")$", "i"); + return re.test(hostname); +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const NETWORK_TIMEOUT = new Delay(3e4, 6e4); +function resetUnloadedGapiModules() { + const beacon = _window().___jsl; + if (beacon === null || beacon === void 0 ? void 0 : beacon.H) { + for (const hint of Object.keys(beacon.H)) { + beacon.H[hint].r = beacon.H[hint].r || []; + beacon.H[hint].L = beacon.H[hint].L || []; + beacon.H[hint].r = [...beacon.H[hint].L]; + if (beacon.CP) { + for (let i = 0; i < beacon.CP.length; i++) { + beacon.CP[i] = null; + } + } + } + } +} +function loadGapi(auth2) { + return new Promise((resolve, reject) => { + var _a2, _b, _c2; + function loadGapiIframe() { + resetUnloadedGapiModules(); + gapi.load("gapi.iframes", { + callback: () => { + resolve(gapi.iframes.getContext()); + }, + ontimeout: () => { + resetUnloadedGapiModules(); + reject(_createError(auth2, "network-request-failed")); + }, + timeout: NETWORK_TIMEOUT.get() + }); + } + if ((_b = (_a2 = _window().gapi) === null || _a2 === void 0 ? void 0 : _a2.iframes) === null || _b === void 0 ? void 0 : _b.Iframe) { + resolve(gapi.iframes.getContext()); + } else if (!!((_c2 = _window().gapi) === null || _c2 === void 0 ? void 0 : _c2.load)) { + loadGapiIframe(); + } else { + const cbName = _generateCallbackName("iframefcb"); + _window()[cbName] = () => { + if (!!gapi.load) { + loadGapiIframe(); + } else { + reject(_createError(auth2, "network-request-failed")); + } + }; + return _loadJS(`https://apis.google.com/js/api.js?onload=${cbName}`).catch((e) => reject(e)); + } + }).catch((error) => { + cachedGApiLoader = null; + throw error; + }); +} +let cachedGApiLoader = null; +function _loadGapi(auth2) { + cachedGApiLoader = cachedGApiLoader || loadGapi(auth2); + return cachedGApiLoader; +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const PING_TIMEOUT = new Delay(5e3, 15e3); +const IFRAME_PATH = "__/auth/iframe"; +const EMULATED_IFRAME_PATH = "emulator/auth/iframe"; +const IFRAME_ATTRIBUTES = { + style: { + position: "absolute", + top: "-100px", + width: "1px", + height: "1px" + }, + "aria-hidden": "true", + tabindex: "-1" +}; +const EID_FROM_APIHOST = /* @__PURE__ */ new Map([ + ["identitytoolkit.googleapis.com", "p"], + ["staging-identitytoolkit.sandbox.googleapis.com", "s"], + ["test-identitytoolkit.sandbox.googleapis.com", "t"] +]); +function getIframeUrl(auth2) { + const config = auth2.config; + _assert(config.authDomain, auth2, "auth-domain-config-required"); + const url = config.emulator ? _emulatorUrl(config, EMULATED_IFRAME_PATH) : `https://${auth2.config.authDomain}/${IFRAME_PATH}`; + const params = { + apiKey: config.apiKey, + appName: auth2.name, + v: SDK_VERSION + }; + const eid = EID_FROM_APIHOST.get(auth2.config.apiHost); + if (eid) { + params.eid = eid; + } + const frameworks = auth2._getFrameworks(); + if (frameworks.length) { + params.fw = frameworks.join(","); + } + return `${url}?${querystring(params).slice(1)}`; +} +async function _openIframe(auth2) { + const context = await _loadGapi(auth2); + const gapi2 = _window().gapi; + _assert(gapi2, auth2, "internal-error"); + return context.open({ + where: document.body, + url: getIframeUrl(auth2), + messageHandlersFilter: gapi2.iframes.CROSS_ORIGIN_IFRAMES_FILTER, + attributes: IFRAME_ATTRIBUTES, + dontclear: true + }, (iframe) => new Promise(async (resolve, reject) => { + await iframe.restyle({ + setHideOnLeave: false + }); + const networkError = _createError(auth2, "network-request-failed"); + const networkErrorTimer = _window().setTimeout(() => { + reject(networkError); + }, PING_TIMEOUT.get()); + function clearTimerAndResolve() { + _window().clearTimeout(networkErrorTimer); + resolve(iframe); + } + iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => { + reject(networkError); + }); + })); +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const BASE_POPUP_OPTIONS = { + location: "yes", + resizable: "yes", + statusbar: "yes", + toolbar: "no" +}; +const DEFAULT_WIDTH = 500; +const DEFAULT_HEIGHT = 600; +const TARGET_BLANK = "_blank"; +const FIREFOX_EMPTY_URL = "http://localhost"; +class AuthPopup { + constructor(window2) { + this.window = window2; + this.associatedEvent = null; + } + close() { + if (this.window) { + try { + this.window.close(); + } catch (e) { + } + } + } +} +function _open(auth2, url, name2, width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT) { + const top = Math.max((window.screen.availHeight - height) / 2, 0).toString(); + const left = Math.max((window.screen.availWidth - width) / 2, 0).toString(); + let target = ""; + const options = Object.assign(Object.assign({}, BASE_POPUP_OPTIONS), { + width: width.toString(), + height: height.toString(), + top, + left + }); + const ua2 = getUA().toLowerCase(); + if (name2) { + target = _isChromeIOS(ua2) ? TARGET_BLANK : name2; + } + if (_isFirefox(ua2)) { + url = url || FIREFOX_EMPTY_URL; + options.scrollbars = "yes"; + } + const optionsString = Object.entries(options).reduce((accum, [key, value]) => `${accum}${key}=${value},`, ""); + if (_isIOSStandalone(ua2) && target !== "_self") { + openAsNewWindowIOS(url || "", target); + return new AuthPopup(null); + } + const newWin = window.open(url || "", target, optionsString); + _assert(newWin, auth2, "popup-blocked"); + try { + newWin.focus(); + } catch (e) { + } + return new AuthPopup(newWin); +} +function openAsNewWindowIOS(url, target) { + const el2 = document.createElement("a"); + el2.href = url; + el2.target = target; + const click = document.createEvent("MouseEvent"); + click.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 1, null); + el2.dispatchEvent(click); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const WIDGET_PATH = "__/auth/handler"; +const EMULATOR_WIDGET_PATH = "emulator/auth/handler"; +function _getRedirectUrl(auth2, provider2, authType, redirectUrl, eventId, additionalParams) { + _assert(auth2.config.authDomain, auth2, "auth-domain-config-required"); + _assert(auth2.config.apiKey, auth2, "invalid-api-key"); + const params = { + apiKey: auth2.config.apiKey, + appName: auth2.name, + authType, + redirectUrl, + v: SDK_VERSION, + eventId + }; + if (provider2 instanceof FederatedAuthProvider) { + provider2.setDefaultLanguage(auth2.languageCode); + params.providerId = provider2.providerId || ""; + if (!isEmpty(provider2.getCustomParameters())) { + params.customParameters = JSON.stringify(provider2.getCustomParameters()); + } + for (const [key, value] of Object.entries(additionalParams || {})) { + params[key] = value; + } + } + if (provider2 instanceof BaseOAuthProvider) { + const scopes = provider2.getScopes().filter((scope) => scope !== ""); + if (scopes.length > 0) { + params.scopes = scopes.join(","); + } + } + if (auth2.tenantId) { + params.tid = auth2.tenantId; + } + const paramsDict = params; + for (const key of Object.keys(paramsDict)) { + if (paramsDict[key] === void 0) { + delete paramsDict[key]; + } + } + return `${getHandlerBase(auth2)}?${querystring(paramsDict).slice(1)}`; +} +function getHandlerBase({ config }) { + if (!config.emulator) { + return `https://${config.authDomain}/${WIDGET_PATH}`; + } + return _emulatorUrl(config, EMULATOR_WIDGET_PATH); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const WEB_STORAGE_SUPPORT_KEY = "webStorageSupport"; +class BrowserPopupRedirectResolver { + constructor() { + this.eventManagers = {}; + this.iframes = {}; + this.originValidationPromises = {}; + this._redirectPersistence = browserSessionPersistence; + this._completeRedirectFn = _getRedirectResult; + this._overrideRedirectResult = _overrideRedirectResult; + } + async _openPopup(auth2, provider2, authType, eventId) { + var _a2; + debugAssert((_a2 = this.eventManagers[auth2._key()]) === null || _a2 === void 0 ? void 0 : _a2.manager, "_initialize() not called before _openPopup()"); + const url = _getRedirectUrl(auth2, provider2, authType, _getCurrentUrl(), eventId); + return _open(auth2, url, _generateEventId()); + } + async _openRedirect(auth2, provider2, authType, eventId) { + await this._originValidation(auth2); + _setWindowLocation(_getRedirectUrl(auth2, provider2, authType, _getCurrentUrl(), eventId)); + return new Promise(() => { + }); + } + _initialize(auth2) { + const key = auth2._key(); + if (this.eventManagers[key]) { + const { manager, promise: promise2 } = this.eventManagers[key]; + if (manager) { + return Promise.resolve(manager); + } else { + debugAssert(promise2, "If manager is not set, promise should be"); + return promise2; + } + } + const promise = this.initAndGetManager(auth2); + this.eventManagers[key] = { promise }; + promise.catch(() => { + delete this.eventManagers[key]; + }); + return promise; + } + async initAndGetManager(auth2) { + const iframe = await _openIframe(auth2); + const manager = new AuthEventManager(auth2); + iframe.register("authEvent", (iframeEvent) => { + _assert(iframeEvent === null || iframeEvent === void 0 ? void 0 : iframeEvent.authEvent, auth2, "invalid-auth-event"); + const handled = manager.onEvent(iframeEvent.authEvent); + return { status: handled ? "ACK" : "ERROR" }; + }, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER); + this.eventManagers[auth2._key()] = { manager }; + this.iframes[auth2._key()] = iframe; + return manager; + } + _isIframeWebStorageSupported(auth2, cb2) { + const iframe = this.iframes[auth2._key()]; + iframe.send(WEB_STORAGE_SUPPORT_KEY, { type: WEB_STORAGE_SUPPORT_KEY }, (result) => { + var _a2; + const isSupported = (_a2 = result === null || result === void 0 ? void 0 : result[0]) === null || _a2 === void 0 ? void 0 : _a2[WEB_STORAGE_SUPPORT_KEY]; + if (isSupported !== void 0) { + cb2(!!isSupported); + } + _fail(auth2, "internal-error"); + }, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER); + } + _originValidation(auth2) { + const key = auth2._key(); + if (!this.originValidationPromises[key]) { + this.originValidationPromises[key] = _validateOrigin(auth2); + } + return this.originValidationPromises[key]; + } + get _shouldInitProactively() { + return _isMobileBrowser() || _isSafari() || _isIOS(); + } +} +const browserPopupRedirectResolver = BrowserPopupRedirectResolver; +var name$1 = "@firebase/auth"; +var version$1 = "0.22.0"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthInterop { + constructor(auth2) { + this.auth = auth2; + this.internalListeners = /* @__PURE__ */ new Map(); + } + getUid() { + var _a2; + this.assertAuthConfigured(); + return ((_a2 = this.auth.currentUser) === null || _a2 === void 0 ? void 0 : _a2.uid) || null; + } + async getToken(forceRefresh) { + this.assertAuthConfigured(); + await this.auth._initializationPromise; + if (!this.auth.currentUser) { + return null; + } + const accessToken = await this.auth.currentUser.getIdToken(forceRefresh); + return { accessToken }; + } + addAuthTokenListener(listener) { + this.assertAuthConfigured(); + if (this.internalListeners.has(listener)) { + return; + } + const unsubscribe = this.auth.onIdTokenChanged((user) => { + listener((user === null || user === void 0 ? void 0 : user.stsTokenManager.accessToken) || null); + }); + this.internalListeners.set(listener, unsubscribe); + this.updateProactiveRefresh(); + } + removeAuthTokenListener(listener) { + this.assertAuthConfigured(); + const unsubscribe = this.internalListeners.get(listener); + if (!unsubscribe) { + return; + } + this.internalListeners.delete(listener); + unsubscribe(); + this.updateProactiveRefresh(); + } + assertAuthConfigured() { + _assert(this.auth._initializationPromise, "dependent-sdk-initialized-before-auth"); + } + updateProactiveRefresh() { + if (this.internalListeners.size > 0) { + this.auth._startProactiveRefresh(); + } else { + this.auth._stopProactiveRefresh(); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getVersionForPlatform(clientPlatform) { + switch (clientPlatform) { + case "Node": + return "node"; + case "ReactNative": + return "rn"; + case "Worker": + return "webworker"; + case "Cordova": + return "cordova"; + default: + return void 0; + } +} +function registerAuth(clientPlatform) { + _registerComponent(new Component("auth", (container, { options: deps }) => { + const app2 = container.getProvider("app").getImmediate(); + const heartbeatServiceProvider = container.getProvider("heartbeat"); + const { apiKey, authDomain } = app2.options; + return ((app3, heartbeatServiceProvider2) => { + _assert(apiKey && !apiKey.includes(":"), "invalid-api-key", { appName: app3.name }); + _assert(!(authDomain === null || authDomain === void 0 ? void 0 : authDomain.includes(":")), "argument-error", { + appName: app3.name + }); + const config = { + apiKey, + authDomain, + clientPlatform, + apiHost: "identitytoolkit.googleapis.com", + tokenApiHost: "securetoken.googleapis.com", + apiScheme: "https", + sdkClientVersion: _getClientVersion(clientPlatform) + }; + const authInstance = new AuthImpl(app3, heartbeatServiceProvider2, config); + _initializeAuthInstance(authInstance, deps); + return authInstance; + })(app2, heartbeatServiceProvider); + }, "PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((container, _instanceIdentifier, _instance) => { + const authInternalProvider = container.getProvider("auth-internal"); + authInternalProvider.initialize(); + })); + _registerComponent(new Component("auth-internal", (container) => { + const auth2 = _castAuth(container.getProvider("auth").getImmediate()); + return ((auth3) => new AuthInterop(auth3))(auth2); + }, "PRIVATE").setInstantiationMode("EXPLICIT")); + registerVersion(name$1, version$1, getVersionForPlatform(clientPlatform)); + registerVersion(name$1, version$1, "esm2017"); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ID_TOKEN_MAX_AGE = 5 * 60; +const authIdTokenMaxAge = getExperimentalSetting("authIdTokenMaxAge") || DEFAULT_ID_TOKEN_MAX_AGE; +let lastPostedIdToken = null; +const mintCookieFactory = (url) => async (user) => { + const idTokenResult = user && await user.getIdTokenResult(); + const idTokenAge = idTokenResult && (new Date().getTime() - Date.parse(idTokenResult.issuedAtTime)) / 1e3; + if (idTokenAge && idTokenAge > authIdTokenMaxAge) { + return; + } + const idToken = idTokenResult === null || idTokenResult === void 0 ? void 0 : idTokenResult.token; + if (lastPostedIdToken === idToken) { + return; + } + lastPostedIdToken = idToken; + await fetch(url, { + method: idToken ? "POST" : "DELETE", + headers: idToken ? { + "Authorization": `Bearer ${idToken}` + } : {} + }); +}; +function getAuth(app2 = getApp()) { + const provider2 = _getProvider(app2, "auth"); + if (provider2.isInitialized()) { + return provider2.getImmediate(); + } + const auth2 = initializeAuth(app2, { + popupRedirectResolver: browserPopupRedirectResolver, + persistence: [ + indexedDBLocalPersistence, + browserLocalPersistence, + browserSessionPersistence + ] + }); + const authTokenSyncUrl = getExperimentalSetting("authTokenSyncURL"); + if (authTokenSyncUrl) { + const mintCookie = mintCookieFactory(authTokenSyncUrl); + beforeAuthStateChanged(auth2, mintCookie, () => mintCookie(auth2.currentUser)); + onIdTokenChanged(auth2, (user) => mintCookie(user)); + } + const authEmulatorHost = getDefaultEmulatorHost("auth"); + if (authEmulatorHost) { + connectAuthEmulator(auth2, `http://${authEmulatorHost}`); + } + return auth2; +} +registerAuth("Browser"); +function mistake(navigateTo2) { + const bug = document.createElement("div"); + bug.innerHTML = `

+ `; + const checkIn = sectionLogin.querySelector(".bottomTextLogin"); + checkIn.addEventListener("click", () => { + navigateTo2("/register"); + }); + const formLogin = sectionLogin.querySelector(".formInteraction"); + formLogin.addEventListener("submit", (e) => { + e.preventDefault(); + const email = sectionLogin.querySelector(".inputEmail").value; + const password = sectionLogin.querySelector(".inputPassword").value; + signIn(email, password).then(() => { + navigateTo2("/emprende"); + }).catch((err) => { + sectionLogin.querySelector(".note1").innerHTML = `${err.message}`; + }); + }); + return sectionLogin; +} +function create(navigateTo2) { + const sectionCreate = document.createElement("div"); + sectionCreate.classList.add("creat"); + sectionCreate.innerHTML = ` + +
+

Crear cuenta

+ + + + + + +
+ +
+ `; + const logIn = sectionCreate.querySelector(".bottomText"); + logIn.addEventListener("click", () => { + navigateTo2("/login"); + }); + const form = sectionCreate.querySelector(".formCreateAccount"); + form.addEventListener("submit", (e) => { + e.preventDefault(); + const email = sectionCreate.querySelector(".card1").value; + const password = sectionCreate.querySelector(".card2").value; + createUser(email, password).then(() => { + navigateTo2("/emprende"); + }).catch((err) => { + sectionCreate.querySelector(".alerta").innerHTML = `${err.message}`; + }); + }); + return sectionCreate; +} +const root = document.getElementById("root"); +root.append(init()); +const routes = [ + { path: "/", component: init }, + { path: "/login", component: login }, + { path: "/register", component: create }, + { path: "/error", component: mistake }, + { path: "/emprende", component: home } +]; +function navigateTo(hash) { + const route = routes.find((routeFind) => routeFind.path === hash); + if (route && route.component) { + window.history.pushState({}, route.path, window.location.origin + route.path); + if (root.firstChild) { + root.removeChild(root.firstChild); + } + root.append(route.component(navigateTo)); + } else { + navigateTo("/error"); + } +} +onAuthStateChanged(auth, (user) => { + if (user) { + navigateTo("/emprende"); + } else if (window.location.pathname === "/emprende" && user === null) { + navigateTo(); + } else { + navigateTo(window.location.pathname); + } +}); diff --git a/dist/assets/index.399e54be.js b/dist/assets/index.399e54be.js new file mode 100644 index 00000000..839bf589 --- /dev/null +++ b/dist/assets/index.399e54be.js @@ -0,0 +1,17991 @@ +(function polyfill() { + const relList = document.createElement("link").relList; + if (relList && relList.supports && relList.supports("modulepreload")) { + return; + } + for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { + processPreload(link); + } + new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node of mutation.addedNodes) { + if (node.tagName === "LINK" && node.rel === "modulepreload") + processPreload(node); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(script) { + const fetchOpts = {}; + if (script.integrity) + fetchOpts.integrity = script.integrity; + if (script.referrerpolicy) + fetchOpts.referrerPolicy = script.referrerpolicy; + if (script.crossorigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (script.crossorigin === "anonymous") + fetchOpts.credentials = "omit"; + else + fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + function processPreload(link) { + if (link.ep) + return; + link.ep = true; + const fetchOpts = getFetchOpts(link); + fetch(link.href, fetchOpts); + } +})(); +const style = ""; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const stringToByteArray$1 = function(str) { + const out = []; + let p2 = 0; + for (let i = 0; i < str.length; i++) { + let c = str.charCodeAt(i); + if (c < 128) { + out[p2++] = c; + } else if (c < 2048) { + out[p2++] = c >> 6 | 192; + out[p2++] = c & 63 | 128; + } else if ((c & 64512) === 55296 && i + 1 < str.length && (str.charCodeAt(i + 1) & 64512) === 56320) { + c = 65536 + ((c & 1023) << 10) + (str.charCodeAt(++i) & 1023); + out[p2++] = c >> 18 | 240; + out[p2++] = c >> 12 & 63 | 128; + out[p2++] = c >> 6 & 63 | 128; + out[p2++] = c & 63 | 128; + } else { + out[p2++] = c >> 12 | 224; + out[p2++] = c >> 6 & 63 | 128; + out[p2++] = c & 63 | 128; + } + } + return out; +}; +const byteArrayToString = function(bytes) { + const out = []; + let pos = 0, c = 0; + while (pos < bytes.length) { + const c1 = bytes[pos++]; + if (c1 < 128) { + out[c++] = String.fromCharCode(c1); + } else if (c1 > 191 && c1 < 224) { + const c2 = bytes[pos++]; + out[c++] = String.fromCharCode((c1 & 31) << 6 | c2 & 63); + } else if (c1 > 239 && c1 < 365) { + const c2 = bytes[pos++]; + const c3 = bytes[pos++]; + const c4 = bytes[pos++]; + const u = ((c1 & 7) << 18 | (c2 & 63) << 12 | (c3 & 63) << 6 | c4 & 63) - 65536; + out[c++] = String.fromCharCode(55296 + (u >> 10)); + out[c++] = String.fromCharCode(56320 + (u & 1023)); + } else { + const c2 = bytes[pos++]; + const c3 = bytes[pos++]; + out[c++] = String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63); + } + } + return out.join(""); +}; +const base64 = { + 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: typeof atob === "function", + encodeByteArray(input, webSafe) { + if (!Array.isArray(input)) { + throw Error("encodeByteArray takes an array as a parameter"); + } + this.init_(); + const byteToCharMap = webSafe ? this.byteToCharMapWebSafe_ : this.byteToCharMap_; + const output = []; + for (let i = 0; i < input.length; i += 3) { + const byte1 = input[i]; + const haveByte2 = i + 1 < input.length; + const byte2 = haveByte2 ? input[i + 1] : 0; + const haveByte3 = i + 2 < input.length; + const byte3 = haveByte3 ? input[i + 2] : 0; + const outByte1 = byte1 >> 2; + const outByte2 = (byte1 & 3) << 4 | byte2 >> 4; + let outByte3 = (byte2 & 15) << 2 | byte3 >> 6; + let outByte4 = byte3 & 63; + if (!haveByte3) { + outByte4 = 64; + if (!haveByte2) { + outByte3 = 64; + } + } + output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]); + } + return output.join(""); + }, + encodeString(input, webSafe) { + if (this.HAS_NATIVE_SUPPORT && !webSafe) { + return btoa(input); + } + return this.encodeByteArray(stringToByteArray$1(input), webSafe); + }, + decodeString(input, webSafe) { + if (this.HAS_NATIVE_SUPPORT && !webSafe) { + return atob(input); + } + return byteArrayToString(this.decodeStringToByteArray(input, webSafe)); + }, + decodeStringToByteArray(input, webSafe) { + this.init_(); + const charToByteMap = webSafe ? this.charToByteMapWebSafe_ : this.charToByteMap_; + const output = []; + for (let i = 0; i < input.length; ) { + const byte1 = charToByteMap[input.charAt(i++)]; + const haveByte2 = i < input.length; + const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0; + ++i; + const haveByte3 = i < input.length; + const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64; + ++i; + const haveByte4 = i < input.length; + const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64; + ++i; + if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) { + throw new DecodeBase64StringError(); + } + const outByte1 = byte1 << 2 | byte2 >> 4; + output.push(outByte1); + if (byte3 !== 64) { + const outByte2 = byte2 << 4 & 240 | byte3 >> 2; + output.push(outByte2); + if (byte4 !== 64) { + const outByte3 = byte3 << 6 & 192 | byte4; + output.push(outByte3); + } + } + } + return output; + }, + init_() { + if (!this.byteToCharMap_) { + this.byteToCharMap_ = {}; + this.charToByteMap_ = {}; + this.byteToCharMapWebSafe_ = {}; + this.charToByteMapWebSafe_ = {}; + for (let i = 0; i < this.ENCODED_VALS.length; i++) { + this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i); + this.charToByteMap_[this.byteToCharMap_[i]] = i; + this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i); + this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i; + if (i >= this.ENCODED_VALS_BASE.length) { + this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i; + this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i; + } + } + } + } +}; +class DecodeBase64StringError extends Error { + constructor() { + super(...arguments); + this.name = "DecodeBase64StringError"; + } +} +const base64Encode = function(str) { + const utf8Bytes = stringToByteArray$1(str); + return base64.encodeByteArray(utf8Bytes, true); +}; +const base64urlEncodeWithoutPadding = function(str) { + return base64Encode(str).replace(/\./g, ""); +}; +const base64Decode = function(str) { + try { + return base64.decodeString(str, true); + } catch (e) { + console.error("base64Decode failed: ", e); + } + return null; +}; +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getGlobal() { + if (typeof self !== "undefined") { + return self; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof global !== "undefined") { + return global; + } + throw new Error("Unable to locate global object."); +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__; +const getDefaultsFromEnvVariable = () => { + if (typeof process === "undefined" || typeof process.env === "undefined") { + return; + } + const defaultsJsonString = {}.__FIREBASE_DEFAULTS__; + if (defaultsJsonString) { + return JSON.parse(defaultsJsonString); + } +}; +const getDefaultsFromCookie = () => { + if (typeof document === "undefined") { + return; + } + let match; + try { + match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/); + } catch (e) { + return; + } + const decoded = match && base64Decode(match[1]); + return decoded && JSON.parse(decoded); +}; +const getDefaults = () => { + try { + return getDefaultsFromGlobal() || getDefaultsFromEnvVariable() || getDefaultsFromCookie(); + } catch (e) { + console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`); + return; + } +}; +const getDefaultEmulatorHost = (productName) => { + var _a2, _b; + return (_b = (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; +}; +const getDefaultEmulatorHostnameAndPort = (productName) => { + const host = getDefaultEmulatorHost(productName); + if (!host) { + return void 0; + } + const separatorIndex = host.lastIndexOf(":"); + if (separatorIndex <= 0 || separatorIndex + 1 === host.length) { + throw new Error(`Invalid host ${host} with no separate hostname and port!`); + } + const port = parseInt(host.substring(separatorIndex + 1), 10); + if (host[0] === "[") { + return [host.substring(1, separatorIndex - 1), port]; + } else { + return [host.substring(0, separatorIndex), port]; + } +}; +const getDefaultAppConfig = () => { + var _a2; + return (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2.config; +}; +const getExperimentalSetting = (name2) => { + var _a2; + return (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2[`_${name2}`]; +}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Deferred { + constructor() { + this.reject = () => { + }; + this.resolve = () => { + }; + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; + }); + } + wrapCallback(callback) { + return (error, value) => { + if (error) { + this.reject(error); + } else { + this.resolve(value); + } + if (typeof callback === "function") { + this.promise.catch(() => { + }); + if (callback.length === 1) { + callback(error); + } else { + callback(error, value); + } + } + }; + } +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createMockUserToken(token, projectId) { + if (token.uid) { + throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.'); + } + const header = { + alg: "none", + type: "JWT" + }; + const project = projectId || "demo-project"; + const iat = token.iat || 0; + const sub = token.sub || token.user_id; + if (!sub) { + throw new Error("mockUserToken must contain 'sub' or 'user_id' field!"); + } + const payload = Object.assign({ + iss: `https://securetoken.google.com/${project}`, + aud: project, + iat, + exp: iat + 3600, + auth_time: iat, + sub, + user_id: sub, + firebase: { + sign_in_provider: "custom", + identities: {} + } + }, token); + const signature = ""; + return [ + base64urlEncodeWithoutPadding(JSON.stringify(header)), + base64urlEncodeWithoutPadding(JSON.stringify(payload)), + signature + ].join("."); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getUA() { + if (typeof navigator !== "undefined" && typeof navigator["userAgent"] === "string") { + return navigator["userAgent"]; + } else { + return ""; + } +} +function isMobileCordova() { + return typeof window !== "undefined" && !!(window["cordova"] || window["phonegap"] || window["PhoneGap"]) && /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()); +} +function isBrowserExtension() { + const runtime = typeof chrome === "object" ? chrome.runtime : typeof browser === "object" ? browser.runtime : void 0; + return typeof runtime === "object" && runtime.id !== void 0; +} +function isReactNative() { + return typeof navigator === "object" && navigator["product"] === "ReactNative"; +} +function isIE() { + const ua2 = getUA(); + return ua2.indexOf("MSIE ") >= 0 || ua2.indexOf("Trident/") >= 0; +} +function isIndexedDBAvailable() { + try { + return typeof indexedDB === "object"; + } catch (e) { + return false; + } +} +function validateIndexedDBOpenable() { + return new Promise((resolve, reject) => { + try { + let preExist = true; + const DB_CHECK_NAME = "validate-browser-context-for-indexeddb-analytics-module"; + const request = self.indexedDB.open(DB_CHECK_NAME); + request.onsuccess = () => { + request.result.close(); + if (!preExist) { + self.indexedDB.deleteDatabase(DB_CHECK_NAME); + } + resolve(true); + }; + request.onupgradeneeded = () => { + preExist = false; + }; + request.onerror = () => { + var _a2; + reject(((_a2 = request.error) === null || _a2 === void 0 ? void 0 : _a2.message) || ""); + }; + } catch (error) { + reject(error); + } + }); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const ERROR_NAME = "FirebaseError"; +class FirebaseError extends Error { + constructor(code, message, customData) { + super(message); + this.code = code; + this.customData = customData; + this.name = ERROR_NAME; + Object.setPrototypeOf(this, FirebaseError.prototype); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, ErrorFactory.prototype.create); + } + } +} +class ErrorFactory { + constructor(service, serviceName, errors) { + this.service = service; + this.serviceName = serviceName; + this.errors = errors; + } + create(code, ...data) { + const customData = data[0] || {}; + const fullCode = `${this.service}/${code}`; + const template = this.errors[code]; + const message = template ? replaceTemplate(template, customData) : "Error"; + const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`; + const error = new FirebaseError(fullCode, fullMessage, customData); + return error; + } +} +function replaceTemplate(template, data) { + return template.replace(PATTERN, (_, key) => { + const value = data[key]; + return value != null ? String(value) : `<${key}?>`; + }); +} +const PATTERN = /\{\$([^}]+)}/g; +function isEmpty(obj) { + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + return false; + } + } + return true; +} +function deepEqual(a, b2) { + if (a === b2) { + return true; + } + const aKeys = Object.keys(a); + const bKeys = Object.keys(b2); + for (const k2 of aKeys) { + if (!bKeys.includes(k2)) { + return false; + } + const aProp = a[k2]; + const bProp = b2[k2]; + if (isObject(aProp) && isObject(bProp)) { + if (!deepEqual(aProp, bProp)) { + return false; + } + } else if (aProp !== bProp) { + return false; + } + } + for (const k2 of bKeys) { + if (!aKeys.includes(k2)) { + return false; + } + } + return true; +} +function isObject(thing) { + return thing !== null && typeof thing === "object"; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function querystring(querystringParams) { + const params = []; + for (const [key, value] of Object.entries(querystringParams)) { + if (Array.isArray(value)) { + value.forEach((arrayVal) => { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(arrayVal)); + }); + } else { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + } + } + return params.length ? "&" + params.join("&") : ""; +} +function querystringDecode(querystring2) { + const obj = {}; + const tokens = querystring2.replace(/^\?/, "").split("&"); + tokens.forEach((token) => { + if (token) { + const [key, value] = token.split("="); + obj[decodeURIComponent(key)] = decodeURIComponent(value); + } + }); + return obj; +} +function extractQuerystring(url) { + const queryStart = url.indexOf("?"); + if (!queryStart) { + return ""; + } + const fragmentStart = url.indexOf("#", queryStart); + return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : void 0); +} +function createSubscribe(executor, onNoObservers) { + const proxy = new ObserverProxy(executor, onNoObservers); + return proxy.subscribe.bind(proxy); +} +class ObserverProxy { + constructor(executor, onNoObservers) { + this.observers = []; + this.unsubscribes = []; + this.observerCount = 0; + this.task = Promise.resolve(); + this.finalized = false; + this.onNoObservers = onNoObservers; + this.task.then(() => { + executor(this); + }).catch((e) => { + this.error(e); + }); + } + next(value) { + this.forEachObserver((observer) => { + observer.next(value); + }); + } + error(error) { + this.forEachObserver((observer) => { + observer.error(error); + }); + this.close(error); + } + complete() { + this.forEachObserver((observer) => { + observer.complete(); + }); + this.close(); + } + subscribe(nextOrObserver, error, complete) { + let observer; + if (nextOrObserver === void 0 && error === void 0 && complete === void 0) { + throw new Error("Missing Observer."); + } + if (implementsAnyMethods(nextOrObserver, [ + "next", + "error", + "complete" + ])) { + observer = nextOrObserver; + } else { + observer = { + next: nextOrObserver, + error, + complete + }; + } + if (observer.next === void 0) { + observer.next = noop; + } + if (observer.error === void 0) { + observer.error = noop; + } + if (observer.complete === void 0) { + observer.complete = noop; + } + const unsub = this.unsubscribeOne.bind(this, this.observers.length); + if (this.finalized) { + this.task.then(() => { + try { + if (this.finalError) { + observer.error(this.finalError); + } else { + observer.complete(); + } + } catch (e) { + } + return; + }); + } + this.observers.push(observer); + return unsub; + } + unsubscribeOne(i) { + if (this.observers === void 0 || this.observers[i] === void 0) { + return; + } + delete this.observers[i]; + this.observerCount -= 1; + if (this.observerCount === 0 && this.onNoObservers !== void 0) { + this.onNoObservers(this); + } + } + forEachObserver(fn2) { + if (this.finalized) { + return; + } + for (let i = 0; i < this.observers.length; i++) { + this.sendOne(i, fn2); + } + } + sendOne(i, fn2) { + this.task.then(() => { + if (this.observers !== void 0 && this.observers[i] !== void 0) { + try { + fn2(this.observers[i]); + } catch (e) { + if (typeof console !== "undefined" && console.error) { + console.error(e); + } + } + } + }); + } + close(err) { + if (this.finalized) { + return; + } + this.finalized = true; + if (err !== void 0) { + this.finalError = err; + } + this.task.then(() => { + this.observers = void 0; + this.onNoObservers = void 0; + }); + } +} +function implementsAnyMethods(obj, methods) { + if (typeof obj !== "object" || obj === null) { + return false; + } + for (const method of methods) { + if (method in obj && typeof obj[method] === "function") { + return true; + } + } + return false; +} +function noop() { +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getModularInstance(service) { + if (service && service._delegate) { + return service._delegate; + } else { + return service; + } +} +class Component { + constructor(name2, instanceFactory, type) { + this.name = name2; + this.instanceFactory = instanceFactory; + this.type = type; + this.multipleInstances = false; + this.serviceProps = {}; + this.instantiationMode = "LAZY"; + this.onInstanceCreated = null; + } + setInstantiationMode(mode) { + this.instantiationMode = mode; + return this; + } + setMultipleInstances(multipleInstances) { + this.multipleInstances = multipleInstances; + return this; + } + setServiceProps(props) { + this.serviceProps = props; + return this; + } + setInstanceCreatedCallback(callback) { + this.onInstanceCreated = callback; + return this; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ENTRY_NAME$1 = "[DEFAULT]"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Provider { + constructor(name2, container) { + this.name = name2; + this.container = container; + this.component = null; + this.instances = /* @__PURE__ */ new Map(); + this.instancesDeferred = /* @__PURE__ */ new Map(); + this.instancesOptions = /* @__PURE__ */ new Map(); + this.onInitCallbacks = /* @__PURE__ */ new Map(); + } + get(identifier) { + const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier); + if (!this.instancesDeferred.has(normalizedIdentifier)) { + const deferred = new Deferred(); + this.instancesDeferred.set(normalizedIdentifier, deferred); + if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) { + try { + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + if (instance) { + deferred.resolve(instance); + } + } catch (e) { + } + } + } + return this.instancesDeferred.get(normalizedIdentifier).promise; + } + getImmediate(options) { + var _a2; + const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier); + const optional = (_a2 = options === null || options === void 0 ? void 0 : options.optional) !== null && _a2 !== void 0 ? _a2 : false; + if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) { + try { + return this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + } catch (e) { + if (optional) { + return null; + } else { + throw e; + } + } + } else { + if (optional) { + return null; + } else { + throw Error(`Service ${this.name} is not available`); + } + } + } + getComponent() { + return this.component; + } + setComponent(component) { + if (component.name !== this.name) { + throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`); + } + if (this.component) { + throw Error(`Component for ${this.name} has already been provided`); + } + this.component = component; + if (!this.shouldAutoInitialize()) { + return; + } + if (isComponentEager(component)) { + try { + this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME$1 }); + } catch (e) { + } + } + for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) { + const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier); + try { + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + instanceDeferred.resolve(instance); + } catch (e) { + } + } + } + clearInstance(identifier = DEFAULT_ENTRY_NAME$1) { + this.instancesDeferred.delete(identifier); + this.instancesOptions.delete(identifier); + this.instances.delete(identifier); + } + async delete() { + const services = Array.from(this.instances.values()); + await Promise.all([ + ...services.filter((service) => "INTERNAL" in service).map((service) => service.INTERNAL.delete()), + ...services.filter((service) => "_delete" in service).map((service) => service._delete()) + ]); + } + isComponentSet() { + return this.component != null; + } + isInitialized(identifier = DEFAULT_ENTRY_NAME$1) { + return this.instances.has(identifier); + } + getOptions(identifier = DEFAULT_ENTRY_NAME$1) { + return this.instancesOptions.get(identifier) || {}; + } + initialize(opts = {}) { + const { options = {} } = opts; + const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier); + if (this.isInitialized(normalizedIdentifier)) { + throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`); + } + if (!this.isComponentSet()) { + throw Error(`Component ${this.name} has not been registered yet`); + } + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier, + options + }); + for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) { + const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier); + if (normalizedIdentifier === normalizedDeferredIdentifier) { + instanceDeferred.resolve(instance); + } + } + return instance; + } + onInit(callback, identifier) { + var _a2; + const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier); + const existingCallbacks = (_a2 = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a2 !== void 0 ? _a2 : /* @__PURE__ */ new Set(); + existingCallbacks.add(callback); + this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks); + const existingInstance = this.instances.get(normalizedIdentifier); + if (existingInstance) { + callback(existingInstance, normalizedIdentifier); + } + return () => { + existingCallbacks.delete(callback); + }; + } + invokeOnInitCallbacks(instance, identifier) { + const callbacks = this.onInitCallbacks.get(identifier); + if (!callbacks) { + return; + } + for (const callback of callbacks) { + try { + callback(instance, identifier); + } catch (_a2) { + } + } + } + getOrInitializeService({ instanceIdentifier, options = {} }) { + let instance = this.instances.get(instanceIdentifier); + if (!instance && this.component) { + instance = this.component.instanceFactory(this.container, { + instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier), + options + }); + this.instances.set(instanceIdentifier, instance); + this.instancesOptions.set(instanceIdentifier, options); + this.invokeOnInitCallbacks(instance, instanceIdentifier); + if (this.component.onInstanceCreated) { + try { + this.component.onInstanceCreated(this.container, instanceIdentifier, instance); + } catch (_a2) { + } + } + } + return instance || null; + } + normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME$1) { + if (this.component) { + return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME$1; + } else { + return identifier; + } + } + shouldAutoInitialize() { + return !!this.component && this.component.instantiationMode !== "EXPLICIT"; + } +} +function normalizeIdentifierForFactory(identifier) { + return identifier === DEFAULT_ENTRY_NAME$1 ? void 0 : identifier; +} +function isComponentEager(component) { + return component.instantiationMode === "EAGER"; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ComponentContainer { + constructor(name2) { + this.name = name2; + this.providers = /* @__PURE__ */ new Map(); + } + addComponent(component) { + const provider2 = this.getProvider(component.name); + if (provider2.isComponentSet()) { + throw new Error(`Component ${component.name} has already been registered with ${this.name}`); + } + provider2.setComponent(component); + } + addOrOverwriteComponent(component) { + const provider2 = this.getProvider(component.name); + if (provider2.isComponentSet()) { + this.providers.delete(component.name); + } + this.addComponent(component); + } + getProvider(name2) { + if (this.providers.has(name2)) { + return this.providers.get(name2); + } + const provider2 = new Provider(name2, this); + this.providers.set(name2, provider2); + return provider2; + } + getProviders() { + return Array.from(this.providers.values()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var LogLevel; +(function(LogLevel2) { + LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG"; + LogLevel2[LogLevel2["VERBOSE"] = 1] = "VERBOSE"; + LogLevel2[LogLevel2["INFO"] = 2] = "INFO"; + LogLevel2[LogLevel2["WARN"] = 3] = "WARN"; + LogLevel2[LogLevel2["ERROR"] = 4] = "ERROR"; + LogLevel2[LogLevel2["SILENT"] = 5] = "SILENT"; +})(LogLevel || (LogLevel = {})); +const levelStringToEnum = { + "debug": LogLevel.DEBUG, + "verbose": LogLevel.VERBOSE, + "info": LogLevel.INFO, + "warn": LogLevel.WARN, + "error": LogLevel.ERROR, + "silent": LogLevel.SILENT +}; +const defaultLogLevel = LogLevel.INFO; +const ConsoleMethod = { + [LogLevel.DEBUG]: "log", + [LogLevel.VERBOSE]: "log", + [LogLevel.INFO]: "info", + [LogLevel.WARN]: "warn", + [LogLevel.ERROR]: "error" +}; +const defaultLogHandler = (instance, logType, ...args) => { + if (logType < instance.logLevel) { + return; + } + const now = new Date().toISOString(); + const method = ConsoleMethod[logType]; + if (method) { + console[method](`[${now}] ${instance.name}:`, ...args); + } else { + throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`); + } +}; +class Logger { + constructor(name2) { + this.name = name2; + this._logLevel = defaultLogLevel; + this._logHandler = defaultLogHandler; + this._userLogHandler = null; + } + get logLevel() { + return this._logLevel; + } + set logLevel(val) { + if (!(val in LogLevel)) { + throw new TypeError(`Invalid value "${val}" assigned to \`logLevel\``); + } + this._logLevel = val; + } + setLogLevel(val) { + this._logLevel = typeof val === "string" ? levelStringToEnum[val] : val; + } + get logHandler() { + return this._logHandler; + } + set logHandler(val) { + if (typeof val !== "function") { + throw new TypeError("Value assigned to `logHandler` must be a function"); + } + this._logHandler = val; + } + get userLogHandler() { + return this._userLogHandler; + } + set userLogHandler(val) { + this._userLogHandler = val; + } + debug(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args); + this._logHandler(this, LogLevel.DEBUG, ...args); + } + log(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.VERBOSE, ...args); + this._logHandler(this, LogLevel.VERBOSE, ...args); + } + info(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args); + this._logHandler(this, LogLevel.INFO, ...args); + } + warn(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args); + this._logHandler(this, LogLevel.WARN, ...args); + } + error(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args); + this._logHandler(this, LogLevel.ERROR, ...args); + } +} +const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c); +let idbProxyableTypes; +let cursorAdvanceMethods; +function getIdbProxyableTypes() { + return idbProxyableTypes || (idbProxyableTypes = [ + IDBDatabase, + IDBObjectStore, + IDBIndex, + IDBCursor, + IDBTransaction + ]); +} +function getCursorAdvanceMethods() { + return cursorAdvanceMethods || (cursorAdvanceMethods = [ + IDBCursor.prototype.advance, + IDBCursor.prototype.continue, + IDBCursor.prototype.continuePrimaryKey + ]); +} +const cursorRequestMap = /* @__PURE__ */ new WeakMap(); +const transactionDoneMap = /* @__PURE__ */ new WeakMap(); +const transactionStoreNamesMap = /* @__PURE__ */ new WeakMap(); +const transformCache = /* @__PURE__ */ new WeakMap(); +const reverseTransformCache = /* @__PURE__ */ new WeakMap(); +function promisifyRequest(request) { + const promise = new Promise((resolve, reject) => { + const unlisten = () => { + request.removeEventListener("success", success); + request.removeEventListener("error", error); + }; + const success = () => { + resolve(wrap(request.result)); + unlisten(); + }; + const error = () => { + reject(request.error); + unlisten(); + }; + request.addEventListener("success", success); + request.addEventListener("error", error); + }); + promise.then((value) => { + if (value instanceof IDBCursor) { + cursorRequestMap.set(value, request); + } + }).catch(() => { + }); + reverseTransformCache.set(promise, request); + return promise; +} +function cacheDonePromiseForTransaction(tx) { + if (transactionDoneMap.has(tx)) + return; + const done = new Promise((resolve, reject) => { + const unlisten = () => { + tx.removeEventListener("complete", complete); + tx.removeEventListener("error", error); + tx.removeEventListener("abort", error); + }; + const complete = () => { + resolve(); + unlisten(); + }; + const error = () => { + reject(tx.error || new DOMException("AbortError", "AbortError")); + unlisten(); + }; + tx.addEventListener("complete", complete); + tx.addEventListener("error", error); + tx.addEventListener("abort", error); + }); + transactionDoneMap.set(tx, done); +} +let idbProxyTraps = { + get(target, prop, receiver) { + if (target instanceof IDBTransaction) { + if (prop === "done") + return transactionDoneMap.get(target); + if (prop === "objectStoreNames") { + return target.objectStoreNames || transactionStoreNamesMap.get(target); + } + if (prop === "store") { + return receiver.objectStoreNames[1] ? void 0 : receiver.objectStore(receiver.objectStoreNames[0]); + } + } + return wrap(target[prop]); + }, + set(target, prop, value) { + target[prop] = value; + return true; + }, + has(target, prop) { + if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) { + return true; + } + return prop in target; + } +}; +function replaceTraps(callback) { + idbProxyTraps = callback(idbProxyTraps); +} +function wrapFunction(func) { + if (func === IDBDatabase.prototype.transaction && !("objectStoreNames" in IDBTransaction.prototype)) { + return function(storeNames, ...args) { + const tx = func.call(unwrap(this), storeNames, ...args); + transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]); + return wrap(tx); + }; + } + if (getCursorAdvanceMethods().includes(func)) { + return function(...args) { + func.apply(unwrap(this), args); + return wrap(cursorRequestMap.get(this)); + }; + } + return function(...args) { + return wrap(func.apply(unwrap(this), args)); + }; +} +function transformCachableValue(value) { + if (typeof value === "function") + return wrapFunction(value); + if (value instanceof IDBTransaction) + cacheDonePromiseForTransaction(value); + if (instanceOfAny(value, getIdbProxyableTypes())) + return new Proxy(value, idbProxyTraps); + return value; +} +function wrap(value) { + if (value instanceof IDBRequest) + return promisifyRequest(value); + if (transformCache.has(value)) + return transformCache.get(value); + const newValue = transformCachableValue(value); + if (newValue !== value) { + transformCache.set(value, newValue); + reverseTransformCache.set(newValue, value); + } + return newValue; +} +const unwrap = (value) => reverseTransformCache.get(value); +function openDB(name2, version2, { blocked, upgrade, blocking, terminated } = {}) { + const request = indexedDB.open(name2, version2); + const openPromise = wrap(request); + if (upgrade) { + request.addEventListener("upgradeneeded", (event) => { + upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction)); + }); + } + if (blocked) + request.addEventListener("blocked", () => blocked()); + openPromise.then((db2) => { + if (terminated) + db2.addEventListener("close", () => terminated()); + if (blocking) + db2.addEventListener("versionchange", () => blocking()); + }).catch(() => { + }); + return openPromise; +} +const readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"]; +const writeMethods = ["put", "add", "delete", "clear"]; +const cachedMethods = /* @__PURE__ */ new Map(); +function getMethod(target, prop) { + if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) { + return; + } + if (cachedMethods.get(prop)) + return cachedMethods.get(prop); + const targetFuncName = prop.replace(/FromIndex$/, ""); + const useIndex = prop !== targetFuncName; + const isWrite = writeMethods.includes(targetFuncName); + if (!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) { + return; + } + const method = async function(storeName, ...args) { + const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly"); + let target2 = tx.store; + if (useIndex) + target2 = target2.index(args.shift()); + return (await Promise.all([ + target2[targetFuncName](...args), + isWrite && tx.done + ]))[0]; + }; + cachedMethods.set(prop, method); + return method; +} +replaceTraps((oldTraps) => ({ + ...oldTraps, + get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver), + has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop) +})); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class PlatformLoggerServiceImpl { + constructor(container) { + this.container = container; + } + getPlatformInfoString() { + const providers = this.container.getProviders(); + return providers.map((provider2) => { + if (isVersionServiceProvider(provider2)) { + const service = provider2.getImmediate(); + return `${service.library}/${service.version}`; + } else { + return null; + } + }).filter((logString) => logString).join(" "); + } +} +function isVersionServiceProvider(provider2) { + const component = provider2.getComponent(); + return (component === null || component === void 0 ? void 0 : component.type) === "VERSION"; +} +const name$o = "@firebase/app"; +const version$1$1 = "0.9.7"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const logger = new Logger("@firebase/app"); +const name$n = "@firebase/app-compat"; +const name$m = "@firebase/analytics-compat"; +const name$l = "@firebase/analytics"; +const name$k = "@firebase/app-check-compat"; +const name$j = "@firebase/app-check"; +const name$i = "@firebase/auth"; +const name$h = "@firebase/auth-compat"; +const name$g = "@firebase/database"; +const name$f = "@firebase/database-compat"; +const name$e = "@firebase/functions"; +const name$d = "@firebase/functions-compat"; +const name$c = "@firebase/installations"; +const name$b = "@firebase/installations-compat"; +const name$a = "@firebase/messaging"; +const name$9 = "@firebase/messaging-compat"; +const name$8 = "@firebase/performance"; +const name$7 = "@firebase/performance-compat"; +const name$6 = "@firebase/remote-config"; +const name$5 = "@firebase/remote-config-compat"; +const name$4 = "@firebase/storage"; +const name$3 = "@firebase/storage-compat"; +const name$2 = "@firebase/firestore"; +const name$1$1 = "@firebase/firestore-compat"; +const name$p = "firebase"; +const version$2 = "9.19.1"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ENTRY_NAME = "[DEFAULT]"; +const PLATFORM_LOG_STRING = { + [name$o]: "fire-core", + [name$n]: "fire-core-compat", + [name$l]: "fire-analytics", + [name$m]: "fire-analytics-compat", + [name$j]: "fire-app-check", + [name$k]: "fire-app-check-compat", + [name$i]: "fire-auth", + [name$h]: "fire-auth-compat", + [name$g]: "fire-rtdb", + [name$f]: "fire-rtdb-compat", + [name$e]: "fire-fn", + [name$d]: "fire-fn-compat", + [name$c]: "fire-iid", + [name$b]: "fire-iid-compat", + [name$a]: "fire-fcm", + [name$9]: "fire-fcm-compat", + [name$8]: "fire-perf", + [name$7]: "fire-perf-compat", + [name$6]: "fire-rc", + [name$5]: "fire-rc-compat", + [name$4]: "fire-gcs", + [name$3]: "fire-gcs-compat", + [name$2]: "fire-fst", + [name$1$1]: "fire-fst-compat", + "fire-js": "fire-js", + [name$p]: "fire-js-all" +}; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _apps = /* @__PURE__ */ new Map(); +const _components = /* @__PURE__ */ new Map(); +function _addComponent(app2, component) { + try { + app2.container.addComponent(component); + } catch (e) { + logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app2.name}`, e); + } +} +function _registerComponent(component) { + const componentName = component.name; + if (_components.has(componentName)) { + logger.debug(`There were multiple attempts to register component ${componentName}.`); + return false; + } + _components.set(componentName, component); + for (const app2 of _apps.values()) { + _addComponent(app2, component); + } + return true; +} +function _getProvider(app2, name2) { + const heartbeatController = app2.container.getProvider("heartbeat").getImmediate({ optional: true }); + if (heartbeatController) { + void heartbeatController.triggerHeartbeat(); + } + return app2.container.getProvider(name2); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const ERRORS = { + ["no-app"]: "No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()", + ["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", + ["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}." +}; +const ERROR_FACTORY = new ErrorFactory("app", "Firebase", ERRORS); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FirebaseAppImpl { + constructor(options, config, container) { + this._isDeleted = false; + this._options = Object.assign({}, options); + this._config = Object.assign({}, config); + this._name = config.name; + this._automaticDataCollectionEnabled = config.automaticDataCollectionEnabled; + this._container = container; + this.container.addComponent(new Component("app", () => this, "PUBLIC")); + } + get automaticDataCollectionEnabled() { + this.checkDestroyed(); + return this._automaticDataCollectionEnabled; + } + set automaticDataCollectionEnabled(val) { + this.checkDestroyed(); + this._automaticDataCollectionEnabled = val; + } + get name() { + this.checkDestroyed(); + return this._name; + } + get options() { + this.checkDestroyed(); + return this._options; + } + get config() { + this.checkDestroyed(); + return this._config; + } + get container() { + return this._container; + } + get isDeleted() { + return this._isDeleted; + } + set isDeleted(val) { + this._isDeleted = val; + } + checkDestroyed() { + if (this.isDeleted) { + throw ERROR_FACTORY.create("app-deleted", { appName: this._name }); + } + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const SDK_VERSION = version$2; +function initializeApp(_options, rawConfig = {}) { + let options = _options; + if (typeof rawConfig !== "object") { + const name3 = rawConfig; + rawConfig = { name: name3 }; + } + const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig); + const name2 = config.name; + if (typeof name2 !== "string" || !name2) { + throw ERROR_FACTORY.create("bad-app-name", { + appName: String(name2) + }); + } + options || (options = getDefaultAppConfig()); + if (!options) { + throw ERROR_FACTORY.create("no-options"); + } + const existingApp = _apps.get(name2); + if (existingApp) { + if (deepEqual(options, existingApp.options) && deepEqual(config, existingApp.config)) { + return existingApp; + } else { + throw ERROR_FACTORY.create("duplicate-app", { appName: name2 }); + } + } + const container = new ComponentContainer(name2); + for (const component of _components.values()) { + container.addComponent(component); + } + const newApp = new FirebaseAppImpl(options, config, container); + _apps.set(name2, newApp); + return newApp; +} +function getApp(name2 = DEFAULT_ENTRY_NAME) { + const app2 = _apps.get(name2); + if (!app2 && name2 === DEFAULT_ENTRY_NAME) { + return initializeApp(); + } + if (!app2) { + throw ERROR_FACTORY.create("no-app", { appName: name2 }); + } + return app2; +} +function registerVersion(libraryKeyOrName, version2, variant) { + var _a2; + let library = (_a2 = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a2 !== void 0 ? _a2 : libraryKeyOrName; + if (variant) { + library += `-${variant}`; + } + const libraryMismatch = library.match(/\s|\//); + const versionMismatch = version2.match(/\s|\//); + if (libraryMismatch || versionMismatch) { + const warning = [ + `Unable to register library "${library}" with version "${version2}":` + ]; + if (libraryMismatch) { + warning.push(`library name "${library}" contains illegal characters (whitespace or "/")`); + } + if (libraryMismatch && versionMismatch) { + warning.push("and"); + } + if (versionMismatch) { + warning.push(`version name "${version2}" contains illegal characters (whitespace or "/")`); + } + logger.warn(warning.join(" ")); + return; + } + _registerComponent(new Component(`${library}-version`, () => ({ library, version: version2 }), "VERSION")); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DB_NAME$1 = "firebase-heartbeat-database"; +const DB_VERSION$1 = 1; +const STORE_NAME = "firebase-heartbeat-store"; +let dbPromise = null; +function getDbPromise() { + if (!dbPromise) { + dbPromise = openDB(DB_NAME$1, DB_VERSION$1, { + upgrade: (db2, oldVersion) => { + switch (oldVersion) { + case 0: + db2.createObjectStore(STORE_NAME); + } + } + }).catch((e) => { + throw ERROR_FACTORY.create("idb-open", { + originalErrorMessage: e.message + }); + }); + } + return dbPromise; +} +async function readHeartbeatsFromIndexedDB(app2) { + try { + const db2 = await getDbPromise(); + return db2.transaction(STORE_NAME).objectStore(STORE_NAME).get(computeKey(app2)); + } catch (e) { + if (e instanceof FirebaseError) { + logger.warn(e.message); + } else { + const idbGetError = ERROR_FACTORY.create("idb-get", { + originalErrorMessage: e === null || e === void 0 ? void 0 : e.message + }); + logger.warn(idbGetError.message); + } + } +} +async function writeHeartbeatsToIndexedDB(app2, heartbeatObject) { + try { + const db2 = await getDbPromise(); + const tx = db2.transaction(STORE_NAME, "readwrite"); + const objectStore = tx.objectStore(STORE_NAME); + await objectStore.put(heartbeatObject, computeKey(app2)); + return tx.done; + } catch (e) { + if (e instanceof FirebaseError) { + logger.warn(e.message); + } else { + const idbGetError = ERROR_FACTORY.create("idb-set", { + originalErrorMessage: e === null || e === void 0 ? void 0 : e.message + }); + logger.warn(idbGetError.message); + } + } +} +function computeKey(app2) { + return `${app2.name}!${app2.options.appId}`; +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const MAX_HEADER_BYTES = 1024; +const STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1e3; +class HeartbeatServiceImpl { + constructor(container) { + this.container = container; + this._heartbeatsCache = null; + const app2 = this.container.getProvider("app").getImmediate(); + this._storage = new HeartbeatStorageImpl(app2); + this._heartbeatsCachePromise = this._storage.read().then((result) => { + this._heartbeatsCache = result; + return result; + }); + } + async triggerHeartbeat() { + const platformLogger = this.container.getProvider("platform-logger").getImmediate(); + const agent = platformLogger.getPlatformInfoString(); + const date = getUTCDateString(); + if (this._heartbeatsCache === null) { + this._heartbeatsCache = await this._heartbeatsCachePromise; + } + if (this._heartbeatsCache.lastSentHeartbeatDate === date || this._heartbeatsCache.heartbeats.some((singleDateHeartbeat) => singleDateHeartbeat.date === date)) { + return; + } else { + this._heartbeatsCache.heartbeats.push({ date, agent }); + } + this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter((singleDateHeartbeat) => { + const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf(); + const now = Date.now(); + return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS; + }); + return this._storage.overwrite(this._heartbeatsCache); + } + async getHeartbeatsHeader() { + if (this._heartbeatsCache === null) { + await this._heartbeatsCachePromise; + } + if (this._heartbeatsCache === null || this._heartbeatsCache.heartbeats.length === 0) { + return ""; + } + const date = getUTCDateString(); + const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats); + const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })); + this._heartbeatsCache.lastSentHeartbeatDate = date; + if (unsentEntries.length > 0) { + this._heartbeatsCache.heartbeats = unsentEntries; + await this._storage.overwrite(this._heartbeatsCache); + } else { + this._heartbeatsCache.heartbeats = []; + void this._storage.overwrite(this._heartbeatsCache); + } + return headerString; + } +} +function getUTCDateString() { + const today = new Date(); + return today.toISOString().substring(0, 10); +} +function extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) { + const heartbeatsToSend = []; + let unsentEntries = heartbeatsCache.slice(); + for (const singleDateHeartbeat of heartbeatsCache) { + const heartbeatEntry = heartbeatsToSend.find((hb2) => hb2.agent === singleDateHeartbeat.agent); + if (!heartbeatEntry) { + heartbeatsToSend.push({ + agent: singleDateHeartbeat.agent, + dates: [singleDateHeartbeat.date] + }); + if (countBytes(heartbeatsToSend) > maxSize) { + heartbeatsToSend.pop(); + break; + } + } else { + heartbeatEntry.dates.push(singleDateHeartbeat.date); + if (countBytes(heartbeatsToSend) > maxSize) { + heartbeatEntry.dates.pop(); + break; + } + } + unsentEntries = unsentEntries.slice(1); + } + return { + heartbeatsToSend, + unsentEntries + }; +} +class HeartbeatStorageImpl { + constructor(app2) { + this.app = app2; + this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck(); + } + async runIndexedDBEnvironmentCheck() { + if (!isIndexedDBAvailable()) { + return false; + } else { + return validateIndexedDBOpenable().then(() => true).catch(() => false); + } + } + async read() { + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return { heartbeats: [] }; + } else { + const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app); + return idbHeartbeatObject || { heartbeats: [] }; + } + } + async overwrite(heartbeatsObject) { + var _a2; + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return; + } else { + const existingHeartbeatsObject = await this.read(); + return writeHeartbeatsToIndexedDB(this.app, { + lastSentHeartbeatDate: (_a2 = heartbeatsObject.lastSentHeartbeatDate) !== null && _a2 !== void 0 ? _a2 : existingHeartbeatsObject.lastSentHeartbeatDate, + heartbeats: heartbeatsObject.heartbeats + }); + } + } + async add(heartbeatsObject) { + var _a2; + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return; + } else { + const existingHeartbeatsObject = await this.read(); + return writeHeartbeatsToIndexedDB(this.app, { + lastSentHeartbeatDate: (_a2 = heartbeatsObject.lastSentHeartbeatDate) !== null && _a2 !== void 0 ? _a2 : existingHeartbeatsObject.lastSentHeartbeatDate, + heartbeats: [ + ...existingHeartbeatsObject.heartbeats, + ...heartbeatsObject.heartbeats + ] + }); + } + } +} +function countBytes(heartbeatsCache) { + return base64urlEncodeWithoutPadding( + JSON.stringify({ version: 2, heartbeats: heartbeatsCache }) + ).length; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function registerCoreComponents(variant) { + _registerComponent(new Component("platform-logger", (container) => new PlatformLoggerServiceImpl(container), "PRIVATE")); + _registerComponent(new Component("heartbeat", (container) => new HeartbeatServiceImpl(container), "PRIVATE")); + registerVersion(name$o, version$1$1, variant); + registerVersion(name$o, version$1$1, "esm2017"); + registerVersion("fire-js", ""); +} +registerCoreComponents(""); +function __rest(s, e) { + var t2 = {}; + for (var p2 in s) + if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0) + t2[p2] = s[p2]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) { + if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i])) + t2[p2[i]] = s[p2[i]]; + } + return t2; +} +function _prodErrorMap() { + return { + ["dependent-sdk-initialized-before-auth"]: "Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK." + }; +} +const prodErrorMap = _prodErrorMap; +const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory("auth", "Firebase", _prodErrorMap()); +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const logClient = new Logger("@firebase/auth"); +function _logError(msg, ...args) { + if (logClient.logLevel <= LogLevel.ERROR) { + logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _fail(authOrCode, ...rest) { + throw createErrorInternal(authOrCode, ...rest); +} +function _createError(authOrCode, ...rest) { + return createErrorInternal(authOrCode, ...rest); +} +function _errorWithCustomMessage(auth2, code, message) { + const errorMap = Object.assign(Object.assign({}, prodErrorMap()), { [code]: message }); + const factory = new ErrorFactory("auth", "Firebase", errorMap); + return factory.create(code, { + appName: auth2.name + }); +} +function _assertInstanceOf(auth2, object, instance) { + const constructorInstance = instance; + if (!(object instanceof constructorInstance)) { + if (constructorInstance.name !== object.constructor.name) { + _fail(auth2, "argument-error"); + } + throw _errorWithCustomMessage(auth2, "argument-error", `Type of ${object.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`); + } +} +function createErrorInternal(authOrCode, ...rest) { + if (typeof authOrCode !== "string") { + const code = rest[0]; + const fullParams = [...rest.slice(1)]; + if (fullParams[0]) { + fullParams[0].appName = authOrCode.name; + } + return authOrCode._errorFactory.create(code, ...fullParams); + } + return _DEFAULT_AUTH_ERROR_FACTORY.create(authOrCode, ...rest); +} +function _assert(assertion, authOrCode, ...rest) { + if (!assertion) { + throw createErrorInternal(authOrCode, ...rest); + } +} +function debugFail(failure) { + const message = `INTERNAL ASSERTION FAILED: ` + failure; + _logError(message); + throw new Error(message); +} +function debugAssert(assertion, message) { + if (!assertion) { + debugFail(message); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const instanceCache = /* @__PURE__ */ new Map(); +function _getInstance(cls) { + debugAssert(cls instanceof Function, "Expected a class definition"); + let instance = instanceCache.get(cls); + if (instance) { + debugAssert(instance instanceof cls, "Instance stored in cache mismatched with class"); + return instance; + } + instance = new cls(); + instanceCache.set(cls, instance); + return instance; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function initializeAuth(app2, deps) { + const provider2 = _getProvider(app2, "auth"); + if (provider2.isInitialized()) { + const auth3 = provider2.getImmediate(); + const initialOptions = provider2.getOptions(); + if (deepEqual(initialOptions, deps !== null && deps !== void 0 ? deps : {})) { + return auth3; + } else { + _fail(auth3, "already-initialized"); + } + } + const auth2 = provider2.initialize({ options: deps }); + return auth2; +} +function _initializeAuthInstance(auth2, deps) { + const persistence = (deps === null || deps === void 0 ? void 0 : deps.persistence) || []; + const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance); + if (deps === null || deps === void 0 ? void 0 : deps.errorMap) { + auth2._updateErrorMap(deps.errorMap); + } + auth2._initializeWithPersistence(hierarchy, deps === null || deps === void 0 ? void 0 : deps.popupRedirectResolver); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getCurrentUrl() { + var _a2; + return typeof self !== "undefined" && ((_a2 = self.location) === null || _a2 === void 0 ? void 0 : _a2.href) || ""; +} +function _isHttpOrHttps() { + return _getCurrentScheme() === "http:" || _getCurrentScheme() === "https:"; +} +function _getCurrentScheme() { + var _a2; + return typeof self !== "undefined" && ((_a2 = self.location) === null || _a2 === void 0 ? void 0 : _a2.protocol) || null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _isOnline() { + if (typeof navigator !== "undefined" && navigator && "onLine" in navigator && typeof navigator.onLine === "boolean" && (_isHttpOrHttps() || isBrowserExtension() || "connection" in navigator)) { + return navigator.onLine; + } + return true; +} +function _getUserLanguage() { + if (typeof navigator === "undefined") { + return null; + } + const navigatorLanguage = navigator; + return navigatorLanguage.languages && navigatorLanguage.languages[0] || navigatorLanguage.language || null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Delay { + constructor(shortDelay, longDelay) { + this.shortDelay = shortDelay; + this.longDelay = longDelay; + debugAssert(longDelay > shortDelay, "Short delay should be less than long delay!"); + this.isMobile = isMobileCordova() || isReactNative(); + } + get() { + if (!_isOnline()) { + return Math.min(5e3, this.shortDelay); + } + return this.isMobile ? this.longDelay : this.shortDelay; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _emulatorUrl(config, path) { + debugAssert(config.emulator, "Emulator should always be set here"); + const { url } = config.emulator; + if (!path) { + return url; + } + return `${url}${path.startsWith("/") ? path.slice(1) : path}`; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FetchProvider { + static initialize(fetchImpl, headersImpl, responseImpl) { + this.fetchImpl = fetchImpl; + if (headersImpl) { + this.headersImpl = headersImpl; + } + if (responseImpl) { + this.responseImpl = responseImpl; + } + } + static fetch() { + if (this.fetchImpl) { + return this.fetchImpl; + } + if (typeof self !== "undefined" && "fetch" in self) { + return self.fetch; + } + debugFail("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } + static headers() { + if (this.headersImpl) { + return this.headersImpl; + } + if (typeof self !== "undefined" && "Headers" in self) { + return self.Headers; + } + debugFail("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } + static response() { + if (this.responseImpl) { + return this.responseImpl; + } + if (typeof self !== "undefined" && "Response" in self) { + return self.Response; + } + debugFail("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const SERVER_ERROR_MAP = { + ["CREDENTIAL_MISMATCH"]: "custom-token-mismatch", + ["MISSING_CUSTOM_TOKEN"]: "internal-error", + ["INVALID_IDENTIFIER"]: "invalid-email", + ["MISSING_CONTINUE_URI"]: "internal-error", + ["INVALID_PASSWORD"]: "wrong-password", + ["MISSING_PASSWORD"]: "missing-password", + ["EMAIL_EXISTS"]: "email-already-in-use", + ["PASSWORD_LOGIN_DISABLED"]: "operation-not-allowed", + ["INVALID_IDP_RESPONSE"]: "invalid-credential", + ["INVALID_PENDING_TOKEN"]: "invalid-credential", + ["FEDERATED_USER_ID_ALREADY_LINKED"]: "credential-already-in-use", + ["MISSING_REQ_TYPE"]: "internal-error", + ["EMAIL_NOT_FOUND"]: "user-not-found", + ["RESET_PASSWORD_EXCEED_LIMIT"]: "too-many-requests", + ["EXPIRED_OOB_CODE"]: "expired-action-code", + ["INVALID_OOB_CODE"]: "invalid-action-code", + ["MISSING_OOB_CODE"]: "internal-error", + ["CREDENTIAL_TOO_OLD_LOGIN_AGAIN"]: "requires-recent-login", + ["INVALID_ID_TOKEN"]: "invalid-user-token", + ["TOKEN_EXPIRED"]: "user-token-expired", + ["USER_NOT_FOUND"]: "user-token-expired", + ["TOO_MANY_ATTEMPTS_TRY_LATER"]: "too-many-requests", + ["INVALID_CODE"]: "invalid-verification-code", + ["INVALID_SESSION_INFO"]: "invalid-verification-id", + ["INVALID_TEMPORARY_PROOF"]: "invalid-credential", + ["MISSING_SESSION_INFO"]: "missing-verification-id", + ["SESSION_EXPIRED"]: "code-expired", + ["MISSING_ANDROID_PACKAGE_NAME"]: "missing-android-pkg-name", + ["UNAUTHORIZED_DOMAIN"]: "unauthorized-continue-uri", + ["INVALID_OAUTH_CLIENT_ID"]: "invalid-oauth-client-id", + ["ADMIN_ONLY_OPERATION"]: "admin-restricted-operation", + ["INVALID_MFA_PENDING_CREDENTIAL"]: "invalid-multi-factor-session", + ["MFA_ENROLLMENT_NOT_FOUND"]: "multi-factor-info-not-found", + ["MISSING_MFA_ENROLLMENT_ID"]: "missing-multi-factor-info", + ["MISSING_MFA_PENDING_CREDENTIAL"]: "missing-multi-factor-session", + ["SECOND_FACTOR_EXISTS"]: "second-factor-already-in-use", + ["SECOND_FACTOR_LIMIT_EXCEEDED"]: "maximum-second-factor-count-exceeded", + ["BLOCKING_FUNCTION_ERROR_RESPONSE"]: "internal-error" +}; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_API_TIMEOUT_MS = new Delay(3e4, 6e4); +function _addTidIfNecessary(auth2, request) { + if (auth2.tenantId && !request.tenantId) { + return Object.assign(Object.assign({}, request), { tenantId: auth2.tenantId }); + } + return request; +} +async function _performApiRequest(auth2, method, path, request, customErrorMap = {}) { + return _performFetchWithErrorHandling(auth2, customErrorMap, async () => { + let body = {}; + let params = {}; + if (request) { + if (method === "GET") { + params = request; + } else { + body = { + body: JSON.stringify(request) + }; + } + } + const query = querystring(Object.assign({ key: auth2.config.apiKey }, params)).slice(1); + const headers = await auth2._getAdditionalHeaders(); + headers["Content-Type"] = "application/json"; + if (auth2.languageCode) { + headers["X-Firebase-Locale"] = auth2.languageCode; + } + return FetchProvider.fetch()(_getFinalTarget(auth2, auth2.config.apiHost, path, query), Object.assign({ + method, + headers, + referrerPolicy: "no-referrer" + }, body)); + }); +} +async function _performFetchWithErrorHandling(auth2, customErrorMap, fetchFn) { + auth2._canInitEmulator = false; + const errorMap = Object.assign(Object.assign({}, SERVER_ERROR_MAP), customErrorMap); + try { + const networkTimeout = new NetworkTimeout(auth2); + const response = await Promise.race([ + fetchFn(), + networkTimeout.promise + ]); + networkTimeout.clearNetworkTimeout(); + const json = await response.json(); + if ("needConfirmation" in json) { + throw _makeTaggedError(auth2, "account-exists-with-different-credential", json); + } + if (response.ok && !("errorMessage" in json)) { + return json; + } else { + const errorMessage = response.ok ? json.errorMessage : json.error.message; + const [serverErrorCode, serverErrorMessage] = errorMessage.split(" : "); + if (serverErrorCode === "FEDERATED_USER_ID_ALREADY_LINKED") { + throw _makeTaggedError(auth2, "credential-already-in-use", json); + } else if (serverErrorCode === "EMAIL_EXISTS") { + throw _makeTaggedError(auth2, "email-already-in-use", json); + } else if (serverErrorCode === "USER_DISABLED") { + throw _makeTaggedError(auth2, "user-disabled", json); + } + const authError = errorMap[serverErrorCode] || serverErrorCode.toLowerCase().replace(/[_\s]+/g, "-"); + if (serverErrorMessage) { + throw _errorWithCustomMessage(auth2, authError, serverErrorMessage); + } else { + _fail(auth2, authError); + } + } + } catch (e) { + if (e instanceof FirebaseError) { + throw e; + } + _fail(auth2, "network-request-failed", { "message": String(e) }); + } +} +async function _performSignInRequest(auth2, method, path, request, customErrorMap = {}) { + const serverResponse = await _performApiRequest(auth2, method, path, request, customErrorMap); + if ("mfaPendingCredential" in serverResponse) { + _fail(auth2, "multi-factor-auth-required", { + _serverResponse: serverResponse + }); + } + return serverResponse; +} +function _getFinalTarget(auth2, host, path, query) { + const base = `${host}${path}?${query}`; + if (!auth2.config.emulator) { + return `${auth2.config.apiScheme}://${base}`; + } + return _emulatorUrl(auth2.config, base); +} +class NetworkTimeout { + constructor(auth2) { + this.auth = auth2; + this.timer = null; + this.promise = new Promise((_, reject) => { + this.timer = setTimeout(() => { + return reject(_createError(this.auth, "network-request-failed")); + }, DEFAULT_API_TIMEOUT_MS.get()); + }); + } + clearNetworkTimeout() { + clearTimeout(this.timer); + } +} +function _makeTaggedError(auth2, code, response) { + const errorParams = { + appName: auth2.name + }; + if (response.email) { + errorParams.email = response.email; + } + if (response.phoneNumber) { + errorParams.phoneNumber = response.phoneNumber; + } + const error = _createError(auth2, code, errorParams); + error.customData._tokenResponse = response; + return error; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function deleteAccount(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:delete", request); +} +async function getAccountInfo(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:lookup", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function utcTimestampToDateString(utcTimestamp) { + if (!utcTimestamp) { + return void 0; + } + try { + const date = new Date(Number(utcTimestamp)); + if (!isNaN(date.getTime())) { + return date.toUTCString(); + } + } catch (e) { + } + return void 0; +} +async function getIdTokenResult(user, forceRefresh = false) { + const userInternal = getModularInstance(user); + const token = await userInternal.getIdToken(forceRefresh); + const claims = _parseToken(token); + _assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error"); + const firebase = typeof claims.firebase === "object" ? claims.firebase : void 0; + const signInProvider = firebase === null || firebase === void 0 ? void 0 : firebase["sign_in_provider"]; + return { + claims, + token, + authTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.auth_time)), + issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)), + expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)), + signInProvider: signInProvider || null, + signInSecondFactor: (firebase === null || firebase === void 0 ? void 0 : firebase["sign_in_second_factor"]) || null + }; +} +function secondsStringToMilliseconds(seconds) { + return Number(seconds) * 1e3; +} +function _parseToken(token) { + const [algorithm, payload, signature] = token.split("."); + if (algorithm === void 0 || payload === void 0 || signature === void 0) { + _logError("JWT malformed, contained fewer than 3 sections"); + return null; + } + try { + const decoded = base64Decode(payload); + if (!decoded) { + _logError("Failed to decode base64 JWT payload"); + return null; + } + return JSON.parse(decoded); + } catch (e) { + _logError("Caught error parsing JWT payload as JSON", e === null || e === void 0 ? void 0 : e.toString()); + return null; + } +} +function _tokenExpiresIn(token) { + const parsedToken = _parseToken(token); + _assert(parsedToken, "internal-error"); + _assert(typeof parsedToken.exp !== "undefined", "internal-error"); + _assert(typeof parsedToken.iat !== "undefined", "internal-error"); + return Number(parsedToken.exp) - Number(parsedToken.iat); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _logoutIfInvalidated(user, promise, bypassAuthState = false) { + if (bypassAuthState) { + return promise; + } + try { + return await promise; + } catch (e) { + if (e instanceof FirebaseError && isUserInvalidated(e)) { + if (user.auth.currentUser === user) { + await user.auth.signOut(); + } + } + throw e; + } +} +function isUserInvalidated({ code }) { + return code === `auth/${"user-disabled"}` || code === `auth/${"user-token-expired"}`; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ProactiveRefresh { + constructor(user) { + this.user = user; + this.isRunning = false; + this.timerId = null; + this.errorBackoff = 3e4; + } + _start() { + if (this.isRunning) { + return; + } + this.isRunning = true; + this.schedule(); + } + _stop() { + if (!this.isRunning) { + return; + } + this.isRunning = false; + if (this.timerId !== null) { + clearTimeout(this.timerId); + } + } + getInterval(wasError) { + var _a2; + if (wasError) { + const interval = this.errorBackoff; + this.errorBackoff = Math.min(this.errorBackoff * 2, 96e4); + return interval; + } else { + this.errorBackoff = 3e4; + const expTime = (_a2 = this.user.stsTokenManager.expirationTime) !== null && _a2 !== void 0 ? _a2 : 0; + const interval = expTime - Date.now() - 3e5; + return Math.max(0, interval); + } + } + schedule(wasError = false) { + if (!this.isRunning) { + return; + } + const interval = this.getInterval(wasError); + this.timerId = setTimeout(async () => { + await this.iteration(); + }, interval); + } + async iteration() { + try { + await this.user.getIdToken(true); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) === `auth/${"network-request-failed"}`) { + this.schedule(true); + } + return; + } + this.schedule(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class UserMetadata { + constructor(createdAt, lastLoginAt) { + this.createdAt = createdAt; + this.lastLoginAt = lastLoginAt; + this._initializeTime(); + } + _initializeTime() { + this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt); + this.creationTime = utcTimestampToDateString(this.createdAt); + } + _copy(metadata) { + this.createdAt = metadata.createdAt; + this.lastLoginAt = metadata.lastLoginAt; + this._initializeTime(); + } + toJSON() { + return { + createdAt: this.createdAt, + lastLoginAt: this.lastLoginAt + }; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _reloadWithoutSaving(user) { + var _a2; + const auth2 = user.auth; + const idToken = await user.getIdToken(); + const response = await _logoutIfInvalidated(user, getAccountInfo(auth2, { idToken })); + _assert(response === null || response === void 0 ? void 0 : response.users.length, auth2, "internal-error"); + const coreAccount = response.users[0]; + user._notifyReloadListener(coreAccount); + const newProviderData = ((_a2 = coreAccount.providerUserInfo) === null || _a2 === void 0 ? void 0 : _a2.length) ? extractProviderData(coreAccount.providerUserInfo) : []; + const providerData = mergeProviderData(user.providerData, newProviderData); + const oldIsAnonymous = user.isAnonymous; + const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !(providerData === null || providerData === void 0 ? void 0 : providerData.length); + const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous; + const updates = { + uid: coreAccount.localId, + displayName: coreAccount.displayName || null, + photoURL: coreAccount.photoUrl || null, + email: coreAccount.email || null, + emailVerified: coreAccount.emailVerified || false, + phoneNumber: coreAccount.phoneNumber || null, + tenantId: coreAccount.tenantId || null, + providerData, + metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt), + isAnonymous + }; + Object.assign(user, updates); +} +async function reload(user) { + const userInternal = getModularInstance(user); + await _reloadWithoutSaving(userInternal); + await userInternal.auth._persistUserIfCurrent(userInternal); + userInternal.auth._notifyListenersIfCurrent(userInternal); +} +function mergeProviderData(original, newData) { + const deduped = original.filter((o) => !newData.some((n) => n.providerId === o.providerId)); + return [...deduped, ...newData]; +} +function extractProviderData(providers) { + return providers.map((_a2) => { + var { providerId } = _a2, provider2 = __rest(_a2, ["providerId"]); + return { + providerId, + uid: provider2.rawId || "", + displayName: provider2.displayName || null, + email: provider2.email || null, + phoneNumber: provider2.phoneNumber || null, + photoURL: provider2.photoUrl || null + }; + }); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function requestStsToken(auth2, refreshToken) { + const response = await _performFetchWithErrorHandling(auth2, {}, async () => { + const body = querystring({ + "grant_type": "refresh_token", + "refresh_token": refreshToken + }).slice(1); + const { tokenApiHost, apiKey } = auth2.config; + const url = _getFinalTarget(auth2, tokenApiHost, "/v1/token", `key=${apiKey}`); + const headers = await auth2._getAdditionalHeaders(); + headers["Content-Type"] = "application/x-www-form-urlencoded"; + return FetchProvider.fetch()(url, { + method: "POST", + headers, + body + }); + }); + return { + accessToken: response.access_token, + expiresIn: response.expires_in, + refreshToken: response.refresh_token + }; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class StsTokenManager { + constructor() { + this.refreshToken = null; + this.accessToken = null; + this.expirationTime = null; + } + get isExpired() { + return !this.expirationTime || Date.now() > this.expirationTime - 3e4; + } + updateFromServerResponse(response) { + _assert(response.idToken, "internal-error"); + _assert(typeof response.idToken !== "undefined", "internal-error"); + _assert(typeof response.refreshToken !== "undefined", "internal-error"); + const expiresIn = "expiresIn" in response && typeof response.expiresIn !== "undefined" ? Number(response.expiresIn) : _tokenExpiresIn(response.idToken); + this.updateTokensAndExpiration(response.idToken, response.refreshToken, expiresIn); + } + async getToken(auth2, forceRefresh = false) { + _assert(!this.accessToken || this.refreshToken, auth2, "user-token-expired"); + if (!forceRefresh && this.accessToken && !this.isExpired) { + return this.accessToken; + } + if (this.refreshToken) { + await this.refresh(auth2, this.refreshToken); + return this.accessToken; + } + return null; + } + clearRefreshToken() { + this.refreshToken = null; + } + async refresh(auth2, oldToken) { + const { accessToken, refreshToken, expiresIn } = await requestStsToken(auth2, oldToken); + this.updateTokensAndExpiration(accessToken, refreshToken, Number(expiresIn)); + } + updateTokensAndExpiration(accessToken, refreshToken, expiresInSec) { + this.refreshToken = refreshToken || null; + this.accessToken = accessToken || null; + this.expirationTime = Date.now() + expiresInSec * 1e3; + } + static fromJSON(appName, object) { + const { refreshToken, accessToken, expirationTime } = object; + const manager = new StsTokenManager(); + if (refreshToken) { + _assert(typeof refreshToken === "string", "internal-error", { + appName + }); + manager.refreshToken = refreshToken; + } + if (accessToken) { + _assert(typeof accessToken === "string", "internal-error", { + appName + }); + manager.accessToken = accessToken; + } + if (expirationTime) { + _assert(typeof expirationTime === "number", "internal-error", { + appName + }); + manager.expirationTime = expirationTime; + } + return manager; + } + toJSON() { + return { + refreshToken: this.refreshToken, + accessToken: this.accessToken, + expirationTime: this.expirationTime + }; + } + _assign(stsTokenManager) { + this.accessToken = stsTokenManager.accessToken; + this.refreshToken = stsTokenManager.refreshToken; + this.expirationTime = stsTokenManager.expirationTime; + } + _clone() { + return Object.assign(new StsTokenManager(), this.toJSON()); + } + _performRefresh() { + return debugFail("not implemented"); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function assertStringOrUndefined(assertion, appName) { + _assert(typeof assertion === "string" || typeof assertion === "undefined", "internal-error", { appName }); +} +class UserImpl { + constructor(_a2) { + var { uid, auth: auth2, stsTokenManager } = _a2, opt = __rest(_a2, ["uid", "auth", "stsTokenManager"]); + this.providerId = "firebase"; + this.proactiveRefresh = new ProactiveRefresh(this); + this.reloadUserInfo = null; + this.reloadListener = null; + this.uid = uid; + this.auth = auth2; + this.stsTokenManager = stsTokenManager; + this.accessToken = stsTokenManager.accessToken; + this.displayName = opt.displayName || null; + this.email = opt.email || null; + this.emailVerified = opt.emailVerified || false; + this.phoneNumber = opt.phoneNumber || null; + this.photoURL = opt.photoURL || null; + this.isAnonymous = opt.isAnonymous || false; + this.tenantId = opt.tenantId || null; + this.providerData = opt.providerData ? [...opt.providerData] : []; + this.metadata = new UserMetadata(opt.createdAt || void 0, opt.lastLoginAt || void 0); + } + async getIdToken(forceRefresh) { + const accessToken = await _logoutIfInvalidated(this, this.stsTokenManager.getToken(this.auth, forceRefresh)); + _assert(accessToken, this.auth, "internal-error"); + if (this.accessToken !== accessToken) { + this.accessToken = accessToken; + await this.auth._persistUserIfCurrent(this); + this.auth._notifyListenersIfCurrent(this); + } + return accessToken; + } + getIdTokenResult(forceRefresh) { + return getIdTokenResult(this, forceRefresh); + } + reload() { + return reload(this); + } + _assign(user) { + if (this === user) { + return; + } + _assert(this.uid === user.uid, this.auth, "internal-error"); + this.displayName = user.displayName; + this.photoURL = user.photoURL; + this.email = user.email; + this.emailVerified = user.emailVerified; + this.phoneNumber = user.phoneNumber; + this.isAnonymous = user.isAnonymous; + this.tenantId = user.tenantId; + this.providerData = user.providerData.map((userInfo) => Object.assign({}, userInfo)); + this.metadata._copy(user.metadata); + this.stsTokenManager._assign(user.stsTokenManager); + } + _clone(auth2) { + const newUser = new UserImpl(Object.assign(Object.assign({}, this), { auth: auth2, stsTokenManager: this.stsTokenManager._clone() })); + newUser.metadata._copy(this.metadata); + return newUser; + } + _onReload(callback) { + _assert(!this.reloadListener, this.auth, "internal-error"); + this.reloadListener = callback; + if (this.reloadUserInfo) { + this._notifyReloadListener(this.reloadUserInfo); + this.reloadUserInfo = null; + } + } + _notifyReloadListener(userInfo) { + if (this.reloadListener) { + this.reloadListener(userInfo); + } else { + this.reloadUserInfo = userInfo; + } + } + _startProactiveRefresh() { + this.proactiveRefresh._start(); + } + _stopProactiveRefresh() { + this.proactiveRefresh._stop(); + } + async _updateTokensIfNecessary(response, reload2 = false) { + let tokensRefreshed = false; + if (response.idToken && response.idToken !== this.stsTokenManager.accessToken) { + this.stsTokenManager.updateFromServerResponse(response); + tokensRefreshed = true; + } + if (reload2) { + await _reloadWithoutSaving(this); + } + await this.auth._persistUserIfCurrent(this); + if (tokensRefreshed) { + this.auth._notifyListenersIfCurrent(this); + } + } + async delete() { + const idToken = await this.getIdToken(); + await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken })); + this.stsTokenManager.clearRefreshToken(); + return 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((userInfo) => Object.assign({}, userInfo)), + 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(auth2, object) { + var _a2, _b, _c2, _d, _e2, _f, _g, _h2; + const displayName = (_a2 = object.displayName) !== null && _a2 !== void 0 ? _a2 : void 0; + const email = (_b = object.email) !== null && _b !== void 0 ? _b : void 0; + const phoneNumber = (_c2 = object.phoneNumber) !== null && _c2 !== void 0 ? _c2 : void 0; + const photoURL = (_d = object.photoURL) !== null && _d !== void 0 ? _d : void 0; + const tenantId = (_e2 = object.tenantId) !== null && _e2 !== void 0 ? _e2 : void 0; + const _redirectEventId = (_f = object._redirectEventId) !== null && _f !== void 0 ? _f : void 0; + const createdAt = (_g = object.createdAt) !== null && _g !== void 0 ? _g : void 0; + const lastLoginAt = (_h2 = object.lastLoginAt) !== null && _h2 !== void 0 ? _h2 : void 0; + const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object; + _assert(uid && plainObjectTokenManager, auth2, "internal-error"); + const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager); + _assert(typeof uid === "string", auth2, "internal-error"); + assertStringOrUndefined(displayName, auth2.name); + assertStringOrUndefined(email, auth2.name); + _assert(typeof emailVerified === "boolean", auth2, "internal-error"); + _assert(typeof isAnonymous === "boolean", auth2, "internal-error"); + assertStringOrUndefined(phoneNumber, auth2.name); + assertStringOrUndefined(photoURL, auth2.name); + assertStringOrUndefined(tenantId, auth2.name); + assertStringOrUndefined(_redirectEventId, auth2.name); + assertStringOrUndefined(createdAt, auth2.name); + assertStringOrUndefined(lastLoginAt, auth2.name); + const user = new UserImpl({ + uid, + auth: auth2, + email, + emailVerified, + displayName, + isAnonymous, + photoURL, + phoneNumber, + tenantId, + stsTokenManager, + createdAt, + lastLoginAt + }); + if (providerData && Array.isArray(providerData)) { + user.providerData = providerData.map((userInfo) => Object.assign({}, userInfo)); + } + if (_redirectEventId) { + user._redirectEventId = _redirectEventId; + } + return user; + } + static async _fromIdTokenResponse(auth2, idTokenResponse, isAnonymous = false) { + const stsTokenManager = new StsTokenManager(); + stsTokenManager.updateFromServerResponse(idTokenResponse); + const user = new UserImpl({ + uid: idTokenResponse.localId, + auth: auth2, + stsTokenManager, + isAnonymous + }); + await _reloadWithoutSaving(user); + return user; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class InMemoryPersistence { + constructor() { + this.type = "NONE"; + this.storage = {}; + } + async _isAvailable() { + return true; + } + async _set(key, value) { + this.storage[key] = value; + } + async _get(key) { + const value = this.storage[key]; + return value === void 0 ? null : value; + } + async _remove(key) { + delete this.storage[key]; + } + _addListener(_key, _listener) { + return; + } + _removeListener(_key, _listener) { + return; + } +} +InMemoryPersistence.type = "NONE"; +const inMemoryPersistence = InMemoryPersistence; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _persistenceKeyName(key, apiKey, appName) { + return `${"firebase"}:${key}:${apiKey}:${appName}`; +} +class PersistenceUserManager { + constructor(persistence, auth2, userKey) { + this.persistence = persistence; + this.auth = auth2; + this.userKey = userKey; + const { config, name: name2 } = this.auth; + this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name2); + this.fullPersistenceKey = _persistenceKeyName("persistence", config.apiKey, name2); + this.boundEventHandler = auth2._onStorageEvent.bind(auth2); + this.persistence._addListener(this.fullUserKey, this.boundEventHandler); + } + setCurrentUser(user) { + return this.persistence._set(this.fullUserKey, user.toJSON()); + } + async getCurrentUser() { + const blob = await this.persistence._get(this.fullUserKey); + return blob ? UserImpl._fromJSON(this.auth, blob) : null; + } + removeCurrentUser() { + return this.persistence._remove(this.fullUserKey); + } + savePersistenceForRedirect() { + return this.persistence._set(this.fullPersistenceKey, this.persistence.type); + } + async setPersistence(newPersistence) { + if (this.persistence === newPersistence) { + return; + } + const currentUser = await this.getCurrentUser(); + await this.removeCurrentUser(); + this.persistence = newPersistence; + if (currentUser) { + return this.setCurrentUser(currentUser); + } + } + delete() { + this.persistence._removeListener(this.fullUserKey, this.boundEventHandler); + } + static async create(auth2, persistenceHierarchy, userKey = "authUser") { + if (!persistenceHierarchy.length) { + return new PersistenceUserManager(_getInstance(inMemoryPersistence), auth2, userKey); + } + const availablePersistences = (await Promise.all(persistenceHierarchy.map(async (persistence) => { + if (await persistence._isAvailable()) { + return persistence; + } + return void 0; + }))).filter((persistence) => persistence); + let selectedPersistence = availablePersistences[0] || _getInstance(inMemoryPersistence); + const key = _persistenceKeyName(userKey, auth2.config.apiKey, auth2.name); + let userToMigrate = null; + for (const persistence of persistenceHierarchy) { + try { + const blob = await persistence._get(key); + if (blob) { + const user = UserImpl._fromJSON(auth2, blob); + if (persistence !== selectedPersistence) { + userToMigrate = user; + } + selectedPersistence = persistence; + break; + } + } catch (_a2) { + } + } + const migrationHierarchy = availablePersistences.filter((p2) => p2._shouldAllowMigration); + if (!selectedPersistence._shouldAllowMigration || !migrationHierarchy.length) { + return new PersistenceUserManager(selectedPersistence, auth2, userKey); + } + selectedPersistence = migrationHierarchy[0]; + if (userToMigrate) { + await selectedPersistence._set(key, userToMigrate.toJSON()); + } + await Promise.all(persistenceHierarchy.map(async (persistence) => { + if (persistence !== selectedPersistence) { + try { + await persistence._remove(key); + } catch (_a2) { + } + } + })); + return new PersistenceUserManager(selectedPersistence, auth2, userKey); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getBrowserName(userAgent) { + const ua2 = userAgent.toLowerCase(); + if (ua2.includes("opera/") || ua2.includes("opr/") || ua2.includes("opios/")) { + return "Opera"; + } else if (_isIEMobile(ua2)) { + return "IEMobile"; + } else if (ua2.includes("msie") || ua2.includes("trident/")) { + return "IE"; + } else if (ua2.includes("edge/")) { + return "Edge"; + } else if (_isFirefox(ua2)) { + return "Firefox"; + } else if (ua2.includes("silk/")) { + return "Silk"; + } else if (_isBlackBerry(ua2)) { + return "Blackberry"; + } else if (_isWebOS(ua2)) { + return "Webos"; + } else if (_isSafari(ua2)) { + return "Safari"; + } else if ((ua2.includes("chrome/") || _isChromeIOS(ua2)) && !ua2.includes("edge/")) { + return "Chrome"; + } else if (_isAndroid(ua2)) { + return "Android"; + } else { + const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/; + const matches = userAgent.match(re); + if ((matches === null || matches === void 0 ? void 0 : matches.length) === 2) { + return matches[1]; + } + } + return "Other"; +} +function _isFirefox(ua2 = getUA()) { + return /firefox\//i.test(ua2); +} +function _isSafari(userAgent = getUA()) { + const ua2 = userAgent.toLowerCase(); + return ua2.includes("safari/") && !ua2.includes("chrome/") && !ua2.includes("crios/") && !ua2.includes("android"); +} +function _isChromeIOS(ua2 = getUA()) { + return /crios\//i.test(ua2); +} +function _isIEMobile(ua2 = getUA()) { + return /iemobile/i.test(ua2); +} +function _isAndroid(ua2 = getUA()) { + return /android/i.test(ua2); +} +function _isBlackBerry(ua2 = getUA()) { + return /blackberry/i.test(ua2); +} +function _isWebOS(ua2 = getUA()) { + return /webos/i.test(ua2); +} +function _isIOS(ua2 = getUA()) { + return /iphone|ipad|ipod/i.test(ua2) || /macintosh/i.test(ua2) && /mobile/i.test(ua2); +} +function _isIOSStandalone(ua2 = getUA()) { + var _a2; + return _isIOS(ua2) && !!((_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.standalone); +} +function _isIE10() { + return isIE() && document.documentMode === 10; +} +function _isMobileBrowser(ua2 = getUA()) { + return _isIOS(ua2) || _isAndroid(ua2) || _isWebOS(ua2) || _isBlackBerry(ua2) || /windows phone/i.test(ua2) || _isIEMobile(ua2); +} +function _isIframe() { + try { + return !!(window && window !== window.top); + } catch (e) { + return false; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getClientVersion(clientPlatform, frameworks = []) { + let reportedPlatform; + switch (clientPlatform) { + case "Browser": + reportedPlatform = _getBrowserName(getUA()); + break; + case "Worker": + reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`; + break; + default: + reportedPlatform = clientPlatform; + } + const reportedFrameworks = frameworks.length ? frameworks.join(",") : "FirebaseCore-web"; + return `${reportedPlatform}/${"JsCore"}/${SDK_VERSION}/${reportedFrameworks}`; +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthMiddlewareQueue { + constructor(auth2) { + this.auth = auth2; + this.queue = []; + } + pushCallback(callback, onAbort) { + const wrappedCallback = (user) => new Promise((resolve, reject) => { + try { + const result = callback(user); + resolve(result); + } catch (e) { + reject(e); + } + }); + wrappedCallback.onAbort = onAbort; + this.queue.push(wrappedCallback); + const index = this.queue.length - 1; + return () => { + this.queue[index] = () => Promise.resolve(); + }; + } + async runMiddleware(nextUser) { + if (this.auth.currentUser === nextUser) { + return; + } + const onAbortStack = []; + try { + for (const beforeStateCallback of this.queue) { + await beforeStateCallback(nextUser); + if (beforeStateCallback.onAbort) { + onAbortStack.push(beforeStateCallback.onAbort); + } + } + } catch (e) { + onAbortStack.reverse(); + for (const onAbort of onAbortStack) { + try { + onAbort(); + } catch (_) { + } + } + throw this.auth._errorFactory.create("login-blocked", { + originalMessage: e === null || e === void 0 ? void 0 : e.message + }); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthImpl { + constructor(app2, heartbeatServiceProvider, config) { + this.app = app2; + this.heartbeatServiceProvider = heartbeatServiceProvider; + this.config = config; + this.currentUser = null; + this.emulatorConfig = null; + this.operations = Promise.resolve(); + this.authStateSubscription = new Subscription(this); + this.idTokenSubscription = new Subscription(this); + this.beforeStateQueue = new AuthMiddlewareQueue(this); + this.redirectUser = null; + this.isProactiveRefreshEnabled = false; + this._canInitEmulator = true; + this._isInitialized = false; + this._deleted = false; + this._initializationPromise = null; + this._popupRedirectResolver = null; + this._errorFactory = _DEFAULT_AUTH_ERROR_FACTORY; + this.lastNotifiedUid = void 0; + this.languageCode = null; + this.tenantId = null; + this.settings = { appVerificationDisabledForTesting: false }; + this.frameworks = []; + this.name = app2.name; + this.clientVersion = config.sdkClientVersion; + } + _initializeWithPersistence(persistenceHierarchy, popupRedirectResolver) { + if (popupRedirectResolver) { + this._popupRedirectResolver = _getInstance(popupRedirectResolver); + } + this._initializationPromise = this.queue(async () => { + var _a2, _b; + if (this._deleted) { + return; + } + this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy); + if (this._deleted) { + return; + } + if ((_a2 = this._popupRedirectResolver) === null || _a2 === void 0 ? void 0 : _a2._shouldInitProactively) { + try { + await this._popupRedirectResolver._initialize(this); + } catch (e) { + } + } + await this.initializeCurrentUser(popupRedirectResolver); + this.lastNotifiedUid = ((_b = this.currentUser) === null || _b === void 0 ? void 0 : _b.uid) || null; + if (this._deleted) { + return; + } + this._isInitialized = true; + }); + return this._initializationPromise; + } + async _onStorageEvent() { + if (this._deleted) { + return; + } + const user = await this.assertedPersistence.getCurrentUser(); + if (!this.currentUser && !user) { + return; + } + if (this.currentUser && user && this.currentUser.uid === user.uid) { + this._currentUser._assign(user); + await this.currentUser.getIdToken(); + return; + } + await this._updateCurrentUser(user, true); + } + async initializeCurrentUser(popupRedirectResolver) { + var _a2; + const previouslyStoredUser = await this.assertedPersistence.getCurrentUser(); + let futureCurrentUser = previouslyStoredUser; + let needsTocheckMiddleware = false; + if (popupRedirectResolver && this.config.authDomain) { + await this.getOrInitRedirectPersistenceManager(); + const redirectUserEventId = (_a2 = this.redirectUser) === null || _a2 === void 0 ? void 0 : _a2._redirectEventId; + const storedUserEventId = futureCurrentUser === null || futureCurrentUser === void 0 ? void 0 : futureCurrentUser._redirectEventId; + const result = await this.tryRedirectSignIn(popupRedirectResolver); + if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) && (result === null || result === void 0 ? void 0 : result.user)) { + futureCurrentUser = result.user; + needsTocheckMiddleware = true; + } + } + if (!futureCurrentUser) { + return this.directlySetCurrentUser(null); + } + if (!futureCurrentUser._redirectEventId) { + if (needsTocheckMiddleware) { + try { + await this.beforeStateQueue.runMiddleware(futureCurrentUser); + } catch (e) { + futureCurrentUser = previouslyStoredUser; + this._popupRedirectResolver._overrideRedirectResult(this, () => Promise.reject(e)); + } + } + if (futureCurrentUser) { + return this.reloadAndSetCurrentUserOrClear(futureCurrentUser); + } else { + return this.directlySetCurrentUser(null); + } + } + _assert(this._popupRedirectResolver, this, "argument-error"); + await this.getOrInitRedirectPersistenceManager(); + if (this.redirectUser && this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId) { + return this.directlySetCurrentUser(futureCurrentUser); + } + return this.reloadAndSetCurrentUserOrClear(futureCurrentUser); + } + async tryRedirectSignIn(redirectResolver) { + let result = null; + try { + result = await this._popupRedirectResolver._completeRedirectFn(this, redirectResolver, true); + } catch (e) { + await this._setRedirectUser(null); + } + return result; + } + async reloadAndSetCurrentUserOrClear(user) { + try { + await _reloadWithoutSaving(user); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) !== `auth/${"network-request-failed"}`) { + return this.directlySetCurrentUser(null); + } + } + return this.directlySetCurrentUser(user); + } + useDeviceLanguage() { + this.languageCode = _getUserLanguage(); + } + async _delete() { + this._deleted = true; + } + async updateCurrentUser(userExtern) { + const user = userExtern ? getModularInstance(userExtern) : null; + if (user) { + _assert(user.auth.config.apiKey === this.config.apiKey, this, "invalid-user-token"); + } + return this._updateCurrentUser(user && user._clone(this)); + } + async _updateCurrentUser(user, skipBeforeStateCallbacks = false) { + if (this._deleted) { + return; + } + if (user) { + _assert(this.tenantId === user.tenantId, this, "tenant-id-mismatch"); + } + if (!skipBeforeStateCallbacks) { + await this.beforeStateQueue.runMiddleware(user); + } + return this.queue(async () => { + await this.directlySetCurrentUser(user); + this.notifyAuthListeners(); + }); + } + async signOut() { + await this.beforeStateQueue.runMiddleware(null); + if (this.redirectPersistenceManager || this._popupRedirectResolver) { + await this._setRedirectUser(null); + } + return this._updateCurrentUser(null, true); + } + setPersistence(persistence) { + return this.queue(async () => { + await this.assertedPersistence.setPersistence(_getInstance(persistence)); + }); + } + _getPersistence() { + return this.assertedPersistence.persistence.type; + } + _updateErrorMap(errorMap) { + this._errorFactory = new ErrorFactory("auth", "Firebase", errorMap()); + } + onAuthStateChanged(nextOrObserver, error, completed) { + return this.registerStateListener(this.authStateSubscription, nextOrObserver, error, completed); + } + beforeAuthStateChanged(callback, onAbort) { + return this.beforeStateQueue.pushCallback(callback, onAbort); + } + onIdTokenChanged(nextOrObserver, error, completed) { + return this.registerStateListener(this.idTokenSubscription, nextOrObserver, error, completed); + } + toJSON() { + var _a2; + return { + apiKey: this.config.apiKey, + authDomain: this.config.authDomain, + appName: this.name, + currentUser: (_a2 = this._currentUser) === null || _a2 === void 0 ? void 0 : _a2.toJSON() + }; + } + async _setRedirectUser(user, popupRedirectResolver) { + const redirectManager = await this.getOrInitRedirectPersistenceManager(popupRedirectResolver); + return user === null ? redirectManager.removeCurrentUser() : redirectManager.setCurrentUser(user); + } + async getOrInitRedirectPersistenceManager(popupRedirectResolver) { + if (!this.redirectPersistenceManager) { + const resolver = popupRedirectResolver && _getInstance(popupRedirectResolver) || this._popupRedirectResolver; + _assert(resolver, this, "argument-error"); + this.redirectPersistenceManager = await PersistenceUserManager.create(this, [_getInstance(resolver._redirectPersistence)], "redirectUser"); + this.redirectUser = await this.redirectPersistenceManager.getCurrentUser(); + } + return this.redirectPersistenceManager; + } + async _redirectUserForId(id2) { + var _a2, _b; + if (this._isInitialized) { + await this.queue(async () => { + }); + } + if (((_a2 = this._currentUser) === null || _a2 === void 0 ? void 0 : _a2._redirectEventId) === id2) { + return this._currentUser; + } + if (((_b = this.redirectUser) === null || _b === void 0 ? void 0 : _b._redirectEventId) === id2) { + return this.redirectUser; + } + return null; + } + async _persistUserIfCurrent(user) { + if (user === this.currentUser) { + return this.queue(async () => this.directlySetCurrentUser(user)); + } + } + _notifyListenersIfCurrent(user) { + if (user === this.currentUser) { + this.notifyAuthListeners(); + } + } + _key() { + return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`; + } + _startProactiveRefresh() { + this.isProactiveRefreshEnabled = true; + if (this.currentUser) { + this._currentUser._startProactiveRefresh(); + } + } + _stopProactiveRefresh() { + this.isProactiveRefreshEnabled = false; + if (this.currentUser) { + this._currentUser._stopProactiveRefresh(); + } + } + get _currentUser() { + return this.currentUser; + } + notifyAuthListeners() { + var _a2, _b; + if (!this._isInitialized) { + return; + } + this.idTokenSubscription.next(this.currentUser); + const currentUid = (_b = (_a2 = this.currentUser) === null || _a2 === void 0 ? void 0 : _a2.uid) !== null && _b !== void 0 ? _b : null; + if (this.lastNotifiedUid !== currentUid) { + this.lastNotifiedUid = currentUid; + this.authStateSubscription.next(this.currentUser); + } + } + registerStateListener(subscription, nextOrObserver, error, completed) { + if (this._deleted) { + return () => { + }; + } + const cb2 = typeof nextOrObserver === "function" ? nextOrObserver : nextOrObserver.next.bind(nextOrObserver); + const promise = this._isInitialized ? Promise.resolve() : this._initializationPromise; + _assert(promise, this, "internal-error"); + promise.then(() => cb2(this.currentUser)); + if (typeof nextOrObserver === "function") { + return subscription.addObserver(nextOrObserver, error, completed); + } else { + return subscription.addObserver(nextOrObserver); + } + } + async directlySetCurrentUser(user) { + if (this.currentUser && this.currentUser !== user) { + this._currentUser._stopProactiveRefresh(); + } + if (user && this.isProactiveRefreshEnabled) { + user._startProactiveRefresh(); + } + this.currentUser = user; + if (user) { + await this.assertedPersistence.setCurrentUser(user); + } else { + await this.assertedPersistence.removeCurrentUser(); + } + } + queue(action) { + this.operations = this.operations.then(action, action); + return this.operations; + } + get assertedPersistence() { + _assert(this.persistenceManager, this, "internal-error"); + return this.persistenceManager; + } + _logFramework(framework) { + if (!framework || this.frameworks.includes(framework)) { + return; + } + this.frameworks.push(framework); + this.frameworks.sort(); + this.clientVersion = _getClientVersion(this.config.clientPlatform, this._getFrameworks()); + } + _getFrameworks() { + return this.frameworks; + } + async _getAdditionalHeaders() { + var _a2; + const headers = { + ["X-Client-Version"]: this.clientVersion + }; + if (this.app.options.appId) { + headers["X-Firebase-gmpid"] = this.app.options.appId; + } + const heartbeatsHeader = await ((_a2 = this.heartbeatServiceProvider.getImmediate({ + optional: true + })) === null || _a2 === void 0 ? void 0 : _a2.getHeartbeatsHeader()); + if (heartbeatsHeader) { + headers["X-Firebase-Client"] = heartbeatsHeader; + } + return headers; + } +} +function _castAuth(auth2) { + return getModularInstance(auth2); +} +class Subscription { + constructor(auth2) { + this.auth = auth2; + this.observer = null; + this.addObserver = createSubscribe((observer) => this.observer = observer); + } + get next() { + _assert(this.observer, this.auth, "internal-error"); + return this.observer.next.bind(this.observer); + } +} +function connectAuthEmulator(auth2, url, options) { + const authInternal = _castAuth(auth2); + _assert(authInternal._canInitEmulator, authInternal, "emulator-config-failed"); + _assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme"); + const disableWarnings = !!(options === null || options === void 0 ? void 0 : options.disableWarnings); + const protocol = extractProtocol(url); + const { host, port } = extractHostAndPort(url); + const portStr = port === null ? "" : `:${port}`; + authInternal.config.emulator = { url: `${protocol}//${host}${portStr}/` }; + authInternal.settings.appVerificationDisabledForTesting = true; + authInternal.emulatorConfig = Object.freeze({ + host, + port, + protocol: protocol.replace(":", ""), + options: Object.freeze({ disableWarnings }) + }); + if (!disableWarnings) { + emitEmulatorWarning(); + } +} +function extractProtocol(url) { + const protocolEnd = url.indexOf(":"); + return protocolEnd < 0 ? "" : url.substr(0, protocolEnd + 1); +} +function extractHostAndPort(url) { + const protocol = extractProtocol(url); + const authority = /(\/\/)?([^?#/]+)/.exec(url.substr(protocol.length)); + if (!authority) { + return { host: "", port: null }; + } + const hostAndPort = authority[2].split("@").pop() || ""; + const bracketedIPv6 = /^(\[[^\]]+\])(:|$)/.exec(hostAndPort); + if (bracketedIPv6) { + const host = bracketedIPv6[1]; + return { host, port: parsePort(hostAndPort.substr(host.length + 1)) }; + } else { + const [host, port] = hostAndPort.split(":"); + return { host, port: parsePort(port) }; + } +} +function parsePort(portStr) { + if (!portStr) { + return null; + } + const port = Number(portStr); + if (isNaN(port)) { + return null; + } + return port; +} +function emitEmulatorWarning() { + function attachBanner() { + const el2 = document.createElement("p"); + const sty = el2.style; + el2.innerText = "Running in emulator mode. Do not use with production credentials."; + sty.position = "fixed"; + sty.width = "100%"; + sty.backgroundColor = "#ffffff"; + sty.border = ".1em solid #000000"; + sty.color = "#b50000"; + sty.bottom = "0px"; + sty.left = "0px"; + sty.margin = "0px"; + sty.zIndex = "10000"; + sty.textAlign = "center"; + el2.classList.add("firebase-emulator-warning"); + document.body.appendChild(el2); + } + if (typeof console !== "undefined" && typeof console.info === "function") { + console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."); + } + if (typeof window !== "undefined" && typeof document !== "undefined") { + if (document.readyState === "loading") { + window.addEventListener("DOMContentLoaded", attachBanner); + } else { + attachBanner(); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthCredential { + constructor(providerId, signInMethod) { + this.providerId = providerId; + this.signInMethod = signInMethod; + } + toJSON() { + return debugFail("not implemented"); + } + _getIdTokenResponse(_auth) { + return debugFail("not implemented"); + } + _linkToIdToken(_auth, _idToken) { + return debugFail("not implemented"); + } + _getReauthenticationResolver(_auth) { + return debugFail("not implemented"); + } +} +async function updateEmailPassword(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:update", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithPassword(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithPassword", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithEmailLink$1(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithEmailLink", _addTidIfNecessary(auth2, request)); +} +async function signInWithEmailLinkForLinking(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithEmailLink", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class EmailAuthCredential extends AuthCredential { + constructor(_email, _password, signInMethod, _tenantId = null) { + super("password", signInMethod); + this._email = _email; + this._password = _password; + this._tenantId = _tenantId; + } + static _fromEmailAndPassword(email, password) { + return new EmailAuthCredential(email, password, "password"); + } + static _fromEmailAndCode(email, oobCode, tenantId = null) { + return new EmailAuthCredential(email, oobCode, "emailLink", tenantId); + } + toJSON() { + return { + email: this._email, + password: this._password, + signInMethod: this.signInMethod, + tenantId: this._tenantId + }; + } + static fromJSON(json) { + const obj = typeof json === "string" ? JSON.parse(json) : json; + if ((obj === null || obj === void 0 ? void 0 : obj.email) && (obj === null || obj === void 0 ? void 0 : obj.password)) { + if (obj.signInMethod === "password") { + return this._fromEmailAndPassword(obj.email, obj.password); + } else if (obj.signInMethod === "emailLink") { + return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId); + } + } + return null; + } + async _getIdTokenResponse(auth2) { + switch (this.signInMethod) { + case "password": + return signInWithPassword(auth2, { + returnSecureToken: true, + email: this._email, + password: this._password + }); + case "emailLink": + return signInWithEmailLink$1(auth2, { + email: this._email, + oobCode: this._password + }); + default: + _fail(auth2, "internal-error"); + } + } + async _linkToIdToken(auth2, idToken) { + switch (this.signInMethod) { + case "password": + return updateEmailPassword(auth2, { + idToken, + returnSecureToken: true, + email: this._email, + password: this._password + }); + case "emailLink": + return signInWithEmailLinkForLinking(auth2, { + idToken, + email: this._email, + oobCode: this._password + }); + default: + _fail(auth2, "internal-error"); + } + } + _getReauthenticationResolver(auth2) { + return this._getIdTokenResponse(auth2); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithIdp(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithIdp", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const IDP_REQUEST_URI$1 = "http://localhost"; +class OAuthCredential extends AuthCredential { + constructor() { + super(...arguments); + this.pendingToken = null; + } + static _fromParams(params) { + const cred = new OAuthCredential(params.providerId, params.signInMethod); + if (params.idToken || params.accessToken) { + if (params.idToken) { + cred.idToken = params.idToken; + } + if (params.accessToken) { + cred.accessToken = params.accessToken; + } + if (params.nonce && !params.pendingToken) { + cred.nonce = params.nonce; + } + if (params.pendingToken) { + cred.pendingToken = params.pendingToken; + } + } else if (params.oauthToken && params.oauthTokenSecret) { + cred.accessToken = params.oauthToken; + cred.secret = params.oauthTokenSecret; + } else { + _fail("argument-error"); + } + return cred; + } + 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(json) { + const obj = typeof json === "string" ? JSON.parse(json) : json; + const { providerId, signInMethod } = obj, rest = __rest(obj, ["providerId", "signInMethod"]); + if (!providerId || !signInMethod) { + return null; + } + const cred = new OAuthCredential(providerId, signInMethod); + cred.idToken = rest.idToken || void 0; + cred.accessToken = rest.accessToken || void 0; + cred.secret = rest.secret; + cred.nonce = rest.nonce; + cred.pendingToken = rest.pendingToken || null; + return cred; + } + _getIdTokenResponse(auth2) { + const request = this.buildRequest(); + return signInWithIdp(auth2, request); + } + _linkToIdToken(auth2, idToken) { + const request = this.buildRequest(); + request.idToken = idToken; + return signInWithIdp(auth2, request); + } + _getReauthenticationResolver(auth2) { + const request = this.buildRequest(); + request.autoCreate = false; + return signInWithIdp(auth2, request); + } + buildRequest() { + const request = { + requestUri: IDP_REQUEST_URI$1, + returnSecureToken: true + }; + if (this.pendingToken) { + request.pendingToken = this.pendingToken; + } else { + const postBody = {}; + if (this.idToken) { + postBody["id_token"] = this.idToken; + } + if (this.accessToken) { + postBody["access_token"] = this.accessToken; + } + if (this.secret) { + postBody["oauth_token_secret"] = this.secret; + } + postBody["providerId"] = this.providerId; + if (this.nonce && !this.pendingToken) { + postBody["nonce"] = this.nonce; + } + request.postBody = querystring(postBody); + } + return request; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function parseMode(mode) { + switch (mode) { + 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; + } +} +function parseDeepLink(url) { + const link = querystringDecode(extractQuerystring(url))["link"]; + const doubleDeepLink = link ? querystringDecode(extractQuerystring(link))["deep_link_id"] : null; + const iOSDeepLink = querystringDecode(extractQuerystring(url))["deep_link_id"]; + const iOSDoubleDeepLink = iOSDeepLink ? querystringDecode(extractQuerystring(iOSDeepLink))["link"] : null; + return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url; +} +class ActionCodeURL { + constructor(actionLink) { + var _a2, _b, _c2, _d, _e2, _f; + const searchParams = querystringDecode(extractQuerystring(actionLink)); + const apiKey = (_a2 = searchParams["apiKey"]) !== null && _a2 !== void 0 ? _a2 : null; + const code = (_b = searchParams["oobCode"]) !== null && _b !== void 0 ? _b : null; + const operation = parseMode((_c2 = searchParams["mode"]) !== null && _c2 !== void 0 ? _c2 : null); + _assert(apiKey && code && operation, "argument-error"); + this.apiKey = apiKey; + this.operation = operation; + this.code = code; + this.continueUrl = (_d = searchParams["continueUrl"]) !== null && _d !== void 0 ? _d : null; + this.languageCode = (_e2 = searchParams["languageCode"]) !== null && _e2 !== void 0 ? _e2 : null; + this.tenantId = (_f = searchParams["tenantId"]) !== null && _f !== void 0 ? _f : null; + } + static parseLink(link) { + const actionLink = parseDeepLink(link); + try { + return new ActionCodeURL(actionLink); + } catch (_a2) { + return null; + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class EmailAuthProvider { + constructor() { + this.providerId = EmailAuthProvider.PROVIDER_ID; + } + static credential(email, password) { + return EmailAuthCredential._fromEmailAndPassword(email, password); + } + static credentialWithLink(email, emailLink) { + const actionCodeUrl = ActionCodeURL.parseLink(emailLink); + _assert(actionCodeUrl, "argument-error"); + return EmailAuthCredential._fromEmailAndCode(email, actionCodeUrl.code, actionCodeUrl.tenantId); + } +} +EmailAuthProvider.PROVIDER_ID = "password"; +EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD = "password"; +EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD = "emailLink"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FederatedAuthProvider { + constructor(providerId) { + this.providerId = providerId; + this.defaultLanguageCode = null; + this.customParameters = {}; + } + setDefaultLanguage(languageCode) { + this.defaultLanguageCode = languageCode; + } + setCustomParameters(customOAuthParameters) { + this.customParameters = customOAuthParameters; + return this; + } + getCustomParameters() { + return this.customParameters; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BaseOAuthProvider extends FederatedAuthProvider { + constructor() { + super(...arguments); + this.scopes = []; + } + addScope(scope) { + if (!this.scopes.includes(scope)) { + this.scopes.push(scope); + } + return this; + } + getScopes() { + return [...this.scopes]; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FacebookAuthProvider extends BaseOAuthProvider { + constructor() { + super("facebook.com"); + } + static credential(accessToken) { + return OAuthCredential._fromParams({ + providerId: FacebookAuthProvider.PROVIDER_ID, + signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD, + accessToken + }); + } + static credentialFromResult(userCredential) { + return FacebookAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return FacebookAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse || !("oauthAccessToken" in tokenResponse)) { + return null; + } + if (!tokenResponse.oauthAccessToken) { + return null; + } + try { + return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD = "facebook.com"; +FacebookAuthProvider.PROVIDER_ID = "facebook.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GoogleAuthProvider extends BaseOAuthProvider { + constructor() { + super("google.com"); + this.addScope("profile"); + } + static credential(idToken, accessToken) { + return OAuthCredential._fromParams({ + providerId: GoogleAuthProvider.PROVIDER_ID, + signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD, + idToken, + accessToken + }); + } + static credentialFromResult(userCredential) { + return GoogleAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return GoogleAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse) { + return null; + } + const { oauthIdToken, oauthAccessToken } = tokenResponse; + if (!oauthIdToken && !oauthAccessToken) { + return null; + } + try { + return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD = "google.com"; +GoogleAuthProvider.PROVIDER_ID = "google.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GithubAuthProvider extends BaseOAuthProvider { + constructor() { + super("github.com"); + } + static credential(accessToken) { + return OAuthCredential._fromParams({ + providerId: GithubAuthProvider.PROVIDER_ID, + signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD, + accessToken + }); + } + static credentialFromResult(userCredential) { + return GithubAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return GithubAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse || !("oauthAccessToken" in tokenResponse)) { + return null; + } + if (!tokenResponse.oauthAccessToken) { + return null; + } + try { + return GithubAuthProvider.credential(tokenResponse.oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +GithubAuthProvider.GITHUB_SIGN_IN_METHOD = "github.com"; +GithubAuthProvider.PROVIDER_ID = "github.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class TwitterAuthProvider extends BaseOAuthProvider { + constructor() { + super("twitter.com"); + } + static credential(token, secret) { + return OAuthCredential._fromParams({ + providerId: TwitterAuthProvider.PROVIDER_ID, + signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD, + oauthToken: token, + oauthTokenSecret: secret + }); + } + static credentialFromResult(userCredential) { + return TwitterAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return TwitterAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse) { + return null; + } + const { oauthAccessToken, oauthTokenSecret } = tokenResponse; + if (!oauthAccessToken || !oauthTokenSecret) { + return null; + } + try { + return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret); + } catch (_a2) { + return null; + } + } +} +TwitterAuthProvider.TWITTER_SIGN_IN_METHOD = "twitter.com"; +TwitterAuthProvider.PROVIDER_ID = "twitter.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signUp(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signUp", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class UserCredentialImpl { + constructor(params) { + this.user = params.user; + this.providerId = params.providerId; + this._tokenResponse = params._tokenResponse; + this.operationType = params.operationType; + } + static async _fromIdTokenResponse(auth2, operationType, idTokenResponse, isAnonymous = false) { + const user = await UserImpl._fromIdTokenResponse(auth2, idTokenResponse, isAnonymous); + const providerId = providerIdForResponse(idTokenResponse); + const userCred = new UserCredentialImpl({ + user, + providerId, + _tokenResponse: idTokenResponse, + operationType + }); + return userCred; + } + static async _forOperation(user, operationType, response) { + await user._updateTokensIfNecessary(response, true); + const providerId = providerIdForResponse(response); + return new UserCredentialImpl({ + user, + providerId, + _tokenResponse: response, + operationType + }); + } +} +function providerIdForResponse(response) { + if (response.providerId) { + return response.providerId; + } + if ("phoneNumber" in response) { + return "phone"; + } + return null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class MultiFactorError extends FirebaseError { + constructor(auth2, error, operationType, user) { + var _a2; + super(error.code, error.message); + this.operationType = operationType; + this.user = user; + Object.setPrototypeOf(this, MultiFactorError.prototype); + this.customData = { + appName: auth2.name, + tenantId: (_a2 = auth2.tenantId) !== null && _a2 !== void 0 ? _a2 : void 0, + _serverResponse: error.customData._serverResponse, + operationType + }; + } + static _fromErrorAndOperation(auth2, error, operationType, user) { + return new MultiFactorError(auth2, error, operationType, user); + } +} +function _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential, user) { + const idTokenProvider = operationType === "reauthenticate" ? credential._getReauthenticationResolver(auth2) : credential._getIdTokenResponse(auth2); + return idTokenProvider.catch((error) => { + if (error.code === `auth/${"multi-factor-auth-required"}`) { + throw MultiFactorError._fromErrorAndOperation(auth2, error, operationType, user); + } + throw error; + }); +} +async function _link$1(user, credential, bypassAuthState = false) { + const response = await _logoutIfInvalidated(user, credential._linkToIdToken(user.auth, await user.getIdToken()), bypassAuthState); + return UserCredentialImpl._forOperation(user, "link", response); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _reauthenticate(user, credential, bypassAuthState = false) { + const { auth: auth2 } = user; + const operationType = "reauthenticate"; + try { + const response = await _logoutIfInvalidated(user, _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential, user), bypassAuthState); + _assert(response.idToken, auth2, "internal-error"); + const parsed = _parseToken(response.idToken); + _assert(parsed, auth2, "internal-error"); + const { sub: localId } = parsed; + _assert(user.uid === localId, auth2, "user-mismatch"); + return UserCredentialImpl._forOperation(user, operationType, response); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) === `auth/${"user-not-found"}`) { + _fail(auth2, "user-mismatch"); + } + throw e; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _signInWithCredential(auth2, credential, bypassAuthState = false) { + const operationType = "signIn"; + const response = await _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential); + const userCredential = await UserCredentialImpl._fromIdTokenResponse(auth2, operationType, response); + if (!bypassAuthState) { + await auth2._updateCurrentUser(userCredential.user); + } + return userCredential; +} +async function signInWithCredential(auth2, credential) { + return _signInWithCredential(_castAuth(auth2), credential); +} +async function createUserWithEmailAndPassword(auth2, email, password) { + const authInternal = _castAuth(auth2); + const response = await signUp(authInternal, { + returnSecureToken: true, + email, + password + }); + const userCredential = await UserCredentialImpl._fromIdTokenResponse(authInternal, "signIn", response); + await authInternal._updateCurrentUser(userCredential.user); + return userCredential; +} +function signInWithEmailAndPassword(auth2, email, password) { + return signInWithCredential(getModularInstance(auth2), EmailAuthProvider.credential(email, password)); +} +function onIdTokenChanged(auth2, nextOrObserver, error, completed) { + return getModularInstance(auth2).onIdTokenChanged(nextOrObserver, error, completed); +} +function beforeAuthStateChanged(auth2, callback, onAbort) { + return getModularInstance(auth2).beforeAuthStateChanged(callback, onAbort); +} +function onAuthStateChanged(auth2, nextOrObserver, error, completed) { + return getModularInstance(auth2).onAuthStateChanged(nextOrObserver, error, completed); +} +function signOut(auth2) { + return getModularInstance(auth2).signOut(); +} +const STORAGE_AVAILABLE_KEY = "__sak"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BrowserPersistenceClass { + constructor(storageRetriever, type) { + this.storageRetriever = storageRetriever; + this.type = type; + } + _isAvailable() { + try { + if (!this.storage) { + return Promise.resolve(false); + } + this.storage.setItem(STORAGE_AVAILABLE_KEY, "1"); + this.storage.removeItem(STORAGE_AVAILABLE_KEY); + return Promise.resolve(true); + } catch (_a2) { + return Promise.resolve(false); + } + } + _set(key, value) { + this.storage.setItem(key, JSON.stringify(value)); + return Promise.resolve(); + } + _get(key) { + const json = this.storage.getItem(key); + return Promise.resolve(json ? JSON.parse(json) : null); + } + _remove(key) { + this.storage.removeItem(key); + return Promise.resolve(); + } + get storage() { + return this.storageRetriever(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _iframeCannotSyncWebStorage() { + const ua2 = getUA(); + return _isSafari(ua2) || _isIOS(ua2); +} +const _POLLING_INTERVAL_MS$1 = 1e3; +const IE10_LOCAL_STORAGE_SYNC_DELAY = 10; +class BrowserLocalPersistence extends BrowserPersistenceClass { + constructor() { + super(() => window.localStorage, "LOCAL"); + this.boundEventHandler = (event, poll) => this.onStorageEvent(event, poll); + this.listeners = {}; + this.localCache = {}; + this.pollTimer = null; + this.safariLocalStorageNotSynced = _iframeCannotSyncWebStorage() && _isIframe(); + this.fallbackToPolling = _isMobileBrowser(); + this._shouldAllowMigration = true; + } + forAllChangedKeys(cb2) { + for (const key of Object.keys(this.listeners)) { + const newValue = this.storage.getItem(key); + const oldValue = this.localCache[key]; + if (newValue !== oldValue) { + cb2(key, oldValue, newValue); + } + } + } + onStorageEvent(event, poll = false) { + if (!event.key) { + this.forAllChangedKeys((key2, _oldValue, newValue) => { + this.notifyListeners(key2, newValue); + }); + return; + } + const key = event.key; + if (poll) { + this.detachListener(); + } else { + this.stopPolling(); + } + if (this.safariLocalStorageNotSynced) { + const storedValue2 = this.storage.getItem(key); + if (event.newValue !== storedValue2) { + if (event.newValue !== null) { + this.storage.setItem(key, event.newValue); + } else { + this.storage.removeItem(key); + } + } else if (this.localCache[key] === event.newValue && !poll) { + return; + } + } + const triggerListeners = () => { + const storedValue2 = this.storage.getItem(key); + if (!poll && this.localCache[key] === storedValue2) { + return; + } + this.notifyListeners(key, storedValue2); + }; + const storedValue = this.storage.getItem(key); + if (_isIE10() && storedValue !== event.newValue && event.newValue !== event.oldValue) { + setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY); + } else { + triggerListeners(); + } + } + notifyListeners(key, value) { + this.localCache[key] = value; + const listeners = this.listeners[key]; + if (listeners) { + for (const listener of Array.from(listeners)) { + listener(value ? JSON.parse(value) : value); + } + } + } + startPolling() { + this.stopPolling(); + this.pollTimer = setInterval(() => { + this.forAllChangedKeys((key, oldValue, newValue) => { + this.onStorageEvent( + new StorageEvent("storage", { + key, + oldValue, + newValue + }), + true + ); + }); + }, _POLLING_INTERVAL_MS$1); + } + stopPolling() { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + attachListener() { + window.addEventListener("storage", this.boundEventHandler); + } + detachListener() { + window.removeEventListener("storage", this.boundEventHandler); + } + _addListener(key, listener) { + if (Object.keys(this.listeners).length === 0) { + if (this.fallbackToPolling) { + this.startPolling(); + } else { + this.attachListener(); + } + } + if (!this.listeners[key]) { + this.listeners[key] = /* @__PURE__ */ new Set(); + this.localCache[key] = this.storage.getItem(key); + } + this.listeners[key].add(listener); + } + _removeListener(key, listener) { + if (this.listeners[key]) { + this.listeners[key].delete(listener); + if (this.listeners[key].size === 0) { + delete this.listeners[key]; + } + } + if (Object.keys(this.listeners).length === 0) { + this.detachListener(); + this.stopPolling(); + } + } + async _set(key, value) { + await super._set(key, value); + this.localCache[key] = JSON.stringify(value); + } + async _get(key) { + const value = await super._get(key); + this.localCache[key] = JSON.stringify(value); + return value; + } + async _remove(key) { + await super._remove(key); + delete this.localCache[key]; + } +} +BrowserLocalPersistence.type = "LOCAL"; +const browserLocalPersistence = BrowserLocalPersistence; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BrowserSessionPersistence extends BrowserPersistenceClass { + constructor() { + super(() => window.sessionStorage, "SESSION"); + } + _addListener(_key, _listener) { + return; + } + _removeListener(_key, _listener) { + return; + } +} +BrowserSessionPersistence.type = "SESSION"; +const browserSessionPersistence = BrowserSessionPersistence; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _allSettled(promises) { + return Promise.all(promises.map(async (promise) => { + try { + const value = await promise; + return { + fulfilled: true, + value + }; + } catch (reason) { + return { + fulfilled: false, + reason + }; + } + })); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Receiver { + constructor(eventTarget) { + this.eventTarget = eventTarget; + this.handlersMap = {}; + this.boundEventHandler = this.handleEvent.bind(this); + } + static _getInstance(eventTarget) { + const existingInstance = this.receivers.find((receiver) => receiver.isListeningto(eventTarget)); + if (existingInstance) { + return existingInstance; + } + const newInstance = new Receiver(eventTarget); + this.receivers.push(newInstance); + return newInstance; + } + isListeningto(eventTarget) { + return this.eventTarget === eventTarget; + } + async handleEvent(event) { + const messageEvent = event; + const { eventId, eventType, data } = messageEvent.data; + const handlers = this.handlersMap[eventType]; + if (!(handlers === null || handlers === void 0 ? void 0 : handlers.size)) { + return; + } + messageEvent.ports[0].postMessage({ + status: "ack", + eventId, + eventType + }); + const promises = Array.from(handlers).map(async (handler) => handler(messageEvent.origin, data)); + const response = await _allSettled(promises); + messageEvent.ports[0].postMessage({ + status: "done", + eventId, + eventType, + response + }); + } + _subscribe(eventType, eventHandler) { + if (Object.keys(this.handlersMap).length === 0) { + this.eventTarget.addEventListener("message", this.boundEventHandler); + } + if (!this.handlersMap[eventType]) { + this.handlersMap[eventType] = /* @__PURE__ */ new Set(); + } + this.handlersMap[eventType].add(eventHandler); + } + _unsubscribe(eventType, eventHandler) { + if (this.handlersMap[eventType] && eventHandler) { + this.handlersMap[eventType].delete(eventHandler); + } + if (!eventHandler || this.handlersMap[eventType].size === 0) { + delete this.handlersMap[eventType]; + } + if (Object.keys(this.handlersMap).length === 0) { + this.eventTarget.removeEventListener("message", this.boundEventHandler); + } + } +} +Receiver.receivers = []; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _generateEventId(prefix = "", digits = 10) { + let random = ""; + for (let i = 0; i < digits; i++) { + random += Math.floor(Math.random() * 10); + } + return prefix + random; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Sender { + constructor(target) { + this.target = target; + this.handlers = /* @__PURE__ */ new Set(); + } + removeMessageHandler(handler) { + if (handler.messageChannel) { + handler.messageChannel.port1.removeEventListener("message", handler.onMessage); + handler.messageChannel.port1.close(); + } + this.handlers.delete(handler); + } + async _send(eventType, data, timeout = 50) { + const messageChannel = typeof MessageChannel !== "undefined" ? new MessageChannel() : null; + if (!messageChannel) { + throw new Error("connection_unavailable"); + } + let completionTimer; + let handler; + return new Promise((resolve, reject) => { + const eventId = _generateEventId("", 20); + messageChannel.port1.start(); + const ackTimer = setTimeout(() => { + reject(new Error("unsupported_event")); + }, timeout); + handler = { + messageChannel, + onMessage(event) { + const messageEvent = event; + if (messageEvent.data.eventId !== eventId) { + return; + } + switch (messageEvent.data.status) { + case "ack": + clearTimeout(ackTimer); + completionTimer = setTimeout(() => { + reject(new Error("timeout")); + }, 3e3); + break; + case "done": + clearTimeout(completionTimer); + resolve(messageEvent.data.response); + break; + default: + clearTimeout(ackTimer); + clearTimeout(completionTimer); + reject(new Error("invalid_response")); + break; + } + } + }; + this.handlers.add(handler); + messageChannel.port1.addEventListener("message", handler.onMessage); + this.target.postMessage({ + eventType, + eventId, + data + }, [messageChannel.port2]); + }).finally(() => { + if (handler) { + this.removeMessageHandler(handler); + } + }); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _window() { + return window; +} +function _setWindowLocation(url) { + _window().location.href = url; +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _isWorker() { + return typeof _window()["WorkerGlobalScope"] !== "undefined" && typeof _window()["importScripts"] === "function"; +} +async function _getActiveServiceWorker() { + if (!(navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker)) { + return null; + } + try { + const registration = await navigator.serviceWorker.ready; + return registration.active; + } catch (_a2) { + return null; + } +} +function _getServiceWorkerController() { + var _a2; + return ((_a2 = navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker) === null || _a2 === void 0 ? void 0 : _a2.controller) || null; +} +function _getWorkerGlobalScope() { + return _isWorker() ? self : null; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DB_NAME = "firebaseLocalStorageDb"; +const DB_VERSION = 1; +const DB_OBJECTSTORE_NAME = "firebaseLocalStorage"; +const DB_DATA_KEYPATH = "fbase_key"; +class DBPromise { + constructor(request) { + this.request = request; + } + toPromise() { + return new Promise((resolve, reject) => { + this.request.addEventListener("success", () => { + resolve(this.request.result); + }); + this.request.addEventListener("error", () => { + reject(this.request.error); + }); + }); + } +} +function getObjectStore(db2, isReadWrite) { + return db2.transaction([DB_OBJECTSTORE_NAME], isReadWrite ? "readwrite" : "readonly").objectStore(DB_OBJECTSTORE_NAME); +} +function _deleteDatabase() { + const request = indexedDB.deleteDatabase(DB_NAME); + return new DBPromise(request).toPromise(); +} +function _openDatabase() { + const request = indexedDB.open(DB_NAME, DB_VERSION); + return new Promise((resolve, reject) => { + request.addEventListener("error", () => { + reject(request.error); + }); + request.addEventListener("upgradeneeded", () => { + const db2 = request.result; + try { + db2.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH }); + } catch (e) { + reject(e); + } + }); + request.addEventListener("success", async () => { + const db2 = request.result; + if (!db2.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) { + db2.close(); + await _deleteDatabase(); + resolve(await _openDatabase()); + } else { + resolve(db2); + } + }); + }); +} +async function _putObject(db2, key, value) { + const request = getObjectStore(db2, true).put({ + [DB_DATA_KEYPATH]: key, + value + }); + return new DBPromise(request).toPromise(); +} +async function getObject(db2, key) { + const request = getObjectStore(db2, false).get(key); + const data = await new DBPromise(request).toPromise(); + return data === void 0 ? null : data.value; +} +function _deleteObject(db2, key) { + const request = getObjectStore(db2, true).delete(key); + return new DBPromise(request).toPromise(); +} +const _POLLING_INTERVAL_MS = 800; +const _TRANSACTION_RETRY_COUNT = 3; +class IndexedDBLocalPersistence { + constructor() { + this.type = "LOCAL"; + this._shouldAllowMigration = true; + this.listeners = {}; + this.localCache = {}; + this.pollTimer = null; + this.pendingWrites = 0; + this.receiver = null; + this.sender = null; + this.serviceWorkerReceiverAvailable = false; + this.activeServiceWorker = null; + this._workerInitializationPromise = this.initializeServiceWorkerMessaging().then(() => { + }, () => { + }); + } + async _openDb() { + if (this.db) { + return this.db; + } + this.db = await _openDatabase(); + return this.db; + } + async _withRetries(op) { + let numAttempts = 0; + while (true) { + try { + const db2 = await this._openDb(); + return await op(db2); + } catch (e) { + if (numAttempts++ > _TRANSACTION_RETRY_COUNT) { + throw e; + } + if (this.db) { + this.db.close(); + this.db = void 0; + } + } + } + } + async initializeServiceWorkerMessaging() { + return _isWorker() ? this.initializeReceiver() : this.initializeSender(); + } + async initializeReceiver() { + this.receiver = Receiver._getInstance(_getWorkerGlobalScope()); + this.receiver._subscribe("keyChanged", async (_origin, data) => { + const keys = await this._poll(); + return { + keyProcessed: keys.includes(data.key) + }; + }); + this.receiver._subscribe("ping", async (_origin, _data) => { + return ["keyChanged"]; + }); + } + async initializeSender() { + var _a2, _b; + this.activeServiceWorker = await _getActiveServiceWorker(); + if (!this.activeServiceWorker) { + return; + } + this.sender = new Sender(this.activeServiceWorker); + const results = await this.sender._send("ping", {}, 800); + if (!results) { + return; + } + if (((_a2 = results[0]) === null || _a2 === void 0 ? void 0 : _a2.fulfilled) && ((_b = results[0]) === null || _b === void 0 ? void 0 : _b.value.includes("keyChanged"))) { + this.serviceWorkerReceiverAvailable = true; + } + } + async notifyServiceWorker(key) { + if (!this.sender || !this.activeServiceWorker || _getServiceWorkerController() !== this.activeServiceWorker) { + return; + } + try { + await this.sender._send( + "keyChanged", + { key }, + this.serviceWorkerReceiverAvailable ? 800 : 50 + ); + } catch (_a2) { + } + } + async _isAvailable() { + try { + if (!indexedDB) { + return false; + } + const db2 = await _openDatabase(); + await _putObject(db2, STORAGE_AVAILABLE_KEY, "1"); + await _deleteObject(db2, STORAGE_AVAILABLE_KEY); + return true; + } catch (_a2) { + } + return false; + } + async _withPendingWrite(write) { + this.pendingWrites++; + try { + await write(); + } finally { + this.pendingWrites--; + } + } + async _set(key, value) { + return this._withPendingWrite(async () => { + await this._withRetries((db2) => _putObject(db2, key, value)); + this.localCache[key] = value; + return this.notifyServiceWorker(key); + }); + } + async _get(key) { + const obj = await this._withRetries((db2) => getObject(db2, key)); + this.localCache[key] = obj; + return obj; + } + async _remove(key) { + return this._withPendingWrite(async () => { + await this._withRetries((db2) => _deleteObject(db2, key)); + delete this.localCache[key]; + return this.notifyServiceWorker(key); + }); + } + async _poll() { + const result = await this._withRetries((db2) => { + const getAllRequest = getObjectStore(db2, false).getAll(); + return new DBPromise(getAllRequest).toPromise(); + }); + if (!result) { + return []; + } + if (this.pendingWrites !== 0) { + return []; + } + const keys = []; + const keysInResult = /* @__PURE__ */ new Set(); + for (const { fbase_key: key, value } of result) { + keysInResult.add(key); + if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) { + this.notifyListeners(key, value); + keys.push(key); + } + } + for (const localKey of Object.keys(this.localCache)) { + if (this.localCache[localKey] && !keysInResult.has(localKey)) { + this.notifyListeners(localKey, null); + keys.push(localKey); + } + } + return keys; + } + notifyListeners(key, newValue) { + this.localCache[key] = newValue; + const listeners = this.listeners[key]; + if (listeners) { + for (const listener of Array.from(listeners)) { + listener(newValue); + } + } + } + startPolling() { + this.stopPolling(); + this.pollTimer = setInterval(async () => this._poll(), _POLLING_INTERVAL_MS); + } + stopPolling() { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + _addListener(key, listener) { + if (Object.keys(this.listeners).length === 0) { + this.startPolling(); + } + if (!this.listeners[key]) { + this.listeners[key] = /* @__PURE__ */ new Set(); + void this._get(key); + } + this.listeners[key].add(listener); + } + _removeListener(key, listener) { + if (this.listeners[key]) { + this.listeners[key].delete(listener); + if (this.listeners[key].size === 0) { + delete this.listeners[key]; + } + } + if (Object.keys(this.listeners).length === 0) { + this.stopPolling(); + } + } +} +IndexedDBLocalPersistence.type = "LOCAL"; +const indexedDBLocalPersistence = IndexedDBLocalPersistence; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getScriptParentElement() { + var _a2, _b; + return (_b = (_a2 = document.getElementsByTagName("head")) === null || _a2 === void 0 ? void 0 : _a2[0]) !== null && _b !== void 0 ? _b : document; +} +function _loadJS(url) { + return new Promise((resolve, reject) => { + const el2 = document.createElement("script"); + el2.setAttribute("src", url); + el2.onload = resolve; + el2.onerror = (e) => { + const error = _createError("internal-error"); + error.customData = e; + reject(error); + }; + el2.type = "text/javascript"; + el2.charset = "UTF-8"; + getScriptParentElement().appendChild(el2); + }); +} +function _generateCallbackName(prefix) { + return `__${prefix}${Math.floor(Math.random() * 1e6)}`; +} +new Delay(3e4, 6e4); +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _withDefaultResolver(auth2, resolverOverride) { + if (resolverOverride) { + return _getInstance(resolverOverride); + } + _assert(auth2._popupRedirectResolver, auth2, "argument-error"); + return auth2._popupRedirectResolver; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class IdpCredential extends AuthCredential { + constructor(params) { + super("custom", "custom"); + this.params = params; + } + _getIdTokenResponse(auth2) { + return signInWithIdp(auth2, this._buildIdpRequest()); + } + _linkToIdToken(auth2, idToken) { + return signInWithIdp(auth2, this._buildIdpRequest(idToken)); + } + _getReauthenticationResolver(auth2) { + return signInWithIdp(auth2, this._buildIdpRequest()); + } + _buildIdpRequest(idToken) { + const request = { + requestUri: this.params.requestUri, + sessionId: this.params.sessionId, + postBody: this.params.postBody, + tenantId: this.params.tenantId, + pendingToken: this.params.pendingToken, + returnSecureToken: true, + returnIdpCredential: true + }; + if (idToken) { + request.idToken = idToken; + } + return request; + } +} +function _signIn(params) { + return _signInWithCredential(params.auth, new IdpCredential(params), params.bypassAuthState); +} +function _reauth(params) { + const { auth: auth2, user } = params; + _assert(user, auth2, "internal-error"); + return _reauthenticate(user, new IdpCredential(params), params.bypassAuthState); +} +async function _link(params) { + const { auth: auth2, user } = params; + _assert(user, auth2, "internal-error"); + return _link$1(user, new IdpCredential(params), params.bypassAuthState); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AbstractPopupRedirectOperation { + constructor(auth2, filter, resolver, user, bypassAuthState = false) { + this.auth = auth2; + this.resolver = resolver; + this.user = user; + this.bypassAuthState = bypassAuthState; + this.pendingPromise = null; + this.eventManager = null; + this.filter = Array.isArray(filter) ? filter : [filter]; + } + execute() { + return new Promise(async (resolve, reject) => { + this.pendingPromise = { resolve, reject }; + try { + this.eventManager = await this.resolver._initialize(this.auth); + await this.onExecution(); + this.eventManager.registerConsumer(this); + } catch (e) { + this.reject(e); + } + }); + } + async onAuthEvent(event) { + const { urlResponse, sessionId, postBody, tenantId, error, type } = event; + if (error) { + this.reject(error); + return; + } + const params = { + auth: this.auth, + requestUri: urlResponse, + sessionId, + tenantId: tenantId || void 0, + postBody: postBody || void 0, + user: this.user, + bypassAuthState: this.bypassAuthState + }; + try { + this.resolve(await this.getIdpTask(type)(params)); + } catch (e) { + this.reject(e); + } + } + onError(error) { + this.reject(error); + } + getIdpTask(type) { + switch (type) { + case "signInViaPopup": + case "signInViaRedirect": + return _signIn; + case "linkViaPopup": + case "linkViaRedirect": + return _link; + case "reauthViaPopup": + case "reauthViaRedirect": + return _reauth; + default: + _fail(this.auth, "internal-error"); + } + } + resolve(cred) { + debugAssert(this.pendingPromise, "Pending promise was never set"); + this.pendingPromise.resolve(cred); + this.unregisterAndCleanUp(); + } + reject(error) { + debugAssert(this.pendingPromise, "Pending promise was never set"); + this.pendingPromise.reject(error); + this.unregisterAndCleanUp(); + } + unregisterAndCleanUp() { + if (this.eventManager) { + this.eventManager.unregisterConsumer(this); + } + this.pendingPromise = null; + this.cleanUp(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2e3, 1e4); +async function signInWithPopup(auth2, provider2, resolver) { + const authInternal = _castAuth(auth2); + _assertInstanceOf(auth2, provider2, FederatedAuthProvider); + const resolverInternal = _withDefaultResolver(authInternal, resolver); + const action = new PopupOperation(authInternal, "signInViaPopup", provider2, resolverInternal); + return action.executeNotNull(); +} +class PopupOperation extends AbstractPopupRedirectOperation { + constructor(auth2, filter, provider2, resolver, user) { + super(auth2, filter, resolver, user); + this.provider = provider2; + this.authWindow = null; + this.pollId = null; + if (PopupOperation.currentPopupAction) { + PopupOperation.currentPopupAction.cancel(); + } + PopupOperation.currentPopupAction = this; + } + async executeNotNull() { + const result = await this.execute(); + _assert(result, this.auth, "internal-error"); + return result; + } + async onExecution() { + debugAssert(this.filter.length === 1, "Popup operations only handle one event"); + const eventId = _generateEventId(); + this.authWindow = await this.resolver._openPopup( + this.auth, + this.provider, + this.filter[0], + eventId + ); + this.authWindow.associatedEvent = eventId; + this.resolver._originValidation(this.auth).catch((e) => { + this.reject(e); + }); + this.resolver._isIframeWebStorageSupported(this.auth, (isSupported) => { + if (!isSupported) { + this.reject(_createError(this.auth, "web-storage-unsupported")); + } + }); + this.pollUserCancellation(); + } + get eventId() { + var _a2; + return ((_a2 = this.authWindow) === null || _a2 === void 0 ? void 0 : _a2.associatedEvent) || null; + } + cancel() { + this.reject(_createError(this.auth, "cancelled-popup-request")); + } + cleanUp() { + if (this.authWindow) { + this.authWindow.close(); + } + if (this.pollId) { + window.clearTimeout(this.pollId); + } + this.authWindow = null; + this.pollId = null; + PopupOperation.currentPopupAction = null; + } + pollUserCancellation() { + const poll = () => { + var _a2, _b; + if ((_b = (_a2 = this.authWindow) === null || _a2 === void 0 ? void 0 : _a2.window) === null || _b === void 0 ? void 0 : _b.closed) { + this.pollId = window.setTimeout(() => { + this.pollId = null; + this.reject(_createError(this.auth, "popup-closed-by-user")); + }, 2e3); + return; + } + this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get()); + }; + poll(); + } +} +PopupOperation.currentPopupAction = null; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const PENDING_REDIRECT_KEY = "pendingRedirect"; +const redirectOutcomeMap = /* @__PURE__ */ new Map(); +class RedirectAction extends AbstractPopupRedirectOperation { + constructor(auth2, resolver, bypassAuthState = false) { + super(auth2, [ + "signInViaRedirect", + "linkViaRedirect", + "reauthViaRedirect", + "unknown" + ], resolver, void 0, bypassAuthState); + this.eventId = null; + } + async execute() { + let readyOutcome = redirectOutcomeMap.get(this.auth._key()); + if (!readyOutcome) { + try { + const hasPendingRedirect = await _getAndClearPendingRedirectStatus(this.resolver, this.auth); + const result = hasPendingRedirect ? await super.execute() : null; + readyOutcome = () => Promise.resolve(result); + } catch (e) { + readyOutcome = () => Promise.reject(e); + } + redirectOutcomeMap.set(this.auth._key(), readyOutcome); + } + if (!this.bypassAuthState) { + redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null)); + } + return readyOutcome(); + } + async onAuthEvent(event) { + if (event.type === "signInViaRedirect") { + return super.onAuthEvent(event); + } else if (event.type === "unknown") { + this.resolve(null); + return; + } + if (event.eventId) { + const user = await this.auth._redirectUserForId(event.eventId); + if (user) { + this.user = user; + return super.onAuthEvent(event); + } else { + this.resolve(null); + } + } + } + async onExecution() { + } + cleanUp() { + } +} +async function _getAndClearPendingRedirectStatus(resolver, auth2) { + const key = pendingRedirectKey(auth2); + const persistence = resolverPersistence(resolver); + if (!await persistence._isAvailable()) { + return false; + } + const hasPendingRedirect = await persistence._get(key) === "true"; + await persistence._remove(key); + return hasPendingRedirect; +} +function _overrideRedirectResult(auth2, result) { + redirectOutcomeMap.set(auth2._key(), result); +} +function resolverPersistence(resolver) { + return _getInstance(resolver._redirectPersistence); +} +function pendingRedirectKey(auth2) { + return _persistenceKeyName(PENDING_REDIRECT_KEY, auth2.config.apiKey, auth2.name); +} +async function _getRedirectResult(auth2, resolverExtern, bypassAuthState = false) { + const authInternal = _castAuth(auth2); + const resolver = _withDefaultResolver(authInternal, resolverExtern); + const action = new RedirectAction(authInternal, resolver, bypassAuthState); + const result = await action.execute(); + if (result && !bypassAuthState) { + delete result.user._redirectEventId; + await authInternal._persistUserIfCurrent(result.user); + await authInternal._setRedirectUser(null, resolverExtern); + } + return result; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1e3; +class AuthEventManager { + constructor(auth2) { + this.auth = auth2; + this.cachedEventUids = /* @__PURE__ */ new Set(); + this.consumers = /* @__PURE__ */ new Set(); + this.queuedRedirectEvent = null; + this.hasHandledPotentialRedirect = false; + this.lastProcessedEventTime = Date.now(); + } + registerConsumer(authEventConsumer) { + this.consumers.add(authEventConsumer); + if (this.queuedRedirectEvent && this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)) { + this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer); + this.saveEventToCache(this.queuedRedirectEvent); + this.queuedRedirectEvent = null; + } + } + unregisterConsumer(authEventConsumer) { + this.consumers.delete(authEventConsumer); + } + onEvent(event) { + if (this.hasEventBeenHandled(event)) { + return false; + } + let handled = false; + this.consumers.forEach((consumer) => { + if (this.isEventForConsumer(event, consumer)) { + handled = true; + this.sendToConsumer(event, consumer); + this.saveEventToCache(event); + } + }); + if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) { + return handled; + } + this.hasHandledPotentialRedirect = true; + if (!handled) { + this.queuedRedirectEvent = event; + handled = true; + } + return handled; + } + sendToConsumer(event, consumer) { + var _a2; + if (event.error && !isNullRedirectEvent(event)) { + const code = ((_a2 = event.error.code) === null || _a2 === void 0 ? void 0 : _a2.split("auth/")[1]) || "internal-error"; + consumer.onError(_createError(this.auth, code)); + } else { + consumer.onAuthEvent(event); + } + } + isEventForConsumer(event, consumer) { + const eventIdMatches = consumer.eventId === null || !!event.eventId && event.eventId === consumer.eventId; + return consumer.filter.includes(event.type) && eventIdMatches; + } + hasEventBeenHandled(event) { + if (Date.now() - this.lastProcessedEventTime >= EVENT_DUPLICATION_CACHE_DURATION_MS) { + this.cachedEventUids.clear(); + } + return this.cachedEventUids.has(eventUid(event)); + } + saveEventToCache(event) { + this.cachedEventUids.add(eventUid(event)); + this.lastProcessedEventTime = Date.now(); + } +} +function eventUid(e) { + return [e.type, e.eventId, e.sessionId, e.tenantId].filter((v2) => v2).join("-"); +} +function isNullRedirectEvent({ type, error }) { + return type === "unknown" && (error === null || error === void 0 ? void 0 : error.code) === `auth/${"no-auth-event"}`; +} +function isRedirectEvent(event) { + switch (event.type) { + case "signInViaRedirect": + case "linkViaRedirect": + case "reauthViaRedirect": + return true; + case "unknown": + return isNullRedirectEvent(event); + default: + return false; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _getProjectConfig(auth2, request = {}) { + return _performApiRequest(auth2, "GET", "/v1/projects", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const IP_ADDRESS_REGEX = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; +const HTTP_REGEX = /^https?/; +async function _validateOrigin(auth2) { + if (auth2.config.emulator) { + return; + } + const { authorizedDomains } = await _getProjectConfig(auth2); + for (const domain of authorizedDomains) { + try { + if (matchDomain(domain)) { + return; + } + } catch (_a2) { + } + } + _fail(auth2, "unauthorized-domain"); +} +function matchDomain(expected) { + const currentUrl = _getCurrentUrl(); + const { protocol, hostname } = new URL(currentUrl); + if (expected.startsWith("chrome-extension://")) { + const ceUrl = new URL(expected); + if (ceUrl.hostname === "" && hostname === "") { + return protocol === "chrome-extension:" && expected.replace("chrome-extension://", "") === currentUrl.replace("chrome-extension://", ""); + } + return protocol === "chrome-extension:" && ceUrl.hostname === hostname; + } + if (!HTTP_REGEX.test(protocol)) { + return false; + } + if (IP_ADDRESS_REGEX.test(expected)) { + return hostname === expected; + } + const escapedDomainPattern = expected.replace(/\./g, "\\."); + const re = new RegExp("^(.+\\." + escapedDomainPattern + "|" + escapedDomainPattern + ")$", "i"); + return re.test(hostname); +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const NETWORK_TIMEOUT = new Delay(3e4, 6e4); +function resetUnloadedGapiModules() { + const beacon = _window().___jsl; + if (beacon === null || beacon === void 0 ? void 0 : beacon.H) { + for (const hint of Object.keys(beacon.H)) { + beacon.H[hint].r = beacon.H[hint].r || []; + beacon.H[hint].L = beacon.H[hint].L || []; + beacon.H[hint].r = [...beacon.H[hint].L]; + if (beacon.CP) { + for (let i = 0; i < beacon.CP.length; i++) { + beacon.CP[i] = null; + } + } + } + } +} +function loadGapi(auth2) { + return new Promise((resolve, reject) => { + var _a2, _b, _c2; + function loadGapiIframe() { + resetUnloadedGapiModules(); + gapi.load("gapi.iframes", { + callback: () => { + resolve(gapi.iframes.getContext()); + }, + ontimeout: () => { + resetUnloadedGapiModules(); + reject(_createError(auth2, "network-request-failed")); + }, + timeout: NETWORK_TIMEOUT.get() + }); + } + if ((_b = (_a2 = _window().gapi) === null || _a2 === void 0 ? void 0 : _a2.iframes) === null || _b === void 0 ? void 0 : _b.Iframe) { + resolve(gapi.iframes.getContext()); + } else if (!!((_c2 = _window().gapi) === null || _c2 === void 0 ? void 0 : _c2.load)) { + loadGapiIframe(); + } else { + const cbName = _generateCallbackName("iframefcb"); + _window()[cbName] = () => { + if (!!gapi.load) { + loadGapiIframe(); + } else { + reject(_createError(auth2, "network-request-failed")); + } + }; + return _loadJS(`https://apis.google.com/js/api.js?onload=${cbName}`).catch((e) => reject(e)); + } + }).catch((error) => { + cachedGApiLoader = null; + throw error; + }); +} +let cachedGApiLoader = null; +function _loadGapi(auth2) { + cachedGApiLoader = cachedGApiLoader || loadGapi(auth2); + return cachedGApiLoader; +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const PING_TIMEOUT = new Delay(5e3, 15e3); +const IFRAME_PATH = "__/auth/iframe"; +const EMULATED_IFRAME_PATH = "emulator/auth/iframe"; +const IFRAME_ATTRIBUTES = { + style: { + position: "absolute", + top: "-100px", + width: "1px", + height: "1px" + }, + "aria-hidden": "true", + tabindex: "-1" +}; +const EID_FROM_APIHOST = /* @__PURE__ */ new Map([ + ["identitytoolkit.googleapis.com", "p"], + ["staging-identitytoolkit.sandbox.googleapis.com", "s"], + ["test-identitytoolkit.sandbox.googleapis.com", "t"] +]); +function getIframeUrl(auth2) { + const config = auth2.config; + _assert(config.authDomain, auth2, "auth-domain-config-required"); + const url = config.emulator ? _emulatorUrl(config, EMULATED_IFRAME_PATH) : `https://${auth2.config.authDomain}/${IFRAME_PATH}`; + const params = { + apiKey: config.apiKey, + appName: auth2.name, + v: SDK_VERSION + }; + const eid = EID_FROM_APIHOST.get(auth2.config.apiHost); + if (eid) { + params.eid = eid; + } + const frameworks = auth2._getFrameworks(); + if (frameworks.length) { + params.fw = frameworks.join(","); + } + return `${url}?${querystring(params).slice(1)}`; +} +async function _openIframe(auth2) { + const context = await _loadGapi(auth2); + const gapi2 = _window().gapi; + _assert(gapi2, auth2, "internal-error"); + return context.open({ + where: document.body, + url: getIframeUrl(auth2), + messageHandlersFilter: gapi2.iframes.CROSS_ORIGIN_IFRAMES_FILTER, + attributes: IFRAME_ATTRIBUTES, + dontclear: true + }, (iframe) => new Promise(async (resolve, reject) => { + await iframe.restyle({ + setHideOnLeave: false + }); + const networkError = _createError(auth2, "network-request-failed"); + const networkErrorTimer = _window().setTimeout(() => { + reject(networkError); + }, PING_TIMEOUT.get()); + function clearTimerAndResolve() { + _window().clearTimeout(networkErrorTimer); + resolve(iframe); + } + iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => { + reject(networkError); + }); + })); +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const BASE_POPUP_OPTIONS = { + location: "yes", + resizable: "yes", + statusbar: "yes", + toolbar: "no" +}; +const DEFAULT_WIDTH = 500; +const DEFAULT_HEIGHT = 600; +const TARGET_BLANK = "_blank"; +const FIREFOX_EMPTY_URL = "http://localhost"; +class AuthPopup { + constructor(window2) { + this.window = window2; + this.associatedEvent = null; + } + close() { + if (this.window) { + try { + this.window.close(); + } catch (e) { + } + } + } +} +function _open(auth2, url, name2, width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT) { + const top = Math.max((window.screen.availHeight - height) / 2, 0).toString(); + const left = Math.max((window.screen.availWidth - width) / 2, 0).toString(); + let target = ""; + const options = Object.assign(Object.assign({}, BASE_POPUP_OPTIONS), { + width: width.toString(), + height: height.toString(), + top, + left + }); + const ua2 = getUA().toLowerCase(); + if (name2) { + target = _isChromeIOS(ua2) ? TARGET_BLANK : name2; + } + if (_isFirefox(ua2)) { + url = url || FIREFOX_EMPTY_URL; + options.scrollbars = "yes"; + } + const optionsString = Object.entries(options).reduce((accum, [key, value]) => `${accum}${key}=${value},`, ""); + if (_isIOSStandalone(ua2) && target !== "_self") { + openAsNewWindowIOS(url || "", target); + return new AuthPopup(null); + } + const newWin = window.open(url || "", target, optionsString); + _assert(newWin, auth2, "popup-blocked"); + try { + newWin.focus(); + } catch (e) { + } + return new AuthPopup(newWin); +} +function openAsNewWindowIOS(url, target) { + const el2 = document.createElement("a"); + el2.href = url; + el2.target = target; + const click = document.createEvent("MouseEvent"); + click.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 1, null); + el2.dispatchEvent(click); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const WIDGET_PATH = "__/auth/handler"; +const EMULATOR_WIDGET_PATH = "emulator/auth/handler"; +function _getRedirectUrl(auth2, provider2, authType, redirectUrl, eventId, additionalParams) { + _assert(auth2.config.authDomain, auth2, "auth-domain-config-required"); + _assert(auth2.config.apiKey, auth2, "invalid-api-key"); + const params = { + apiKey: auth2.config.apiKey, + appName: auth2.name, + authType, + redirectUrl, + v: SDK_VERSION, + eventId + }; + if (provider2 instanceof FederatedAuthProvider) { + provider2.setDefaultLanguage(auth2.languageCode); + params.providerId = provider2.providerId || ""; + if (!isEmpty(provider2.getCustomParameters())) { + params.customParameters = JSON.stringify(provider2.getCustomParameters()); + } + for (const [key, value] of Object.entries(additionalParams || {})) { + params[key] = value; + } + } + if (provider2 instanceof BaseOAuthProvider) { + const scopes = provider2.getScopes().filter((scope) => scope !== ""); + if (scopes.length > 0) { + params.scopes = scopes.join(","); + } + } + if (auth2.tenantId) { + params.tid = auth2.tenantId; + } + const paramsDict = params; + for (const key of Object.keys(paramsDict)) { + if (paramsDict[key] === void 0) { + delete paramsDict[key]; + } + } + return `${getHandlerBase(auth2)}?${querystring(paramsDict).slice(1)}`; +} +function getHandlerBase({ config }) { + if (!config.emulator) { + return `https://${config.authDomain}/${WIDGET_PATH}`; + } + return _emulatorUrl(config, EMULATOR_WIDGET_PATH); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const WEB_STORAGE_SUPPORT_KEY = "webStorageSupport"; +class BrowserPopupRedirectResolver { + constructor() { + this.eventManagers = {}; + this.iframes = {}; + this.originValidationPromises = {}; + this._redirectPersistence = browserSessionPersistence; + this._completeRedirectFn = _getRedirectResult; + this._overrideRedirectResult = _overrideRedirectResult; + } + async _openPopup(auth2, provider2, authType, eventId) { + var _a2; + debugAssert((_a2 = this.eventManagers[auth2._key()]) === null || _a2 === void 0 ? void 0 : _a2.manager, "_initialize() not called before _openPopup()"); + const url = _getRedirectUrl(auth2, provider2, authType, _getCurrentUrl(), eventId); + return _open(auth2, url, _generateEventId()); + } + async _openRedirect(auth2, provider2, authType, eventId) { + await this._originValidation(auth2); + _setWindowLocation(_getRedirectUrl(auth2, provider2, authType, _getCurrentUrl(), eventId)); + return new Promise(() => { + }); + } + _initialize(auth2) { + const key = auth2._key(); + if (this.eventManagers[key]) { + const { manager, promise: promise2 } = this.eventManagers[key]; + if (manager) { + return Promise.resolve(manager); + } else { + debugAssert(promise2, "If manager is not set, promise should be"); + return promise2; + } + } + const promise = this.initAndGetManager(auth2); + this.eventManagers[key] = { promise }; + promise.catch(() => { + delete this.eventManagers[key]; + }); + return promise; + } + async initAndGetManager(auth2) { + const iframe = await _openIframe(auth2); + const manager = new AuthEventManager(auth2); + iframe.register("authEvent", (iframeEvent) => { + _assert(iframeEvent === null || iframeEvent === void 0 ? void 0 : iframeEvent.authEvent, auth2, "invalid-auth-event"); + const handled = manager.onEvent(iframeEvent.authEvent); + return { status: handled ? "ACK" : "ERROR" }; + }, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER); + this.eventManagers[auth2._key()] = { manager }; + this.iframes[auth2._key()] = iframe; + return manager; + } + _isIframeWebStorageSupported(auth2, cb2) { + const iframe = this.iframes[auth2._key()]; + iframe.send(WEB_STORAGE_SUPPORT_KEY, { type: WEB_STORAGE_SUPPORT_KEY }, (result) => { + var _a2; + const isSupported = (_a2 = result === null || result === void 0 ? void 0 : result[0]) === null || _a2 === void 0 ? void 0 : _a2[WEB_STORAGE_SUPPORT_KEY]; + if (isSupported !== void 0) { + cb2(!!isSupported); + } + _fail(auth2, "internal-error"); + }, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER); + } + _originValidation(auth2) { + const key = auth2._key(); + if (!this.originValidationPromises[key]) { + this.originValidationPromises[key] = _validateOrigin(auth2); + } + return this.originValidationPromises[key]; + } + get _shouldInitProactively() { + return _isMobileBrowser() || _isSafari() || _isIOS(); + } +} +const browserPopupRedirectResolver = BrowserPopupRedirectResolver; +var name$1 = "@firebase/auth"; +var version$1 = "0.22.0"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthInterop { + constructor(auth2) { + this.auth = auth2; + this.internalListeners = /* @__PURE__ */ new Map(); + } + getUid() { + var _a2; + this.assertAuthConfigured(); + return ((_a2 = this.auth.currentUser) === null || _a2 === void 0 ? void 0 : _a2.uid) || null; + } + async getToken(forceRefresh) { + this.assertAuthConfigured(); + await this.auth._initializationPromise; + if (!this.auth.currentUser) { + return null; + } + const accessToken = await this.auth.currentUser.getIdToken(forceRefresh); + return { accessToken }; + } + addAuthTokenListener(listener) { + this.assertAuthConfigured(); + if (this.internalListeners.has(listener)) { + return; + } + const unsubscribe = this.auth.onIdTokenChanged((user) => { + listener((user === null || user === void 0 ? void 0 : user.stsTokenManager.accessToken) || null); + }); + this.internalListeners.set(listener, unsubscribe); + this.updateProactiveRefresh(); + } + removeAuthTokenListener(listener) { + this.assertAuthConfigured(); + const unsubscribe = this.internalListeners.get(listener); + if (!unsubscribe) { + return; + } + this.internalListeners.delete(listener); + unsubscribe(); + this.updateProactiveRefresh(); + } + assertAuthConfigured() { + _assert(this.auth._initializationPromise, "dependent-sdk-initialized-before-auth"); + } + updateProactiveRefresh() { + if (this.internalListeners.size > 0) { + this.auth._startProactiveRefresh(); + } else { + this.auth._stopProactiveRefresh(); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getVersionForPlatform(clientPlatform) { + switch (clientPlatform) { + case "Node": + return "node"; + case "ReactNative": + return "rn"; + case "Worker": + return "webworker"; + case "Cordova": + return "cordova"; + default: + return void 0; + } +} +function registerAuth(clientPlatform) { + _registerComponent(new Component("auth", (container, { options: deps }) => { + const app2 = container.getProvider("app").getImmediate(); + const heartbeatServiceProvider = container.getProvider("heartbeat"); + const { apiKey, authDomain } = app2.options; + return ((app3, heartbeatServiceProvider2) => { + _assert(apiKey && !apiKey.includes(":"), "invalid-api-key", { appName: app3.name }); + _assert(!(authDomain === null || authDomain === void 0 ? void 0 : authDomain.includes(":")), "argument-error", { + appName: app3.name + }); + const config = { + apiKey, + authDomain, + clientPlatform, + apiHost: "identitytoolkit.googleapis.com", + tokenApiHost: "securetoken.googleapis.com", + apiScheme: "https", + sdkClientVersion: _getClientVersion(clientPlatform) + }; + const authInstance = new AuthImpl(app3, heartbeatServiceProvider2, config); + _initializeAuthInstance(authInstance, deps); + return authInstance; + })(app2, heartbeatServiceProvider); + }, "PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((container, _instanceIdentifier, _instance) => { + const authInternalProvider = container.getProvider("auth-internal"); + authInternalProvider.initialize(); + })); + _registerComponent(new Component("auth-internal", (container) => { + const auth2 = _castAuth(container.getProvider("auth").getImmediate()); + return ((auth3) => new AuthInterop(auth3))(auth2); + }, "PRIVATE").setInstantiationMode("EXPLICIT")); + registerVersion(name$1, version$1, getVersionForPlatform(clientPlatform)); + registerVersion(name$1, version$1, "esm2017"); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ID_TOKEN_MAX_AGE = 5 * 60; +const authIdTokenMaxAge = getExperimentalSetting("authIdTokenMaxAge") || DEFAULT_ID_TOKEN_MAX_AGE; +let lastPostedIdToken = null; +const mintCookieFactory = (url) => async (user) => { + const idTokenResult = user && await user.getIdTokenResult(); + const idTokenAge = idTokenResult && (new Date().getTime() - Date.parse(idTokenResult.issuedAtTime)) / 1e3; + if (idTokenAge && idTokenAge > authIdTokenMaxAge) { + return; + } + const idToken = idTokenResult === null || idTokenResult === void 0 ? void 0 : idTokenResult.token; + if (lastPostedIdToken === idToken) { + return; + } + lastPostedIdToken = idToken; + await fetch(url, { + method: idToken ? "POST" : "DELETE", + headers: idToken ? { + "Authorization": `Bearer ${idToken}` + } : {} + }); +}; +function getAuth(app2 = getApp()) { + const provider2 = _getProvider(app2, "auth"); + if (provider2.isInitialized()) { + return provider2.getImmediate(); + } + const auth2 = initializeAuth(app2, { + popupRedirectResolver: browserPopupRedirectResolver, + persistence: [ + indexedDBLocalPersistence, + browserLocalPersistence, + browserSessionPersistence + ] + }); + const authTokenSyncUrl = getExperimentalSetting("authTokenSyncURL"); + if (authTokenSyncUrl) { + const mintCookie = mintCookieFactory(authTokenSyncUrl); + beforeAuthStateChanged(auth2, mintCookie, () => mintCookie(auth2.currentUser)); + onIdTokenChanged(auth2, (user) => mintCookie(user)); + } + const authEmulatorHost = getDefaultEmulatorHost("auth"); + if (authEmulatorHost) { + connectAuthEmulator(auth2, `http://${authEmulatorHost}`); + } + return auth2; +} +registerAuth("Browser"); +function mistake(navigateTo2) { + const bug = document.createElement("div"); + bug.innerHTML = `
+

Error 404: p\xE1gina no encontrada.

+
`; + const keep = bug.querySelector(".initButton"); + keep.addEventListener("click", () => { + navigateTo2("/"); + }); + return bug; +} +var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var k$1, goog = goog || {}, l = commonjsGlobal || self; +function aa$1() { +} +function ba$1(a) { + var b2 = typeof a; + b2 = "object" != b2 ? b2 : a ? Array.isArray(a) ? "array" : b2 : "null"; + return "array" == b2 || "object" == b2 && "number" == typeof a.length; +} +function p(a) { + var b2 = typeof a; + return "object" == b2 && null != a || "function" == b2; +} +function ca(a) { + return Object.prototype.hasOwnProperty.call(a, da) && a[da] || (a[da] = ++ea); +} +var da = "closure_uid_" + (1e9 * Math.random() >>> 0), ea = 0; +function fa$1(a, b2, c) { + return a.call.apply(a.bind, arguments); +} +function ha$1(a, b2, c) { + if (!a) + throw Error(); + if (2 < arguments.length) { + var d = Array.prototype.slice.call(arguments, 2); + return function() { + var e = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(e, d); + return a.apply(b2, e); + }; + } + return function() { + return a.apply(b2, arguments); + }; +} +function q$1(a, b2, c) { + Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? q$1 = fa$1 : q$1 = ha$1; + return q$1.apply(null, arguments); +} +function ia(a, b2) { + var c = Array.prototype.slice.call(arguments, 1); + return function() { + var d = c.slice(); + d.push.apply(d, arguments); + return a.apply(this, d); + }; +} +function t(a, b2) { + function c() { + } + c.prototype = b2.prototype; + a.X = b2.prototype; + a.prototype = new c(); + a.prototype.constructor = a; + a.Wb = function(d, e, f) { + for (var h = Array(arguments.length - 2), n = 2; n < arguments.length; n++) + h[n - 2] = arguments[n]; + return b2.prototype[e].apply(d, h); + }; +} +function v$1() { + this.s = this.s; + this.o = this.o; +} +var ja$1 = 0; +v$1.prototype.s = false; +v$1.prototype.na = function() { + if (!this.s && (this.s = true, this.M(), 0 != ja$1)) { + ca(this); + } +}; +v$1.prototype.M = function() { + if (this.o) + for (; this.o.length; ) + this.o.shift()(); +}; +const la = Array.prototype.indexOf ? function(a, b2) { + return Array.prototype.indexOf.call(a, b2, void 0); +} : function(a, b2) { + if ("string" === typeof a) + return "string" !== typeof b2 || 1 != b2.length ? -1 : a.indexOf(b2, 0); + for (let c = 0; c < a.length; c++) + if (c in a && a[c] === b2) + return c; + return -1; +}; +function ma(a) { + const b2 = a.length; + if (0 < b2) { + const c = Array(b2); + for (let d = 0; d < b2; d++) + c[d] = a[d]; + return c; + } + return []; +} +function na(a, b2) { + for (let c = 1; c < arguments.length; c++) { + const d = arguments[c]; + if (ba$1(d)) { + const e = a.length || 0, f = d.length || 0; + a.length = e + f; + for (let h = 0; h < f; h++) + a[e + h] = d[h]; + } else + a.push(d); + } +} +function w(a, b2) { + this.type = a; + this.g = this.target = b2; + this.defaultPrevented = false; +} +w.prototype.h = function() { + this.defaultPrevented = true; +}; +var oa = function() { + if (!l.addEventListener || !Object.defineProperty) + return false; + var a = false, b2 = Object.defineProperty({}, "passive", { get: function() { + a = true; + } }); + try { + l.addEventListener("test", aa$1, b2), l.removeEventListener("test", aa$1, b2); + } catch (c) { + } + return a; +}(); +function pa(a) { + return /^[\s\xa0]*$/.test(a); +} +var qa = String.prototype.trim ? function(a) { + return a.trim(); +} : function(a) { + return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]; +}; +function ra(a, b2) { + return a < b2 ? -1 : a > b2 ? 1 : 0; +} +function sa() { + var a = l.navigator; + return a && (a = a.userAgent) ? a : ""; +} +function x$1(a) { + return -1 != sa().indexOf(a); +} +function ta(a) { + ta[" "](a); + return a; +} +ta[" "] = aa$1; +function ua(a) { + var b2 = va$1; + return Object.prototype.hasOwnProperty.call(b2, 9) ? b2[9] : b2[9] = a(9); +} +var wa = x$1("Opera"), y = x$1("Trident") || x$1("MSIE"), xa$1 = x$1("Edge"), ya = xa$1 || y, za$1 = x$1("Gecko") && !(-1 != sa().toLowerCase().indexOf("webkit") && !x$1("Edge")) && !(x$1("Trident") || x$1("MSIE")) && !x$1("Edge"), Aa$1 = -1 != sa().toLowerCase().indexOf("webkit") && !x$1("Edge"); +function Ba() { + var a = l.document; + return a ? a.documentMode : void 0; +} +var Ea$1; +a: { + var Fa = "", Ga$1 = function() { + var a = sa(); + if (za$1) + return /rv:([^\);]+)(\)|;)/.exec(a); + if (xa$1) + return /Edge\/([\d\.]+)/.exec(a); + if (y) + return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a); + if (Aa$1) + return /WebKit\/(\S+)/.exec(a); + if (wa) + return /(?:Version)[ \/]?(\S+)/.exec(a); + }(); + Ga$1 && (Fa = Ga$1 ? Ga$1[1] : ""); + if (y) { + var Ha$1 = Ba(); + if (null != Ha$1 && Ha$1 > parseFloat(Fa)) { + Ea$1 = String(Ha$1); + break a; + } + } + Ea$1 = Fa; +} +var va$1 = {}; +function Ia() { + return ua(function() { + let a = 0; + const b2 = qa(String(Ea$1)).split("."), c = qa("9").split("."), d = Math.max(b2.length, c.length); + for (let h = 0; 0 == a && h < d; h++) { + var e = b2[h] || "", f = c[h] || ""; + do { + e = /(\d*)(\D*)(.*)/.exec(e) || ["", "", "", ""]; + f = /(\d*)(\D*)(.*)/.exec(f) || ["", "", "", ""]; + if (0 == e[0].length && 0 == f[0].length) + break; + a = ra(0 == e[1].length ? 0 : parseInt(e[1], 10), 0 == f[1].length ? 0 : parseInt(f[1], 10)) || ra(0 == e[2].length, 0 == f[2].length) || ra(e[2], f[2]); + e = e[3]; + f = f[3]; + } while (0 == a); + } + return 0 <= a; + }); +} +var Ja; +if (l.document && y) { + var Ka$1 = Ba(); + Ja = Ka$1 ? Ka$1 : parseInt(Ea$1, 10) || void 0; +} else + Ja = void 0; +var La = Ja; +function z$1(a, b2) { + w.call(this, a ? a.type : ""); + this.relatedTarget = this.g = this.target = null; + this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0; + this.key = ""; + this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = false; + this.state = null; + this.pointerId = 0; + this.pointerType = ""; + this.i = null; + if (a) { + var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null; + this.target = a.target || a.srcElement; + this.g = b2; + if (b2 = a.relatedTarget) { + if (za$1) { + a: { + try { + ta(b2.nodeName); + var e = true; + break a; + } catch (f) { + } + e = false; + } + e || (b2 = null); + } + } else + "mouseover" == c ? b2 = a.fromElement : "mouseout" == c && (b2 = a.toElement); + this.relatedTarget = b2; + d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0); + this.button = a.button; + this.key = a.key || ""; + this.ctrlKey = a.ctrlKey; + this.altKey = a.altKey; + this.shiftKey = a.shiftKey; + this.metaKey = a.metaKey; + this.pointerId = a.pointerId || 0; + this.pointerType = "string" === typeof a.pointerType ? a.pointerType : Ma[a.pointerType] || ""; + this.state = a.state; + this.i = a; + a.defaultPrevented && z$1.X.h.call(this); + } +} +t(z$1, w); +var Ma = { 2: "touch", 3: "pen", 4: "mouse" }; +z$1.prototype.h = function() { + z$1.X.h.call(this); + var a = this.i; + a.preventDefault ? a.preventDefault() : a.returnValue = false; +}; +var A = "closure_listenable_" + (1e6 * Math.random() | 0); +var Na = 0; +function Oa(a, b2, c, d, e) { + this.listener = a; + this.proxy = null; + this.src = b2; + this.type = c; + this.capture = !!d; + this.ha = e; + this.key = ++Na; + this.ba = this.ea = false; +} +function Pa(a) { + a.ba = true; + a.listener = null; + a.proxy = null; + a.src = null; + a.ha = null; +} +function Qa$1(a, b2, c) { + for (const d in a) + b2.call(c, a[d], d, a); +} +function Ra$1(a) { + const b2 = {}; + for (const c in a) + b2[c] = a[c]; + return b2; +} +const Sa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); +function Ta$1(a, b2) { + let c, d; + for (let e = 1; e < arguments.length; e++) { + d = arguments[e]; + for (c in d) + a[c] = d[c]; + for (let f = 0; f < Sa.length; f++) + c = Sa[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]); + } +} +function Ua(a) { + this.src = a; + this.g = {}; + this.h = 0; +} +Ua.prototype.add = function(a, b2, c, d, e) { + var f = a.toString(); + a = this.g[f]; + a || (a = this.g[f] = [], this.h++); + var h = Va(a, b2, d, e); + -1 < h ? (b2 = a[h], c || (b2.ea = false)) : (b2 = new Oa(b2, this.src, f, !!d, e), b2.ea = c, a.push(b2)); + return b2; +}; +function Wa$1(a, b2) { + var c = b2.type; + if (c in a.g) { + var d = a.g[c], e = la(d, b2), f; + (f = 0 <= e) && Array.prototype.splice.call(d, e, 1); + f && (Pa(b2), 0 == a.g[c].length && (delete a.g[c], a.h--)); + } +} +function Va(a, b2, c, d) { + for (var e = 0; e < a.length; ++e) { + var f = a[e]; + if (!f.ba && f.listener == b2 && f.capture == !!c && f.ha == d) + return e; + } + return -1; +} +var Xa$1 = "closure_lm_" + (1e6 * Math.random() | 0), Ya$1 = {}; +function $a(a, b2, c, d, e) { + if (d && d.once) + return ab(a, b2, c, d, e); + if (Array.isArray(b2)) { + for (var f = 0; f < b2.length; f++) + $a(a, b2[f], c, d, e); + return null; + } + c = bb(c); + return a && a[A] ? a.N(b2, c, p(d) ? !!d.capture : !!d, e) : cb(a, b2, c, false, d, e); +} +function cb(a, b2, c, d, e, f) { + if (!b2) + throw Error("Invalid event type"); + var h = p(e) ? !!e.capture : !!e, n = db$1(a); + n || (a[Xa$1] = n = new Ua(a)); + c = n.add(b2, c, d, h, f); + if (c.proxy) + return c; + d = eb(); + c.proxy = d; + d.src = a; + d.listener = c; + if (a.addEventListener) + oa || (e = h), void 0 === e && (e = false), a.addEventListener(b2.toString(), d, e); + else if (a.attachEvent) + a.attachEvent(fb(b2.toString()), d); + else if (a.addListener && a.removeListener) + a.addListener(d); + else + throw Error("addEventListener and attachEvent are unavailable."); + return c; +} +function eb() { + function a(c) { + return b2.call(a.src, a.listener, c); + } + const b2 = gb; + return a; +} +function ab(a, b2, c, d, e) { + if (Array.isArray(b2)) { + for (var f = 0; f < b2.length; f++) + ab(a, b2[f], c, d, e); + return null; + } + c = bb(c); + return a && a[A] ? a.O(b2, c, p(d) ? !!d.capture : !!d, e) : cb(a, b2, c, true, d, e); +} +function hb(a, b2, c, d, e) { + if (Array.isArray(b2)) + for (var f = 0; f < b2.length; f++) + hb(a, b2[f], c, d, e); + else + (d = p(d) ? !!d.capture : !!d, c = bb(c), a && a[A]) ? (a = a.i, b2 = String(b2).toString(), b2 in a.g && (f = a.g[b2], c = Va(f, c, d, e), -1 < c && (Pa(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b2], a.h--)))) : a && (a = db$1(a)) && (b2 = a.g[b2.toString()], a = -1, b2 && (a = Va(b2, c, d, e)), (c = -1 < a ? b2[a] : null) && ib(c)); +} +function ib(a) { + if ("number" !== typeof a && a && !a.ba) { + var b2 = a.src; + if (b2 && b2[A]) + Wa$1(b2.i, a); + else { + var c = a.type, d = a.proxy; + b2.removeEventListener ? b2.removeEventListener(c, d, a.capture) : b2.detachEvent ? b2.detachEvent(fb(c), d) : b2.addListener && b2.removeListener && b2.removeListener(d); + (c = db$1(b2)) ? (Wa$1(c, a), 0 == c.h && (c.src = null, b2[Xa$1] = null)) : Pa(a); + } + } +} +function fb(a) { + return a in Ya$1 ? Ya$1[a] : Ya$1[a] = "on" + a; +} +function gb(a, b2) { + if (a.ba) + a = true; + else { + b2 = new z$1(b2, this); + var c = a.listener, d = a.ha || a.src; + a.ea && ib(a); + a = c.call(d, b2); + } + return a; +} +function db$1(a) { + a = a[Xa$1]; + return a instanceof Ua ? a : null; +} +var jb = "__closure_events_fn_" + (1e9 * Math.random() >>> 0); +function bb(a) { + if ("function" === typeof a) + return a; + a[jb] || (a[jb] = function(b2) { + return a.handleEvent(b2); + }); + return a[jb]; +} +function B$1() { + v$1.call(this); + this.i = new Ua(this); + this.P = this; + this.I = null; +} +t(B$1, v$1); +B$1.prototype[A] = true; +B$1.prototype.removeEventListener = function(a, b2, c, d) { + hb(this, a, b2, c, d); +}; +function C$1(a, b2) { + var c, d = a.I; + if (d) + for (c = []; d; d = d.I) + c.push(d); + a = a.P; + d = b2.type || b2; + if ("string" === typeof b2) + b2 = new w(b2, a); + else if (b2 instanceof w) + b2.target = b2.target || a; + else { + var e = b2; + b2 = new w(d, a); + Ta$1(b2, e); + } + e = true; + if (c) + for (var f = c.length - 1; 0 <= f; f--) { + var h = b2.g = c[f]; + e = kb(h, d, true, b2) && e; + } + h = b2.g = a; + e = kb(h, d, true, b2) && e; + e = kb(h, d, false, b2) && e; + if (c) + for (f = 0; f < c.length; f++) + h = b2.g = c[f], e = kb(h, d, false, b2) && e; +} +B$1.prototype.M = function() { + B$1.X.M.call(this); + if (this.i) { + var a = this.i, c; + for (c in a.g) { + for (var d = a.g[c], e = 0; e < d.length; e++) + Pa(d[e]); + delete a.g[c]; + a.h--; + } + } + this.I = null; +}; +B$1.prototype.N = function(a, b2, c, d) { + return this.i.add(String(a), b2, false, c, d); +}; +B$1.prototype.O = function(a, b2, c, d) { + return this.i.add(String(a), b2, true, c, d); +}; +function kb(a, b2, c, d) { + b2 = a.i.g[String(b2)]; + if (!b2) + return true; + b2 = b2.concat(); + for (var e = true, f = 0; f < b2.length; ++f) { + var h = b2[f]; + if (h && !h.ba && h.capture == c) { + var n = h.listener, u = h.ha || h.src; + h.ea && Wa$1(a.i, h); + e = false !== n.call(u, d) && e; + } + } + return e && !d.defaultPrevented; +} +var lb = l.JSON.stringify; +function mb() { + var a = nb; + let b2 = null; + a.g && (b2 = a.g, a.g = a.g.next, a.g || (a.h = null), b2.next = null); + return b2; +} +class ob { + constructor() { + this.h = this.g = null; + } + add(a, b2) { + const c = pb.get(); + c.set(a, b2); + this.h ? this.h.next = c : this.g = c; + this.h = c; + } +} +var pb = new class { + constructor(a, b2) { + this.i = a; + this.j = b2; + this.h = 0; + this.g = null; + } + get() { + let a; + 0 < this.h ? (this.h--, a = this.g, this.g = a.next, a.next = null) : a = this.i(); + return a; + } +}(() => new qb(), (a) => a.reset()); +class qb { + constructor() { + this.next = this.g = this.h = null; + } + set(a, b2) { + this.h = a; + this.g = b2; + this.next = null; + } + reset() { + this.next = this.g = this.h = null; + } +} +function rb(a) { + l.setTimeout(() => { + throw a; + }, 0); +} +function sb(a, b2) { + ub || vb(); + wb || (ub(), wb = true); + nb.add(a, b2); +} +var ub; +function vb() { + var a = l.Promise.resolve(void 0); + ub = function() { + a.then(xb); + }; +} +var wb = false, nb = new ob(); +function xb() { + for (var a; a = mb(); ) { + try { + a.h.call(a.g); + } catch (c) { + rb(c); + } + var b2 = pb; + b2.j(a); + 100 > b2.h && (b2.h++, a.next = b2.g, b2.g = a); + } + wb = false; +} +function yb(a, b2) { + B$1.call(this); + this.h = a || 1; + this.g = b2 || l; + this.j = q$1(this.lb, this); + this.l = Date.now(); +} +t(yb, B$1); +k$1 = yb.prototype; +k$1.ca = false; +k$1.R = null; +k$1.lb = function() { + if (this.ca) { + var a = Date.now() - this.l; + 0 < a && a < 0.8 * this.h ? this.R = this.g.setTimeout(this.j, this.h - a) : (this.R && (this.g.clearTimeout(this.R), this.R = null), C$1(this, "tick"), this.ca && (zb(this), this.start())); + } +}; +k$1.start = function() { + this.ca = true; + this.R || (this.R = this.g.setTimeout(this.j, this.h), this.l = Date.now()); +}; +function zb(a) { + a.ca = false; + a.R && (a.g.clearTimeout(a.R), a.R = null); +} +k$1.M = function() { + yb.X.M.call(this); + zb(this); + delete this.g; +}; +function Ab(a, b2, c) { + if ("function" === typeof a) + c && (a = q$1(a, c)); + else if (a && "function" == typeof a.handleEvent) + a = q$1(a.handleEvent, a); + else + throw Error("Invalid listener argument"); + return 2147483647 < Number(b2) ? -1 : l.setTimeout(a, b2 || 0); +} +function Bb(a) { + a.g = Ab(() => { + a.g = null; + a.i && (a.i = false, Bb(a)); + }, a.j); + const b2 = a.h; + a.h = null; + a.m.apply(null, b2); +} +class Cb extends v$1 { + constructor(a, b2) { + super(); + this.m = a; + this.j = b2; + this.h = null; + this.i = false; + this.g = null; + } + l(a) { + this.h = arguments; + this.g ? this.i = true : Bb(this); + } + M() { + super.M(); + this.g && (l.clearTimeout(this.g), this.g = null, this.i = false, this.h = null); + } +} +function D(a) { + v$1.call(this); + this.h = a; + this.g = {}; +} +t(D, v$1); +var Db = []; +function Eb(a, b2, c, d) { + Array.isArray(c) || (c && (Db[0] = c.toString()), c = Db); + for (var e = 0; e < c.length; e++) { + var f = $a(b2, c[e], d || a.handleEvent, false, a.h || a); + if (!f) + break; + a.g[f.key] = f; + } +} +function Fb(a) { + Qa$1(a.g, function(b2, c) { + this.g.hasOwnProperty(c) && ib(b2); + }, a); + a.g = {}; +} +D.prototype.M = function() { + D.X.M.call(this); + Fb(this); +}; +D.prototype.handleEvent = function() { + throw Error("EventHandler.handleEvent not implemented"); +}; +function Gb() { + this.g = true; +} +Gb.prototype.Aa = function() { + this.g = false; +}; +function Hb(a, b2, c, d, e, f) { + a.info(function() { + if (a.g) + if (f) { + var h = ""; + for (var n = f.split("&"), u = 0; u < n.length; u++) { + var m = n[u].split("="); + if (1 < m.length) { + var r = m[0]; + m = m[1]; + var F2 = r.split("_"); + h = 2 <= F2.length && "type" == F2[1] ? h + (r + "=" + m + "&") : h + (r + "=redacted&"); + } + } + } else + h = null; + else + h = f; + return "XMLHTTP REQ (" + d + ") [attempt " + e + "]: " + b2 + "\n" + c + "\n" + h; + }); +} +function Ib(a, b2, c, d, e, f, h) { + a.info(function() { + return "XMLHTTP RESP (" + d + ") [ attempt " + e + "]: " + b2 + "\n" + c + "\n" + f + " " + h; + }); +} +function E(a, b2, c, d) { + a.info(function() { + return "XMLHTTP TEXT (" + b2 + "): " + Jb(a, c) + (d ? " " + d : ""); + }); +} +function Kb(a, b2) { + a.info(function() { + return "TIMEOUT: " + b2; + }); +} +Gb.prototype.info = function() { +}; +function Jb(a, b2) { + if (!a.g) + return b2; + if (!b2) + return null; + try { + var c = JSON.parse(b2); + if (c) { + for (a = 0; a < c.length; a++) + if (Array.isArray(c[a])) { + var d = c[a]; + if (!(2 > d.length)) { + var e = d[1]; + if (Array.isArray(e) && !(1 > e.length)) { + var f = e[0]; + if ("noop" != f && "stop" != f && "close" != f) + for (var h = 1; h < e.length; h++) + e[h] = ""; + } + } + } + } + return lb(c); + } catch (n) { + return b2; + } +} +var G$1 = {}, Lb = null; +function Mb() { + return Lb = Lb || new B$1(); +} +G$1.Pa = "serverreachability"; +function Nb(a) { + w.call(this, G$1.Pa, a); +} +t(Nb, w); +function H$1(a) { + const b2 = Mb(); + C$1(b2, new Nb(b2)); +} +G$1.STAT_EVENT = "statevent"; +function Ob(a, b2) { + w.call(this, G$1.STAT_EVENT, a); + this.stat = b2; +} +t(Ob, w); +function I(a) { + const b2 = Mb(); + C$1(b2, new Ob(b2, a)); +} +G$1.Qa = "timingevent"; +function Pb(a, b2) { + w.call(this, G$1.Qa, a); + this.size = b2; +} +t(Pb, w); +function J(a, b2) { + if ("function" !== typeof a) + throw Error("Fn must not be null and must be a function"); + return l.setTimeout(function() { + a(); + }, b2); +} +var Qb = { NO_ERROR: 0, mb: 1, zb: 2, yb: 3, tb: 4, xb: 5, Ab: 6, Ma: 7, TIMEOUT: 8, Db: 9 }; +var Rb = { rb: "complete", Nb: "success", Na: "error", Ma: "abort", Fb: "ready", Gb: "readystatechange", TIMEOUT: "timeout", Bb: "incrementaldata", Eb: "progress", ub: "downloadprogress", Vb: "uploadprogress" }; +function Sb() { +} +Sb.prototype.h = null; +function Tb(a) { + return a.h || (a.h = a.i()); +} +function Ub() { +} +var K$1 = { OPEN: "a", qb: "b", Na: "c", Cb: "d" }; +function Vb() { + w.call(this, "d"); +} +t(Vb, w); +function Wb() { + w.call(this, "c"); +} +t(Wb, w); +var Xb; +function Yb() { +} +t(Yb, Sb); +Yb.prototype.g = function() { + return new XMLHttpRequest(); +}; +Yb.prototype.i = function() { + return {}; +}; +Xb = new Yb(); +function L$1(a, b2, c, d) { + this.l = a; + this.j = b2; + this.m = c; + this.U = d || 1; + this.S = new D(this); + this.O = Zb; + a = ya ? 125 : void 0; + this.T = new yb(a); + this.H = null; + this.i = false; + this.s = this.A = this.v = this.K = this.F = this.V = this.B = null; + this.D = []; + this.g = null; + this.C = 0; + this.o = this.u = null; + this.Y = -1; + this.I = false; + this.N = 0; + this.L = null; + this.$ = this.J = this.Z = this.P = false; + this.h = new $b(); +} +function $b() { + this.i = null; + this.g = ""; + this.h = false; +} +var Zb = 45e3, ac$1 = {}, bc = {}; +k$1 = L$1.prototype; +k$1.setTimeout = function(a) { + this.O = a; +}; +function cc$1(a, b2, c) { + a.K = 1; + a.v = dc$1(M(b2)); + a.s = c; + a.P = true; + ec$1(a, null); +} +function ec$1(a, b2) { + a.F = Date.now(); + N$1(a); + a.A = M(a.v); + var c = a.A, d = a.U; + Array.isArray(d) || (d = [String(d)]); + fc$1(c.i, "t", d); + a.C = 0; + c = a.l.H; + a.h = new $b(); + a.g = gc$1(a.l, c ? b2 : null, !a.s); + 0 < a.N && (a.L = new Cb(q$1(a.La, a, a.g), a.N)); + Eb(a.S, a.g, "readystatechange", a.ib); + b2 = a.H ? Ra$1(a.H) : {}; + a.s ? (a.u || (a.u = "POST"), b2["Content-Type"] = "application/x-www-form-urlencoded", a.g.da(a.A, a.u, a.s, b2)) : (a.u = "GET", a.g.da(a.A, a.u, null, b2)); + H$1(); + Hb(a.j, a.u, a.A, a.m, a.U, a.s); +} +k$1.ib = function(a) { + a = a.target; + const b2 = this.L; + b2 && 3 == O$1(a) ? b2.l() : this.La(a); +}; +k$1.La = function(a) { + try { + if (a == this.g) + a: { + const r = O$1(this.g); + var b2 = this.g.Ea(); + const F2 = this.g.aa(); + if (!(3 > r) && (3 != r || ya || this.g && (this.h.h || this.g.fa() || hc$1(this.g)))) { + this.I || 4 != r || 7 == b2 || (8 == b2 || 0 >= F2 ? H$1(3) : H$1(2)); + ic$1(this); + var c = this.g.aa(); + this.Y = c; + b: + if (jc$1(this)) { + var d = hc$1(this.g); + a = ""; + var e = d.length, f = 4 == O$1(this.g); + if (!this.h.i) { + if ("undefined" === typeof TextDecoder) { + P$1(this); + Q$1(this); + var h = ""; + break b; + } + this.h.i = new l.TextDecoder(); + } + for (b2 = 0; b2 < e; b2++) + this.h.h = true, a += this.h.i.decode(d[b2], { stream: f && b2 == e - 1 }); + d.splice( + 0, + e + ); + this.h.g += a; + this.C = 0; + h = this.h.g; + } else + h = this.g.fa(); + this.i = 200 == c; + Ib(this.j, this.u, this.A, this.m, this.U, r, c); + if (this.i) { + if (this.Z && !this.J) { + b: { + if (this.g) { + var n, u = this.g; + if ((n = u.g ? u.g.getResponseHeader("X-HTTP-Initial-Response") : null) && !pa(n)) { + var m = n; + break b; + } + } + m = null; + } + if (c = m) + E(this.j, this.m, c, "Initial handshake response via X-HTTP-Initial-Response"), this.J = true, kc$1(this, c); + else { + this.i = false; + this.o = 3; + I(12); + P$1(this); + Q$1(this); + break a; + } + } + this.P ? (lc$1(this, r, h), ya && this.i && 3 == r && (Eb(this.S, this.T, "tick", this.hb), this.T.start())) : (E(this.j, this.m, h, null), kc$1(this, h)); + 4 == r && P$1(this); + this.i && !this.I && (4 == r ? mc$1(this.l, this) : (this.i = false, N$1(this))); + } else + 400 == c && 0 < h.indexOf("Unknown SID") ? (this.o = 3, I(12)) : (this.o = 0, I(13)), P$1(this), Q$1(this); + } + } + } catch (r) { + } finally { + } +}; +function jc$1(a) { + return a.g ? "GET" == a.u && 2 != a.K && a.l.Da : false; +} +function lc$1(a, b2, c) { + let d = true, e; + for (; !a.I && a.C < c.length; ) + if (e = nc$1(a, c), e == bc) { + 4 == b2 && (a.o = 4, I(14), d = false); + E(a.j, a.m, null, "[Incomplete Response]"); + break; + } else if (e == ac$1) { + a.o = 4; + I(15); + E(a.j, a.m, c, "[Invalid Chunk]"); + d = false; + break; + } else + E(a.j, a.m, e, null), kc$1(a, e); + jc$1(a) && e != bc && e != ac$1 && (a.h.g = "", a.C = 0); + 4 != b2 || 0 != c.length || a.h.h || (a.o = 1, I(16), d = false); + a.i = a.i && d; + d ? 0 < c.length && !a.$ && (a.$ = true, b2 = a.l, b2.g == a && b2.$ && !b2.K && (b2.j.info("Great, no buffering proxy detected. Bytes received: " + c.length), oc$1(b2), b2.K = true, I(11))) : (E( + a.j, + a.m, + c, + "[Invalid Chunked Response]" + ), P$1(a), Q$1(a)); +} +k$1.hb = function() { + if (this.g) { + var a = O$1(this.g), b2 = this.g.fa(); + this.C < b2.length && (ic$1(this), lc$1(this, a, b2), this.i && 4 != a && N$1(this)); + } +}; +function nc$1(a, b2) { + var c = a.C, d = b2.indexOf("\n", c); + if (-1 == d) + return bc; + c = Number(b2.substring(c, d)); + if (isNaN(c)) + return ac$1; + d += 1; + if (d + c > b2.length) + return bc; + b2 = b2.substr(d, c); + a.C = d + c; + return b2; +} +k$1.cancel = function() { + this.I = true; + P$1(this); +}; +function N$1(a) { + a.V = Date.now() + a.O; + pc$1(a, a.O); +} +function pc$1(a, b2) { + if (null != a.B) + throw Error("WatchDog timer not null"); + a.B = J(q$1(a.gb, a), b2); +} +function ic$1(a) { + a.B && (l.clearTimeout(a.B), a.B = null); +} +k$1.gb = function() { + this.B = null; + const a = Date.now(); + 0 <= a - this.V ? (Kb(this.j, this.A), 2 != this.K && (H$1(), I(17)), P$1(this), this.o = 2, Q$1(this)) : pc$1(this, this.V - a); +}; +function Q$1(a) { + 0 == a.l.G || a.I || mc$1(a.l, a); +} +function P$1(a) { + ic$1(a); + var b2 = a.L; + b2 && "function" == typeof b2.na && b2.na(); + a.L = null; + zb(a.T); + Fb(a.S); + a.g && (b2 = a.g, a.g = null, b2.abort(), b2.na()); +} +function kc$1(a, b2) { + try { + var c = a.l; + if (0 != c.G && (c.g == a || qc$1(c.h, a))) { + if (!a.J && qc$1(c.h, a) && 3 == c.G) { + try { + var d = c.Fa.g.parse(b2); + } catch (m) { + d = null; + } + if (Array.isArray(d) && 3 == d.length) { + var e = d; + if (0 == e[0]) + a: { + if (!c.u) { + if (c.g) + if (c.g.F + 3e3 < a.F) + rc$1(c), sc$1(c); + else + break a; + tc$1(c); + I(18); + } + } + else + c.Ba = e[1], 0 < c.Ba - c.T && 37500 > e[2] && c.L && 0 == c.A && !c.v && (c.v = J(q$1(c.cb, c), 6e3)); + if (1 >= uc$1(c.h) && c.ja) { + try { + c.ja(); + } catch (m) { + } + c.ja = void 0; + } + } else + R(c, 11); + } else if ((a.J || c.g == a) && rc$1(c), !pa(b2)) + for (e = c.Fa.g.parse(b2), b2 = 0; b2 < e.length; b2++) { + let m = e[b2]; + c.T = m[0]; + m = m[1]; + if (2 == c.G) + if ("c" == m[0]) { + c.I = m[1]; + c.ka = m[2]; + const r = m[3]; + null != r && (c.ma = r, c.j.info("VER=" + c.ma)); + const F2 = m[4]; + null != F2 && (c.Ca = F2, c.j.info("SVER=" + c.Ca)); + const Ca = m[5]; + null != Ca && "number" === typeof Ca && 0 < Ca && (d = 1.5 * Ca, c.J = d, c.j.info("backChannelRequestTimeoutMs_=" + d)); + d = c; + const Z2 = a.g; + if (Z2) { + const Da2 = Z2.g ? Z2.g.getResponseHeader("X-Client-Wire-Protocol") : null; + if (Da2) { + var f = d.h; + f.g || -1 == Da2.indexOf("spdy") && -1 == Da2.indexOf("quic") && -1 == Da2.indexOf("h2") || (f.j = f.l, f.g = /* @__PURE__ */ new Set(), f.h && (vc(f, f.h), f.h = null)); + } + if (d.D) { + const tb = Z2.g ? Z2.g.getResponseHeader("X-HTTP-Session-Id") : null; + tb && (d.za = tb, S$1(d.F, d.D, tb)); + } + } + c.G = 3; + c.l && c.l.xa(); + c.$ && (c.P = Date.now() - a.F, c.j.info("Handshake RTT: " + c.P + "ms")); + d = c; + var h = a; + d.sa = wc$1(d, d.H ? d.ka : null, d.V); + if (h.J) { + xc$1(d.h, h); + var n = h, u = d.J; + u && n.setTimeout(u); + n.B && (ic$1(n), N$1(n)); + d.g = h; + } else + yc$1(d); + 0 < c.i.length && zc$1(c); + } else + "stop" != m[0] && "close" != m[0] || R(c, 7); + else + 3 == c.G && ("stop" == m[0] || "close" == m[0] ? "stop" == m[0] ? R(c, 7) : Ac$1(c) : "noop" != m[0] && c.l && c.l.wa(m), c.A = 0); + } + } + H$1(4); + } catch (m) { + } +} +function Bc$1(a) { + if (a.W && "function" == typeof a.W) + return a.W(); + if ("undefined" !== typeof Map && a instanceof Map || "undefined" !== typeof Set && a instanceof Set) + return Array.from(a.values()); + if ("string" === typeof a) + return a.split(""); + if (ba$1(a)) { + for (var b2 = [], c = a.length, d = 0; d < c; d++) + b2.push(a[d]); + return b2; + } + b2 = []; + c = 0; + for (d in a) + b2[c++] = a[d]; + return b2; +} +function Cc$1(a) { + if (a.oa && "function" == typeof a.oa) + return a.oa(); + if (!a.W || "function" != typeof a.W) { + if ("undefined" !== typeof Map && a instanceof Map) + return Array.from(a.keys()); + if (!("undefined" !== typeof Set && a instanceof Set)) { + if (ba$1(a) || "string" === typeof a) { + var b2 = []; + a = a.length; + for (var c = 0; c < a; c++) + b2.push(c); + return b2; + } + b2 = []; + c = 0; + for (const d in a) + b2[c++] = d; + return b2; + } + } +} +function Dc$1(a, b2) { + if (a.forEach && "function" == typeof a.forEach) + a.forEach(b2, void 0); + else if (ba$1(a) || "string" === typeof a) + Array.prototype.forEach.call(a, b2, void 0); + else + for (var c = Cc$1(a), d = Bc$1(a), e = d.length, f = 0; f < e; f++) + b2.call(void 0, d[f], c && c[f], a); +} +var Ec$1 = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$"); +function Fc$1(a, b2) { + if (a) { + a = a.split("&"); + for (var c = 0; c < a.length; c++) { + var d = a[c].indexOf("="), e = null; + if (0 <= d) { + var f = a[c].substring(0, d); + e = a[c].substring(d + 1); + } else + f = a[c]; + b2(f, e ? decodeURIComponent(e.replace(/\+/g, " ")) : ""); + } + } +} +function T(a, b2) { + this.g = this.s = this.j = ""; + this.m = null; + this.o = this.l = ""; + this.h = false; + if (a instanceof T) { + this.h = void 0 !== b2 ? b2 : a.h; + Gc$1(this, a.j); + this.s = a.s; + this.g = a.g; + Hc$1(this, a.m); + this.l = a.l; + b2 = a.i; + var c = new Ic$1(); + c.i = b2.i; + b2.g && (c.g = new Map(b2.g), c.h = b2.h); + Jc$1(this, c); + this.o = a.o; + } else + a && (c = String(a).match(Ec$1)) ? (this.h = !!b2, Gc$1(this, c[1] || "", true), this.s = Kc(c[2] || ""), this.g = Kc(c[3] || "", true), Hc$1(this, c[4]), this.l = Kc(c[5] || "", true), Jc$1(this, c[6] || "", true), this.o = Kc(c[7] || "")) : (this.h = !!b2, this.i = new Ic$1(null, this.h)); +} +T.prototype.toString = function() { + var a = [], b2 = this.j; + b2 && a.push(Lc$1(b2, Mc$1, true), ":"); + var c = this.g; + if (c || "file" == b2) + a.push("//"), (b2 = this.s) && a.push(Lc$1(b2, Mc$1, true), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.m, null != c && a.push(":", String(c)); + if (c = this.l) + this.g && "/" != c.charAt(0) && a.push("/"), a.push(Lc$1(c, "/" == c.charAt(0) ? Nc$1 : Oc$1, true)); + (c = this.i.toString()) && a.push("?", c); + (c = this.o) && a.push("#", Lc$1(c, Pc)); + return a.join(""); +}; +function M(a) { + return new T(a); +} +function Gc$1(a, b2, c) { + a.j = c ? Kc(b2, true) : b2; + a.j && (a.j = a.j.replace(/:$/, "")); +} +function Hc$1(a, b2) { + if (b2) { + b2 = Number(b2); + if (isNaN(b2) || 0 > b2) + throw Error("Bad port number " + b2); + a.m = b2; + } else + a.m = null; +} +function Jc$1(a, b2, c) { + b2 instanceof Ic$1 ? (a.i = b2, Qc$1(a.i, a.h)) : (c || (b2 = Lc$1(b2, Rc)), a.i = new Ic$1(b2, a.h)); +} +function S$1(a, b2, c) { + a.i.set(b2, c); +} +function dc$1(a) { + S$1(a, "zx", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ Date.now()).toString(36)); + return a; +} +function Kc(a, b2) { + return a ? b2 ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : ""; +} +function Lc$1(a, b2, c) { + return "string" === typeof a ? (a = encodeURI(a).replace(b2, Sc$1), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null; +} +function Sc$1(a) { + a = a.charCodeAt(0); + return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); +} +var Mc$1 = /[#\/\?@]/g, Oc$1 = /[#\?:]/g, Nc$1 = /[#\?]/g, Rc = /[#\?@]/g, Pc = /#/g; +function Ic$1(a, b2) { + this.h = this.g = null; + this.i = a || null; + this.j = !!b2; +} +function U$1(a) { + a.g || (a.g = /* @__PURE__ */ new Map(), a.h = 0, a.i && Fc$1(a.i, function(b2, c) { + a.add(decodeURIComponent(b2.replace(/\+/g, " ")), c); + })); +} +k$1 = Ic$1.prototype; +k$1.add = function(a, b2) { + U$1(this); + this.i = null; + a = V$1(this, a); + var c = this.g.get(a); + c || this.g.set(a, c = []); + c.push(b2); + this.h += 1; + return this; +}; +function Tc$1(a, b2) { + U$1(a); + b2 = V$1(a, b2); + a.g.has(b2) && (a.i = null, a.h -= a.g.get(b2).length, a.g.delete(b2)); +} +function Uc$1(a, b2) { + U$1(a); + b2 = V$1(a, b2); + return a.g.has(b2); +} +k$1.forEach = function(a, b2) { + U$1(this); + this.g.forEach(function(c, d) { + c.forEach(function(e) { + a.call(b2, e, d, this); + }, this); + }, this); +}; +k$1.oa = function() { + U$1(this); + const a = Array.from(this.g.values()), b2 = Array.from(this.g.keys()), c = []; + for (let d = 0; d < b2.length; d++) { + const e = a[d]; + for (let f = 0; f < e.length; f++) + c.push(b2[d]); + } + return c; +}; +k$1.W = function(a) { + U$1(this); + let b2 = []; + if ("string" === typeof a) + Uc$1(this, a) && (b2 = b2.concat(this.g.get(V$1(this, a)))); + else { + a = Array.from(this.g.values()); + for (let c = 0; c < a.length; c++) + b2 = b2.concat(a[c]); + } + return b2; +}; +k$1.set = function(a, b2) { + U$1(this); + this.i = null; + a = V$1(this, a); + Uc$1(this, a) && (this.h -= this.g.get(a).length); + this.g.set(a, [b2]); + this.h += 1; + return this; +}; +k$1.get = function(a, b2) { + if (!a) + return b2; + a = this.W(a); + return 0 < a.length ? String(a[0]) : b2; +}; +function fc$1(a, b2, c) { + Tc$1(a, b2); + 0 < c.length && (a.i = null, a.g.set(V$1(a, b2), ma(c)), a.h += c.length); +} +k$1.toString = function() { + if (this.i) + return this.i; + if (!this.g) + return ""; + const a = [], b2 = Array.from(this.g.keys()); + for (var c = 0; c < b2.length; c++) { + var d = b2[c]; + const f = encodeURIComponent(String(d)), h = this.W(d); + for (d = 0; d < h.length; d++) { + var e = f; + "" !== h[d] && (e += "=" + encodeURIComponent(String(h[d]))); + a.push(e); + } + } + return this.i = a.join("&"); +}; +function V$1(a, b2) { + b2 = String(b2); + a.j && (b2 = b2.toLowerCase()); + return b2; +} +function Qc$1(a, b2) { + b2 && !a.j && (U$1(a), a.i = null, a.g.forEach(function(c, d) { + var e = d.toLowerCase(); + d != e && (Tc$1(this, d), fc$1(this, e, c)); + }, a)); + a.j = b2; +} +var Vc$1 = class { + constructor(a, b2) { + this.h = a; + this.g = b2; + } +}; +function Wc$1(a) { + this.l = a || Xc$1; + l.PerformanceNavigationTiming ? (a = l.performance.getEntriesByType("navigation"), a = 0 < a.length && ("hq" == a[0].nextHopProtocol || "h2" == a[0].nextHopProtocol)) : a = !!(l.g && l.g.Ga && l.g.Ga() && l.g.Ga().$b); + this.j = a ? this.l : 1; + this.g = null; + 1 < this.j && (this.g = /* @__PURE__ */ new Set()); + this.h = null; + this.i = []; +} +var Xc$1 = 10; +function Yc$1(a) { + return a.h ? true : a.g ? a.g.size >= a.j : false; +} +function uc$1(a) { + return a.h ? 1 : a.g ? a.g.size : 0; +} +function qc$1(a, b2) { + return a.h ? a.h == b2 : a.g ? a.g.has(b2) : false; +} +function vc(a, b2) { + a.g ? a.g.add(b2) : a.h = b2; +} +function xc$1(a, b2) { + a.h && a.h == b2 ? a.h = null : a.g && a.g.has(b2) && a.g.delete(b2); +} +Wc$1.prototype.cancel = function() { + this.i = Zc$1(this); + if (this.h) + this.h.cancel(), this.h = null; + else if (this.g && 0 !== this.g.size) { + for (const a of this.g.values()) + a.cancel(); + this.g.clear(); + } +}; +function Zc$1(a) { + if (null != a.h) + return a.i.concat(a.h.D); + if (null != a.g && 0 !== a.g.size) { + let b2 = a.i; + for (const c of a.g.values()) + b2 = b2.concat(c.D); + return b2; + } + return ma(a.i); +} +function $c$1() { +} +$c$1.prototype.stringify = function(a) { + return l.JSON.stringify(a, void 0); +}; +$c$1.prototype.parse = function(a) { + return l.JSON.parse(a, void 0); +}; +function ad() { + this.g = new $c$1(); +} +function bd(a, b2, c) { + const d = c || ""; + try { + Dc$1(a, function(e, f) { + let h = e; + p(e) && (h = lb(e)); + b2.push(d + f + "=" + encodeURIComponent(h)); + }); + } catch (e) { + throw b2.push(d + "type=" + encodeURIComponent("_badmap")), e; + } +} +function cd(a, b2) { + const c = new Gb(); + if (l.Image) { + const d = new Image(); + d.onload = ia(dd, c, d, "TestLoadImage: loaded", true, b2); + d.onerror = ia(dd, c, d, "TestLoadImage: error", false, b2); + d.onabort = ia(dd, c, d, "TestLoadImage: abort", false, b2); + d.ontimeout = ia(dd, c, d, "TestLoadImage: timeout", false, b2); + l.setTimeout(function() { + if (d.ontimeout) + d.ontimeout(); + }, 1e4); + d.src = a; + } else + b2(false); +} +function dd(a, b2, c, d, e) { + try { + b2.onload = null, b2.onerror = null, b2.onabort = null, b2.ontimeout = null, e(d); + } catch (f) { + } +} +function ed(a) { + this.l = a.ac || null; + this.j = a.jb || false; +} +t(ed, Sb); +ed.prototype.g = function() { + return new fd(this.l, this.j); +}; +ed.prototype.i = function(a) { + return function() { + return a; + }; +}({}); +function fd(a, b2) { + B$1.call(this); + this.D = a; + this.u = b2; + this.m = void 0; + this.readyState = gd; + this.status = 0; + this.responseType = this.responseText = this.response = this.statusText = ""; + this.onreadystatechange = null; + this.v = new Headers(); + this.h = null; + this.C = "GET"; + this.B = ""; + this.g = false; + this.A = this.j = this.l = null; +} +t(fd, B$1); +var gd = 0; +k$1 = fd.prototype; +k$1.open = function(a, b2) { + if (this.readyState != gd) + throw this.abort(), Error("Error reopening a connection"); + this.C = a; + this.B = b2; + this.readyState = 1; + hd(this); +}; +k$1.send = function(a) { + if (1 != this.readyState) + throw this.abort(), Error("need to call open() first. "); + this.g = true; + const b2 = { headers: this.v, method: this.C, credentials: this.m, cache: void 0 }; + a && (b2.body = a); + (this.D || l).fetch(new Request(this.B, b2)).then(this.Wa.bind(this), this.ga.bind(this)); +}; +k$1.abort = function() { + this.response = this.responseText = ""; + this.v = new Headers(); + this.status = 0; + this.j && this.j.cancel("Request was aborted.").catch(() => { + }); + 1 <= this.readyState && this.g && 4 != this.readyState && (this.g = false, id(this)); + this.readyState = gd; +}; +k$1.Wa = function(a) { + if (this.g && (this.l = a, this.h || (this.status = this.l.status, this.statusText = this.l.statusText, this.h = a.headers, this.readyState = 2, hd(this)), this.g && (this.readyState = 3, hd(this), this.g))) + if ("arraybuffer" === this.responseType) + a.arrayBuffer().then(this.Ua.bind(this), this.ga.bind(this)); + else if ("undefined" !== typeof l.ReadableStream && "body" in a) { + this.j = a.body.getReader(); + if (this.u) { + if (this.responseType) + throw Error('responseType must be empty for "streamBinaryChunks" mode responses.'); + this.response = []; + } else + this.response = this.responseText = "", this.A = new TextDecoder(); + jd(this); + } else + a.text().then(this.Va.bind(this), this.ga.bind(this)); +}; +function jd(a) { + a.j.read().then(a.Ta.bind(a)).catch(a.ga.bind(a)); +} +k$1.Ta = function(a) { + if (this.g) { + if (this.u && a.value) + this.response.push(a.value); + else if (!this.u) { + var b2 = a.value ? a.value : new Uint8Array(0); + if (b2 = this.A.decode(b2, { stream: !a.done })) + this.response = this.responseText += b2; + } + a.done ? id(this) : hd(this); + 3 == this.readyState && jd(this); + } +}; +k$1.Va = function(a) { + this.g && (this.response = this.responseText = a, id(this)); +}; +k$1.Ua = function(a) { + this.g && (this.response = a, id(this)); +}; +k$1.ga = function() { + this.g && id(this); +}; +function id(a) { + a.readyState = 4; + a.l = null; + a.j = null; + a.A = null; + hd(a); +} +k$1.setRequestHeader = function(a, b2) { + this.v.append(a, b2); +}; +k$1.getResponseHeader = function(a) { + return this.h ? this.h.get(a.toLowerCase()) || "" : ""; +}; +k$1.getAllResponseHeaders = function() { + if (!this.h) + return ""; + const a = [], b2 = this.h.entries(); + for (var c = b2.next(); !c.done; ) + c = c.value, a.push(c[0] + ": " + c[1]), c = b2.next(); + return a.join("\r\n"); +}; +function hd(a) { + a.onreadystatechange && a.onreadystatechange.call(a); +} +Object.defineProperty(fd.prototype, "withCredentials", { get: function() { + return "include" === this.m; +}, set: function(a) { + this.m = a ? "include" : "same-origin"; +} }); +var kd = l.JSON.parse; +function W$1(a) { + B$1.call(this); + this.headers = /* @__PURE__ */ new Map(); + this.u = a || null; + this.h = false; + this.C = this.g = null; + this.H = ""; + this.m = 0; + this.j = ""; + this.l = this.F = this.v = this.D = false; + this.B = 0; + this.A = null; + this.J = ld; + this.K = this.L = false; +} +t(W$1, B$1); +var ld = "", md = /^https?$/i, nd = ["POST", "PUT"]; +k$1 = W$1.prototype; +k$1.Ka = function(a) { + this.L = a; +}; +k$1.da = function(a, b2, c, d) { + if (this.g) + throw Error("[goog.net.XhrIo] Object is active with another request=" + this.H + "; newUri=" + a); + b2 = b2 ? b2.toUpperCase() : "GET"; + this.H = a; + this.j = ""; + this.m = 0; + this.D = false; + this.h = true; + this.g = this.u ? this.u.g() : Xb.g(); + this.C = this.u ? Tb(this.u) : Tb(Xb); + this.g.onreadystatechange = q$1(this.Ha, this); + try { + this.F = true, this.g.open(b2, String(a), true), this.F = false; + } catch (f) { + od(this, f); + return; + } + a = c || ""; + c = new Map(this.headers); + if (d) + if (Object.getPrototypeOf(d) === Object.prototype) + for (var e in d) + c.set(e, d[e]); + else if ("function" === typeof d.keys && "function" === typeof d.get) + for (const f of d.keys()) + c.set(f, d.get(f)); + else + throw Error("Unknown input type for opt_headers: " + String(d)); + d = Array.from(c.keys()).find((f) => "content-type" == f.toLowerCase()); + e = l.FormData && a instanceof l.FormData; + !(0 <= la(nd, b2)) || d || e || c.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + for (const [f, h] of c) + this.g.setRequestHeader(f, h); + this.J && (this.g.responseType = this.J); + "withCredentials" in this.g && this.g.withCredentials !== this.L && (this.g.withCredentials = this.L); + try { + pd(this), 0 < this.B && ((this.K = qd(this.g)) ? (this.g.timeout = this.B, this.g.ontimeout = q$1(this.qa, this)) : this.A = Ab(this.qa, this.B, this)), this.v = true, this.g.send(a), this.v = false; + } catch (f) { + od(this, f); + } +}; +function qd(a) { + return y && Ia() && "number" === typeof a.timeout && void 0 !== a.ontimeout; +} +k$1.qa = function() { + "undefined" != typeof goog && this.g && (this.j = "Timed out after " + this.B + "ms, aborting", this.m = 8, C$1(this, "timeout"), this.abort(8)); +}; +function od(a, b2) { + a.h = false; + a.g && (a.l = true, a.g.abort(), a.l = false); + a.j = b2; + a.m = 5; + rd(a); + sd(a); +} +function rd(a) { + a.D || (a.D = true, C$1(a, "complete"), C$1(a, "error")); +} +k$1.abort = function(a) { + this.g && this.h && (this.h = false, this.l = true, this.g.abort(), this.l = false, this.m = a || 7, C$1(this, "complete"), C$1(this, "abort"), sd(this)); +}; +k$1.M = function() { + this.g && (this.h && (this.h = false, this.l = true, this.g.abort(), this.l = false), sd(this, true)); + W$1.X.M.call(this); +}; +k$1.Ha = function() { + this.s || (this.F || this.v || this.l ? td(this) : this.fb()); +}; +k$1.fb = function() { + td(this); +}; +function td(a) { + if (a.h && "undefined" != typeof goog && (!a.C[1] || 4 != O$1(a) || 2 != a.aa())) { + if (a.v && 4 == O$1(a)) + Ab(a.Ha, 0, a); + else if (C$1(a, "readystatechange"), 4 == O$1(a)) { + a.h = false; + try { + const n = a.aa(); + a: + switch (n) { + case 200: + case 201: + case 202: + case 204: + case 206: + case 304: + case 1223: + var b2 = true; + break a; + default: + b2 = false; + } + var c; + if (!(c = b2)) { + var d; + if (d = 0 === n) { + var e = String(a.H).match(Ec$1)[1] || null; + if (!e && l.self && l.self.location) { + var f = l.self.location.protocol; + e = f.substr(0, f.length - 1); + } + d = !md.test(e ? e.toLowerCase() : ""); + } + c = d; + } + if (c) + C$1(a, "complete"), C$1( + a, + "success" + ); + else { + a.m = 6; + try { + var h = 2 < O$1(a) ? a.g.statusText : ""; + } catch (u) { + h = ""; + } + a.j = h + " [" + a.aa() + "]"; + rd(a); + } + } finally { + sd(a); + } + } + } +} +function sd(a, b2) { + if (a.g) { + pd(a); + const c = a.g, d = a.C[0] ? aa$1 : null; + a.g = null; + a.C = null; + b2 || C$1(a, "ready"); + try { + c.onreadystatechange = d; + } catch (e) { + } + } +} +function pd(a) { + a.g && a.K && (a.g.ontimeout = null); + a.A && (l.clearTimeout(a.A), a.A = null); +} +function O$1(a) { + return a.g ? a.g.readyState : 0; +} +k$1.aa = function() { + try { + return 2 < O$1(this) ? this.g.status : -1; + } catch (a) { + return -1; + } +}; +k$1.fa = function() { + try { + return this.g ? this.g.responseText : ""; + } catch (a) { + return ""; + } +}; +k$1.Sa = function(a) { + if (this.g) { + var b2 = this.g.responseText; + a && 0 == b2.indexOf(a) && (b2 = b2.substring(a.length)); + return kd(b2); + } +}; +function hc$1(a) { + try { + if (!a.g) + return null; + if ("response" in a.g) + return a.g.response; + switch (a.J) { + case ld: + case "text": + return a.g.responseText; + case "arraybuffer": + if ("mozResponseArrayBuffer" in a.g) + return a.g.mozResponseArrayBuffer; + } + return null; + } catch (b2) { + return null; + } +} +k$1.Ea = function() { + return this.m; +}; +k$1.Oa = function() { + return "string" === typeof this.j ? this.j : String(this.j); +}; +function ud(a) { + let b2 = ""; + Qa$1(a, function(c, d) { + b2 += d; + b2 += ":"; + b2 += c; + b2 += "\r\n"; + }); + return b2; +} +function vd(a, b2, c) { + a: { + for (d in c) { + var d = false; + break a; + } + d = true; + } + d || (c = ud(c), "string" === typeof a ? null != c && encodeURIComponent(String(c)) : S$1(a, b2, c)); +} +function wd(a, b2, c) { + return c && c.internalChannelParams ? c.internalChannelParams[a] || b2 : b2; +} +function xd(a) { + this.Ca = 0; + this.i = []; + this.j = new Gb(); + this.ka = this.sa = this.F = this.V = this.g = this.za = this.D = this.ia = this.o = this.S = this.s = null; + this.ab = this.U = 0; + this.Za = wd("failFast", false, a); + this.L = this.v = this.u = this.m = this.l = null; + this.Y = true; + this.pa = this.Ba = this.T = -1; + this.Z = this.A = this.C = 0; + this.Xa = wd("baseRetryDelayMs", 5e3, a); + this.bb = wd("retryDelaySeedMs", 1e4, a); + this.$a = wd("forwardChannelMaxRetries", 2, a); + this.ta = wd("forwardChannelRequestTimeoutMs", 2e4, a); + this.ra = a && a.xmlHttpFactory || void 0; + this.Da = a && a.Zb || false; + this.J = void 0; + this.H = a && a.supportsCrossDomainXhr || false; + this.I = ""; + this.h = new Wc$1(a && a.concurrentRequestLimit); + this.Fa = new ad(); + this.O = a && a.fastHandshake || false; + this.N = a && a.encodeInitMessageHeaders || false; + this.O && this.N && (this.N = false); + this.Ya = a && a.Xb || false; + a && a.Aa && this.j.Aa(); + a && a.forceLongPolling && (this.Y = false); + this.$ = !this.O && this.Y && a && a.detectBufferingProxy || false; + this.ja = void 0; + this.P = 0; + this.K = false; + this.la = this.B = null; +} +k$1 = xd.prototype; +k$1.ma = 8; +k$1.G = 1; +function Ac$1(a) { + yd(a); + if (3 == a.G) { + var b2 = a.U++, c = M(a.F); + S$1(c, "SID", a.I); + S$1(c, "RID", b2); + S$1(c, "TYPE", "terminate"); + zd(a, c); + b2 = new L$1(a, a.j, b2, void 0); + b2.K = 2; + b2.v = dc$1(M(c)); + c = false; + l.navigator && l.navigator.sendBeacon && (c = l.navigator.sendBeacon(b2.v.toString(), "")); + !c && l.Image && (new Image().src = b2.v, c = true); + c || (b2.g = gc$1(b2.l, null), b2.g.da(b2.v)); + b2.F = Date.now(); + N$1(b2); + } + Ad(a); +} +function sc$1(a) { + a.g && (oc$1(a), a.g.cancel(), a.g = null); +} +function yd(a) { + sc$1(a); + a.u && (l.clearTimeout(a.u), a.u = null); + rc$1(a); + a.h.cancel(); + a.m && ("number" === typeof a.m && l.clearTimeout(a.m), a.m = null); +} +function zc$1(a) { + Yc$1(a.h) || a.m || (a.m = true, sb(a.Ja, a), a.C = 0); +} +function Bd(a, b2) { + if (uc$1(a.h) >= a.h.j - (a.m ? 1 : 0)) + return false; + if (a.m) + return a.i = b2.D.concat(a.i), true; + if (1 == a.G || 2 == a.G || a.C >= (a.Za ? 0 : a.$a)) + return false; + a.m = J(q$1(a.Ja, a, b2), Cd(a, a.C)); + a.C++; + return true; +} +k$1.Ja = function(a) { + if (this.m) + if (this.m = null, 1 == this.G) { + if (!a) { + this.U = Math.floor(1e5 * Math.random()); + a = this.U++; + const e = new L$1(this, this.j, a, void 0); + let f = this.s; + this.S && (f ? (f = Ra$1(f), Ta$1(f, this.S)) : f = this.S); + null !== this.o || this.N || (e.H = f, f = null); + if (this.O) + a: { + var b2 = 0; + for (var c = 0; c < this.i.length; c++) { + b: { + var d = this.i[c]; + if ("__data__" in d.g && (d = d.g.__data__, "string" === typeof d)) { + d = d.length; + break b; + } + d = void 0; + } + if (void 0 === d) + break; + b2 += d; + if (4096 < b2) { + b2 = c; + break a; + } + if (4096 === b2 || c === this.i.length - 1) { + b2 = c + 1; + break a; + } + } + b2 = 1e3; + } + else + b2 = 1e3; + b2 = Dd(this, e, b2); + c = M(this.F); + S$1(c, "RID", a); + S$1(c, "CVER", 22); + this.D && S$1(c, "X-HTTP-Session-Id", this.D); + zd(this, c); + f && (this.N ? b2 = "headers=" + encodeURIComponent(String(ud(f))) + "&" + b2 : this.o && vd(c, this.o, f)); + vc(this.h, e); + this.Ya && S$1(c, "TYPE", "init"); + this.O ? (S$1(c, "$req", b2), S$1(c, "SID", "null"), e.Z = true, cc$1(e, c, null)) : cc$1(e, c, b2); + this.G = 2; + } + } else + 3 == this.G && (a ? Ed(this, a) : 0 == this.i.length || Yc$1(this.h) || Ed(this)); +}; +function Ed(a, b2) { + var c; + b2 ? c = b2.m : c = a.U++; + const d = M(a.F); + S$1(d, "SID", a.I); + S$1(d, "RID", c); + S$1(d, "AID", a.T); + zd(a, d); + a.o && a.s && vd(d, a.o, a.s); + c = new L$1(a, a.j, c, a.C + 1); + null === a.o && (c.H = a.s); + b2 && (a.i = b2.D.concat(a.i)); + b2 = Dd(a, c, 1e3); + c.setTimeout(Math.round(0.5 * a.ta) + Math.round(0.5 * a.ta * Math.random())); + vc(a.h, c); + cc$1(c, d, b2); +} +function zd(a, b2) { + a.ia && Qa$1(a.ia, function(c, d) { + S$1(b2, d, c); + }); + a.l && Dc$1({}, function(c, d) { + S$1(b2, d, c); + }); +} +function Dd(a, b2, c) { + c = Math.min(a.i.length, c); + var d = a.l ? q$1(a.l.Ra, a.l, a) : null; + a: { + var e = a.i; + let f = -1; + for (; ; ) { + const h = ["count=" + c]; + -1 == f ? 0 < c ? (f = e[0].h, h.push("ofs=" + f)) : f = 0 : h.push("ofs=" + f); + let n = true; + for (let u = 0; u < c; u++) { + let m = e[u].h; + const r = e[u].g; + m -= f; + if (0 > m) + f = Math.max(0, e[u].h - 100), n = false; + else + try { + bd(r, h, "req" + m + "_"); + } catch (F2) { + d && d(r); + } + } + if (n) { + d = h.join("&"); + break a; + } + } + } + a = a.i.splice(0, c); + b2.D = a; + return d; +} +function yc$1(a) { + a.g || a.u || (a.Z = 1, sb(a.Ia, a), a.A = 0); +} +function tc$1(a) { + if (a.g || a.u || 3 <= a.A) + return false; + a.Z++; + a.u = J(q$1(a.Ia, a), Cd(a, a.A)); + a.A++; + return true; +} +k$1.Ia = function() { + this.u = null; + Fd(this); + if (this.$ && !(this.K || null == this.g || 0 >= this.P)) { + var a = 2 * this.P; + this.j.info("BP detection timer enabled: " + a); + this.B = J(q$1(this.eb, this), a); + } +}; +k$1.eb = function() { + this.B && (this.B = null, this.j.info("BP detection timeout reached."), this.j.info("Buffering proxy detected and switch to long-polling!"), this.L = false, this.K = true, I(10), sc$1(this), Fd(this)); +}; +function oc$1(a) { + null != a.B && (l.clearTimeout(a.B), a.B = null); +} +function Fd(a) { + a.g = new L$1(a, a.j, "rpc", a.Z); + null === a.o && (a.g.H = a.s); + a.g.N = 0; + var b2 = M(a.sa); + S$1(b2, "RID", "rpc"); + S$1(b2, "SID", a.I); + S$1(b2, "CI", a.L ? "0" : "1"); + S$1(b2, "AID", a.T); + S$1(b2, "TYPE", "xmlhttp"); + zd(a, b2); + a.o && a.s && vd(b2, a.o, a.s); + a.J && a.g.setTimeout(a.J); + var c = a.g; + a = a.ka; + c.K = 1; + c.v = dc$1(M(b2)); + c.s = null; + c.P = true; + ec$1(c, a); +} +k$1.cb = function() { + null != this.v && (this.v = null, sc$1(this), tc$1(this), I(19)); +}; +function rc$1(a) { + null != a.v && (l.clearTimeout(a.v), a.v = null); +} +function mc$1(a, b2) { + var c = null; + if (a.g == b2) { + rc$1(a); + oc$1(a); + a.g = null; + var d = 2; + } else if (qc$1(a.h, b2)) + c = b2.D, xc$1(a.h, b2), d = 1; + else + return; + if (0 != a.G) { + if (a.pa = b2.Y, b2.i) + if (1 == d) { + c = b2.s ? b2.s.length : 0; + b2 = Date.now() - b2.F; + var e = a.C; + d = Mb(); + C$1(d, new Pb(d, c)); + zc$1(a); + } else + yc$1(a); + else if (e = b2.o, 3 == e || 0 == e && 0 < a.pa || !(1 == d && Bd(a, b2) || 2 == d && tc$1(a))) + switch (c && 0 < c.length && (b2 = a.h, b2.i = b2.i.concat(c)), e) { + case 1: + R(a, 5); + break; + case 4: + R(a, 10); + break; + case 3: + R(a, 6); + break; + default: + R(a, 2); + } + } +} +function Cd(a, b2) { + let c = a.Xa + Math.floor(Math.random() * a.bb); + a.l || (c *= 2); + return c * b2; +} +function R(a, b2) { + a.j.info("Error code " + b2); + if (2 == b2) { + var c = null; + a.l && (c = null); + var d = q$1(a.kb, a); + c || (c = new T("//www.google.com/images/cleardot.gif"), l.location && "http" == l.location.protocol || Gc$1(c, "https"), dc$1(c)); + cd(c.toString(), d); + } else + I(2); + a.G = 0; + a.l && a.l.va(b2); + Ad(a); + yd(a); +} +k$1.kb = function(a) { + a ? (this.j.info("Successfully pinged google.com"), I(2)) : (this.j.info("Failed to ping google.com"), I(1)); +}; +function Ad(a) { + a.G = 0; + a.la = []; + if (a.l) { + const b2 = Zc$1(a.h); + if (0 != b2.length || 0 != a.i.length) + na(a.la, b2), na(a.la, a.i), a.h.i.length = 0, ma(a.i), a.i.length = 0; + a.l.ua(); + } +} +function wc$1(a, b2, c) { + var d = c instanceof T ? M(c) : new T(c, void 0); + if ("" != d.g) + b2 && (d.g = b2 + "." + d.g), Hc$1(d, d.m); + else { + var e = l.location; + d = e.protocol; + b2 = b2 ? b2 + "." + e.hostname : e.hostname; + e = +e.port; + var f = new T(null, void 0); + d && Gc$1(f, d); + b2 && (f.g = b2); + e && Hc$1(f, e); + c && (f.l = c); + d = f; + } + c = a.D; + b2 = a.za; + c && b2 && S$1(d, c, b2); + S$1(d, "VER", a.ma); + zd(a, d); + return d; +} +function gc$1(a, b2, c) { + if (b2 && !a.H) + throw Error("Can't create secondary domain capable XhrIo object."); + b2 = c && a.Da && !a.ra ? new W$1(new ed({ jb: true })) : new W$1(a.ra); + b2.Ka(a.H); + return b2; +} +function Gd() { +} +k$1 = Gd.prototype; +k$1.xa = function() { +}; +k$1.wa = function() { +}; +k$1.va = function() { +}; +k$1.ua = function() { +}; +k$1.Ra = function() { +}; +function Hd() { + if (y && !(10 <= Number(La))) + throw Error("Environmental error: no available transport."); +} +Hd.prototype.g = function(a, b2) { + return new X$1(a, b2); +}; +function X$1(a, b2) { + B$1.call(this); + this.g = new xd(b2); + this.l = a; + this.h = b2 && b2.messageUrlParams || null; + a = b2 && b2.messageHeaders || null; + b2 && b2.clientProtocolHeaderRequired && (a ? a["X-Client-Protocol"] = "webchannel" : a = { "X-Client-Protocol": "webchannel" }); + this.g.s = a; + a = b2 && b2.initMessageHeaders || null; + b2 && b2.messageContentType && (a ? a["X-WebChannel-Content-Type"] = b2.messageContentType : a = { "X-WebChannel-Content-Type": b2.messageContentType }); + b2 && b2.ya && (a ? a["X-WebChannel-Client-Profile"] = b2.ya : a = { "X-WebChannel-Client-Profile": b2.ya }); + this.g.S = a; + (a = b2 && b2.Yb) && !pa(a) && (this.g.o = a); + this.A = b2 && b2.supportsCrossDomainXhr || false; + this.v = b2 && b2.sendRawJson || false; + (b2 = b2 && b2.httpSessionIdParam) && !pa(b2) && (this.g.D = b2, a = this.h, null !== a && b2 in a && (a = this.h, b2 in a && delete a[b2])); + this.j = new Y$1(this); +} +t(X$1, B$1); +X$1.prototype.m = function() { + this.g.l = this.j; + this.A && (this.g.H = true); + var a = this.g, b2 = this.l, c = this.h || void 0; + I(0); + a.V = b2; + a.ia = c || {}; + a.L = a.Y; + a.F = wc$1(a, null, a.V); + zc$1(a); +}; +X$1.prototype.close = function() { + Ac$1(this.g); +}; +X$1.prototype.u = function(a) { + var b2 = this.g; + if ("string" === typeof a) { + var c = {}; + c.__data__ = a; + a = c; + } else + this.v && (c = {}, c.__data__ = lb(a), a = c); + b2.i.push(new Vc$1(b2.ab++, a)); + 3 == b2.G && zc$1(b2); +}; +X$1.prototype.M = function() { + this.g.l = null; + delete this.j; + Ac$1(this.g); + delete this.g; + X$1.X.M.call(this); +}; +function Id(a) { + Vb.call(this); + var b2 = a.__sm__; + if (b2) { + a: { + for (const c in b2) { + a = c; + break a; + } + a = void 0; + } + if (this.i = a) + a = this.i, b2 = null !== b2 && a in b2 ? b2[a] : void 0; + this.data = b2; + } else + this.data = a; +} +t(Id, Vb); +function Jd() { + Wb.call(this); + this.status = 1; +} +t(Jd, Wb); +function Y$1(a) { + this.g = a; +} +t(Y$1, Gd); +Y$1.prototype.xa = function() { + C$1(this.g, "a"); +}; +Y$1.prototype.wa = function(a) { + C$1(this.g, new Id(a)); +}; +Y$1.prototype.va = function(a) { + C$1(this.g, new Jd()); +}; +Y$1.prototype.ua = function() { + C$1(this.g, "b"); +}; +Hd.prototype.createWebChannel = Hd.prototype.g; +X$1.prototype.send = X$1.prototype.u; +X$1.prototype.open = X$1.prototype.m; +X$1.prototype.close = X$1.prototype.close; +Qb.NO_ERROR = 0; +Qb.TIMEOUT = 8; +Qb.HTTP_ERROR = 6; +Rb.COMPLETE = "complete"; +Ub.EventType = K$1; +K$1.OPEN = "a"; +K$1.CLOSE = "b"; +K$1.ERROR = "c"; +K$1.MESSAGE = "d"; +B$1.prototype.listen = B$1.prototype.N; +W$1.prototype.listenOnce = W$1.prototype.O; +W$1.prototype.getLastError = W$1.prototype.Oa; +W$1.prototype.getLastErrorCode = W$1.prototype.Ea; +W$1.prototype.getStatus = W$1.prototype.aa; +W$1.prototype.getResponseJson = W$1.prototype.Sa; +W$1.prototype.getResponseText = W$1.prototype.fa; +W$1.prototype.send = W$1.prototype.da; +W$1.prototype.setWithCredentials = W$1.prototype.Ka; +var createWebChannelTransport = function() { + return new Hd(); +}; +var getStatEventTarget = function() { + return Mb(); +}; +var ErrorCode = Qb; +var EventType = Rb; +var Event = G$1; +var Stat = { sb: 0, vb: 1, wb: 2, Pb: 3, Ub: 4, Rb: 5, Sb: 6, Qb: 7, Ob: 8, Tb: 9, PROXY: 10, NOPROXY: 11, Mb: 12, Ib: 13, Jb: 14, Hb: 15, Kb: 16, Lb: 17, ob: 18, nb: 19, pb: 20 }; +var FetchXmlHttpFactory = ed; +var WebChannel = Ub; +var XhrIo = W$1; +const v = "@firebase/firestore"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class b { + constructor(t2) { + this.uid = t2; + } + isAuthenticated() { + return null != this.uid; + } + toKey() { + return this.isAuthenticated() ? "uid:" + this.uid : "anonymous-user"; + } + isEqual(t2) { + return t2.uid === this.uid; + } +} +b.UNAUTHENTICATED = new b(null), b.GOOGLE_CREDENTIALS = new b("google-credentials-uid"), b.FIRST_PARTY = new b("first-party-uid"), b.MOCK_USER = new b("mock-user"); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +let P = "9.19.0"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const V = new Logger("@firebase/firestore"); +function S() { + return V.logLevel; +} +function C(t2, ...e) { + if (V.logLevel <= LogLevel.DEBUG) { + const n = e.map(k); + V.debug(`Firestore (${P}): ${t2}`, ...n); + } +} +function x(t2, ...e) { + if (V.logLevel <= LogLevel.ERROR) { + const n = e.map(k); + V.error(`Firestore (${P}): ${t2}`, ...n); + } +} +function N(t2, ...e) { + if (V.logLevel <= LogLevel.WARN) { + const n = e.map(k); + V.warn(`Firestore (${P}): ${t2}`, ...n); + } +} +function k(t2) { + if ("string" == typeof t2) + return t2; + try { + return e = t2, JSON.stringify(e); + } catch (e2) { + return t2; + } + /** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + var e; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function O(t2 = "Unexpected state") { + const e = `FIRESTORE (${P}) INTERNAL ASSERTION FAILED: ` + t2; + throw x(e), new Error(e); +} +function $(t2, e) { + t2 || O(); +} +function F(t2, e) { + return t2; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const B = { + OK: "ok", + CANCELLED: "cancelled", + UNKNOWN: "unknown", + INVALID_ARGUMENT: "invalid-argument", + DEADLINE_EXCEEDED: "deadline-exceeded", + NOT_FOUND: "not-found", + ALREADY_EXISTS: "already-exists", + PERMISSION_DENIED: "permission-denied", + UNAUTHENTICATED: "unauthenticated", + RESOURCE_EXHAUSTED: "resource-exhausted", + FAILED_PRECONDITION: "failed-precondition", + ABORTED: "aborted", + OUT_OF_RANGE: "out-of-range", + UNIMPLEMENTED: "unimplemented", + INTERNAL: "internal", + UNAVAILABLE: "unavailable", + DATA_LOSS: "data-loss" +}; +class L extends FirebaseError { + constructor(t2, e) { + super(t2, e), this.code = t2, this.message = e, this.toString = () => `${this.name}: [code=${this.code}]: ${this.message}`; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class q { + constructor() { + this.promise = new Promise((t2, e) => { + this.resolve = t2, this.reject = e; + }); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class U { + constructor(t2, e) { + this.user = e, this.type = "OAuth", this.headers = /* @__PURE__ */ new Map(), this.headers.set("Authorization", `Bearer ${t2}`); + } +} +class K { + getToken() { + return Promise.resolve(null); + } + invalidateToken() { + } + start(t2, e) { + t2.enqueueRetryable(() => e(b.UNAUTHENTICATED)); + } + shutdown() { + } +} +class G { + constructor(t2) { + this.token = t2, this.changeListener = null; + } + getToken() { + return Promise.resolve(this.token); + } + invalidateToken() { + } + start(t2, e) { + this.changeListener = e, t2.enqueueRetryable(() => e(this.token.user)); + } + shutdown() { + this.changeListener = null; + } +} +class Q { + constructor(t2) { + this.t = t2, this.currentUser = b.UNAUTHENTICATED, this.i = 0, this.forceRefresh = false, this.auth = null; + } + start(t2, e) { + let n = this.i; + const s = (t3) => this.i !== n ? (n = this.i, e(t3)) : Promise.resolve(); + let i = new q(); + this.o = () => { + this.i++, this.currentUser = this.u(), i.resolve(), i = new q(), t2.enqueueRetryable(() => s(this.currentUser)); + }; + const r = () => { + const e2 = i; + t2.enqueueRetryable(async () => { + await e2.promise, await s(this.currentUser); + }); + }, o = (t3) => { + C("FirebaseAuthCredentialsProvider", "Auth detected"), this.auth = t3, this.auth.addAuthTokenListener(this.o), r(); + }; + this.t.onInit((t3) => o(t3)), setTimeout(() => { + if (!this.auth) { + const t3 = this.t.getImmediate({ + optional: true + }); + t3 ? o(t3) : (C("FirebaseAuthCredentialsProvider", "Auth not yet detected"), i.resolve(), i = new q()); + } + }, 0), r(); + } + getToken() { + const t2 = this.i, e = this.forceRefresh; + return this.forceRefresh = false, this.auth ? this.auth.getToken(e).then((e2) => this.i !== t2 ? (C("FirebaseAuthCredentialsProvider", "getToken aborted due to token change."), this.getToken()) : e2 ? ($("string" == typeof e2.accessToken), new U(e2.accessToken, this.currentUser)) : null) : Promise.resolve(null); + } + invalidateToken() { + this.forceRefresh = true; + } + shutdown() { + this.auth && this.auth.removeAuthTokenListener(this.o); + } + u() { + const t2 = this.auth && this.auth.getUid(); + return $(null === t2 || "string" == typeof t2), new b(t2); + } +} +class z { + constructor(t2, e, n) { + this.h = t2, this.l = e, this.m = n, this.type = "FirstParty", this.user = b.FIRST_PARTY, this.g = /* @__PURE__ */ new Map(); + } + p() { + return this.m ? this.m() : null; + } + get headers() { + this.g.set("X-Goog-AuthUser", this.h); + const t2 = this.p(); + return t2 && this.g.set("Authorization", t2), this.l && this.g.set("X-Goog-Iam-Authorization-Token", this.l), this.g; + } +} +class j { + constructor(t2, e, n) { + this.h = t2, this.l = e, this.m = n; + } + getToken() { + return Promise.resolve(new z(this.h, this.l, this.m)); + } + start(t2, e) { + t2.enqueueRetryable(() => e(b.FIRST_PARTY)); + } + shutdown() { + } + invalidateToken() { + } +} +class W { + constructor(t2) { + this.value = t2, this.type = "AppCheck", this.headers = /* @__PURE__ */ new Map(), t2 && t2.length > 0 && this.headers.set("x-firebase-appcheck", this.value); + } +} +class H { + constructor(t2) { + this.I = t2, this.forceRefresh = false, this.appCheck = null, this.T = null; + } + start(t2, e) { + const n = (t3) => { + null != t3.error && C("FirebaseAppCheckTokenProvider", `Error getting App Check token; using placeholder token instead. Error: ${t3.error.message}`); + const n2 = t3.token !== this.T; + return this.T = t3.token, C("FirebaseAppCheckTokenProvider", `Received ${n2 ? "new" : "existing"} token.`), n2 ? e(t3.token) : Promise.resolve(); + }; + this.o = (e2) => { + t2.enqueueRetryable(() => n(e2)); + }; + const s = (t3) => { + C("FirebaseAppCheckTokenProvider", "AppCheck detected"), this.appCheck = t3, this.appCheck.addTokenListener(this.o); + }; + this.I.onInit((t3) => s(t3)), setTimeout(() => { + if (!this.appCheck) { + const t3 = this.I.getImmediate({ + optional: true + }); + t3 ? s(t3) : C("FirebaseAppCheckTokenProvider", "AppCheck not yet detected"); + } + }, 0); + } + getToken() { + const t2 = this.forceRefresh; + return this.forceRefresh = false, this.appCheck ? this.appCheck.getToken(t2).then((t3) => t3 ? ($("string" == typeof t3.token), this.T = t3.token, new W(t3.token)) : null) : Promise.resolve(null); + } + invalidateToken() { + this.forceRefresh = true; + } + shutdown() { + this.appCheck && this.appCheck.removeTokenListener(this.o); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Y(t2) { + const e = "undefined" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t2); + if (e && "function" == typeof e.getRandomValues) + e.getRandomValues(n); + else + for (let e2 = 0; e2 < t2; e2++) + n[e2] = Math.floor(256 * Math.random()); + return n; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Z { + static A() { + const t2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", e = Math.floor(256 / t2.length) * t2.length; + let n = ""; + for (; n.length < 20; ) { + const s = Y(40); + for (let i = 0; i < s.length; ++i) + n.length < 20 && s[i] < e && (n += t2.charAt(s[i] % t2.length)); + } + return n; + } +} +function X(t2, e) { + return t2 < e ? -1 : t2 > e ? 1 : 0; +} +function tt(t2, e, n) { + return t2.length === e.length && t2.every((t3, s) => n(t3, e[s])); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class nt { + constructor(t2, e) { + if (this.seconds = t2, this.nanoseconds = e, e < 0) + throw new L(B.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + e); + if (e >= 1e9) + throw new L(B.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + e); + if (t2 < -62135596800) + throw new L(B.INVALID_ARGUMENT, "Timestamp seconds out of range: " + t2); + if (t2 >= 253402300800) + throw new L(B.INVALID_ARGUMENT, "Timestamp seconds out of range: " + t2); + } + static now() { + return nt.fromMillis(Date.now()); + } + static fromDate(t2) { + return nt.fromMillis(t2.getTime()); + } + static fromMillis(t2) { + const e = Math.floor(t2 / 1e3), n = Math.floor(1e6 * (t2 - 1e3 * e)); + return new nt(e, n); + } + toDate() { + return new Date(this.toMillis()); + } + toMillis() { + return 1e3 * this.seconds + this.nanoseconds / 1e6; + } + _compareTo(t2) { + return this.seconds === t2.seconds ? X(this.nanoseconds, t2.nanoseconds) : X(this.seconds, t2.seconds); + } + isEqual(t2) { + return t2.seconds === this.seconds && t2.nanoseconds === this.nanoseconds; + } + toString() { + return "Timestamp(seconds=" + this.seconds + ", nanoseconds=" + this.nanoseconds + ")"; + } + toJSON() { + return { + seconds: this.seconds, + nanoseconds: this.nanoseconds + }; + } + valueOf() { + const t2 = this.seconds - -62135596800; + return String(t2).padStart(12, "0") + "." + String(this.nanoseconds).padStart(9, "0"); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class st { + constructor(t2) { + this.timestamp = t2; + } + static fromTimestamp(t2) { + return new st(t2); + } + static min() { + return new st(new nt(0, 0)); + } + static max() { + return new st(new nt(253402300799, 999999999)); + } + compareTo(t2) { + return this.timestamp._compareTo(t2.timestamp); + } + isEqual(t2) { + return this.timestamp.isEqual(t2.timestamp); + } + toMicroseconds() { + return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3; + } + toString() { + return "SnapshotVersion(" + this.timestamp.toString() + ")"; + } + toTimestamp() { + return this.timestamp; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class it { + constructor(t2, e, n) { + void 0 === e ? e = 0 : e > t2.length && O(), void 0 === n ? n = t2.length - e : n > t2.length - e && O(), this.segments = t2, this.offset = e, this.len = n; + } + get length() { + return this.len; + } + isEqual(t2) { + return 0 === it.comparator(this, t2); + } + child(t2) { + const e = this.segments.slice(this.offset, this.limit()); + return t2 instanceof it ? t2.forEach((t3) => { + e.push(t3); + }) : e.push(t2), this.construct(e); + } + limit() { + return this.offset + this.length; + } + popFirst(t2) { + return t2 = void 0 === t2 ? 1 : t2, this.construct(this.segments, this.offset + t2, this.length - t2); + } + popLast() { + return this.construct(this.segments, this.offset, this.length - 1); + } + firstSegment() { + return this.segments[this.offset]; + } + lastSegment() { + return this.get(this.length - 1); + } + get(t2) { + return this.segments[this.offset + t2]; + } + isEmpty() { + return 0 === this.length; + } + isPrefixOf(t2) { + if (t2.length < this.length) + return false; + for (let e = 0; e < this.length; e++) + if (this.get(e) !== t2.get(e)) + return false; + return true; + } + isImmediateParentOf(t2) { + if (this.length + 1 !== t2.length) + return false; + for (let e = 0; e < this.length; e++) + if (this.get(e) !== t2.get(e)) + return false; + return true; + } + forEach(t2) { + for (let e = this.offset, n = this.limit(); e < n; e++) + t2(this.segments[e]); + } + toArray() { + return this.segments.slice(this.offset, this.limit()); + } + static comparator(t2, e) { + const n = Math.min(t2.length, e.length); + for (let s = 0; s < n; s++) { + const n2 = t2.get(s), i = e.get(s); + if (n2 < i) + return -1; + if (n2 > i) + return 1; + } + return t2.length < e.length ? -1 : t2.length > e.length ? 1 : 0; + } +} +class rt extends it { + construct(t2, e, n) { + return new rt(t2, e, n); + } + canonicalString() { + return this.toArray().join("/"); + } + toString() { + return this.canonicalString(); + } + static fromString(...t2) { + const e = []; + for (const n of t2) { + if (n.indexOf("//") >= 0) + throw new L(B.INVALID_ARGUMENT, `Invalid segment (${n}). Paths must not contain // in them.`); + e.push(...n.split("/").filter((t3) => t3.length > 0)); + } + return new rt(e); + } + static emptyPath() { + return new rt([]); + } +} +const ot = /^[_a-zA-Z][_a-zA-Z0-9]*$/; +class ut extends it { + construct(t2, e, n) { + return new ut(t2, e, n); + } + static isValidIdentifier(t2) { + return ot.test(t2); + } + canonicalString() { + return this.toArray().map((t2) => (t2 = t2.replace(/\\/g, "\\\\").replace(/`/g, "\\`"), ut.isValidIdentifier(t2) || (t2 = "`" + t2 + "`"), t2)).join("."); + } + toString() { + return this.canonicalString(); + } + isKeyField() { + return 1 === this.length && "__name__" === this.get(0); + } + static keyField() { + return new ut(["__name__"]); + } + static fromServerFormat(t2) { + const e = []; + let n = "", s = 0; + const i = () => { + if (0 === n.length) + throw new L(B.INVALID_ARGUMENT, `Invalid field path (${t2}). Paths must not be empty, begin with '.', end with '.', or contain '..'`); + e.push(n), n = ""; + }; + let r = false; + for (; s < t2.length; ) { + const e2 = t2[s]; + if ("\\" === e2) { + if (s + 1 === t2.length) + throw new L(B.INVALID_ARGUMENT, "Path has trailing escape character: " + t2); + const e3 = t2[s + 1]; + if ("\\" !== e3 && "." !== e3 && "`" !== e3) + throw new L(B.INVALID_ARGUMENT, "Path has invalid escape sequence: " + t2); + n += e3, s += 2; + } else + "`" === e2 ? (r = !r, s++) : "." !== e2 || r ? (n += e2, s++) : (i(), s++); + } + if (i(), r) + throw new L(B.INVALID_ARGUMENT, "Unterminated ` in path: " + t2); + return new ut(e); + } + static emptyPath() { + return new ut([]); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ct { + constructor(t2) { + this.path = t2; + } + static fromPath(t2) { + return new ct(rt.fromString(t2)); + } + static fromName(t2) { + return new ct(rt.fromString(t2).popFirst(5)); + } + static empty() { + return new ct(rt.emptyPath()); + } + get collectionGroup() { + return this.path.popLast().lastSegment(); + } + hasCollectionId(t2) { + return this.path.length >= 2 && this.path.get(this.path.length - 2) === t2; + } + getCollectionGroup() { + return this.path.get(this.path.length - 2); + } + getCollectionPath() { + return this.path.popLast(); + } + isEqual(t2) { + return null !== t2 && 0 === rt.comparator(this.path, t2.path); + } + toString() { + return this.path.toString(); + } + static comparator(t2, e) { + return rt.comparator(t2.path, e.path); + } + static isDocumentKey(t2) { + return t2.length % 2 == 0; + } + static fromSegments(t2) { + return new ct(new rt(t2.slice())); + } +} +function mt(t2, e) { + const n = t2.toTimestamp().seconds, s = t2.toTimestamp().nanoseconds + 1, i = st.fromTimestamp(1e9 === s ? new nt(n + 1, 0) : new nt(n, s)); + return new yt(i, ct.empty(), e); +} +function gt(t2) { + return new yt(t2.readTime, t2.key, -1); +} +class yt { + constructor(t2, e, n) { + this.readTime = t2, this.documentKey = e, this.largestBatchId = n; + } + static min() { + return new yt(st.min(), ct.empty(), -1); + } + static max() { + return new yt(st.max(), ct.empty(), -1); + } +} +function pt(t2, e) { + let n = t2.readTime.compareTo(e.readTime); + return 0 !== n ? n : (n = ct.comparator(t2.documentKey, e.documentKey), 0 !== n ? n : X(t2.largestBatchId, e.largestBatchId)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const It = "The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."; +class Tt { + constructor() { + this.onCommittedListeners = []; + } + addOnCommittedListener(t2) { + this.onCommittedListeners.push(t2); + } + raiseOnCommittedEvent() { + this.onCommittedListeners.forEach((t2) => t2()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function Et(t2) { + if (t2.code !== B.FAILED_PRECONDITION || t2.message !== It) + throw t2; + C("LocalStore", "Unexpectedly lost primary lease"); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class At { + constructor(t2) { + this.nextCallback = null, this.catchCallback = null, this.result = void 0, this.error = void 0, this.isDone = false, this.callbackAttached = false, t2((t3) => { + this.isDone = true, this.result = t3, this.nextCallback && this.nextCallback(t3); + }, (t3) => { + this.isDone = true, this.error = t3, this.catchCallback && this.catchCallback(t3); + }); + } + catch(t2) { + return this.next(void 0, t2); + } + next(t2, e) { + return this.callbackAttached && O(), this.callbackAttached = true, this.isDone ? this.error ? this.wrapFailure(e, this.error) : this.wrapSuccess(t2, this.result) : new At((n, s) => { + this.nextCallback = (e2) => { + this.wrapSuccess(t2, e2).next(n, s); + }, this.catchCallback = (t3) => { + this.wrapFailure(e, t3).next(n, s); + }; + }); + } + toPromise() { + return new Promise((t2, e) => { + this.next(t2, e); + }); + } + wrapUserFunction(t2) { + try { + const e = t2(); + return e instanceof At ? e : At.resolve(e); + } catch (t3) { + return At.reject(t3); + } + } + wrapSuccess(t2, e) { + return t2 ? this.wrapUserFunction(() => t2(e)) : At.resolve(e); + } + wrapFailure(t2, e) { + return t2 ? this.wrapUserFunction(() => t2(e)) : At.reject(e); + } + static resolve(t2) { + return new At((e, n) => { + e(t2); + }); + } + static reject(t2) { + return new At((e, n) => { + n(t2); + }); + } + static waitFor(t2) { + return new At((e, n) => { + let s = 0, i = 0, r = false; + t2.forEach((t3) => { + ++s, t3.next(() => { + ++i, r && i === s && e(); + }, (t4) => n(t4)); + }), r = true, i === s && e(); + }); + } + static or(t2) { + let e = At.resolve(false); + for (const n of t2) + e = e.next((t3) => t3 ? At.resolve(t3) : n()); + return e; + } + static forEach(t2, e) { + const n = []; + return t2.forEach((t3, s) => { + n.push(e.call(this, t3, s)); + }), this.waitFor(n); + } + static mapArray(t2, e) { + return new At((n, s) => { + const i = t2.length, r = new Array(i); + let o = 0; + for (let u = 0; u < i; u++) { + const c = u; + e(t2[c]).next((t3) => { + r[c] = t3, ++o, o === i && n(r); + }, (t3) => s(t3)); + } + }); + } + static doWhile(t2, e) { + return new At((n, s) => { + const i = () => { + true === t2() ? e().next(() => { + i(); + }, s) : n(); + }; + i(); + }); + } +} +function Vt(t2) { + return "IndexedDbTransactionError" === t2.name; +} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ot { + constructor(t2, e) { + this.previousValue = t2, e && (e.sequenceNumberHandler = (t3) => this.ot(t3), this.ut = (t3) => e.writeSequenceNumber(t3)); + } + ot(t2) { + return this.previousValue = Math.max(t2, this.previousValue), this.previousValue; + } + next() { + const t2 = ++this.previousValue; + return this.ut && this.ut(t2), t2; + } +} +Ot.ct = -1; +function $t(t2) { + return null == t2; +} +function Mt(t2) { + return 0 === t2 && 1 / t2 == -1 / 0; +} +function Ft(t2) { + return "number" == typeof t2 && Number.isInteger(t2) && !Mt(t2) && t2 <= Number.MAX_SAFE_INTEGER && t2 >= Number.MIN_SAFE_INTEGER; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function we(t2) { + let e = 0; + for (const n in t2) + Object.prototype.hasOwnProperty.call(t2, n) && e++; + return e; +} +function _e(t2, e) { + for (const n in t2) + Object.prototype.hasOwnProperty.call(t2, n) && e(n, t2[n]); +} +function me(t2) { + for (const e in t2) + if (Object.prototype.hasOwnProperty.call(t2, e)) + return false; + return true; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ge { + constructor(t2, e) { + this.comparator = t2, this.root = e || pe.EMPTY; + } + insert(t2, e) { + return new ge(this.comparator, this.root.insert(t2, e, this.comparator).copy(null, null, pe.BLACK, null, null)); + } + remove(t2) { + return new ge(this.comparator, this.root.remove(t2, this.comparator).copy(null, null, pe.BLACK, null, null)); + } + get(t2) { + let e = this.root; + for (; !e.isEmpty(); ) { + const n = this.comparator(t2, e.key); + if (0 === n) + return e.value; + n < 0 ? e = e.left : n > 0 && (e = e.right); + } + return null; + } + indexOf(t2) { + let e = 0, n = this.root; + for (; !n.isEmpty(); ) { + const s = this.comparator(t2, n.key); + if (0 === s) + return e + n.left.size; + s < 0 ? n = n.left : (e += n.left.size + 1, n = n.right); + } + return -1; + } + isEmpty() { + return this.root.isEmpty(); + } + get size() { + return this.root.size; + } + minKey() { + return this.root.minKey(); + } + maxKey() { + return this.root.maxKey(); + } + inorderTraversal(t2) { + return this.root.inorderTraversal(t2); + } + forEach(t2) { + this.inorderTraversal((e, n) => (t2(e, n), false)); + } + toString() { + const t2 = []; + return this.inorderTraversal((e, n) => (t2.push(`${e}:${n}`), false)), `{${t2.join(", ")}}`; + } + reverseTraversal(t2) { + return this.root.reverseTraversal(t2); + } + getIterator() { + return new ye(this.root, null, this.comparator, false); + } + getIteratorFrom(t2) { + return new ye(this.root, t2, this.comparator, false); + } + getReverseIterator() { + return new ye(this.root, null, this.comparator, true); + } + getReverseIteratorFrom(t2) { + return new ye(this.root, t2, this.comparator, true); + } +} +class ye { + constructor(t2, e, n, s) { + this.isReverse = s, this.nodeStack = []; + let i = 1; + for (; !t2.isEmpty(); ) + if (i = e ? n(t2.key, e) : 1, e && s && (i *= -1), i < 0) + t2 = this.isReverse ? t2.left : t2.right; + else { + if (0 === i) { + this.nodeStack.push(t2); + break; + } + this.nodeStack.push(t2), t2 = this.isReverse ? t2.right : t2.left; + } + } + getNext() { + let t2 = this.nodeStack.pop(); + const e = { + key: t2.key, + value: t2.value + }; + if (this.isReverse) + for (t2 = t2.left; !t2.isEmpty(); ) + this.nodeStack.push(t2), t2 = t2.right; + else + for (t2 = t2.right; !t2.isEmpty(); ) + this.nodeStack.push(t2), t2 = t2.left; + return e; + } + hasNext() { + return this.nodeStack.length > 0; + } + peek() { + if (0 === this.nodeStack.length) + return null; + const t2 = this.nodeStack[this.nodeStack.length - 1]; + return { + key: t2.key, + value: t2.value + }; + } +} +class pe { + constructor(t2, e, n, s, i) { + this.key = t2, this.value = e, this.color = null != n ? n : pe.RED, this.left = null != s ? s : pe.EMPTY, this.right = null != i ? i : pe.EMPTY, this.size = this.left.size + 1 + this.right.size; + } + copy(t2, e, n, s, i) { + return new pe(null != t2 ? t2 : this.key, null != e ? e : this.value, null != n ? n : this.color, null != s ? s : this.left, null != i ? i : this.right); + } + isEmpty() { + return false; + } + inorderTraversal(t2) { + return this.left.inorderTraversal(t2) || t2(this.key, this.value) || this.right.inorderTraversal(t2); + } + reverseTraversal(t2) { + return this.right.reverseTraversal(t2) || t2(this.key, this.value) || this.left.reverseTraversal(t2); + } + min() { + return this.left.isEmpty() ? this : this.left.min(); + } + minKey() { + return this.min().key; + } + maxKey() { + return this.right.isEmpty() ? this.key : this.right.maxKey(); + } + insert(t2, e, n) { + let s = this; + const i = n(t2, s.key); + return s = i < 0 ? s.copy(null, null, null, s.left.insert(t2, e, n), null) : 0 === i ? s.copy(null, e, null, null, null) : s.copy(null, null, null, null, s.right.insert(t2, e, n)), s.fixUp(); + } + removeMin() { + if (this.left.isEmpty()) + return pe.EMPTY; + let t2 = this; + return t2.left.isRed() || t2.left.left.isRed() || (t2 = t2.moveRedLeft()), t2 = t2.copy(null, null, null, t2.left.removeMin(), null), t2.fixUp(); + } + remove(t2, e) { + let n, s = this; + if (e(t2, s.key) < 0) + s.left.isEmpty() || s.left.isRed() || s.left.left.isRed() || (s = s.moveRedLeft()), s = s.copy(null, null, null, s.left.remove(t2, e), null); + else { + if (s.left.isRed() && (s = s.rotateRight()), s.right.isEmpty() || s.right.isRed() || s.right.left.isRed() || (s = s.moveRedRight()), 0 === e(t2, s.key)) { + if (s.right.isEmpty()) + return pe.EMPTY; + n = s.right.min(), s = s.copy(n.key, n.value, null, null, s.right.removeMin()); + } + s = s.copy(null, null, null, null, s.right.remove(t2, e)); + } + return s.fixUp(); + } + isRed() { + return this.color; + } + fixUp() { + let t2 = this; + return t2.right.isRed() && !t2.left.isRed() && (t2 = t2.rotateLeft()), t2.left.isRed() && t2.left.left.isRed() && (t2 = t2.rotateRight()), t2.left.isRed() && t2.right.isRed() && (t2 = t2.colorFlip()), t2; + } + moveRedLeft() { + let t2 = this.colorFlip(); + return t2.right.left.isRed() && (t2 = t2.copy(null, null, null, null, t2.right.rotateRight()), t2 = t2.rotateLeft(), t2 = t2.colorFlip()), t2; + } + moveRedRight() { + let t2 = this.colorFlip(); + return t2.left.left.isRed() && (t2 = t2.rotateRight(), t2 = t2.colorFlip()), t2; + } + rotateLeft() { + const t2 = this.copy(null, null, pe.RED, null, this.right.left); + return this.right.copy(null, null, this.color, t2, null); + } + rotateRight() { + const t2 = this.copy(null, null, pe.RED, this.left.right, null); + return this.left.copy(null, null, this.color, null, t2); + } + colorFlip() { + const t2 = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null); + return this.copy(null, null, !this.color, t2, e); + } + checkMaxDepth() { + const t2 = this.check(); + return Math.pow(2, t2) <= this.size + 1; + } + check() { + if (this.isRed() && this.left.isRed()) + throw O(); + if (this.right.isRed()) + throw O(); + const t2 = this.left.check(); + if (t2 !== this.right.check()) + throw O(); + return t2 + (this.isRed() ? 0 : 1); + } +} +pe.EMPTY = null, pe.RED = true, pe.BLACK = false; +pe.EMPTY = new class { + constructor() { + this.size = 0; + } + get key() { + throw O(); + } + get value() { + throw O(); + } + get color() { + throw O(); + } + get left() { + throw O(); + } + get right() { + throw O(); + } + copy(t2, e, n, s, i) { + return this; + } + insert(t2, e, n) { + return new pe(t2, e); + } + remove(t2, e) { + return this; + } + isEmpty() { + return true; + } + inorderTraversal(t2) { + return false; + } + reverseTraversal(t2) { + return false; + } + minKey() { + return null; + } + maxKey() { + return null; + } + isRed() { + return false; + } + checkMaxDepth() { + return true; + } + check() { + return 0; + } +}(); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ie { + constructor(t2) { + this.comparator = t2, this.data = new ge(this.comparator); + } + has(t2) { + return null !== this.data.get(t2); + } + first() { + return this.data.minKey(); + } + last() { + return this.data.maxKey(); + } + get size() { + return this.data.size; + } + indexOf(t2) { + return this.data.indexOf(t2); + } + forEach(t2) { + this.data.inorderTraversal((e, n) => (t2(e), false)); + } + forEachInRange(t2, e) { + const n = this.data.getIteratorFrom(t2[0]); + for (; n.hasNext(); ) { + const s = n.getNext(); + if (this.comparator(s.key, t2[1]) >= 0) + return; + e(s.key); + } + } + forEachWhile(t2, e) { + let n; + for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) { + if (!t2(n.getNext().key)) + return; + } + } + firstAfterOrEqual(t2) { + const e = this.data.getIteratorFrom(t2); + return e.hasNext() ? e.getNext().key : null; + } + getIterator() { + return new Te(this.data.getIterator()); + } + getIteratorFrom(t2) { + return new Te(this.data.getIteratorFrom(t2)); + } + add(t2) { + return this.copy(this.data.remove(t2).insert(t2, true)); + } + delete(t2) { + return this.has(t2) ? this.copy(this.data.remove(t2)) : this; + } + isEmpty() { + return this.data.isEmpty(); + } + unionWith(t2) { + let e = this; + return e.size < t2.size && (e = t2, t2 = this), t2.forEach((t3) => { + e = e.add(t3); + }), e; + } + isEqual(t2) { + if (!(t2 instanceof Ie)) + return false; + if (this.size !== t2.size) + return false; + const e = this.data.getIterator(), n = t2.data.getIterator(); + for (; e.hasNext(); ) { + const t3 = e.getNext().key, s = n.getNext().key; + if (0 !== this.comparator(t3, s)) + return false; + } + return true; + } + toArray() { + const t2 = []; + return this.forEach((e) => { + t2.push(e); + }), t2; + } + toString() { + const t2 = []; + return this.forEach((e) => t2.push(e)), "SortedSet(" + t2.toString() + ")"; + } + copy(t2) { + const e = new Ie(this.comparator); + return e.data = t2, e; + } +} +class Te { + constructor(t2) { + this.iter = t2; + } + getNext() { + return this.iter.getNext().key; + } + hasNext() { + return this.iter.hasNext(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ae { + constructor(t2) { + this.fields = t2, t2.sort(ut.comparator); + } + static empty() { + return new Ae([]); + } + unionWith(t2) { + let e = new Ie(ut.comparator); + for (const t3 of this.fields) + e = e.add(t3); + for (const n of t2) + e = e.add(n); + return new Ae(e.toArray()); + } + covers(t2) { + for (const e of this.fields) + if (e.isPrefixOf(t2)) + return true; + return false; + } + isEqual(t2) { + return tt(this.fields, t2.fields, (t3, e) => t3.isEqual(e)); + } +} +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Re extends Error { + constructor() { + super(...arguments), this.name = "Base64DecodeError"; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class be { + constructor(t2) { + this.binaryString = t2; + } + static fromBase64String(t2) { + const e = function(t3) { + try { + return atob(t3); + } catch (t4) { + throw "undefined" != typeof DOMException && t4 instanceof DOMException ? new Re("Invalid base64 string: " + t4) : t4; + } + }(t2); + return new be(e); + } + static fromUint8Array(t2) { + const e = function(t3) { + let e2 = ""; + for (let n = 0; n < t3.length; ++n) + e2 += String.fromCharCode(t3[n]); + return e2; + }(t2); + return new be(e); + } + [Symbol.iterator]() { + let t2 = 0; + return { + next: () => t2 < this.binaryString.length ? { + value: this.binaryString.charCodeAt(t2++), + done: false + } : { + value: void 0, + done: true + } + }; + } + toBase64() { + return t2 = this.binaryString, btoa(t2); + var t2; + } + toUint8Array() { + return function(t2) { + const e = new Uint8Array(t2.length); + for (let n = 0; n < t2.length; n++) + e[n] = t2.charCodeAt(n); + return e; + }(this.binaryString); + } + approximateByteSize() { + return 2 * this.binaryString.length; + } + compareTo(t2) { + return X(this.binaryString, t2.binaryString); + } + isEqual(t2) { + return this.binaryString === t2.binaryString; + } +} +be.EMPTY_BYTE_STRING = new be(""); +const Pe = new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/); +function Ve(t2) { + if ($(!!t2), "string" == typeof t2) { + let e = 0; + const n = Pe.exec(t2); + if ($(!!n), n[1]) { + let t3 = n[1]; + t3 = (t3 + "000000000").substr(0, 9), e = Number(t3); + } + const s = new Date(t2); + return { + seconds: Math.floor(s.getTime() / 1e3), + nanos: e + }; + } + return { + seconds: Se(t2.seconds), + nanos: Se(t2.nanos) + }; +} +function Se(t2) { + return "number" == typeof t2 ? t2 : "string" == typeof t2 ? Number(t2) : 0; +} +function De(t2) { + return "string" == typeof t2 ? be.fromBase64String(t2) : be.fromUint8Array(t2); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ce(t2) { + var e, n; + return "server_timestamp" === (null === (n = ((null === (e = null == t2 ? void 0 : t2.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue); +} +function xe(t2) { + const e = t2.mapValue.fields.__previous_value__; + return Ce(e) ? xe(e) : e; +} +function Ne(t2) { + const e = Ve(t2.mapValue.fields.__local_write_time__.timestampValue); + return new nt(e.seconds, e.nanos); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ke { + constructor(t2, e, n, s, i, r, o, u) { + this.databaseId = t2, this.appId = e, this.persistenceKey = n, this.host = s, this.ssl = i, this.forceLongPolling = r, this.autoDetectLongPolling = o, this.useFetchStreams = u; + } +} +class Oe { + constructor(t2, e) { + this.projectId = t2, this.database = e || "(default)"; + } + static empty() { + return new Oe("", ""); + } + get isDefaultDatabase() { + return "(default)" === this.database; + } + isEqual(t2) { + return t2 instanceof Oe && t2.projectId === this.projectId && t2.database === this.database; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const $e = { + mapValue: { + fields: { + __type__: { + stringValue: "__max__" + } + } + } +}; +function Fe(t2) { + return "nullValue" in t2 ? 0 : "booleanValue" in t2 ? 1 : "integerValue" in t2 || "doubleValue" in t2 ? 2 : "timestampValue" in t2 ? 3 : "stringValue" in t2 ? 5 : "bytesValue" in t2 ? 6 : "referenceValue" in t2 ? 7 : "geoPointValue" in t2 ? 8 : "arrayValue" in t2 ? 9 : "mapValue" in t2 ? Ce(t2) ? 4 : Ze(t2) ? 9007199254740991 : 10 : O(); +} +function Be(t2, e) { + if (t2 === e) + return true; + const n = Fe(t2); + if (n !== Fe(e)) + return false; + switch (n) { + case 0: + case 9007199254740991: + return true; + case 1: + return t2.booleanValue === e.booleanValue; + case 4: + return Ne(t2).isEqual(Ne(e)); + case 3: + return function(t3, e2) { + if ("string" == typeof t3.timestampValue && "string" == typeof e2.timestampValue && t3.timestampValue.length === e2.timestampValue.length) + return t3.timestampValue === e2.timestampValue; + const n2 = Ve(t3.timestampValue), s = Ve(e2.timestampValue); + return n2.seconds === s.seconds && n2.nanos === s.nanos; + }(t2, e); + case 5: + return t2.stringValue === e.stringValue; + case 6: + return function(t3, e2) { + return De(t3.bytesValue).isEqual(De(e2.bytesValue)); + }(t2, e); + case 7: + return t2.referenceValue === e.referenceValue; + case 8: + return function(t3, e2) { + return Se(t3.geoPointValue.latitude) === Se(e2.geoPointValue.latitude) && Se(t3.geoPointValue.longitude) === Se(e2.geoPointValue.longitude); + }(t2, e); + case 2: + return function(t3, e2) { + if ("integerValue" in t3 && "integerValue" in e2) + return Se(t3.integerValue) === Se(e2.integerValue); + if ("doubleValue" in t3 && "doubleValue" in e2) { + const n2 = Se(t3.doubleValue), s = Se(e2.doubleValue); + return n2 === s ? Mt(n2) === Mt(s) : isNaN(n2) && isNaN(s); + } + return false; + }(t2, e); + case 9: + return tt(t2.arrayValue.values || [], e.arrayValue.values || [], Be); + case 10: + return function(t3, e2) { + const n2 = t3.mapValue.fields || {}, s = e2.mapValue.fields || {}; + if (we(n2) !== we(s)) + return false; + for (const t4 in n2) + if (n2.hasOwnProperty(t4) && (void 0 === s[t4] || !Be(n2[t4], s[t4]))) + return false; + return true; + }(t2, e); + default: + return O(); + } +} +function Le(t2, e) { + return void 0 !== (t2.values || []).find((t3) => Be(t3, e)); +} +function qe(t2, e) { + if (t2 === e) + return 0; + const n = Fe(t2), s = Fe(e); + if (n !== s) + return X(n, s); + switch (n) { + case 0: + case 9007199254740991: + return 0; + case 1: + return X(t2.booleanValue, e.booleanValue); + case 2: + return function(t3, e2) { + const n2 = Se(t3.integerValue || t3.doubleValue), s2 = Se(e2.integerValue || e2.doubleValue); + return n2 < s2 ? -1 : n2 > s2 ? 1 : n2 === s2 ? 0 : isNaN(n2) ? isNaN(s2) ? 0 : -1 : 1; + }(t2, e); + case 3: + return Ue(t2.timestampValue, e.timestampValue); + case 4: + return Ue(Ne(t2), Ne(e)); + case 5: + return X(t2.stringValue, e.stringValue); + case 6: + return function(t3, e2) { + const n2 = De(t3), s2 = De(e2); + return n2.compareTo(s2); + }(t2.bytesValue, e.bytesValue); + case 7: + return function(t3, e2) { + const n2 = t3.split("/"), s2 = e2.split("/"); + for (let t4 = 0; t4 < n2.length && t4 < s2.length; t4++) { + const e3 = X(n2[t4], s2[t4]); + if (0 !== e3) + return e3; + } + return X(n2.length, s2.length); + }(t2.referenceValue, e.referenceValue); + case 8: + return function(t3, e2) { + const n2 = X(Se(t3.latitude), Se(e2.latitude)); + if (0 !== n2) + return n2; + return X(Se(t3.longitude), Se(e2.longitude)); + }(t2.geoPointValue, e.geoPointValue); + case 9: + return function(t3, e2) { + const n2 = t3.values || [], s2 = e2.values || []; + for (let t4 = 0; t4 < n2.length && t4 < s2.length; ++t4) { + const e3 = qe(n2[t4], s2[t4]); + if (e3) + return e3; + } + return X(n2.length, s2.length); + }(t2.arrayValue, e.arrayValue); + case 10: + return function(t3, e2) { + if (t3 === $e.mapValue && e2 === $e.mapValue) + return 0; + if (t3 === $e.mapValue) + return 1; + if (e2 === $e.mapValue) + return -1; + const n2 = t3.fields || {}, s2 = Object.keys(n2), i = e2.fields || {}, r = Object.keys(i); + s2.sort(), r.sort(); + for (let t4 = 0; t4 < s2.length && t4 < r.length; ++t4) { + const e3 = X(s2[t4], r[t4]); + if (0 !== e3) + return e3; + const o = qe(n2[s2[t4]], i[r[t4]]); + if (0 !== o) + return o; + } + return X(s2.length, r.length); + }(t2.mapValue, e.mapValue); + default: + throw O(); + } +} +function Ue(t2, e) { + if ("string" == typeof t2 && "string" == typeof e && t2.length === e.length) + return X(t2, e); + const n = Ve(t2), s = Ve(e), i = X(n.seconds, s.seconds); + return 0 !== i ? i : X(n.nanos, s.nanos); +} +function Ke(t2) { + return Ge(t2); +} +function Ge(t2) { + return "nullValue" in t2 ? "null" : "booleanValue" in t2 ? "" + t2.booleanValue : "integerValue" in t2 ? "" + t2.integerValue : "doubleValue" in t2 ? "" + t2.doubleValue : "timestampValue" in t2 ? function(t3) { + const e2 = Ve(t3); + return `time(${e2.seconds},${e2.nanos})`; + }(t2.timestampValue) : "stringValue" in t2 ? t2.stringValue : "bytesValue" in t2 ? De(t2.bytesValue).toBase64() : "referenceValue" in t2 ? (n = t2.referenceValue, ct.fromName(n).toString()) : "geoPointValue" in t2 ? `geo(${(e = t2.geoPointValue).latitude},${e.longitude})` : "arrayValue" in t2 ? function(t3) { + let e2 = "[", n2 = true; + for (const s of t3.values || []) + n2 ? n2 = false : e2 += ",", e2 += Ge(s); + return e2 + "]"; + }(t2.arrayValue) : "mapValue" in t2 ? function(t3) { + const e2 = Object.keys(t3.fields || {}).sort(); + let n2 = "{", s = true; + for (const i of e2) + s ? s = false : n2 += ",", n2 += `${i}:${Ge(t3.fields[i])}`; + return n2 + "}"; + }(t2.mapValue) : O(); + var e, n; +} +function Qe(t2, e) { + return { + referenceValue: `projects/${t2.projectId}/databases/${t2.database}/documents/${e.path.canonicalString()}` + }; +} +function ze(t2) { + return !!t2 && "integerValue" in t2; +} +function je(t2) { + return !!t2 && "arrayValue" in t2; +} +function We(t2) { + return !!t2 && "nullValue" in t2; +} +function He(t2) { + return !!t2 && "doubleValue" in t2 && isNaN(Number(t2.doubleValue)); +} +function Je(t2) { + return !!t2 && "mapValue" in t2; +} +function Ye(t2) { + if (t2.geoPointValue) + return { + geoPointValue: Object.assign({}, t2.geoPointValue) + }; + if (t2.timestampValue && "object" == typeof t2.timestampValue) + return { + timestampValue: Object.assign({}, t2.timestampValue) + }; + if (t2.mapValue) { + const e = { + mapValue: { + fields: {} + } + }; + return _e(t2.mapValue.fields, (t3, n) => e.mapValue.fields[t3] = Ye(n)), e; + } + if (t2.arrayValue) { + const e = { + arrayValue: { + values: [] + } + }; + for (let n = 0; n < (t2.arrayValue.values || []).length; ++n) + e.arrayValue.values[n] = Ye(t2.arrayValue.values[n]); + return e; + } + return Object.assign({}, t2); +} +function Ze(t2) { + return "__max__" === (((t2.mapValue || {}).fields || {}).__type__ || {}).stringValue; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class sn { + constructor(t2) { + this.value = t2; + } + static empty() { + return new sn({ + mapValue: {} + }); + } + field(t2) { + if (t2.isEmpty()) + return this.value; + { + let e = this.value; + for (let n = 0; n < t2.length - 1; ++n) + if (e = (e.mapValue.fields || {})[t2.get(n)], !Je(e)) + return null; + return e = (e.mapValue.fields || {})[t2.lastSegment()], e || null; + } + } + set(t2, e) { + this.getFieldsMap(t2.popLast())[t2.lastSegment()] = Ye(e); + } + setAll(t2) { + let e = ut.emptyPath(), n = {}, s = []; + t2.forEach((t3, i2) => { + if (!e.isImmediateParentOf(i2)) { + const t4 = this.getFieldsMap(e); + this.applyChanges(t4, n, s), n = {}, s = [], e = i2.popLast(); + } + t3 ? n[i2.lastSegment()] = Ye(t3) : s.push(i2.lastSegment()); + }); + const i = this.getFieldsMap(e); + this.applyChanges(i, n, s); + } + delete(t2) { + const e = this.field(t2.popLast()); + Je(e) && e.mapValue.fields && delete e.mapValue.fields[t2.lastSegment()]; + } + isEqual(t2) { + return Be(this.value, t2.value); + } + getFieldsMap(t2) { + let e = this.value; + e.mapValue.fields || (e.mapValue = { + fields: {} + }); + for (let n = 0; n < t2.length; ++n) { + let s = e.mapValue.fields[t2.get(n)]; + Je(s) && s.mapValue.fields || (s = { + mapValue: { + fields: {} + } + }, e.mapValue.fields[t2.get(n)] = s), e = s; + } + return e.mapValue.fields; + } + applyChanges(t2, e, n) { + _e(e, (e2, n2) => t2[e2] = n2); + for (const e2 of n) + delete t2[e2]; + } + clone() { + return new sn(Ye(this.value)); + } +} +function rn(t2) { + const e = []; + return _e(t2.fields, (t3, n) => { + const s = new ut([t3]); + if (Je(n)) { + const t4 = rn(n.mapValue).fields; + if (0 === t4.length) + e.push(s); + else + for (const n2 of t4) + e.push(s.child(n2)); + } else + e.push(s); + }), new Ae(e); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class on { + constructor(t2, e, n, s, i, r, o) { + this.key = t2, this.documentType = e, this.version = n, this.readTime = s, this.createTime = i, this.data = r, this.documentState = o; + } + static newInvalidDocument(t2) { + return new on( + t2, + 0, + st.min(), + st.min(), + st.min(), + sn.empty(), + 0 + ); + } + static newFoundDocument(t2, e, n, s) { + return new on( + t2, + 1, + e, + st.min(), + n, + s, + 0 + ); + } + static newNoDocument(t2, e) { + return new on( + t2, + 2, + e, + st.min(), + st.min(), + sn.empty(), + 0 + ); + } + static newUnknownDocument(t2, e) { + return new on( + t2, + 3, + e, + st.min(), + st.min(), + sn.empty(), + 2 + ); + } + convertToFoundDocument(t2, e) { + return !this.createTime.isEqual(st.min()) || 2 !== this.documentType && 0 !== this.documentType || (this.createTime = t2), this.version = t2, this.documentType = 1, this.data = e, this.documentState = 0, this; + } + convertToNoDocument(t2) { + return this.version = t2, this.documentType = 2, this.data = sn.empty(), this.documentState = 0, this; + } + convertToUnknownDocument(t2) { + return this.version = t2, this.documentType = 3, this.data = sn.empty(), this.documentState = 2, this; + } + setHasCommittedMutations() { + return this.documentState = 2, this; + } + setHasLocalMutations() { + return this.documentState = 1, this.version = st.min(), this; + } + setReadTime(t2) { + return this.readTime = t2, this; + } + get hasLocalMutations() { + return 1 === this.documentState; + } + get hasCommittedMutations() { + return 2 === this.documentState; + } + get hasPendingWrites() { + return this.hasLocalMutations || this.hasCommittedMutations; + } + isValidDocument() { + return 0 !== this.documentType; + } + isFoundDocument() { + return 1 === this.documentType; + } + isNoDocument() { + return 2 === this.documentType; + } + isUnknownDocument() { + return 3 === this.documentType; + } + isEqual(t2) { + return t2 instanceof on && this.key.isEqual(t2.key) && this.version.isEqual(t2.version) && this.documentType === t2.documentType && this.documentState === t2.documentState && this.data.isEqual(t2.data); + } + mutableCopy() { + return new on(this.key, this.documentType, this.version, this.readTime, this.createTime, this.data.clone(), this.documentState); + } + toString() { + return `Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`; + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class un { + constructor(t2, e) { + this.position = t2, this.inclusive = e; + } +} +function cn(t2, e, n) { + let s = 0; + for (let i = 0; i < t2.position.length; i++) { + const r = e[i], o = t2.position[i]; + if (r.field.isKeyField()) + s = ct.comparator(ct.fromName(o.referenceValue), n.key); + else { + s = qe(o, n.data.field(r.field)); + } + if ("desc" === r.dir && (s *= -1), 0 !== s) + break; + } + return s; +} +function an(t2, e) { + if (null === t2) + return null === e; + if (null === e) + return false; + if (t2.inclusive !== e.inclusive || t2.position.length !== e.position.length) + return false; + for (let n = 0; n < t2.position.length; n++) { + if (!Be(t2.position[n], e.position[n])) + return false; + } + return true; +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class hn { + constructor(t2, e = "asc") { + this.field = t2, this.dir = e; + } +} +function ln(t2, e) { + return t2.dir === e.dir && t2.field.isEqual(e.field); +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class fn { +} +class dn extends fn { + constructor(t2, e, n) { + super(), this.field = t2, this.op = e, this.value = n; + } + static create(t2, e, n) { + return t2.isKeyField() ? "in" === e || "not-in" === e ? this.createKeyFieldInFilter(t2, e, n) : new An(t2, e, n) : "array-contains" === e ? new Pn(t2, n) : "in" === e ? new Vn(t2, n) : "not-in" === e ? new Sn(t2, n) : "array-contains-any" === e ? new Dn(t2, n) : new dn(t2, e, n); + } + static createKeyFieldInFilter(t2, e, n) { + return "in" === e ? new Rn(t2, n) : new vn(t2, n); + } + matches(t2) { + const e = t2.data.field(this.field); + return "!=" === this.op ? null !== e && this.matchesComparison(qe(e, this.value)) : null !== e && Fe(this.value) === Fe(e) && this.matchesComparison(qe(e, this.value)); + } + matchesComparison(t2) { + switch (this.op) { + case "<": + return t2 < 0; + case "<=": + return t2 <= 0; + case "==": + return 0 === t2; + case "!=": + return 0 !== t2; + case ">": + return t2 > 0; + case ">=": + return t2 >= 0; + default: + return O(); + } + } + isInequality() { + return ["<", "<=", ">", ">=", "!=", "not-in"].indexOf(this.op) >= 0; + } + getFlattenedFilters() { + return [this]; + } + getFilters() { + return [this]; + } + getFirstInequalityField() { + return this.isInequality() ? this.field : null; + } +} +class wn extends fn { + constructor(t2, e) { + super(), this.filters = t2, this.op = e, this.ht = null; + } + static create(t2, e) { + return new wn(t2, e); + } + matches(t2) { + return _n(this) ? void 0 === this.filters.find((e) => !e.matches(t2)) : void 0 !== this.filters.find((e) => e.matches(t2)); + } + getFlattenedFilters() { + return null !== this.ht || (this.ht = this.filters.reduce((t2, e) => t2.concat(e.getFlattenedFilters()), [])), this.ht; + } + getFilters() { + return Object.assign([], this.filters); + } + getFirstInequalityField() { + const t2 = this.lt((t3) => t3.isInequality()); + return null !== t2 ? t2.field : null; + } + lt(t2) { + for (const e of this.getFlattenedFilters()) + if (t2(e)) + return e; + return null; + } +} +function _n(t2) { + return "and" === t2.op; +} +function gn(t2) { + return yn(t2) && _n(t2); +} +function yn(t2) { + for (const e of t2.filters) + if (e instanceof wn) + return false; + return true; +} +function pn(t2) { + if (t2 instanceof dn) + return t2.field.canonicalString() + t2.op.toString() + Ke(t2.value); + if (gn(t2)) + return t2.filters.map((t3) => pn(t3)).join(","); + { + const e = t2.filters.map((t3) => pn(t3)).join(","); + return `${t2.op}(${e})`; + } +} +function In(t2, e) { + return t2 instanceof dn ? function(t3, e2) { + return e2 instanceof dn && t3.op === e2.op && t3.field.isEqual(e2.field) && Be(t3.value, e2.value); + }(t2, e) : t2 instanceof wn ? function(t3, e2) { + if (e2 instanceof wn && t3.op === e2.op && t3.filters.length === e2.filters.length) { + return t3.filters.reduce((t4, n, s) => t4 && In(n, e2.filters[s]), true); + } + return false; + }(t2, e) : void O(); +} +function En(t2) { + return t2 instanceof dn ? function(t3) { + return `${t3.field.canonicalString()} ${t3.op} ${Ke(t3.value)}`; + }(t2) : t2 instanceof wn ? function(t3) { + return t3.op.toString() + " {" + t3.getFilters().map(En).join(" ,") + "}"; + }(t2) : "Filter"; +} +class An extends dn { + constructor(t2, e, n) { + super(t2, e, n), this.key = ct.fromName(n.referenceValue); + } + matches(t2) { + const e = ct.comparator(t2.key, this.key); + return this.matchesComparison(e); + } +} +class Rn extends dn { + constructor(t2, e) { + super(t2, "in", e), this.keys = bn("in", e); + } + matches(t2) { + return this.keys.some((e) => e.isEqual(t2.key)); + } +} +class vn extends dn { + constructor(t2, e) { + super(t2, "not-in", e), this.keys = bn("not-in", e); + } + matches(t2) { + return !this.keys.some((e) => e.isEqual(t2.key)); + } +} +function bn(t2, e) { + var n; + return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((t3) => ct.fromName(t3.referenceValue)); +} +class Pn extends dn { + constructor(t2, e) { + super(t2, "array-contains", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return je(e) && Le(e.arrayValue, this.value); + } +} +class Vn extends dn { + constructor(t2, e) { + super(t2, "in", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return null !== e && Le(this.value.arrayValue, e); + } +} +class Sn extends dn { + constructor(t2, e) { + super(t2, "not-in", e); + } + matches(t2) { + if (Le(this.value.arrayValue, { + nullValue: "NULL_VALUE" + })) + return false; + const e = t2.data.field(this.field); + return null !== e && !Le(this.value.arrayValue, e); + } +} +class Dn extends dn { + constructor(t2, e) { + super(t2, "array-contains-any", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return !(!je(e) || !e.arrayValue.values) && e.arrayValue.values.some((t3) => Le(this.value.arrayValue, t3)); + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Cn { + constructor(t2, e = null, n = [], s = [], i = null, r = null, o = null) { + this.path = t2, this.collectionGroup = e, this.orderBy = n, this.filters = s, this.limit = i, this.startAt = r, this.endAt = o, this.ft = null; + } +} +function xn(t2, e = null, n = [], s = [], i = null, r = null, o = null) { + return new Cn(t2, e, n, s, i, r, o); +} +function Nn(t2) { + const e = F(t2); + if (null === e.ft) { + let t3 = e.path.canonicalString(); + null !== e.collectionGroup && (t3 += "|cg:" + e.collectionGroup), t3 += "|f:", t3 += e.filters.map((t4) => pn(t4)).join(","), t3 += "|ob:", t3 += e.orderBy.map((t4) => function(t5) { + return t5.field.canonicalString() + t5.dir; + }(t4)).join(","), $t(e.limit) || (t3 += "|l:", t3 += e.limit), e.startAt && (t3 += "|lb:", t3 += e.startAt.inclusive ? "b:" : "a:", t3 += e.startAt.position.map((t4) => Ke(t4)).join(",")), e.endAt && (t3 += "|ub:", t3 += e.endAt.inclusive ? "a:" : "b:", t3 += e.endAt.position.map((t4) => Ke(t4)).join(",")), e.ft = t3; + } + return e.ft; +} +function kn(t2, e) { + if (t2.limit !== e.limit) + return false; + if (t2.orderBy.length !== e.orderBy.length) + return false; + for (let n = 0; n < t2.orderBy.length; n++) + if (!ln(t2.orderBy[n], e.orderBy[n])) + return false; + if (t2.filters.length !== e.filters.length) + return false; + for (let n = 0; n < t2.filters.length; n++) + if (!In(t2.filters[n], e.filters[n])) + return false; + return t2.collectionGroup === e.collectionGroup && (!!t2.path.isEqual(e.path) && (!!an(t2.startAt, e.startAt) && an(t2.endAt, e.endAt))); +} +function On(t2) { + return ct.isDocumentKey(t2.path) && null === t2.collectionGroup && 0 === t2.filters.length; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Bn { + constructor(t2, e = null, n = [], s = [], i = null, r = "F", o = null, u = null) { + this.path = t2, this.collectionGroup = e, this.explicitOrderBy = n, this.filters = s, this.limit = i, this.limitType = r, this.startAt = o, this.endAt = u, this.dt = null, this.wt = null, this.startAt, this.endAt; + } +} +function Ln(t2, e, n, s, i, r, o, u) { + return new Bn(t2, e, n, s, i, r, o, u); +} +function qn(t2) { + return new Bn(t2); +} +function Un(t2) { + return 0 === t2.filters.length && null === t2.limit && null == t2.startAt && null == t2.endAt && (0 === t2.explicitOrderBy.length || 1 === t2.explicitOrderBy.length && t2.explicitOrderBy[0].field.isKeyField()); +} +function Kn(t2) { + return t2.explicitOrderBy.length > 0 ? t2.explicitOrderBy[0].field : null; +} +function Gn(t2) { + for (const e of t2.filters) { + const t3 = e.getFirstInequalityField(); + if (null !== t3) + return t3; + } + return null; +} +function Qn(t2) { + return null !== t2.collectionGroup; +} +function zn(t2) { + const e = F(t2); + if (null === e.dt) { + e.dt = []; + const t3 = Gn(e), n = Kn(e); + if (null !== t3 && null === n) + t3.isKeyField() || e.dt.push(new hn(t3)), e.dt.push(new hn(ut.keyField(), "asc")); + else { + let t4 = false; + for (const n2 of e.explicitOrderBy) + e.dt.push(n2), n2.field.isKeyField() && (t4 = true); + if (!t4) { + const t5 = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : "asc"; + e.dt.push(new hn(ut.keyField(), t5)); + } + } + } + return e.dt; +} +function jn(t2) { + const e = F(t2); + if (!e.wt) + if ("F" === e.limitType) + e.wt = xn(e.path, e.collectionGroup, zn(e), e.filters, e.limit, e.startAt, e.endAt); + else { + const t3 = []; + for (const n2 of zn(e)) { + const e2 = "desc" === n2.dir ? "asc" : "desc"; + t3.push(new hn(n2.field, e2)); + } + const n = e.endAt ? new un(e.endAt.position, e.endAt.inclusive) : null, s = e.startAt ? new un(e.startAt.position, e.startAt.inclusive) : null; + e.wt = xn(e.path, e.collectionGroup, t3, e.filters, e.limit, n, s); + } + return e.wt; +} +function Wn(t2, e) { + e.getFirstInequalityField(), Gn(t2); + const n = t2.filters.concat([e]); + return new Bn(t2.path, t2.collectionGroup, t2.explicitOrderBy.slice(), n, t2.limit, t2.limitType, t2.startAt, t2.endAt); +} +function Hn(t2, e, n) { + return new Bn(t2.path, t2.collectionGroup, t2.explicitOrderBy.slice(), t2.filters.slice(), e, n, t2.startAt, t2.endAt); +} +function Jn(t2, e) { + return kn(jn(t2), jn(e)) && t2.limitType === e.limitType; +} +function Yn(t2) { + return `${Nn(jn(t2))}|lt:${t2.limitType}`; +} +function Zn(t2) { + return `Query(target=${function(t3) { + let e = t3.path.canonicalString(); + return null !== t3.collectionGroup && (e += " collectionGroup=" + t3.collectionGroup), t3.filters.length > 0 && (e += `, filters: [${t3.filters.map((t4) => En(t4)).join(", ")}]`), $t(t3.limit) || (e += ", limit: " + t3.limit), t3.orderBy.length > 0 && (e += `, orderBy: [${t3.orderBy.map((t4) => function(t5) { + return `${t5.field.canonicalString()} (${t5.dir})`; + }(t4)).join(", ")}]`), t3.startAt && (e += ", startAt: ", e += t3.startAt.inclusive ? "b:" : "a:", e += t3.startAt.position.map((t4) => Ke(t4)).join(",")), t3.endAt && (e += ", endAt: ", e += t3.endAt.inclusive ? "a:" : "b:", e += t3.endAt.position.map((t4) => Ke(t4)).join(",")), `Target(${e})`; + }(jn(t2))}; limitType=${t2.limitType})`; +} +function Xn(t2, e) { + return e.isFoundDocument() && function(t3, e2) { + const n = e2.key.path; + return null !== t3.collectionGroup ? e2.key.hasCollectionId(t3.collectionGroup) && t3.path.isPrefixOf(n) : ct.isDocumentKey(t3.path) ? t3.path.isEqual(n) : t3.path.isImmediateParentOf(n); + }(t2, e) && function(t3, e2) { + for (const n of zn(t3)) + if (!n.field.isKeyField() && null === e2.data.field(n.field)) + return false; + return true; + }(t2, e) && function(t3, e2) { + for (const n of t3.filters) + if (!n.matches(e2)) + return false; + return true; + }(t2, e) && function(t3, e2) { + if (t3.startAt && !function(t4, e3, n) { + const s = cn(t4, e3, n); + return t4.inclusive ? s <= 0 : s < 0; + }(t3.startAt, zn(t3), e2)) + return false; + if (t3.endAt && !function(t4, e3, n) { + const s = cn(t4, e3, n); + return t4.inclusive ? s >= 0 : s > 0; + }(t3.endAt, zn(t3), e2)) + return false; + return true; + }(t2, e); +} +function ts(t2) { + return t2.collectionGroup || (t2.path.length % 2 == 1 ? t2.path.lastSegment() : t2.path.get(t2.path.length - 2)); +} +function es(t2) { + return (e, n) => { + let s = false; + for (const i of zn(t2)) { + const t3 = ns(i, e, n); + if (0 !== t3) + return t3; + s = s || i.field.isKeyField(); + } + return 0; + }; +} +function ns(t2, e, n) { + const s = t2.field.isKeyField() ? ct.comparator(e.key, n.key) : function(t3, e2, n2) { + const s2 = e2.data.field(t3), i = n2.data.field(t3); + return null !== s2 && null !== i ? qe(s2, i) : O(); + }(t2.field, e, n); + switch (t2.dir) { + case "asc": + return s; + case "desc": + return -1 * s; + default: + return O(); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ss { + constructor(t2, e) { + this.mapKeyFn = t2, this.equalsFn = e, this.inner = {}, this.innerSize = 0; + } + get(t2) { + const e = this.mapKeyFn(t2), n = this.inner[e]; + if (void 0 !== n) { + for (const [e2, s] of n) + if (this.equalsFn(e2, t2)) + return s; + } + } + has(t2) { + return void 0 !== this.get(t2); + } + set(t2, e) { + const n = this.mapKeyFn(t2), s = this.inner[n]; + if (void 0 === s) + return this.inner[n] = [[t2, e]], void this.innerSize++; + for (let n2 = 0; n2 < s.length; n2++) + if (this.equalsFn(s[n2][0], t2)) + return void (s[n2] = [t2, e]); + s.push([t2, e]), this.innerSize++; + } + delete(t2) { + const e = this.mapKeyFn(t2), n = this.inner[e]; + if (void 0 === n) + return false; + for (let s = 0; s < n.length; s++) + if (this.equalsFn(n[s][0], t2)) + return 1 === n.length ? delete this.inner[e] : n.splice(s, 1), this.innerSize--, true; + return false; + } + forEach(t2) { + _e(this.inner, (e, n) => { + for (const [e2, s] of n) + t2(e2, s); + }); + } + isEmpty() { + return me(this.inner); + } + size() { + return this.innerSize; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const is = new ge(ct.comparator); +function rs() { + return is; +} +const os = new ge(ct.comparator); +function us(...t2) { + let e = os; + for (const n of t2) + e = e.insert(n.key, n); + return e; +} +function cs(t2) { + let e = os; + return t2.forEach((t3, n) => e = e.insert(t3, n.overlayedDocument)), e; +} +function as() { + return ls(); +} +function hs() { + return ls(); +} +function ls() { + return new ss((t2) => t2.toString(), (t2, e) => t2.isEqual(e)); +} +const fs = new ge(ct.comparator); +const ds = new Ie(ct.comparator); +function ws(...t2) { + let e = ds; + for (const n of t2) + e = e.add(n); + return e; +} +const _s = new Ie(X); +function ms() { + return _s; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function gs(t2, e) { + if (t2.useProto3Json) { + if (isNaN(e)) + return { + doubleValue: "NaN" + }; + if (e === 1 / 0) + return { + doubleValue: "Infinity" + }; + if (e === -1 / 0) + return { + doubleValue: "-Infinity" + }; + } + return { + doubleValue: Mt(e) ? "-0" : e + }; +} +function ys(t2) { + return { + integerValue: "" + t2 + }; +} +function ps(t2, e) { + return Ft(e) ? ys(e) : gs(t2, e); +} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Is { + constructor() { + this._ = void 0; + } +} +function Ts(t2, e, n) { + return t2 instanceof Rs ? function(t3, e2) { + const n2 = { + fields: { + __type__: { + stringValue: "server_timestamp" + }, + __local_write_time__: { + timestampValue: { + seconds: t3.seconds, + nanos: t3.nanoseconds + } + } + } + }; + return e2 && (n2.fields.__previous_value__ = e2), { + mapValue: n2 + }; + }(n, e) : t2 instanceof vs ? bs(t2, e) : t2 instanceof Ps ? Vs(t2, e) : function(t3, e2) { + const n2 = As(t3, e2), s = Ds(n2) + Ds(t3._t); + return ze(n2) && ze(t3._t) ? ys(s) : gs(t3.serializer, s); + }(t2, e); +} +function Es(t2, e, n) { + return t2 instanceof vs ? bs(t2, e) : t2 instanceof Ps ? Vs(t2, e) : n; +} +function As(t2, e) { + return t2 instanceof Ss ? ze(n = e) || function(t3) { + return !!t3 && "doubleValue" in t3; + }(n) ? e : { + integerValue: 0 + } : null; + var n; +} +class Rs extends Is { +} +class vs extends Is { + constructor(t2) { + super(), this.elements = t2; + } +} +function bs(t2, e) { + const n = Cs(e); + for (const e2 of t2.elements) + n.some((t3) => Be(t3, e2)) || n.push(e2); + return { + arrayValue: { + values: n + } + }; +} +class Ps extends Is { + constructor(t2) { + super(), this.elements = t2; + } +} +function Vs(t2, e) { + let n = Cs(e); + for (const e2 of t2.elements) + n = n.filter((t3) => !Be(t3, e2)); + return { + arrayValue: { + values: n + } + }; +} +class Ss extends Is { + constructor(t2, e) { + super(), this.serializer = t2, this._t = e; + } +} +function Ds(t2) { + return Se(t2.integerValue || t2.doubleValue); +} +function Cs(t2) { + return je(t2) && t2.arrayValue.values ? t2.arrayValue.values.slice() : []; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class xs { + constructor(t2, e) { + this.field = t2, this.transform = e; + } +} +function Ns(t2, e) { + return t2.field.isEqual(e.field) && function(t3, e2) { + return t3 instanceof vs && e2 instanceof vs || t3 instanceof Ps && e2 instanceof Ps ? tt(t3.elements, e2.elements, Be) : t3 instanceof Ss && e2 instanceof Ss ? Be(t3._t, e2._t) : t3 instanceof Rs && e2 instanceof Rs; + }(t2.transform, e.transform); +} +class ks { + constructor(t2, e) { + this.version = t2, this.transformResults = e; + } +} +class Os { + constructor(t2, e) { + this.updateTime = t2, this.exists = e; + } + static none() { + return new Os(); + } + static exists(t2) { + return new Os(void 0, t2); + } + static updateTime(t2) { + return new Os(t2); + } + get isNone() { + return void 0 === this.updateTime && void 0 === this.exists; + } + isEqual(t2) { + return this.exists === t2.exists && (this.updateTime ? !!t2.updateTime && this.updateTime.isEqual(t2.updateTime) : !t2.updateTime); + } +} +function $s(t2, e) { + return void 0 !== t2.updateTime ? e.isFoundDocument() && e.version.isEqual(t2.updateTime) : void 0 === t2.exists || t2.exists === e.isFoundDocument(); +} +class Ms { +} +function Fs(t2, e) { + if (!t2.hasLocalMutations || e && 0 === e.fields.length) + return null; + if (null === e) + return t2.isNoDocument() ? new Ws(t2.key, Os.none()) : new Ks(t2.key, t2.data, Os.none()); + { + const n = t2.data, s = sn.empty(); + let i = new Ie(ut.comparator); + for (let t3 of e.fields) + if (!i.has(t3)) { + let e2 = n.field(t3); + null === e2 && t3.length > 1 && (t3 = t3.popLast(), e2 = n.field(t3)), null === e2 ? s.delete(t3) : s.set(t3, e2), i = i.add(t3); + } + return new Gs(t2.key, s, new Ae(i.toArray()), Os.none()); + } +} +function Bs(t2, e, n) { + t2 instanceof Ks ? function(t3, e2, n2) { + const s = t3.value.clone(), i = zs(t3.fieldTransforms, e2, n2.transformResults); + s.setAll(i), e2.convertToFoundDocument(n2.version, s).setHasCommittedMutations(); + }(t2, e, n) : t2 instanceof Gs ? function(t3, e2, n2) { + if (!$s(t3.precondition, e2)) + return void e2.convertToUnknownDocument(n2.version); + const s = zs(t3.fieldTransforms, e2, n2.transformResults), i = e2.data; + i.setAll(Qs(t3)), i.setAll(s), e2.convertToFoundDocument(n2.version, i).setHasCommittedMutations(); + }(t2, e, n) : function(t3, e2, n2) { + e2.convertToNoDocument(n2.version).setHasCommittedMutations(); + }(0, e, n); +} +function Ls(t2, e, n, s) { + return t2 instanceof Ks ? function(t3, e2, n2, s2) { + if (!$s(t3.precondition, e2)) + return n2; + const i = t3.value.clone(), r = js(t3.fieldTransforms, s2, e2); + return i.setAll(r), e2.convertToFoundDocument(e2.version, i).setHasLocalMutations(), null; + }(t2, e, n, s) : t2 instanceof Gs ? function(t3, e2, n2, s2) { + if (!$s(t3.precondition, e2)) + return n2; + const i = js(t3.fieldTransforms, s2, e2), r = e2.data; + if (r.setAll(Qs(t3)), r.setAll(i), e2.convertToFoundDocument(e2.version, r).setHasLocalMutations(), null === n2) + return null; + return n2.unionWith(t3.fieldMask.fields).unionWith(t3.fieldTransforms.map((t4) => t4.field)); + }(t2, e, n, s) : function(t3, e2, n2) { + if ($s(t3.precondition, e2)) + return e2.convertToNoDocument(e2.version).setHasLocalMutations(), null; + return n2; + }(t2, e, n); +} +function qs(t2, e) { + let n = null; + for (const s of t2.fieldTransforms) { + const t3 = e.data.field(s.field), i = As(s.transform, t3 || null); + null != i && (null === n && (n = sn.empty()), n.set(s.field, i)); + } + return n || null; +} +function Us(t2, e) { + return t2.type === e.type && (!!t2.key.isEqual(e.key) && (!!t2.precondition.isEqual(e.precondition) && (!!function(t3, e2) { + return void 0 === t3 && void 0 === e2 || !(!t3 || !e2) && tt(t3, e2, (t4, e3) => Ns(t4, e3)); + }(t2.fieldTransforms, e.fieldTransforms) && (0 === t2.type ? t2.value.isEqual(e.value) : 1 !== t2.type || t2.data.isEqual(e.data) && t2.fieldMask.isEqual(e.fieldMask))))); +} +class Ks extends Ms { + constructor(t2, e, n, s = []) { + super(), this.key = t2, this.value = e, this.precondition = n, this.fieldTransforms = s, this.type = 0; + } + getFieldMask() { + return null; + } +} +class Gs extends Ms { + constructor(t2, e, n, s, i = []) { + super(), this.key = t2, this.data = e, this.fieldMask = n, this.precondition = s, this.fieldTransforms = i, this.type = 1; + } + getFieldMask() { + return this.fieldMask; + } +} +function Qs(t2) { + const e = /* @__PURE__ */ new Map(); + return t2.fieldMask.fields.forEach((n) => { + if (!n.isEmpty()) { + const s = t2.data.field(n); + e.set(n, s); + } + }), e; +} +function zs(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + $(t2.length === n.length); + for (let i = 0; i < n.length; i++) { + const r = t2[i], o = r.transform, u = e.data.field(r.field); + s.set(r.field, Es(o, u, n[i])); + } + return s; +} +function js(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + for (const i of t2) { + const t3 = i.transform, r = n.data.field(i.field); + s.set(i.field, Ts(t3, r, e)); + } + return s; +} +class Ws extends Ms { + constructor(t2, e) { + super(), this.key = t2, this.precondition = e, this.type = 2, this.fieldTransforms = []; + } + getFieldMask() { + return null; + } +} +class Hs extends Ms { + constructor(t2, e) { + super(), this.key = t2, this.precondition = e, this.type = 3, this.fieldTransforms = []; + } + getFieldMask() { + return null; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Js { + constructor(t2, e, n, s) { + this.batchId = t2, this.localWriteTime = e, this.baseMutations = n, this.mutations = s; + } + applyToRemoteDocument(t2, e) { + const n = e.mutationResults; + for (let e2 = 0; e2 < this.mutations.length; e2++) { + const s = this.mutations[e2]; + if (s.key.isEqual(t2.key)) { + Bs(s, t2, n[e2]); + } + } + } + applyToLocalView(t2, e) { + for (const n of this.baseMutations) + n.key.isEqual(t2.key) && (e = Ls(n, t2, e, this.localWriteTime)); + for (const n of this.mutations) + n.key.isEqual(t2.key) && (e = Ls(n, t2, e, this.localWriteTime)); + return e; + } + applyToLocalDocumentSet(t2, e) { + const n = hs(); + return this.mutations.forEach((s) => { + const i = t2.get(s.key), r = i.overlayedDocument; + let o = this.applyToLocalView(r, i.mutatedFields); + o = e.has(s.key) ? null : o; + const u = Fs(r, o); + null !== u && n.set(s.key, u), r.isValidDocument() || r.convertToNoDocument(st.min()); + }), n; + } + keys() { + return this.mutations.reduce((t2, e) => t2.add(e.key), ws()); + } + isEqual(t2) { + return this.batchId === t2.batchId && tt(this.mutations, t2.mutations, (t3, e) => Us(t3, e)) && tt(this.baseMutations, t2.baseMutations, (t3, e) => Us(t3, e)); + } +} +class Ys { + constructor(t2, e, n, s) { + this.batch = t2, this.commitVersion = e, this.mutationResults = n, this.docVersions = s; + } + static from(t2, e, n) { + $(t2.mutations.length === n.length); + let s = fs; + const i = t2.mutations; + for (let t3 = 0; t3 < i.length; t3++) + s = s.insert(i[t3].key, n[t3].version); + return new Ys(t2, e, n, s); + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Zs { + constructor(t2, e) { + this.largestBatchId = t2, this.mutation = e; + } + getKey() { + return this.mutation.key; + } + isEqual(t2) { + return null !== t2 && this.mutation === t2.mutation; + } + toString() { + return `Overlay{ + largestBatchId: ${this.largestBatchId}, + mutation: ${this.mutation.toString()} + }`; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ni { + constructor(t2) { + this.count = t2; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var si, ii; +function ri(t2) { + switch (t2) { + default: + return O(); + case B.CANCELLED: + case B.UNKNOWN: + case B.DEADLINE_EXCEEDED: + case B.RESOURCE_EXHAUSTED: + case B.INTERNAL: + case B.UNAVAILABLE: + case B.UNAUTHENTICATED: + return false; + case B.INVALID_ARGUMENT: + case B.NOT_FOUND: + case B.ALREADY_EXISTS: + case B.PERMISSION_DENIED: + case B.FAILED_PRECONDITION: + case B.ABORTED: + case B.OUT_OF_RANGE: + case B.UNIMPLEMENTED: + case B.DATA_LOSS: + return true; + } +} +function oi(t2) { + if (void 0 === t2) + return x("GRPC error has no .code"), B.UNKNOWN; + switch (t2) { + case si.OK: + return B.OK; + case si.CANCELLED: + return B.CANCELLED; + case si.UNKNOWN: + return B.UNKNOWN; + case si.DEADLINE_EXCEEDED: + return B.DEADLINE_EXCEEDED; + case si.RESOURCE_EXHAUSTED: + return B.RESOURCE_EXHAUSTED; + case si.INTERNAL: + return B.INTERNAL; + case si.UNAVAILABLE: + return B.UNAVAILABLE; + case si.UNAUTHENTICATED: + return B.UNAUTHENTICATED; + case si.INVALID_ARGUMENT: + return B.INVALID_ARGUMENT; + case si.NOT_FOUND: + return B.NOT_FOUND; + case si.ALREADY_EXISTS: + return B.ALREADY_EXISTS; + case si.PERMISSION_DENIED: + return B.PERMISSION_DENIED; + case si.FAILED_PRECONDITION: + return B.FAILED_PRECONDITION; + case si.ABORTED: + return B.ABORTED; + case si.OUT_OF_RANGE: + return B.OUT_OF_RANGE; + case si.UNIMPLEMENTED: + return B.UNIMPLEMENTED; + case si.DATA_LOSS: + return B.DATA_LOSS; + default: + return O(); + } +} +(ii = si || (si = {}))[ii.OK = 0] = "OK", ii[ii.CANCELLED = 1] = "CANCELLED", ii[ii.UNKNOWN = 2] = "UNKNOWN", ii[ii.INVALID_ARGUMENT = 3] = "INVALID_ARGUMENT", ii[ii.DEADLINE_EXCEEDED = 4] = "DEADLINE_EXCEEDED", ii[ii.NOT_FOUND = 5] = "NOT_FOUND", ii[ii.ALREADY_EXISTS = 6] = "ALREADY_EXISTS", ii[ii.PERMISSION_DENIED = 7] = "PERMISSION_DENIED", ii[ii.UNAUTHENTICATED = 16] = "UNAUTHENTICATED", ii[ii.RESOURCE_EXHAUSTED = 8] = "RESOURCE_EXHAUSTED", ii[ii.FAILED_PRECONDITION = 9] = "FAILED_PRECONDITION", ii[ii.ABORTED = 10] = "ABORTED", ii[ii.OUT_OF_RANGE = 11] = "OUT_OF_RANGE", ii[ii.UNIMPLEMENTED = 12] = "UNIMPLEMENTED", ii[ii.INTERNAL = 13] = "INTERNAL", ii[ii.UNAVAILABLE = 14] = "UNAVAILABLE", ii[ii.DATA_LOSS = 15] = "DATA_LOSS"; +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ui { + constructor() { + this.onExistenceFilterMismatchCallbacks = /* @__PURE__ */ new Map(); + } + static get instance() { + return ci; + } + static getOrCreateInstance() { + return null === ci && (ci = new ui()), ci; + } + onExistenceFilterMismatch(t2) { + const e = Symbol(); + return this.onExistenceFilterMismatchCallbacks.set(e, t2), () => this.onExistenceFilterMismatchCallbacks.delete(e); + } + notifyOnExistenceFilterMismatch(t2) { + this.onExistenceFilterMismatchCallbacks.forEach((e) => e(t2)); + } +} +let ci = null; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ai { + constructor(t2, e, n, s, i) { + this.snapshotVersion = t2, this.targetChanges = e, this.targetMismatches = n, this.documentUpdates = s, this.resolvedLimboDocuments = i; + } + static createSynthesizedRemoteEventForCurrentChange(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + return s.set(t2, hi.createSynthesizedTargetChangeForCurrentChange(t2, e, n)), new ai(st.min(), s, ms(), rs(), ws()); + } +} +class hi { + constructor(t2, e, n, s, i) { + this.resumeToken = t2, this.current = e, this.addedDocuments = n, this.modifiedDocuments = s, this.removedDocuments = i; + } + static createSynthesizedTargetChangeForCurrentChange(t2, e, n) { + return new hi(n, e, ws(), ws(), ws()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class li { + constructor(t2, e, n, s) { + this.It = t2, this.removedTargetIds = e, this.key = n, this.Tt = s; + } +} +class fi { + constructor(t2, e) { + this.targetId = t2, this.Et = e; + } +} +class di { + constructor(t2, e, n = be.EMPTY_BYTE_STRING, s = null) { + this.state = t2, this.targetIds = e, this.resumeToken = n, this.cause = s; + } +} +class wi { + constructor() { + this.At = 0, this.Rt = gi(), this.vt = be.EMPTY_BYTE_STRING, this.bt = false, this.Pt = true; + } + get current() { + return this.bt; + } + get resumeToken() { + return this.vt; + } + get Vt() { + return 0 !== this.At; + } + get St() { + return this.Pt; + } + Dt(t2) { + t2.approximateByteSize() > 0 && (this.Pt = true, this.vt = t2); + } + Ct() { + let t2 = ws(), e = ws(), n = ws(); + return this.Rt.forEach((s, i) => { + switch (i) { + case 0: + t2 = t2.add(s); + break; + case 2: + e = e.add(s); + break; + case 1: + n = n.add(s); + break; + default: + O(); + } + }), new hi(this.vt, this.bt, t2, e, n); + } + xt() { + this.Pt = false, this.Rt = gi(); + } + Nt(t2, e) { + this.Pt = true, this.Rt = this.Rt.insert(t2, e); + } + kt(t2) { + this.Pt = true, this.Rt = this.Rt.remove(t2); + } + Ot() { + this.At += 1; + } + $t() { + this.At -= 1; + } + Mt() { + this.Pt = true, this.bt = true; + } +} +class _i { + constructor(t2) { + this.Ft = t2, this.Bt = /* @__PURE__ */ new Map(), this.Lt = rs(), this.qt = mi(), this.Ut = new Ie(X); + } + Kt(t2) { + for (const e of t2.It) + t2.Tt && t2.Tt.isFoundDocument() ? this.Gt(e, t2.Tt) : this.Qt(e, t2.key, t2.Tt); + for (const e of t2.removedTargetIds) + this.Qt(e, t2.key, t2.Tt); + } + zt(t2) { + this.forEachTarget(t2, (e) => { + const n = this.jt(e); + switch (t2.state) { + case 0: + this.Wt(e) && n.Dt(t2.resumeToken); + break; + case 1: + n.$t(), n.Vt || n.xt(), n.Dt(t2.resumeToken); + break; + case 2: + n.$t(), n.Vt || this.removeTarget(e); + break; + case 3: + this.Wt(e) && (n.Mt(), n.Dt(t2.resumeToken)); + break; + case 4: + this.Wt(e) && (this.Ht(e), n.Dt(t2.resumeToken)); + break; + default: + O(); + } + }); + } + forEachTarget(t2, e) { + t2.targetIds.length > 0 ? t2.targetIds.forEach(e) : this.Bt.forEach((t3, n) => { + this.Wt(n) && e(n); + }); + } + Jt(t2) { + var e; + const n = t2.targetId, s = t2.Et.count, i = this.Yt(n); + if (i) { + const r = i.target; + if (On(r)) + if (0 === s) { + const t3 = new ct(r.path); + this.Qt(n, t3, on.newNoDocument(t3, st.min())); + } else + $(1 === s); + else { + const i2 = this.Zt(n); + i2 !== s && (this.Ht(n), this.Ut = this.Ut.add(n), null === (e = ui.instance) || void 0 === e || e.notifyOnExistenceFilterMismatch({ + localCacheCount: i2, + existenceFilterCount: t2.Et.count + })); + } + } + } + Xt(t2) { + const e = /* @__PURE__ */ new Map(); + this.Bt.forEach((n2, s2) => { + const i = this.Yt(s2); + if (i) { + if (n2.current && On(i.target)) { + const e2 = new ct(i.target.path); + null !== this.Lt.get(e2) || this.te(s2, e2) || this.Qt(s2, e2, on.newNoDocument(e2, t2)); + } + n2.St && (e.set(s2, n2.Ct()), n2.xt()); + } + }); + let n = ws(); + this.qt.forEach((t3, e2) => { + let s2 = true; + e2.forEachWhile((t4) => { + const e3 = this.Yt(t4); + return !e3 || 2 === e3.purpose || (s2 = false, false); + }), s2 && (n = n.add(t3)); + }), this.Lt.forEach((e2, n2) => n2.setReadTime(t2)); + const s = new ai(t2, e, this.Ut, this.Lt, n); + return this.Lt = rs(), this.qt = mi(), this.Ut = new Ie(X), s; + } + Gt(t2, e) { + if (!this.Wt(t2)) + return; + const n = this.te(t2, e.key) ? 2 : 0; + this.jt(t2).Nt(e.key, n), this.Lt = this.Lt.insert(e.key, e), this.qt = this.qt.insert(e.key, this.ee(e.key).add(t2)); + } + Qt(t2, e, n) { + if (!this.Wt(t2)) + return; + const s = this.jt(t2); + this.te(t2, e) ? s.Nt(e, 1) : s.kt(e), this.qt = this.qt.insert(e, this.ee(e).delete(t2)), n && (this.Lt = this.Lt.insert(e, n)); + } + removeTarget(t2) { + this.Bt.delete(t2); + } + Zt(t2) { + const e = this.jt(t2).Ct(); + return this.Ft.getRemoteKeysForTarget(t2).size + e.addedDocuments.size - e.removedDocuments.size; + } + Ot(t2) { + this.jt(t2).Ot(); + } + jt(t2) { + let e = this.Bt.get(t2); + return e || (e = new wi(), this.Bt.set(t2, e)), e; + } + ee(t2) { + let e = this.qt.get(t2); + return e || (e = new Ie(X), this.qt = this.qt.insert(t2, e)), e; + } + Wt(t2) { + const e = null !== this.Yt(t2); + return e || C("WatchChangeAggregator", "Detected inactive target", t2), e; + } + Yt(t2) { + const e = this.Bt.get(t2); + return e && e.Vt ? null : this.Ft.ne(t2); + } + Ht(t2) { + this.Bt.set(t2, new wi()); + this.Ft.getRemoteKeysForTarget(t2).forEach((e) => { + this.Qt(t2, e, null); + }); + } + te(t2, e) { + return this.Ft.getRemoteKeysForTarget(t2).has(e); + } +} +function mi() { + return new ge(ct.comparator); +} +function gi() { + return new ge(ct.comparator); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const yi = (() => { + const t2 = { + asc: "ASCENDING", + desc: "DESCENDING" + }; + return t2; +})(), pi = (() => { + const t2 = { + "<": "LESS_THAN", + "<=": "LESS_THAN_OR_EQUAL", + ">": "GREATER_THAN", + ">=": "GREATER_THAN_OR_EQUAL", + "==": "EQUAL", + "!=": "NOT_EQUAL", + "array-contains": "ARRAY_CONTAINS", + in: "IN", + "not-in": "NOT_IN", + "array-contains-any": "ARRAY_CONTAINS_ANY" + }; + return t2; +})(), Ii = (() => { + const t2 = { + and: "AND", + or: "OR" + }; + return t2; +})(); +class Ti { + constructor(t2, e) { + this.databaseId = t2, this.useProto3Json = e; + } +} +function Ei(t2, e) { + if (t2.useProto3Json) { + return `${new Date(1e3 * e.seconds).toISOString().replace(/\.\d*/, "").replace("Z", "")}.${("000000000" + e.nanoseconds).slice(-9)}Z`; + } + return { + seconds: "" + e.seconds, + nanos: e.nanoseconds + }; +} +function Ai(t2, e) { + return t2.useProto3Json ? e.toBase64() : e.toUint8Array(); +} +function Ri(t2, e) { + return Ei(t2, e.toTimestamp()); +} +function vi(t2) { + return $(!!t2), st.fromTimestamp(function(t3) { + const e = Ve(t3); + return new nt(e.seconds, e.nanos); + }(t2)); +} +function bi(t2, e) { + return function(t3) { + return new rt(["projects", t3.projectId, "databases", t3.database]); + }(t2).child("documents").child(e).canonicalString(); +} +function Pi(t2) { + const e = rt.fromString(t2); + return $(Xi(e)), e; +} +function Vi(t2, e) { + return bi(t2.databaseId, e.path); +} +function Si(t2, e) { + const n = Pi(e); + if (n.get(1) !== t2.databaseId.projectId) + throw new L(B.INVALID_ARGUMENT, "Tried to deserialize key from different project: " + n.get(1) + " vs " + t2.databaseId.projectId); + if (n.get(3) !== t2.databaseId.database) + throw new L(B.INVALID_ARGUMENT, "Tried to deserialize key from different database: " + n.get(3) + " vs " + t2.databaseId.database); + return new ct(Ni(n)); +} +function Di(t2, e) { + return bi(t2.databaseId, e); +} +function Ci(t2) { + const e = Pi(t2); + return 4 === e.length ? rt.emptyPath() : Ni(e); +} +function xi(t2) { + return new rt(["projects", t2.databaseId.projectId, "databases", t2.databaseId.database]).canonicalString(); +} +function Ni(t2) { + return $(t2.length > 4 && "documents" === t2.get(4)), t2.popFirst(5); +} +function ki(t2, e, n) { + return { + name: Vi(t2, e), + fields: n.value.mapValue.fields + }; +} +function Mi(t2, e) { + let n; + if ("targetChange" in e) { + e.targetChange; + const s = function(t3) { + return "NO_CHANGE" === t3 ? 0 : "ADD" === t3 ? 1 : "REMOVE" === t3 ? 2 : "CURRENT" === t3 ? 3 : "RESET" === t3 ? 4 : O(); + }(e.targetChange.targetChangeType || "NO_CHANGE"), i = e.targetChange.targetIds || [], r = function(t3, e2) { + return t3.useProto3Json ? ($(void 0 === e2 || "string" == typeof e2), be.fromBase64String(e2 || "")) : ($(void 0 === e2 || e2 instanceof Uint8Array), be.fromUint8Array(e2 || new Uint8Array())); + }(t2, e.targetChange.resumeToken), o = e.targetChange.cause, u = o && function(t3) { + const e2 = void 0 === t3.code ? B.UNKNOWN : oi(t3.code); + return new L(e2, t3.message || ""); + }(o); + n = new di(s, i, r, u || null); + } else if ("documentChange" in e) { + e.documentChange; + const s = e.documentChange; + s.document, s.document.name, s.document.updateTime; + const i = Si(t2, s.document.name), r = vi(s.document.updateTime), o = s.document.createTime ? vi(s.document.createTime) : st.min(), u = new sn({ + mapValue: { + fields: s.document.fields + } + }), c = on.newFoundDocument(i, r, o, u), a = s.targetIds || [], h = s.removedTargetIds || []; + n = new li(a, h, c.key, c); + } else if ("documentDelete" in e) { + e.documentDelete; + const s = e.documentDelete; + s.document; + const i = Si(t2, s.document), r = s.readTime ? vi(s.readTime) : st.min(), o = on.newNoDocument(i, r), u = s.removedTargetIds || []; + n = new li([], u, o.key, o); + } else if ("documentRemove" in e) { + e.documentRemove; + const s = e.documentRemove; + s.document; + const i = Si(t2, s.document), r = s.removedTargetIds || []; + n = new li([], r, i, null); + } else { + if (!("filter" in e)) + return O(); + { + e.filter; + const t3 = e.filter; + t3.targetId; + const s = t3.count || 0, i = new ni(s), r = t3.targetId; + n = new fi(r, i); + } + } + return n; +} +function Fi(t2, e) { + let n; + if (e instanceof Ks) + n = { + update: ki(t2, e.key, e.value) + }; + else if (e instanceof Ws) + n = { + delete: Vi(t2, e.key) + }; + else if (e instanceof Gs) + n = { + update: ki(t2, e.key, e.data), + updateMask: Zi(e.fieldMask) + }; + else { + if (!(e instanceof Hs)) + return O(); + n = { + verify: Vi(t2, e.key) + }; + } + return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((t3) => function(t4, e2) { + const n2 = e2.transform; + if (n2 instanceof Rs) + return { + fieldPath: e2.field.canonicalString(), + setToServerValue: "REQUEST_TIME" + }; + if (n2 instanceof vs) + return { + fieldPath: e2.field.canonicalString(), + appendMissingElements: { + values: n2.elements + } + }; + if (n2 instanceof Ps) + return { + fieldPath: e2.field.canonicalString(), + removeAllFromArray: { + values: n2.elements + } + }; + if (n2 instanceof Ss) + return { + fieldPath: e2.field.canonicalString(), + increment: n2._t + }; + throw O(); + }(0, t3))), e.precondition.isNone || (n.currentDocument = function(t3, e2) { + return void 0 !== e2.updateTime ? { + updateTime: Ri(t3, e2.updateTime) + } : void 0 !== e2.exists ? { + exists: e2.exists + } : O(); + }(t2, e.precondition)), n; +} +function Li(t2, e) { + return t2 && t2.length > 0 ? ($(void 0 !== e), t2.map((t3) => function(t4, e2) { + let n = t4.updateTime ? vi(t4.updateTime) : vi(e2); + return n.isEqual(st.min()) && (n = vi(e2)), new ks(n, t4.transformResults || []); + }(t3, e))) : []; +} +function qi(t2, e) { + return { + documents: [Di(t2, e.path)] + }; +} +function Ui(t2, e) { + const n = { + structuredQuery: {} + }, s = e.path; + null !== e.collectionGroup ? (n.parent = Di(t2, s), n.structuredQuery.from = [{ + collectionId: e.collectionGroup, + allDescendants: true + }]) : (n.parent = Di(t2, s.popLast()), n.structuredQuery.from = [{ + collectionId: s.lastSegment() + }]); + const i = function(t3) { + if (0 === t3.length) + return; + return Yi(wn.create(t3, "and")); + }(e.filters); + i && (n.structuredQuery.where = i); + const r = function(t3) { + if (0 === t3.length) + return; + return t3.map((t4) => function(t5) { + return { + field: Hi(t5.field), + direction: zi(t5.dir) + }; + }(t4)); + }(e.orderBy); + r && (n.structuredQuery.orderBy = r); + const o = function(t3, e2) { + return t3.useProto3Json || $t(e2) ? e2 : { + value: e2 + }; + }(t2, e.limit); + var u; + return null !== o && (n.structuredQuery.limit = o), e.startAt && (n.structuredQuery.startAt = { + before: (u = e.startAt).inclusive, + values: u.position + }), e.endAt && (n.structuredQuery.endAt = function(t3) { + return { + before: !t3.inclusive, + values: t3.position + }; + }(e.endAt)), n; +} +function Ki(t2) { + let e = Ci(t2.parent); + const n = t2.structuredQuery, s = n.from ? n.from.length : 0; + let i = null; + if (s > 0) { + $(1 === s); + const t3 = n.from[0]; + t3.allDescendants ? i = t3.collectionId : e = e.child(t3.collectionId); + } + let r = []; + n.where && (r = function(t3) { + const e2 = Qi(t3); + if (e2 instanceof wn && gn(e2)) + return e2.getFilters(); + return [e2]; + }(n.where)); + let o = []; + n.orderBy && (o = n.orderBy.map((t3) => function(t4) { + return new hn( + Ji(t4.field), + function(t5) { + switch (t5) { + case "ASCENDING": + return "asc"; + case "DESCENDING": + return "desc"; + default: + return; + } + }(t4.direction) + ); + }(t3))); + let u = null; + n.limit && (u = function(t3) { + let e2; + return e2 = "object" == typeof t3 ? t3.value : t3, $t(e2) ? null : e2; + }(n.limit)); + let c = null; + n.startAt && (c = function(t3) { + const e2 = !!t3.before, n2 = t3.values || []; + return new un(n2, e2); + }(n.startAt)); + let a = null; + return n.endAt && (a = function(t3) { + const e2 = !t3.before, n2 = t3.values || []; + return new un(n2, e2); + }(n.endAt)), Ln(e, i, o, r, u, "F", c, a); +} +function Gi(t2, e) { + const n = function(t3, e2) { + switch (e2) { + case 0: + return null; + case 1: + return "existence-filter-mismatch"; + case 2: + return "limbo-document"; + default: + return O(); + } + }(0, e.purpose); + return null == n ? null : { + "goog-listen-tags": n + }; +} +function Qi(t2) { + return void 0 !== t2.unaryFilter ? function(t3) { + switch (t3.unaryFilter.op) { + case "IS_NAN": + const e = Ji(t3.unaryFilter.field); + return dn.create(e, "==", { + doubleValue: NaN + }); + case "IS_NULL": + const n = Ji(t3.unaryFilter.field); + return dn.create(n, "==", { + nullValue: "NULL_VALUE" + }); + case "IS_NOT_NAN": + const s = Ji(t3.unaryFilter.field); + return dn.create(s, "!=", { + doubleValue: NaN + }); + case "IS_NOT_NULL": + const i = Ji(t3.unaryFilter.field); + return dn.create(i, "!=", { + nullValue: "NULL_VALUE" + }); + default: + return O(); + } + }(t2) : void 0 !== t2.fieldFilter ? function(t3) { + return dn.create(Ji(t3.fieldFilter.field), function(t4) { + switch (t4) { + case "EQUAL": + return "=="; + case "NOT_EQUAL": + return "!="; + case "GREATER_THAN": + return ">"; + case "GREATER_THAN_OR_EQUAL": + return ">="; + case "LESS_THAN": + return "<"; + case "LESS_THAN_OR_EQUAL": + return "<="; + case "ARRAY_CONTAINS": + return "array-contains"; + case "IN": + return "in"; + case "NOT_IN": + return "not-in"; + case "ARRAY_CONTAINS_ANY": + return "array-contains-any"; + default: + return O(); + } + }(t3.fieldFilter.op), t3.fieldFilter.value); + }(t2) : void 0 !== t2.compositeFilter ? function(t3) { + return wn.create(t3.compositeFilter.filters.map((t4) => Qi(t4)), function(t4) { + switch (t4) { + case "AND": + return "and"; + case "OR": + return "or"; + default: + return O(); + } + }(t3.compositeFilter.op)); + }(t2) : O(); +} +function zi(t2) { + return yi[t2]; +} +function ji(t2) { + return pi[t2]; +} +function Wi(t2) { + return Ii[t2]; +} +function Hi(t2) { + return { + fieldPath: t2.canonicalString() + }; +} +function Ji(t2) { + return ut.fromServerFormat(t2.fieldPath); +} +function Yi(t2) { + return t2 instanceof dn ? function(t3) { + if ("==" === t3.op) { + if (He(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NAN" + } + }; + if (We(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NULL" + } + }; + } else if ("!=" === t3.op) { + if (He(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NOT_NAN" + } + }; + if (We(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NOT_NULL" + } + }; + } + return { + fieldFilter: { + field: Hi(t3.field), + op: ji(t3.op), + value: t3.value + } + }; + }(t2) : t2 instanceof wn ? function(t3) { + const e = t3.getFilters().map((t4) => Yi(t4)); + if (1 === e.length) + return e[0]; + return { + compositeFilter: { + op: Wi(t3.op), + filters: e + } + }; + }(t2) : O(); +} +function Zi(t2) { + const e = []; + return t2.fields.forEach((t3) => e.push(t3.canonicalString())), { + fieldPaths: e + }; +} +function Xi(t2) { + return t2.length >= 4 && "projects" === t2.get(0) && "databases" === t2.get(2); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class tr { + constructor(t2, e, n, s, i = st.min(), r = st.min(), o = be.EMPTY_BYTE_STRING) { + this.target = t2, this.targetId = e, this.purpose = n, this.sequenceNumber = s, this.snapshotVersion = i, this.lastLimboFreeSnapshotVersion = r, this.resumeToken = o; + } + withSequenceNumber(t2) { + return new tr(this.target, this.targetId, this.purpose, t2, this.snapshotVersion, this.lastLimboFreeSnapshotVersion, this.resumeToken); + } + withResumeToken(t2, e) { + return new tr(this.target, this.targetId, this.purpose, this.sequenceNumber, e, this.lastLimboFreeSnapshotVersion, t2); + } + withLastLimboFreeSnapshotVersion(t2) { + return new tr(this.target, this.targetId, this.purpose, this.sequenceNumber, this.snapshotVersion, t2, this.resumeToken); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class er { + constructor(t2) { + this.se = t2; + } +} +function hr(t2) { + const e = Ki({ + parent: t2.parent, + structuredQuery: t2.structuredQuery + }); + return "LAST" === t2.limitType ? Hn(e, e.limit, "L") : e; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Br { + constructor() { + this.He = new Lr(); + } + addToCollectionParentIndex(t2, e) { + return this.He.add(e), At.resolve(); + } + getCollectionParents(t2, e) { + return At.resolve(this.He.getEntries(e)); + } + addFieldIndex(t2, e) { + return At.resolve(); + } + deleteFieldIndex(t2, e) { + return At.resolve(); + } + getDocumentsMatchingTarget(t2, e) { + return At.resolve(null); + } + getIndexType(t2, e) { + return At.resolve(0); + } + getFieldIndexes(t2, e) { + return At.resolve([]); + } + getNextCollectionGroupToUpdate(t2) { + return At.resolve(null); + } + getMinOffset(t2, e) { + return At.resolve(yt.min()); + } + getMinOffsetFromCollectionGroup(t2, e) { + return At.resolve(yt.min()); + } + updateCollectionGroup(t2, e, n) { + return At.resolve(); + } + updateIndexEntries(t2, e) { + return At.resolve(); + } +} +class Lr { + constructor() { + this.index = {}; + } + add(t2) { + const e = t2.lastSegment(), n = t2.popLast(), s = this.index[e] || new Ie(rt.comparator), i = !s.has(n); + return this.index[e] = s.add(n), i; + } + has(t2) { + const e = t2.lastSegment(), n = t2.popLast(), s = this.index[e]; + return s && s.has(n); + } + getEntries(t2) { + return (this.index[t2] || new Ie(rt.comparator)).toArray(); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class so { + constructor(t2) { + this.Rn = t2; + } + next() { + return this.Rn += 2, this.Rn; + } + static vn() { + return new so(0); + } + static bn() { + return new so(-1); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class _o { + constructor() { + this.changes = new ss((t2) => t2.toString(), (t2, e) => t2.isEqual(e)), this.changesApplied = false; + } + addEntry(t2) { + this.assertNotApplied(), this.changes.set(t2.key, t2); + } + removeEntry(t2, e) { + this.assertNotApplied(), this.changes.set(t2, on.newInvalidDocument(t2).setReadTime(e)); + } + getEntry(t2, e) { + this.assertNotApplied(); + const n = this.changes.get(e); + return void 0 !== n ? At.resolve(n) : this.getFromCache(t2, e); + } + getEntries(t2, e) { + return this.getAllFromCache(t2, e); + } + apply(t2) { + return this.assertNotApplied(), this.changesApplied = true, this.applyChanges(t2); + } + assertNotApplied() { + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ro { + constructor(t2, e) { + this.overlayedDocument = t2, this.mutatedFields = e; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class vo { + constructor(t2, e, n, s) { + this.remoteDocumentCache = t2, this.mutationQueue = e, this.documentOverlayCache = n, this.indexManager = s; + } + getDocument(t2, e) { + let n = null; + return this.documentOverlayCache.getOverlay(t2, e).next((s) => (n = s, this.remoteDocumentCache.getEntry(t2, e))).next((t3) => (null !== n && Ls(n.mutation, t3, Ae.empty(), nt.now()), t3)); + } + getDocuments(t2, e) { + return this.remoteDocumentCache.getEntries(t2, e).next((e2) => this.getLocalViewOfDocuments(t2, e2, ws()).next(() => e2)); + } + getLocalViewOfDocuments(t2, e, n = ws()) { + const s = as(); + return this.populateOverlays(t2, s, e).next(() => this.computeViews(t2, e, s, n).next((t3) => { + let e2 = us(); + return t3.forEach((t4, n2) => { + e2 = e2.insert(t4, n2.overlayedDocument); + }), e2; + })); + } + getOverlayedDocuments(t2, e) { + const n = as(); + return this.populateOverlays(t2, n, e).next(() => this.computeViews(t2, e, n, ws())); + } + populateOverlays(t2, e, n) { + const s = []; + return n.forEach((t3) => { + e.has(t3) || s.push(t3); + }), this.documentOverlayCache.getOverlays(t2, s).next((t3) => { + t3.forEach((t4, n2) => { + e.set(t4, n2); + }); + }); + } + computeViews(t2, e, n, s) { + let i = rs(); + const r = ls(), o = ls(); + return e.forEach((t3, e2) => { + const o2 = n.get(e2.key); + s.has(e2.key) && (void 0 === o2 || o2.mutation instanceof Gs) ? i = i.insert(e2.key, e2) : void 0 !== o2 ? (r.set(e2.key, o2.mutation.getFieldMask()), Ls(o2.mutation, e2, o2.mutation.getFieldMask(), nt.now())) : r.set(e2.key, Ae.empty()); + }), this.recalculateAndSaveOverlays(t2, i).next((t3) => (t3.forEach((t4, e2) => r.set(t4, e2)), e.forEach((t4, e2) => { + var n2; + return o.set(t4, new Ro(e2, null !== (n2 = r.get(t4)) && void 0 !== n2 ? n2 : null)); + }), o)); + } + recalculateAndSaveOverlays(t2, e) { + const n = ls(); + let s = new ge((t3, e2) => t3 - e2), i = ws(); + return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t2, e).next((t3) => { + for (const i2 of t3) + i2.keys().forEach((t4) => { + const r = e.get(t4); + if (null === r) + return; + let o = n.get(t4) || Ae.empty(); + o = i2.applyToLocalView(r, o), n.set(t4, o); + const u = (s.get(i2.batchId) || ws()).add(t4); + s = s.insert(i2.batchId, u); + }); + }).next(() => { + const r = [], o = s.getReverseIterator(); + for (; o.hasNext(); ) { + const s2 = o.getNext(), u = s2.key, c = s2.value, a = hs(); + c.forEach((t3) => { + if (!i.has(t3)) { + const s3 = Fs(e.get(t3), n.get(t3)); + null !== s3 && a.set(t3, s3), i = i.add(t3); + } + }), r.push(this.documentOverlayCache.saveOverlays(t2, u, a)); + } + return At.waitFor(r); + }).next(() => n); + } + recalculateAndSaveOverlaysForDocumentKeys(t2, e) { + return this.remoteDocumentCache.getEntries(t2, e).next((e2) => this.recalculateAndSaveOverlays(t2, e2)); + } + getDocumentsMatchingQuery(t2, e, n) { + return function(t3) { + return ct.isDocumentKey(t3.path) && null === t3.collectionGroup && 0 === t3.filters.length; + }(e) ? this.getDocumentsMatchingDocumentQuery(t2, e.path) : Qn(e) ? this.getDocumentsMatchingCollectionGroupQuery(t2, e, n) : this.getDocumentsMatchingCollectionQuery(t2, e, n); + } + getNextDocuments(t2, e, n, s) { + return this.remoteDocumentCache.getAllFromCollectionGroup(t2, e, n, s).next((i) => { + const r = s - i.size > 0 ? this.documentOverlayCache.getOverlaysForCollectionGroup(t2, e, n.largestBatchId, s - i.size) : At.resolve(as()); + let o = -1, u = i; + return r.next((e2) => At.forEach(e2, (e3, n2) => (o < n2.largestBatchId && (o = n2.largestBatchId), i.get(e3) ? At.resolve() : this.remoteDocumentCache.getEntry(t2, e3).next((t3) => { + u = u.insert(e3, t3); + }))).next(() => this.populateOverlays(t2, e2, i)).next(() => this.computeViews(t2, u, e2, ws())).next((t3) => ({ + batchId: o, + changes: cs(t3) + }))); + }); + } + getDocumentsMatchingDocumentQuery(t2, e) { + return this.getDocument(t2, new ct(e)).next((t3) => { + let e2 = us(); + return t3.isFoundDocument() && (e2 = e2.insert(t3.key, t3)), e2; + }); + } + getDocumentsMatchingCollectionGroupQuery(t2, e, n) { + const s = e.collectionGroup; + let i = us(); + return this.indexManager.getCollectionParents(t2, s).next((r) => At.forEach(r, (r2) => { + const o = function(t3, e2) { + return new Bn( + e2, + null, + t3.explicitOrderBy.slice(), + t3.filters.slice(), + t3.limit, + t3.limitType, + t3.startAt, + t3.endAt + ); + }(e, r2.child(s)); + return this.getDocumentsMatchingCollectionQuery(t2, o, n).next((t3) => { + t3.forEach((t4, e2) => { + i = i.insert(t4, e2); + }); + }); + }).next(() => i)); + } + getDocumentsMatchingCollectionQuery(t2, e, n) { + let s; + return this.documentOverlayCache.getOverlaysForCollection(t2, e.path, n.largestBatchId).next((i) => (s = i, this.remoteDocumentCache.getDocumentsMatchingQuery(t2, e, n, s))).next((t3) => { + s.forEach((e2, n3) => { + const s2 = n3.getKey(); + null === t3.get(s2) && (t3 = t3.insert(s2, on.newInvalidDocument(s2))); + }); + let n2 = us(); + return t3.forEach((t4, i) => { + const r = s.get(t4); + void 0 !== r && Ls(r.mutation, i, Ae.empty(), nt.now()), Xn(e, i) && (n2 = n2.insert(t4, i)); + }), n2; + }); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class bo { + constructor(t2) { + this.serializer = t2, this.Zn = /* @__PURE__ */ new Map(), this.Xn = /* @__PURE__ */ new Map(); + } + getBundleMetadata(t2, e) { + return At.resolve(this.Zn.get(e)); + } + saveBundleMetadata(t2, e) { + var n; + return this.Zn.set(e.id, { + id: (n = e).id, + version: n.version, + createTime: vi(n.createTime) + }), At.resolve(); + } + getNamedQuery(t2, e) { + return At.resolve(this.Xn.get(e)); + } + saveNamedQuery(t2, e) { + return this.Xn.set(e.name, function(t3) { + return { + name: t3.name, + query: hr(t3.bundledQuery), + readTime: vi(t3.readTime) + }; + }(e)), At.resolve(); + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Po { + constructor() { + this.overlays = new ge(ct.comparator), this.ts = /* @__PURE__ */ new Map(); + } + getOverlay(t2, e) { + return At.resolve(this.overlays.get(e)); + } + getOverlays(t2, e) { + const n = as(); + return At.forEach(e, (e2) => this.getOverlay(t2, e2).next((t3) => { + null !== t3 && n.set(e2, t3); + })).next(() => n); + } + saveOverlays(t2, e, n) { + return n.forEach((n2, s) => { + this.re(t2, e, s); + }), At.resolve(); + } + removeOverlaysForBatchId(t2, e, n) { + const s = this.ts.get(n); + return void 0 !== s && (s.forEach((t3) => this.overlays = this.overlays.remove(t3)), this.ts.delete(n)), At.resolve(); + } + getOverlaysForCollection(t2, e, n) { + const s = as(), i = e.length + 1, r = new ct(e.child("")), o = this.overlays.getIteratorFrom(r); + for (; o.hasNext(); ) { + const t3 = o.getNext().value, r2 = t3.getKey(); + if (!e.isPrefixOf(r2.path)) + break; + r2.path.length === i && (t3.largestBatchId > n && s.set(t3.getKey(), t3)); + } + return At.resolve(s); + } + getOverlaysForCollectionGroup(t2, e, n, s) { + let i = new ge((t3, e2) => t3 - e2); + const r = this.overlays.getIterator(); + for (; r.hasNext(); ) { + const t3 = r.getNext().value; + if (t3.getKey().getCollectionGroup() === e && t3.largestBatchId > n) { + let e2 = i.get(t3.largestBatchId); + null === e2 && (e2 = as(), i = i.insert(t3.largestBatchId, e2)), e2.set(t3.getKey(), t3); + } + } + const o = as(), u = i.getIterator(); + for (; u.hasNext(); ) { + if (u.getNext().value.forEach((t3, e2) => o.set(t3, e2)), o.size() >= s) + break; + } + return At.resolve(o); + } + re(t2, e, n) { + const s = this.overlays.get(n.key); + if (null !== s) { + const t3 = this.ts.get(s.largestBatchId).delete(n.key); + this.ts.set(s.largestBatchId, t3); + } + this.overlays = this.overlays.insert(n.key, new Zs(e, n)); + let i = this.ts.get(e); + void 0 === i && (i = ws(), this.ts.set(e, i)), this.ts.set(e, i.add(n.key)); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Vo { + constructor() { + this.es = new Ie(So.ns), this.ss = new Ie(So.rs); + } + isEmpty() { + return this.es.isEmpty(); + } + addReference(t2, e) { + const n = new So(t2, e); + this.es = this.es.add(n), this.ss = this.ss.add(n); + } + os(t2, e) { + t2.forEach((t3) => this.addReference(t3, e)); + } + removeReference(t2, e) { + this.us(new So(t2, e)); + } + cs(t2, e) { + t2.forEach((t3) => this.removeReference(t3, e)); + } + hs(t2) { + const e = new ct(new rt([])), n = new So(e, t2), s = new So(e, t2 + 1), i = []; + return this.ss.forEachInRange([n, s], (t3) => { + this.us(t3), i.push(t3.key); + }), i; + } + ls() { + this.es.forEach((t2) => this.us(t2)); + } + us(t2) { + this.es = this.es.delete(t2), this.ss = this.ss.delete(t2); + } + fs(t2) { + const e = new ct(new rt([])), n = new So(e, t2), s = new So(e, t2 + 1); + let i = ws(); + return this.ss.forEachInRange([n, s], (t3) => { + i = i.add(t3.key); + }), i; + } + containsKey(t2) { + const e = new So(t2, 0), n = this.es.firstAfterOrEqual(e); + return null !== n && t2.isEqual(n.key); + } +} +class So { + constructor(t2, e) { + this.key = t2, this.ds = e; + } + static ns(t2, e) { + return ct.comparator(t2.key, e.key) || X(t2.ds, e.ds); + } + static rs(t2, e) { + return X(t2.ds, e.ds) || ct.comparator(t2.key, e.key); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Do { + constructor(t2, e) { + this.indexManager = t2, this.referenceDelegate = e, this.mutationQueue = [], this.ws = 1, this._s = new Ie(So.ns); + } + checkEmpty(t2) { + return At.resolve(0 === this.mutationQueue.length); + } + addMutationBatch(t2, e, n, s) { + const i = this.ws; + this.ws++, this.mutationQueue.length > 0 && this.mutationQueue[this.mutationQueue.length - 1]; + const r = new Js(i, e, n, s); + this.mutationQueue.push(r); + for (const e2 of s) + this._s = this._s.add(new So(e2.key, i)), this.indexManager.addToCollectionParentIndex(t2, e2.key.path.popLast()); + return At.resolve(r); + } + lookupMutationBatch(t2, e) { + return At.resolve(this.gs(e)); + } + getNextMutationBatchAfterBatchId(t2, e) { + const n = e + 1, s = this.ys(n), i = s < 0 ? 0 : s; + return At.resolve(this.mutationQueue.length > i ? this.mutationQueue[i] : null); + } + getHighestUnacknowledgedBatchId() { + return At.resolve(0 === this.mutationQueue.length ? -1 : this.ws - 1); + } + getAllMutationBatches(t2) { + return At.resolve(this.mutationQueue.slice()); + } + getAllMutationBatchesAffectingDocumentKey(t2, e) { + const n = new So(e, 0), s = new So(e, Number.POSITIVE_INFINITY), i = []; + return this._s.forEachInRange([n, s], (t3) => { + const e2 = this.gs(t3.ds); + i.push(e2); + }), At.resolve(i); + } + getAllMutationBatchesAffectingDocumentKeys(t2, e) { + let n = new Ie(X); + return e.forEach((t3) => { + const e2 = new So(t3, 0), s = new So(t3, Number.POSITIVE_INFINITY); + this._s.forEachInRange([e2, s], (t4) => { + n = n.add(t4.ds); + }); + }), At.resolve(this.ps(n)); + } + getAllMutationBatchesAffectingQuery(t2, e) { + const n = e.path, s = n.length + 1; + let i = n; + ct.isDocumentKey(i) || (i = i.child("")); + const r = new So(new ct(i), 0); + let o = new Ie(X); + return this._s.forEachWhile((t3) => { + const e2 = t3.key.path; + return !!n.isPrefixOf(e2) && (e2.length === s && (o = o.add(t3.ds)), true); + }, r), At.resolve(this.ps(o)); + } + ps(t2) { + const e = []; + return t2.forEach((t3) => { + const n = this.gs(t3); + null !== n && e.push(n); + }), e; + } + removeMutationBatch(t2, e) { + $(0 === this.Is(e.batchId, "removed")), this.mutationQueue.shift(); + let n = this._s; + return At.forEach(e.mutations, (s) => { + const i = new So(s.key, e.batchId); + return n = n.delete(i), this.referenceDelegate.markPotentiallyOrphaned(t2, s.key); + }).next(() => { + this._s = n; + }); + } + En(t2) { + } + containsKey(t2, e) { + const n = new So(e, 0), s = this._s.firstAfterOrEqual(n); + return At.resolve(e.isEqual(s && s.key)); + } + performConsistencyCheck(t2) { + return this.mutationQueue.length, At.resolve(); + } + Is(t2, e) { + return this.ys(t2); + } + ys(t2) { + if (0 === this.mutationQueue.length) + return 0; + return t2 - this.mutationQueue[0].batchId; + } + gs(t2) { + const e = this.ys(t2); + if (e < 0 || e >= this.mutationQueue.length) + return null; + return this.mutationQueue[e]; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Co { + constructor(t2) { + this.Ts = t2, this.docs = new ge(ct.comparator), this.size = 0; + } + setIndexManager(t2) { + this.indexManager = t2; + } + addEntry(t2, e) { + const n = e.key, s = this.docs.get(n), i = s ? s.size : 0, r = this.Ts(e); + return this.docs = this.docs.insert(n, { + document: e.mutableCopy(), + size: r + }), this.size += r - i, this.indexManager.addToCollectionParentIndex(t2, n.path.popLast()); + } + removeEntry(t2) { + const e = this.docs.get(t2); + e && (this.docs = this.docs.remove(t2), this.size -= e.size); + } + getEntry(t2, e) { + const n = this.docs.get(e); + return At.resolve(n ? n.document.mutableCopy() : on.newInvalidDocument(e)); + } + getEntries(t2, e) { + let n = rs(); + return e.forEach((t3) => { + const e2 = this.docs.get(t3); + n = n.insert(t3, e2 ? e2.document.mutableCopy() : on.newInvalidDocument(t3)); + }), At.resolve(n); + } + getDocumentsMatchingQuery(t2, e, n, s) { + let i = rs(); + const r = e.path, o = new ct(r.child("")), u = this.docs.getIteratorFrom(o); + for (; u.hasNext(); ) { + const { key: t3, value: { document: o2 } } = u.getNext(); + if (!r.isPrefixOf(t3.path)) + break; + t3.path.length > r.length + 1 || (pt(gt(o2), n) <= 0 || (s.has(o2.key) || Xn(e, o2)) && (i = i.insert(o2.key, o2.mutableCopy()))); + } + return At.resolve(i); + } + getAllFromCollectionGroup(t2, e, n, s) { + O(); + } + Es(t2, e) { + return At.forEach(this.docs, (t3) => e(t3)); + } + newChangeBuffer(t2) { + return new xo(this); + } + getSize(t2) { + return At.resolve(this.size); + } +} +class xo extends _o { + constructor(t2) { + super(), this.Jn = t2; + } + applyChanges(t2) { + const e = []; + return this.changes.forEach((n, s) => { + s.isValidDocument() ? e.push(this.Jn.addEntry(t2, s)) : this.Jn.removeEntry(n); + }), At.waitFor(e); + } + getFromCache(t2, e) { + return this.Jn.getEntry(t2, e); + } + getAllFromCache(t2, e) { + return this.Jn.getEntries(t2, e); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class No { + constructor(t2) { + this.persistence = t2, this.As = new ss((t3) => Nn(t3), kn), this.lastRemoteSnapshotVersion = st.min(), this.highestTargetId = 0, this.Rs = 0, this.vs = new Vo(), this.targetCount = 0, this.bs = so.vn(); + } + forEachTarget(t2, e) { + return this.As.forEach((t3, n) => e(n)), At.resolve(); + } + getLastRemoteSnapshotVersion(t2) { + return At.resolve(this.lastRemoteSnapshotVersion); + } + getHighestSequenceNumber(t2) { + return At.resolve(this.Rs); + } + allocateTargetId(t2) { + return this.highestTargetId = this.bs.next(), At.resolve(this.highestTargetId); + } + setTargetsMetadata(t2, e, n) { + return n && (this.lastRemoteSnapshotVersion = n), e > this.Rs && (this.Rs = e), At.resolve(); + } + Sn(t2) { + this.As.set(t2.target, t2); + const e = t2.targetId; + e > this.highestTargetId && (this.bs = new so(e), this.highestTargetId = e), t2.sequenceNumber > this.Rs && (this.Rs = t2.sequenceNumber); + } + addTargetData(t2, e) { + return this.Sn(e), this.targetCount += 1, At.resolve(); + } + updateTargetData(t2, e) { + return this.Sn(e), At.resolve(); + } + removeTargetData(t2, e) { + return this.As.delete(e.target), this.vs.hs(e.targetId), this.targetCount -= 1, At.resolve(); + } + removeTargets(t2, e, n) { + let s = 0; + const i = []; + return this.As.forEach((r, o) => { + o.sequenceNumber <= e && null === n.get(o.targetId) && (this.As.delete(r), i.push(this.removeMatchingKeysForTargetId(t2, o.targetId)), s++); + }), At.waitFor(i).next(() => s); + } + getTargetCount(t2) { + return At.resolve(this.targetCount); + } + getTargetData(t2, e) { + const n = this.As.get(e) || null; + return At.resolve(n); + } + addMatchingKeys(t2, e, n) { + return this.vs.os(e, n), At.resolve(); + } + removeMatchingKeys(t2, e, n) { + this.vs.cs(e, n); + const s = this.persistence.referenceDelegate, i = []; + return s && e.forEach((e2) => { + i.push(s.markPotentiallyOrphaned(t2, e2)); + }), At.waitFor(i); + } + removeMatchingKeysForTargetId(t2, e) { + return this.vs.hs(e), At.resolve(); + } + getMatchingKeysForTargetId(t2, e) { + const n = this.vs.fs(e); + return At.resolve(n); + } + containsKey(t2, e) { + return At.resolve(this.vs.containsKey(e)); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ko { + constructor(t2, e) { + this.Ps = {}, this.overlays = {}, this.Vs = new Ot(0), this.Ss = false, this.Ss = true, this.referenceDelegate = t2(this), this.Ds = new No(this); + this.indexManager = new Br(), this.remoteDocumentCache = function(t3) { + return new Co(t3); + }((t3) => this.referenceDelegate.Cs(t3)), this.serializer = new er(e), this.xs = new bo(this.serializer); + } + start() { + return Promise.resolve(); + } + shutdown() { + return this.Ss = false, Promise.resolve(); + } + get started() { + return this.Ss; + } + setDatabaseDeletedListener() { + } + setNetworkEnabled() { + } + getIndexManager(t2) { + return this.indexManager; + } + getDocumentOverlayCache(t2) { + let e = this.overlays[t2.toKey()]; + return e || (e = new Po(), this.overlays[t2.toKey()] = e), e; + } + getMutationQueue(t2, e) { + let n = this.Ps[t2.toKey()]; + return n || (n = new Do(e, this.referenceDelegate), this.Ps[t2.toKey()] = n), n; + } + getTargetCache() { + return this.Ds; + } + getRemoteDocumentCache() { + return this.remoteDocumentCache; + } + getBundleCache() { + return this.xs; + } + runTransaction(t2, e, n) { + C("MemoryPersistence", "Starting transaction:", t2); + const s = new Oo(this.Vs.next()); + return this.referenceDelegate.Ns(), n(s).next((t3) => this.referenceDelegate.ks(s).next(() => t3)).toPromise().then((t3) => (s.raiseOnCommittedEvent(), t3)); + } + Os(t2, e) { + return At.or(Object.values(this.Ps).map((n) => () => n.containsKey(t2, e))); + } +} +class Oo extends Tt { + constructor(t2) { + super(), this.currentSequenceNumber = t2; + } +} +class $o { + constructor(t2) { + this.persistence = t2, this.$s = new Vo(), this.Ms = null; + } + static Fs(t2) { + return new $o(t2); + } + get Bs() { + if (this.Ms) + return this.Ms; + throw O(); + } + addReference(t2, e, n) { + return this.$s.addReference(n, e), this.Bs.delete(n.toString()), At.resolve(); + } + removeReference(t2, e, n) { + return this.$s.removeReference(n, e), this.Bs.add(n.toString()), At.resolve(); + } + markPotentiallyOrphaned(t2, e) { + return this.Bs.add(e.toString()), At.resolve(); + } + removeTarget(t2, e) { + this.$s.hs(e.targetId).forEach((t3) => this.Bs.add(t3.toString())); + const n = this.persistence.getTargetCache(); + return n.getMatchingKeysForTargetId(t2, e.targetId).next((t3) => { + t3.forEach((t4) => this.Bs.add(t4.toString())); + }).next(() => n.removeTargetData(t2, e)); + } + Ns() { + this.Ms = /* @__PURE__ */ new Set(); + } + ks(t2) { + const e = this.persistence.getRemoteDocumentCache().newChangeBuffer(); + return At.forEach(this.Bs, (n) => { + const s = ct.fromPath(n); + return this.Ls(t2, s).next((t3) => { + t3 || e.removeEntry(s, st.min()); + }); + }).next(() => (this.Ms = null, e.apply(t2))); + } + updateLimboDocument(t2, e) { + return this.Ls(t2, e).next((t3) => { + t3 ? this.Bs.delete(e.toString()) : this.Bs.add(e.toString()); + }); + } + Cs(t2) { + return 0; + } + Ls(t2, e) { + return At.or([() => At.resolve(this.$s.containsKey(e)), () => this.persistence.getTargetCache().containsKey(t2, e), () => this.persistence.Os(t2, e)]); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Go { + constructor(t2, e, n, s) { + this.targetId = t2, this.fromCache = e, this.Vi = n, this.Si = s; + } + static Di(t2, e) { + let n = ws(), s = ws(); + for (const t3 of e.docChanges) + switch (t3.type) { + case 0: + n = n.add(t3.doc.key); + break; + case 1: + s = s.add(t3.doc.key); + } + return new Go(t2, e.fromCache, n, s); + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Qo { + constructor() { + this.Ci = false; + } + initialize(t2, e) { + this.xi = t2, this.indexManager = e, this.Ci = true; + } + getDocumentsMatchingQuery(t2, e, n, s) { + return this.Ni(t2, e).next((i) => i || this.ki(t2, e, s, n)).next((n2) => n2 || this.Oi(t2, e)); + } + Ni(t2, e) { + if (Un(e)) + return At.resolve(null); + let n = jn(e); + return this.indexManager.getIndexType(t2, n).next((s) => 0 === s ? null : (null !== e.limit && 1 === s && (e = Hn(e, null, "F"), n = jn(e)), this.indexManager.getDocumentsMatchingTarget(t2, n).next((s2) => { + const i = ws(...s2); + return this.xi.getDocuments(t2, i).next((s3) => this.indexManager.getMinOffset(t2, n).next((n2) => { + const r = this.$i(e, s3); + return this.Mi(e, r, i, n2.readTime) ? this.Ni(t2, Hn(e, null, "F")) : this.Fi(t2, r, e, n2); + })); + }))); + } + ki(t2, e, n, s) { + return Un(e) || s.isEqual(st.min()) ? this.Oi(t2, e) : this.xi.getDocuments(t2, n).next((i) => { + const r = this.$i(e, i); + return this.Mi(e, r, n, s) ? this.Oi(t2, e) : (S() <= LogLevel.DEBUG && C("QueryEngine", "Re-using previous result from %s to execute query: %s", s.toString(), Zn(e)), this.Fi(t2, r, e, mt(s, -1))); + }); + } + $i(t2, e) { + let n = new Ie(es(t2)); + return e.forEach((e2, s) => { + Xn(t2, s) && (n = n.add(s)); + }), n; + } + Mi(t2, e, n, s) { + if (null === t2.limit) + return false; + if (n.size !== e.size) + return true; + const i = "F" === t2.limitType ? e.last() : e.first(); + return !!i && (i.hasPendingWrites || i.version.compareTo(s) > 0); + } + Oi(t2, e) { + return S() <= LogLevel.DEBUG && C("QueryEngine", "Using full collection scan to execute query:", Zn(e)), this.xi.getDocumentsMatchingQuery(t2, e, yt.min()); + } + Fi(t2, e, n, s) { + return this.xi.getDocumentsMatchingQuery(t2, n, s).next((t3) => (e.forEach((e2) => { + t3 = t3.insert(e2.key, e2); + }), t3)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class zo { + constructor(t2, e, n, s) { + this.persistence = t2, this.Bi = e, this.serializer = s, this.Li = new ge(X), this.qi = new ss((t3) => Nn(t3), kn), this.Ui = /* @__PURE__ */ new Map(), this.Ki = t2.getRemoteDocumentCache(), this.Ds = t2.getTargetCache(), this.xs = t2.getBundleCache(), this.Gi(n); + } + Gi(t2) { + this.documentOverlayCache = this.persistence.getDocumentOverlayCache(t2), this.indexManager = this.persistence.getIndexManager(t2), this.mutationQueue = this.persistence.getMutationQueue(t2, this.indexManager), this.localDocuments = new vo(this.Ki, this.mutationQueue, this.documentOverlayCache, this.indexManager), this.Ki.setIndexManager(this.indexManager), this.Bi.initialize(this.localDocuments, this.indexManager); + } + collectGarbage(t2) { + return this.persistence.runTransaction("Collect garbage", "readwrite-primary", (e) => t2.collect(e, this.Li)); + } +} +function jo(t2, e, n, s) { + return new zo(t2, e, n, s); +} +async function Wo(t2, e) { + const n = F(t2); + return await n.persistence.runTransaction("Handle user change", "readonly", (t3) => { + let s; + return n.mutationQueue.getAllMutationBatches(t3).next((i) => (s = i, n.Gi(e), n.mutationQueue.getAllMutationBatches(t3))).next((e2) => { + const i = [], r = []; + let o = ws(); + for (const t4 of s) { + i.push(t4.batchId); + for (const e3 of t4.mutations) + o = o.add(e3.key); + } + for (const t4 of e2) { + r.push(t4.batchId); + for (const e3 of t4.mutations) + o = o.add(e3.key); + } + return n.localDocuments.getDocuments(t3, o).next((t4) => ({ + Qi: t4, + removedBatchIds: i, + addedBatchIds: r + })); + }); + }); +} +function Ho(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Acknowledge batch", "readwrite-primary", (t3) => { + const s = e.batch.keys(), i = n.Ki.newChangeBuffer({ + trackRemovals: true + }); + return function(t4, e2, n2, s2) { + const i2 = n2.batch, r = i2.keys(); + let o = At.resolve(); + return r.forEach((t5) => { + o = o.next(() => s2.getEntry(e2, t5)).next((e3) => { + const r2 = n2.docVersions.get(t5); + $(null !== r2), e3.version.compareTo(r2) < 0 && (i2.applyToRemoteDocument(e3, n2), e3.isValidDocument() && (e3.setReadTime(n2.commitVersion), s2.addEntry(e3))); + }); + }), o.next(() => t4.mutationQueue.removeMutationBatch(e2, i2)); + }(n, t3, e, i).next(() => i.apply(t3)).next(() => n.mutationQueue.performConsistencyCheck(t3)).next(() => n.documentOverlayCache.removeOverlaysForBatchId(t3, s, e.batch.batchId)).next(() => n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t3, function(t4) { + let e2 = ws(); + for (let n2 = 0; n2 < t4.mutationResults.length; ++n2) { + t4.mutationResults[n2].transformResults.length > 0 && (e2 = e2.add(t4.batch.mutations[n2].key)); + } + return e2; + }(e))).next(() => n.localDocuments.getDocuments(t3, s)); + }); +} +function Jo(t2) { + const e = F(t2); + return e.persistence.runTransaction("Get last remote snapshot version", "readonly", (t3) => e.Ds.getLastRemoteSnapshotVersion(t3)); +} +function Yo(t2, e) { + const n = F(t2), s = e.snapshotVersion; + let i = n.Li; + return n.persistence.runTransaction("Apply remote event", "readwrite-primary", (t3) => { + const r = n.Ki.newChangeBuffer({ + trackRemovals: true + }); + i = n.Li; + const o = []; + e.targetChanges.forEach((r2, u2) => { + const c2 = i.get(u2); + if (!c2) + return; + o.push(n.Ds.removeMatchingKeys(t3, r2.removedDocuments, u2).next(() => n.Ds.addMatchingKeys(t3, r2.addedDocuments, u2))); + let a = c2.withSequenceNumber(t3.currentSequenceNumber); + e.targetMismatches.has(u2) ? a = a.withResumeToken(be.EMPTY_BYTE_STRING, st.min()).withLastLimboFreeSnapshotVersion(st.min()) : r2.resumeToken.approximateByteSize() > 0 && (a = a.withResumeToken(r2.resumeToken, s)), i = i.insert(u2, a), function(t4, e2, n2) { + if (0 === t4.resumeToken.approximateByteSize()) + return true; + if (e2.snapshotVersion.toMicroseconds() - t4.snapshotVersion.toMicroseconds() >= 3e8) + return true; + return n2.addedDocuments.size + n2.modifiedDocuments.size + n2.removedDocuments.size > 0; + }(c2, a, r2) && o.push(n.Ds.updateTargetData(t3, a)); + }); + let u = rs(), c = ws(); + if (e.documentUpdates.forEach((s2) => { + e.resolvedLimboDocuments.has(s2) && o.push(n.persistence.referenceDelegate.updateLimboDocument(t3, s2)); + }), o.push(Zo(t3, r, e.documentUpdates).next((t4) => { + u = t4.zi, c = t4.ji; + })), !s.isEqual(st.min())) { + const e2 = n.Ds.getLastRemoteSnapshotVersion(t3).next((e3) => n.Ds.setTargetsMetadata(t3, t3.currentSequenceNumber, s)); + o.push(e2); + } + return At.waitFor(o).next(() => r.apply(t3)).next(() => n.localDocuments.getLocalViewOfDocuments(t3, u, c)).next(() => u); + }).then((t3) => (n.Li = i, t3)); +} +function Zo(t2, e, n) { + let s = ws(), i = ws(); + return n.forEach((t3) => s = s.add(t3)), e.getEntries(t2, s).next((t3) => { + let s2 = rs(); + return n.forEach((n2, r) => { + const o = t3.get(n2); + r.isFoundDocument() !== o.isFoundDocument() && (i = i.add(n2)), r.isNoDocument() && r.version.isEqual(st.min()) ? (e.removeEntry(n2, r.readTime), s2 = s2.insert(n2, r)) : !o.isValidDocument() || r.version.compareTo(o.version) > 0 || 0 === r.version.compareTo(o.version) && o.hasPendingWrites ? (e.addEntry(r), s2 = s2.insert(n2, r)) : C("LocalStore", "Ignoring outdated watch update for ", n2, ". Current version:", o.version, " Watch version:", r.version); + }), { + zi: s2, + ji: i + }; + }); +} +function Xo(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Get next mutation batch", "readonly", (t3) => (void 0 === e && (e = -1), n.mutationQueue.getNextMutationBatchAfterBatchId(t3, e))); +} +function tu(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Allocate target", "readwrite", (t3) => { + let s; + return n.Ds.getTargetData(t3, e).next((i) => i ? (s = i, At.resolve(s)) : n.Ds.allocateTargetId(t3).next((i2) => (s = new tr(e, i2, 0, t3.currentSequenceNumber), n.Ds.addTargetData(t3, s).next(() => s)))); + }).then((t3) => { + const s = n.Li.get(t3.targetId); + return (null === s || t3.snapshotVersion.compareTo(s.snapshotVersion) > 0) && (n.Li = n.Li.insert(t3.targetId, t3), n.qi.set(e, t3.targetId)), t3; + }); +} +async function eu(t2, e, n) { + const s = F(t2), i = s.Li.get(e), r = n ? "readwrite" : "readwrite-primary"; + try { + n || await s.persistence.runTransaction("Release target", r, (t3) => s.persistence.referenceDelegate.removeTarget(t3, i)); + } catch (t3) { + if (!Vt(t3)) + throw t3; + C("LocalStore", `Failed to update sequence numbers for target ${e}: ${t3}`); + } + s.Li = s.Li.remove(e), s.qi.delete(i.target); +} +function nu(t2, e, n) { + const s = F(t2); + let i = st.min(), r = ws(); + return s.persistence.runTransaction("Execute query", "readonly", (t3) => function(t4, e2, n2) { + const s2 = F(t4), i2 = s2.qi.get(n2); + return void 0 !== i2 ? At.resolve(s2.Li.get(i2)) : s2.Ds.getTargetData(e2, n2); + }(s, t3, jn(e)).next((e2) => { + if (e2) + return i = e2.lastLimboFreeSnapshotVersion, s.Ds.getMatchingKeysForTargetId(t3, e2.targetId).next((t4) => { + r = t4; + }); + }).next(() => s.Bi.getDocumentsMatchingQuery(t3, e, n ? i : st.min(), n ? r : ws())).next((t4) => (ru(s, ts(e), t4), { + documents: t4, + Wi: r + }))); +} +function ru(t2, e, n) { + let s = t2.Ui.get(e) || st.min(); + n.forEach((t3, e2) => { + e2.readTime.compareTo(s) > 0 && (s = e2.readTime); + }), t2.Ui.set(e, s); +} +class _u { + constructor() { + this.activeTargetIds = ms(); + } + tr(t2) { + this.activeTargetIds = this.activeTargetIds.add(t2); + } + er(t2) { + this.activeTargetIds = this.activeTargetIds.delete(t2); + } + Xi() { + const t2 = { + activeTargetIds: this.activeTargetIds.toArray(), + updateTimeMs: Date.now() + }; + return JSON.stringify(t2); + } +} +class gu { + constructor() { + this.Br = new _u(), this.Lr = {}, this.onlineStateHandler = null, this.sequenceNumberHandler = null; + } + addPendingMutation(t2) { + } + updateMutationState(t2, e, n) { + } + addLocalQueryTarget(t2) { + return this.Br.tr(t2), this.Lr[t2] || "not-current"; + } + updateQueryState(t2, e, n) { + this.Lr[t2] = e; + } + removeLocalQueryTarget(t2) { + this.Br.er(t2); + } + isLocalQueryTarget(t2) { + return this.Br.activeTargetIds.has(t2); + } + clearQueryState(t2) { + delete this.Lr[t2]; + } + getAllActiveQueryTargets() { + return this.Br.activeTargetIds; + } + isActiveQueryTarget(t2) { + return this.Br.activeTargetIds.has(t2); + } + start() { + return this.Br = new _u(), Promise.resolve(); + } + handleUserChange(t2, e, n) { + } + setOnlineState(t2) { + } + shutdown() { + } + writeSequenceNumber(t2) { + } + notifyBundleLoaded(t2) { + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class yu { + qr(t2) { + } + shutdown() { + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class pu { + constructor() { + this.Ur = () => this.Kr(), this.Gr = () => this.Qr(), this.zr = [], this.jr(); + } + qr(t2) { + this.zr.push(t2); + } + shutdown() { + window.removeEventListener("online", this.Ur), window.removeEventListener("offline", this.Gr); + } + jr() { + window.addEventListener("online", this.Ur), window.addEventListener("offline", this.Gr); + } + Kr() { + C("ConnectivityMonitor", "Network connectivity changed: AVAILABLE"); + for (const t2 of this.zr) + t2(0); + } + Qr() { + C("ConnectivityMonitor", "Network connectivity changed: UNAVAILABLE"); + for (const t2 of this.zr) + t2(1); + } + static D() { + return "undefined" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener; + } +} +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +let Iu = null; +function Tu() { + return null === Iu ? Iu = 268435456 + Math.round(2147483648 * Math.random()) : Iu++, "0x" + Iu.toString(16); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Eu = { + BatchGetDocuments: "batchGet", + Commit: "commit", + RunQuery: "runQuery", + RunAggregationQuery: "runAggregationQuery" +}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Au { + constructor(t2) { + this.Wr = t2.Wr, this.Hr = t2.Hr; + } + Jr(t2) { + this.Yr = t2; + } + Zr(t2) { + this.Xr = t2; + } + onMessage(t2) { + this.eo = t2; + } + close() { + this.Hr(); + } + send(t2) { + this.Wr(t2); + } + no() { + this.Yr(); + } + so(t2) { + this.Xr(t2); + } + io(t2) { + this.eo(t2); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Ru = "WebChannelConnection"; +class vu extends class { + constructor(t2) { + this.databaseInfo = t2, this.databaseId = t2.databaseId; + const e = t2.ssl ? "https" : "http"; + this.ro = e + "://" + t2.host, this.oo = "projects/" + this.databaseId.projectId + "/databases/" + this.databaseId.database + "/documents"; + } + get uo() { + return false; + } + co(t2, e, n, s, i) { + const r = Tu(), o = this.ao(t2, e); + C("RestConnection", `Sending RPC '${t2}' ${r}:`, o, n); + const u = {}; + return this.ho(u, s, i), this.lo(t2, o, u, n).then((e2) => (C("RestConnection", `Received RPC '${t2}' ${r}: `, e2), e2), (e2) => { + throw N("RestConnection", `RPC '${t2}' ${r} failed with error: `, e2, "url: ", o, "request:", n), e2; + }); + } + fo(t2, e, n, s, i, r) { + return this.co(t2, e, n, s, i); + } + ho(t2, e, n) { + t2["X-Goog-Api-Client"] = "gl-js/ fire/" + P, t2["Content-Type"] = "text/plain", this.databaseInfo.appId && (t2["X-Firebase-GMPID"] = this.databaseInfo.appId), e && e.headers.forEach((e2, n2) => t2[n2] = e2), n && n.headers.forEach((e2, n2) => t2[n2] = e2); + } + ao(t2, e) { + const n = Eu[t2]; + return `${this.ro}/v1/${e}:${n}`; + } +} { + constructor(t2) { + super(t2), this.forceLongPolling = t2.forceLongPolling, this.autoDetectLongPolling = t2.autoDetectLongPolling, this.useFetchStreams = t2.useFetchStreams; + } + lo(t2, e, n, s) { + const i = Tu(); + return new Promise((r, o) => { + const u = new XhrIo(); + u.setWithCredentials(true), u.listenOnce(EventType.COMPLETE, () => { + try { + switch (u.getLastErrorCode()) { + case ErrorCode.NO_ERROR: + const e2 = u.getResponseJson(); + C(Ru, `XHR for RPC '${t2}' ${i} received:`, JSON.stringify(e2)), r(e2); + break; + case ErrorCode.TIMEOUT: + C(Ru, `RPC '${t2}' ${i} timed out`), o(new L(B.DEADLINE_EXCEEDED, "Request time out")); + break; + case ErrorCode.HTTP_ERROR: + const n2 = u.getStatus(); + if (C(Ru, `RPC '${t2}' ${i} failed with status:`, n2, "response text:", u.getResponseText()), n2 > 0) { + let t3 = u.getResponseJson(); + Array.isArray(t3) && (t3 = t3[0]); + const e3 = null == t3 ? void 0 : t3.error; + if (e3 && e3.status && e3.message) { + const t4 = function(t5) { + const e4 = t5.toLowerCase().replace(/_/g, "-"); + return Object.values(B).indexOf(e4) >= 0 ? e4 : B.UNKNOWN; + }(e3.status); + o(new L(t4, e3.message)); + } else + o(new L(B.UNKNOWN, "Server responded with status " + u.getStatus())); + } else + o(new L(B.UNAVAILABLE, "Connection failed.")); + break; + default: + O(); + } + } finally { + C(Ru, `RPC '${t2}' ${i} completed.`); + } + }); + const c = JSON.stringify(s); + C(Ru, `RPC '${t2}' ${i} sending request:`, s), u.send(e, "POST", c, n, 15); + }); + } + wo(t2, e, n) { + const s = Tu(), i = [this.ro, "/", "google.firestore.v1.Firestore", "/", t2, "/channel"], r = createWebChannelTransport(), o = getStatEventTarget(), u = { + httpSessionIdParam: "gsessionid", + initMessageHeaders: {}, + messageUrlParams: { + database: `projects/${this.databaseId.projectId}/databases/${this.databaseId.database}` + }, + sendRawJson: true, + supportsCrossDomainXhr: true, + internalChannelParams: { + forwardChannelRequestTimeoutMs: 6e5 + }, + forceLongPolling: this.forceLongPolling, + detectBufferingProxy: this.autoDetectLongPolling + }; + this.useFetchStreams && (u.xmlHttpFactory = new FetchXmlHttpFactory({})), this.ho(u.initMessageHeaders, e, n), u.encodeInitMessageHeaders = true; + const c = i.join(""); + C(Ru, `Creating RPC '${t2}' stream ${s}: ${c}`, u); + const a = r.createWebChannel(c, u); + let h = false, l2 = false; + const f = new Au({ + Wr: (e2) => { + l2 ? C(Ru, `Not sending because RPC '${t2}' stream ${s} is closed:`, e2) : (h || (C(Ru, `Opening RPC '${t2}' stream ${s} transport.`), a.open(), h = true), C(Ru, `RPC '${t2}' stream ${s} sending:`, e2), a.send(e2)); + }, + Hr: () => a.close() + }), d = (t3, e2, n2) => { + t3.listen(e2, (t4) => { + try { + n2(t4); + } catch (t5) { + setTimeout(() => { + throw t5; + }, 0); + } + }); + }; + return d(a, WebChannel.EventType.OPEN, () => { + l2 || C(Ru, `RPC '${t2}' stream ${s} transport opened.`); + }), d(a, WebChannel.EventType.CLOSE, () => { + l2 || (l2 = true, C(Ru, `RPC '${t2}' stream ${s} transport closed`), f.so()); + }), d(a, WebChannel.EventType.ERROR, (e2) => { + l2 || (l2 = true, N(Ru, `RPC '${t2}' stream ${s} transport errored:`, e2), f.so(new L(B.UNAVAILABLE, "The operation could not be completed"))); + }), d(a, WebChannel.EventType.MESSAGE, (e2) => { + var n2; + if (!l2) { + const i2 = e2.data[0]; + $(!!i2); + const r2 = i2, o2 = r2.error || (null === (n2 = r2[0]) || void 0 === n2 ? void 0 : n2.error); + if (o2) { + C(Ru, `RPC '${t2}' stream ${s} received error:`, o2); + const e3 = o2.status; + let n3 = function(t3) { + const e4 = si[t3]; + if (void 0 !== e4) + return oi(e4); + }(e3), i3 = o2.message; + void 0 === n3 && (n3 = B.INTERNAL, i3 = "Unknown error status: " + e3 + " with message " + o2.message), l2 = true, f.so(new L(n3, i3)), a.close(); + } else + C(Ru, `RPC '${t2}' stream ${s} received:`, i2), f.io(i2); + } + }), d(o, Event.STAT_EVENT, (e2) => { + e2.stat === Stat.PROXY ? C(Ru, `RPC '${t2}' stream ${s} detected buffering proxy`) : e2.stat === Stat.NOPROXY && C(Ru, `RPC '${t2}' stream ${s} detected no buffering proxy`); + }), setTimeout(() => { + f.no(); + }, 0), f; + } +} +function Pu() { + return "undefined" != typeof document ? document : null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Vu(t2) { + return new Ti(t2, true); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Su { + constructor(t2, e, n = 1e3, s = 1.5, i = 6e4) { + this.Ws = t2, this.timerId = e, this._o = n, this.mo = s, this.yo = i, this.po = 0, this.Io = null, this.To = Date.now(), this.reset(); + } + reset() { + this.po = 0; + } + Eo() { + this.po = this.yo; + } + Ao(t2) { + this.cancel(); + const e = Math.floor(this.po + this.Ro()), n = Math.max(0, Date.now() - this.To), s = Math.max(0, e - n); + s > 0 && C("ExponentialBackoff", `Backing off for ${s} ms (base delay: ${this.po} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`), this.Io = this.Ws.enqueueAfterDelay(this.timerId, s, () => (this.To = Date.now(), t2())), this.po *= this.mo, this.po < this._o && (this.po = this._o), this.po > this.yo && (this.po = this.yo); + } + vo() { + null !== this.Io && (this.Io.skipDelay(), this.Io = null); + } + cancel() { + null !== this.Io && (this.Io.cancel(), this.Io = null); + } + Ro() { + return (Math.random() - 0.5) * this.po; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Du { + constructor(t2, e, n, s, i, r, o, u) { + this.Ws = t2, this.bo = n, this.Po = s, this.connection = i, this.authCredentialsProvider = r, this.appCheckCredentialsProvider = o, this.listener = u, this.state = 0, this.Vo = 0, this.So = null, this.Do = null, this.stream = null, this.Co = new Su(t2, e); + } + xo() { + return 1 === this.state || 5 === this.state || this.No(); + } + No() { + return 2 === this.state || 3 === this.state; + } + start() { + 4 !== this.state ? this.auth() : this.ko(); + } + async stop() { + this.xo() && await this.close(0); + } + Oo() { + this.state = 0, this.Co.reset(); + } + $o() { + this.No() && null === this.So && (this.So = this.Ws.enqueueAfterDelay(this.bo, 6e4, () => this.Mo())); + } + Fo(t2) { + this.Bo(), this.stream.send(t2); + } + async Mo() { + if (this.No()) + return this.close(0); + } + Bo() { + this.So && (this.So.cancel(), this.So = null); + } + Lo() { + this.Do && (this.Do.cancel(), this.Do = null); + } + async close(t2, e) { + this.Bo(), this.Lo(), this.Co.cancel(), this.Vo++, 4 !== t2 ? this.Co.reset() : e && e.code === B.RESOURCE_EXHAUSTED ? (x(e.toString()), x("Using maximum backoff delay to prevent overloading the backend."), this.Co.Eo()) : e && e.code === B.UNAUTHENTICATED && 3 !== this.state && (this.authCredentialsProvider.invalidateToken(), this.appCheckCredentialsProvider.invalidateToken()), null !== this.stream && (this.qo(), this.stream.close(), this.stream = null), this.state = t2, await this.listener.Zr(e); + } + qo() { + } + auth() { + this.state = 1; + const t2 = this.Uo(this.Vo), e = this.Vo; + Promise.all([this.authCredentialsProvider.getToken(), this.appCheckCredentialsProvider.getToken()]).then(([t3, n]) => { + this.Vo === e && this.Ko(t3, n); + }, (e2) => { + t2(() => { + const t3 = new L(B.UNKNOWN, "Fetching auth token failed: " + e2.message); + return this.Go(t3); + }); + }); + } + Ko(t2, e) { + const n = this.Uo(this.Vo); + this.stream = this.Qo(t2, e), this.stream.Jr(() => { + n(() => (this.state = 2, this.Do = this.Ws.enqueueAfterDelay(this.Po, 1e4, () => (this.No() && (this.state = 3), Promise.resolve())), this.listener.Jr())); + }), this.stream.Zr((t3) => { + n(() => this.Go(t3)); + }), this.stream.onMessage((t3) => { + n(() => this.onMessage(t3)); + }); + } + ko() { + this.state = 5, this.Co.Ao(async () => { + this.state = 0, this.start(); + }); + } + Go(t2) { + return C("PersistentStream", `close with error: ${t2}`), this.stream = null, this.close(4, t2); + } + Uo(t2) { + return (e) => { + this.Ws.enqueueAndForget(() => this.Vo === t2 ? e() : (C("PersistentStream", "stream callback skipped by getCloseGuardedDispatcher."), Promise.resolve())); + }; + } +} +class Cu extends Du { + constructor(t2, e, n, s, i, r) { + super(t2, "listen_stream_connection_backoff", "listen_stream_idle", "health_check_timeout", e, n, s, r), this.serializer = i; + } + Qo(t2, e) { + return this.connection.wo("Listen", t2, e); + } + onMessage(t2) { + this.Co.reset(); + const e = Mi(this.serializer, t2), n = function(t3) { + if (!("targetChange" in t3)) + return st.min(); + const e2 = t3.targetChange; + return e2.targetIds && e2.targetIds.length ? st.min() : e2.readTime ? vi(e2.readTime) : st.min(); + }(t2); + return this.listener.zo(e, n); + } + jo(t2) { + const e = {}; + e.database = xi(this.serializer), e.addTarget = function(t3, e2) { + let n2; + const s = e2.target; + return n2 = On(s) ? { + documents: qi(t3, s) + } : { + query: Ui(t3, s) + }, n2.targetId = e2.targetId, e2.resumeToken.approximateByteSize() > 0 ? n2.resumeToken = Ai(t3, e2.resumeToken) : e2.snapshotVersion.compareTo(st.min()) > 0 && (n2.readTime = Ei(t3, e2.snapshotVersion.toTimestamp())), n2; + }(this.serializer, t2); + const n = Gi(this.serializer, t2); + n && (e.labels = n), this.Fo(e); + } + Wo(t2) { + const e = {}; + e.database = xi(this.serializer), e.removeTarget = t2, this.Fo(e); + } +} +class xu extends Du { + constructor(t2, e, n, s, i, r) { + super(t2, "write_stream_connection_backoff", "write_stream_idle", "health_check_timeout", e, n, s, r), this.serializer = i, this.Ho = false; + } + get Jo() { + return this.Ho; + } + start() { + this.Ho = false, this.lastStreamToken = void 0, super.start(); + } + qo() { + this.Ho && this.Yo([]); + } + Qo(t2, e) { + return this.connection.wo("Write", t2, e); + } + onMessage(t2) { + if ($(!!t2.streamToken), this.lastStreamToken = t2.streamToken, this.Ho) { + this.Co.reset(); + const e = Li(t2.writeResults, t2.commitTime), n = vi(t2.commitTime); + return this.listener.Zo(n, e); + } + return $(!t2.writeResults || 0 === t2.writeResults.length), this.Ho = true, this.listener.Xo(); + } + tu() { + const t2 = {}; + t2.database = xi(this.serializer), this.Fo(t2); + } + Yo(t2) { + const e = { + streamToken: this.lastStreamToken, + writes: t2.map((t3) => Fi(this.serializer, t3)) + }; + this.Fo(e); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Nu extends class { +} { + constructor(t2, e, n, s) { + super(), this.authCredentials = t2, this.appCheckCredentials = e, this.connection = n, this.serializer = s, this.eu = false; + } + nu() { + if (this.eu) + throw new L(B.FAILED_PRECONDITION, "The client has already been terminated."); + } + co(t2, e, n) { + return this.nu(), Promise.all([this.authCredentials.getToken(), this.appCheckCredentials.getToken()]).then(([s, i]) => this.connection.co(t2, e, n, s, i)).catch((t3) => { + throw "FirebaseError" === t3.name ? (t3.code === B.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), this.appCheckCredentials.invalidateToken()), t3) : new L(B.UNKNOWN, t3.toString()); + }); + } + fo(t2, e, n, s) { + return this.nu(), Promise.all([this.authCredentials.getToken(), this.appCheckCredentials.getToken()]).then(([i, r]) => this.connection.fo(t2, e, n, i, r, s)).catch((t3) => { + throw "FirebaseError" === t3.name ? (t3.code === B.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), this.appCheckCredentials.invalidateToken()), t3) : new L(B.UNKNOWN, t3.toString()); + }); + } + terminate() { + this.eu = true; + } +} +class Ou { + constructor(t2, e) { + this.asyncQueue = t2, this.onlineStateHandler = e, this.state = "Unknown", this.su = 0, this.iu = null, this.ru = true; + } + ou() { + 0 === this.su && (this.uu("Unknown"), this.iu = this.asyncQueue.enqueueAfterDelay("online_state_timeout", 1e4, () => (this.iu = null, this.cu("Backend didn't respond within 10 seconds."), this.uu("Offline"), Promise.resolve()))); + } + au(t2) { + "Online" === this.state ? this.uu("Unknown") : (this.su++, this.su >= 1 && (this.hu(), this.cu(`Connection failed 1 times. Most recent error: ${t2.toString()}`), this.uu("Offline"))); + } + set(t2) { + this.hu(), this.su = 0, "Online" === t2 && (this.ru = false), this.uu(t2); + } + uu(t2) { + t2 !== this.state && (this.state = t2, this.onlineStateHandler(t2)); + } + cu(t2) { + const e = `Could not reach Cloud Firestore backend. ${t2} +This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`; + this.ru ? (x(e), this.ru = false) : C("OnlineStateTracker", e); + } + hu() { + null !== this.iu && (this.iu.cancel(), this.iu = null); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class $u { + constructor(t2, e, n, s, i) { + this.localStore = t2, this.datastore = e, this.asyncQueue = n, this.remoteSyncer = {}, this.lu = [], this.fu = /* @__PURE__ */ new Map(), this.du = /* @__PURE__ */ new Set(), this.wu = [], this._u = i, this._u.qr((t3) => { + n.enqueueAndForget(async () => { + Qu(this) && (C("RemoteStore", "Restarting streams for network reachability change."), await async function(t4) { + const e2 = F(t4); + e2.du.add(4), await Fu(e2), e2.mu.set("Unknown"), e2.du.delete(4), await Mu(e2); + }(this)); + }); + }), this.mu = new Ou(n, s); + } +} +async function Mu(t2) { + if (Qu(t2)) + for (const e of t2.wu) + await e(true); +} +async function Fu(t2) { + for (const e of t2.wu) + await e(false); +} +function Bu(t2, e) { + const n = F(t2); + n.fu.has(e.targetId) || (n.fu.set(e.targetId, e), Gu(n) ? Ku(n) : ac(n).No() && qu(n, e)); +} +function Lu(t2, e) { + const n = F(t2), s = ac(n); + n.fu.delete(e), s.No() && Uu(n, e), 0 === n.fu.size && (s.No() ? s.$o() : Qu(n) && n.mu.set("Unknown")); +} +function qu(t2, e) { + t2.gu.Ot(e.targetId), ac(t2).jo(e); +} +function Uu(t2, e) { + t2.gu.Ot(e), ac(t2).Wo(e); +} +function Ku(t2) { + t2.gu = new _i({ + getRemoteKeysForTarget: (e) => t2.remoteSyncer.getRemoteKeysForTarget(e), + ne: (e) => t2.fu.get(e) || null + }), ac(t2).start(), t2.mu.ou(); +} +function Gu(t2) { + return Qu(t2) && !ac(t2).xo() && t2.fu.size > 0; +} +function Qu(t2) { + return 0 === F(t2).du.size; +} +function zu(t2) { + t2.gu = void 0; +} +async function ju(t2) { + t2.fu.forEach((e, n) => { + qu(t2, e); + }); +} +async function Wu(t2, e) { + zu(t2), Gu(t2) ? (t2.mu.au(e), Ku(t2)) : t2.mu.set("Unknown"); +} +async function Hu(t2, e, n) { + if (t2.mu.set("Online"), e instanceof di && 2 === e.state && e.cause) + try { + await async function(t3, e2) { + const n2 = e2.cause; + for (const s of e2.targetIds) + t3.fu.has(s) && (await t3.remoteSyncer.rejectListen(s, n2), t3.fu.delete(s), t3.gu.removeTarget(s)); + }(t2, e); + } catch (n2) { + C("RemoteStore", "Failed to remove targets %s: %s ", e.targetIds.join(","), n2), await Ju(t2, n2); + } + else if (e instanceof li ? t2.gu.Kt(e) : e instanceof fi ? t2.gu.Jt(e) : t2.gu.zt(e), !n.isEqual(st.min())) + try { + const e2 = await Jo(t2.localStore); + n.compareTo(e2) >= 0 && await function(t3, e3) { + const n2 = t3.gu.Xt(e3); + return n2.targetChanges.forEach((n3, s) => { + if (n3.resumeToken.approximateByteSize() > 0) { + const i = t3.fu.get(s); + i && t3.fu.set(s, i.withResumeToken(n3.resumeToken, e3)); + } + }), n2.targetMismatches.forEach((e4) => { + const n3 = t3.fu.get(e4); + if (!n3) + return; + t3.fu.set(e4, n3.withResumeToken(be.EMPTY_BYTE_STRING, n3.snapshotVersion)), Uu(t3, e4); + const s = new tr(n3.target, e4, 1, n3.sequenceNumber); + qu(t3, s); + }), t3.remoteSyncer.applyRemoteEvent(n2); + }(t2, n); + } catch (e2) { + C("RemoteStore", "Failed to raise snapshot:", e2), await Ju(t2, e2); + } +} +async function Ju(t2, e, n) { + if (!Vt(e)) + throw e; + t2.du.add(1), await Fu(t2), t2.mu.set("Offline"), n || (n = () => Jo(t2.localStore)), t2.asyncQueue.enqueueRetryable(async () => { + C("RemoteStore", "Retrying IndexedDB access"), await n(), t2.du.delete(1), await Mu(t2); + }); +} +function Yu(t2, e) { + return e().catch((n) => Ju(t2, n, e)); +} +async function Zu(t2) { + const e = F(t2), n = hc(e); + let s = e.lu.length > 0 ? e.lu[e.lu.length - 1].batchId : -1; + for (; Xu(e); ) + try { + const t3 = await Xo(e.localStore, s); + if (null === t3) { + 0 === e.lu.length && n.$o(); + break; + } + s = t3.batchId, tc(e, t3); + } catch (t3) { + await Ju(e, t3); + } + ec(e) && nc(e); +} +function Xu(t2) { + return Qu(t2) && t2.lu.length < 10; +} +function tc(t2, e) { + t2.lu.push(e); + const n = hc(t2); + n.No() && n.Jo && n.Yo(e.mutations); +} +function ec(t2) { + return Qu(t2) && !hc(t2).xo() && t2.lu.length > 0; +} +function nc(t2) { + hc(t2).start(); +} +async function sc(t2) { + hc(t2).tu(); +} +async function ic(t2) { + const e = hc(t2); + for (const n of t2.lu) + e.Yo(n.mutations); +} +async function rc(t2, e, n) { + const s = t2.lu.shift(), i = Ys.from(s, e, n); + await Yu(t2, () => t2.remoteSyncer.applySuccessfulWrite(i)), await Zu(t2); +} +async function oc(t2, e) { + e && hc(t2).Jo && await async function(t3, e2) { + if (n = e2.code, ri(n) && n !== B.ABORTED) { + const n2 = t3.lu.shift(); + hc(t3).Oo(), await Yu(t3, () => t3.remoteSyncer.rejectFailedWrite(n2.batchId, e2)), await Zu(t3); + } + var n; + }(t2, e), ec(t2) && nc(t2); +} +async function uc(t2, e) { + const n = F(t2); + n.asyncQueue.verifyOperationInProgress(), C("RemoteStore", "RemoteStore received new credentials"); + const s = Qu(n); + n.du.add(3), await Fu(n), s && n.mu.set("Unknown"), await n.remoteSyncer.handleCredentialChange(e), n.du.delete(3), await Mu(n); +} +async function cc(t2, e) { + const n = F(t2); + e ? (n.du.delete(2), await Mu(n)) : e || (n.du.add(2), await Fu(n), n.mu.set("Unknown")); +} +function ac(t2) { + return t2.yu || (t2.yu = function(t3, e, n) { + const s = F(t3); + return s.nu(), new Cu(e, s.connection, s.authCredentials, s.appCheckCredentials, s.serializer, n); + }(t2.datastore, t2.asyncQueue, { + Jr: ju.bind(null, t2), + Zr: Wu.bind(null, t2), + zo: Hu.bind(null, t2) + }), t2.wu.push(async (e) => { + e ? (t2.yu.Oo(), Gu(t2) ? Ku(t2) : t2.mu.set("Unknown")) : (await t2.yu.stop(), zu(t2)); + })), t2.yu; +} +function hc(t2) { + return t2.pu || (t2.pu = function(t3, e, n) { + const s = F(t3); + return s.nu(), new xu(e, s.connection, s.authCredentials, s.appCheckCredentials, s.serializer, n); + }(t2.datastore, t2.asyncQueue, { + Jr: sc.bind(null, t2), + Zr: oc.bind(null, t2), + Xo: ic.bind(null, t2), + Zo: rc.bind(null, t2) + }), t2.wu.push(async (e) => { + e ? (t2.pu.Oo(), await Zu(t2)) : (await t2.pu.stop(), t2.lu.length > 0 && (C("RemoteStore", `Stopping write stream with ${t2.lu.length} pending writes`), t2.lu = [])); + })), t2.pu; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class lc { + constructor(t2, e, n, s, i) { + this.asyncQueue = t2, this.timerId = e, this.targetTimeMs = n, this.op = s, this.removalCallback = i, this.deferred = new q(), this.then = this.deferred.promise.then.bind(this.deferred.promise), this.deferred.promise.catch((t3) => { + }); + } + static createAndSchedule(t2, e, n, s, i) { + const r = Date.now() + n, o = new lc(t2, e, r, s, i); + return o.start(n), o; + } + start(t2) { + this.timerHandle = setTimeout(() => this.handleDelayElapsed(), t2); + } + skipDelay() { + return this.handleDelayElapsed(); + } + cancel(t2) { + null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new L(B.CANCELLED, "Operation cancelled" + (t2 ? ": " + t2 : "")))); + } + handleDelayElapsed() { + this.asyncQueue.enqueueAndForget(() => null !== this.timerHandle ? (this.clearTimeout(), this.op().then((t2) => this.deferred.resolve(t2))) : Promise.resolve()); + } + clearTimeout() { + null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), this.timerHandle = null); + } +} +function fc(t2, e) { + if (x("AsyncQueue", `${e}: ${t2}`), Vt(t2)) + return new L(B.UNAVAILABLE, `${e}: ${t2}`); + throw t2; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class dc { + constructor(t2) { + this.comparator = t2 ? (e, n) => t2(e, n) || ct.comparator(e.key, n.key) : (t3, e) => ct.comparator(t3.key, e.key), this.keyedMap = us(), this.sortedSet = new ge(this.comparator); + } + static emptySet(t2) { + return new dc(t2.comparator); + } + has(t2) { + return null != this.keyedMap.get(t2); + } + get(t2) { + return this.keyedMap.get(t2); + } + first() { + return this.sortedSet.minKey(); + } + last() { + return this.sortedSet.maxKey(); + } + isEmpty() { + return this.sortedSet.isEmpty(); + } + indexOf(t2) { + const e = this.keyedMap.get(t2); + return e ? this.sortedSet.indexOf(e) : -1; + } + get size() { + return this.sortedSet.size; + } + forEach(t2) { + this.sortedSet.inorderTraversal((e, n) => (t2(e), false)); + } + add(t2) { + const e = this.delete(t2.key); + return e.copy(e.keyedMap.insert(t2.key, t2), e.sortedSet.insert(t2, null)); + } + delete(t2) { + const e = this.get(t2); + return e ? this.copy(this.keyedMap.remove(t2), this.sortedSet.remove(e)) : this; + } + isEqual(t2) { + if (!(t2 instanceof dc)) + return false; + if (this.size !== t2.size) + return false; + const e = this.sortedSet.getIterator(), n = t2.sortedSet.getIterator(); + for (; e.hasNext(); ) { + const t3 = e.getNext().key, s = n.getNext().key; + if (!t3.isEqual(s)) + return false; + } + return true; + } + toString() { + const t2 = []; + return this.forEach((e) => { + t2.push(e.toString()); + }), 0 === t2.length ? "DocumentSet ()" : "DocumentSet (\n " + t2.join(" \n") + "\n)"; + } + copy(t2, e) { + const n = new dc(); + return n.comparator = this.comparator, n.keyedMap = t2, n.sortedSet = e, n; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class wc { + constructor() { + this.Iu = new ge(ct.comparator); + } + track(t2) { + const e = t2.doc.key, n = this.Iu.get(e); + n ? 0 !== t2.type && 3 === n.type ? this.Iu = this.Iu.insert(e, t2) : 3 === t2.type && 1 !== n.type ? this.Iu = this.Iu.insert(e, { + type: n.type, + doc: t2.doc + }) : 2 === t2.type && 2 === n.type ? this.Iu = this.Iu.insert(e, { + type: 2, + doc: t2.doc + }) : 2 === t2.type && 0 === n.type ? this.Iu = this.Iu.insert(e, { + type: 0, + doc: t2.doc + }) : 1 === t2.type && 0 === n.type ? this.Iu = this.Iu.remove(e) : 1 === t2.type && 2 === n.type ? this.Iu = this.Iu.insert(e, { + type: 1, + doc: n.doc + }) : 0 === t2.type && 1 === n.type ? this.Iu = this.Iu.insert(e, { + type: 2, + doc: t2.doc + }) : O() : this.Iu = this.Iu.insert(e, t2); + } + Tu() { + const t2 = []; + return this.Iu.inorderTraversal((e, n) => { + t2.push(n); + }), t2; + } +} +class _c { + constructor(t2, e, n, s, i, r, o, u, c) { + this.query = t2, this.docs = e, this.oldDocs = n, this.docChanges = s, this.mutatedKeys = i, this.fromCache = r, this.syncStateChanged = o, this.excludesMetadataChanges = u, this.hasCachedResults = c; + } + static fromInitialDocuments(t2, e, n, s, i) { + const r = []; + return e.forEach((t3) => { + r.push({ + type: 0, + doc: t3 + }); + }), new _c( + t2, + e, + dc.emptySet(e), + r, + n, + s, + true, + false, + i + ); + } + get hasPendingWrites() { + return !this.mutatedKeys.isEmpty(); + } + isEqual(t2) { + if (!(this.fromCache === t2.fromCache && this.hasCachedResults === t2.hasCachedResults && this.syncStateChanged === t2.syncStateChanged && this.mutatedKeys.isEqual(t2.mutatedKeys) && Jn(this.query, t2.query) && this.docs.isEqual(t2.docs) && this.oldDocs.isEqual(t2.oldDocs))) + return false; + const e = this.docChanges, n = t2.docChanges; + if (e.length !== n.length) + return false; + for (let t3 = 0; t3 < e.length; t3++) + if (e[t3].type !== n[t3].type || !e[t3].doc.isEqual(n[t3].doc)) + return false; + return true; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class mc { + constructor() { + this.Eu = void 0, this.listeners = []; + } +} +class gc { + constructor() { + this.queries = new ss((t2) => Yn(t2), Jn), this.onlineState = "Unknown", this.Au = /* @__PURE__ */ new Set(); + } +} +async function yc(t2, e) { + const n = F(t2), s = e.query; + let i = false, r = n.queries.get(s); + if (r || (i = true, r = new mc()), i) + try { + r.Eu = await n.onListen(s); + } catch (t3) { + const n2 = fc(t3, `Initialization of query '${Zn(e.query)}' failed`); + return void e.onError(n2); + } + if (n.queries.set(s, r), r.listeners.push(e), e.Ru(n.onlineState), r.Eu) { + e.vu(r.Eu) && Ec(n); + } +} +async function pc(t2, e) { + const n = F(t2), s = e.query; + let i = false; + const r = n.queries.get(s); + if (r) { + const t3 = r.listeners.indexOf(e); + t3 >= 0 && (r.listeners.splice(t3, 1), i = 0 === r.listeners.length); + } + if (i) + return n.queries.delete(s), n.onUnlisten(s); +} +function Ic(t2, e) { + const n = F(t2); + let s = false; + for (const t3 of e) { + const e2 = t3.query, i = n.queries.get(e2); + if (i) { + for (const e3 of i.listeners) + e3.vu(t3) && (s = true); + i.Eu = t3; + } + } + s && Ec(n); +} +function Tc(t2, e, n) { + const s = F(t2), i = s.queries.get(e); + if (i) + for (const t3 of i.listeners) + t3.onError(n); + s.queries.delete(e); +} +function Ec(t2) { + t2.Au.forEach((t3) => { + t3.next(); + }); +} +class Ac { + constructor(t2, e, n) { + this.query = t2, this.bu = e, this.Pu = false, this.Vu = null, this.onlineState = "Unknown", this.options = n || {}; + } + vu(t2) { + if (!this.options.includeMetadataChanges) { + const e2 = []; + for (const n of t2.docChanges) + 3 !== n.type && e2.push(n); + t2 = new _c( + t2.query, + t2.docs, + t2.oldDocs, + e2, + t2.mutatedKeys, + t2.fromCache, + t2.syncStateChanged, + true, + t2.hasCachedResults + ); + } + let e = false; + return this.Pu ? this.Su(t2) && (this.bu.next(t2), e = true) : this.Du(t2, this.onlineState) && (this.Cu(t2), e = true), this.Vu = t2, e; + } + onError(t2) { + this.bu.error(t2); + } + Ru(t2) { + this.onlineState = t2; + let e = false; + return this.Vu && !this.Pu && this.Du(this.Vu, t2) && (this.Cu(this.Vu), e = true), e; + } + Du(t2, e) { + if (!t2.fromCache) + return true; + const n = "Offline" !== e; + return (!this.options.xu || !n) && (!t2.docs.isEmpty() || t2.hasCachedResults || "Offline" === e); + } + Su(t2) { + if (t2.docChanges.length > 0) + return true; + const e = this.Vu && this.Vu.hasPendingWrites !== t2.hasPendingWrites; + return !(!t2.syncStateChanged && !e) && true === this.options.includeMetadataChanges; + } + Cu(t2) { + t2 = _c.fromInitialDocuments(t2.query, t2.docs, t2.mutatedKeys, t2.fromCache, t2.hasCachedResults), this.Pu = true, this.bu.next(t2); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Vc { + constructor(t2) { + this.key = t2; + } +} +class Sc { + constructor(t2) { + this.key = t2; + } +} +class Dc { + constructor(t2, e) { + this.query = t2, this.Lu = e, this.qu = null, this.hasCachedResults = false, this.current = false, this.Uu = ws(), this.mutatedKeys = ws(), this.Ku = es(t2), this.Gu = new dc(this.Ku); + } + get Qu() { + return this.Lu; + } + zu(t2, e) { + const n = e ? e.ju : new wc(), s = e ? e.Gu : this.Gu; + let i = e ? e.mutatedKeys : this.mutatedKeys, r = s, o = false; + const u = "F" === this.query.limitType && s.size === this.query.limit ? s.last() : null, c = "L" === this.query.limitType && s.size === this.query.limit ? s.first() : null; + if (t2.inorderTraversal((t3, e2) => { + const a = s.get(t3), h = Xn(this.query, e2) ? e2 : null, l2 = !!a && this.mutatedKeys.has(a.key), f = !!h && (h.hasLocalMutations || this.mutatedKeys.has(h.key) && h.hasCommittedMutations); + let d = false; + if (a && h) { + a.data.isEqual(h.data) ? l2 !== f && (n.track({ + type: 3, + doc: h + }), d = true) : this.Wu(a, h) || (n.track({ + type: 2, + doc: h + }), d = true, (u && this.Ku(h, u) > 0 || c && this.Ku(h, c) < 0) && (o = true)); + } else + !a && h ? (n.track({ + type: 0, + doc: h + }), d = true) : a && !h && (n.track({ + type: 1, + doc: a + }), d = true, (u || c) && (o = true)); + d && (h ? (r = r.add(h), i = f ? i.add(t3) : i.delete(t3)) : (r = r.delete(t3), i = i.delete(t3))); + }), null !== this.query.limit) + for (; r.size > this.query.limit; ) { + const t3 = "F" === this.query.limitType ? r.last() : r.first(); + r = r.delete(t3.key), i = i.delete(t3.key), n.track({ + type: 1, + doc: t3 + }); + } + return { + Gu: r, + ju: n, + Mi: o, + mutatedKeys: i + }; + } + Wu(t2, e) { + return t2.hasLocalMutations && e.hasCommittedMutations && !e.hasLocalMutations; + } + applyChanges(t2, e, n) { + const s = this.Gu; + this.Gu = t2.Gu, this.mutatedKeys = t2.mutatedKeys; + const i = t2.ju.Tu(); + i.sort((t3, e2) => function(t4, e3) { + const n2 = (t5) => { + switch (t5) { + case 0: + return 1; + case 2: + case 3: + return 2; + case 1: + return 0; + default: + return O(); + } + }; + return n2(t4) - n2(e3); + }(t3.type, e2.type) || this.Ku(t3.doc, e2.doc)), this.Hu(n); + const r = e ? this.Ju() : [], o = 0 === this.Uu.size && this.current ? 1 : 0, u = o !== this.qu; + if (this.qu = o, 0 !== i.length || u) { + return { + snapshot: new _c( + this.query, + t2.Gu, + s, + i, + t2.mutatedKeys, + 0 === o, + u, + false, + !!n && n.resumeToken.approximateByteSize() > 0 + ), + Yu: r + }; + } + return { + Yu: r + }; + } + Ru(t2) { + return this.current && "Offline" === t2 ? (this.current = false, this.applyChanges( + { + Gu: this.Gu, + ju: new wc(), + mutatedKeys: this.mutatedKeys, + Mi: false + }, + false + )) : { + Yu: [] + }; + } + Zu(t2) { + return !this.Lu.has(t2) && (!!this.Gu.has(t2) && !this.Gu.get(t2).hasLocalMutations); + } + Hu(t2) { + t2 && (t2.addedDocuments.forEach((t3) => this.Lu = this.Lu.add(t3)), t2.modifiedDocuments.forEach((t3) => { + }), t2.removedDocuments.forEach((t3) => this.Lu = this.Lu.delete(t3)), this.current = t2.current); + } + Ju() { + if (!this.current) + return []; + const t2 = this.Uu; + this.Uu = ws(), this.Gu.forEach((t3) => { + this.Zu(t3.key) && (this.Uu = this.Uu.add(t3.key)); + }); + const e = []; + return t2.forEach((t3) => { + this.Uu.has(t3) || e.push(new Sc(t3)); + }), this.Uu.forEach((n) => { + t2.has(n) || e.push(new Vc(n)); + }), e; + } + Xu(t2) { + this.Lu = t2.Wi, this.Uu = ws(); + const e = this.zu(t2.documents); + return this.applyChanges(e, true); + } + tc() { + return _c.fromInitialDocuments(this.query, this.Gu, this.mutatedKeys, 0 === this.qu, this.hasCachedResults); + } +} +class Cc { + constructor(t2, e, n) { + this.query = t2, this.targetId = e, this.view = n; + } +} +class xc { + constructor(t2) { + this.key = t2, this.ec = false; + } +} +class Nc { + constructor(t2, e, n, s, i, r) { + this.localStore = t2, this.remoteStore = e, this.eventManager = n, this.sharedClientState = s, this.currentUser = i, this.maxConcurrentLimboResolutions = r, this.nc = {}, this.sc = new ss((t3) => Yn(t3), Jn), this.ic = /* @__PURE__ */ new Map(), this.rc = /* @__PURE__ */ new Set(), this.oc = new ge(ct.comparator), this.uc = /* @__PURE__ */ new Map(), this.cc = new Vo(), this.ac = {}, this.hc = /* @__PURE__ */ new Map(), this.lc = so.bn(), this.onlineState = "Unknown", this.fc = void 0; + } + get isPrimaryClient() { + return true === this.fc; + } +} +async function kc(t2, e) { + const n = aa(t2); + let s, i; + const r = n.sc.get(e); + if (r) + s = r.targetId, n.sharedClientState.addLocalQueryTarget(s), i = r.view.tc(); + else { + const t3 = await tu(n.localStore, jn(e)); + n.isPrimaryClient && Bu(n.remoteStore, t3); + const r2 = n.sharedClientState.addLocalQueryTarget(t3.targetId); + s = t3.targetId, i = await Oc(n, e, s, "current" === r2, t3.resumeToken); + } + return i; +} +async function Oc(t2, e, n, s, i) { + t2.dc = (e2, n2, s2) => async function(t3, e3, n3, s3) { + let i2 = e3.view.zu(n3); + i2.Mi && (i2 = await nu( + t3.localStore, + e3.query, + false + ).then(({ documents: t4 }) => e3.view.zu(t4, i2))); + const r2 = s3 && s3.targetChanges.get(e3.targetId), o2 = e3.view.applyChanges( + i2, + t3.isPrimaryClient, + r2 + ); + return Wc(t3, e3.targetId, o2.Yu), o2.snapshot; + }(t2, e2, n2, s2); + const r = await nu( + t2.localStore, + e, + true + ), o = new Dc(e, r.Wi), u = o.zu(r.documents), c = hi.createSynthesizedTargetChangeForCurrentChange(n, s && "Offline" !== t2.onlineState, i), a = o.applyChanges( + u, + t2.isPrimaryClient, + c + ); + Wc(t2, n, a.Yu); + const h = new Cc(e, n, o); + return t2.sc.set(e, h), t2.ic.has(n) ? t2.ic.get(n).push(e) : t2.ic.set(n, [e]), a.snapshot; +} +async function $c(t2, e) { + const n = F(t2), s = n.sc.get(e), i = n.ic.get(s.targetId); + if (i.length > 1) + return n.ic.set(s.targetId, i.filter((t3) => !Jn(t3, e))), void n.sc.delete(e); + if (n.isPrimaryClient) { + n.sharedClientState.removeLocalQueryTarget(s.targetId); + n.sharedClientState.isActiveQueryTarget(s.targetId) || await eu( + n.localStore, + s.targetId, + false + ).then(() => { + n.sharedClientState.clearQueryState(s.targetId), Lu(n.remoteStore, s.targetId), zc(n, s.targetId); + }).catch(Et); + } else + zc(n, s.targetId), await eu( + n.localStore, + s.targetId, + true + ); +} +async function Mc(t2, e, n) { + const s = ha(t2); + try { + const t3 = await function(t4, e2) { + const n2 = F(t4), s2 = nt.now(), i = e2.reduce((t5, e3) => t5.add(e3.key), ws()); + let r, o; + return n2.persistence.runTransaction("Locally write mutations", "readwrite", (t5) => { + let u = rs(), c = ws(); + return n2.Ki.getEntries(t5, i).next((t6) => { + u = t6, u.forEach((t7, e3) => { + e3.isValidDocument() || (c = c.add(t7)); + }); + }).next(() => n2.localDocuments.getOverlayedDocuments(t5, u)).next((i2) => { + r = i2; + const o2 = []; + for (const t6 of e2) { + const e3 = qs(t6, r.get(t6.key).overlayedDocument); + null != e3 && o2.push(new Gs(t6.key, e3, rn(e3.value.mapValue), Os.exists(true))); + } + return n2.mutationQueue.addMutationBatch(t5, s2, o2, e2); + }).next((e3) => { + o = e3; + const s3 = e3.applyToLocalDocumentSet(r, c); + return n2.documentOverlayCache.saveOverlays(t5, e3.batchId, s3); + }); + }).then(() => ({ + batchId: o.batchId, + changes: cs(r) + })); + }(s.localStore, e); + s.sharedClientState.addPendingMutation(t3.batchId), function(t4, e2, n2) { + let s2 = t4.ac[t4.currentUser.toKey()]; + s2 || (s2 = new ge(X)); + s2 = s2.insert(e2, n2), t4.ac[t4.currentUser.toKey()] = s2; + }(s, t3.batchId, n), await Yc(s, t3.changes), await Zu(s.remoteStore); + } catch (t3) { + const e2 = fc(t3, "Failed to persist write"); + n.reject(e2); + } +} +async function Fc(t2, e) { + const n = F(t2); + try { + const t3 = await Yo(n.localStore, e); + e.targetChanges.forEach((t4, e2) => { + const s = n.uc.get(e2); + s && ($(t4.addedDocuments.size + t4.modifiedDocuments.size + t4.removedDocuments.size <= 1), t4.addedDocuments.size > 0 ? s.ec = true : t4.modifiedDocuments.size > 0 ? $(s.ec) : t4.removedDocuments.size > 0 && ($(s.ec), s.ec = false)); + }), await Yc(n, t3, e); + } catch (t3) { + await Et(t3); + } +} +function Bc(t2, e, n) { + const s = F(t2); + if (s.isPrimaryClient && 0 === n || !s.isPrimaryClient && 1 === n) { + const t3 = []; + s.sc.forEach((n2, s2) => { + const i = s2.view.Ru(e); + i.snapshot && t3.push(i.snapshot); + }), function(t4, e2) { + const n2 = F(t4); + n2.onlineState = e2; + let s2 = false; + n2.queries.forEach((t5, n3) => { + for (const t6 of n3.listeners) + t6.Ru(e2) && (s2 = true); + }), s2 && Ec(n2); + }(s.eventManager, e), t3.length && s.nc.zo(t3), s.onlineState = e, s.isPrimaryClient && s.sharedClientState.setOnlineState(e); + } +} +async function Lc(t2, e, n) { + const s = F(t2); + s.sharedClientState.updateQueryState(e, "rejected", n); + const i = s.uc.get(e), r = i && i.key; + if (r) { + let t3 = new ge(ct.comparator); + t3 = t3.insert(r, on.newNoDocument(r, st.min())); + const n2 = ws().add(r), i2 = new ai( + st.min(), + /* @__PURE__ */ new Map(), + new Ie(X), + t3, + n2 + ); + await Fc(s, i2), s.oc = s.oc.remove(r), s.uc.delete(e), Jc(s); + } else + await eu( + s.localStore, + e, + false + ).then(() => zc(s, e, n)).catch(Et); +} +async function qc(t2, e) { + const n = F(t2), s = e.batch.batchId; + try { + const t3 = await Ho(n.localStore, e); + Qc(n, s, null), Gc(n, s), n.sharedClientState.updateMutationState(s, "acknowledged"), await Yc(n, t3); + } catch (t3) { + await Et(t3); + } +} +async function Uc(t2, e, n) { + const s = F(t2); + try { + const t3 = await function(t4, e2) { + const n2 = F(t4); + return n2.persistence.runTransaction("Reject batch", "readwrite-primary", (t5) => { + let s2; + return n2.mutationQueue.lookupMutationBatch(t5, e2).next((e3) => ($(null !== e3), s2 = e3.keys(), n2.mutationQueue.removeMutationBatch(t5, e3))).next(() => n2.mutationQueue.performConsistencyCheck(t5)).next(() => n2.documentOverlayCache.removeOverlaysForBatchId(t5, s2, e2)).next(() => n2.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t5, s2)).next(() => n2.localDocuments.getDocuments(t5, s2)); + }); + }(s.localStore, e); + Qc(s, e, n), Gc(s, e), s.sharedClientState.updateMutationState(e, "rejected", n), await Yc(s, t3); + } catch (n2) { + await Et(n2); + } +} +function Gc(t2, e) { + (t2.hc.get(e) || []).forEach((t3) => { + t3.resolve(); + }), t2.hc.delete(e); +} +function Qc(t2, e, n) { + const s = F(t2); + let i = s.ac[s.currentUser.toKey()]; + if (i) { + const t3 = i.get(e); + t3 && (n ? t3.reject(n) : t3.resolve(), i = i.remove(e)), s.ac[s.currentUser.toKey()] = i; + } +} +function zc(t2, e, n = null) { + t2.sharedClientState.removeLocalQueryTarget(e); + for (const s of t2.ic.get(e)) + t2.sc.delete(s), n && t2.nc.wc(s, n); + if (t2.ic.delete(e), t2.isPrimaryClient) { + t2.cc.hs(e).forEach((e2) => { + t2.cc.containsKey(e2) || jc(t2, e2); + }); + } +} +function jc(t2, e) { + t2.rc.delete(e.path.canonicalString()); + const n = t2.oc.get(e); + null !== n && (Lu(t2.remoteStore, n), t2.oc = t2.oc.remove(e), t2.uc.delete(n), Jc(t2)); +} +function Wc(t2, e, n) { + for (const s of n) + if (s instanceof Vc) + t2.cc.addReference(s.key, e), Hc(t2, s); + else if (s instanceof Sc) { + C("SyncEngine", "Document no longer in limbo: " + s.key), t2.cc.removeReference(s.key, e); + t2.cc.containsKey(s.key) || jc(t2, s.key); + } else + O(); +} +function Hc(t2, e) { + const n = e.key, s = n.path.canonicalString(); + t2.oc.get(n) || t2.rc.has(s) || (C("SyncEngine", "New document in limbo: " + n), t2.rc.add(s), Jc(t2)); +} +function Jc(t2) { + for (; t2.rc.size > 0 && t2.oc.size < t2.maxConcurrentLimboResolutions; ) { + const e = t2.rc.values().next().value; + t2.rc.delete(e); + const n = new ct(rt.fromString(e)), s = t2.lc.next(); + t2.uc.set(s, new xc(n)), t2.oc = t2.oc.insert(n, s), Bu(t2.remoteStore, new tr(jn(qn(n.path)), s, 2, Ot.ct)); + } +} +async function Yc(t2, e, n) { + const s = F(t2), i = [], r = [], o = []; + s.sc.isEmpty() || (s.sc.forEach((t3, u) => { + o.push(s.dc(u, e, n).then((t4) => { + if ((t4 || n) && s.isPrimaryClient && s.sharedClientState.updateQueryState(u.targetId, (null == t4 ? void 0 : t4.fromCache) ? "not-current" : "current"), t4) { + i.push(t4); + const e2 = Go.Di(u.targetId, t4); + r.push(e2); + } + })); + }), await Promise.all(o), s.nc.zo(i), await async function(t3, e2) { + const n2 = F(t3); + try { + await n2.persistence.runTransaction("notifyLocalViewChanges", "readwrite", (t4) => At.forEach(e2, (e3) => At.forEach(e3.Vi, (s2) => n2.persistence.referenceDelegate.addReference(t4, e3.targetId, s2)).next(() => At.forEach(e3.Si, (s2) => n2.persistence.referenceDelegate.removeReference(t4, e3.targetId, s2))))); + } catch (t4) { + if (!Vt(t4)) + throw t4; + C("LocalStore", "Failed to update sequence numbers: " + t4); + } + for (const t4 of e2) { + const e3 = t4.targetId; + if (!t4.fromCache) { + const t5 = n2.Li.get(e3), s2 = t5.snapshotVersion, i2 = t5.withLastLimboFreeSnapshotVersion(s2); + n2.Li = n2.Li.insert(e3, i2); + } + } + }(s.localStore, r)); +} +async function Zc(t2, e) { + const n = F(t2); + if (!n.currentUser.isEqual(e)) { + C("SyncEngine", "User change. New user:", e.toKey()); + const t3 = await Wo(n.localStore, e); + n.currentUser = e, function(t4, e2) { + t4.hc.forEach((t5) => { + t5.forEach((t6) => { + t6.reject(new L(B.CANCELLED, e2)); + }); + }), t4.hc.clear(); + }(n, "'waitForPendingWrites' promise is rejected due to a user change."), n.sharedClientState.handleUserChange(e, t3.removedBatchIds, t3.addedBatchIds), await Yc(n, t3.Qi); + } +} +function Xc(t2, e) { + const n = F(t2), s = n.uc.get(e); + if (s && s.ec) + return ws().add(s.key); + { + let t3 = ws(); + const s2 = n.ic.get(e); + if (!s2) + return t3; + for (const e2 of s2) { + const s3 = n.sc.get(e2); + t3 = t3.unionWith(s3.view.Qu); + } + return t3; + } +} +function aa(t2) { + const e = F(t2); + return e.remoteStore.remoteSyncer.applyRemoteEvent = Fc.bind(null, e), e.remoteStore.remoteSyncer.getRemoteKeysForTarget = Xc.bind(null, e), e.remoteStore.remoteSyncer.rejectListen = Lc.bind(null, e), e.nc.zo = Ic.bind(null, e.eventManager), e.nc.wc = Tc.bind(null, e.eventManager), e; +} +function ha(t2) { + const e = F(t2); + return e.remoteStore.remoteSyncer.applySuccessfulWrite = qc.bind(null, e), e.remoteStore.remoteSyncer.rejectFailedWrite = Uc.bind(null, e), e; +} +class fa { + constructor() { + this.synchronizeTabs = false; + } + async initialize(t2) { + this.serializer = Vu(t2.databaseInfo.databaseId), this.sharedClientState = this.createSharedClientState(t2), this.persistence = this.createPersistence(t2), await this.persistence.start(), this.localStore = this.createLocalStore(t2), this.gcScheduler = this.createGarbageCollectionScheduler(t2, this.localStore), this.indexBackfillerScheduler = this.createIndexBackfillerScheduler(t2, this.localStore); + } + createGarbageCollectionScheduler(t2, e) { + return null; + } + createIndexBackfillerScheduler(t2, e) { + return null; + } + createLocalStore(t2) { + return jo(this.persistence, new Qo(), t2.initialUser, this.serializer); + } + createPersistence(t2) { + return new ko($o.Fs, this.serializer); + } + createSharedClientState(t2) { + return new gu(); + } + async terminate() { + this.gcScheduler && this.gcScheduler.stop(), await this.sharedClientState.shutdown(), await this.persistence.shutdown(); + } +} +class _a { + async initialize(t2, e) { + this.localStore || (this.localStore = t2.localStore, this.sharedClientState = t2.sharedClientState, this.datastore = this.createDatastore(e), this.remoteStore = this.createRemoteStore(e), this.eventManager = this.createEventManager(e), this.syncEngine = this.createSyncEngine( + e, + !t2.synchronizeTabs + ), this.sharedClientState.onlineStateHandler = (t3) => Bc(this.syncEngine, t3, 1), this.remoteStore.remoteSyncer.handleCredentialChange = Zc.bind(null, this.syncEngine), await cc(this.remoteStore, this.syncEngine.isPrimaryClient)); + } + createEventManager(t2) { + return new gc(); + } + createDatastore(t2) { + const e = Vu(t2.databaseInfo.databaseId), n = (s = t2.databaseInfo, new vu(s)); + var s; + return function(t3, e2, n2, s2) { + return new Nu(t3, e2, n2, s2); + }(t2.authCredentials, t2.appCheckCredentials, n, e); + } + createRemoteStore(t2) { + return e = this.localStore, n = this.datastore, s = t2.asyncQueue, i = (t3) => Bc(this.syncEngine, t3, 0), r = pu.D() ? new pu() : new yu(), new $u(e, n, s, i, r); + var e, n, s, i, r; + } + createSyncEngine(t2, e) { + return function(t3, e2, n, s, i, r, o) { + const u = new Nc(t3, e2, n, s, i, r); + return o && (u.fc = true), u; + }(this.localStore, this.remoteStore, this.eventManager, this.sharedClientState, t2.initialUser, t2.maxConcurrentLimboResolutions, e); + } + terminate() { + return async function(t2) { + const e = F(t2); + C("RemoteStore", "RemoteStore shutting down."), e.du.add(5), await Fu(e), e._u.shutdown(), e.mu.set("Unknown"); + }(this.remoteStore); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ga { + constructor(t2) { + this.observer = t2, this.muted = false; + } + next(t2) { + this.observer.next && this.gc(this.observer.next, t2); + } + error(t2) { + this.observer.error ? this.gc(this.observer.error, t2) : x("Uncaught Error in snapshot listener:", t2.toString()); + } + yc() { + this.muted = true; + } + gc(t2, e) { + this.muted || setTimeout(() => { + this.muted || t2(e); + }, 0); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ta { + constructor(t2, e, n, s) { + this.authCredentials = t2, this.appCheckCredentials = e, this.asyncQueue = n, this.databaseInfo = s, this.user = b.UNAUTHENTICATED, this.clientId = Z.A(), this.authCredentialListener = () => Promise.resolve(), this.appCheckCredentialListener = () => Promise.resolve(), this.authCredentials.start(n, async (t3) => { + C("FirestoreClient", "Received user=", t3.uid), await this.authCredentialListener(t3), this.user = t3; + }), this.appCheckCredentials.start(n, (t3) => (C("FirestoreClient", "Received new app check token=", t3), this.appCheckCredentialListener(t3, this.user))); + } + async getConfiguration() { + return { + asyncQueue: this.asyncQueue, + databaseInfo: this.databaseInfo, + clientId: this.clientId, + authCredentials: this.authCredentials, + appCheckCredentials: this.appCheckCredentials, + initialUser: this.user, + maxConcurrentLimboResolutions: 100 + }; + } + setCredentialChangeListener(t2) { + this.authCredentialListener = t2; + } + setAppCheckTokenChangeListener(t2) { + this.appCheckCredentialListener = t2; + } + verifyNotTerminated() { + if (this.asyncQueue.isShuttingDown) + throw new L(B.FAILED_PRECONDITION, "The client has already been terminated."); + } + terminate() { + this.asyncQueue.enterRestrictedMode(); + const t2 = new q(); + return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async () => { + try { + this._onlineComponents && await this._onlineComponents.terminate(), this._offlineComponents && await this._offlineComponents.terminate(), this.authCredentials.shutdown(), this.appCheckCredentials.shutdown(), t2.resolve(); + } catch (e) { + const n = fc(e, "Failed to shutdown persistence"); + t2.reject(n); + } + }), t2.promise; + } +} +async function Ea(t2, e) { + t2.asyncQueue.verifyOperationInProgress(), C("FirestoreClient", "Initializing OfflineComponentProvider"); + const n = await t2.getConfiguration(); + await e.initialize(n); + let s = n.initialUser; + t2.setCredentialChangeListener(async (t3) => { + s.isEqual(t3) || (await Wo(e.localStore, t3), s = t3); + }), e.persistence.setDatabaseDeletedListener(() => t2.terminate()), t2._offlineComponents = e; +} +async function Aa(t2, e) { + t2.asyncQueue.verifyOperationInProgress(); + const n = await va(t2); + C("FirestoreClient", "Initializing OnlineComponentProvider"); + const s = await t2.getConfiguration(); + await e.initialize(n, s), t2.setCredentialChangeListener((t3) => uc(e.remoteStore, t3)), t2.setAppCheckTokenChangeListener((t3, n2) => uc(e.remoteStore, n2)), t2._onlineComponents = e; +} +function Ra(t2) { + return "FirebaseError" === t2.name ? t2.code === B.FAILED_PRECONDITION || t2.code === B.UNIMPLEMENTED : !("undefined" != typeof DOMException && t2 instanceof DOMException) || (22 === t2.code || 20 === t2.code || 11 === t2.code); +} +async function va(t2) { + if (!t2._offlineComponents) + if (t2._uninitializedComponentsProvider) { + C("FirestoreClient", "Using user provided OfflineComponentProvider"); + try { + await Ea(t2, t2._uninitializedComponentsProvider._offline); + } catch (e) { + const n = e; + if (!Ra(n)) + throw n; + N("Error using user provided cache. Falling back to memory cache: " + n), await Ea(t2, new fa()); + } + } else + C("FirestoreClient", "Using default OfflineComponentProvider"), await Ea(t2, new fa()); + return t2._offlineComponents; +} +async function ba(t2) { + return t2._onlineComponents || (t2._uninitializedComponentsProvider ? (C("FirestoreClient", "Using user provided OnlineComponentProvider"), await Aa(t2, t2._uninitializedComponentsProvider._online)) : (C("FirestoreClient", "Using default OnlineComponentProvider"), await Aa(t2, new _a()))), t2._onlineComponents; +} +function Da(t2) { + return ba(t2).then((t3) => t3.syncEngine); +} +async function xa(t2) { + const e = await ba(t2), n = e.eventManager; + return n.onListen = kc.bind(null, e.syncEngine), n.onUnlisten = $c.bind(null, e.syncEngine), n; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Ka = /* @__PURE__ */ new Map(); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ga(t2, e, n) { + if (!n) + throw new L(B.INVALID_ARGUMENT, `Function ${t2}() cannot be called with an empty ${e}.`); +} +function Qa(t2, e, n, s) { + if (true === e && true === s) + throw new L(B.INVALID_ARGUMENT, `${t2} and ${n} cannot be used together.`); +} +function za(t2) { + if (!ct.isDocumentKey(t2)) + throw new L(B.INVALID_ARGUMENT, `Invalid document reference. Document references must have an even number of segments, but ${t2} has ${t2.length}.`); +} +function ja(t2) { + if (ct.isDocumentKey(t2)) + throw new L(B.INVALID_ARGUMENT, `Invalid collection reference. Collection references must have an odd number of segments, but ${t2} has ${t2.length}.`); +} +function Wa(t2) { + if (void 0 === t2) + return "undefined"; + if (null === t2) + return "null"; + if ("string" == typeof t2) + return t2.length > 20 && (t2 = `${t2.substring(0, 20)}...`), JSON.stringify(t2); + if ("number" == typeof t2 || "boolean" == typeof t2) + return "" + t2; + if ("object" == typeof t2) { + if (t2 instanceof Array) + return "an array"; + { + const e = function(t3) { + if (t3.constructor) + return t3.constructor.name; + return null; + }(t2); + return e ? `a custom ${e} object` : "an object"; + } + } + return "function" == typeof t2 ? "a function" : O(); +} +function Ha(t2, e) { + if ("_delegate" in t2 && (t2 = t2._delegate), !(t2 instanceof e)) { + if (e.name === t2.constructor.name) + throw new L(B.INVALID_ARGUMENT, "Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?"); + { + const n = Wa(t2); + throw new L(B.INVALID_ARGUMENT, `Expected type '${e.name}', but it was: ${n}`); + } + } + return t2; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ya { + constructor(t2) { + var e; + if (void 0 === t2.host) { + if (void 0 !== t2.ssl) + throw new L(B.INVALID_ARGUMENT, "Can't provide ssl option if host option is not set"); + this.host = "firestore.googleapis.com", this.ssl = true; + } else + this.host = t2.host, this.ssl = null === (e = t2.ssl) || void 0 === e || e; + if (this.credentials = t2.credentials, this.ignoreUndefinedProperties = !!t2.ignoreUndefinedProperties, this.cache = t2.localCache, void 0 === t2.cacheSizeBytes) + this.cacheSizeBytes = 41943040; + else { + if (-1 !== t2.cacheSizeBytes && t2.cacheSizeBytes < 1048576) + throw new L(B.INVALID_ARGUMENT, "cacheSizeBytes must be at least 1048576"); + this.cacheSizeBytes = t2.cacheSizeBytes; + } + this.experimentalForceLongPolling = !!t2.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t2.experimentalAutoDetectLongPolling, this.useFetchStreams = !!t2.useFetchStreams, Qa("experimentalForceLongPolling", t2.experimentalForceLongPolling, "experimentalAutoDetectLongPolling", t2.experimentalAutoDetectLongPolling); + } + isEqual(t2) { + return this.host === t2.host && this.ssl === t2.ssl && this.credentials === t2.credentials && this.cacheSizeBytes === t2.cacheSizeBytes && this.experimentalForceLongPolling === t2.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t2.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t2.ignoreUndefinedProperties && this.useFetchStreams === t2.useFetchStreams; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Za { + constructor(t2, e, n, s) { + this._authCredentials = t2, this._appCheckCredentials = e, this._databaseId = n, this._app = s, this.type = "firestore-lite", this._persistenceKey = "(lite)", this._settings = new Ya({}), this._settingsFrozen = false; + } + get app() { + if (!this._app) + throw new L(B.FAILED_PRECONDITION, "Firestore was not initialized using the Firebase SDK. 'app' is not available"); + return this._app; + } + get _initialized() { + return this._settingsFrozen; + } + get _terminated() { + return void 0 !== this._terminateTask; + } + _setSettings(t2) { + if (this._settingsFrozen) + throw new L(B.FAILED_PRECONDITION, "Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object."); + this._settings = new Ya(t2), void 0 !== t2.credentials && (this._authCredentials = function(t3) { + if (!t3) + return new K(); + switch (t3.type) { + case "firstParty": + return new j(t3.sessionIndex || "0", t3.iamToken || null, t3.authTokenFactory || null); + case "provider": + return t3.client; + default: + throw new L(B.INVALID_ARGUMENT, "makeAuthCredentialsProvider failed due to invalid credential type"); + } + }(t2.credentials)); + } + _getSettings() { + return this._settings; + } + _freezeSettings() { + return this._settingsFrozen = true, this._settings; + } + _delete() { + return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask; + } + toJSON() { + return { + app: this._app, + databaseId: this._databaseId, + settings: this._settings + }; + } + _terminate() { + return function(t2) { + const e = Ka.get(t2); + e && (C("ComponentProvider", "Removing Datastore"), Ka.delete(t2), e.terminate()); + }(this), Promise.resolve(); + } +} +function Xa(t2, e, n, s = {}) { + var i; + const r = (t2 = Ha(t2, Za))._getSettings(); + if ("firestore.googleapis.com" !== r.host && r.host !== e && N("Host has been set in both settings() and useEmulator(), emulator host will be used"), t2._setSettings(Object.assign(Object.assign({}, r), { + host: `${e}:${n}`, + ssl: false + })), s.mockUserToken) { + let e2, n2; + if ("string" == typeof s.mockUserToken) + e2 = s.mockUserToken, n2 = b.MOCK_USER; + else { + e2 = createMockUserToken(s.mockUserToken, null === (i = t2._app) || void 0 === i ? void 0 : i.options.projectId); + const r2 = s.mockUserToken.sub || s.mockUserToken.user_id; + if (!r2) + throw new L(B.INVALID_ARGUMENT, "mockUserToken must contain 'sub' or 'user_id' field!"); + n2 = new b(r2); + } + t2._authCredentials = new G(new U(e2, n2)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class th { + constructor(t2, e, n) { + this.converter = e, this._key = n, this.type = "document", this.firestore = t2; + } + get _path() { + return this._key.path; + } + get id() { + return this._key.path.lastSegment(); + } + get path() { + return this._key.path.canonicalString(); + } + get parent() { + return new nh(this.firestore, this.converter, this._key.path.popLast()); + } + withConverter(t2) { + return new th(this.firestore, t2, this._key); + } +} +class eh { + constructor(t2, e, n) { + this.converter = e, this._query = n, this.type = "query", this.firestore = t2; + } + withConverter(t2) { + return new eh(this.firestore, t2, this._query); + } +} +class nh extends eh { + constructor(t2, e, n) { + super(t2, e, qn(n)), this._path = n, this.type = "collection"; + } + get id() { + return this._query.path.lastSegment(); + } + get path() { + return this._query.path.canonicalString(); + } + get parent() { + const t2 = this._path.popLast(); + return t2.isEmpty() ? null : new th( + this.firestore, + null, + new ct(t2) + ); + } + withConverter(t2) { + return new nh(this.firestore, t2, this._path); + } +} +function sh(t2, e, ...n) { + if (t2 = getModularInstance(t2), Ga("collection", "path", e), t2 instanceof Za) { + const s = rt.fromString(e, ...n); + return ja(s), new nh(t2, null, s); + } + { + if (!(t2 instanceof th || t2 instanceof nh)) + throw new L(B.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore"); + const s = t2._path.child(rt.fromString(e, ...n)); + return ja(s), new nh( + t2.firestore, + null, + s + ); + } +} +function rh(t2, e, ...n) { + if (t2 = getModularInstance(t2), 1 === arguments.length && (e = Z.A()), Ga("doc", "path", e), t2 instanceof Za) { + const s = rt.fromString(e, ...n); + return za(s), new th( + t2, + null, + new ct(s) + ); + } + { + if (!(t2 instanceof th || t2 instanceof nh)) + throw new L(B.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore"); + const s = t2._path.child(rt.fromString(e, ...n)); + return za(s), new th(t2.firestore, t2 instanceof nh ? t2.converter : null, new ct(s)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ch { + constructor() { + this.Nc = Promise.resolve(), this.kc = [], this.Oc = false, this.$c = [], this.Mc = null, this.Fc = false, this.Bc = false, this.Lc = [], this.Co = new Su(this, "async_queue_retry"), this.qc = () => { + const t3 = Pu(); + t3 && C("AsyncQueue", "Visibility state changed to " + t3.visibilityState), this.Co.vo(); + }; + const t2 = Pu(); + t2 && "function" == typeof t2.addEventListener && t2.addEventListener("visibilitychange", this.qc); + } + get isShuttingDown() { + return this.Oc; + } + enqueueAndForget(t2) { + this.enqueue(t2); + } + enqueueAndForgetEvenWhileRestricted(t2) { + this.Uc(), this.Kc(t2); + } + enterRestrictedMode(t2) { + if (!this.Oc) { + this.Oc = true, this.Bc = t2 || false; + const e = Pu(); + e && "function" == typeof e.removeEventListener && e.removeEventListener("visibilitychange", this.qc); + } + } + enqueue(t2) { + if (this.Uc(), this.Oc) + return new Promise(() => { + }); + const e = new q(); + return this.Kc(() => this.Oc && this.Bc ? Promise.resolve() : (t2().then(e.resolve, e.reject), e.promise)).then(() => e.promise); + } + enqueueRetryable(t2) { + this.enqueueAndForget(() => (this.kc.push(t2), this.Gc())); + } + async Gc() { + if (0 !== this.kc.length) { + try { + await this.kc[0](), this.kc.shift(), this.Co.reset(); + } catch (t2) { + if (!Vt(t2)) + throw t2; + C("AsyncQueue", "Operation failed with retryable error: " + t2); + } + this.kc.length > 0 && this.Co.Ao(() => this.Gc()); + } + } + Kc(t2) { + const e = this.Nc.then(() => (this.Fc = true, t2().catch((t3) => { + this.Mc = t3, this.Fc = false; + const e2 = function(t4) { + let e3 = t4.message || ""; + t4.stack && (e3 = t4.stack.includes(t4.message) ? t4.stack : t4.message + "\n" + t4.stack); + return e3; + }(t3); + throw x("INTERNAL UNHANDLED ERROR: ", e2), t3; + }).then((t3) => (this.Fc = false, t3)))); + return this.Nc = e, e; + } + enqueueAfterDelay(t2, e, n) { + this.Uc(), this.Lc.indexOf(t2) > -1 && (e = 0); + const s = lc.createAndSchedule(this, t2, e, n, (t3) => this.Qc(t3)); + return this.$c.push(s), s; + } + Uc() { + this.Mc && O(); + } + verifyOperationInProgress() { + } + async zc() { + let t2; + do { + t2 = this.Nc, await t2; + } while (t2 !== this.Nc); + } + jc(t2) { + for (const e of this.$c) + if (e.timerId === t2) + return true; + return false; + } + Wc(t2) { + return this.zc().then(() => { + this.$c.sort((t3, e) => t3.targetTimeMs - e.targetTimeMs); + for (const e of this.$c) + if (e.skipDelay(), "all" !== t2 && e.timerId === t2) + break; + return this.zc(); + }); + } + Hc(t2) { + this.Lc.push(t2); + } + Qc(t2) { + const e = this.$c.indexOf(t2); + this.$c.splice(e, 1); + } +} +function ah(t2) { + return function(t3, e) { + if ("object" != typeof t3 || null === t3) + return false; + const n = t3; + for (const t4 of e) + if (t4 in n && "function" == typeof n[t4]) + return true; + return false; + }(t2, ["next", "error", "complete"]); +} +class fh extends Za { + constructor(t2, e, n, s) { + super(t2, e, n, s), this.type = "firestore", this._queue = new ch(), this._persistenceKey = (null == s ? void 0 : s.name) || "[DEFAULT]"; + } + _terminate() { + return this._firestoreClient || mh(this), this._firestoreClient.terminate(); + } +} +function wh(e, n) { + const s = "object" == typeof e ? e : getApp(), i = "string" == typeof e ? e : n || "(default)", r = _getProvider(s, "firestore").getImmediate({ + identifier: i + }); + if (!r._initialized) { + const t2 = getDefaultEmulatorHostnameAndPort("firestore"); + t2 && Xa(r, ...t2); + } + return r; +} +function _h(t2) { + return t2._firestoreClient || mh(t2), t2._firestoreClient.verifyNotTerminated(), t2._firestoreClient; +} +function mh(t2) { + var e, n, s; + const i = t2._freezeSettings(), r = function(t3, e2, n2, s2) { + return new ke(t3, e2, n2, s2.host, s2.ssl, s2.experimentalForceLongPolling, s2.experimentalAutoDetectLongPolling, s2.useFetchStreams); + }(t2._databaseId, (null === (e = t2._app) || void 0 === e ? void 0 : e.options.appId) || "", t2._persistenceKey, i); + t2._firestoreClient = new Ta(t2._authCredentials, t2._appCheckCredentials, t2._queue, r), (null === (n = i.cache) || void 0 === n ? void 0 : n._offlineComponentProvider) && (null === (s = i.cache) || void 0 === s ? void 0 : s._onlineComponentProvider) && (t2._firestoreClient._uninitializedComponentsProvider = { + _offlineKind: i.cache.kind, + _offline: i.cache._offlineComponentProvider, + _online: i.cache._onlineComponentProvider + }); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Dh { + constructor(t2) { + this._byteString = t2; + } + static fromBase64String(t2) { + try { + return new Dh(be.fromBase64String(t2)); + } catch (t3) { + throw new L(B.INVALID_ARGUMENT, "Failed to construct data from Base64 string: " + t3); + } + } + static fromUint8Array(t2) { + return new Dh(be.fromUint8Array(t2)); + } + toBase64() { + return this._byteString.toBase64(); + } + toUint8Array() { + return this._byteString.toUint8Array(); + } + toString() { + return "Bytes(base64: " + this.toBase64() + ")"; + } + isEqual(t2) { + return this._byteString.isEqual(t2._byteString); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ch { + constructor(...t2) { + for (let e = 0; e < t2.length; ++e) + if (0 === t2[e].length) + throw new L(B.INVALID_ARGUMENT, "Invalid field name at argument $(i + 1). Field names must not be empty."); + this._internalPath = new ut(t2); + } + isEqual(t2) { + return this._internalPath.isEqual(t2._internalPath); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Nh { + constructor(t2) { + this._methodName = t2; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class kh { + constructor(t2, e) { + if (!isFinite(t2) || t2 < -90 || t2 > 90) + throw new L(B.INVALID_ARGUMENT, "Latitude must be a number between -90 and 90, but was: " + t2); + if (!isFinite(e) || e < -180 || e > 180) + throw new L(B.INVALID_ARGUMENT, "Longitude must be a number between -180 and 180, but was: " + e); + this._lat = t2, this._long = e; + } + get latitude() { + return this._lat; + } + get longitude() { + return this._long; + } + isEqual(t2) { + return this._lat === t2._lat && this._long === t2._long; + } + toJSON() { + return { + latitude: this._lat, + longitude: this._long + }; + } + _compareTo(t2) { + return X(this._lat, t2._lat) || X(this._long, t2._long); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Oh = /^__.*__$/; +class $h { + constructor(t2, e, n) { + this.data = t2, this.fieldMask = e, this.fieldTransforms = n; + } + toMutation(t2, e) { + return null !== this.fieldMask ? new Gs(t2, this.data, this.fieldMask, e, this.fieldTransforms) : new Ks(t2, this.data, e, this.fieldTransforms); + } +} +class Mh { + constructor(t2, e, n) { + this.data = t2, this.fieldMask = e, this.fieldTransforms = n; + } + toMutation(t2, e) { + return new Gs(t2, this.data, this.fieldMask, e, this.fieldTransforms); + } +} +function Fh(t2) { + switch (t2) { + case 0: + case 2: + case 1: + return true; + case 3: + case 4: + return false; + default: + throw O(); + } +} +class Bh { + constructor(t2, e, n, s, i, r) { + this.settings = t2, this.databaseId = e, this.serializer = n, this.ignoreUndefinedProperties = s, void 0 === i && this.Jc(), this.fieldTransforms = i || [], this.fieldMask = r || []; + } + get path() { + return this.settings.path; + } + get Yc() { + return this.settings.Yc; + } + Zc(t2) { + return new Bh(Object.assign(Object.assign({}, this.settings), t2), this.databaseId, this.serializer, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask); + } + Xc(t2) { + var e; + const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t2), s = this.Zc({ + path: n, + ta: false + }); + return s.ea(t2), s; + } + na(t2) { + var e; + const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t2), s = this.Zc({ + path: n, + ta: false + }); + return s.Jc(), s; + } + sa(t2) { + return this.Zc({ + path: void 0, + ta: true + }); + } + ia(t2) { + return rl(t2, this.settings.methodName, this.settings.ra || false, this.path, this.settings.oa); + } + contains(t2) { + return void 0 !== this.fieldMask.find((e) => t2.isPrefixOf(e)) || void 0 !== this.fieldTransforms.find((e) => t2.isPrefixOf(e.field)); + } + Jc() { + if (this.path) + for (let t2 = 0; t2 < this.path.length; t2++) + this.ea(this.path.get(t2)); + } + ea(t2) { + if (0 === t2.length) + throw this.ia("Document fields must not be empty"); + if (Fh(this.Yc) && Oh.test(t2)) + throw this.ia('Document fields cannot begin and end with "__"'); + } +} +class Lh { + constructor(t2, e, n) { + this.databaseId = t2, this.ignoreUndefinedProperties = e, this.serializer = n || Vu(t2); + } + ua(t2, e, n, s = false) { + return new Bh({ + Yc: t2, + methodName: e, + oa: n, + path: ut.emptyPath(), + ta: false, + ra: s + }, this.databaseId, this.serializer, this.ignoreUndefinedProperties); + } +} +function qh(t2) { + const e = t2._freezeSettings(), n = Vu(t2._databaseId); + return new Lh(t2._databaseId, !!e.ignoreUndefinedProperties, n); +} +function Uh(t2, e, n, s, i, r = {}) { + const o = t2.ua(r.merge || r.mergeFields ? 2 : 0, e, n, i); + el("Data must be an object, but it was:", o, s); + const u = Xh(s, o); + let c, a; + if (r.merge) + c = new Ae(o.fieldMask), a = o.fieldTransforms; + else if (r.mergeFields) { + const t3 = []; + for (const s2 of r.mergeFields) { + const i2 = nl(e, s2, n); + if (!o.contains(i2)) + throw new L(B.INVALID_ARGUMENT, `Field '${i2}' is specified in your field mask but missing from your input data.`); + ol(t3, i2) || t3.push(i2); + } + c = new Ae(t3), a = o.fieldTransforms.filter((t4) => c.covers(t4.field)); + } else + c = null, a = o.fieldTransforms; + return new $h(new sn(u), c, a); +} +class Kh extends Nh { + _toFieldTransform(t2) { + if (2 !== t2.Yc) + throw 1 === t2.Yc ? t2.ia(`${this._methodName}() can only appear at the top level of your update data`) : t2.ia(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`); + return t2.fieldMask.push(t2.path), null; + } + isEqual(t2) { + return t2 instanceof Kh; + } +} +function Gh(t2, e, n) { + return new Bh({ + Yc: 3, + oa: e.settings.oa, + methodName: t2._methodName, + ta: n + }, e.databaseId, e.serializer, e.ignoreUndefinedProperties); +} +class zh extends Nh { + constructor(t2, e) { + super(t2), this.ca = e; + } + _toFieldTransform(t2) { + const e = Gh( + this, + t2, + true + ), n = this.ca.map((t3) => Zh(t3, e)), s = new vs(n); + return new xs(t2.path, s); + } + isEqual(t2) { + return this === t2; + } +} +class jh extends Nh { + constructor(t2, e) { + super(t2), this.ca = e; + } + _toFieldTransform(t2) { + const e = Gh( + this, + t2, + true + ), n = this.ca.map((t3) => Zh(t3, e)), s = new Ps(n); + return new xs(t2.path, s); + } + isEqual(t2) { + return this === t2; + } +} +function Hh(t2, e, n, s) { + const i = t2.ua(1, e, n); + el("Data must be an object, but it was:", i, s); + const r = [], o = sn.empty(); + _e(s, (t3, s2) => { + const u2 = il(e, t3, n); + s2 = getModularInstance(s2); + const c = i.na(u2); + if (s2 instanceof Kh) + r.push(u2); + else { + const t4 = Zh(s2, c); + null != t4 && (r.push(u2), o.set(u2, t4)); + } + }); + const u = new Ae(r); + return new Mh(o, u, i.fieldTransforms); +} +function Jh(t2, e, n, s, i, r) { + const o = t2.ua(1, e, n), u = [nl(e, s, n)], c = [i]; + if (r.length % 2 != 0) + throw new L(B.INVALID_ARGUMENT, `Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`); + for (let t3 = 0; t3 < r.length; t3 += 2) + u.push(nl(e, r[t3])), c.push(r[t3 + 1]); + const a = [], h = sn.empty(); + for (let t3 = u.length - 1; t3 >= 0; --t3) + if (!ol(a, u[t3])) { + const e2 = u[t3]; + let n2 = c[t3]; + n2 = getModularInstance(n2); + const s2 = o.na(e2); + if (n2 instanceof Kh) + a.push(e2); + else { + const t4 = Zh(n2, s2); + null != t4 && (a.push(e2), h.set(e2, t4)); + } + } + const l2 = new Ae(a); + return new Mh(h, l2, o.fieldTransforms); +} +function Yh(t2, e, n, s = false) { + return Zh(n, t2.ua(s ? 4 : 3, e)); +} +function Zh(t2, e) { + if (tl( + t2 = getModularInstance(t2) + )) + return el("Unsupported field value:", e, t2), Xh(t2, e); + if (t2 instanceof Nh) + return function(t3, e2) { + if (!Fh(e2.Yc)) + throw e2.ia(`${t3._methodName}() can only be used with update() and set()`); + if (!e2.path) + throw e2.ia(`${t3._methodName}() is not currently supported inside arrays`); + const n = t3._toFieldTransform(e2); + n && e2.fieldTransforms.push(n); + }(t2, e), null; + if (void 0 === t2 && e.ignoreUndefinedProperties) + return null; + if (e.path && e.fieldMask.push(e.path), t2 instanceof Array) { + if (e.settings.ta && 4 !== e.Yc) + throw e.ia("Nested arrays are not supported"); + return function(t3, e2) { + const n = []; + let s = 0; + for (const i of t3) { + let t4 = Zh(i, e2.sa(s)); + null == t4 && (t4 = { + nullValue: "NULL_VALUE" + }), n.push(t4), s++; + } + return { + arrayValue: { + values: n + } + }; + }(t2, e); + } + return function(t3, e2) { + if (null === (t3 = getModularInstance(t3))) + return { + nullValue: "NULL_VALUE" + }; + if ("number" == typeof t3) + return ps(e2.serializer, t3); + if ("boolean" == typeof t3) + return { + booleanValue: t3 + }; + if ("string" == typeof t3) + return { + stringValue: t3 + }; + if (t3 instanceof Date) { + const n = nt.fromDate(t3); + return { + timestampValue: Ei(e2.serializer, n) + }; + } + if (t3 instanceof nt) { + const n = new nt(t3.seconds, 1e3 * Math.floor(t3.nanoseconds / 1e3)); + return { + timestampValue: Ei(e2.serializer, n) + }; + } + if (t3 instanceof kh) + return { + geoPointValue: { + latitude: t3.latitude, + longitude: t3.longitude + } + }; + if (t3 instanceof Dh) + return { + bytesValue: Ai(e2.serializer, t3._byteString) + }; + if (t3 instanceof th) { + const n = e2.databaseId, s = t3.firestore._databaseId; + if (!s.isEqual(n)) + throw e2.ia(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${n.projectId}/${n.database}`); + return { + referenceValue: bi(t3.firestore._databaseId || e2.databaseId, t3._key.path) + }; + } + throw e2.ia(`Unsupported field value: ${Wa(t3)}`); + }(t2, e); +} +function Xh(t2, e) { + const n = {}; + return me(t2) ? e.path && e.path.length > 0 && e.fieldMask.push(e.path) : _e(t2, (t3, s) => { + const i = Zh(s, e.Xc(t3)); + null != i && (n[t3] = i); + }), { + mapValue: { + fields: n + } + }; +} +function tl(t2) { + return !("object" != typeof t2 || null === t2 || t2 instanceof Array || t2 instanceof Date || t2 instanceof nt || t2 instanceof kh || t2 instanceof Dh || t2 instanceof th || t2 instanceof Nh); +} +function el(t2, e, n) { + if (!tl(n) || !function(t3) { + return "object" == typeof t3 && null !== t3 && (Object.getPrototypeOf(t3) === Object.prototype || null === Object.getPrototypeOf(t3)); + }(n)) { + const s = Wa(n); + throw "an object" === s ? e.ia(t2 + " a custom object") : e.ia(t2 + " " + s); + } +} +function nl(t2, e, n) { + if ((e = getModularInstance(e)) instanceof Ch) + return e._internalPath; + if ("string" == typeof e) + return il(t2, e); + throw rl( + "Field path arguments must be of type string or ", + t2, + false, + void 0, + n + ); +} +const sl = new RegExp("[~\\*/\\[\\]]"); +function il(t2, e, n) { + if (e.search(sl) >= 0) + throw rl( + `Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`, + t2, + false, + void 0, + n + ); + try { + return new Ch(...e.split("."))._internalPath; + } catch (s) { + throw rl( + `Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`, + t2, + false, + void 0, + n + ); + } +} +function rl(t2, e, n, s, i) { + const r = s && !s.isEmpty(), o = void 0 !== i; + let u = `Function ${e}() called with invalid data`; + n && (u += " (via `toFirestore()`)"), u += ". "; + let c = ""; + return (r || o) && (c += " (found", r && (c += ` in field ${s}`), o && (c += ` in document ${i}`), c += ")"), new L(B.INVALID_ARGUMENT, u + t2 + c); +} +function ol(t2, e) { + return t2.some((t3) => t3.isEqual(e)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ul { + constructor(t2, e, n, s, i) { + this._firestore = t2, this._userDataWriter = e, this._key = n, this._document = s, this._converter = i; + } + get id() { + return this._key.path.lastSegment(); + } + get ref() { + return new th(this._firestore, this._converter, this._key); + } + exists() { + return null !== this._document; + } + data() { + if (this._document) { + if (this._converter) { + const t2 = new cl( + this._firestore, + this._userDataWriter, + this._key, + this._document, + null + ); + return this._converter.fromFirestore(t2); + } + return this._userDataWriter.convertValue(this._document.data.value); + } + } + get(t2) { + if (this._document) { + const e = this._document.data.field(al("DocumentSnapshot.get", t2)); + if (null !== e) + return this._userDataWriter.convertValue(e); + } + } +} +class cl extends ul { + data() { + return super.data(); + } +} +function al(t2, e) { + return "string" == typeof e ? il(t2, e) : e instanceof Ch ? e._internalPath : e._delegate._internalPath; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function hl(t2) { + if ("L" === t2.limitType && 0 === t2.explicitOrderBy.length) + throw new L(B.UNIMPLEMENTED, "limitToLast() queries require specifying at least one orderBy() clause"); +} +class ll { +} +class fl extends ll { +} +function dl(t2, e, ...n) { + let s = []; + e instanceof ll && s.push(e), s = s.concat(n), function(t3) { + const e2 = t3.filter((t4) => t4 instanceof ml).length, n2 = t3.filter((t4) => t4 instanceof wl).length; + if (e2 > 1 || e2 > 0 && n2 > 0) + throw new L(B.INVALID_ARGUMENT, "InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`."); + }(s); + for (const e2 of s) + t2 = e2._apply(t2); + return t2; +} +class wl extends fl { + constructor(t2, e, n) { + super(), this._field = t2, this._op = e, this._value = n, this.type = "where"; + } + static _create(t2, e, n) { + return new wl(t2, e, n); + } + _apply(t2) { + const e = this._parse(t2); + return Nl(t2._query, e), new eh(t2.firestore, t2.converter, Wn(t2._query, e)); + } + _parse(t2) { + const e = qh(t2.firestore), n = function(t3, e2, n2, s, i, r, o) { + let u; + if (i.isKeyField()) { + if ("array-contains" === r || "array-contains-any" === r) + throw new L(B.INVALID_ARGUMENT, `Invalid Query. You can't perform '${r}' queries on documentId().`); + if ("in" === r || "not-in" === r) { + xl(o, r); + const e3 = []; + for (const n3 of o) + e3.push(Cl(s, t3, n3)); + u = { + arrayValue: { + values: e3 + } + }; + } else + u = Cl(s, t3, o); + } else + "in" !== r && "not-in" !== r && "array-contains-any" !== r || xl(o, r), u = Yh( + n2, + e2, + o, + "in" === r || "not-in" === r + ); + return dn.create(i, r, u); + }(t2._query, "where", e, t2.firestore._databaseId, this._field, this._op, this._value); + return n; + } +} +class ml extends ll { + constructor(t2, e) { + super(), this.type = t2, this._queryConstraints = e; + } + static _create(t2, e) { + return new ml(t2, e); + } + _parse(t2) { + const e = this._queryConstraints.map((e2) => e2._parse(t2)).filter((t3) => t3.getFilters().length > 0); + return 1 === e.length ? e[0] : wn.create(e, this._getOperator()); + } + _apply(t2) { + const e = this._parse(t2); + return 0 === e.getFilters().length ? t2 : (function(t3, e2) { + let n = t3; + const s = e2.getFlattenedFilters(); + for (const t4 of s) + Nl(n, t4), n = Wn(n, t4); + }(t2._query, e), new eh(t2.firestore, t2.converter, Wn(t2._query, e))); + } + _getQueryConstraints() { + return this._queryConstraints; + } + _getOperator() { + return "and" === this.type ? "and" : "or"; + } +} +function Cl(t2, e, n) { + if ("string" == typeof (n = getModularInstance(n))) { + if ("" === n) + throw new L(B.INVALID_ARGUMENT, "Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string."); + if (!Qn(e) && -1 !== n.indexOf("/")) + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`); + const s = e.path.child(rt.fromString(n)); + if (!ct.isDocumentKey(s)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${s}' is not because it has an odd number of segments (${s.length}).`); + return Qe(t2, new ct(s)); + } + if (n instanceof th) + return Qe(t2, n._key); + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${Wa(n)}.`); +} +function xl(t2, e) { + if (!Array.isArray(t2) || 0 === t2.length) + throw new L(B.INVALID_ARGUMENT, `Invalid Query. A non-empty array is required for '${e.toString()}' filters.`); +} +function Nl(t2, e) { + if (e.isInequality()) { + const n2 = Gn(t2), s = e.field; + if (null !== n2 && !n2.isEqual(s)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n2.toString()}' and '${s.toString()}'`); + const i = Kn(t2); + null !== i && kl(t2, s, i); + } + const n = function(t3, e2) { + for (const n2 of t3) + for (const t4 of n2.getFlattenedFilters()) + if (e2.indexOf(t4.op) >= 0) + return t4.op; + return null; + }(t2.filters, function(t3) { + switch (t3) { + case "!=": + return ["!=", "not-in"]; + case "array-contains-any": + case "in": + return ["not-in"]; + case "not-in": + return ["array-contains-any", "in", "not-in", "!="]; + default: + return []; + } + }(e.op)); + if (null !== n) + throw n === e.op ? new L(B.INVALID_ARGUMENT, `Invalid query. You cannot use more than one '${e.op.toString()}' filter.`) : new L(B.INVALID_ARGUMENT, `Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`); +} +function kl(t2, e, n) { + if (!n.isEqual(e)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`); +} +class $l { + convertValue(t2, e = "none") { + switch (Fe(t2)) { + case 0: + return null; + case 1: + return t2.booleanValue; + case 2: + return Se(t2.integerValue || t2.doubleValue); + case 3: + return this.convertTimestamp(t2.timestampValue); + case 4: + return this.convertServerTimestamp(t2, e); + case 5: + return t2.stringValue; + case 6: + return this.convertBytes(De(t2.bytesValue)); + case 7: + return this.convertReference(t2.referenceValue); + case 8: + return this.convertGeoPoint(t2.geoPointValue); + case 9: + return this.convertArray(t2.arrayValue, e); + case 10: + return this.convertObject(t2.mapValue, e); + default: + throw O(); + } + } + convertObject(t2, e) { + const n = {}; + return _e(t2.fields, (t3, s) => { + n[t3] = this.convertValue(s, e); + }), n; + } + convertGeoPoint(t2) { + return new kh(Se(t2.latitude), Se(t2.longitude)); + } + convertArray(t2, e) { + return (t2.values || []).map((t3) => this.convertValue(t3, e)); + } + convertServerTimestamp(t2, e) { + switch (e) { + case "previous": + const n = xe(t2); + return null == n ? null : this.convertValue(n, e); + case "estimate": + return this.convertTimestamp(Ne(t2)); + default: + return null; + } + } + convertTimestamp(t2) { + const e = Ve(t2); + return new nt(e.seconds, e.nanos); + } + convertDocumentKey(t2, e) { + const n = rt.fromString(t2); + $(Xi(n)); + const s = new Oe(n.get(1), n.get(3)), i = new ct(n.popFirst(5)); + return s.isEqual(e) || x(`Document ${i} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`), i; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ml(t2, e, n) { + let s; + return s = t2 ? n && (n.merge || n.mergeFields) ? t2.toFirestore(e, n) : t2.toFirestore(e) : e, s; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Gl { + constructor(t2, e) { + this.hasPendingWrites = t2, this.fromCache = e; + } + isEqual(t2) { + return this.hasPendingWrites === t2.hasPendingWrites && this.fromCache === t2.fromCache; + } +} +class Ql extends ul { + constructor(t2, e, n, s, i, r) { + super(t2, e, n, s, r), this._firestore = t2, this._firestoreImpl = t2, this.metadata = i; + } + exists() { + return super.exists(); + } + data(t2 = {}) { + if (this._document) { + if (this._converter) { + const e = new zl( + this._firestore, + this._userDataWriter, + this._key, + this._document, + this.metadata, + null + ); + return this._converter.fromFirestore(e, t2); + } + return this._userDataWriter.convertValue(this._document.data.value, t2.serverTimestamps); + } + } + get(t2, e = {}) { + if (this._document) { + const n = this._document.data.field(al("DocumentSnapshot.get", t2)); + if (null !== n) + return this._userDataWriter.convertValue(n, e.serverTimestamps); + } + } +} +class zl extends Ql { + data(t2 = {}) { + return super.data(t2); + } +} +class jl { + constructor(t2, e, n, s) { + this._firestore = t2, this._userDataWriter = e, this._snapshot = s, this.metadata = new Gl(s.hasPendingWrites, s.fromCache), this.query = n; + } + get docs() { + const t2 = []; + return this.forEach((e) => t2.push(e)), t2; + } + get size() { + return this._snapshot.docs.size; + } + get empty() { + return 0 === this.size; + } + forEach(t2, e) { + this._snapshot.docs.forEach((n) => { + t2.call(e, new zl(this._firestore, this._userDataWriter, n.key, n, new Gl(this._snapshot.mutatedKeys.has(n.key), this._snapshot.fromCache), this.query.converter)); + }); + } + docChanges(t2 = {}) { + const e = !!t2.includeMetadataChanges; + if (e && this._snapshot.excludesMetadataChanges) + throw new L(B.INVALID_ARGUMENT, "To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot()."); + return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === e || (this._cachedChanges = function(t3, e2) { + if (t3._snapshot.oldDocs.isEmpty()) { + let e3 = 0; + return t3._snapshot.docChanges.map((n) => { + const s = new zl(t3._firestore, t3._userDataWriter, n.doc.key, n.doc, new Gl(t3._snapshot.mutatedKeys.has(n.doc.key), t3._snapshot.fromCache), t3.query.converter); + return n.doc, { + type: "added", + doc: s, + oldIndex: -1, + newIndex: e3++ + }; + }); + } + { + let n = t3._snapshot.oldDocs; + return t3._snapshot.docChanges.filter((t4) => e2 || 3 !== t4.type).map((e3) => { + const s = new zl(t3._firestore, t3._userDataWriter, e3.doc.key, e3.doc, new Gl(t3._snapshot.mutatedKeys.has(e3.doc.key), t3._snapshot.fromCache), t3.query.converter); + let i = -1, r = -1; + return 0 !== e3.type && (i = n.indexOf(e3.doc.key), n = n.delete(e3.doc.key)), 1 !== e3.type && (n = n.add(e3.doc), r = n.indexOf(e3.doc.key)), { + type: Wl(e3.type), + doc: s, + oldIndex: i, + newIndex: r + }; + }); + } + }(this, e), this._cachedChangesIncludeMetadataChanges = e), this._cachedChanges; + } +} +function Wl(t2) { + switch (t2) { + case 0: + return "added"; + case 2: + case 3: + return "modified"; + case 1: + return "removed"; + default: + return O(); + } +} +class Yl extends $l { + constructor(t2) { + super(), this.firestore = t2; + } + convertBytes(t2) { + return new Dh(t2); + } + convertReference(t2) { + const e = this.convertDocumentKey(t2, this.firestore._databaseId); + return new th(this.firestore, null, e); + } +} +function rf(t2, e, n, ...s) { + t2 = Ha(t2, th); + const i = Ha(t2.firestore, fh), r = qh(i); + let o; + o = "string" == typeof (e = getModularInstance(e)) || e instanceof Ch ? Jh(r, "updateDoc", t2._key, e, n, s) : Hh(r, "updateDoc", t2._key, e); + return hf(i, [o.toMutation(t2._key, Os.exists(true))]); +} +function of(t2) { + return hf(Ha(t2.firestore, fh), [new Ws(t2._key, Os.none())]); +} +function uf(t2, e) { + const n = Ha(t2.firestore, fh), s = rh(t2), i = Ml(t2.converter, e); + return hf(n, [Uh(qh(t2.firestore), "addDoc", s._key, i, null !== t2.converter, {}).toMutation(s._key, Os.exists(false))]).then(() => s); +} +function cf(t2, ...e) { + var n, s, i; + t2 = getModularInstance(t2); + let r = { + includeMetadataChanges: false + }, o = 0; + "object" != typeof e[o] || ah(e[o]) || (r = e[o], o++); + const u = { + includeMetadataChanges: r.includeMetadataChanges + }; + if (ah(e[o])) { + const t3 = e[o]; + e[o] = null === (n = t3.next) || void 0 === n ? void 0 : n.bind(t3), e[o + 1] = null === (s = t3.error) || void 0 === s ? void 0 : s.bind(t3), e[o + 2] = null === (i = t3.complete) || void 0 === i ? void 0 : i.bind(t3); + } + let c, a, h; + if (t2 instanceof th) + a = Ha(t2.firestore, fh), h = qn(t2._key.path), c = { + next: (n2) => { + e[o] && e[o](lf(a, t2, n2)); + }, + error: e[o + 1], + complete: e[o + 2] + }; + else { + const n2 = Ha(t2, eh); + a = Ha(n2.firestore, fh), h = n2._query; + const s2 = new Yl(a); + c = { + next: (t3) => { + e[o] && e[o](new jl(a, s2, n2, t3)); + }, + error: e[o + 1], + complete: e[o + 2] + }, hl(t2._query); + } + return function(t3, e2, n2, s2) { + const i2 = new ga(s2), r2 = new Ac(e2, i2, n2); + return t3.asyncQueue.enqueueAndForget(async () => yc(await xa(t3), r2)), () => { + i2.yc(), t3.asyncQueue.enqueueAndForget(async () => pc(await xa(t3), r2)); + }; + }(_h(a), h, u, c); +} +function hf(t2, e) { + return function(t3, e2) { + const n = new q(); + return t3.asyncQueue.enqueueAndForget(async () => Mc(await Da(t3), e2, n)), n.promise; + }(_h(t2), e); +} +function lf(t2, e, n) { + const s = n.docs.get(e._key), i = new Yl(t2); + return new Ql(t2, i, e._key, s, new Gl(n.hasPendingWrites, n.fromCache), e.converter); +} +function Sf(...t2) { + return new zh("arrayUnion", t2); +} +function Df(...t2) { + return new jh("arrayRemove", t2); +} +!function(t2, e = true) { + !function(t3) { + P = t3; + }(SDK_VERSION), _registerComponent(new Component("firestore", (t3, { instanceIdentifier: n, options: s }) => { + const i = t3.getProvider("app").getImmediate(), r = new fh(new Q(t3.getProvider("auth-internal")), new H(t3.getProvider("app-check-internal")), function(t4, e2) { + if (!Object.prototype.hasOwnProperty.apply(t4.options, ["projectId"])) + throw new L(B.INVALID_ARGUMENT, '"projectId" not provided in firebase.initializeApp.'); + return new Oe(t4.options.projectId, e2); + }(i, n), i); + return s = Object.assign({ + useFetchStreams: e + }, s), r._setSettings(s), r; + }, "PUBLIC").setMultipleInstances(true)), registerVersion(v, "3.10.0", t2), registerVersion(v, "3.10.0", "esm2017"); +}(); +var name = "firebase"; +var version = "9.19.1"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +registerVersion(name, version, "app"); +const firebaseConfig = { + apiKey: "AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg", + authDomain: "social-network-dev-005.firebaseapp.com", + projectId: "social-network-dev-005", + storageBucket: "social-network-dev-005.appspot.com", + messagingSenderId: "974878862098", + appId: "1:974878862098:web:3992591ee2ebb888c6e1cb" +}; +const app = initializeApp(firebaseConfig); +const auth = getAuth(app); +const db = wh(app); +const ref = () => dl(sh(db, "posts")); +const colPost = sh(db, "posts"); +const post = (postText) => { + uf(colPost, { + text: postText, + userEmail: auth.currentUser.email, + likes: [] + }); +}; +const editPost = (id2, text) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + text + }); +}; +const deleteDocData = (id2) => { + of(rh(db, "posts", `${id2}`)); +}; +const like = (id2, email) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + likes: Sf(email) + }); +}; +const disLike = (id2, email) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + likes: Df(email) + }); +}; +const Logoo = "/assets/Logo.528a4c8f.png"; +function home(navigateTo2) { + const postForm = document.createElement("section"); + postForm.classList.add("home"); + postForm.innerHTML = ` + +
+ + +
+ `; + const salir = postForm.querySelector(".goOut"); + salir.addEventListener("click", () => { + signOut(auth).then(() => { + navigateTo2("/"); + }).catch(() => { + }); + }); + const buttonPost = postForm.querySelector(".post"); + buttonPost.addEventListener("click", (e) => { + e.preventDefault(); + const textarea = postForm.querySelector(".areaPost"); + const postText = textarea.value; + if (postText.trim() !== "") { + post(postText); + } else { + alert("Ingrese post"); + } + textarea.value = ""; + }); + const printPost = (info, doc) => { + const postContainer = document.createElement("div"); + postContainer.classList.add("divPost"); + const name2 = document.createElement("h6"); + name2.classList.add("userName"); + postContainer.appendChild(name2); + name2.innerHTML = `${info.userEmail}`; + const textarea = document.createElement("textarea"); + textarea.classList.add("showPost"); + textarea.value = info.text; + postContainer.setAttribute("data-id", doc.id); + textarea.setAttribute("readonly", true); + postContainer.appendChild(textarea); + const buttonsContainer = document.createElement("div"); + buttonsContainer.classList.add("buttonsPost"); + const editButton = document.createElement("button"); + editButton.classList.add("edit"); + editButton.textContent = "Editar"; + editButton.addEventListener("click", () => { + if (editButton.textContent === "Editar") { + editButton.textContent = "Guardar"; + textarea.removeAttribute("readonly"); + } else if (editButton.textContent === "Guardar") { + const editedTextarea = postContainer.querySelector("textarea").value; + editPost(doc.id, editedTextarea); + editButton.textContent = "Editar"; + textarea.setAttribute("readonly", true); + } + }); + if (auth.currentUser.email === info.userEmail) { + buttonsContainer.appendChild(editButton); + } + const deleteButton = document.createElement("button"); + deleteButton.classList.add("delete-btn"); + deleteButton.textContent = "Eliminar"; + deleteButton.addEventListener("click", () => { + const confirmDelete = confirm("\xBFEst\xE1s seguro que deseas eliminar este post?"); + if (confirmDelete) { + deleteDocData(doc.id); + deleteButton.value = doc.id; + deleteButton.closest(".divPost").remove(); + } + }); + if (auth.currentUser.email === info.userEmail) { + buttonsContainer.appendChild(deleteButton); + } + const likeButton = document.createElement("button"); + likeButton.classList.add("like-btn"); + likeButton.addEventListener("click", () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + buttonsContainer.appendChild(likeButton); + postContainer.appendChild(buttonsContainer); + postForm.appendChild(postContainer); + return postForm; + }; + cf(ref(), (querySnapshot) => { + querySnapshot.forEach((doc) => { + const postInfo = doc.data(); + const postExists = postForm.querySelector(`div[data-id="${doc.id}"]`); + if (postExists) { + const textarea = document.querySelector(".showPost"); + textarea.removeAttribute("readonly"); + } else { + const nodoP = printPost(postInfo, doc); + nodoP.setAttribute("data-id", doc.id); + } + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector(".like-btn"); + buttonLike.innerHTML = ` ${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener("click", () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } + }); + }); + localStorage.getItem("userId"); + return postForm; +} +const provider = new GoogleAuthProvider(); +const loginWithGoogle = () => signInWithPopup(auth, provider); +const createUser = (email, password) => createUserWithEmailAndPassword(auth, email, password); +const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); +function init(navigateTo2) { + const section = document.createElement("section"); + section.classList.add("init"); + section.innerHTML = ` + + + + + + `; + const logIn = section.querySelector(".logIn"); + logIn.addEventListener("click", () => { + navigateTo2("/login"); + }); + const register = section.querySelector(".register"); + register.addEventListener("click", () => { + navigateTo2("/register"); + }); + const google = section.querySelector(".google"); + google.addEventListener("click", () => { + loginWithGoogle().then(() => { + navigateTo2("/emprende"); + }).catch(() => { + }); + }); + return section; +} +function login(navigateTo2) { + const sectionLogin = document.createElement("section"); + sectionLogin.classList.add("sectionLogin"); + sectionLogin.innerHTML = ` + +
+

Inicio de Sesi\xF3n

+ + + + + + +
+ + + `; + const checkIn = sectionLogin.querySelector(".bottomTextLogin"); + checkIn.addEventListener("click", () => { + navigateTo2("/register"); + }); + const formLogin = sectionLogin.querySelector(".formInteraction"); + formLogin.addEventListener("submit", (e) => { + e.preventDefault(); + const email = sectionLogin.querySelector(".inputEmail").value; + const password = sectionLogin.querySelector(".inputPassword").value; + signIn(email, password).then(() => { + navigateTo2("/emprende"); + }).catch((err) => { + sectionLogin.querySelector(".note1").innerHTML = `${err.message}`; + }); + }); + return sectionLogin; +} +function create(navigateTo2) { + const sectionCreate = document.createElement("div"); + sectionCreate.classList.add("creat"); + sectionCreate.innerHTML = ` + +
+

Crear cuenta

+ + + + + + +
+ + + `; + const logIn = sectionCreate.querySelector(".bottomText"); + logIn.addEventListener("click", () => { + navigateTo2("/login"); + }); + const form = sectionCreate.querySelector(".formCreateAccount"); + form.addEventListener("submit", (e) => { + e.preventDefault(); + const email = sectionCreate.querySelector(".card1").value; + const password = sectionCreate.querySelector(".card2").value; + createUser(email, password).then(() => { + navigateTo2("/emprende"); + }).catch((err) => { + sectionCreate.querySelector(".alerta").innerHTML = `${err.message}`; + }); + }); + return sectionCreate; +} +const root = document.getElementById("root"); +root.append(init()); +const routes = [ + { path: "/", component: init }, + { path: "/login", component: login }, + { path: "/register", component: create }, + { path: "/error", component: mistake }, + { path: "/emprende", component: home } +]; +function navigateTo(hash) { + const route = routes.find((routeFind) => routeFind.path === hash); + if (route && route.component) { + window.history.pushState({}, route.path, window.location.origin + route.path); + if (root.firstChild) { + root.removeChild(root.firstChild); + } + root.append(route.component(navigateTo)); + } else { + navigateTo("/error"); + } +} +onAuthStateChanged(auth, (user) => { + if (user) { + navigateTo("/emprende"); + } else if (window.location.pathname === "/emprende" && user === null) { + navigateTo(); + } else { + navigateTo(window.location.pathname); + } +}); diff --git a/dist/assets/index.b9154af1.js b/dist/assets/index.b9154af1.js new file mode 100644 index 00000000..a10ff9a3 --- /dev/null +++ b/dist/assets/index.b9154af1.js @@ -0,0 +1,17990 @@ +(function polyfill() { + const relList = document.createElement("link").relList; + if (relList && relList.supports && relList.supports("modulepreload")) { + return; + } + for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { + processPreload(link); + } + new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node of mutation.addedNodes) { + if (node.tagName === "LINK" && node.rel === "modulepreload") + processPreload(node); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(script) { + const fetchOpts = {}; + if (script.integrity) + fetchOpts.integrity = script.integrity; + if (script.referrerpolicy) + fetchOpts.referrerPolicy = script.referrerpolicy; + if (script.crossorigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (script.crossorigin === "anonymous") + fetchOpts.credentials = "omit"; + else + fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + function processPreload(link) { + if (link.ep) + return; + link.ep = true; + const fetchOpts = getFetchOpts(link); + fetch(link.href, fetchOpts); + } +})(); +const style = ""; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const stringToByteArray$1 = function(str) { + const out = []; + let p2 = 0; + for (let i = 0; i < str.length; i++) { + let c = str.charCodeAt(i); + if (c < 128) { + out[p2++] = c; + } else if (c < 2048) { + out[p2++] = c >> 6 | 192; + out[p2++] = c & 63 | 128; + } else if ((c & 64512) === 55296 && i + 1 < str.length && (str.charCodeAt(i + 1) & 64512) === 56320) { + c = 65536 + ((c & 1023) << 10) + (str.charCodeAt(++i) & 1023); + out[p2++] = c >> 18 | 240; + out[p2++] = c >> 12 & 63 | 128; + out[p2++] = c >> 6 & 63 | 128; + out[p2++] = c & 63 | 128; + } else { + out[p2++] = c >> 12 | 224; + out[p2++] = c >> 6 & 63 | 128; + out[p2++] = c & 63 | 128; + } + } + return out; +}; +const byteArrayToString = function(bytes) { + const out = []; + let pos = 0, c = 0; + while (pos < bytes.length) { + const c1 = bytes[pos++]; + if (c1 < 128) { + out[c++] = String.fromCharCode(c1); + } else if (c1 > 191 && c1 < 224) { + const c2 = bytes[pos++]; + out[c++] = String.fromCharCode((c1 & 31) << 6 | c2 & 63); + } else if (c1 > 239 && c1 < 365) { + const c2 = bytes[pos++]; + const c3 = bytes[pos++]; + const c4 = bytes[pos++]; + const u = ((c1 & 7) << 18 | (c2 & 63) << 12 | (c3 & 63) << 6 | c4 & 63) - 65536; + out[c++] = String.fromCharCode(55296 + (u >> 10)); + out[c++] = String.fromCharCode(56320 + (u & 1023)); + } else { + const c2 = bytes[pos++]; + const c3 = bytes[pos++]; + out[c++] = String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63); + } + } + return out.join(""); +}; +const base64 = { + 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: typeof atob === "function", + encodeByteArray(input, webSafe) { + if (!Array.isArray(input)) { + throw Error("encodeByteArray takes an array as a parameter"); + } + this.init_(); + const byteToCharMap = webSafe ? this.byteToCharMapWebSafe_ : this.byteToCharMap_; + const output = []; + for (let i = 0; i < input.length; i += 3) { + const byte1 = input[i]; + const haveByte2 = i + 1 < input.length; + const byte2 = haveByte2 ? input[i + 1] : 0; + const haveByte3 = i + 2 < input.length; + const byte3 = haveByte3 ? input[i + 2] : 0; + const outByte1 = byte1 >> 2; + const outByte2 = (byte1 & 3) << 4 | byte2 >> 4; + let outByte3 = (byte2 & 15) << 2 | byte3 >> 6; + let outByte4 = byte3 & 63; + if (!haveByte3) { + outByte4 = 64; + if (!haveByte2) { + outByte3 = 64; + } + } + output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]); + } + return output.join(""); + }, + encodeString(input, webSafe) { + if (this.HAS_NATIVE_SUPPORT && !webSafe) { + return btoa(input); + } + return this.encodeByteArray(stringToByteArray$1(input), webSafe); + }, + decodeString(input, webSafe) { + if (this.HAS_NATIVE_SUPPORT && !webSafe) { + return atob(input); + } + return byteArrayToString(this.decodeStringToByteArray(input, webSafe)); + }, + decodeStringToByteArray(input, webSafe) { + this.init_(); + const charToByteMap = webSafe ? this.charToByteMapWebSafe_ : this.charToByteMap_; + const output = []; + for (let i = 0; i < input.length; ) { + const byte1 = charToByteMap[input.charAt(i++)]; + const haveByte2 = i < input.length; + const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0; + ++i; + const haveByte3 = i < input.length; + const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64; + ++i; + const haveByte4 = i < input.length; + const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64; + ++i; + if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) { + throw new DecodeBase64StringError(); + } + const outByte1 = byte1 << 2 | byte2 >> 4; + output.push(outByte1); + if (byte3 !== 64) { + const outByte2 = byte2 << 4 & 240 | byte3 >> 2; + output.push(outByte2); + if (byte4 !== 64) { + const outByte3 = byte3 << 6 & 192 | byte4; + output.push(outByte3); + } + } + } + return output; + }, + init_() { + if (!this.byteToCharMap_) { + this.byteToCharMap_ = {}; + this.charToByteMap_ = {}; + this.byteToCharMapWebSafe_ = {}; + this.charToByteMapWebSafe_ = {}; + for (let i = 0; i < this.ENCODED_VALS.length; i++) { + this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i); + this.charToByteMap_[this.byteToCharMap_[i]] = i; + this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i); + this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i; + if (i >= this.ENCODED_VALS_BASE.length) { + this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i; + this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i; + } + } + } + } +}; +class DecodeBase64StringError extends Error { + constructor() { + super(...arguments); + this.name = "DecodeBase64StringError"; + } +} +const base64Encode = function(str) { + const utf8Bytes = stringToByteArray$1(str); + return base64.encodeByteArray(utf8Bytes, true); +}; +const base64urlEncodeWithoutPadding = function(str) { + return base64Encode(str).replace(/\./g, ""); +}; +const base64Decode = function(str) { + try { + return base64.decodeString(str, true); + } catch (e) { + console.error("base64Decode failed: ", e); + } + return null; +}; +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getGlobal() { + if (typeof self !== "undefined") { + return self; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof global !== "undefined") { + return global; + } + throw new Error("Unable to locate global object."); +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__; +const getDefaultsFromEnvVariable = () => { + if (typeof process === "undefined" || typeof process.env === "undefined") { + return; + } + const defaultsJsonString = {}.__FIREBASE_DEFAULTS__; + if (defaultsJsonString) { + return JSON.parse(defaultsJsonString); + } +}; +const getDefaultsFromCookie = () => { + if (typeof document === "undefined") { + return; + } + let match; + try { + match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/); + } catch (e) { + return; + } + const decoded = match && base64Decode(match[1]); + return decoded && JSON.parse(decoded); +}; +const getDefaults = () => { + try { + return getDefaultsFromGlobal() || getDefaultsFromEnvVariable() || getDefaultsFromCookie(); + } catch (e) { + console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`); + return; + } +}; +const getDefaultEmulatorHost = (productName) => { + var _a2, _b; + return (_b = (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; +}; +const getDefaultEmulatorHostnameAndPort = (productName) => { + const host = getDefaultEmulatorHost(productName); + if (!host) { + return void 0; + } + const separatorIndex = host.lastIndexOf(":"); + if (separatorIndex <= 0 || separatorIndex + 1 === host.length) { + throw new Error(`Invalid host ${host} with no separate hostname and port!`); + } + const port = parseInt(host.substring(separatorIndex + 1), 10); + if (host[0] === "[") { + return [host.substring(1, separatorIndex - 1), port]; + } else { + return [host.substring(0, separatorIndex), port]; + } +}; +const getDefaultAppConfig = () => { + var _a2; + return (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2.config; +}; +const getExperimentalSetting = (name2) => { + var _a2; + return (_a2 = getDefaults()) === null || _a2 === void 0 ? void 0 : _a2[`_${name2}`]; +}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Deferred { + constructor() { + this.reject = () => { + }; + this.resolve = () => { + }; + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; + }); + } + wrapCallback(callback) { + return (error, value) => { + if (error) { + this.reject(error); + } else { + this.resolve(value); + } + if (typeof callback === "function") { + this.promise.catch(() => { + }); + if (callback.length === 1) { + callback(error); + } else { + callback(error, value); + } + } + }; + } +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createMockUserToken(token, projectId) { + if (token.uid) { + throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.'); + } + const header = { + alg: "none", + type: "JWT" + }; + const project = projectId || "demo-project"; + const iat = token.iat || 0; + const sub = token.sub || token.user_id; + if (!sub) { + throw new Error("mockUserToken must contain 'sub' or 'user_id' field!"); + } + const payload = Object.assign({ + iss: `https://securetoken.google.com/${project}`, + aud: project, + iat, + exp: iat + 3600, + auth_time: iat, + sub, + user_id: sub, + firebase: { + sign_in_provider: "custom", + identities: {} + } + }, token); + const signature = ""; + return [ + base64urlEncodeWithoutPadding(JSON.stringify(header)), + base64urlEncodeWithoutPadding(JSON.stringify(payload)), + signature + ].join("."); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getUA() { + if (typeof navigator !== "undefined" && typeof navigator["userAgent"] === "string") { + return navigator["userAgent"]; + } else { + return ""; + } +} +function isMobileCordova() { + return typeof window !== "undefined" && !!(window["cordova"] || window["phonegap"] || window["PhoneGap"]) && /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()); +} +function isBrowserExtension() { + const runtime = typeof chrome === "object" ? chrome.runtime : typeof browser === "object" ? browser.runtime : void 0; + return typeof runtime === "object" && runtime.id !== void 0; +} +function isReactNative() { + return typeof navigator === "object" && navigator["product"] === "ReactNative"; +} +function isIE() { + const ua2 = getUA(); + return ua2.indexOf("MSIE ") >= 0 || ua2.indexOf("Trident/") >= 0; +} +function isIndexedDBAvailable() { + try { + return typeof indexedDB === "object"; + } catch (e) { + return false; + } +} +function validateIndexedDBOpenable() { + return new Promise((resolve, reject) => { + try { + let preExist = true; + const DB_CHECK_NAME = "validate-browser-context-for-indexeddb-analytics-module"; + const request = self.indexedDB.open(DB_CHECK_NAME); + request.onsuccess = () => { + request.result.close(); + if (!preExist) { + self.indexedDB.deleteDatabase(DB_CHECK_NAME); + } + resolve(true); + }; + request.onupgradeneeded = () => { + preExist = false; + }; + request.onerror = () => { + var _a2; + reject(((_a2 = request.error) === null || _a2 === void 0 ? void 0 : _a2.message) || ""); + }; + } catch (error) { + reject(error); + } + }); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const ERROR_NAME = "FirebaseError"; +class FirebaseError extends Error { + constructor(code, message, customData) { + super(message); + this.code = code; + this.customData = customData; + this.name = ERROR_NAME; + Object.setPrototypeOf(this, FirebaseError.prototype); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, ErrorFactory.prototype.create); + } + } +} +class ErrorFactory { + constructor(service, serviceName, errors) { + this.service = service; + this.serviceName = serviceName; + this.errors = errors; + } + create(code, ...data) { + const customData = data[0] || {}; + const fullCode = `${this.service}/${code}`; + const template = this.errors[code]; + const message = template ? replaceTemplate(template, customData) : "Error"; + const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`; + const error = new FirebaseError(fullCode, fullMessage, customData); + return error; + } +} +function replaceTemplate(template, data) { + return template.replace(PATTERN, (_, key) => { + const value = data[key]; + return value != null ? String(value) : `<${key}?>`; + }); +} +const PATTERN = /\{\$([^}]+)}/g; +function isEmpty(obj) { + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + return false; + } + } + return true; +} +function deepEqual(a, b2) { + if (a === b2) { + return true; + } + const aKeys = Object.keys(a); + const bKeys = Object.keys(b2); + for (const k2 of aKeys) { + if (!bKeys.includes(k2)) { + return false; + } + const aProp = a[k2]; + const bProp = b2[k2]; + if (isObject(aProp) && isObject(bProp)) { + if (!deepEqual(aProp, bProp)) { + return false; + } + } else if (aProp !== bProp) { + return false; + } + } + for (const k2 of bKeys) { + if (!aKeys.includes(k2)) { + return false; + } + } + return true; +} +function isObject(thing) { + return thing !== null && typeof thing === "object"; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function querystring(querystringParams) { + const params = []; + for (const [key, value] of Object.entries(querystringParams)) { + if (Array.isArray(value)) { + value.forEach((arrayVal) => { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(arrayVal)); + }); + } else { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + } + } + return params.length ? "&" + params.join("&") : ""; +} +function querystringDecode(querystring2) { + const obj = {}; + const tokens = querystring2.replace(/^\?/, "").split("&"); + tokens.forEach((token) => { + if (token) { + const [key, value] = token.split("="); + obj[decodeURIComponent(key)] = decodeURIComponent(value); + } + }); + return obj; +} +function extractQuerystring(url) { + const queryStart = url.indexOf("?"); + if (!queryStart) { + return ""; + } + const fragmentStart = url.indexOf("#", queryStart); + return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : void 0); +} +function createSubscribe(executor, onNoObservers) { + const proxy = new ObserverProxy(executor, onNoObservers); + return proxy.subscribe.bind(proxy); +} +class ObserverProxy { + constructor(executor, onNoObservers) { + this.observers = []; + this.unsubscribes = []; + this.observerCount = 0; + this.task = Promise.resolve(); + this.finalized = false; + this.onNoObservers = onNoObservers; + this.task.then(() => { + executor(this); + }).catch((e) => { + this.error(e); + }); + } + next(value) { + this.forEachObserver((observer) => { + observer.next(value); + }); + } + error(error) { + this.forEachObserver((observer) => { + observer.error(error); + }); + this.close(error); + } + complete() { + this.forEachObserver((observer) => { + observer.complete(); + }); + this.close(); + } + subscribe(nextOrObserver, error, complete) { + let observer; + if (nextOrObserver === void 0 && error === void 0 && complete === void 0) { + throw new Error("Missing Observer."); + } + if (implementsAnyMethods(nextOrObserver, [ + "next", + "error", + "complete" + ])) { + observer = nextOrObserver; + } else { + observer = { + next: nextOrObserver, + error, + complete + }; + } + if (observer.next === void 0) { + observer.next = noop; + } + if (observer.error === void 0) { + observer.error = noop; + } + if (observer.complete === void 0) { + observer.complete = noop; + } + const unsub = this.unsubscribeOne.bind(this, this.observers.length); + if (this.finalized) { + this.task.then(() => { + try { + if (this.finalError) { + observer.error(this.finalError); + } else { + observer.complete(); + } + } catch (e) { + } + return; + }); + } + this.observers.push(observer); + return unsub; + } + unsubscribeOne(i) { + if (this.observers === void 0 || this.observers[i] === void 0) { + return; + } + delete this.observers[i]; + this.observerCount -= 1; + if (this.observerCount === 0 && this.onNoObservers !== void 0) { + this.onNoObservers(this); + } + } + forEachObserver(fn2) { + if (this.finalized) { + return; + } + for (let i = 0; i < this.observers.length; i++) { + this.sendOne(i, fn2); + } + } + sendOne(i, fn2) { + this.task.then(() => { + if (this.observers !== void 0 && this.observers[i] !== void 0) { + try { + fn2(this.observers[i]); + } catch (e) { + if (typeof console !== "undefined" && console.error) { + console.error(e); + } + } + } + }); + } + close(err) { + if (this.finalized) { + return; + } + this.finalized = true; + if (err !== void 0) { + this.finalError = err; + } + this.task.then(() => { + this.observers = void 0; + this.onNoObservers = void 0; + }); + } +} +function implementsAnyMethods(obj, methods) { + if (typeof obj !== "object" || obj === null) { + return false; + } + for (const method of methods) { + if (method in obj && typeof obj[method] === "function") { + return true; + } + } + return false; +} +function noop() { +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getModularInstance(service) { + if (service && service._delegate) { + return service._delegate; + } else { + return service; + } +} +class Component { + constructor(name2, instanceFactory, type) { + this.name = name2; + this.instanceFactory = instanceFactory; + this.type = type; + this.multipleInstances = false; + this.serviceProps = {}; + this.instantiationMode = "LAZY"; + this.onInstanceCreated = null; + } + setInstantiationMode(mode) { + this.instantiationMode = mode; + return this; + } + setMultipleInstances(multipleInstances) { + this.multipleInstances = multipleInstances; + return this; + } + setServiceProps(props) { + this.serviceProps = props; + return this; + } + setInstanceCreatedCallback(callback) { + this.onInstanceCreated = callback; + return this; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ENTRY_NAME$1 = "[DEFAULT]"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Provider { + constructor(name2, container) { + this.name = name2; + this.container = container; + this.component = null; + this.instances = /* @__PURE__ */ new Map(); + this.instancesDeferred = /* @__PURE__ */ new Map(); + this.instancesOptions = /* @__PURE__ */ new Map(); + this.onInitCallbacks = /* @__PURE__ */ new Map(); + } + get(identifier) { + const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier); + if (!this.instancesDeferred.has(normalizedIdentifier)) { + const deferred = new Deferred(); + this.instancesDeferred.set(normalizedIdentifier, deferred); + if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) { + try { + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + if (instance) { + deferred.resolve(instance); + } + } catch (e) { + } + } + } + return this.instancesDeferred.get(normalizedIdentifier).promise; + } + getImmediate(options) { + var _a2; + const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier); + const optional = (_a2 = options === null || options === void 0 ? void 0 : options.optional) !== null && _a2 !== void 0 ? _a2 : false; + if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) { + try { + return this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + } catch (e) { + if (optional) { + return null; + } else { + throw e; + } + } + } else { + if (optional) { + return null; + } else { + throw Error(`Service ${this.name} is not available`); + } + } + } + getComponent() { + return this.component; + } + setComponent(component) { + if (component.name !== this.name) { + throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`); + } + if (this.component) { + throw Error(`Component for ${this.name} has already been provided`); + } + this.component = component; + if (!this.shouldAutoInitialize()) { + return; + } + if (isComponentEager(component)) { + try { + this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME$1 }); + } catch (e) { + } + } + for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) { + const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier); + try { + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier + }); + instanceDeferred.resolve(instance); + } catch (e) { + } + } + } + clearInstance(identifier = DEFAULT_ENTRY_NAME$1) { + this.instancesDeferred.delete(identifier); + this.instancesOptions.delete(identifier); + this.instances.delete(identifier); + } + async delete() { + const services = Array.from(this.instances.values()); + await Promise.all([ + ...services.filter((service) => "INTERNAL" in service).map((service) => service.INTERNAL.delete()), + ...services.filter((service) => "_delete" in service).map((service) => service._delete()) + ]); + } + isComponentSet() { + return this.component != null; + } + isInitialized(identifier = DEFAULT_ENTRY_NAME$1) { + return this.instances.has(identifier); + } + getOptions(identifier = DEFAULT_ENTRY_NAME$1) { + return this.instancesOptions.get(identifier) || {}; + } + initialize(opts = {}) { + const { options = {} } = opts; + const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier); + if (this.isInitialized(normalizedIdentifier)) { + throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`); + } + if (!this.isComponentSet()) { + throw Error(`Component ${this.name} has not been registered yet`); + } + const instance = this.getOrInitializeService({ + instanceIdentifier: normalizedIdentifier, + options + }); + for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) { + const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier); + if (normalizedIdentifier === normalizedDeferredIdentifier) { + instanceDeferred.resolve(instance); + } + } + return instance; + } + onInit(callback, identifier) { + var _a2; + const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier); + const existingCallbacks = (_a2 = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a2 !== void 0 ? _a2 : /* @__PURE__ */ new Set(); + existingCallbacks.add(callback); + this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks); + const existingInstance = this.instances.get(normalizedIdentifier); + if (existingInstance) { + callback(existingInstance, normalizedIdentifier); + } + return () => { + existingCallbacks.delete(callback); + }; + } + invokeOnInitCallbacks(instance, identifier) { + const callbacks = this.onInitCallbacks.get(identifier); + if (!callbacks) { + return; + } + for (const callback of callbacks) { + try { + callback(instance, identifier); + } catch (_a2) { + } + } + } + getOrInitializeService({ instanceIdentifier, options = {} }) { + let instance = this.instances.get(instanceIdentifier); + if (!instance && this.component) { + instance = this.component.instanceFactory(this.container, { + instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier), + options + }); + this.instances.set(instanceIdentifier, instance); + this.instancesOptions.set(instanceIdentifier, options); + this.invokeOnInitCallbacks(instance, instanceIdentifier); + if (this.component.onInstanceCreated) { + try { + this.component.onInstanceCreated(this.container, instanceIdentifier, instance); + } catch (_a2) { + } + } + } + return instance || null; + } + normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME$1) { + if (this.component) { + return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME$1; + } else { + return identifier; + } + } + shouldAutoInitialize() { + return !!this.component && this.component.instantiationMode !== "EXPLICIT"; + } +} +function normalizeIdentifierForFactory(identifier) { + return identifier === DEFAULT_ENTRY_NAME$1 ? void 0 : identifier; +} +function isComponentEager(component) { + return component.instantiationMode === "EAGER"; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ComponentContainer { + constructor(name2) { + this.name = name2; + this.providers = /* @__PURE__ */ new Map(); + } + addComponent(component) { + const provider2 = this.getProvider(component.name); + if (provider2.isComponentSet()) { + throw new Error(`Component ${component.name} has already been registered with ${this.name}`); + } + provider2.setComponent(component); + } + addOrOverwriteComponent(component) { + const provider2 = this.getProvider(component.name); + if (provider2.isComponentSet()) { + this.providers.delete(component.name); + } + this.addComponent(component); + } + getProvider(name2) { + if (this.providers.has(name2)) { + return this.providers.get(name2); + } + const provider2 = new Provider(name2, this); + this.providers.set(name2, provider2); + return provider2; + } + getProviders() { + return Array.from(this.providers.values()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var LogLevel; +(function(LogLevel2) { + LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG"; + LogLevel2[LogLevel2["VERBOSE"] = 1] = "VERBOSE"; + LogLevel2[LogLevel2["INFO"] = 2] = "INFO"; + LogLevel2[LogLevel2["WARN"] = 3] = "WARN"; + LogLevel2[LogLevel2["ERROR"] = 4] = "ERROR"; + LogLevel2[LogLevel2["SILENT"] = 5] = "SILENT"; +})(LogLevel || (LogLevel = {})); +const levelStringToEnum = { + "debug": LogLevel.DEBUG, + "verbose": LogLevel.VERBOSE, + "info": LogLevel.INFO, + "warn": LogLevel.WARN, + "error": LogLevel.ERROR, + "silent": LogLevel.SILENT +}; +const defaultLogLevel = LogLevel.INFO; +const ConsoleMethod = { + [LogLevel.DEBUG]: "log", + [LogLevel.VERBOSE]: "log", + [LogLevel.INFO]: "info", + [LogLevel.WARN]: "warn", + [LogLevel.ERROR]: "error" +}; +const defaultLogHandler = (instance, logType, ...args) => { + if (logType < instance.logLevel) { + return; + } + const now = new Date().toISOString(); + const method = ConsoleMethod[logType]; + if (method) { + console[method](`[${now}] ${instance.name}:`, ...args); + } else { + throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`); + } +}; +class Logger { + constructor(name2) { + this.name = name2; + this._logLevel = defaultLogLevel; + this._logHandler = defaultLogHandler; + this._userLogHandler = null; + } + get logLevel() { + return this._logLevel; + } + set logLevel(val) { + if (!(val in LogLevel)) { + throw new TypeError(`Invalid value "${val}" assigned to \`logLevel\``); + } + this._logLevel = val; + } + setLogLevel(val) { + this._logLevel = typeof val === "string" ? levelStringToEnum[val] : val; + } + get logHandler() { + return this._logHandler; + } + set logHandler(val) { + if (typeof val !== "function") { + throw new TypeError("Value assigned to `logHandler` must be a function"); + } + this._logHandler = val; + } + get userLogHandler() { + return this._userLogHandler; + } + set userLogHandler(val) { + this._userLogHandler = val; + } + debug(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args); + this._logHandler(this, LogLevel.DEBUG, ...args); + } + log(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.VERBOSE, ...args); + this._logHandler(this, LogLevel.VERBOSE, ...args); + } + info(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args); + this._logHandler(this, LogLevel.INFO, ...args); + } + warn(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args); + this._logHandler(this, LogLevel.WARN, ...args); + } + error(...args) { + this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args); + this._logHandler(this, LogLevel.ERROR, ...args); + } +} +const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c); +let idbProxyableTypes; +let cursorAdvanceMethods; +function getIdbProxyableTypes() { + return idbProxyableTypes || (idbProxyableTypes = [ + IDBDatabase, + IDBObjectStore, + IDBIndex, + IDBCursor, + IDBTransaction + ]); +} +function getCursorAdvanceMethods() { + return cursorAdvanceMethods || (cursorAdvanceMethods = [ + IDBCursor.prototype.advance, + IDBCursor.prototype.continue, + IDBCursor.prototype.continuePrimaryKey + ]); +} +const cursorRequestMap = /* @__PURE__ */ new WeakMap(); +const transactionDoneMap = /* @__PURE__ */ new WeakMap(); +const transactionStoreNamesMap = /* @__PURE__ */ new WeakMap(); +const transformCache = /* @__PURE__ */ new WeakMap(); +const reverseTransformCache = /* @__PURE__ */ new WeakMap(); +function promisifyRequest(request) { + const promise = new Promise((resolve, reject) => { + const unlisten = () => { + request.removeEventListener("success", success); + request.removeEventListener("error", error); + }; + const success = () => { + resolve(wrap(request.result)); + unlisten(); + }; + const error = () => { + reject(request.error); + unlisten(); + }; + request.addEventListener("success", success); + request.addEventListener("error", error); + }); + promise.then((value) => { + if (value instanceof IDBCursor) { + cursorRequestMap.set(value, request); + } + }).catch(() => { + }); + reverseTransformCache.set(promise, request); + return promise; +} +function cacheDonePromiseForTransaction(tx) { + if (transactionDoneMap.has(tx)) + return; + const done = new Promise((resolve, reject) => { + const unlisten = () => { + tx.removeEventListener("complete", complete); + tx.removeEventListener("error", error); + tx.removeEventListener("abort", error); + }; + const complete = () => { + resolve(); + unlisten(); + }; + const error = () => { + reject(tx.error || new DOMException("AbortError", "AbortError")); + unlisten(); + }; + tx.addEventListener("complete", complete); + tx.addEventListener("error", error); + tx.addEventListener("abort", error); + }); + transactionDoneMap.set(tx, done); +} +let idbProxyTraps = { + get(target, prop, receiver) { + if (target instanceof IDBTransaction) { + if (prop === "done") + return transactionDoneMap.get(target); + if (prop === "objectStoreNames") { + return target.objectStoreNames || transactionStoreNamesMap.get(target); + } + if (prop === "store") { + return receiver.objectStoreNames[1] ? void 0 : receiver.objectStore(receiver.objectStoreNames[0]); + } + } + return wrap(target[prop]); + }, + set(target, prop, value) { + target[prop] = value; + return true; + }, + has(target, prop) { + if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) { + return true; + } + return prop in target; + } +}; +function replaceTraps(callback) { + idbProxyTraps = callback(idbProxyTraps); +} +function wrapFunction(func) { + if (func === IDBDatabase.prototype.transaction && !("objectStoreNames" in IDBTransaction.prototype)) { + return function(storeNames, ...args) { + const tx = func.call(unwrap(this), storeNames, ...args); + transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]); + return wrap(tx); + }; + } + if (getCursorAdvanceMethods().includes(func)) { + return function(...args) { + func.apply(unwrap(this), args); + return wrap(cursorRequestMap.get(this)); + }; + } + return function(...args) { + return wrap(func.apply(unwrap(this), args)); + }; +} +function transformCachableValue(value) { + if (typeof value === "function") + return wrapFunction(value); + if (value instanceof IDBTransaction) + cacheDonePromiseForTransaction(value); + if (instanceOfAny(value, getIdbProxyableTypes())) + return new Proxy(value, idbProxyTraps); + return value; +} +function wrap(value) { + if (value instanceof IDBRequest) + return promisifyRequest(value); + if (transformCache.has(value)) + return transformCache.get(value); + const newValue = transformCachableValue(value); + if (newValue !== value) { + transformCache.set(value, newValue); + reverseTransformCache.set(newValue, value); + } + return newValue; +} +const unwrap = (value) => reverseTransformCache.get(value); +function openDB(name2, version2, { blocked, upgrade, blocking, terminated } = {}) { + const request = indexedDB.open(name2, version2); + const openPromise = wrap(request); + if (upgrade) { + request.addEventListener("upgradeneeded", (event) => { + upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction)); + }); + } + if (blocked) + request.addEventListener("blocked", () => blocked()); + openPromise.then((db2) => { + if (terminated) + db2.addEventListener("close", () => terminated()); + if (blocking) + db2.addEventListener("versionchange", () => blocking()); + }).catch(() => { + }); + return openPromise; +} +const readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"]; +const writeMethods = ["put", "add", "delete", "clear"]; +const cachedMethods = /* @__PURE__ */ new Map(); +function getMethod(target, prop) { + if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) { + return; + } + if (cachedMethods.get(prop)) + return cachedMethods.get(prop); + const targetFuncName = prop.replace(/FromIndex$/, ""); + const useIndex = prop !== targetFuncName; + const isWrite = writeMethods.includes(targetFuncName); + if (!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) { + return; + } + const method = async function(storeName, ...args) { + const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly"); + let target2 = tx.store; + if (useIndex) + target2 = target2.index(args.shift()); + return (await Promise.all([ + target2[targetFuncName](...args), + isWrite && tx.done + ]))[0]; + }; + cachedMethods.set(prop, method); + return method; +} +replaceTraps((oldTraps) => ({ + ...oldTraps, + get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver), + has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop) +})); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class PlatformLoggerServiceImpl { + constructor(container) { + this.container = container; + } + getPlatformInfoString() { + const providers = this.container.getProviders(); + return providers.map((provider2) => { + if (isVersionServiceProvider(provider2)) { + const service = provider2.getImmediate(); + return `${service.library}/${service.version}`; + } else { + return null; + } + }).filter((logString) => logString).join(" "); + } +} +function isVersionServiceProvider(provider2) { + const component = provider2.getComponent(); + return (component === null || component === void 0 ? void 0 : component.type) === "VERSION"; +} +const name$o = "@firebase/app"; +const version$1$1 = "0.9.7"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const logger = new Logger("@firebase/app"); +const name$n = "@firebase/app-compat"; +const name$m = "@firebase/analytics-compat"; +const name$l = "@firebase/analytics"; +const name$k = "@firebase/app-check-compat"; +const name$j = "@firebase/app-check"; +const name$i = "@firebase/auth"; +const name$h = "@firebase/auth-compat"; +const name$g = "@firebase/database"; +const name$f = "@firebase/database-compat"; +const name$e = "@firebase/functions"; +const name$d = "@firebase/functions-compat"; +const name$c = "@firebase/installations"; +const name$b = "@firebase/installations-compat"; +const name$a = "@firebase/messaging"; +const name$9 = "@firebase/messaging-compat"; +const name$8 = "@firebase/performance"; +const name$7 = "@firebase/performance-compat"; +const name$6 = "@firebase/remote-config"; +const name$5 = "@firebase/remote-config-compat"; +const name$4 = "@firebase/storage"; +const name$3 = "@firebase/storage-compat"; +const name$2 = "@firebase/firestore"; +const name$1$1 = "@firebase/firestore-compat"; +const name$p = "firebase"; +const version$2 = "9.19.1"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ENTRY_NAME = "[DEFAULT]"; +const PLATFORM_LOG_STRING = { + [name$o]: "fire-core", + [name$n]: "fire-core-compat", + [name$l]: "fire-analytics", + [name$m]: "fire-analytics-compat", + [name$j]: "fire-app-check", + [name$k]: "fire-app-check-compat", + [name$i]: "fire-auth", + [name$h]: "fire-auth-compat", + [name$g]: "fire-rtdb", + [name$f]: "fire-rtdb-compat", + [name$e]: "fire-fn", + [name$d]: "fire-fn-compat", + [name$c]: "fire-iid", + [name$b]: "fire-iid-compat", + [name$a]: "fire-fcm", + [name$9]: "fire-fcm-compat", + [name$8]: "fire-perf", + [name$7]: "fire-perf-compat", + [name$6]: "fire-rc", + [name$5]: "fire-rc-compat", + [name$4]: "fire-gcs", + [name$3]: "fire-gcs-compat", + [name$2]: "fire-fst", + [name$1$1]: "fire-fst-compat", + "fire-js": "fire-js", + [name$p]: "fire-js-all" +}; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _apps = /* @__PURE__ */ new Map(); +const _components = /* @__PURE__ */ new Map(); +function _addComponent(app2, component) { + try { + app2.container.addComponent(component); + } catch (e) { + logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app2.name}`, e); + } +} +function _registerComponent(component) { + const componentName = component.name; + if (_components.has(componentName)) { + logger.debug(`There were multiple attempts to register component ${componentName}.`); + return false; + } + _components.set(componentName, component); + for (const app2 of _apps.values()) { + _addComponent(app2, component); + } + return true; +} +function _getProvider(app2, name2) { + const heartbeatController = app2.container.getProvider("heartbeat").getImmediate({ optional: true }); + if (heartbeatController) { + void heartbeatController.triggerHeartbeat(); + } + return app2.container.getProvider(name2); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const ERRORS = { + ["no-app"]: "No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()", + ["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", + ["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}." +}; +const ERROR_FACTORY = new ErrorFactory("app", "Firebase", ERRORS); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FirebaseAppImpl { + constructor(options, config, container) { + this._isDeleted = false; + this._options = Object.assign({}, options); + this._config = Object.assign({}, config); + this._name = config.name; + this._automaticDataCollectionEnabled = config.automaticDataCollectionEnabled; + this._container = container; + this.container.addComponent(new Component("app", () => this, "PUBLIC")); + } + get automaticDataCollectionEnabled() { + this.checkDestroyed(); + return this._automaticDataCollectionEnabled; + } + set automaticDataCollectionEnabled(val) { + this.checkDestroyed(); + this._automaticDataCollectionEnabled = val; + } + get name() { + this.checkDestroyed(); + return this._name; + } + get options() { + this.checkDestroyed(); + return this._options; + } + get config() { + this.checkDestroyed(); + return this._config; + } + get container() { + return this._container; + } + get isDeleted() { + return this._isDeleted; + } + set isDeleted(val) { + this._isDeleted = val; + } + checkDestroyed() { + if (this.isDeleted) { + throw ERROR_FACTORY.create("app-deleted", { appName: this._name }); + } + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const SDK_VERSION = version$2; +function initializeApp(_options, rawConfig = {}) { + let options = _options; + if (typeof rawConfig !== "object") { + const name3 = rawConfig; + rawConfig = { name: name3 }; + } + const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig); + const name2 = config.name; + if (typeof name2 !== "string" || !name2) { + throw ERROR_FACTORY.create("bad-app-name", { + appName: String(name2) + }); + } + options || (options = getDefaultAppConfig()); + if (!options) { + throw ERROR_FACTORY.create("no-options"); + } + const existingApp = _apps.get(name2); + if (existingApp) { + if (deepEqual(options, existingApp.options) && deepEqual(config, existingApp.config)) { + return existingApp; + } else { + throw ERROR_FACTORY.create("duplicate-app", { appName: name2 }); + } + } + const container = new ComponentContainer(name2); + for (const component of _components.values()) { + container.addComponent(component); + } + const newApp = new FirebaseAppImpl(options, config, container); + _apps.set(name2, newApp); + return newApp; +} +function getApp(name2 = DEFAULT_ENTRY_NAME) { + const app2 = _apps.get(name2); + if (!app2 && name2 === DEFAULT_ENTRY_NAME) { + return initializeApp(); + } + if (!app2) { + throw ERROR_FACTORY.create("no-app", { appName: name2 }); + } + return app2; +} +function registerVersion(libraryKeyOrName, version2, variant) { + var _a2; + let library = (_a2 = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a2 !== void 0 ? _a2 : libraryKeyOrName; + if (variant) { + library += `-${variant}`; + } + const libraryMismatch = library.match(/\s|\//); + const versionMismatch = version2.match(/\s|\//); + if (libraryMismatch || versionMismatch) { + const warning = [ + `Unable to register library "${library}" with version "${version2}":` + ]; + if (libraryMismatch) { + warning.push(`library name "${library}" contains illegal characters (whitespace or "/")`); + } + if (libraryMismatch && versionMismatch) { + warning.push("and"); + } + if (versionMismatch) { + warning.push(`version name "${version2}" contains illegal characters (whitespace or "/")`); + } + logger.warn(warning.join(" ")); + return; + } + _registerComponent(new Component(`${library}-version`, () => ({ library, version: version2 }), "VERSION")); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DB_NAME$1 = "firebase-heartbeat-database"; +const DB_VERSION$1 = 1; +const STORE_NAME = "firebase-heartbeat-store"; +let dbPromise = null; +function getDbPromise() { + if (!dbPromise) { + dbPromise = openDB(DB_NAME$1, DB_VERSION$1, { + upgrade: (db2, oldVersion) => { + switch (oldVersion) { + case 0: + db2.createObjectStore(STORE_NAME); + } + } + }).catch((e) => { + throw ERROR_FACTORY.create("idb-open", { + originalErrorMessage: e.message + }); + }); + } + return dbPromise; +} +async function readHeartbeatsFromIndexedDB(app2) { + try { + const db2 = await getDbPromise(); + return db2.transaction(STORE_NAME).objectStore(STORE_NAME).get(computeKey(app2)); + } catch (e) { + if (e instanceof FirebaseError) { + logger.warn(e.message); + } else { + const idbGetError = ERROR_FACTORY.create("idb-get", { + originalErrorMessage: e === null || e === void 0 ? void 0 : e.message + }); + logger.warn(idbGetError.message); + } + } +} +async function writeHeartbeatsToIndexedDB(app2, heartbeatObject) { + try { + const db2 = await getDbPromise(); + const tx = db2.transaction(STORE_NAME, "readwrite"); + const objectStore = tx.objectStore(STORE_NAME); + await objectStore.put(heartbeatObject, computeKey(app2)); + return tx.done; + } catch (e) { + if (e instanceof FirebaseError) { + logger.warn(e.message); + } else { + const idbGetError = ERROR_FACTORY.create("idb-set", { + originalErrorMessage: e === null || e === void 0 ? void 0 : e.message + }); + logger.warn(idbGetError.message); + } + } +} +function computeKey(app2) { + return `${app2.name}!${app2.options.appId}`; +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const MAX_HEADER_BYTES = 1024; +const STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1e3; +class HeartbeatServiceImpl { + constructor(container) { + this.container = container; + this._heartbeatsCache = null; + const app2 = this.container.getProvider("app").getImmediate(); + this._storage = new HeartbeatStorageImpl(app2); + this._heartbeatsCachePromise = this._storage.read().then((result) => { + this._heartbeatsCache = result; + return result; + }); + } + async triggerHeartbeat() { + const platformLogger = this.container.getProvider("platform-logger").getImmediate(); + const agent = platformLogger.getPlatformInfoString(); + const date = getUTCDateString(); + if (this._heartbeatsCache === null) { + this._heartbeatsCache = await this._heartbeatsCachePromise; + } + if (this._heartbeatsCache.lastSentHeartbeatDate === date || this._heartbeatsCache.heartbeats.some((singleDateHeartbeat) => singleDateHeartbeat.date === date)) { + return; + } else { + this._heartbeatsCache.heartbeats.push({ date, agent }); + } + this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter((singleDateHeartbeat) => { + const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf(); + const now = Date.now(); + return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS; + }); + return this._storage.overwrite(this._heartbeatsCache); + } + async getHeartbeatsHeader() { + if (this._heartbeatsCache === null) { + await this._heartbeatsCachePromise; + } + if (this._heartbeatsCache === null || this._heartbeatsCache.heartbeats.length === 0) { + return ""; + } + const date = getUTCDateString(); + const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats); + const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })); + this._heartbeatsCache.lastSentHeartbeatDate = date; + if (unsentEntries.length > 0) { + this._heartbeatsCache.heartbeats = unsentEntries; + await this._storage.overwrite(this._heartbeatsCache); + } else { + this._heartbeatsCache.heartbeats = []; + void this._storage.overwrite(this._heartbeatsCache); + } + return headerString; + } +} +function getUTCDateString() { + const today = new Date(); + return today.toISOString().substring(0, 10); +} +function extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) { + const heartbeatsToSend = []; + let unsentEntries = heartbeatsCache.slice(); + for (const singleDateHeartbeat of heartbeatsCache) { + const heartbeatEntry = heartbeatsToSend.find((hb2) => hb2.agent === singleDateHeartbeat.agent); + if (!heartbeatEntry) { + heartbeatsToSend.push({ + agent: singleDateHeartbeat.agent, + dates: [singleDateHeartbeat.date] + }); + if (countBytes(heartbeatsToSend) > maxSize) { + heartbeatsToSend.pop(); + break; + } + } else { + heartbeatEntry.dates.push(singleDateHeartbeat.date); + if (countBytes(heartbeatsToSend) > maxSize) { + heartbeatEntry.dates.pop(); + break; + } + } + unsentEntries = unsentEntries.slice(1); + } + return { + heartbeatsToSend, + unsentEntries + }; +} +class HeartbeatStorageImpl { + constructor(app2) { + this.app = app2; + this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck(); + } + async runIndexedDBEnvironmentCheck() { + if (!isIndexedDBAvailable()) { + return false; + } else { + return validateIndexedDBOpenable().then(() => true).catch(() => false); + } + } + async read() { + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return { heartbeats: [] }; + } else { + const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app); + return idbHeartbeatObject || { heartbeats: [] }; + } + } + async overwrite(heartbeatsObject) { + var _a2; + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return; + } else { + const existingHeartbeatsObject = await this.read(); + return writeHeartbeatsToIndexedDB(this.app, { + lastSentHeartbeatDate: (_a2 = heartbeatsObject.lastSentHeartbeatDate) !== null && _a2 !== void 0 ? _a2 : existingHeartbeatsObject.lastSentHeartbeatDate, + heartbeats: heartbeatsObject.heartbeats + }); + } + } + async add(heartbeatsObject) { + var _a2; + const canUseIndexedDB = await this._canUseIndexedDBPromise; + if (!canUseIndexedDB) { + return; + } else { + const existingHeartbeatsObject = await this.read(); + return writeHeartbeatsToIndexedDB(this.app, { + lastSentHeartbeatDate: (_a2 = heartbeatsObject.lastSentHeartbeatDate) !== null && _a2 !== void 0 ? _a2 : existingHeartbeatsObject.lastSentHeartbeatDate, + heartbeats: [ + ...existingHeartbeatsObject.heartbeats, + ...heartbeatsObject.heartbeats + ] + }); + } + } +} +function countBytes(heartbeatsCache) { + return base64urlEncodeWithoutPadding( + JSON.stringify({ version: 2, heartbeats: heartbeatsCache }) + ).length; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function registerCoreComponents(variant) { + _registerComponent(new Component("platform-logger", (container) => new PlatformLoggerServiceImpl(container), "PRIVATE")); + _registerComponent(new Component("heartbeat", (container) => new HeartbeatServiceImpl(container), "PRIVATE")); + registerVersion(name$o, version$1$1, variant); + registerVersion(name$o, version$1$1, "esm2017"); + registerVersion("fire-js", ""); +} +registerCoreComponents(""); +function __rest(s, e) { + var t2 = {}; + for (var p2 in s) + if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0) + t2[p2] = s[p2]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) { + if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i])) + t2[p2[i]] = s[p2[i]]; + } + return t2; +} +function _prodErrorMap() { + return { + ["dependent-sdk-initialized-before-auth"]: "Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK." + }; +} +const prodErrorMap = _prodErrorMap; +const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory("auth", "Firebase", _prodErrorMap()); +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const logClient = new Logger("@firebase/auth"); +function _logError(msg, ...args) { + if (logClient.logLevel <= LogLevel.ERROR) { + logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _fail(authOrCode, ...rest) { + throw createErrorInternal(authOrCode, ...rest); +} +function _createError(authOrCode, ...rest) { + return createErrorInternal(authOrCode, ...rest); +} +function _errorWithCustomMessage(auth2, code, message) { + const errorMap = Object.assign(Object.assign({}, prodErrorMap()), { [code]: message }); + const factory = new ErrorFactory("auth", "Firebase", errorMap); + return factory.create(code, { + appName: auth2.name + }); +} +function _assertInstanceOf(auth2, object, instance) { + const constructorInstance = instance; + if (!(object instanceof constructorInstance)) { + if (constructorInstance.name !== object.constructor.name) { + _fail(auth2, "argument-error"); + } + throw _errorWithCustomMessage(auth2, "argument-error", `Type of ${object.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`); + } +} +function createErrorInternal(authOrCode, ...rest) { + if (typeof authOrCode !== "string") { + const code = rest[0]; + const fullParams = [...rest.slice(1)]; + if (fullParams[0]) { + fullParams[0].appName = authOrCode.name; + } + return authOrCode._errorFactory.create(code, ...fullParams); + } + return _DEFAULT_AUTH_ERROR_FACTORY.create(authOrCode, ...rest); +} +function _assert(assertion, authOrCode, ...rest) { + if (!assertion) { + throw createErrorInternal(authOrCode, ...rest); + } +} +function debugFail(failure) { + const message = `INTERNAL ASSERTION FAILED: ` + failure; + _logError(message); + throw new Error(message); +} +function debugAssert(assertion, message) { + if (!assertion) { + debugFail(message); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const instanceCache = /* @__PURE__ */ new Map(); +function _getInstance(cls) { + debugAssert(cls instanceof Function, "Expected a class definition"); + let instance = instanceCache.get(cls); + if (instance) { + debugAssert(instance instanceof cls, "Instance stored in cache mismatched with class"); + return instance; + } + instance = new cls(); + instanceCache.set(cls, instance); + return instance; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function initializeAuth(app2, deps) { + const provider2 = _getProvider(app2, "auth"); + if (provider2.isInitialized()) { + const auth3 = provider2.getImmediate(); + const initialOptions = provider2.getOptions(); + if (deepEqual(initialOptions, deps !== null && deps !== void 0 ? deps : {})) { + return auth3; + } else { + _fail(auth3, "already-initialized"); + } + } + const auth2 = provider2.initialize({ options: deps }); + return auth2; +} +function _initializeAuthInstance(auth2, deps) { + const persistence = (deps === null || deps === void 0 ? void 0 : deps.persistence) || []; + const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance); + if (deps === null || deps === void 0 ? void 0 : deps.errorMap) { + auth2._updateErrorMap(deps.errorMap); + } + auth2._initializeWithPersistence(hierarchy, deps === null || deps === void 0 ? void 0 : deps.popupRedirectResolver); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getCurrentUrl() { + var _a2; + return typeof self !== "undefined" && ((_a2 = self.location) === null || _a2 === void 0 ? void 0 : _a2.href) || ""; +} +function _isHttpOrHttps() { + return _getCurrentScheme() === "http:" || _getCurrentScheme() === "https:"; +} +function _getCurrentScheme() { + var _a2; + return typeof self !== "undefined" && ((_a2 = self.location) === null || _a2 === void 0 ? void 0 : _a2.protocol) || null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _isOnline() { + if (typeof navigator !== "undefined" && navigator && "onLine" in navigator && typeof navigator.onLine === "boolean" && (_isHttpOrHttps() || isBrowserExtension() || "connection" in navigator)) { + return navigator.onLine; + } + return true; +} +function _getUserLanguage() { + if (typeof navigator === "undefined") { + return null; + } + const navigatorLanguage = navigator; + return navigatorLanguage.languages && navigatorLanguage.languages[0] || navigatorLanguage.language || null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Delay { + constructor(shortDelay, longDelay) { + this.shortDelay = shortDelay; + this.longDelay = longDelay; + debugAssert(longDelay > shortDelay, "Short delay should be less than long delay!"); + this.isMobile = isMobileCordova() || isReactNative(); + } + get() { + if (!_isOnline()) { + return Math.min(5e3, this.shortDelay); + } + return this.isMobile ? this.longDelay : this.shortDelay; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _emulatorUrl(config, path) { + debugAssert(config.emulator, "Emulator should always be set here"); + const { url } = config.emulator; + if (!path) { + return url; + } + return `${url}${path.startsWith("/") ? path.slice(1) : path}`; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FetchProvider { + static initialize(fetchImpl, headersImpl, responseImpl) { + this.fetchImpl = fetchImpl; + if (headersImpl) { + this.headersImpl = headersImpl; + } + if (responseImpl) { + this.responseImpl = responseImpl; + } + } + static fetch() { + if (this.fetchImpl) { + return this.fetchImpl; + } + if (typeof self !== "undefined" && "fetch" in self) { + return self.fetch; + } + debugFail("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } + static headers() { + if (this.headersImpl) { + return this.headersImpl; + } + if (typeof self !== "undefined" && "Headers" in self) { + return self.Headers; + } + debugFail("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } + static response() { + if (this.responseImpl) { + return this.responseImpl; + } + if (typeof self !== "undefined" && "Response" in self) { + return self.Response; + } + debugFail("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const SERVER_ERROR_MAP = { + ["CREDENTIAL_MISMATCH"]: "custom-token-mismatch", + ["MISSING_CUSTOM_TOKEN"]: "internal-error", + ["INVALID_IDENTIFIER"]: "invalid-email", + ["MISSING_CONTINUE_URI"]: "internal-error", + ["INVALID_PASSWORD"]: "wrong-password", + ["MISSING_PASSWORD"]: "missing-password", + ["EMAIL_EXISTS"]: "email-already-in-use", + ["PASSWORD_LOGIN_DISABLED"]: "operation-not-allowed", + ["INVALID_IDP_RESPONSE"]: "invalid-credential", + ["INVALID_PENDING_TOKEN"]: "invalid-credential", + ["FEDERATED_USER_ID_ALREADY_LINKED"]: "credential-already-in-use", + ["MISSING_REQ_TYPE"]: "internal-error", + ["EMAIL_NOT_FOUND"]: "user-not-found", + ["RESET_PASSWORD_EXCEED_LIMIT"]: "too-many-requests", + ["EXPIRED_OOB_CODE"]: "expired-action-code", + ["INVALID_OOB_CODE"]: "invalid-action-code", + ["MISSING_OOB_CODE"]: "internal-error", + ["CREDENTIAL_TOO_OLD_LOGIN_AGAIN"]: "requires-recent-login", + ["INVALID_ID_TOKEN"]: "invalid-user-token", + ["TOKEN_EXPIRED"]: "user-token-expired", + ["USER_NOT_FOUND"]: "user-token-expired", + ["TOO_MANY_ATTEMPTS_TRY_LATER"]: "too-many-requests", + ["INVALID_CODE"]: "invalid-verification-code", + ["INVALID_SESSION_INFO"]: "invalid-verification-id", + ["INVALID_TEMPORARY_PROOF"]: "invalid-credential", + ["MISSING_SESSION_INFO"]: "missing-verification-id", + ["SESSION_EXPIRED"]: "code-expired", + ["MISSING_ANDROID_PACKAGE_NAME"]: "missing-android-pkg-name", + ["UNAUTHORIZED_DOMAIN"]: "unauthorized-continue-uri", + ["INVALID_OAUTH_CLIENT_ID"]: "invalid-oauth-client-id", + ["ADMIN_ONLY_OPERATION"]: "admin-restricted-operation", + ["INVALID_MFA_PENDING_CREDENTIAL"]: "invalid-multi-factor-session", + ["MFA_ENROLLMENT_NOT_FOUND"]: "multi-factor-info-not-found", + ["MISSING_MFA_ENROLLMENT_ID"]: "missing-multi-factor-info", + ["MISSING_MFA_PENDING_CREDENTIAL"]: "missing-multi-factor-session", + ["SECOND_FACTOR_EXISTS"]: "second-factor-already-in-use", + ["SECOND_FACTOR_LIMIT_EXCEEDED"]: "maximum-second-factor-count-exceeded", + ["BLOCKING_FUNCTION_ERROR_RESPONSE"]: "internal-error" +}; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_API_TIMEOUT_MS = new Delay(3e4, 6e4); +function _addTidIfNecessary(auth2, request) { + if (auth2.tenantId && !request.tenantId) { + return Object.assign(Object.assign({}, request), { tenantId: auth2.tenantId }); + } + return request; +} +async function _performApiRequest(auth2, method, path, request, customErrorMap = {}) { + return _performFetchWithErrorHandling(auth2, customErrorMap, async () => { + let body = {}; + let params = {}; + if (request) { + if (method === "GET") { + params = request; + } else { + body = { + body: JSON.stringify(request) + }; + } + } + const query = querystring(Object.assign({ key: auth2.config.apiKey }, params)).slice(1); + const headers = await auth2._getAdditionalHeaders(); + headers["Content-Type"] = "application/json"; + if (auth2.languageCode) { + headers["X-Firebase-Locale"] = auth2.languageCode; + } + return FetchProvider.fetch()(_getFinalTarget(auth2, auth2.config.apiHost, path, query), Object.assign({ + method, + headers, + referrerPolicy: "no-referrer" + }, body)); + }); +} +async function _performFetchWithErrorHandling(auth2, customErrorMap, fetchFn) { + auth2._canInitEmulator = false; + const errorMap = Object.assign(Object.assign({}, SERVER_ERROR_MAP), customErrorMap); + try { + const networkTimeout = new NetworkTimeout(auth2); + const response = await Promise.race([ + fetchFn(), + networkTimeout.promise + ]); + networkTimeout.clearNetworkTimeout(); + const json = await response.json(); + if ("needConfirmation" in json) { + throw _makeTaggedError(auth2, "account-exists-with-different-credential", json); + } + if (response.ok && !("errorMessage" in json)) { + return json; + } else { + const errorMessage = response.ok ? json.errorMessage : json.error.message; + const [serverErrorCode, serverErrorMessage] = errorMessage.split(" : "); + if (serverErrorCode === "FEDERATED_USER_ID_ALREADY_LINKED") { + throw _makeTaggedError(auth2, "credential-already-in-use", json); + } else if (serverErrorCode === "EMAIL_EXISTS") { + throw _makeTaggedError(auth2, "email-already-in-use", json); + } else if (serverErrorCode === "USER_DISABLED") { + throw _makeTaggedError(auth2, "user-disabled", json); + } + const authError = errorMap[serverErrorCode] || serverErrorCode.toLowerCase().replace(/[_\s]+/g, "-"); + if (serverErrorMessage) { + throw _errorWithCustomMessage(auth2, authError, serverErrorMessage); + } else { + _fail(auth2, authError); + } + } + } catch (e) { + if (e instanceof FirebaseError) { + throw e; + } + _fail(auth2, "network-request-failed", { "message": String(e) }); + } +} +async function _performSignInRequest(auth2, method, path, request, customErrorMap = {}) { + const serverResponse = await _performApiRequest(auth2, method, path, request, customErrorMap); + if ("mfaPendingCredential" in serverResponse) { + _fail(auth2, "multi-factor-auth-required", { + _serverResponse: serverResponse + }); + } + return serverResponse; +} +function _getFinalTarget(auth2, host, path, query) { + const base = `${host}${path}?${query}`; + if (!auth2.config.emulator) { + return `${auth2.config.apiScheme}://${base}`; + } + return _emulatorUrl(auth2.config, base); +} +class NetworkTimeout { + constructor(auth2) { + this.auth = auth2; + this.timer = null; + this.promise = new Promise((_, reject) => { + this.timer = setTimeout(() => { + return reject(_createError(this.auth, "network-request-failed")); + }, DEFAULT_API_TIMEOUT_MS.get()); + }); + } + clearNetworkTimeout() { + clearTimeout(this.timer); + } +} +function _makeTaggedError(auth2, code, response) { + const errorParams = { + appName: auth2.name + }; + if (response.email) { + errorParams.email = response.email; + } + if (response.phoneNumber) { + errorParams.phoneNumber = response.phoneNumber; + } + const error = _createError(auth2, code, errorParams); + error.customData._tokenResponse = response; + return error; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function deleteAccount(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:delete", request); +} +async function getAccountInfo(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:lookup", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function utcTimestampToDateString(utcTimestamp) { + if (!utcTimestamp) { + return void 0; + } + try { + const date = new Date(Number(utcTimestamp)); + if (!isNaN(date.getTime())) { + return date.toUTCString(); + } + } catch (e) { + } + return void 0; +} +async function getIdTokenResult(user, forceRefresh = false) { + const userInternal = getModularInstance(user); + const token = await userInternal.getIdToken(forceRefresh); + const claims = _parseToken(token); + _assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error"); + const firebase = typeof claims.firebase === "object" ? claims.firebase : void 0; + const signInProvider = firebase === null || firebase === void 0 ? void 0 : firebase["sign_in_provider"]; + return { + claims, + token, + authTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.auth_time)), + issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)), + expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)), + signInProvider: signInProvider || null, + signInSecondFactor: (firebase === null || firebase === void 0 ? void 0 : firebase["sign_in_second_factor"]) || null + }; +} +function secondsStringToMilliseconds(seconds) { + return Number(seconds) * 1e3; +} +function _parseToken(token) { + const [algorithm, payload, signature] = token.split("."); + if (algorithm === void 0 || payload === void 0 || signature === void 0) { + _logError("JWT malformed, contained fewer than 3 sections"); + return null; + } + try { + const decoded = base64Decode(payload); + if (!decoded) { + _logError("Failed to decode base64 JWT payload"); + return null; + } + return JSON.parse(decoded); + } catch (e) { + _logError("Caught error parsing JWT payload as JSON", e === null || e === void 0 ? void 0 : e.toString()); + return null; + } +} +function _tokenExpiresIn(token) { + const parsedToken = _parseToken(token); + _assert(parsedToken, "internal-error"); + _assert(typeof parsedToken.exp !== "undefined", "internal-error"); + _assert(typeof parsedToken.iat !== "undefined", "internal-error"); + return Number(parsedToken.exp) - Number(parsedToken.iat); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _logoutIfInvalidated(user, promise, bypassAuthState = false) { + if (bypassAuthState) { + return promise; + } + try { + return await promise; + } catch (e) { + if (e instanceof FirebaseError && isUserInvalidated(e)) { + if (user.auth.currentUser === user) { + await user.auth.signOut(); + } + } + throw e; + } +} +function isUserInvalidated({ code }) { + return code === `auth/${"user-disabled"}` || code === `auth/${"user-token-expired"}`; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ProactiveRefresh { + constructor(user) { + this.user = user; + this.isRunning = false; + this.timerId = null; + this.errorBackoff = 3e4; + } + _start() { + if (this.isRunning) { + return; + } + this.isRunning = true; + this.schedule(); + } + _stop() { + if (!this.isRunning) { + return; + } + this.isRunning = false; + if (this.timerId !== null) { + clearTimeout(this.timerId); + } + } + getInterval(wasError) { + var _a2; + if (wasError) { + const interval = this.errorBackoff; + this.errorBackoff = Math.min(this.errorBackoff * 2, 96e4); + return interval; + } else { + this.errorBackoff = 3e4; + const expTime = (_a2 = this.user.stsTokenManager.expirationTime) !== null && _a2 !== void 0 ? _a2 : 0; + const interval = expTime - Date.now() - 3e5; + return Math.max(0, interval); + } + } + schedule(wasError = false) { + if (!this.isRunning) { + return; + } + const interval = this.getInterval(wasError); + this.timerId = setTimeout(async () => { + await this.iteration(); + }, interval); + } + async iteration() { + try { + await this.user.getIdToken(true); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) === `auth/${"network-request-failed"}`) { + this.schedule(true); + } + return; + } + this.schedule(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class UserMetadata { + constructor(createdAt, lastLoginAt) { + this.createdAt = createdAt; + this.lastLoginAt = lastLoginAt; + this._initializeTime(); + } + _initializeTime() { + this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt); + this.creationTime = utcTimestampToDateString(this.createdAt); + } + _copy(metadata) { + this.createdAt = metadata.createdAt; + this.lastLoginAt = metadata.lastLoginAt; + this._initializeTime(); + } + toJSON() { + return { + createdAt: this.createdAt, + lastLoginAt: this.lastLoginAt + }; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _reloadWithoutSaving(user) { + var _a2; + const auth2 = user.auth; + const idToken = await user.getIdToken(); + const response = await _logoutIfInvalidated(user, getAccountInfo(auth2, { idToken })); + _assert(response === null || response === void 0 ? void 0 : response.users.length, auth2, "internal-error"); + const coreAccount = response.users[0]; + user._notifyReloadListener(coreAccount); + const newProviderData = ((_a2 = coreAccount.providerUserInfo) === null || _a2 === void 0 ? void 0 : _a2.length) ? extractProviderData(coreAccount.providerUserInfo) : []; + const providerData = mergeProviderData(user.providerData, newProviderData); + const oldIsAnonymous = user.isAnonymous; + const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !(providerData === null || providerData === void 0 ? void 0 : providerData.length); + const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous; + const updates = { + uid: coreAccount.localId, + displayName: coreAccount.displayName || null, + photoURL: coreAccount.photoUrl || null, + email: coreAccount.email || null, + emailVerified: coreAccount.emailVerified || false, + phoneNumber: coreAccount.phoneNumber || null, + tenantId: coreAccount.tenantId || null, + providerData, + metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt), + isAnonymous + }; + Object.assign(user, updates); +} +async function reload(user) { + const userInternal = getModularInstance(user); + await _reloadWithoutSaving(userInternal); + await userInternal.auth._persistUserIfCurrent(userInternal); + userInternal.auth._notifyListenersIfCurrent(userInternal); +} +function mergeProviderData(original, newData) { + const deduped = original.filter((o) => !newData.some((n) => n.providerId === o.providerId)); + return [...deduped, ...newData]; +} +function extractProviderData(providers) { + return providers.map((_a2) => { + var { providerId } = _a2, provider2 = __rest(_a2, ["providerId"]); + return { + providerId, + uid: provider2.rawId || "", + displayName: provider2.displayName || null, + email: provider2.email || null, + phoneNumber: provider2.phoneNumber || null, + photoURL: provider2.photoUrl || null + }; + }); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function requestStsToken(auth2, refreshToken) { + const response = await _performFetchWithErrorHandling(auth2, {}, async () => { + const body = querystring({ + "grant_type": "refresh_token", + "refresh_token": refreshToken + }).slice(1); + const { tokenApiHost, apiKey } = auth2.config; + const url = _getFinalTarget(auth2, tokenApiHost, "/v1/token", `key=${apiKey}`); + const headers = await auth2._getAdditionalHeaders(); + headers["Content-Type"] = "application/x-www-form-urlencoded"; + return FetchProvider.fetch()(url, { + method: "POST", + headers, + body + }); + }); + return { + accessToken: response.access_token, + expiresIn: response.expires_in, + refreshToken: response.refresh_token + }; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class StsTokenManager { + constructor() { + this.refreshToken = null; + this.accessToken = null; + this.expirationTime = null; + } + get isExpired() { + return !this.expirationTime || Date.now() > this.expirationTime - 3e4; + } + updateFromServerResponse(response) { + _assert(response.idToken, "internal-error"); + _assert(typeof response.idToken !== "undefined", "internal-error"); + _assert(typeof response.refreshToken !== "undefined", "internal-error"); + const expiresIn = "expiresIn" in response && typeof response.expiresIn !== "undefined" ? Number(response.expiresIn) : _tokenExpiresIn(response.idToken); + this.updateTokensAndExpiration(response.idToken, response.refreshToken, expiresIn); + } + async getToken(auth2, forceRefresh = false) { + _assert(!this.accessToken || this.refreshToken, auth2, "user-token-expired"); + if (!forceRefresh && this.accessToken && !this.isExpired) { + return this.accessToken; + } + if (this.refreshToken) { + await this.refresh(auth2, this.refreshToken); + return this.accessToken; + } + return null; + } + clearRefreshToken() { + this.refreshToken = null; + } + async refresh(auth2, oldToken) { + const { accessToken, refreshToken, expiresIn } = await requestStsToken(auth2, oldToken); + this.updateTokensAndExpiration(accessToken, refreshToken, Number(expiresIn)); + } + updateTokensAndExpiration(accessToken, refreshToken, expiresInSec) { + this.refreshToken = refreshToken || null; + this.accessToken = accessToken || null; + this.expirationTime = Date.now() + expiresInSec * 1e3; + } + static fromJSON(appName, object) { + const { refreshToken, accessToken, expirationTime } = object; + const manager = new StsTokenManager(); + if (refreshToken) { + _assert(typeof refreshToken === "string", "internal-error", { + appName + }); + manager.refreshToken = refreshToken; + } + if (accessToken) { + _assert(typeof accessToken === "string", "internal-error", { + appName + }); + manager.accessToken = accessToken; + } + if (expirationTime) { + _assert(typeof expirationTime === "number", "internal-error", { + appName + }); + manager.expirationTime = expirationTime; + } + return manager; + } + toJSON() { + return { + refreshToken: this.refreshToken, + accessToken: this.accessToken, + expirationTime: this.expirationTime + }; + } + _assign(stsTokenManager) { + this.accessToken = stsTokenManager.accessToken; + this.refreshToken = stsTokenManager.refreshToken; + this.expirationTime = stsTokenManager.expirationTime; + } + _clone() { + return Object.assign(new StsTokenManager(), this.toJSON()); + } + _performRefresh() { + return debugFail("not implemented"); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function assertStringOrUndefined(assertion, appName) { + _assert(typeof assertion === "string" || typeof assertion === "undefined", "internal-error", { appName }); +} +class UserImpl { + constructor(_a2) { + var { uid, auth: auth2, stsTokenManager } = _a2, opt = __rest(_a2, ["uid", "auth", "stsTokenManager"]); + this.providerId = "firebase"; + this.proactiveRefresh = new ProactiveRefresh(this); + this.reloadUserInfo = null; + this.reloadListener = null; + this.uid = uid; + this.auth = auth2; + this.stsTokenManager = stsTokenManager; + this.accessToken = stsTokenManager.accessToken; + this.displayName = opt.displayName || null; + this.email = opt.email || null; + this.emailVerified = opt.emailVerified || false; + this.phoneNumber = opt.phoneNumber || null; + this.photoURL = opt.photoURL || null; + this.isAnonymous = opt.isAnonymous || false; + this.tenantId = opt.tenantId || null; + this.providerData = opt.providerData ? [...opt.providerData] : []; + this.metadata = new UserMetadata(opt.createdAt || void 0, opt.lastLoginAt || void 0); + } + async getIdToken(forceRefresh) { + const accessToken = await _logoutIfInvalidated(this, this.stsTokenManager.getToken(this.auth, forceRefresh)); + _assert(accessToken, this.auth, "internal-error"); + if (this.accessToken !== accessToken) { + this.accessToken = accessToken; + await this.auth._persistUserIfCurrent(this); + this.auth._notifyListenersIfCurrent(this); + } + return accessToken; + } + getIdTokenResult(forceRefresh) { + return getIdTokenResult(this, forceRefresh); + } + reload() { + return reload(this); + } + _assign(user) { + if (this === user) { + return; + } + _assert(this.uid === user.uid, this.auth, "internal-error"); + this.displayName = user.displayName; + this.photoURL = user.photoURL; + this.email = user.email; + this.emailVerified = user.emailVerified; + this.phoneNumber = user.phoneNumber; + this.isAnonymous = user.isAnonymous; + this.tenantId = user.tenantId; + this.providerData = user.providerData.map((userInfo) => Object.assign({}, userInfo)); + this.metadata._copy(user.metadata); + this.stsTokenManager._assign(user.stsTokenManager); + } + _clone(auth2) { + const newUser = new UserImpl(Object.assign(Object.assign({}, this), { auth: auth2, stsTokenManager: this.stsTokenManager._clone() })); + newUser.metadata._copy(this.metadata); + return newUser; + } + _onReload(callback) { + _assert(!this.reloadListener, this.auth, "internal-error"); + this.reloadListener = callback; + if (this.reloadUserInfo) { + this._notifyReloadListener(this.reloadUserInfo); + this.reloadUserInfo = null; + } + } + _notifyReloadListener(userInfo) { + if (this.reloadListener) { + this.reloadListener(userInfo); + } else { + this.reloadUserInfo = userInfo; + } + } + _startProactiveRefresh() { + this.proactiveRefresh._start(); + } + _stopProactiveRefresh() { + this.proactiveRefresh._stop(); + } + async _updateTokensIfNecessary(response, reload2 = false) { + let tokensRefreshed = false; + if (response.idToken && response.idToken !== this.stsTokenManager.accessToken) { + this.stsTokenManager.updateFromServerResponse(response); + tokensRefreshed = true; + } + if (reload2) { + await _reloadWithoutSaving(this); + } + await this.auth._persistUserIfCurrent(this); + if (tokensRefreshed) { + this.auth._notifyListenersIfCurrent(this); + } + } + async delete() { + const idToken = await this.getIdToken(); + await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken })); + this.stsTokenManager.clearRefreshToken(); + return 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((userInfo) => Object.assign({}, userInfo)), + 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(auth2, object) { + var _a2, _b, _c2, _d, _e2, _f, _g, _h2; + const displayName = (_a2 = object.displayName) !== null && _a2 !== void 0 ? _a2 : void 0; + const email = (_b = object.email) !== null && _b !== void 0 ? _b : void 0; + const phoneNumber = (_c2 = object.phoneNumber) !== null && _c2 !== void 0 ? _c2 : void 0; + const photoURL = (_d = object.photoURL) !== null && _d !== void 0 ? _d : void 0; + const tenantId = (_e2 = object.tenantId) !== null && _e2 !== void 0 ? _e2 : void 0; + const _redirectEventId = (_f = object._redirectEventId) !== null && _f !== void 0 ? _f : void 0; + const createdAt = (_g = object.createdAt) !== null && _g !== void 0 ? _g : void 0; + const lastLoginAt = (_h2 = object.lastLoginAt) !== null && _h2 !== void 0 ? _h2 : void 0; + const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object; + _assert(uid && plainObjectTokenManager, auth2, "internal-error"); + const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager); + _assert(typeof uid === "string", auth2, "internal-error"); + assertStringOrUndefined(displayName, auth2.name); + assertStringOrUndefined(email, auth2.name); + _assert(typeof emailVerified === "boolean", auth2, "internal-error"); + _assert(typeof isAnonymous === "boolean", auth2, "internal-error"); + assertStringOrUndefined(phoneNumber, auth2.name); + assertStringOrUndefined(photoURL, auth2.name); + assertStringOrUndefined(tenantId, auth2.name); + assertStringOrUndefined(_redirectEventId, auth2.name); + assertStringOrUndefined(createdAt, auth2.name); + assertStringOrUndefined(lastLoginAt, auth2.name); + const user = new UserImpl({ + uid, + auth: auth2, + email, + emailVerified, + displayName, + isAnonymous, + photoURL, + phoneNumber, + tenantId, + stsTokenManager, + createdAt, + lastLoginAt + }); + if (providerData && Array.isArray(providerData)) { + user.providerData = providerData.map((userInfo) => Object.assign({}, userInfo)); + } + if (_redirectEventId) { + user._redirectEventId = _redirectEventId; + } + return user; + } + static async _fromIdTokenResponse(auth2, idTokenResponse, isAnonymous = false) { + const stsTokenManager = new StsTokenManager(); + stsTokenManager.updateFromServerResponse(idTokenResponse); + const user = new UserImpl({ + uid: idTokenResponse.localId, + auth: auth2, + stsTokenManager, + isAnonymous + }); + await _reloadWithoutSaving(user); + return user; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class InMemoryPersistence { + constructor() { + this.type = "NONE"; + this.storage = {}; + } + async _isAvailable() { + return true; + } + async _set(key, value) { + this.storage[key] = value; + } + async _get(key) { + const value = this.storage[key]; + return value === void 0 ? null : value; + } + async _remove(key) { + delete this.storage[key]; + } + _addListener(_key, _listener) { + return; + } + _removeListener(_key, _listener) { + return; + } +} +InMemoryPersistence.type = "NONE"; +const inMemoryPersistence = InMemoryPersistence; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _persistenceKeyName(key, apiKey, appName) { + return `${"firebase"}:${key}:${apiKey}:${appName}`; +} +class PersistenceUserManager { + constructor(persistence, auth2, userKey) { + this.persistence = persistence; + this.auth = auth2; + this.userKey = userKey; + const { config, name: name2 } = this.auth; + this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name2); + this.fullPersistenceKey = _persistenceKeyName("persistence", config.apiKey, name2); + this.boundEventHandler = auth2._onStorageEvent.bind(auth2); + this.persistence._addListener(this.fullUserKey, this.boundEventHandler); + } + setCurrentUser(user) { + return this.persistence._set(this.fullUserKey, user.toJSON()); + } + async getCurrentUser() { + const blob = await this.persistence._get(this.fullUserKey); + return blob ? UserImpl._fromJSON(this.auth, blob) : null; + } + removeCurrentUser() { + return this.persistence._remove(this.fullUserKey); + } + savePersistenceForRedirect() { + return this.persistence._set(this.fullPersistenceKey, this.persistence.type); + } + async setPersistence(newPersistence) { + if (this.persistence === newPersistence) { + return; + } + const currentUser = await this.getCurrentUser(); + await this.removeCurrentUser(); + this.persistence = newPersistence; + if (currentUser) { + return this.setCurrentUser(currentUser); + } + } + delete() { + this.persistence._removeListener(this.fullUserKey, this.boundEventHandler); + } + static async create(auth2, persistenceHierarchy, userKey = "authUser") { + if (!persistenceHierarchy.length) { + return new PersistenceUserManager(_getInstance(inMemoryPersistence), auth2, userKey); + } + const availablePersistences = (await Promise.all(persistenceHierarchy.map(async (persistence) => { + if (await persistence._isAvailable()) { + return persistence; + } + return void 0; + }))).filter((persistence) => persistence); + let selectedPersistence = availablePersistences[0] || _getInstance(inMemoryPersistence); + const key = _persistenceKeyName(userKey, auth2.config.apiKey, auth2.name); + let userToMigrate = null; + for (const persistence of persistenceHierarchy) { + try { + const blob = await persistence._get(key); + if (blob) { + const user = UserImpl._fromJSON(auth2, blob); + if (persistence !== selectedPersistence) { + userToMigrate = user; + } + selectedPersistence = persistence; + break; + } + } catch (_a2) { + } + } + const migrationHierarchy = availablePersistences.filter((p2) => p2._shouldAllowMigration); + if (!selectedPersistence._shouldAllowMigration || !migrationHierarchy.length) { + return new PersistenceUserManager(selectedPersistence, auth2, userKey); + } + selectedPersistence = migrationHierarchy[0]; + if (userToMigrate) { + await selectedPersistence._set(key, userToMigrate.toJSON()); + } + await Promise.all(persistenceHierarchy.map(async (persistence) => { + if (persistence !== selectedPersistence) { + try { + await persistence._remove(key); + } catch (_a2) { + } + } + })); + return new PersistenceUserManager(selectedPersistence, auth2, userKey); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getBrowserName(userAgent) { + const ua2 = userAgent.toLowerCase(); + if (ua2.includes("opera/") || ua2.includes("opr/") || ua2.includes("opios/")) { + return "Opera"; + } else if (_isIEMobile(ua2)) { + return "IEMobile"; + } else if (ua2.includes("msie") || ua2.includes("trident/")) { + return "IE"; + } else if (ua2.includes("edge/")) { + return "Edge"; + } else if (_isFirefox(ua2)) { + return "Firefox"; + } else if (ua2.includes("silk/")) { + return "Silk"; + } else if (_isBlackBerry(ua2)) { + return "Blackberry"; + } else if (_isWebOS(ua2)) { + return "Webos"; + } else if (_isSafari(ua2)) { + return "Safari"; + } else if ((ua2.includes("chrome/") || _isChromeIOS(ua2)) && !ua2.includes("edge/")) { + return "Chrome"; + } else if (_isAndroid(ua2)) { + return "Android"; + } else { + const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/; + const matches = userAgent.match(re); + if ((matches === null || matches === void 0 ? void 0 : matches.length) === 2) { + return matches[1]; + } + } + return "Other"; +} +function _isFirefox(ua2 = getUA()) { + return /firefox\//i.test(ua2); +} +function _isSafari(userAgent = getUA()) { + const ua2 = userAgent.toLowerCase(); + return ua2.includes("safari/") && !ua2.includes("chrome/") && !ua2.includes("crios/") && !ua2.includes("android"); +} +function _isChromeIOS(ua2 = getUA()) { + return /crios\//i.test(ua2); +} +function _isIEMobile(ua2 = getUA()) { + return /iemobile/i.test(ua2); +} +function _isAndroid(ua2 = getUA()) { + return /android/i.test(ua2); +} +function _isBlackBerry(ua2 = getUA()) { + return /blackberry/i.test(ua2); +} +function _isWebOS(ua2 = getUA()) { + return /webos/i.test(ua2); +} +function _isIOS(ua2 = getUA()) { + return /iphone|ipad|ipod/i.test(ua2) || /macintosh/i.test(ua2) && /mobile/i.test(ua2); +} +function _isIOSStandalone(ua2 = getUA()) { + var _a2; + return _isIOS(ua2) && !!((_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.standalone); +} +function _isIE10() { + return isIE() && document.documentMode === 10; +} +function _isMobileBrowser(ua2 = getUA()) { + return _isIOS(ua2) || _isAndroid(ua2) || _isWebOS(ua2) || _isBlackBerry(ua2) || /windows phone/i.test(ua2) || _isIEMobile(ua2); +} +function _isIframe() { + try { + return !!(window && window !== window.top); + } catch (e) { + return false; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _getClientVersion(clientPlatform, frameworks = []) { + let reportedPlatform; + switch (clientPlatform) { + case "Browser": + reportedPlatform = _getBrowserName(getUA()); + break; + case "Worker": + reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`; + break; + default: + reportedPlatform = clientPlatform; + } + const reportedFrameworks = frameworks.length ? frameworks.join(",") : "FirebaseCore-web"; + return `${reportedPlatform}/${"JsCore"}/${SDK_VERSION}/${reportedFrameworks}`; +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthMiddlewareQueue { + constructor(auth2) { + this.auth = auth2; + this.queue = []; + } + pushCallback(callback, onAbort) { + const wrappedCallback = (user) => new Promise((resolve, reject) => { + try { + const result = callback(user); + resolve(result); + } catch (e) { + reject(e); + } + }); + wrappedCallback.onAbort = onAbort; + this.queue.push(wrappedCallback); + const index = this.queue.length - 1; + return () => { + this.queue[index] = () => Promise.resolve(); + }; + } + async runMiddleware(nextUser) { + if (this.auth.currentUser === nextUser) { + return; + } + const onAbortStack = []; + try { + for (const beforeStateCallback of this.queue) { + await beforeStateCallback(nextUser); + if (beforeStateCallback.onAbort) { + onAbortStack.push(beforeStateCallback.onAbort); + } + } + } catch (e) { + onAbortStack.reverse(); + for (const onAbort of onAbortStack) { + try { + onAbort(); + } catch (_) { + } + } + throw this.auth._errorFactory.create("login-blocked", { + originalMessage: e === null || e === void 0 ? void 0 : e.message + }); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthImpl { + constructor(app2, heartbeatServiceProvider, config) { + this.app = app2; + this.heartbeatServiceProvider = heartbeatServiceProvider; + this.config = config; + this.currentUser = null; + this.emulatorConfig = null; + this.operations = Promise.resolve(); + this.authStateSubscription = new Subscription(this); + this.idTokenSubscription = new Subscription(this); + this.beforeStateQueue = new AuthMiddlewareQueue(this); + this.redirectUser = null; + this.isProactiveRefreshEnabled = false; + this._canInitEmulator = true; + this._isInitialized = false; + this._deleted = false; + this._initializationPromise = null; + this._popupRedirectResolver = null; + this._errorFactory = _DEFAULT_AUTH_ERROR_FACTORY; + this.lastNotifiedUid = void 0; + this.languageCode = null; + this.tenantId = null; + this.settings = { appVerificationDisabledForTesting: false }; + this.frameworks = []; + this.name = app2.name; + this.clientVersion = config.sdkClientVersion; + } + _initializeWithPersistence(persistenceHierarchy, popupRedirectResolver) { + if (popupRedirectResolver) { + this._popupRedirectResolver = _getInstance(popupRedirectResolver); + } + this._initializationPromise = this.queue(async () => { + var _a2, _b; + if (this._deleted) { + return; + } + this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy); + if (this._deleted) { + return; + } + if ((_a2 = this._popupRedirectResolver) === null || _a2 === void 0 ? void 0 : _a2._shouldInitProactively) { + try { + await this._popupRedirectResolver._initialize(this); + } catch (e) { + } + } + await this.initializeCurrentUser(popupRedirectResolver); + this.lastNotifiedUid = ((_b = this.currentUser) === null || _b === void 0 ? void 0 : _b.uid) || null; + if (this._deleted) { + return; + } + this._isInitialized = true; + }); + return this._initializationPromise; + } + async _onStorageEvent() { + if (this._deleted) { + return; + } + const user = await this.assertedPersistence.getCurrentUser(); + if (!this.currentUser && !user) { + return; + } + if (this.currentUser && user && this.currentUser.uid === user.uid) { + this._currentUser._assign(user); + await this.currentUser.getIdToken(); + return; + } + await this._updateCurrentUser(user, true); + } + async initializeCurrentUser(popupRedirectResolver) { + var _a2; + const previouslyStoredUser = await this.assertedPersistence.getCurrentUser(); + let futureCurrentUser = previouslyStoredUser; + let needsTocheckMiddleware = false; + if (popupRedirectResolver && this.config.authDomain) { + await this.getOrInitRedirectPersistenceManager(); + const redirectUserEventId = (_a2 = this.redirectUser) === null || _a2 === void 0 ? void 0 : _a2._redirectEventId; + const storedUserEventId = futureCurrentUser === null || futureCurrentUser === void 0 ? void 0 : futureCurrentUser._redirectEventId; + const result = await this.tryRedirectSignIn(popupRedirectResolver); + if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) && (result === null || result === void 0 ? void 0 : result.user)) { + futureCurrentUser = result.user; + needsTocheckMiddleware = true; + } + } + if (!futureCurrentUser) { + return this.directlySetCurrentUser(null); + } + if (!futureCurrentUser._redirectEventId) { + if (needsTocheckMiddleware) { + try { + await this.beforeStateQueue.runMiddleware(futureCurrentUser); + } catch (e) { + futureCurrentUser = previouslyStoredUser; + this._popupRedirectResolver._overrideRedirectResult(this, () => Promise.reject(e)); + } + } + if (futureCurrentUser) { + return this.reloadAndSetCurrentUserOrClear(futureCurrentUser); + } else { + return this.directlySetCurrentUser(null); + } + } + _assert(this._popupRedirectResolver, this, "argument-error"); + await this.getOrInitRedirectPersistenceManager(); + if (this.redirectUser && this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId) { + return this.directlySetCurrentUser(futureCurrentUser); + } + return this.reloadAndSetCurrentUserOrClear(futureCurrentUser); + } + async tryRedirectSignIn(redirectResolver) { + let result = null; + try { + result = await this._popupRedirectResolver._completeRedirectFn(this, redirectResolver, true); + } catch (e) { + await this._setRedirectUser(null); + } + return result; + } + async reloadAndSetCurrentUserOrClear(user) { + try { + await _reloadWithoutSaving(user); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) !== `auth/${"network-request-failed"}`) { + return this.directlySetCurrentUser(null); + } + } + return this.directlySetCurrentUser(user); + } + useDeviceLanguage() { + this.languageCode = _getUserLanguage(); + } + async _delete() { + this._deleted = true; + } + async updateCurrentUser(userExtern) { + const user = userExtern ? getModularInstance(userExtern) : null; + if (user) { + _assert(user.auth.config.apiKey === this.config.apiKey, this, "invalid-user-token"); + } + return this._updateCurrentUser(user && user._clone(this)); + } + async _updateCurrentUser(user, skipBeforeStateCallbacks = false) { + if (this._deleted) { + return; + } + if (user) { + _assert(this.tenantId === user.tenantId, this, "tenant-id-mismatch"); + } + if (!skipBeforeStateCallbacks) { + await this.beforeStateQueue.runMiddleware(user); + } + return this.queue(async () => { + await this.directlySetCurrentUser(user); + this.notifyAuthListeners(); + }); + } + async signOut() { + await this.beforeStateQueue.runMiddleware(null); + if (this.redirectPersistenceManager || this._popupRedirectResolver) { + await this._setRedirectUser(null); + } + return this._updateCurrentUser(null, true); + } + setPersistence(persistence) { + return this.queue(async () => { + await this.assertedPersistence.setPersistence(_getInstance(persistence)); + }); + } + _getPersistence() { + return this.assertedPersistence.persistence.type; + } + _updateErrorMap(errorMap) { + this._errorFactory = new ErrorFactory("auth", "Firebase", errorMap()); + } + onAuthStateChanged(nextOrObserver, error, completed) { + return this.registerStateListener(this.authStateSubscription, nextOrObserver, error, completed); + } + beforeAuthStateChanged(callback, onAbort) { + return this.beforeStateQueue.pushCallback(callback, onAbort); + } + onIdTokenChanged(nextOrObserver, error, completed) { + return this.registerStateListener(this.idTokenSubscription, nextOrObserver, error, completed); + } + toJSON() { + var _a2; + return { + apiKey: this.config.apiKey, + authDomain: this.config.authDomain, + appName: this.name, + currentUser: (_a2 = this._currentUser) === null || _a2 === void 0 ? void 0 : _a2.toJSON() + }; + } + async _setRedirectUser(user, popupRedirectResolver) { + const redirectManager = await this.getOrInitRedirectPersistenceManager(popupRedirectResolver); + return user === null ? redirectManager.removeCurrentUser() : redirectManager.setCurrentUser(user); + } + async getOrInitRedirectPersistenceManager(popupRedirectResolver) { + if (!this.redirectPersistenceManager) { + const resolver = popupRedirectResolver && _getInstance(popupRedirectResolver) || this._popupRedirectResolver; + _assert(resolver, this, "argument-error"); + this.redirectPersistenceManager = await PersistenceUserManager.create(this, [_getInstance(resolver._redirectPersistence)], "redirectUser"); + this.redirectUser = await this.redirectPersistenceManager.getCurrentUser(); + } + return this.redirectPersistenceManager; + } + async _redirectUserForId(id2) { + var _a2, _b; + if (this._isInitialized) { + await this.queue(async () => { + }); + } + if (((_a2 = this._currentUser) === null || _a2 === void 0 ? void 0 : _a2._redirectEventId) === id2) { + return this._currentUser; + } + if (((_b = this.redirectUser) === null || _b === void 0 ? void 0 : _b._redirectEventId) === id2) { + return this.redirectUser; + } + return null; + } + async _persistUserIfCurrent(user) { + if (user === this.currentUser) { + return this.queue(async () => this.directlySetCurrentUser(user)); + } + } + _notifyListenersIfCurrent(user) { + if (user === this.currentUser) { + this.notifyAuthListeners(); + } + } + _key() { + return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`; + } + _startProactiveRefresh() { + this.isProactiveRefreshEnabled = true; + if (this.currentUser) { + this._currentUser._startProactiveRefresh(); + } + } + _stopProactiveRefresh() { + this.isProactiveRefreshEnabled = false; + if (this.currentUser) { + this._currentUser._stopProactiveRefresh(); + } + } + get _currentUser() { + return this.currentUser; + } + notifyAuthListeners() { + var _a2, _b; + if (!this._isInitialized) { + return; + } + this.idTokenSubscription.next(this.currentUser); + const currentUid = (_b = (_a2 = this.currentUser) === null || _a2 === void 0 ? void 0 : _a2.uid) !== null && _b !== void 0 ? _b : null; + if (this.lastNotifiedUid !== currentUid) { + this.lastNotifiedUid = currentUid; + this.authStateSubscription.next(this.currentUser); + } + } + registerStateListener(subscription, nextOrObserver, error, completed) { + if (this._deleted) { + return () => { + }; + } + const cb2 = typeof nextOrObserver === "function" ? nextOrObserver : nextOrObserver.next.bind(nextOrObserver); + const promise = this._isInitialized ? Promise.resolve() : this._initializationPromise; + _assert(promise, this, "internal-error"); + promise.then(() => cb2(this.currentUser)); + if (typeof nextOrObserver === "function") { + return subscription.addObserver(nextOrObserver, error, completed); + } else { + return subscription.addObserver(nextOrObserver); + } + } + async directlySetCurrentUser(user) { + if (this.currentUser && this.currentUser !== user) { + this._currentUser._stopProactiveRefresh(); + } + if (user && this.isProactiveRefreshEnabled) { + user._startProactiveRefresh(); + } + this.currentUser = user; + if (user) { + await this.assertedPersistence.setCurrentUser(user); + } else { + await this.assertedPersistence.removeCurrentUser(); + } + } + queue(action) { + this.operations = this.operations.then(action, action); + return this.operations; + } + get assertedPersistence() { + _assert(this.persistenceManager, this, "internal-error"); + return this.persistenceManager; + } + _logFramework(framework) { + if (!framework || this.frameworks.includes(framework)) { + return; + } + this.frameworks.push(framework); + this.frameworks.sort(); + this.clientVersion = _getClientVersion(this.config.clientPlatform, this._getFrameworks()); + } + _getFrameworks() { + return this.frameworks; + } + async _getAdditionalHeaders() { + var _a2; + const headers = { + ["X-Client-Version"]: this.clientVersion + }; + if (this.app.options.appId) { + headers["X-Firebase-gmpid"] = this.app.options.appId; + } + const heartbeatsHeader = await ((_a2 = this.heartbeatServiceProvider.getImmediate({ + optional: true + })) === null || _a2 === void 0 ? void 0 : _a2.getHeartbeatsHeader()); + if (heartbeatsHeader) { + headers["X-Firebase-Client"] = heartbeatsHeader; + } + return headers; + } +} +function _castAuth(auth2) { + return getModularInstance(auth2); +} +class Subscription { + constructor(auth2) { + this.auth = auth2; + this.observer = null; + this.addObserver = createSubscribe((observer) => this.observer = observer); + } + get next() { + _assert(this.observer, this.auth, "internal-error"); + return this.observer.next.bind(this.observer); + } +} +function connectAuthEmulator(auth2, url, options) { + const authInternal = _castAuth(auth2); + _assert(authInternal._canInitEmulator, authInternal, "emulator-config-failed"); + _assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme"); + const disableWarnings = !!(options === null || options === void 0 ? void 0 : options.disableWarnings); + const protocol = extractProtocol(url); + const { host, port } = extractHostAndPort(url); + const portStr = port === null ? "" : `:${port}`; + authInternal.config.emulator = { url: `${protocol}//${host}${portStr}/` }; + authInternal.settings.appVerificationDisabledForTesting = true; + authInternal.emulatorConfig = Object.freeze({ + host, + port, + protocol: protocol.replace(":", ""), + options: Object.freeze({ disableWarnings }) + }); + if (!disableWarnings) { + emitEmulatorWarning(); + } +} +function extractProtocol(url) { + const protocolEnd = url.indexOf(":"); + return protocolEnd < 0 ? "" : url.substr(0, protocolEnd + 1); +} +function extractHostAndPort(url) { + const protocol = extractProtocol(url); + const authority = /(\/\/)?([^?#/]+)/.exec(url.substr(protocol.length)); + if (!authority) { + return { host: "", port: null }; + } + const hostAndPort = authority[2].split("@").pop() || ""; + const bracketedIPv6 = /^(\[[^\]]+\])(:|$)/.exec(hostAndPort); + if (bracketedIPv6) { + const host = bracketedIPv6[1]; + return { host, port: parsePort(hostAndPort.substr(host.length + 1)) }; + } else { + const [host, port] = hostAndPort.split(":"); + return { host, port: parsePort(port) }; + } +} +function parsePort(portStr) { + if (!portStr) { + return null; + } + const port = Number(portStr); + if (isNaN(port)) { + return null; + } + return port; +} +function emitEmulatorWarning() { + function attachBanner() { + const el2 = document.createElement("p"); + const sty = el2.style; + el2.innerText = "Running in emulator mode. Do not use with production credentials."; + sty.position = "fixed"; + sty.width = "100%"; + sty.backgroundColor = "#ffffff"; + sty.border = ".1em solid #000000"; + sty.color = "#b50000"; + sty.bottom = "0px"; + sty.left = "0px"; + sty.margin = "0px"; + sty.zIndex = "10000"; + sty.textAlign = "center"; + el2.classList.add("firebase-emulator-warning"); + document.body.appendChild(el2); + } + if (typeof console !== "undefined" && typeof console.info === "function") { + console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."); + } + if (typeof window !== "undefined" && typeof document !== "undefined") { + if (document.readyState === "loading") { + window.addEventListener("DOMContentLoaded", attachBanner); + } else { + attachBanner(); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthCredential { + constructor(providerId, signInMethod) { + this.providerId = providerId; + this.signInMethod = signInMethod; + } + toJSON() { + return debugFail("not implemented"); + } + _getIdTokenResponse(_auth) { + return debugFail("not implemented"); + } + _linkToIdToken(_auth, _idToken) { + return debugFail("not implemented"); + } + _getReauthenticationResolver(_auth) { + return debugFail("not implemented"); + } +} +async function updateEmailPassword(auth2, request) { + return _performApiRequest(auth2, "POST", "/v1/accounts:update", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithPassword(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithPassword", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithEmailLink$1(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithEmailLink", _addTidIfNecessary(auth2, request)); +} +async function signInWithEmailLinkForLinking(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithEmailLink", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class EmailAuthCredential extends AuthCredential { + constructor(_email, _password, signInMethod, _tenantId = null) { + super("password", signInMethod); + this._email = _email; + this._password = _password; + this._tenantId = _tenantId; + } + static _fromEmailAndPassword(email, password) { + return new EmailAuthCredential(email, password, "password"); + } + static _fromEmailAndCode(email, oobCode, tenantId = null) { + return new EmailAuthCredential(email, oobCode, "emailLink", tenantId); + } + toJSON() { + return { + email: this._email, + password: this._password, + signInMethod: this.signInMethod, + tenantId: this._tenantId + }; + } + static fromJSON(json) { + const obj = typeof json === "string" ? JSON.parse(json) : json; + if ((obj === null || obj === void 0 ? void 0 : obj.email) && (obj === null || obj === void 0 ? void 0 : obj.password)) { + if (obj.signInMethod === "password") { + return this._fromEmailAndPassword(obj.email, obj.password); + } else if (obj.signInMethod === "emailLink") { + return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId); + } + } + return null; + } + async _getIdTokenResponse(auth2) { + switch (this.signInMethod) { + case "password": + return signInWithPassword(auth2, { + returnSecureToken: true, + email: this._email, + password: this._password + }); + case "emailLink": + return signInWithEmailLink$1(auth2, { + email: this._email, + oobCode: this._password + }); + default: + _fail(auth2, "internal-error"); + } + } + async _linkToIdToken(auth2, idToken) { + switch (this.signInMethod) { + case "password": + return updateEmailPassword(auth2, { + idToken, + returnSecureToken: true, + email: this._email, + password: this._password + }); + case "emailLink": + return signInWithEmailLinkForLinking(auth2, { + idToken, + email: this._email, + oobCode: this._password + }); + default: + _fail(auth2, "internal-error"); + } + } + _getReauthenticationResolver(auth2) { + return this._getIdTokenResponse(auth2); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signInWithIdp(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signInWithIdp", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const IDP_REQUEST_URI$1 = "http://localhost"; +class OAuthCredential extends AuthCredential { + constructor() { + super(...arguments); + this.pendingToken = null; + } + static _fromParams(params) { + const cred = new OAuthCredential(params.providerId, params.signInMethod); + if (params.idToken || params.accessToken) { + if (params.idToken) { + cred.idToken = params.idToken; + } + if (params.accessToken) { + cred.accessToken = params.accessToken; + } + if (params.nonce && !params.pendingToken) { + cred.nonce = params.nonce; + } + if (params.pendingToken) { + cred.pendingToken = params.pendingToken; + } + } else if (params.oauthToken && params.oauthTokenSecret) { + cred.accessToken = params.oauthToken; + cred.secret = params.oauthTokenSecret; + } else { + _fail("argument-error"); + } + return cred; + } + 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(json) { + const obj = typeof json === "string" ? JSON.parse(json) : json; + const { providerId, signInMethod } = obj, rest = __rest(obj, ["providerId", "signInMethod"]); + if (!providerId || !signInMethod) { + return null; + } + const cred = new OAuthCredential(providerId, signInMethod); + cred.idToken = rest.idToken || void 0; + cred.accessToken = rest.accessToken || void 0; + cred.secret = rest.secret; + cred.nonce = rest.nonce; + cred.pendingToken = rest.pendingToken || null; + return cred; + } + _getIdTokenResponse(auth2) { + const request = this.buildRequest(); + return signInWithIdp(auth2, request); + } + _linkToIdToken(auth2, idToken) { + const request = this.buildRequest(); + request.idToken = idToken; + return signInWithIdp(auth2, request); + } + _getReauthenticationResolver(auth2) { + const request = this.buildRequest(); + request.autoCreate = false; + return signInWithIdp(auth2, request); + } + buildRequest() { + const request = { + requestUri: IDP_REQUEST_URI$1, + returnSecureToken: true + }; + if (this.pendingToken) { + request.pendingToken = this.pendingToken; + } else { + const postBody = {}; + if (this.idToken) { + postBody["id_token"] = this.idToken; + } + if (this.accessToken) { + postBody["access_token"] = this.accessToken; + } + if (this.secret) { + postBody["oauth_token_secret"] = this.secret; + } + postBody["providerId"] = this.providerId; + if (this.nonce && !this.pendingToken) { + postBody["nonce"] = this.nonce; + } + request.postBody = querystring(postBody); + } + return request; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function parseMode(mode) { + switch (mode) { + 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; + } +} +function parseDeepLink(url) { + const link = querystringDecode(extractQuerystring(url))["link"]; + const doubleDeepLink = link ? querystringDecode(extractQuerystring(link))["deep_link_id"] : null; + const iOSDeepLink = querystringDecode(extractQuerystring(url))["deep_link_id"]; + const iOSDoubleDeepLink = iOSDeepLink ? querystringDecode(extractQuerystring(iOSDeepLink))["link"] : null; + return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url; +} +class ActionCodeURL { + constructor(actionLink) { + var _a2, _b, _c2, _d, _e2, _f; + const searchParams = querystringDecode(extractQuerystring(actionLink)); + const apiKey = (_a2 = searchParams["apiKey"]) !== null && _a2 !== void 0 ? _a2 : null; + const code = (_b = searchParams["oobCode"]) !== null && _b !== void 0 ? _b : null; + const operation = parseMode((_c2 = searchParams["mode"]) !== null && _c2 !== void 0 ? _c2 : null); + _assert(apiKey && code && operation, "argument-error"); + this.apiKey = apiKey; + this.operation = operation; + this.code = code; + this.continueUrl = (_d = searchParams["continueUrl"]) !== null && _d !== void 0 ? _d : null; + this.languageCode = (_e2 = searchParams["languageCode"]) !== null && _e2 !== void 0 ? _e2 : null; + this.tenantId = (_f = searchParams["tenantId"]) !== null && _f !== void 0 ? _f : null; + } + static parseLink(link) { + const actionLink = parseDeepLink(link); + try { + return new ActionCodeURL(actionLink); + } catch (_a2) { + return null; + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class EmailAuthProvider { + constructor() { + this.providerId = EmailAuthProvider.PROVIDER_ID; + } + static credential(email, password) { + return EmailAuthCredential._fromEmailAndPassword(email, password); + } + static credentialWithLink(email, emailLink) { + const actionCodeUrl = ActionCodeURL.parseLink(emailLink); + _assert(actionCodeUrl, "argument-error"); + return EmailAuthCredential._fromEmailAndCode(email, actionCodeUrl.code, actionCodeUrl.tenantId); + } +} +EmailAuthProvider.PROVIDER_ID = "password"; +EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD = "password"; +EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD = "emailLink"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FederatedAuthProvider { + constructor(providerId) { + this.providerId = providerId; + this.defaultLanguageCode = null; + this.customParameters = {}; + } + setDefaultLanguage(languageCode) { + this.defaultLanguageCode = languageCode; + } + setCustomParameters(customOAuthParameters) { + this.customParameters = customOAuthParameters; + return this; + } + getCustomParameters() { + return this.customParameters; + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BaseOAuthProvider extends FederatedAuthProvider { + constructor() { + super(...arguments); + this.scopes = []; + } + addScope(scope) { + if (!this.scopes.includes(scope)) { + this.scopes.push(scope); + } + return this; + } + getScopes() { + return [...this.scopes]; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class FacebookAuthProvider extends BaseOAuthProvider { + constructor() { + super("facebook.com"); + } + static credential(accessToken) { + return OAuthCredential._fromParams({ + providerId: FacebookAuthProvider.PROVIDER_ID, + signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD, + accessToken + }); + } + static credentialFromResult(userCredential) { + return FacebookAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return FacebookAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse || !("oauthAccessToken" in tokenResponse)) { + return null; + } + if (!tokenResponse.oauthAccessToken) { + return null; + } + try { + return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD = "facebook.com"; +FacebookAuthProvider.PROVIDER_ID = "facebook.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GoogleAuthProvider extends BaseOAuthProvider { + constructor() { + super("google.com"); + this.addScope("profile"); + } + static credential(idToken, accessToken) { + return OAuthCredential._fromParams({ + providerId: GoogleAuthProvider.PROVIDER_ID, + signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD, + idToken, + accessToken + }); + } + static credentialFromResult(userCredential) { + return GoogleAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return GoogleAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse) { + return null; + } + const { oauthIdToken, oauthAccessToken } = tokenResponse; + if (!oauthIdToken && !oauthAccessToken) { + return null; + } + try { + return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD = "google.com"; +GoogleAuthProvider.PROVIDER_ID = "google.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GithubAuthProvider extends BaseOAuthProvider { + constructor() { + super("github.com"); + } + static credential(accessToken) { + return OAuthCredential._fromParams({ + providerId: GithubAuthProvider.PROVIDER_ID, + signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD, + accessToken + }); + } + static credentialFromResult(userCredential) { + return GithubAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return GithubAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse || !("oauthAccessToken" in tokenResponse)) { + return null; + } + if (!tokenResponse.oauthAccessToken) { + return null; + } + try { + return GithubAuthProvider.credential(tokenResponse.oauthAccessToken); + } catch (_a2) { + return null; + } + } +} +GithubAuthProvider.GITHUB_SIGN_IN_METHOD = "github.com"; +GithubAuthProvider.PROVIDER_ID = "github.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class TwitterAuthProvider extends BaseOAuthProvider { + constructor() { + super("twitter.com"); + } + static credential(token, secret) { + return OAuthCredential._fromParams({ + providerId: TwitterAuthProvider.PROVIDER_ID, + signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD, + oauthToken: token, + oauthTokenSecret: secret + }); + } + static credentialFromResult(userCredential) { + return TwitterAuthProvider.credentialFromTaggedObject(userCredential); + } + static credentialFromError(error) { + return TwitterAuthProvider.credentialFromTaggedObject(error.customData || {}); + } + static credentialFromTaggedObject({ _tokenResponse: tokenResponse }) { + if (!tokenResponse) { + return null; + } + const { oauthAccessToken, oauthTokenSecret } = tokenResponse; + if (!oauthAccessToken || !oauthTokenSecret) { + return null; + } + try { + return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret); + } catch (_a2) { + return null; + } + } +} +TwitterAuthProvider.TWITTER_SIGN_IN_METHOD = "twitter.com"; +TwitterAuthProvider.PROVIDER_ID = "twitter.com"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function signUp(auth2, request) { + return _performSignInRequest(auth2, "POST", "/v1/accounts:signUp", _addTidIfNecessary(auth2, request)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class UserCredentialImpl { + constructor(params) { + this.user = params.user; + this.providerId = params.providerId; + this._tokenResponse = params._tokenResponse; + this.operationType = params.operationType; + } + static async _fromIdTokenResponse(auth2, operationType, idTokenResponse, isAnonymous = false) { + const user = await UserImpl._fromIdTokenResponse(auth2, idTokenResponse, isAnonymous); + const providerId = providerIdForResponse(idTokenResponse); + const userCred = new UserCredentialImpl({ + user, + providerId, + _tokenResponse: idTokenResponse, + operationType + }); + return userCred; + } + static async _forOperation(user, operationType, response) { + await user._updateTokensIfNecessary(response, true); + const providerId = providerIdForResponse(response); + return new UserCredentialImpl({ + user, + providerId, + _tokenResponse: response, + operationType + }); + } +} +function providerIdForResponse(response) { + if (response.providerId) { + return response.providerId; + } + if ("phoneNumber" in response) { + return "phone"; + } + return null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class MultiFactorError extends FirebaseError { + constructor(auth2, error, operationType, user) { + var _a2; + super(error.code, error.message); + this.operationType = operationType; + this.user = user; + Object.setPrototypeOf(this, MultiFactorError.prototype); + this.customData = { + appName: auth2.name, + tenantId: (_a2 = auth2.tenantId) !== null && _a2 !== void 0 ? _a2 : void 0, + _serverResponse: error.customData._serverResponse, + operationType + }; + } + static _fromErrorAndOperation(auth2, error, operationType, user) { + return new MultiFactorError(auth2, error, operationType, user); + } +} +function _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential, user) { + const idTokenProvider = operationType === "reauthenticate" ? credential._getReauthenticationResolver(auth2) : credential._getIdTokenResponse(auth2); + return idTokenProvider.catch((error) => { + if (error.code === `auth/${"multi-factor-auth-required"}`) { + throw MultiFactorError._fromErrorAndOperation(auth2, error, operationType, user); + } + throw error; + }); +} +async function _link$1(user, credential, bypassAuthState = false) { + const response = await _logoutIfInvalidated(user, credential._linkToIdToken(user.auth, await user.getIdToken()), bypassAuthState); + return UserCredentialImpl._forOperation(user, "link", response); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _reauthenticate(user, credential, bypassAuthState = false) { + const { auth: auth2 } = user; + const operationType = "reauthenticate"; + try { + const response = await _logoutIfInvalidated(user, _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential, user), bypassAuthState); + _assert(response.idToken, auth2, "internal-error"); + const parsed = _parseToken(response.idToken); + _assert(parsed, auth2, "internal-error"); + const { sub: localId } = parsed; + _assert(user.uid === localId, auth2, "user-mismatch"); + return UserCredentialImpl._forOperation(user, operationType, response); + } catch (e) { + if ((e === null || e === void 0 ? void 0 : e.code) === `auth/${"user-not-found"}`) { + _fail(auth2, "user-mismatch"); + } + throw e; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _signInWithCredential(auth2, credential, bypassAuthState = false) { + const operationType = "signIn"; + const response = await _processCredentialSavingMfaContextIfNecessary(auth2, operationType, credential); + const userCredential = await UserCredentialImpl._fromIdTokenResponse(auth2, operationType, response); + if (!bypassAuthState) { + await auth2._updateCurrentUser(userCredential.user); + } + return userCredential; +} +async function signInWithCredential(auth2, credential) { + return _signInWithCredential(_castAuth(auth2), credential); +} +async function createUserWithEmailAndPassword(auth2, email, password) { + const authInternal = _castAuth(auth2); + const response = await signUp(authInternal, { + returnSecureToken: true, + email, + password + }); + const userCredential = await UserCredentialImpl._fromIdTokenResponse(authInternal, "signIn", response); + await authInternal._updateCurrentUser(userCredential.user); + return userCredential; +} +function signInWithEmailAndPassword(auth2, email, password) { + return signInWithCredential(getModularInstance(auth2), EmailAuthProvider.credential(email, password)); +} +function onIdTokenChanged(auth2, nextOrObserver, error, completed) { + return getModularInstance(auth2).onIdTokenChanged(nextOrObserver, error, completed); +} +function beforeAuthStateChanged(auth2, callback, onAbort) { + return getModularInstance(auth2).beforeAuthStateChanged(callback, onAbort); +} +function onAuthStateChanged(auth2, nextOrObserver, error, completed) { + return getModularInstance(auth2).onAuthStateChanged(nextOrObserver, error, completed); +} +function signOut(auth2) { + return getModularInstance(auth2).signOut(); +} +const STORAGE_AVAILABLE_KEY = "__sak"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BrowserPersistenceClass { + constructor(storageRetriever, type) { + this.storageRetriever = storageRetriever; + this.type = type; + } + _isAvailable() { + try { + if (!this.storage) { + return Promise.resolve(false); + } + this.storage.setItem(STORAGE_AVAILABLE_KEY, "1"); + this.storage.removeItem(STORAGE_AVAILABLE_KEY); + return Promise.resolve(true); + } catch (_a2) { + return Promise.resolve(false); + } + } + _set(key, value) { + this.storage.setItem(key, JSON.stringify(value)); + return Promise.resolve(); + } + _get(key) { + const json = this.storage.getItem(key); + return Promise.resolve(json ? JSON.parse(json) : null); + } + _remove(key) { + this.storage.removeItem(key); + return Promise.resolve(); + } + get storage() { + return this.storageRetriever(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _iframeCannotSyncWebStorage() { + const ua2 = getUA(); + return _isSafari(ua2) || _isIOS(ua2); +} +const _POLLING_INTERVAL_MS$1 = 1e3; +const IE10_LOCAL_STORAGE_SYNC_DELAY = 10; +class BrowserLocalPersistence extends BrowserPersistenceClass { + constructor() { + super(() => window.localStorage, "LOCAL"); + this.boundEventHandler = (event, poll) => this.onStorageEvent(event, poll); + this.listeners = {}; + this.localCache = {}; + this.pollTimer = null; + this.safariLocalStorageNotSynced = _iframeCannotSyncWebStorage() && _isIframe(); + this.fallbackToPolling = _isMobileBrowser(); + this._shouldAllowMigration = true; + } + forAllChangedKeys(cb2) { + for (const key of Object.keys(this.listeners)) { + const newValue = this.storage.getItem(key); + const oldValue = this.localCache[key]; + if (newValue !== oldValue) { + cb2(key, oldValue, newValue); + } + } + } + onStorageEvent(event, poll = false) { + if (!event.key) { + this.forAllChangedKeys((key2, _oldValue, newValue) => { + this.notifyListeners(key2, newValue); + }); + return; + } + const key = event.key; + if (poll) { + this.detachListener(); + } else { + this.stopPolling(); + } + if (this.safariLocalStorageNotSynced) { + const storedValue2 = this.storage.getItem(key); + if (event.newValue !== storedValue2) { + if (event.newValue !== null) { + this.storage.setItem(key, event.newValue); + } else { + this.storage.removeItem(key); + } + } else if (this.localCache[key] === event.newValue && !poll) { + return; + } + } + const triggerListeners = () => { + const storedValue2 = this.storage.getItem(key); + if (!poll && this.localCache[key] === storedValue2) { + return; + } + this.notifyListeners(key, storedValue2); + }; + const storedValue = this.storage.getItem(key); + if (_isIE10() && storedValue !== event.newValue && event.newValue !== event.oldValue) { + setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY); + } else { + triggerListeners(); + } + } + notifyListeners(key, value) { + this.localCache[key] = value; + const listeners = this.listeners[key]; + if (listeners) { + for (const listener of Array.from(listeners)) { + listener(value ? JSON.parse(value) : value); + } + } + } + startPolling() { + this.stopPolling(); + this.pollTimer = setInterval(() => { + this.forAllChangedKeys((key, oldValue, newValue) => { + this.onStorageEvent( + new StorageEvent("storage", { + key, + oldValue, + newValue + }), + true + ); + }); + }, _POLLING_INTERVAL_MS$1); + } + stopPolling() { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + attachListener() { + window.addEventListener("storage", this.boundEventHandler); + } + detachListener() { + window.removeEventListener("storage", this.boundEventHandler); + } + _addListener(key, listener) { + if (Object.keys(this.listeners).length === 0) { + if (this.fallbackToPolling) { + this.startPolling(); + } else { + this.attachListener(); + } + } + if (!this.listeners[key]) { + this.listeners[key] = /* @__PURE__ */ new Set(); + this.localCache[key] = this.storage.getItem(key); + } + this.listeners[key].add(listener); + } + _removeListener(key, listener) { + if (this.listeners[key]) { + this.listeners[key].delete(listener); + if (this.listeners[key].size === 0) { + delete this.listeners[key]; + } + } + if (Object.keys(this.listeners).length === 0) { + this.detachListener(); + this.stopPolling(); + } + } + async _set(key, value) { + await super._set(key, value); + this.localCache[key] = JSON.stringify(value); + } + async _get(key) { + const value = await super._get(key); + this.localCache[key] = JSON.stringify(value); + return value; + } + async _remove(key) { + await super._remove(key); + delete this.localCache[key]; + } +} +BrowserLocalPersistence.type = "LOCAL"; +const browserLocalPersistence = BrowserLocalPersistence; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class BrowserSessionPersistence extends BrowserPersistenceClass { + constructor() { + super(() => window.sessionStorage, "SESSION"); + } + _addListener(_key, _listener) { + return; + } + _removeListener(_key, _listener) { + return; + } +} +BrowserSessionPersistence.type = "SESSION"; +const browserSessionPersistence = BrowserSessionPersistence; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _allSettled(promises) { + return Promise.all(promises.map(async (promise) => { + try { + const value = await promise; + return { + fulfilled: true, + value + }; + } catch (reason) { + return { + fulfilled: false, + reason + }; + } + })); +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Receiver { + constructor(eventTarget) { + this.eventTarget = eventTarget; + this.handlersMap = {}; + this.boundEventHandler = this.handleEvent.bind(this); + } + static _getInstance(eventTarget) { + const existingInstance = this.receivers.find((receiver) => receiver.isListeningto(eventTarget)); + if (existingInstance) { + return existingInstance; + } + const newInstance = new Receiver(eventTarget); + this.receivers.push(newInstance); + return newInstance; + } + isListeningto(eventTarget) { + return this.eventTarget === eventTarget; + } + async handleEvent(event) { + const messageEvent = event; + const { eventId, eventType, data } = messageEvent.data; + const handlers = this.handlersMap[eventType]; + if (!(handlers === null || handlers === void 0 ? void 0 : handlers.size)) { + return; + } + messageEvent.ports[0].postMessage({ + status: "ack", + eventId, + eventType + }); + const promises = Array.from(handlers).map(async (handler) => handler(messageEvent.origin, data)); + const response = await _allSettled(promises); + messageEvent.ports[0].postMessage({ + status: "done", + eventId, + eventType, + response + }); + } + _subscribe(eventType, eventHandler) { + if (Object.keys(this.handlersMap).length === 0) { + this.eventTarget.addEventListener("message", this.boundEventHandler); + } + if (!this.handlersMap[eventType]) { + this.handlersMap[eventType] = /* @__PURE__ */ new Set(); + } + this.handlersMap[eventType].add(eventHandler); + } + _unsubscribe(eventType, eventHandler) { + if (this.handlersMap[eventType] && eventHandler) { + this.handlersMap[eventType].delete(eventHandler); + } + if (!eventHandler || this.handlersMap[eventType].size === 0) { + delete this.handlersMap[eventType]; + } + if (Object.keys(this.handlersMap).length === 0) { + this.eventTarget.removeEventListener("message", this.boundEventHandler); + } + } +} +Receiver.receivers = []; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _generateEventId(prefix = "", digits = 10) { + let random = ""; + for (let i = 0; i < digits; i++) { + random += Math.floor(Math.random() * 10); + } + return prefix + random; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Sender { + constructor(target) { + this.target = target; + this.handlers = /* @__PURE__ */ new Set(); + } + removeMessageHandler(handler) { + if (handler.messageChannel) { + handler.messageChannel.port1.removeEventListener("message", handler.onMessage); + handler.messageChannel.port1.close(); + } + this.handlers.delete(handler); + } + async _send(eventType, data, timeout = 50) { + const messageChannel = typeof MessageChannel !== "undefined" ? new MessageChannel() : null; + if (!messageChannel) { + throw new Error("connection_unavailable"); + } + let completionTimer; + let handler; + return new Promise((resolve, reject) => { + const eventId = _generateEventId("", 20); + messageChannel.port1.start(); + const ackTimer = setTimeout(() => { + reject(new Error("unsupported_event")); + }, timeout); + handler = { + messageChannel, + onMessage(event) { + const messageEvent = event; + if (messageEvent.data.eventId !== eventId) { + return; + } + switch (messageEvent.data.status) { + case "ack": + clearTimeout(ackTimer); + completionTimer = setTimeout(() => { + reject(new Error("timeout")); + }, 3e3); + break; + case "done": + clearTimeout(completionTimer); + resolve(messageEvent.data.response); + break; + default: + clearTimeout(ackTimer); + clearTimeout(completionTimer); + reject(new Error("invalid_response")); + break; + } + } + }; + this.handlers.add(handler); + messageChannel.port1.addEventListener("message", handler.onMessage); + this.target.postMessage({ + eventType, + eventId, + data + }, [messageChannel.port2]); + }).finally(() => { + if (handler) { + this.removeMessageHandler(handler); + } + }); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _window() { + return window; +} +function _setWindowLocation(url) { + _window().location.href = url; +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _isWorker() { + return typeof _window()["WorkerGlobalScope"] !== "undefined" && typeof _window()["importScripts"] === "function"; +} +async function _getActiveServiceWorker() { + if (!(navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker)) { + return null; + } + try { + const registration = await navigator.serviceWorker.ready; + return registration.active; + } catch (_a2) { + return null; + } +} +function _getServiceWorkerController() { + var _a2; + return ((_a2 = navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker) === null || _a2 === void 0 ? void 0 : _a2.controller) || null; +} +function _getWorkerGlobalScope() { + return _isWorker() ? self : null; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DB_NAME = "firebaseLocalStorageDb"; +const DB_VERSION = 1; +const DB_OBJECTSTORE_NAME = "firebaseLocalStorage"; +const DB_DATA_KEYPATH = "fbase_key"; +class DBPromise { + constructor(request) { + this.request = request; + } + toPromise() { + return new Promise((resolve, reject) => { + this.request.addEventListener("success", () => { + resolve(this.request.result); + }); + this.request.addEventListener("error", () => { + reject(this.request.error); + }); + }); + } +} +function getObjectStore(db2, isReadWrite) { + return db2.transaction([DB_OBJECTSTORE_NAME], isReadWrite ? "readwrite" : "readonly").objectStore(DB_OBJECTSTORE_NAME); +} +function _deleteDatabase() { + const request = indexedDB.deleteDatabase(DB_NAME); + return new DBPromise(request).toPromise(); +} +function _openDatabase() { + const request = indexedDB.open(DB_NAME, DB_VERSION); + return new Promise((resolve, reject) => { + request.addEventListener("error", () => { + reject(request.error); + }); + request.addEventListener("upgradeneeded", () => { + const db2 = request.result; + try { + db2.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH }); + } catch (e) { + reject(e); + } + }); + request.addEventListener("success", async () => { + const db2 = request.result; + if (!db2.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) { + db2.close(); + await _deleteDatabase(); + resolve(await _openDatabase()); + } else { + resolve(db2); + } + }); + }); +} +async function _putObject(db2, key, value) { + const request = getObjectStore(db2, true).put({ + [DB_DATA_KEYPATH]: key, + value + }); + return new DBPromise(request).toPromise(); +} +async function getObject(db2, key) { + const request = getObjectStore(db2, false).get(key); + const data = await new DBPromise(request).toPromise(); + return data === void 0 ? null : data.value; +} +function _deleteObject(db2, key) { + const request = getObjectStore(db2, true).delete(key); + return new DBPromise(request).toPromise(); +} +const _POLLING_INTERVAL_MS = 800; +const _TRANSACTION_RETRY_COUNT = 3; +class IndexedDBLocalPersistence { + constructor() { + this.type = "LOCAL"; + this._shouldAllowMigration = true; + this.listeners = {}; + this.localCache = {}; + this.pollTimer = null; + this.pendingWrites = 0; + this.receiver = null; + this.sender = null; + this.serviceWorkerReceiverAvailable = false; + this.activeServiceWorker = null; + this._workerInitializationPromise = this.initializeServiceWorkerMessaging().then(() => { + }, () => { + }); + } + async _openDb() { + if (this.db) { + return this.db; + } + this.db = await _openDatabase(); + return this.db; + } + async _withRetries(op) { + let numAttempts = 0; + while (true) { + try { + const db2 = await this._openDb(); + return await op(db2); + } catch (e) { + if (numAttempts++ > _TRANSACTION_RETRY_COUNT) { + throw e; + } + if (this.db) { + this.db.close(); + this.db = void 0; + } + } + } + } + async initializeServiceWorkerMessaging() { + return _isWorker() ? this.initializeReceiver() : this.initializeSender(); + } + async initializeReceiver() { + this.receiver = Receiver._getInstance(_getWorkerGlobalScope()); + this.receiver._subscribe("keyChanged", async (_origin, data) => { + const keys = await this._poll(); + return { + keyProcessed: keys.includes(data.key) + }; + }); + this.receiver._subscribe("ping", async (_origin, _data) => { + return ["keyChanged"]; + }); + } + async initializeSender() { + var _a2, _b; + this.activeServiceWorker = await _getActiveServiceWorker(); + if (!this.activeServiceWorker) { + return; + } + this.sender = new Sender(this.activeServiceWorker); + const results = await this.sender._send("ping", {}, 800); + if (!results) { + return; + } + if (((_a2 = results[0]) === null || _a2 === void 0 ? void 0 : _a2.fulfilled) && ((_b = results[0]) === null || _b === void 0 ? void 0 : _b.value.includes("keyChanged"))) { + this.serviceWorkerReceiverAvailable = true; + } + } + async notifyServiceWorker(key) { + if (!this.sender || !this.activeServiceWorker || _getServiceWorkerController() !== this.activeServiceWorker) { + return; + } + try { + await this.sender._send( + "keyChanged", + { key }, + this.serviceWorkerReceiverAvailable ? 800 : 50 + ); + } catch (_a2) { + } + } + async _isAvailable() { + try { + if (!indexedDB) { + return false; + } + const db2 = await _openDatabase(); + await _putObject(db2, STORAGE_AVAILABLE_KEY, "1"); + await _deleteObject(db2, STORAGE_AVAILABLE_KEY); + return true; + } catch (_a2) { + } + return false; + } + async _withPendingWrite(write) { + this.pendingWrites++; + try { + await write(); + } finally { + this.pendingWrites--; + } + } + async _set(key, value) { + return this._withPendingWrite(async () => { + await this._withRetries((db2) => _putObject(db2, key, value)); + this.localCache[key] = value; + return this.notifyServiceWorker(key); + }); + } + async _get(key) { + const obj = await this._withRetries((db2) => getObject(db2, key)); + this.localCache[key] = obj; + return obj; + } + async _remove(key) { + return this._withPendingWrite(async () => { + await this._withRetries((db2) => _deleteObject(db2, key)); + delete this.localCache[key]; + return this.notifyServiceWorker(key); + }); + } + async _poll() { + const result = await this._withRetries((db2) => { + const getAllRequest = getObjectStore(db2, false).getAll(); + return new DBPromise(getAllRequest).toPromise(); + }); + if (!result) { + return []; + } + if (this.pendingWrites !== 0) { + return []; + } + const keys = []; + const keysInResult = /* @__PURE__ */ new Set(); + for (const { fbase_key: key, value } of result) { + keysInResult.add(key); + if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) { + this.notifyListeners(key, value); + keys.push(key); + } + } + for (const localKey of Object.keys(this.localCache)) { + if (this.localCache[localKey] && !keysInResult.has(localKey)) { + this.notifyListeners(localKey, null); + keys.push(localKey); + } + } + return keys; + } + notifyListeners(key, newValue) { + this.localCache[key] = newValue; + const listeners = this.listeners[key]; + if (listeners) { + for (const listener of Array.from(listeners)) { + listener(newValue); + } + } + } + startPolling() { + this.stopPolling(); + this.pollTimer = setInterval(async () => this._poll(), _POLLING_INTERVAL_MS); + } + stopPolling() { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + _addListener(key, listener) { + if (Object.keys(this.listeners).length === 0) { + this.startPolling(); + } + if (!this.listeners[key]) { + this.listeners[key] = /* @__PURE__ */ new Set(); + void this._get(key); + } + this.listeners[key].add(listener); + } + _removeListener(key, listener) { + if (this.listeners[key]) { + this.listeners[key].delete(listener); + if (this.listeners[key].size === 0) { + delete this.listeners[key]; + } + } + if (Object.keys(this.listeners).length === 0) { + this.stopPolling(); + } + } +} +IndexedDBLocalPersistence.type = "LOCAL"; +const indexedDBLocalPersistence = IndexedDBLocalPersistence; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getScriptParentElement() { + var _a2, _b; + return (_b = (_a2 = document.getElementsByTagName("head")) === null || _a2 === void 0 ? void 0 : _a2[0]) !== null && _b !== void 0 ? _b : document; +} +function _loadJS(url) { + return new Promise((resolve, reject) => { + const el2 = document.createElement("script"); + el2.setAttribute("src", url); + el2.onload = resolve; + el2.onerror = (e) => { + const error = _createError("internal-error"); + error.customData = e; + reject(error); + }; + el2.type = "text/javascript"; + el2.charset = "UTF-8"; + getScriptParentElement().appendChild(el2); + }); +} +function _generateCallbackName(prefix) { + return `__${prefix}${Math.floor(Math.random() * 1e6)}`; +} +new Delay(3e4, 6e4); +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function _withDefaultResolver(auth2, resolverOverride) { + if (resolverOverride) { + return _getInstance(resolverOverride); + } + _assert(auth2._popupRedirectResolver, auth2, "argument-error"); + return auth2._popupRedirectResolver; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class IdpCredential extends AuthCredential { + constructor(params) { + super("custom", "custom"); + this.params = params; + } + _getIdTokenResponse(auth2) { + return signInWithIdp(auth2, this._buildIdpRequest()); + } + _linkToIdToken(auth2, idToken) { + return signInWithIdp(auth2, this._buildIdpRequest(idToken)); + } + _getReauthenticationResolver(auth2) { + return signInWithIdp(auth2, this._buildIdpRequest()); + } + _buildIdpRequest(idToken) { + const request = { + requestUri: this.params.requestUri, + sessionId: this.params.sessionId, + postBody: this.params.postBody, + tenantId: this.params.tenantId, + pendingToken: this.params.pendingToken, + returnSecureToken: true, + returnIdpCredential: true + }; + if (idToken) { + request.idToken = idToken; + } + return request; + } +} +function _signIn(params) { + return _signInWithCredential(params.auth, new IdpCredential(params), params.bypassAuthState); +} +function _reauth(params) { + const { auth: auth2, user } = params; + _assert(user, auth2, "internal-error"); + return _reauthenticate(user, new IdpCredential(params), params.bypassAuthState); +} +async function _link(params) { + const { auth: auth2, user } = params; + _assert(user, auth2, "internal-error"); + return _link$1(user, new IdpCredential(params), params.bypassAuthState); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AbstractPopupRedirectOperation { + constructor(auth2, filter, resolver, user, bypassAuthState = false) { + this.auth = auth2; + this.resolver = resolver; + this.user = user; + this.bypassAuthState = bypassAuthState; + this.pendingPromise = null; + this.eventManager = null; + this.filter = Array.isArray(filter) ? filter : [filter]; + } + execute() { + return new Promise(async (resolve, reject) => { + this.pendingPromise = { resolve, reject }; + try { + this.eventManager = await this.resolver._initialize(this.auth); + await this.onExecution(); + this.eventManager.registerConsumer(this); + } catch (e) { + this.reject(e); + } + }); + } + async onAuthEvent(event) { + const { urlResponse, sessionId, postBody, tenantId, error, type } = event; + if (error) { + this.reject(error); + return; + } + const params = { + auth: this.auth, + requestUri: urlResponse, + sessionId, + tenantId: tenantId || void 0, + postBody: postBody || void 0, + user: this.user, + bypassAuthState: this.bypassAuthState + }; + try { + this.resolve(await this.getIdpTask(type)(params)); + } catch (e) { + this.reject(e); + } + } + onError(error) { + this.reject(error); + } + getIdpTask(type) { + switch (type) { + case "signInViaPopup": + case "signInViaRedirect": + return _signIn; + case "linkViaPopup": + case "linkViaRedirect": + return _link; + case "reauthViaPopup": + case "reauthViaRedirect": + return _reauth; + default: + _fail(this.auth, "internal-error"); + } + } + resolve(cred) { + debugAssert(this.pendingPromise, "Pending promise was never set"); + this.pendingPromise.resolve(cred); + this.unregisterAndCleanUp(); + } + reject(error) { + debugAssert(this.pendingPromise, "Pending promise was never set"); + this.pendingPromise.reject(error); + this.unregisterAndCleanUp(); + } + unregisterAndCleanUp() { + if (this.eventManager) { + this.eventManager.unregisterConsumer(this); + } + this.pendingPromise = null; + this.cleanUp(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2e3, 1e4); +async function signInWithPopup(auth2, provider2, resolver) { + const authInternal = _castAuth(auth2); + _assertInstanceOf(auth2, provider2, FederatedAuthProvider); + const resolverInternal = _withDefaultResolver(authInternal, resolver); + const action = new PopupOperation(authInternal, "signInViaPopup", provider2, resolverInternal); + return action.executeNotNull(); +} +class PopupOperation extends AbstractPopupRedirectOperation { + constructor(auth2, filter, provider2, resolver, user) { + super(auth2, filter, resolver, user); + this.provider = provider2; + this.authWindow = null; + this.pollId = null; + if (PopupOperation.currentPopupAction) { + PopupOperation.currentPopupAction.cancel(); + } + PopupOperation.currentPopupAction = this; + } + async executeNotNull() { + const result = await this.execute(); + _assert(result, this.auth, "internal-error"); + return result; + } + async onExecution() { + debugAssert(this.filter.length === 1, "Popup operations only handle one event"); + const eventId = _generateEventId(); + this.authWindow = await this.resolver._openPopup( + this.auth, + this.provider, + this.filter[0], + eventId + ); + this.authWindow.associatedEvent = eventId; + this.resolver._originValidation(this.auth).catch((e) => { + this.reject(e); + }); + this.resolver._isIframeWebStorageSupported(this.auth, (isSupported) => { + if (!isSupported) { + this.reject(_createError(this.auth, "web-storage-unsupported")); + } + }); + this.pollUserCancellation(); + } + get eventId() { + var _a2; + return ((_a2 = this.authWindow) === null || _a2 === void 0 ? void 0 : _a2.associatedEvent) || null; + } + cancel() { + this.reject(_createError(this.auth, "cancelled-popup-request")); + } + cleanUp() { + if (this.authWindow) { + this.authWindow.close(); + } + if (this.pollId) { + window.clearTimeout(this.pollId); + } + this.authWindow = null; + this.pollId = null; + PopupOperation.currentPopupAction = null; + } + pollUserCancellation() { + const poll = () => { + var _a2, _b; + if ((_b = (_a2 = this.authWindow) === null || _a2 === void 0 ? void 0 : _a2.window) === null || _b === void 0 ? void 0 : _b.closed) { + this.pollId = window.setTimeout(() => { + this.pollId = null; + this.reject(_createError(this.auth, "popup-closed-by-user")); + }, 2e3); + return; + } + this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get()); + }; + poll(); + } +} +PopupOperation.currentPopupAction = null; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const PENDING_REDIRECT_KEY = "pendingRedirect"; +const redirectOutcomeMap = /* @__PURE__ */ new Map(); +class RedirectAction extends AbstractPopupRedirectOperation { + constructor(auth2, resolver, bypassAuthState = false) { + super(auth2, [ + "signInViaRedirect", + "linkViaRedirect", + "reauthViaRedirect", + "unknown" + ], resolver, void 0, bypassAuthState); + this.eventId = null; + } + async execute() { + let readyOutcome = redirectOutcomeMap.get(this.auth._key()); + if (!readyOutcome) { + try { + const hasPendingRedirect = await _getAndClearPendingRedirectStatus(this.resolver, this.auth); + const result = hasPendingRedirect ? await super.execute() : null; + readyOutcome = () => Promise.resolve(result); + } catch (e) { + readyOutcome = () => Promise.reject(e); + } + redirectOutcomeMap.set(this.auth._key(), readyOutcome); + } + if (!this.bypassAuthState) { + redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null)); + } + return readyOutcome(); + } + async onAuthEvent(event) { + if (event.type === "signInViaRedirect") { + return super.onAuthEvent(event); + } else if (event.type === "unknown") { + this.resolve(null); + return; + } + if (event.eventId) { + const user = await this.auth._redirectUserForId(event.eventId); + if (user) { + this.user = user; + return super.onAuthEvent(event); + } else { + this.resolve(null); + } + } + } + async onExecution() { + } + cleanUp() { + } +} +async function _getAndClearPendingRedirectStatus(resolver, auth2) { + const key = pendingRedirectKey(auth2); + const persistence = resolverPersistence(resolver); + if (!await persistence._isAvailable()) { + return false; + } + const hasPendingRedirect = await persistence._get(key) === "true"; + await persistence._remove(key); + return hasPendingRedirect; +} +function _overrideRedirectResult(auth2, result) { + redirectOutcomeMap.set(auth2._key(), result); +} +function resolverPersistence(resolver) { + return _getInstance(resolver._redirectPersistence); +} +function pendingRedirectKey(auth2) { + return _persistenceKeyName(PENDING_REDIRECT_KEY, auth2.config.apiKey, auth2.name); +} +async function _getRedirectResult(auth2, resolverExtern, bypassAuthState = false) { + const authInternal = _castAuth(auth2); + const resolver = _withDefaultResolver(authInternal, resolverExtern); + const action = new RedirectAction(authInternal, resolver, bypassAuthState); + const result = await action.execute(); + if (result && !bypassAuthState) { + delete result.user._redirectEventId; + await authInternal._persistUserIfCurrent(result.user); + await authInternal._setRedirectUser(null, resolverExtern); + } + return result; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1e3; +class AuthEventManager { + constructor(auth2) { + this.auth = auth2; + this.cachedEventUids = /* @__PURE__ */ new Set(); + this.consumers = /* @__PURE__ */ new Set(); + this.queuedRedirectEvent = null; + this.hasHandledPotentialRedirect = false; + this.lastProcessedEventTime = Date.now(); + } + registerConsumer(authEventConsumer) { + this.consumers.add(authEventConsumer); + if (this.queuedRedirectEvent && this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)) { + this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer); + this.saveEventToCache(this.queuedRedirectEvent); + this.queuedRedirectEvent = null; + } + } + unregisterConsumer(authEventConsumer) { + this.consumers.delete(authEventConsumer); + } + onEvent(event) { + if (this.hasEventBeenHandled(event)) { + return false; + } + let handled = false; + this.consumers.forEach((consumer) => { + if (this.isEventForConsumer(event, consumer)) { + handled = true; + this.sendToConsumer(event, consumer); + this.saveEventToCache(event); + } + }); + if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) { + return handled; + } + this.hasHandledPotentialRedirect = true; + if (!handled) { + this.queuedRedirectEvent = event; + handled = true; + } + return handled; + } + sendToConsumer(event, consumer) { + var _a2; + if (event.error && !isNullRedirectEvent(event)) { + const code = ((_a2 = event.error.code) === null || _a2 === void 0 ? void 0 : _a2.split("auth/")[1]) || "internal-error"; + consumer.onError(_createError(this.auth, code)); + } else { + consumer.onAuthEvent(event); + } + } + isEventForConsumer(event, consumer) { + const eventIdMatches = consumer.eventId === null || !!event.eventId && event.eventId === consumer.eventId; + return consumer.filter.includes(event.type) && eventIdMatches; + } + hasEventBeenHandled(event) { + if (Date.now() - this.lastProcessedEventTime >= EVENT_DUPLICATION_CACHE_DURATION_MS) { + this.cachedEventUids.clear(); + } + return this.cachedEventUids.has(eventUid(event)); + } + saveEventToCache(event) { + this.cachedEventUids.add(eventUid(event)); + this.lastProcessedEventTime = Date.now(); + } +} +function eventUid(e) { + return [e.type, e.eventId, e.sessionId, e.tenantId].filter((v2) => v2).join("-"); +} +function isNullRedirectEvent({ type, error }) { + return type === "unknown" && (error === null || error === void 0 ? void 0 : error.code) === `auth/${"no-auth-event"}`; +} +function isRedirectEvent(event) { + switch (event.type) { + case "signInViaRedirect": + case "linkViaRedirect": + case "reauthViaRedirect": + return true; + case "unknown": + return isNullRedirectEvent(event); + default: + return false; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function _getProjectConfig(auth2, request = {}) { + return _performApiRequest(auth2, "GET", "/v1/projects", request); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const IP_ADDRESS_REGEX = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; +const HTTP_REGEX = /^https?/; +async function _validateOrigin(auth2) { + if (auth2.config.emulator) { + return; + } + const { authorizedDomains } = await _getProjectConfig(auth2); + for (const domain of authorizedDomains) { + try { + if (matchDomain(domain)) { + return; + } + } catch (_a2) { + } + } + _fail(auth2, "unauthorized-domain"); +} +function matchDomain(expected) { + const currentUrl = _getCurrentUrl(); + const { protocol, hostname } = new URL(currentUrl); + if (expected.startsWith("chrome-extension://")) { + const ceUrl = new URL(expected); + if (ceUrl.hostname === "" && hostname === "") { + return protocol === "chrome-extension:" && expected.replace("chrome-extension://", "") === currentUrl.replace("chrome-extension://", ""); + } + return protocol === "chrome-extension:" && ceUrl.hostname === hostname; + } + if (!HTTP_REGEX.test(protocol)) { + return false; + } + if (IP_ADDRESS_REGEX.test(expected)) { + return hostname === expected; + } + const escapedDomainPattern = expected.replace(/\./g, "\\."); + const re = new RegExp("^(.+\\." + escapedDomainPattern + "|" + escapedDomainPattern + ")$", "i"); + return re.test(hostname); +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const NETWORK_TIMEOUT = new Delay(3e4, 6e4); +function resetUnloadedGapiModules() { + const beacon = _window().___jsl; + if (beacon === null || beacon === void 0 ? void 0 : beacon.H) { + for (const hint of Object.keys(beacon.H)) { + beacon.H[hint].r = beacon.H[hint].r || []; + beacon.H[hint].L = beacon.H[hint].L || []; + beacon.H[hint].r = [...beacon.H[hint].L]; + if (beacon.CP) { + for (let i = 0; i < beacon.CP.length; i++) { + beacon.CP[i] = null; + } + } + } + } +} +function loadGapi(auth2) { + return new Promise((resolve, reject) => { + var _a2, _b, _c2; + function loadGapiIframe() { + resetUnloadedGapiModules(); + gapi.load("gapi.iframes", { + callback: () => { + resolve(gapi.iframes.getContext()); + }, + ontimeout: () => { + resetUnloadedGapiModules(); + reject(_createError(auth2, "network-request-failed")); + }, + timeout: NETWORK_TIMEOUT.get() + }); + } + if ((_b = (_a2 = _window().gapi) === null || _a2 === void 0 ? void 0 : _a2.iframes) === null || _b === void 0 ? void 0 : _b.Iframe) { + resolve(gapi.iframes.getContext()); + } else if (!!((_c2 = _window().gapi) === null || _c2 === void 0 ? void 0 : _c2.load)) { + loadGapiIframe(); + } else { + const cbName = _generateCallbackName("iframefcb"); + _window()[cbName] = () => { + if (!!gapi.load) { + loadGapiIframe(); + } else { + reject(_createError(auth2, "network-request-failed")); + } + }; + return _loadJS(`https://apis.google.com/js/api.js?onload=${cbName}`).catch((e) => reject(e)); + } + }).catch((error) => { + cachedGApiLoader = null; + throw error; + }); +} +let cachedGApiLoader = null; +function _loadGapi(auth2) { + cachedGApiLoader = cachedGApiLoader || loadGapi(auth2); + return cachedGApiLoader; +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const PING_TIMEOUT = new Delay(5e3, 15e3); +const IFRAME_PATH = "__/auth/iframe"; +const EMULATED_IFRAME_PATH = "emulator/auth/iframe"; +const IFRAME_ATTRIBUTES = { + style: { + position: "absolute", + top: "-100px", + width: "1px", + height: "1px" + }, + "aria-hidden": "true", + tabindex: "-1" +}; +const EID_FROM_APIHOST = /* @__PURE__ */ new Map([ + ["identitytoolkit.googleapis.com", "p"], + ["staging-identitytoolkit.sandbox.googleapis.com", "s"], + ["test-identitytoolkit.sandbox.googleapis.com", "t"] +]); +function getIframeUrl(auth2) { + const config = auth2.config; + _assert(config.authDomain, auth2, "auth-domain-config-required"); + const url = config.emulator ? _emulatorUrl(config, EMULATED_IFRAME_PATH) : `https://${auth2.config.authDomain}/${IFRAME_PATH}`; + const params = { + apiKey: config.apiKey, + appName: auth2.name, + v: SDK_VERSION + }; + const eid = EID_FROM_APIHOST.get(auth2.config.apiHost); + if (eid) { + params.eid = eid; + } + const frameworks = auth2._getFrameworks(); + if (frameworks.length) { + params.fw = frameworks.join(","); + } + return `${url}?${querystring(params).slice(1)}`; +} +async function _openIframe(auth2) { + const context = await _loadGapi(auth2); + const gapi2 = _window().gapi; + _assert(gapi2, auth2, "internal-error"); + return context.open({ + where: document.body, + url: getIframeUrl(auth2), + messageHandlersFilter: gapi2.iframes.CROSS_ORIGIN_IFRAMES_FILTER, + attributes: IFRAME_ATTRIBUTES, + dontclear: true + }, (iframe) => new Promise(async (resolve, reject) => { + await iframe.restyle({ + setHideOnLeave: false + }); + const networkError = _createError(auth2, "network-request-failed"); + const networkErrorTimer = _window().setTimeout(() => { + reject(networkError); + }, PING_TIMEOUT.get()); + function clearTimerAndResolve() { + _window().clearTimeout(networkErrorTimer); + resolve(iframe); + } + iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => { + reject(networkError); + }); + })); +} +/** + * @license + * Copyright 2020 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const BASE_POPUP_OPTIONS = { + location: "yes", + resizable: "yes", + statusbar: "yes", + toolbar: "no" +}; +const DEFAULT_WIDTH = 500; +const DEFAULT_HEIGHT = 600; +const TARGET_BLANK = "_blank"; +const FIREFOX_EMPTY_URL = "http://localhost"; +class AuthPopup { + constructor(window2) { + this.window = window2; + this.associatedEvent = null; + } + close() { + if (this.window) { + try { + this.window.close(); + } catch (e) { + } + } + } +} +function _open(auth2, url, name2, width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT) { + const top = Math.max((window.screen.availHeight - height) / 2, 0).toString(); + const left = Math.max((window.screen.availWidth - width) / 2, 0).toString(); + let target = ""; + const options = Object.assign(Object.assign({}, BASE_POPUP_OPTIONS), { + width: width.toString(), + height: height.toString(), + top, + left + }); + const ua2 = getUA().toLowerCase(); + if (name2) { + target = _isChromeIOS(ua2) ? TARGET_BLANK : name2; + } + if (_isFirefox(ua2)) { + url = url || FIREFOX_EMPTY_URL; + options.scrollbars = "yes"; + } + const optionsString = Object.entries(options).reduce((accum, [key, value]) => `${accum}${key}=${value},`, ""); + if (_isIOSStandalone(ua2) && target !== "_self") { + openAsNewWindowIOS(url || "", target); + return new AuthPopup(null); + } + const newWin = window.open(url || "", target, optionsString); + _assert(newWin, auth2, "popup-blocked"); + try { + newWin.focus(); + } catch (e) { + } + return new AuthPopup(newWin); +} +function openAsNewWindowIOS(url, target) { + const el2 = document.createElement("a"); + el2.href = url; + el2.target = target; + const click = document.createEvent("MouseEvent"); + click.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 1, null); + el2.dispatchEvent(click); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const WIDGET_PATH = "__/auth/handler"; +const EMULATOR_WIDGET_PATH = "emulator/auth/handler"; +function _getRedirectUrl(auth2, provider2, authType, redirectUrl, eventId, additionalParams) { + _assert(auth2.config.authDomain, auth2, "auth-domain-config-required"); + _assert(auth2.config.apiKey, auth2, "invalid-api-key"); + const params = { + apiKey: auth2.config.apiKey, + appName: auth2.name, + authType, + redirectUrl, + v: SDK_VERSION, + eventId + }; + if (provider2 instanceof FederatedAuthProvider) { + provider2.setDefaultLanguage(auth2.languageCode); + params.providerId = provider2.providerId || ""; + if (!isEmpty(provider2.getCustomParameters())) { + params.customParameters = JSON.stringify(provider2.getCustomParameters()); + } + for (const [key, value] of Object.entries(additionalParams || {})) { + params[key] = value; + } + } + if (provider2 instanceof BaseOAuthProvider) { + const scopes = provider2.getScopes().filter((scope) => scope !== ""); + if (scopes.length > 0) { + params.scopes = scopes.join(","); + } + } + if (auth2.tenantId) { + params.tid = auth2.tenantId; + } + const paramsDict = params; + for (const key of Object.keys(paramsDict)) { + if (paramsDict[key] === void 0) { + delete paramsDict[key]; + } + } + return `${getHandlerBase(auth2)}?${querystring(paramsDict).slice(1)}`; +} +function getHandlerBase({ config }) { + if (!config.emulator) { + return `https://${config.authDomain}/${WIDGET_PATH}`; + } + return _emulatorUrl(config, EMULATOR_WIDGET_PATH); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const WEB_STORAGE_SUPPORT_KEY = "webStorageSupport"; +class BrowserPopupRedirectResolver { + constructor() { + this.eventManagers = {}; + this.iframes = {}; + this.originValidationPromises = {}; + this._redirectPersistence = browserSessionPersistence; + this._completeRedirectFn = _getRedirectResult; + this._overrideRedirectResult = _overrideRedirectResult; + } + async _openPopup(auth2, provider2, authType, eventId) { + var _a2; + debugAssert((_a2 = this.eventManagers[auth2._key()]) === null || _a2 === void 0 ? void 0 : _a2.manager, "_initialize() not called before _openPopup()"); + const url = _getRedirectUrl(auth2, provider2, authType, _getCurrentUrl(), eventId); + return _open(auth2, url, _generateEventId()); + } + async _openRedirect(auth2, provider2, authType, eventId) { + await this._originValidation(auth2); + _setWindowLocation(_getRedirectUrl(auth2, provider2, authType, _getCurrentUrl(), eventId)); + return new Promise(() => { + }); + } + _initialize(auth2) { + const key = auth2._key(); + if (this.eventManagers[key]) { + const { manager, promise: promise2 } = this.eventManagers[key]; + if (manager) { + return Promise.resolve(manager); + } else { + debugAssert(promise2, "If manager is not set, promise should be"); + return promise2; + } + } + const promise = this.initAndGetManager(auth2); + this.eventManagers[key] = { promise }; + promise.catch(() => { + delete this.eventManagers[key]; + }); + return promise; + } + async initAndGetManager(auth2) { + const iframe = await _openIframe(auth2); + const manager = new AuthEventManager(auth2); + iframe.register("authEvent", (iframeEvent) => { + _assert(iframeEvent === null || iframeEvent === void 0 ? void 0 : iframeEvent.authEvent, auth2, "invalid-auth-event"); + const handled = manager.onEvent(iframeEvent.authEvent); + return { status: handled ? "ACK" : "ERROR" }; + }, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER); + this.eventManagers[auth2._key()] = { manager }; + this.iframes[auth2._key()] = iframe; + return manager; + } + _isIframeWebStorageSupported(auth2, cb2) { + const iframe = this.iframes[auth2._key()]; + iframe.send(WEB_STORAGE_SUPPORT_KEY, { type: WEB_STORAGE_SUPPORT_KEY }, (result) => { + var _a2; + const isSupported = (_a2 = result === null || result === void 0 ? void 0 : result[0]) === null || _a2 === void 0 ? void 0 : _a2[WEB_STORAGE_SUPPORT_KEY]; + if (isSupported !== void 0) { + cb2(!!isSupported); + } + _fail(auth2, "internal-error"); + }, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER); + } + _originValidation(auth2) { + const key = auth2._key(); + if (!this.originValidationPromises[key]) { + this.originValidationPromises[key] = _validateOrigin(auth2); + } + return this.originValidationPromises[key]; + } + get _shouldInitProactively() { + return _isMobileBrowser() || _isSafari() || _isIOS(); + } +} +const browserPopupRedirectResolver = BrowserPopupRedirectResolver; +var name$1 = "@firebase/auth"; +var version$1 = "0.22.0"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class AuthInterop { + constructor(auth2) { + this.auth = auth2; + this.internalListeners = /* @__PURE__ */ new Map(); + } + getUid() { + var _a2; + this.assertAuthConfigured(); + return ((_a2 = this.auth.currentUser) === null || _a2 === void 0 ? void 0 : _a2.uid) || null; + } + async getToken(forceRefresh) { + this.assertAuthConfigured(); + await this.auth._initializationPromise; + if (!this.auth.currentUser) { + return null; + } + const accessToken = await this.auth.currentUser.getIdToken(forceRefresh); + return { accessToken }; + } + addAuthTokenListener(listener) { + this.assertAuthConfigured(); + if (this.internalListeners.has(listener)) { + return; + } + const unsubscribe = this.auth.onIdTokenChanged((user) => { + listener((user === null || user === void 0 ? void 0 : user.stsTokenManager.accessToken) || null); + }); + this.internalListeners.set(listener, unsubscribe); + this.updateProactiveRefresh(); + } + removeAuthTokenListener(listener) { + this.assertAuthConfigured(); + const unsubscribe = this.internalListeners.get(listener); + if (!unsubscribe) { + return; + } + this.internalListeners.delete(listener); + unsubscribe(); + this.updateProactiveRefresh(); + } + assertAuthConfigured() { + _assert(this.auth._initializationPromise, "dependent-sdk-initialized-before-auth"); + } + updateProactiveRefresh() { + if (this.internalListeners.size > 0) { + this.auth._startProactiveRefresh(); + } else { + this.auth._stopProactiveRefresh(); + } + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function getVersionForPlatform(clientPlatform) { + switch (clientPlatform) { + case "Node": + return "node"; + case "ReactNative": + return "rn"; + case "Worker": + return "webworker"; + case "Cordova": + return "cordova"; + default: + return void 0; + } +} +function registerAuth(clientPlatform) { + _registerComponent(new Component("auth", (container, { options: deps }) => { + const app2 = container.getProvider("app").getImmediate(); + const heartbeatServiceProvider = container.getProvider("heartbeat"); + const { apiKey, authDomain } = app2.options; + return ((app3, heartbeatServiceProvider2) => { + _assert(apiKey && !apiKey.includes(":"), "invalid-api-key", { appName: app3.name }); + _assert(!(authDomain === null || authDomain === void 0 ? void 0 : authDomain.includes(":")), "argument-error", { + appName: app3.name + }); + const config = { + apiKey, + authDomain, + clientPlatform, + apiHost: "identitytoolkit.googleapis.com", + tokenApiHost: "securetoken.googleapis.com", + apiScheme: "https", + sdkClientVersion: _getClientVersion(clientPlatform) + }; + const authInstance = new AuthImpl(app3, heartbeatServiceProvider2, config); + _initializeAuthInstance(authInstance, deps); + return authInstance; + })(app2, heartbeatServiceProvider); + }, "PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((container, _instanceIdentifier, _instance) => { + const authInternalProvider = container.getProvider("auth-internal"); + authInternalProvider.initialize(); + })); + _registerComponent(new Component("auth-internal", (container) => { + const auth2 = _castAuth(container.getProvider("auth").getImmediate()); + return ((auth3) => new AuthInterop(auth3))(auth2); + }, "PRIVATE").setInstantiationMode("EXPLICIT")); + registerVersion(name$1, version$1, getVersionForPlatform(clientPlatform)); + registerVersion(name$1, version$1, "esm2017"); +} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const DEFAULT_ID_TOKEN_MAX_AGE = 5 * 60; +const authIdTokenMaxAge = getExperimentalSetting("authIdTokenMaxAge") || DEFAULT_ID_TOKEN_MAX_AGE; +let lastPostedIdToken = null; +const mintCookieFactory = (url) => async (user) => { + const idTokenResult = user && await user.getIdTokenResult(); + const idTokenAge = idTokenResult && (new Date().getTime() - Date.parse(idTokenResult.issuedAtTime)) / 1e3; + if (idTokenAge && idTokenAge > authIdTokenMaxAge) { + return; + } + const idToken = idTokenResult === null || idTokenResult === void 0 ? void 0 : idTokenResult.token; + if (lastPostedIdToken === idToken) { + return; + } + lastPostedIdToken = idToken; + await fetch(url, { + method: idToken ? "POST" : "DELETE", + headers: idToken ? { + "Authorization": `Bearer ${idToken}` + } : {} + }); +}; +function getAuth(app2 = getApp()) { + const provider2 = _getProvider(app2, "auth"); + if (provider2.isInitialized()) { + return provider2.getImmediate(); + } + const auth2 = initializeAuth(app2, { + popupRedirectResolver: browserPopupRedirectResolver, + persistence: [ + indexedDBLocalPersistence, + browserLocalPersistence, + browserSessionPersistence + ] + }); + const authTokenSyncUrl = getExperimentalSetting("authTokenSyncURL"); + if (authTokenSyncUrl) { + const mintCookie = mintCookieFactory(authTokenSyncUrl); + beforeAuthStateChanged(auth2, mintCookie, () => mintCookie(auth2.currentUser)); + onIdTokenChanged(auth2, (user) => mintCookie(user)); + } + const authEmulatorHost = getDefaultEmulatorHost("auth"); + if (authEmulatorHost) { + connectAuthEmulator(auth2, `http://${authEmulatorHost}`); + } + return auth2; +} +registerAuth("Browser"); +function mistake(navigateTo2) { + const bug = document.createElement("div"); + bug.innerHTML = `
+

Error 404: p\xE1gina no encontrada.

+
`; + const keep = bug.querySelector(".initButton"); + keep.addEventListener("click", () => { + navigateTo2("/"); + }); + return bug; +} +var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var k$1, goog = goog || {}, l = commonjsGlobal || self; +function aa$1() { +} +function ba$1(a) { + var b2 = typeof a; + b2 = "object" != b2 ? b2 : a ? Array.isArray(a) ? "array" : b2 : "null"; + return "array" == b2 || "object" == b2 && "number" == typeof a.length; +} +function p(a) { + var b2 = typeof a; + return "object" == b2 && null != a || "function" == b2; +} +function ca(a) { + return Object.prototype.hasOwnProperty.call(a, da) && a[da] || (a[da] = ++ea); +} +var da = "closure_uid_" + (1e9 * Math.random() >>> 0), ea = 0; +function fa$1(a, b2, c) { + return a.call.apply(a.bind, arguments); +} +function ha$1(a, b2, c) { + if (!a) + throw Error(); + if (2 < arguments.length) { + var d = Array.prototype.slice.call(arguments, 2); + return function() { + var e = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(e, d); + return a.apply(b2, e); + }; + } + return function() { + return a.apply(b2, arguments); + }; +} +function q$1(a, b2, c) { + Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? q$1 = fa$1 : q$1 = ha$1; + return q$1.apply(null, arguments); +} +function ia(a, b2) { + var c = Array.prototype.slice.call(arguments, 1); + return function() { + var d = c.slice(); + d.push.apply(d, arguments); + return a.apply(this, d); + }; +} +function t(a, b2) { + function c() { + } + c.prototype = b2.prototype; + a.X = b2.prototype; + a.prototype = new c(); + a.prototype.constructor = a; + a.Wb = function(d, e, f) { + for (var h = Array(arguments.length - 2), n = 2; n < arguments.length; n++) + h[n - 2] = arguments[n]; + return b2.prototype[e].apply(d, h); + }; +} +function v$1() { + this.s = this.s; + this.o = this.o; +} +var ja$1 = 0; +v$1.prototype.s = false; +v$1.prototype.na = function() { + if (!this.s && (this.s = true, this.M(), 0 != ja$1)) { + ca(this); + } +}; +v$1.prototype.M = function() { + if (this.o) + for (; this.o.length; ) + this.o.shift()(); +}; +const la = Array.prototype.indexOf ? function(a, b2) { + return Array.prototype.indexOf.call(a, b2, void 0); +} : function(a, b2) { + if ("string" === typeof a) + return "string" !== typeof b2 || 1 != b2.length ? -1 : a.indexOf(b2, 0); + for (let c = 0; c < a.length; c++) + if (c in a && a[c] === b2) + return c; + return -1; +}; +function ma(a) { + const b2 = a.length; + if (0 < b2) { + const c = Array(b2); + for (let d = 0; d < b2; d++) + c[d] = a[d]; + return c; + } + return []; +} +function na(a, b2) { + for (let c = 1; c < arguments.length; c++) { + const d = arguments[c]; + if (ba$1(d)) { + const e = a.length || 0, f = d.length || 0; + a.length = e + f; + for (let h = 0; h < f; h++) + a[e + h] = d[h]; + } else + a.push(d); + } +} +function w(a, b2) { + this.type = a; + this.g = this.target = b2; + this.defaultPrevented = false; +} +w.prototype.h = function() { + this.defaultPrevented = true; +}; +var oa = function() { + if (!l.addEventListener || !Object.defineProperty) + return false; + var a = false, b2 = Object.defineProperty({}, "passive", { get: function() { + a = true; + } }); + try { + l.addEventListener("test", aa$1, b2), l.removeEventListener("test", aa$1, b2); + } catch (c) { + } + return a; +}(); +function pa(a) { + return /^[\s\xa0]*$/.test(a); +} +var qa = String.prototype.trim ? function(a) { + return a.trim(); +} : function(a) { + return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]; +}; +function ra(a, b2) { + return a < b2 ? -1 : a > b2 ? 1 : 0; +} +function sa() { + var a = l.navigator; + return a && (a = a.userAgent) ? a : ""; +} +function x$1(a) { + return -1 != sa().indexOf(a); +} +function ta(a) { + ta[" "](a); + return a; +} +ta[" "] = aa$1; +function ua(a) { + var b2 = va$1; + return Object.prototype.hasOwnProperty.call(b2, 9) ? b2[9] : b2[9] = a(9); +} +var wa = x$1("Opera"), y = x$1("Trident") || x$1("MSIE"), xa$1 = x$1("Edge"), ya = xa$1 || y, za$1 = x$1("Gecko") && !(-1 != sa().toLowerCase().indexOf("webkit") && !x$1("Edge")) && !(x$1("Trident") || x$1("MSIE")) && !x$1("Edge"), Aa$1 = -1 != sa().toLowerCase().indexOf("webkit") && !x$1("Edge"); +function Ba() { + var a = l.document; + return a ? a.documentMode : void 0; +} +var Ea$1; +a: { + var Fa = "", Ga$1 = function() { + var a = sa(); + if (za$1) + return /rv:([^\);]+)(\)|;)/.exec(a); + if (xa$1) + return /Edge\/([\d\.]+)/.exec(a); + if (y) + return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a); + if (Aa$1) + return /WebKit\/(\S+)/.exec(a); + if (wa) + return /(?:Version)[ \/]?(\S+)/.exec(a); + }(); + Ga$1 && (Fa = Ga$1 ? Ga$1[1] : ""); + if (y) { + var Ha$1 = Ba(); + if (null != Ha$1 && Ha$1 > parseFloat(Fa)) { + Ea$1 = String(Ha$1); + break a; + } + } + Ea$1 = Fa; +} +var va$1 = {}; +function Ia() { + return ua(function() { + let a = 0; + const b2 = qa(String(Ea$1)).split("."), c = qa("9").split("."), d = Math.max(b2.length, c.length); + for (let h = 0; 0 == a && h < d; h++) { + var e = b2[h] || "", f = c[h] || ""; + do { + e = /(\d*)(\D*)(.*)/.exec(e) || ["", "", "", ""]; + f = /(\d*)(\D*)(.*)/.exec(f) || ["", "", "", ""]; + if (0 == e[0].length && 0 == f[0].length) + break; + a = ra(0 == e[1].length ? 0 : parseInt(e[1], 10), 0 == f[1].length ? 0 : parseInt(f[1], 10)) || ra(0 == e[2].length, 0 == f[2].length) || ra(e[2], f[2]); + e = e[3]; + f = f[3]; + } while (0 == a); + } + return 0 <= a; + }); +} +var Ja; +if (l.document && y) { + var Ka$1 = Ba(); + Ja = Ka$1 ? Ka$1 : parseInt(Ea$1, 10) || void 0; +} else + Ja = void 0; +var La = Ja; +function z$1(a, b2) { + w.call(this, a ? a.type : ""); + this.relatedTarget = this.g = this.target = null; + this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0; + this.key = ""; + this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = false; + this.state = null; + this.pointerId = 0; + this.pointerType = ""; + this.i = null; + if (a) { + var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null; + this.target = a.target || a.srcElement; + this.g = b2; + if (b2 = a.relatedTarget) { + if (za$1) { + a: { + try { + ta(b2.nodeName); + var e = true; + break a; + } catch (f) { + } + e = false; + } + e || (b2 = null); + } + } else + "mouseover" == c ? b2 = a.fromElement : "mouseout" == c && (b2 = a.toElement); + this.relatedTarget = b2; + d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0); + this.button = a.button; + this.key = a.key || ""; + this.ctrlKey = a.ctrlKey; + this.altKey = a.altKey; + this.shiftKey = a.shiftKey; + this.metaKey = a.metaKey; + this.pointerId = a.pointerId || 0; + this.pointerType = "string" === typeof a.pointerType ? a.pointerType : Ma[a.pointerType] || ""; + this.state = a.state; + this.i = a; + a.defaultPrevented && z$1.X.h.call(this); + } +} +t(z$1, w); +var Ma = { 2: "touch", 3: "pen", 4: "mouse" }; +z$1.prototype.h = function() { + z$1.X.h.call(this); + var a = this.i; + a.preventDefault ? a.preventDefault() : a.returnValue = false; +}; +var A = "closure_listenable_" + (1e6 * Math.random() | 0); +var Na = 0; +function Oa(a, b2, c, d, e) { + this.listener = a; + this.proxy = null; + this.src = b2; + this.type = c; + this.capture = !!d; + this.ha = e; + this.key = ++Na; + this.ba = this.ea = false; +} +function Pa(a) { + a.ba = true; + a.listener = null; + a.proxy = null; + a.src = null; + a.ha = null; +} +function Qa$1(a, b2, c) { + for (const d in a) + b2.call(c, a[d], d, a); +} +function Ra$1(a) { + const b2 = {}; + for (const c in a) + b2[c] = a[c]; + return b2; +} +const Sa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); +function Ta$1(a, b2) { + let c, d; + for (let e = 1; e < arguments.length; e++) { + d = arguments[e]; + for (c in d) + a[c] = d[c]; + for (let f = 0; f < Sa.length; f++) + c = Sa[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]); + } +} +function Ua(a) { + this.src = a; + this.g = {}; + this.h = 0; +} +Ua.prototype.add = function(a, b2, c, d, e) { + var f = a.toString(); + a = this.g[f]; + a || (a = this.g[f] = [], this.h++); + var h = Va(a, b2, d, e); + -1 < h ? (b2 = a[h], c || (b2.ea = false)) : (b2 = new Oa(b2, this.src, f, !!d, e), b2.ea = c, a.push(b2)); + return b2; +}; +function Wa$1(a, b2) { + var c = b2.type; + if (c in a.g) { + var d = a.g[c], e = la(d, b2), f; + (f = 0 <= e) && Array.prototype.splice.call(d, e, 1); + f && (Pa(b2), 0 == a.g[c].length && (delete a.g[c], a.h--)); + } +} +function Va(a, b2, c, d) { + for (var e = 0; e < a.length; ++e) { + var f = a[e]; + if (!f.ba && f.listener == b2 && f.capture == !!c && f.ha == d) + return e; + } + return -1; +} +var Xa$1 = "closure_lm_" + (1e6 * Math.random() | 0), Ya$1 = {}; +function $a(a, b2, c, d, e) { + if (d && d.once) + return ab(a, b2, c, d, e); + if (Array.isArray(b2)) { + for (var f = 0; f < b2.length; f++) + $a(a, b2[f], c, d, e); + return null; + } + c = bb(c); + return a && a[A] ? a.N(b2, c, p(d) ? !!d.capture : !!d, e) : cb(a, b2, c, false, d, e); +} +function cb(a, b2, c, d, e, f) { + if (!b2) + throw Error("Invalid event type"); + var h = p(e) ? !!e.capture : !!e, n = db$1(a); + n || (a[Xa$1] = n = new Ua(a)); + c = n.add(b2, c, d, h, f); + if (c.proxy) + return c; + d = eb(); + c.proxy = d; + d.src = a; + d.listener = c; + if (a.addEventListener) + oa || (e = h), void 0 === e && (e = false), a.addEventListener(b2.toString(), d, e); + else if (a.attachEvent) + a.attachEvent(fb(b2.toString()), d); + else if (a.addListener && a.removeListener) + a.addListener(d); + else + throw Error("addEventListener and attachEvent are unavailable."); + return c; +} +function eb() { + function a(c) { + return b2.call(a.src, a.listener, c); + } + const b2 = gb; + return a; +} +function ab(a, b2, c, d, e) { + if (Array.isArray(b2)) { + for (var f = 0; f < b2.length; f++) + ab(a, b2[f], c, d, e); + return null; + } + c = bb(c); + return a && a[A] ? a.O(b2, c, p(d) ? !!d.capture : !!d, e) : cb(a, b2, c, true, d, e); +} +function hb(a, b2, c, d, e) { + if (Array.isArray(b2)) + for (var f = 0; f < b2.length; f++) + hb(a, b2[f], c, d, e); + else + (d = p(d) ? !!d.capture : !!d, c = bb(c), a && a[A]) ? (a = a.i, b2 = String(b2).toString(), b2 in a.g && (f = a.g[b2], c = Va(f, c, d, e), -1 < c && (Pa(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b2], a.h--)))) : a && (a = db$1(a)) && (b2 = a.g[b2.toString()], a = -1, b2 && (a = Va(b2, c, d, e)), (c = -1 < a ? b2[a] : null) && ib(c)); +} +function ib(a) { + if ("number" !== typeof a && a && !a.ba) { + var b2 = a.src; + if (b2 && b2[A]) + Wa$1(b2.i, a); + else { + var c = a.type, d = a.proxy; + b2.removeEventListener ? b2.removeEventListener(c, d, a.capture) : b2.detachEvent ? b2.detachEvent(fb(c), d) : b2.addListener && b2.removeListener && b2.removeListener(d); + (c = db$1(b2)) ? (Wa$1(c, a), 0 == c.h && (c.src = null, b2[Xa$1] = null)) : Pa(a); + } + } +} +function fb(a) { + return a in Ya$1 ? Ya$1[a] : Ya$1[a] = "on" + a; +} +function gb(a, b2) { + if (a.ba) + a = true; + else { + b2 = new z$1(b2, this); + var c = a.listener, d = a.ha || a.src; + a.ea && ib(a); + a = c.call(d, b2); + } + return a; +} +function db$1(a) { + a = a[Xa$1]; + return a instanceof Ua ? a : null; +} +var jb = "__closure_events_fn_" + (1e9 * Math.random() >>> 0); +function bb(a) { + if ("function" === typeof a) + return a; + a[jb] || (a[jb] = function(b2) { + return a.handleEvent(b2); + }); + return a[jb]; +} +function B$1() { + v$1.call(this); + this.i = new Ua(this); + this.P = this; + this.I = null; +} +t(B$1, v$1); +B$1.prototype[A] = true; +B$1.prototype.removeEventListener = function(a, b2, c, d) { + hb(this, a, b2, c, d); +}; +function C$1(a, b2) { + var c, d = a.I; + if (d) + for (c = []; d; d = d.I) + c.push(d); + a = a.P; + d = b2.type || b2; + if ("string" === typeof b2) + b2 = new w(b2, a); + else if (b2 instanceof w) + b2.target = b2.target || a; + else { + var e = b2; + b2 = new w(d, a); + Ta$1(b2, e); + } + e = true; + if (c) + for (var f = c.length - 1; 0 <= f; f--) { + var h = b2.g = c[f]; + e = kb(h, d, true, b2) && e; + } + h = b2.g = a; + e = kb(h, d, true, b2) && e; + e = kb(h, d, false, b2) && e; + if (c) + for (f = 0; f < c.length; f++) + h = b2.g = c[f], e = kb(h, d, false, b2) && e; +} +B$1.prototype.M = function() { + B$1.X.M.call(this); + if (this.i) { + var a = this.i, c; + for (c in a.g) { + for (var d = a.g[c], e = 0; e < d.length; e++) + Pa(d[e]); + delete a.g[c]; + a.h--; + } + } + this.I = null; +}; +B$1.prototype.N = function(a, b2, c, d) { + return this.i.add(String(a), b2, false, c, d); +}; +B$1.prototype.O = function(a, b2, c, d) { + return this.i.add(String(a), b2, true, c, d); +}; +function kb(a, b2, c, d) { + b2 = a.i.g[String(b2)]; + if (!b2) + return true; + b2 = b2.concat(); + for (var e = true, f = 0; f < b2.length; ++f) { + var h = b2[f]; + if (h && !h.ba && h.capture == c) { + var n = h.listener, u = h.ha || h.src; + h.ea && Wa$1(a.i, h); + e = false !== n.call(u, d) && e; + } + } + return e && !d.defaultPrevented; +} +var lb = l.JSON.stringify; +function mb() { + var a = nb; + let b2 = null; + a.g && (b2 = a.g, a.g = a.g.next, a.g || (a.h = null), b2.next = null); + return b2; +} +class ob { + constructor() { + this.h = this.g = null; + } + add(a, b2) { + const c = pb.get(); + c.set(a, b2); + this.h ? this.h.next = c : this.g = c; + this.h = c; + } +} +var pb = new class { + constructor(a, b2) { + this.i = a; + this.j = b2; + this.h = 0; + this.g = null; + } + get() { + let a; + 0 < this.h ? (this.h--, a = this.g, this.g = a.next, a.next = null) : a = this.i(); + return a; + } +}(() => new qb(), (a) => a.reset()); +class qb { + constructor() { + this.next = this.g = this.h = null; + } + set(a, b2) { + this.h = a; + this.g = b2; + this.next = null; + } + reset() { + this.next = this.g = this.h = null; + } +} +function rb(a) { + l.setTimeout(() => { + throw a; + }, 0); +} +function sb(a, b2) { + ub || vb(); + wb || (ub(), wb = true); + nb.add(a, b2); +} +var ub; +function vb() { + var a = l.Promise.resolve(void 0); + ub = function() { + a.then(xb); + }; +} +var wb = false, nb = new ob(); +function xb() { + for (var a; a = mb(); ) { + try { + a.h.call(a.g); + } catch (c) { + rb(c); + } + var b2 = pb; + b2.j(a); + 100 > b2.h && (b2.h++, a.next = b2.g, b2.g = a); + } + wb = false; +} +function yb(a, b2) { + B$1.call(this); + this.h = a || 1; + this.g = b2 || l; + this.j = q$1(this.lb, this); + this.l = Date.now(); +} +t(yb, B$1); +k$1 = yb.prototype; +k$1.ca = false; +k$1.R = null; +k$1.lb = function() { + if (this.ca) { + var a = Date.now() - this.l; + 0 < a && a < 0.8 * this.h ? this.R = this.g.setTimeout(this.j, this.h - a) : (this.R && (this.g.clearTimeout(this.R), this.R = null), C$1(this, "tick"), this.ca && (zb(this), this.start())); + } +}; +k$1.start = function() { + this.ca = true; + this.R || (this.R = this.g.setTimeout(this.j, this.h), this.l = Date.now()); +}; +function zb(a) { + a.ca = false; + a.R && (a.g.clearTimeout(a.R), a.R = null); +} +k$1.M = function() { + yb.X.M.call(this); + zb(this); + delete this.g; +}; +function Ab(a, b2, c) { + if ("function" === typeof a) + c && (a = q$1(a, c)); + else if (a && "function" == typeof a.handleEvent) + a = q$1(a.handleEvent, a); + else + throw Error("Invalid listener argument"); + return 2147483647 < Number(b2) ? -1 : l.setTimeout(a, b2 || 0); +} +function Bb(a) { + a.g = Ab(() => { + a.g = null; + a.i && (a.i = false, Bb(a)); + }, a.j); + const b2 = a.h; + a.h = null; + a.m.apply(null, b2); +} +class Cb extends v$1 { + constructor(a, b2) { + super(); + this.m = a; + this.j = b2; + this.h = null; + this.i = false; + this.g = null; + } + l(a) { + this.h = arguments; + this.g ? this.i = true : Bb(this); + } + M() { + super.M(); + this.g && (l.clearTimeout(this.g), this.g = null, this.i = false, this.h = null); + } +} +function D(a) { + v$1.call(this); + this.h = a; + this.g = {}; +} +t(D, v$1); +var Db = []; +function Eb(a, b2, c, d) { + Array.isArray(c) || (c && (Db[0] = c.toString()), c = Db); + for (var e = 0; e < c.length; e++) { + var f = $a(b2, c[e], d || a.handleEvent, false, a.h || a); + if (!f) + break; + a.g[f.key] = f; + } +} +function Fb(a) { + Qa$1(a.g, function(b2, c) { + this.g.hasOwnProperty(c) && ib(b2); + }, a); + a.g = {}; +} +D.prototype.M = function() { + D.X.M.call(this); + Fb(this); +}; +D.prototype.handleEvent = function() { + throw Error("EventHandler.handleEvent not implemented"); +}; +function Gb() { + this.g = true; +} +Gb.prototype.Aa = function() { + this.g = false; +}; +function Hb(a, b2, c, d, e, f) { + a.info(function() { + if (a.g) + if (f) { + var h = ""; + for (var n = f.split("&"), u = 0; u < n.length; u++) { + var m = n[u].split("="); + if (1 < m.length) { + var r = m[0]; + m = m[1]; + var F2 = r.split("_"); + h = 2 <= F2.length && "type" == F2[1] ? h + (r + "=" + m + "&") : h + (r + "=redacted&"); + } + } + } else + h = null; + else + h = f; + return "XMLHTTP REQ (" + d + ") [attempt " + e + "]: " + b2 + "\n" + c + "\n" + h; + }); +} +function Ib(a, b2, c, d, e, f, h) { + a.info(function() { + return "XMLHTTP RESP (" + d + ") [ attempt " + e + "]: " + b2 + "\n" + c + "\n" + f + " " + h; + }); +} +function E(a, b2, c, d) { + a.info(function() { + return "XMLHTTP TEXT (" + b2 + "): " + Jb(a, c) + (d ? " " + d : ""); + }); +} +function Kb(a, b2) { + a.info(function() { + return "TIMEOUT: " + b2; + }); +} +Gb.prototype.info = function() { +}; +function Jb(a, b2) { + if (!a.g) + return b2; + if (!b2) + return null; + try { + var c = JSON.parse(b2); + if (c) { + for (a = 0; a < c.length; a++) + if (Array.isArray(c[a])) { + var d = c[a]; + if (!(2 > d.length)) { + var e = d[1]; + if (Array.isArray(e) && !(1 > e.length)) { + var f = e[0]; + if ("noop" != f && "stop" != f && "close" != f) + for (var h = 1; h < e.length; h++) + e[h] = ""; + } + } + } + } + return lb(c); + } catch (n) { + return b2; + } +} +var G$1 = {}, Lb = null; +function Mb() { + return Lb = Lb || new B$1(); +} +G$1.Pa = "serverreachability"; +function Nb(a) { + w.call(this, G$1.Pa, a); +} +t(Nb, w); +function H$1(a) { + const b2 = Mb(); + C$1(b2, new Nb(b2)); +} +G$1.STAT_EVENT = "statevent"; +function Ob(a, b2) { + w.call(this, G$1.STAT_EVENT, a); + this.stat = b2; +} +t(Ob, w); +function I(a) { + const b2 = Mb(); + C$1(b2, new Ob(b2, a)); +} +G$1.Qa = "timingevent"; +function Pb(a, b2) { + w.call(this, G$1.Qa, a); + this.size = b2; +} +t(Pb, w); +function J(a, b2) { + if ("function" !== typeof a) + throw Error("Fn must not be null and must be a function"); + return l.setTimeout(function() { + a(); + }, b2); +} +var Qb = { NO_ERROR: 0, mb: 1, zb: 2, yb: 3, tb: 4, xb: 5, Ab: 6, Ma: 7, TIMEOUT: 8, Db: 9 }; +var Rb = { rb: "complete", Nb: "success", Na: "error", Ma: "abort", Fb: "ready", Gb: "readystatechange", TIMEOUT: "timeout", Bb: "incrementaldata", Eb: "progress", ub: "downloadprogress", Vb: "uploadprogress" }; +function Sb() { +} +Sb.prototype.h = null; +function Tb(a) { + return a.h || (a.h = a.i()); +} +function Ub() { +} +var K$1 = { OPEN: "a", qb: "b", Na: "c", Cb: "d" }; +function Vb() { + w.call(this, "d"); +} +t(Vb, w); +function Wb() { + w.call(this, "c"); +} +t(Wb, w); +var Xb; +function Yb() { +} +t(Yb, Sb); +Yb.prototype.g = function() { + return new XMLHttpRequest(); +}; +Yb.prototype.i = function() { + return {}; +}; +Xb = new Yb(); +function L$1(a, b2, c, d) { + this.l = a; + this.j = b2; + this.m = c; + this.U = d || 1; + this.S = new D(this); + this.O = Zb; + a = ya ? 125 : void 0; + this.T = new yb(a); + this.H = null; + this.i = false; + this.s = this.A = this.v = this.K = this.F = this.V = this.B = null; + this.D = []; + this.g = null; + this.C = 0; + this.o = this.u = null; + this.Y = -1; + this.I = false; + this.N = 0; + this.L = null; + this.$ = this.J = this.Z = this.P = false; + this.h = new $b(); +} +function $b() { + this.i = null; + this.g = ""; + this.h = false; +} +var Zb = 45e3, ac$1 = {}, bc = {}; +k$1 = L$1.prototype; +k$1.setTimeout = function(a) { + this.O = a; +}; +function cc$1(a, b2, c) { + a.K = 1; + a.v = dc$1(M(b2)); + a.s = c; + a.P = true; + ec$1(a, null); +} +function ec$1(a, b2) { + a.F = Date.now(); + N$1(a); + a.A = M(a.v); + var c = a.A, d = a.U; + Array.isArray(d) || (d = [String(d)]); + fc$1(c.i, "t", d); + a.C = 0; + c = a.l.H; + a.h = new $b(); + a.g = gc$1(a.l, c ? b2 : null, !a.s); + 0 < a.N && (a.L = new Cb(q$1(a.La, a, a.g), a.N)); + Eb(a.S, a.g, "readystatechange", a.ib); + b2 = a.H ? Ra$1(a.H) : {}; + a.s ? (a.u || (a.u = "POST"), b2["Content-Type"] = "application/x-www-form-urlencoded", a.g.da(a.A, a.u, a.s, b2)) : (a.u = "GET", a.g.da(a.A, a.u, null, b2)); + H$1(); + Hb(a.j, a.u, a.A, a.m, a.U, a.s); +} +k$1.ib = function(a) { + a = a.target; + const b2 = this.L; + b2 && 3 == O$1(a) ? b2.l() : this.La(a); +}; +k$1.La = function(a) { + try { + if (a == this.g) + a: { + const r = O$1(this.g); + var b2 = this.g.Ea(); + const F2 = this.g.aa(); + if (!(3 > r) && (3 != r || ya || this.g && (this.h.h || this.g.fa() || hc$1(this.g)))) { + this.I || 4 != r || 7 == b2 || (8 == b2 || 0 >= F2 ? H$1(3) : H$1(2)); + ic$1(this); + var c = this.g.aa(); + this.Y = c; + b: + if (jc$1(this)) { + var d = hc$1(this.g); + a = ""; + var e = d.length, f = 4 == O$1(this.g); + if (!this.h.i) { + if ("undefined" === typeof TextDecoder) { + P$1(this); + Q$1(this); + var h = ""; + break b; + } + this.h.i = new l.TextDecoder(); + } + for (b2 = 0; b2 < e; b2++) + this.h.h = true, a += this.h.i.decode(d[b2], { stream: f && b2 == e - 1 }); + d.splice( + 0, + e + ); + this.h.g += a; + this.C = 0; + h = this.h.g; + } else + h = this.g.fa(); + this.i = 200 == c; + Ib(this.j, this.u, this.A, this.m, this.U, r, c); + if (this.i) { + if (this.Z && !this.J) { + b: { + if (this.g) { + var n, u = this.g; + if ((n = u.g ? u.g.getResponseHeader("X-HTTP-Initial-Response") : null) && !pa(n)) { + var m = n; + break b; + } + } + m = null; + } + if (c = m) + E(this.j, this.m, c, "Initial handshake response via X-HTTP-Initial-Response"), this.J = true, kc$1(this, c); + else { + this.i = false; + this.o = 3; + I(12); + P$1(this); + Q$1(this); + break a; + } + } + this.P ? (lc$1(this, r, h), ya && this.i && 3 == r && (Eb(this.S, this.T, "tick", this.hb), this.T.start())) : (E(this.j, this.m, h, null), kc$1(this, h)); + 4 == r && P$1(this); + this.i && !this.I && (4 == r ? mc$1(this.l, this) : (this.i = false, N$1(this))); + } else + 400 == c && 0 < h.indexOf("Unknown SID") ? (this.o = 3, I(12)) : (this.o = 0, I(13)), P$1(this), Q$1(this); + } + } + } catch (r) { + } finally { + } +}; +function jc$1(a) { + return a.g ? "GET" == a.u && 2 != a.K && a.l.Da : false; +} +function lc$1(a, b2, c) { + let d = true, e; + for (; !a.I && a.C < c.length; ) + if (e = nc$1(a, c), e == bc) { + 4 == b2 && (a.o = 4, I(14), d = false); + E(a.j, a.m, null, "[Incomplete Response]"); + break; + } else if (e == ac$1) { + a.o = 4; + I(15); + E(a.j, a.m, c, "[Invalid Chunk]"); + d = false; + break; + } else + E(a.j, a.m, e, null), kc$1(a, e); + jc$1(a) && e != bc && e != ac$1 && (a.h.g = "", a.C = 0); + 4 != b2 || 0 != c.length || a.h.h || (a.o = 1, I(16), d = false); + a.i = a.i && d; + d ? 0 < c.length && !a.$ && (a.$ = true, b2 = a.l, b2.g == a && b2.$ && !b2.K && (b2.j.info("Great, no buffering proxy detected. Bytes received: " + c.length), oc$1(b2), b2.K = true, I(11))) : (E( + a.j, + a.m, + c, + "[Invalid Chunked Response]" + ), P$1(a), Q$1(a)); +} +k$1.hb = function() { + if (this.g) { + var a = O$1(this.g), b2 = this.g.fa(); + this.C < b2.length && (ic$1(this), lc$1(this, a, b2), this.i && 4 != a && N$1(this)); + } +}; +function nc$1(a, b2) { + var c = a.C, d = b2.indexOf("\n", c); + if (-1 == d) + return bc; + c = Number(b2.substring(c, d)); + if (isNaN(c)) + return ac$1; + d += 1; + if (d + c > b2.length) + return bc; + b2 = b2.substr(d, c); + a.C = d + c; + return b2; +} +k$1.cancel = function() { + this.I = true; + P$1(this); +}; +function N$1(a) { + a.V = Date.now() + a.O; + pc$1(a, a.O); +} +function pc$1(a, b2) { + if (null != a.B) + throw Error("WatchDog timer not null"); + a.B = J(q$1(a.gb, a), b2); +} +function ic$1(a) { + a.B && (l.clearTimeout(a.B), a.B = null); +} +k$1.gb = function() { + this.B = null; + const a = Date.now(); + 0 <= a - this.V ? (Kb(this.j, this.A), 2 != this.K && (H$1(), I(17)), P$1(this), this.o = 2, Q$1(this)) : pc$1(this, this.V - a); +}; +function Q$1(a) { + 0 == a.l.G || a.I || mc$1(a.l, a); +} +function P$1(a) { + ic$1(a); + var b2 = a.L; + b2 && "function" == typeof b2.na && b2.na(); + a.L = null; + zb(a.T); + Fb(a.S); + a.g && (b2 = a.g, a.g = null, b2.abort(), b2.na()); +} +function kc$1(a, b2) { + try { + var c = a.l; + if (0 != c.G && (c.g == a || qc$1(c.h, a))) { + if (!a.J && qc$1(c.h, a) && 3 == c.G) { + try { + var d = c.Fa.g.parse(b2); + } catch (m) { + d = null; + } + if (Array.isArray(d) && 3 == d.length) { + var e = d; + if (0 == e[0]) + a: { + if (!c.u) { + if (c.g) + if (c.g.F + 3e3 < a.F) + rc$1(c), sc$1(c); + else + break a; + tc$1(c); + I(18); + } + } + else + c.Ba = e[1], 0 < c.Ba - c.T && 37500 > e[2] && c.L && 0 == c.A && !c.v && (c.v = J(q$1(c.cb, c), 6e3)); + if (1 >= uc$1(c.h) && c.ja) { + try { + c.ja(); + } catch (m) { + } + c.ja = void 0; + } + } else + R(c, 11); + } else if ((a.J || c.g == a) && rc$1(c), !pa(b2)) + for (e = c.Fa.g.parse(b2), b2 = 0; b2 < e.length; b2++) { + let m = e[b2]; + c.T = m[0]; + m = m[1]; + if (2 == c.G) + if ("c" == m[0]) { + c.I = m[1]; + c.ka = m[2]; + const r = m[3]; + null != r && (c.ma = r, c.j.info("VER=" + c.ma)); + const F2 = m[4]; + null != F2 && (c.Ca = F2, c.j.info("SVER=" + c.Ca)); + const Ca = m[5]; + null != Ca && "number" === typeof Ca && 0 < Ca && (d = 1.5 * Ca, c.J = d, c.j.info("backChannelRequestTimeoutMs_=" + d)); + d = c; + const Z2 = a.g; + if (Z2) { + const Da2 = Z2.g ? Z2.g.getResponseHeader("X-Client-Wire-Protocol") : null; + if (Da2) { + var f = d.h; + f.g || -1 == Da2.indexOf("spdy") && -1 == Da2.indexOf("quic") && -1 == Da2.indexOf("h2") || (f.j = f.l, f.g = /* @__PURE__ */ new Set(), f.h && (vc(f, f.h), f.h = null)); + } + if (d.D) { + const tb = Z2.g ? Z2.g.getResponseHeader("X-HTTP-Session-Id") : null; + tb && (d.za = tb, S$1(d.F, d.D, tb)); + } + } + c.G = 3; + c.l && c.l.xa(); + c.$ && (c.P = Date.now() - a.F, c.j.info("Handshake RTT: " + c.P + "ms")); + d = c; + var h = a; + d.sa = wc$1(d, d.H ? d.ka : null, d.V); + if (h.J) { + xc$1(d.h, h); + var n = h, u = d.J; + u && n.setTimeout(u); + n.B && (ic$1(n), N$1(n)); + d.g = h; + } else + yc$1(d); + 0 < c.i.length && zc$1(c); + } else + "stop" != m[0] && "close" != m[0] || R(c, 7); + else + 3 == c.G && ("stop" == m[0] || "close" == m[0] ? "stop" == m[0] ? R(c, 7) : Ac$1(c) : "noop" != m[0] && c.l && c.l.wa(m), c.A = 0); + } + } + H$1(4); + } catch (m) { + } +} +function Bc$1(a) { + if (a.W && "function" == typeof a.W) + return a.W(); + if ("undefined" !== typeof Map && a instanceof Map || "undefined" !== typeof Set && a instanceof Set) + return Array.from(a.values()); + if ("string" === typeof a) + return a.split(""); + if (ba$1(a)) { + for (var b2 = [], c = a.length, d = 0; d < c; d++) + b2.push(a[d]); + return b2; + } + b2 = []; + c = 0; + for (d in a) + b2[c++] = a[d]; + return b2; +} +function Cc$1(a) { + if (a.oa && "function" == typeof a.oa) + return a.oa(); + if (!a.W || "function" != typeof a.W) { + if ("undefined" !== typeof Map && a instanceof Map) + return Array.from(a.keys()); + if (!("undefined" !== typeof Set && a instanceof Set)) { + if (ba$1(a) || "string" === typeof a) { + var b2 = []; + a = a.length; + for (var c = 0; c < a; c++) + b2.push(c); + return b2; + } + b2 = []; + c = 0; + for (const d in a) + b2[c++] = d; + return b2; + } + } +} +function Dc$1(a, b2) { + if (a.forEach && "function" == typeof a.forEach) + a.forEach(b2, void 0); + else if (ba$1(a) || "string" === typeof a) + Array.prototype.forEach.call(a, b2, void 0); + else + for (var c = Cc$1(a), d = Bc$1(a), e = d.length, f = 0; f < e; f++) + b2.call(void 0, d[f], c && c[f], a); +} +var Ec$1 = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$"); +function Fc$1(a, b2) { + if (a) { + a = a.split("&"); + for (var c = 0; c < a.length; c++) { + var d = a[c].indexOf("="), e = null; + if (0 <= d) { + var f = a[c].substring(0, d); + e = a[c].substring(d + 1); + } else + f = a[c]; + b2(f, e ? decodeURIComponent(e.replace(/\+/g, " ")) : ""); + } + } +} +function T(a, b2) { + this.g = this.s = this.j = ""; + this.m = null; + this.o = this.l = ""; + this.h = false; + if (a instanceof T) { + this.h = void 0 !== b2 ? b2 : a.h; + Gc$1(this, a.j); + this.s = a.s; + this.g = a.g; + Hc$1(this, a.m); + this.l = a.l; + b2 = a.i; + var c = new Ic$1(); + c.i = b2.i; + b2.g && (c.g = new Map(b2.g), c.h = b2.h); + Jc$1(this, c); + this.o = a.o; + } else + a && (c = String(a).match(Ec$1)) ? (this.h = !!b2, Gc$1(this, c[1] || "", true), this.s = Kc(c[2] || ""), this.g = Kc(c[3] || "", true), Hc$1(this, c[4]), this.l = Kc(c[5] || "", true), Jc$1(this, c[6] || "", true), this.o = Kc(c[7] || "")) : (this.h = !!b2, this.i = new Ic$1(null, this.h)); +} +T.prototype.toString = function() { + var a = [], b2 = this.j; + b2 && a.push(Lc$1(b2, Mc$1, true), ":"); + var c = this.g; + if (c || "file" == b2) + a.push("//"), (b2 = this.s) && a.push(Lc$1(b2, Mc$1, true), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.m, null != c && a.push(":", String(c)); + if (c = this.l) + this.g && "/" != c.charAt(0) && a.push("/"), a.push(Lc$1(c, "/" == c.charAt(0) ? Nc$1 : Oc$1, true)); + (c = this.i.toString()) && a.push("?", c); + (c = this.o) && a.push("#", Lc$1(c, Pc)); + return a.join(""); +}; +function M(a) { + return new T(a); +} +function Gc$1(a, b2, c) { + a.j = c ? Kc(b2, true) : b2; + a.j && (a.j = a.j.replace(/:$/, "")); +} +function Hc$1(a, b2) { + if (b2) { + b2 = Number(b2); + if (isNaN(b2) || 0 > b2) + throw Error("Bad port number " + b2); + a.m = b2; + } else + a.m = null; +} +function Jc$1(a, b2, c) { + b2 instanceof Ic$1 ? (a.i = b2, Qc$1(a.i, a.h)) : (c || (b2 = Lc$1(b2, Rc)), a.i = new Ic$1(b2, a.h)); +} +function S$1(a, b2, c) { + a.i.set(b2, c); +} +function dc$1(a) { + S$1(a, "zx", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ Date.now()).toString(36)); + return a; +} +function Kc(a, b2) { + return a ? b2 ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : ""; +} +function Lc$1(a, b2, c) { + return "string" === typeof a ? (a = encodeURI(a).replace(b2, Sc$1), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null; +} +function Sc$1(a) { + a = a.charCodeAt(0); + return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); +} +var Mc$1 = /[#\/\?@]/g, Oc$1 = /[#\?:]/g, Nc$1 = /[#\?]/g, Rc = /[#\?@]/g, Pc = /#/g; +function Ic$1(a, b2) { + this.h = this.g = null; + this.i = a || null; + this.j = !!b2; +} +function U$1(a) { + a.g || (a.g = /* @__PURE__ */ new Map(), a.h = 0, a.i && Fc$1(a.i, function(b2, c) { + a.add(decodeURIComponent(b2.replace(/\+/g, " ")), c); + })); +} +k$1 = Ic$1.prototype; +k$1.add = function(a, b2) { + U$1(this); + this.i = null; + a = V$1(this, a); + var c = this.g.get(a); + c || this.g.set(a, c = []); + c.push(b2); + this.h += 1; + return this; +}; +function Tc$1(a, b2) { + U$1(a); + b2 = V$1(a, b2); + a.g.has(b2) && (a.i = null, a.h -= a.g.get(b2).length, a.g.delete(b2)); +} +function Uc$1(a, b2) { + U$1(a); + b2 = V$1(a, b2); + return a.g.has(b2); +} +k$1.forEach = function(a, b2) { + U$1(this); + this.g.forEach(function(c, d) { + c.forEach(function(e) { + a.call(b2, e, d, this); + }, this); + }, this); +}; +k$1.oa = function() { + U$1(this); + const a = Array.from(this.g.values()), b2 = Array.from(this.g.keys()), c = []; + for (let d = 0; d < b2.length; d++) { + const e = a[d]; + for (let f = 0; f < e.length; f++) + c.push(b2[d]); + } + return c; +}; +k$1.W = function(a) { + U$1(this); + let b2 = []; + if ("string" === typeof a) + Uc$1(this, a) && (b2 = b2.concat(this.g.get(V$1(this, a)))); + else { + a = Array.from(this.g.values()); + for (let c = 0; c < a.length; c++) + b2 = b2.concat(a[c]); + } + return b2; +}; +k$1.set = function(a, b2) { + U$1(this); + this.i = null; + a = V$1(this, a); + Uc$1(this, a) && (this.h -= this.g.get(a).length); + this.g.set(a, [b2]); + this.h += 1; + return this; +}; +k$1.get = function(a, b2) { + if (!a) + return b2; + a = this.W(a); + return 0 < a.length ? String(a[0]) : b2; +}; +function fc$1(a, b2, c) { + Tc$1(a, b2); + 0 < c.length && (a.i = null, a.g.set(V$1(a, b2), ma(c)), a.h += c.length); +} +k$1.toString = function() { + if (this.i) + return this.i; + if (!this.g) + return ""; + const a = [], b2 = Array.from(this.g.keys()); + for (var c = 0; c < b2.length; c++) { + var d = b2[c]; + const f = encodeURIComponent(String(d)), h = this.W(d); + for (d = 0; d < h.length; d++) { + var e = f; + "" !== h[d] && (e += "=" + encodeURIComponent(String(h[d]))); + a.push(e); + } + } + return this.i = a.join("&"); +}; +function V$1(a, b2) { + b2 = String(b2); + a.j && (b2 = b2.toLowerCase()); + return b2; +} +function Qc$1(a, b2) { + b2 && !a.j && (U$1(a), a.i = null, a.g.forEach(function(c, d) { + var e = d.toLowerCase(); + d != e && (Tc$1(this, d), fc$1(this, e, c)); + }, a)); + a.j = b2; +} +var Vc$1 = class { + constructor(a, b2) { + this.h = a; + this.g = b2; + } +}; +function Wc$1(a) { + this.l = a || Xc$1; + l.PerformanceNavigationTiming ? (a = l.performance.getEntriesByType("navigation"), a = 0 < a.length && ("hq" == a[0].nextHopProtocol || "h2" == a[0].nextHopProtocol)) : a = !!(l.g && l.g.Ga && l.g.Ga() && l.g.Ga().$b); + this.j = a ? this.l : 1; + this.g = null; + 1 < this.j && (this.g = /* @__PURE__ */ new Set()); + this.h = null; + this.i = []; +} +var Xc$1 = 10; +function Yc$1(a) { + return a.h ? true : a.g ? a.g.size >= a.j : false; +} +function uc$1(a) { + return a.h ? 1 : a.g ? a.g.size : 0; +} +function qc$1(a, b2) { + return a.h ? a.h == b2 : a.g ? a.g.has(b2) : false; +} +function vc(a, b2) { + a.g ? a.g.add(b2) : a.h = b2; +} +function xc$1(a, b2) { + a.h && a.h == b2 ? a.h = null : a.g && a.g.has(b2) && a.g.delete(b2); +} +Wc$1.prototype.cancel = function() { + this.i = Zc$1(this); + if (this.h) + this.h.cancel(), this.h = null; + else if (this.g && 0 !== this.g.size) { + for (const a of this.g.values()) + a.cancel(); + this.g.clear(); + } +}; +function Zc$1(a) { + if (null != a.h) + return a.i.concat(a.h.D); + if (null != a.g && 0 !== a.g.size) { + let b2 = a.i; + for (const c of a.g.values()) + b2 = b2.concat(c.D); + return b2; + } + return ma(a.i); +} +function $c$1() { +} +$c$1.prototype.stringify = function(a) { + return l.JSON.stringify(a, void 0); +}; +$c$1.prototype.parse = function(a) { + return l.JSON.parse(a, void 0); +}; +function ad() { + this.g = new $c$1(); +} +function bd(a, b2, c) { + const d = c || ""; + try { + Dc$1(a, function(e, f) { + let h = e; + p(e) && (h = lb(e)); + b2.push(d + f + "=" + encodeURIComponent(h)); + }); + } catch (e) { + throw b2.push(d + "type=" + encodeURIComponent("_badmap")), e; + } +} +function cd(a, b2) { + const c = new Gb(); + if (l.Image) { + const d = new Image(); + d.onload = ia(dd, c, d, "TestLoadImage: loaded", true, b2); + d.onerror = ia(dd, c, d, "TestLoadImage: error", false, b2); + d.onabort = ia(dd, c, d, "TestLoadImage: abort", false, b2); + d.ontimeout = ia(dd, c, d, "TestLoadImage: timeout", false, b2); + l.setTimeout(function() { + if (d.ontimeout) + d.ontimeout(); + }, 1e4); + d.src = a; + } else + b2(false); +} +function dd(a, b2, c, d, e) { + try { + b2.onload = null, b2.onerror = null, b2.onabort = null, b2.ontimeout = null, e(d); + } catch (f) { + } +} +function ed(a) { + this.l = a.ac || null; + this.j = a.jb || false; +} +t(ed, Sb); +ed.prototype.g = function() { + return new fd(this.l, this.j); +}; +ed.prototype.i = function(a) { + return function() { + return a; + }; +}({}); +function fd(a, b2) { + B$1.call(this); + this.D = a; + this.u = b2; + this.m = void 0; + this.readyState = gd; + this.status = 0; + this.responseType = this.responseText = this.response = this.statusText = ""; + this.onreadystatechange = null; + this.v = new Headers(); + this.h = null; + this.C = "GET"; + this.B = ""; + this.g = false; + this.A = this.j = this.l = null; +} +t(fd, B$1); +var gd = 0; +k$1 = fd.prototype; +k$1.open = function(a, b2) { + if (this.readyState != gd) + throw this.abort(), Error("Error reopening a connection"); + this.C = a; + this.B = b2; + this.readyState = 1; + hd(this); +}; +k$1.send = function(a) { + if (1 != this.readyState) + throw this.abort(), Error("need to call open() first. "); + this.g = true; + const b2 = { headers: this.v, method: this.C, credentials: this.m, cache: void 0 }; + a && (b2.body = a); + (this.D || l).fetch(new Request(this.B, b2)).then(this.Wa.bind(this), this.ga.bind(this)); +}; +k$1.abort = function() { + this.response = this.responseText = ""; + this.v = new Headers(); + this.status = 0; + this.j && this.j.cancel("Request was aborted.").catch(() => { + }); + 1 <= this.readyState && this.g && 4 != this.readyState && (this.g = false, id(this)); + this.readyState = gd; +}; +k$1.Wa = function(a) { + if (this.g && (this.l = a, this.h || (this.status = this.l.status, this.statusText = this.l.statusText, this.h = a.headers, this.readyState = 2, hd(this)), this.g && (this.readyState = 3, hd(this), this.g))) + if ("arraybuffer" === this.responseType) + a.arrayBuffer().then(this.Ua.bind(this), this.ga.bind(this)); + else if ("undefined" !== typeof l.ReadableStream && "body" in a) { + this.j = a.body.getReader(); + if (this.u) { + if (this.responseType) + throw Error('responseType must be empty for "streamBinaryChunks" mode responses.'); + this.response = []; + } else + this.response = this.responseText = "", this.A = new TextDecoder(); + jd(this); + } else + a.text().then(this.Va.bind(this), this.ga.bind(this)); +}; +function jd(a) { + a.j.read().then(a.Ta.bind(a)).catch(a.ga.bind(a)); +} +k$1.Ta = function(a) { + if (this.g) { + if (this.u && a.value) + this.response.push(a.value); + else if (!this.u) { + var b2 = a.value ? a.value : new Uint8Array(0); + if (b2 = this.A.decode(b2, { stream: !a.done })) + this.response = this.responseText += b2; + } + a.done ? id(this) : hd(this); + 3 == this.readyState && jd(this); + } +}; +k$1.Va = function(a) { + this.g && (this.response = this.responseText = a, id(this)); +}; +k$1.Ua = function(a) { + this.g && (this.response = a, id(this)); +}; +k$1.ga = function() { + this.g && id(this); +}; +function id(a) { + a.readyState = 4; + a.l = null; + a.j = null; + a.A = null; + hd(a); +} +k$1.setRequestHeader = function(a, b2) { + this.v.append(a, b2); +}; +k$1.getResponseHeader = function(a) { + return this.h ? this.h.get(a.toLowerCase()) || "" : ""; +}; +k$1.getAllResponseHeaders = function() { + if (!this.h) + return ""; + const a = [], b2 = this.h.entries(); + for (var c = b2.next(); !c.done; ) + c = c.value, a.push(c[0] + ": " + c[1]), c = b2.next(); + return a.join("\r\n"); +}; +function hd(a) { + a.onreadystatechange && a.onreadystatechange.call(a); +} +Object.defineProperty(fd.prototype, "withCredentials", { get: function() { + return "include" === this.m; +}, set: function(a) { + this.m = a ? "include" : "same-origin"; +} }); +var kd = l.JSON.parse; +function W$1(a) { + B$1.call(this); + this.headers = /* @__PURE__ */ new Map(); + this.u = a || null; + this.h = false; + this.C = this.g = null; + this.H = ""; + this.m = 0; + this.j = ""; + this.l = this.F = this.v = this.D = false; + this.B = 0; + this.A = null; + this.J = ld; + this.K = this.L = false; +} +t(W$1, B$1); +var ld = "", md = /^https?$/i, nd = ["POST", "PUT"]; +k$1 = W$1.prototype; +k$1.Ka = function(a) { + this.L = a; +}; +k$1.da = function(a, b2, c, d) { + if (this.g) + throw Error("[goog.net.XhrIo] Object is active with another request=" + this.H + "; newUri=" + a); + b2 = b2 ? b2.toUpperCase() : "GET"; + this.H = a; + this.j = ""; + this.m = 0; + this.D = false; + this.h = true; + this.g = this.u ? this.u.g() : Xb.g(); + this.C = this.u ? Tb(this.u) : Tb(Xb); + this.g.onreadystatechange = q$1(this.Ha, this); + try { + this.F = true, this.g.open(b2, String(a), true), this.F = false; + } catch (f) { + od(this, f); + return; + } + a = c || ""; + c = new Map(this.headers); + if (d) + if (Object.getPrototypeOf(d) === Object.prototype) + for (var e in d) + c.set(e, d[e]); + else if ("function" === typeof d.keys && "function" === typeof d.get) + for (const f of d.keys()) + c.set(f, d.get(f)); + else + throw Error("Unknown input type for opt_headers: " + String(d)); + d = Array.from(c.keys()).find((f) => "content-type" == f.toLowerCase()); + e = l.FormData && a instanceof l.FormData; + !(0 <= la(nd, b2)) || d || e || c.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + for (const [f, h] of c) + this.g.setRequestHeader(f, h); + this.J && (this.g.responseType = this.J); + "withCredentials" in this.g && this.g.withCredentials !== this.L && (this.g.withCredentials = this.L); + try { + pd(this), 0 < this.B && ((this.K = qd(this.g)) ? (this.g.timeout = this.B, this.g.ontimeout = q$1(this.qa, this)) : this.A = Ab(this.qa, this.B, this)), this.v = true, this.g.send(a), this.v = false; + } catch (f) { + od(this, f); + } +}; +function qd(a) { + return y && Ia() && "number" === typeof a.timeout && void 0 !== a.ontimeout; +} +k$1.qa = function() { + "undefined" != typeof goog && this.g && (this.j = "Timed out after " + this.B + "ms, aborting", this.m = 8, C$1(this, "timeout"), this.abort(8)); +}; +function od(a, b2) { + a.h = false; + a.g && (a.l = true, a.g.abort(), a.l = false); + a.j = b2; + a.m = 5; + rd(a); + sd(a); +} +function rd(a) { + a.D || (a.D = true, C$1(a, "complete"), C$1(a, "error")); +} +k$1.abort = function(a) { + this.g && this.h && (this.h = false, this.l = true, this.g.abort(), this.l = false, this.m = a || 7, C$1(this, "complete"), C$1(this, "abort"), sd(this)); +}; +k$1.M = function() { + this.g && (this.h && (this.h = false, this.l = true, this.g.abort(), this.l = false), sd(this, true)); + W$1.X.M.call(this); +}; +k$1.Ha = function() { + this.s || (this.F || this.v || this.l ? td(this) : this.fb()); +}; +k$1.fb = function() { + td(this); +}; +function td(a) { + if (a.h && "undefined" != typeof goog && (!a.C[1] || 4 != O$1(a) || 2 != a.aa())) { + if (a.v && 4 == O$1(a)) + Ab(a.Ha, 0, a); + else if (C$1(a, "readystatechange"), 4 == O$1(a)) { + a.h = false; + try { + const n = a.aa(); + a: + switch (n) { + case 200: + case 201: + case 202: + case 204: + case 206: + case 304: + case 1223: + var b2 = true; + break a; + default: + b2 = false; + } + var c; + if (!(c = b2)) { + var d; + if (d = 0 === n) { + var e = String(a.H).match(Ec$1)[1] || null; + if (!e && l.self && l.self.location) { + var f = l.self.location.protocol; + e = f.substr(0, f.length - 1); + } + d = !md.test(e ? e.toLowerCase() : ""); + } + c = d; + } + if (c) + C$1(a, "complete"), C$1( + a, + "success" + ); + else { + a.m = 6; + try { + var h = 2 < O$1(a) ? a.g.statusText : ""; + } catch (u) { + h = ""; + } + a.j = h + " [" + a.aa() + "]"; + rd(a); + } + } finally { + sd(a); + } + } + } +} +function sd(a, b2) { + if (a.g) { + pd(a); + const c = a.g, d = a.C[0] ? aa$1 : null; + a.g = null; + a.C = null; + b2 || C$1(a, "ready"); + try { + c.onreadystatechange = d; + } catch (e) { + } + } +} +function pd(a) { + a.g && a.K && (a.g.ontimeout = null); + a.A && (l.clearTimeout(a.A), a.A = null); +} +function O$1(a) { + return a.g ? a.g.readyState : 0; +} +k$1.aa = function() { + try { + return 2 < O$1(this) ? this.g.status : -1; + } catch (a) { + return -1; + } +}; +k$1.fa = function() { + try { + return this.g ? this.g.responseText : ""; + } catch (a) { + return ""; + } +}; +k$1.Sa = function(a) { + if (this.g) { + var b2 = this.g.responseText; + a && 0 == b2.indexOf(a) && (b2 = b2.substring(a.length)); + return kd(b2); + } +}; +function hc$1(a) { + try { + if (!a.g) + return null; + if ("response" in a.g) + return a.g.response; + switch (a.J) { + case ld: + case "text": + return a.g.responseText; + case "arraybuffer": + if ("mozResponseArrayBuffer" in a.g) + return a.g.mozResponseArrayBuffer; + } + return null; + } catch (b2) { + return null; + } +} +k$1.Ea = function() { + return this.m; +}; +k$1.Oa = function() { + return "string" === typeof this.j ? this.j : String(this.j); +}; +function ud(a) { + let b2 = ""; + Qa$1(a, function(c, d) { + b2 += d; + b2 += ":"; + b2 += c; + b2 += "\r\n"; + }); + return b2; +} +function vd(a, b2, c) { + a: { + for (d in c) { + var d = false; + break a; + } + d = true; + } + d || (c = ud(c), "string" === typeof a ? null != c && encodeURIComponent(String(c)) : S$1(a, b2, c)); +} +function wd(a, b2, c) { + return c && c.internalChannelParams ? c.internalChannelParams[a] || b2 : b2; +} +function xd(a) { + this.Ca = 0; + this.i = []; + this.j = new Gb(); + this.ka = this.sa = this.F = this.V = this.g = this.za = this.D = this.ia = this.o = this.S = this.s = null; + this.ab = this.U = 0; + this.Za = wd("failFast", false, a); + this.L = this.v = this.u = this.m = this.l = null; + this.Y = true; + this.pa = this.Ba = this.T = -1; + this.Z = this.A = this.C = 0; + this.Xa = wd("baseRetryDelayMs", 5e3, a); + this.bb = wd("retryDelaySeedMs", 1e4, a); + this.$a = wd("forwardChannelMaxRetries", 2, a); + this.ta = wd("forwardChannelRequestTimeoutMs", 2e4, a); + this.ra = a && a.xmlHttpFactory || void 0; + this.Da = a && a.Zb || false; + this.J = void 0; + this.H = a && a.supportsCrossDomainXhr || false; + this.I = ""; + this.h = new Wc$1(a && a.concurrentRequestLimit); + this.Fa = new ad(); + this.O = a && a.fastHandshake || false; + this.N = a && a.encodeInitMessageHeaders || false; + this.O && this.N && (this.N = false); + this.Ya = a && a.Xb || false; + a && a.Aa && this.j.Aa(); + a && a.forceLongPolling && (this.Y = false); + this.$ = !this.O && this.Y && a && a.detectBufferingProxy || false; + this.ja = void 0; + this.P = 0; + this.K = false; + this.la = this.B = null; +} +k$1 = xd.prototype; +k$1.ma = 8; +k$1.G = 1; +function Ac$1(a) { + yd(a); + if (3 == a.G) { + var b2 = a.U++, c = M(a.F); + S$1(c, "SID", a.I); + S$1(c, "RID", b2); + S$1(c, "TYPE", "terminate"); + zd(a, c); + b2 = new L$1(a, a.j, b2, void 0); + b2.K = 2; + b2.v = dc$1(M(c)); + c = false; + l.navigator && l.navigator.sendBeacon && (c = l.navigator.sendBeacon(b2.v.toString(), "")); + !c && l.Image && (new Image().src = b2.v, c = true); + c || (b2.g = gc$1(b2.l, null), b2.g.da(b2.v)); + b2.F = Date.now(); + N$1(b2); + } + Ad(a); +} +function sc$1(a) { + a.g && (oc$1(a), a.g.cancel(), a.g = null); +} +function yd(a) { + sc$1(a); + a.u && (l.clearTimeout(a.u), a.u = null); + rc$1(a); + a.h.cancel(); + a.m && ("number" === typeof a.m && l.clearTimeout(a.m), a.m = null); +} +function zc$1(a) { + Yc$1(a.h) || a.m || (a.m = true, sb(a.Ja, a), a.C = 0); +} +function Bd(a, b2) { + if (uc$1(a.h) >= a.h.j - (a.m ? 1 : 0)) + return false; + if (a.m) + return a.i = b2.D.concat(a.i), true; + if (1 == a.G || 2 == a.G || a.C >= (a.Za ? 0 : a.$a)) + return false; + a.m = J(q$1(a.Ja, a, b2), Cd(a, a.C)); + a.C++; + return true; +} +k$1.Ja = function(a) { + if (this.m) + if (this.m = null, 1 == this.G) { + if (!a) { + this.U = Math.floor(1e5 * Math.random()); + a = this.U++; + const e = new L$1(this, this.j, a, void 0); + let f = this.s; + this.S && (f ? (f = Ra$1(f), Ta$1(f, this.S)) : f = this.S); + null !== this.o || this.N || (e.H = f, f = null); + if (this.O) + a: { + var b2 = 0; + for (var c = 0; c < this.i.length; c++) { + b: { + var d = this.i[c]; + if ("__data__" in d.g && (d = d.g.__data__, "string" === typeof d)) { + d = d.length; + break b; + } + d = void 0; + } + if (void 0 === d) + break; + b2 += d; + if (4096 < b2) { + b2 = c; + break a; + } + if (4096 === b2 || c === this.i.length - 1) { + b2 = c + 1; + break a; + } + } + b2 = 1e3; + } + else + b2 = 1e3; + b2 = Dd(this, e, b2); + c = M(this.F); + S$1(c, "RID", a); + S$1(c, "CVER", 22); + this.D && S$1(c, "X-HTTP-Session-Id", this.D); + zd(this, c); + f && (this.N ? b2 = "headers=" + encodeURIComponent(String(ud(f))) + "&" + b2 : this.o && vd(c, this.o, f)); + vc(this.h, e); + this.Ya && S$1(c, "TYPE", "init"); + this.O ? (S$1(c, "$req", b2), S$1(c, "SID", "null"), e.Z = true, cc$1(e, c, null)) : cc$1(e, c, b2); + this.G = 2; + } + } else + 3 == this.G && (a ? Ed(this, a) : 0 == this.i.length || Yc$1(this.h) || Ed(this)); +}; +function Ed(a, b2) { + var c; + b2 ? c = b2.m : c = a.U++; + const d = M(a.F); + S$1(d, "SID", a.I); + S$1(d, "RID", c); + S$1(d, "AID", a.T); + zd(a, d); + a.o && a.s && vd(d, a.o, a.s); + c = new L$1(a, a.j, c, a.C + 1); + null === a.o && (c.H = a.s); + b2 && (a.i = b2.D.concat(a.i)); + b2 = Dd(a, c, 1e3); + c.setTimeout(Math.round(0.5 * a.ta) + Math.round(0.5 * a.ta * Math.random())); + vc(a.h, c); + cc$1(c, d, b2); +} +function zd(a, b2) { + a.ia && Qa$1(a.ia, function(c, d) { + S$1(b2, d, c); + }); + a.l && Dc$1({}, function(c, d) { + S$1(b2, d, c); + }); +} +function Dd(a, b2, c) { + c = Math.min(a.i.length, c); + var d = a.l ? q$1(a.l.Ra, a.l, a) : null; + a: { + var e = a.i; + let f = -1; + for (; ; ) { + const h = ["count=" + c]; + -1 == f ? 0 < c ? (f = e[0].h, h.push("ofs=" + f)) : f = 0 : h.push("ofs=" + f); + let n = true; + for (let u = 0; u < c; u++) { + let m = e[u].h; + const r = e[u].g; + m -= f; + if (0 > m) + f = Math.max(0, e[u].h - 100), n = false; + else + try { + bd(r, h, "req" + m + "_"); + } catch (F2) { + d && d(r); + } + } + if (n) { + d = h.join("&"); + break a; + } + } + } + a = a.i.splice(0, c); + b2.D = a; + return d; +} +function yc$1(a) { + a.g || a.u || (a.Z = 1, sb(a.Ia, a), a.A = 0); +} +function tc$1(a) { + if (a.g || a.u || 3 <= a.A) + return false; + a.Z++; + a.u = J(q$1(a.Ia, a), Cd(a, a.A)); + a.A++; + return true; +} +k$1.Ia = function() { + this.u = null; + Fd(this); + if (this.$ && !(this.K || null == this.g || 0 >= this.P)) { + var a = 2 * this.P; + this.j.info("BP detection timer enabled: " + a); + this.B = J(q$1(this.eb, this), a); + } +}; +k$1.eb = function() { + this.B && (this.B = null, this.j.info("BP detection timeout reached."), this.j.info("Buffering proxy detected and switch to long-polling!"), this.L = false, this.K = true, I(10), sc$1(this), Fd(this)); +}; +function oc$1(a) { + null != a.B && (l.clearTimeout(a.B), a.B = null); +} +function Fd(a) { + a.g = new L$1(a, a.j, "rpc", a.Z); + null === a.o && (a.g.H = a.s); + a.g.N = 0; + var b2 = M(a.sa); + S$1(b2, "RID", "rpc"); + S$1(b2, "SID", a.I); + S$1(b2, "CI", a.L ? "0" : "1"); + S$1(b2, "AID", a.T); + S$1(b2, "TYPE", "xmlhttp"); + zd(a, b2); + a.o && a.s && vd(b2, a.o, a.s); + a.J && a.g.setTimeout(a.J); + var c = a.g; + a = a.ka; + c.K = 1; + c.v = dc$1(M(b2)); + c.s = null; + c.P = true; + ec$1(c, a); +} +k$1.cb = function() { + null != this.v && (this.v = null, sc$1(this), tc$1(this), I(19)); +}; +function rc$1(a) { + null != a.v && (l.clearTimeout(a.v), a.v = null); +} +function mc$1(a, b2) { + var c = null; + if (a.g == b2) { + rc$1(a); + oc$1(a); + a.g = null; + var d = 2; + } else if (qc$1(a.h, b2)) + c = b2.D, xc$1(a.h, b2), d = 1; + else + return; + if (0 != a.G) { + if (a.pa = b2.Y, b2.i) + if (1 == d) { + c = b2.s ? b2.s.length : 0; + b2 = Date.now() - b2.F; + var e = a.C; + d = Mb(); + C$1(d, new Pb(d, c)); + zc$1(a); + } else + yc$1(a); + else if (e = b2.o, 3 == e || 0 == e && 0 < a.pa || !(1 == d && Bd(a, b2) || 2 == d && tc$1(a))) + switch (c && 0 < c.length && (b2 = a.h, b2.i = b2.i.concat(c)), e) { + case 1: + R(a, 5); + break; + case 4: + R(a, 10); + break; + case 3: + R(a, 6); + break; + default: + R(a, 2); + } + } +} +function Cd(a, b2) { + let c = a.Xa + Math.floor(Math.random() * a.bb); + a.l || (c *= 2); + return c * b2; +} +function R(a, b2) { + a.j.info("Error code " + b2); + if (2 == b2) { + var c = null; + a.l && (c = null); + var d = q$1(a.kb, a); + c || (c = new T("//www.google.com/images/cleardot.gif"), l.location && "http" == l.location.protocol || Gc$1(c, "https"), dc$1(c)); + cd(c.toString(), d); + } else + I(2); + a.G = 0; + a.l && a.l.va(b2); + Ad(a); + yd(a); +} +k$1.kb = function(a) { + a ? (this.j.info("Successfully pinged google.com"), I(2)) : (this.j.info("Failed to ping google.com"), I(1)); +}; +function Ad(a) { + a.G = 0; + a.la = []; + if (a.l) { + const b2 = Zc$1(a.h); + if (0 != b2.length || 0 != a.i.length) + na(a.la, b2), na(a.la, a.i), a.h.i.length = 0, ma(a.i), a.i.length = 0; + a.l.ua(); + } +} +function wc$1(a, b2, c) { + var d = c instanceof T ? M(c) : new T(c, void 0); + if ("" != d.g) + b2 && (d.g = b2 + "." + d.g), Hc$1(d, d.m); + else { + var e = l.location; + d = e.protocol; + b2 = b2 ? b2 + "." + e.hostname : e.hostname; + e = +e.port; + var f = new T(null, void 0); + d && Gc$1(f, d); + b2 && (f.g = b2); + e && Hc$1(f, e); + c && (f.l = c); + d = f; + } + c = a.D; + b2 = a.za; + c && b2 && S$1(d, c, b2); + S$1(d, "VER", a.ma); + zd(a, d); + return d; +} +function gc$1(a, b2, c) { + if (b2 && !a.H) + throw Error("Can't create secondary domain capable XhrIo object."); + b2 = c && a.Da && !a.ra ? new W$1(new ed({ jb: true })) : new W$1(a.ra); + b2.Ka(a.H); + return b2; +} +function Gd() { +} +k$1 = Gd.prototype; +k$1.xa = function() { +}; +k$1.wa = function() { +}; +k$1.va = function() { +}; +k$1.ua = function() { +}; +k$1.Ra = function() { +}; +function Hd() { + if (y && !(10 <= Number(La))) + throw Error("Environmental error: no available transport."); +} +Hd.prototype.g = function(a, b2) { + return new X$1(a, b2); +}; +function X$1(a, b2) { + B$1.call(this); + this.g = new xd(b2); + this.l = a; + this.h = b2 && b2.messageUrlParams || null; + a = b2 && b2.messageHeaders || null; + b2 && b2.clientProtocolHeaderRequired && (a ? a["X-Client-Protocol"] = "webchannel" : a = { "X-Client-Protocol": "webchannel" }); + this.g.s = a; + a = b2 && b2.initMessageHeaders || null; + b2 && b2.messageContentType && (a ? a["X-WebChannel-Content-Type"] = b2.messageContentType : a = { "X-WebChannel-Content-Type": b2.messageContentType }); + b2 && b2.ya && (a ? a["X-WebChannel-Client-Profile"] = b2.ya : a = { "X-WebChannel-Client-Profile": b2.ya }); + this.g.S = a; + (a = b2 && b2.Yb) && !pa(a) && (this.g.o = a); + this.A = b2 && b2.supportsCrossDomainXhr || false; + this.v = b2 && b2.sendRawJson || false; + (b2 = b2 && b2.httpSessionIdParam) && !pa(b2) && (this.g.D = b2, a = this.h, null !== a && b2 in a && (a = this.h, b2 in a && delete a[b2])); + this.j = new Y$1(this); +} +t(X$1, B$1); +X$1.prototype.m = function() { + this.g.l = this.j; + this.A && (this.g.H = true); + var a = this.g, b2 = this.l, c = this.h || void 0; + I(0); + a.V = b2; + a.ia = c || {}; + a.L = a.Y; + a.F = wc$1(a, null, a.V); + zc$1(a); +}; +X$1.prototype.close = function() { + Ac$1(this.g); +}; +X$1.prototype.u = function(a) { + var b2 = this.g; + if ("string" === typeof a) { + var c = {}; + c.__data__ = a; + a = c; + } else + this.v && (c = {}, c.__data__ = lb(a), a = c); + b2.i.push(new Vc$1(b2.ab++, a)); + 3 == b2.G && zc$1(b2); +}; +X$1.prototype.M = function() { + this.g.l = null; + delete this.j; + Ac$1(this.g); + delete this.g; + X$1.X.M.call(this); +}; +function Id(a) { + Vb.call(this); + var b2 = a.__sm__; + if (b2) { + a: { + for (const c in b2) { + a = c; + break a; + } + a = void 0; + } + if (this.i = a) + a = this.i, b2 = null !== b2 && a in b2 ? b2[a] : void 0; + this.data = b2; + } else + this.data = a; +} +t(Id, Vb); +function Jd() { + Wb.call(this); + this.status = 1; +} +t(Jd, Wb); +function Y$1(a) { + this.g = a; +} +t(Y$1, Gd); +Y$1.prototype.xa = function() { + C$1(this.g, "a"); +}; +Y$1.prototype.wa = function(a) { + C$1(this.g, new Id(a)); +}; +Y$1.prototype.va = function(a) { + C$1(this.g, new Jd()); +}; +Y$1.prototype.ua = function() { + C$1(this.g, "b"); +}; +Hd.prototype.createWebChannel = Hd.prototype.g; +X$1.prototype.send = X$1.prototype.u; +X$1.prototype.open = X$1.prototype.m; +X$1.prototype.close = X$1.prototype.close; +Qb.NO_ERROR = 0; +Qb.TIMEOUT = 8; +Qb.HTTP_ERROR = 6; +Rb.COMPLETE = "complete"; +Ub.EventType = K$1; +K$1.OPEN = "a"; +K$1.CLOSE = "b"; +K$1.ERROR = "c"; +K$1.MESSAGE = "d"; +B$1.prototype.listen = B$1.prototype.N; +W$1.prototype.listenOnce = W$1.prototype.O; +W$1.prototype.getLastError = W$1.prototype.Oa; +W$1.prototype.getLastErrorCode = W$1.prototype.Ea; +W$1.prototype.getStatus = W$1.prototype.aa; +W$1.prototype.getResponseJson = W$1.prototype.Sa; +W$1.prototype.getResponseText = W$1.prototype.fa; +W$1.prototype.send = W$1.prototype.da; +W$1.prototype.setWithCredentials = W$1.prototype.Ka; +var createWebChannelTransport = function() { + return new Hd(); +}; +var getStatEventTarget = function() { + return Mb(); +}; +var ErrorCode = Qb; +var EventType = Rb; +var Event = G$1; +var Stat = { sb: 0, vb: 1, wb: 2, Pb: 3, Ub: 4, Rb: 5, Sb: 6, Qb: 7, Ob: 8, Tb: 9, PROXY: 10, NOPROXY: 11, Mb: 12, Ib: 13, Jb: 14, Hb: 15, Kb: 16, Lb: 17, ob: 18, nb: 19, pb: 20 }; +var FetchXmlHttpFactory = ed; +var WebChannel = Ub; +var XhrIo = W$1; +const v = "@firebase/firestore"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class b { + constructor(t2) { + this.uid = t2; + } + isAuthenticated() { + return null != this.uid; + } + toKey() { + return this.isAuthenticated() ? "uid:" + this.uid : "anonymous-user"; + } + isEqual(t2) { + return t2.uid === this.uid; + } +} +b.UNAUTHENTICATED = new b(null), b.GOOGLE_CREDENTIALS = new b("google-credentials-uid"), b.FIRST_PARTY = new b("first-party-uid"), b.MOCK_USER = new b("mock-user"); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +let P = "9.19.0"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const V = new Logger("@firebase/firestore"); +function S() { + return V.logLevel; +} +function C(t2, ...e) { + if (V.logLevel <= LogLevel.DEBUG) { + const n = e.map(k); + V.debug(`Firestore (${P}): ${t2}`, ...n); + } +} +function x(t2, ...e) { + if (V.logLevel <= LogLevel.ERROR) { + const n = e.map(k); + V.error(`Firestore (${P}): ${t2}`, ...n); + } +} +function N(t2, ...e) { + if (V.logLevel <= LogLevel.WARN) { + const n = e.map(k); + V.warn(`Firestore (${P}): ${t2}`, ...n); + } +} +function k(t2) { + if ("string" == typeof t2) + return t2; + try { + return e = t2, JSON.stringify(e); + } catch (e2) { + return t2; + } + /** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + var e; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function O(t2 = "Unexpected state") { + const e = `FIRESTORE (${P}) INTERNAL ASSERTION FAILED: ` + t2; + throw x(e), new Error(e); +} +function $(t2, e) { + t2 || O(); +} +function F(t2, e) { + return t2; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const B = { + OK: "ok", + CANCELLED: "cancelled", + UNKNOWN: "unknown", + INVALID_ARGUMENT: "invalid-argument", + DEADLINE_EXCEEDED: "deadline-exceeded", + NOT_FOUND: "not-found", + ALREADY_EXISTS: "already-exists", + PERMISSION_DENIED: "permission-denied", + UNAUTHENTICATED: "unauthenticated", + RESOURCE_EXHAUSTED: "resource-exhausted", + FAILED_PRECONDITION: "failed-precondition", + ABORTED: "aborted", + OUT_OF_RANGE: "out-of-range", + UNIMPLEMENTED: "unimplemented", + INTERNAL: "internal", + UNAVAILABLE: "unavailable", + DATA_LOSS: "data-loss" +}; +class L extends FirebaseError { + constructor(t2, e) { + super(t2, e), this.code = t2, this.message = e, this.toString = () => `${this.name}: [code=${this.code}]: ${this.message}`; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class q { + constructor() { + this.promise = new Promise((t2, e) => { + this.resolve = t2, this.reject = e; + }); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class U { + constructor(t2, e) { + this.user = e, this.type = "OAuth", this.headers = /* @__PURE__ */ new Map(), this.headers.set("Authorization", `Bearer ${t2}`); + } +} +class K { + getToken() { + return Promise.resolve(null); + } + invalidateToken() { + } + start(t2, e) { + t2.enqueueRetryable(() => e(b.UNAUTHENTICATED)); + } + shutdown() { + } +} +class G { + constructor(t2) { + this.token = t2, this.changeListener = null; + } + getToken() { + return Promise.resolve(this.token); + } + invalidateToken() { + } + start(t2, e) { + this.changeListener = e, t2.enqueueRetryable(() => e(this.token.user)); + } + shutdown() { + this.changeListener = null; + } +} +class Q { + constructor(t2) { + this.t = t2, this.currentUser = b.UNAUTHENTICATED, this.i = 0, this.forceRefresh = false, this.auth = null; + } + start(t2, e) { + let n = this.i; + const s = (t3) => this.i !== n ? (n = this.i, e(t3)) : Promise.resolve(); + let i = new q(); + this.o = () => { + this.i++, this.currentUser = this.u(), i.resolve(), i = new q(), t2.enqueueRetryable(() => s(this.currentUser)); + }; + const r = () => { + const e2 = i; + t2.enqueueRetryable(async () => { + await e2.promise, await s(this.currentUser); + }); + }, o = (t3) => { + C("FirebaseAuthCredentialsProvider", "Auth detected"), this.auth = t3, this.auth.addAuthTokenListener(this.o), r(); + }; + this.t.onInit((t3) => o(t3)), setTimeout(() => { + if (!this.auth) { + const t3 = this.t.getImmediate({ + optional: true + }); + t3 ? o(t3) : (C("FirebaseAuthCredentialsProvider", "Auth not yet detected"), i.resolve(), i = new q()); + } + }, 0), r(); + } + getToken() { + const t2 = this.i, e = this.forceRefresh; + return this.forceRefresh = false, this.auth ? this.auth.getToken(e).then((e2) => this.i !== t2 ? (C("FirebaseAuthCredentialsProvider", "getToken aborted due to token change."), this.getToken()) : e2 ? ($("string" == typeof e2.accessToken), new U(e2.accessToken, this.currentUser)) : null) : Promise.resolve(null); + } + invalidateToken() { + this.forceRefresh = true; + } + shutdown() { + this.auth && this.auth.removeAuthTokenListener(this.o); + } + u() { + const t2 = this.auth && this.auth.getUid(); + return $(null === t2 || "string" == typeof t2), new b(t2); + } +} +class z { + constructor(t2, e, n) { + this.h = t2, this.l = e, this.m = n, this.type = "FirstParty", this.user = b.FIRST_PARTY, this.g = /* @__PURE__ */ new Map(); + } + p() { + return this.m ? this.m() : null; + } + get headers() { + this.g.set("X-Goog-AuthUser", this.h); + const t2 = this.p(); + return t2 && this.g.set("Authorization", t2), this.l && this.g.set("X-Goog-Iam-Authorization-Token", this.l), this.g; + } +} +class j { + constructor(t2, e, n) { + this.h = t2, this.l = e, this.m = n; + } + getToken() { + return Promise.resolve(new z(this.h, this.l, this.m)); + } + start(t2, e) { + t2.enqueueRetryable(() => e(b.FIRST_PARTY)); + } + shutdown() { + } + invalidateToken() { + } +} +class W { + constructor(t2) { + this.value = t2, this.type = "AppCheck", this.headers = /* @__PURE__ */ new Map(), t2 && t2.length > 0 && this.headers.set("x-firebase-appcheck", this.value); + } +} +class H { + constructor(t2) { + this.I = t2, this.forceRefresh = false, this.appCheck = null, this.T = null; + } + start(t2, e) { + const n = (t3) => { + null != t3.error && C("FirebaseAppCheckTokenProvider", `Error getting App Check token; using placeholder token instead. Error: ${t3.error.message}`); + const n2 = t3.token !== this.T; + return this.T = t3.token, C("FirebaseAppCheckTokenProvider", `Received ${n2 ? "new" : "existing"} token.`), n2 ? e(t3.token) : Promise.resolve(); + }; + this.o = (e2) => { + t2.enqueueRetryable(() => n(e2)); + }; + const s = (t3) => { + C("FirebaseAppCheckTokenProvider", "AppCheck detected"), this.appCheck = t3, this.appCheck.addTokenListener(this.o); + }; + this.I.onInit((t3) => s(t3)), setTimeout(() => { + if (!this.appCheck) { + const t3 = this.I.getImmediate({ + optional: true + }); + t3 ? s(t3) : C("FirebaseAppCheckTokenProvider", "AppCheck not yet detected"); + } + }, 0); + } + getToken() { + const t2 = this.forceRefresh; + return this.forceRefresh = false, this.appCheck ? this.appCheck.getToken(t2).then((t3) => t3 ? ($("string" == typeof t3.token), this.T = t3.token, new W(t3.token)) : null) : Promise.resolve(null); + } + invalidateToken() { + this.forceRefresh = true; + } + shutdown() { + this.appCheck && this.appCheck.removeTokenListener(this.o); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Y(t2) { + const e = "undefined" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t2); + if (e && "function" == typeof e.getRandomValues) + e.getRandomValues(n); + else + for (let e2 = 0; e2 < t2; e2++) + n[e2] = Math.floor(256 * Math.random()); + return n; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Z { + static A() { + const t2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", e = Math.floor(256 / t2.length) * t2.length; + let n = ""; + for (; n.length < 20; ) { + const s = Y(40); + for (let i = 0; i < s.length; ++i) + n.length < 20 && s[i] < e && (n += t2.charAt(s[i] % t2.length)); + } + return n; + } +} +function X(t2, e) { + return t2 < e ? -1 : t2 > e ? 1 : 0; +} +function tt(t2, e, n) { + return t2.length === e.length && t2.every((t3, s) => n(t3, e[s])); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class nt { + constructor(t2, e) { + if (this.seconds = t2, this.nanoseconds = e, e < 0) + throw new L(B.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + e); + if (e >= 1e9) + throw new L(B.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + e); + if (t2 < -62135596800) + throw new L(B.INVALID_ARGUMENT, "Timestamp seconds out of range: " + t2); + if (t2 >= 253402300800) + throw new L(B.INVALID_ARGUMENT, "Timestamp seconds out of range: " + t2); + } + static now() { + return nt.fromMillis(Date.now()); + } + static fromDate(t2) { + return nt.fromMillis(t2.getTime()); + } + static fromMillis(t2) { + const e = Math.floor(t2 / 1e3), n = Math.floor(1e6 * (t2 - 1e3 * e)); + return new nt(e, n); + } + toDate() { + return new Date(this.toMillis()); + } + toMillis() { + return 1e3 * this.seconds + this.nanoseconds / 1e6; + } + _compareTo(t2) { + return this.seconds === t2.seconds ? X(this.nanoseconds, t2.nanoseconds) : X(this.seconds, t2.seconds); + } + isEqual(t2) { + return t2.seconds === this.seconds && t2.nanoseconds === this.nanoseconds; + } + toString() { + return "Timestamp(seconds=" + this.seconds + ", nanoseconds=" + this.nanoseconds + ")"; + } + toJSON() { + return { + seconds: this.seconds, + nanoseconds: this.nanoseconds + }; + } + valueOf() { + const t2 = this.seconds - -62135596800; + return String(t2).padStart(12, "0") + "." + String(this.nanoseconds).padStart(9, "0"); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class st { + constructor(t2) { + this.timestamp = t2; + } + static fromTimestamp(t2) { + return new st(t2); + } + static min() { + return new st(new nt(0, 0)); + } + static max() { + return new st(new nt(253402300799, 999999999)); + } + compareTo(t2) { + return this.timestamp._compareTo(t2.timestamp); + } + isEqual(t2) { + return this.timestamp.isEqual(t2.timestamp); + } + toMicroseconds() { + return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3; + } + toString() { + return "SnapshotVersion(" + this.timestamp.toString() + ")"; + } + toTimestamp() { + return this.timestamp; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class it { + constructor(t2, e, n) { + void 0 === e ? e = 0 : e > t2.length && O(), void 0 === n ? n = t2.length - e : n > t2.length - e && O(), this.segments = t2, this.offset = e, this.len = n; + } + get length() { + return this.len; + } + isEqual(t2) { + return 0 === it.comparator(this, t2); + } + child(t2) { + const e = this.segments.slice(this.offset, this.limit()); + return t2 instanceof it ? t2.forEach((t3) => { + e.push(t3); + }) : e.push(t2), this.construct(e); + } + limit() { + return this.offset + this.length; + } + popFirst(t2) { + return t2 = void 0 === t2 ? 1 : t2, this.construct(this.segments, this.offset + t2, this.length - t2); + } + popLast() { + return this.construct(this.segments, this.offset, this.length - 1); + } + firstSegment() { + return this.segments[this.offset]; + } + lastSegment() { + return this.get(this.length - 1); + } + get(t2) { + return this.segments[this.offset + t2]; + } + isEmpty() { + return 0 === this.length; + } + isPrefixOf(t2) { + if (t2.length < this.length) + return false; + for (let e = 0; e < this.length; e++) + if (this.get(e) !== t2.get(e)) + return false; + return true; + } + isImmediateParentOf(t2) { + if (this.length + 1 !== t2.length) + return false; + for (let e = 0; e < this.length; e++) + if (this.get(e) !== t2.get(e)) + return false; + return true; + } + forEach(t2) { + for (let e = this.offset, n = this.limit(); e < n; e++) + t2(this.segments[e]); + } + toArray() { + return this.segments.slice(this.offset, this.limit()); + } + static comparator(t2, e) { + const n = Math.min(t2.length, e.length); + for (let s = 0; s < n; s++) { + const n2 = t2.get(s), i = e.get(s); + if (n2 < i) + return -1; + if (n2 > i) + return 1; + } + return t2.length < e.length ? -1 : t2.length > e.length ? 1 : 0; + } +} +class rt extends it { + construct(t2, e, n) { + return new rt(t2, e, n); + } + canonicalString() { + return this.toArray().join("/"); + } + toString() { + return this.canonicalString(); + } + static fromString(...t2) { + const e = []; + for (const n of t2) { + if (n.indexOf("//") >= 0) + throw new L(B.INVALID_ARGUMENT, `Invalid segment (${n}). Paths must not contain // in them.`); + e.push(...n.split("/").filter((t3) => t3.length > 0)); + } + return new rt(e); + } + static emptyPath() { + return new rt([]); + } +} +const ot = /^[_a-zA-Z][_a-zA-Z0-9]*$/; +class ut extends it { + construct(t2, e, n) { + return new ut(t2, e, n); + } + static isValidIdentifier(t2) { + return ot.test(t2); + } + canonicalString() { + return this.toArray().map((t2) => (t2 = t2.replace(/\\/g, "\\\\").replace(/`/g, "\\`"), ut.isValidIdentifier(t2) || (t2 = "`" + t2 + "`"), t2)).join("."); + } + toString() { + return this.canonicalString(); + } + isKeyField() { + return 1 === this.length && "__name__" === this.get(0); + } + static keyField() { + return new ut(["__name__"]); + } + static fromServerFormat(t2) { + const e = []; + let n = "", s = 0; + const i = () => { + if (0 === n.length) + throw new L(B.INVALID_ARGUMENT, `Invalid field path (${t2}). Paths must not be empty, begin with '.', end with '.', or contain '..'`); + e.push(n), n = ""; + }; + let r = false; + for (; s < t2.length; ) { + const e2 = t2[s]; + if ("\\" === e2) { + if (s + 1 === t2.length) + throw new L(B.INVALID_ARGUMENT, "Path has trailing escape character: " + t2); + const e3 = t2[s + 1]; + if ("\\" !== e3 && "." !== e3 && "`" !== e3) + throw new L(B.INVALID_ARGUMENT, "Path has invalid escape sequence: " + t2); + n += e3, s += 2; + } else + "`" === e2 ? (r = !r, s++) : "." !== e2 || r ? (n += e2, s++) : (i(), s++); + } + if (i(), r) + throw new L(B.INVALID_ARGUMENT, "Unterminated ` in path: " + t2); + return new ut(e); + } + static emptyPath() { + return new ut([]); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ct { + constructor(t2) { + this.path = t2; + } + static fromPath(t2) { + return new ct(rt.fromString(t2)); + } + static fromName(t2) { + return new ct(rt.fromString(t2).popFirst(5)); + } + static empty() { + return new ct(rt.emptyPath()); + } + get collectionGroup() { + return this.path.popLast().lastSegment(); + } + hasCollectionId(t2) { + return this.path.length >= 2 && this.path.get(this.path.length - 2) === t2; + } + getCollectionGroup() { + return this.path.get(this.path.length - 2); + } + getCollectionPath() { + return this.path.popLast(); + } + isEqual(t2) { + return null !== t2 && 0 === rt.comparator(this.path, t2.path); + } + toString() { + return this.path.toString(); + } + static comparator(t2, e) { + return rt.comparator(t2.path, e.path); + } + static isDocumentKey(t2) { + return t2.length % 2 == 0; + } + static fromSegments(t2) { + return new ct(new rt(t2.slice())); + } +} +function mt(t2, e) { + const n = t2.toTimestamp().seconds, s = t2.toTimestamp().nanoseconds + 1, i = st.fromTimestamp(1e9 === s ? new nt(n + 1, 0) : new nt(n, s)); + return new yt(i, ct.empty(), e); +} +function gt(t2) { + return new yt(t2.readTime, t2.key, -1); +} +class yt { + constructor(t2, e, n) { + this.readTime = t2, this.documentKey = e, this.largestBatchId = n; + } + static min() { + return new yt(st.min(), ct.empty(), -1); + } + static max() { + return new yt(st.max(), ct.empty(), -1); + } +} +function pt(t2, e) { + let n = t2.readTime.compareTo(e.readTime); + return 0 !== n ? n : (n = ct.comparator(t2.documentKey, e.documentKey), 0 !== n ? n : X(t2.largestBatchId, e.largestBatchId)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const It = "The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."; +class Tt { + constructor() { + this.onCommittedListeners = []; + } + addOnCommittedListener(t2) { + this.onCommittedListeners.push(t2); + } + raiseOnCommittedEvent() { + this.onCommittedListeners.forEach((t2) => t2()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function Et(t2) { + if (t2.code !== B.FAILED_PRECONDITION || t2.message !== It) + throw t2; + C("LocalStore", "Unexpectedly lost primary lease"); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class At { + constructor(t2) { + this.nextCallback = null, this.catchCallback = null, this.result = void 0, this.error = void 0, this.isDone = false, this.callbackAttached = false, t2((t3) => { + this.isDone = true, this.result = t3, this.nextCallback && this.nextCallback(t3); + }, (t3) => { + this.isDone = true, this.error = t3, this.catchCallback && this.catchCallback(t3); + }); + } + catch(t2) { + return this.next(void 0, t2); + } + next(t2, e) { + return this.callbackAttached && O(), this.callbackAttached = true, this.isDone ? this.error ? this.wrapFailure(e, this.error) : this.wrapSuccess(t2, this.result) : new At((n, s) => { + this.nextCallback = (e2) => { + this.wrapSuccess(t2, e2).next(n, s); + }, this.catchCallback = (t3) => { + this.wrapFailure(e, t3).next(n, s); + }; + }); + } + toPromise() { + return new Promise((t2, e) => { + this.next(t2, e); + }); + } + wrapUserFunction(t2) { + try { + const e = t2(); + return e instanceof At ? e : At.resolve(e); + } catch (t3) { + return At.reject(t3); + } + } + wrapSuccess(t2, e) { + return t2 ? this.wrapUserFunction(() => t2(e)) : At.resolve(e); + } + wrapFailure(t2, e) { + return t2 ? this.wrapUserFunction(() => t2(e)) : At.reject(e); + } + static resolve(t2) { + return new At((e, n) => { + e(t2); + }); + } + static reject(t2) { + return new At((e, n) => { + n(t2); + }); + } + static waitFor(t2) { + return new At((e, n) => { + let s = 0, i = 0, r = false; + t2.forEach((t3) => { + ++s, t3.next(() => { + ++i, r && i === s && e(); + }, (t4) => n(t4)); + }), r = true, i === s && e(); + }); + } + static or(t2) { + let e = At.resolve(false); + for (const n of t2) + e = e.next((t3) => t3 ? At.resolve(t3) : n()); + return e; + } + static forEach(t2, e) { + const n = []; + return t2.forEach((t3, s) => { + n.push(e.call(this, t3, s)); + }), this.waitFor(n); + } + static mapArray(t2, e) { + return new At((n, s) => { + const i = t2.length, r = new Array(i); + let o = 0; + for (let u = 0; u < i; u++) { + const c = u; + e(t2[c]).next((t3) => { + r[c] = t3, ++o, o === i && n(r); + }, (t3) => s(t3)); + } + }); + } + static doWhile(t2, e) { + return new At((n, s) => { + const i = () => { + true === t2() ? e().next(() => { + i(); + }, s) : n(); + }; + i(); + }); + } +} +function Vt(t2) { + return "IndexedDbTransactionError" === t2.name; +} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ot { + constructor(t2, e) { + this.previousValue = t2, e && (e.sequenceNumberHandler = (t3) => this.ot(t3), this.ut = (t3) => e.writeSequenceNumber(t3)); + } + ot(t2) { + return this.previousValue = Math.max(t2, this.previousValue), this.previousValue; + } + next() { + const t2 = ++this.previousValue; + return this.ut && this.ut(t2), t2; + } +} +Ot.ct = -1; +function $t(t2) { + return null == t2; +} +function Mt(t2) { + return 0 === t2 && 1 / t2 == -1 / 0; +} +function Ft(t2) { + return "number" == typeof t2 && Number.isInteger(t2) && !Mt(t2) && t2 <= Number.MAX_SAFE_INTEGER && t2 >= Number.MIN_SAFE_INTEGER; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function we(t2) { + let e = 0; + for (const n in t2) + Object.prototype.hasOwnProperty.call(t2, n) && e++; + return e; +} +function _e(t2, e) { + for (const n in t2) + Object.prototype.hasOwnProperty.call(t2, n) && e(n, t2[n]); +} +function me(t2) { + for (const e in t2) + if (Object.prototype.hasOwnProperty.call(t2, e)) + return false; + return true; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ge { + constructor(t2, e) { + this.comparator = t2, this.root = e || pe.EMPTY; + } + insert(t2, e) { + return new ge(this.comparator, this.root.insert(t2, e, this.comparator).copy(null, null, pe.BLACK, null, null)); + } + remove(t2) { + return new ge(this.comparator, this.root.remove(t2, this.comparator).copy(null, null, pe.BLACK, null, null)); + } + get(t2) { + let e = this.root; + for (; !e.isEmpty(); ) { + const n = this.comparator(t2, e.key); + if (0 === n) + return e.value; + n < 0 ? e = e.left : n > 0 && (e = e.right); + } + return null; + } + indexOf(t2) { + let e = 0, n = this.root; + for (; !n.isEmpty(); ) { + const s = this.comparator(t2, n.key); + if (0 === s) + return e + n.left.size; + s < 0 ? n = n.left : (e += n.left.size + 1, n = n.right); + } + return -1; + } + isEmpty() { + return this.root.isEmpty(); + } + get size() { + return this.root.size; + } + minKey() { + return this.root.minKey(); + } + maxKey() { + return this.root.maxKey(); + } + inorderTraversal(t2) { + return this.root.inorderTraversal(t2); + } + forEach(t2) { + this.inorderTraversal((e, n) => (t2(e, n), false)); + } + toString() { + const t2 = []; + return this.inorderTraversal((e, n) => (t2.push(`${e}:${n}`), false)), `{${t2.join(", ")}}`; + } + reverseTraversal(t2) { + return this.root.reverseTraversal(t2); + } + getIterator() { + return new ye(this.root, null, this.comparator, false); + } + getIteratorFrom(t2) { + return new ye(this.root, t2, this.comparator, false); + } + getReverseIterator() { + return new ye(this.root, null, this.comparator, true); + } + getReverseIteratorFrom(t2) { + return new ye(this.root, t2, this.comparator, true); + } +} +class ye { + constructor(t2, e, n, s) { + this.isReverse = s, this.nodeStack = []; + let i = 1; + for (; !t2.isEmpty(); ) + if (i = e ? n(t2.key, e) : 1, e && s && (i *= -1), i < 0) + t2 = this.isReverse ? t2.left : t2.right; + else { + if (0 === i) { + this.nodeStack.push(t2); + break; + } + this.nodeStack.push(t2), t2 = this.isReverse ? t2.right : t2.left; + } + } + getNext() { + let t2 = this.nodeStack.pop(); + const e = { + key: t2.key, + value: t2.value + }; + if (this.isReverse) + for (t2 = t2.left; !t2.isEmpty(); ) + this.nodeStack.push(t2), t2 = t2.right; + else + for (t2 = t2.right; !t2.isEmpty(); ) + this.nodeStack.push(t2), t2 = t2.left; + return e; + } + hasNext() { + return this.nodeStack.length > 0; + } + peek() { + if (0 === this.nodeStack.length) + return null; + const t2 = this.nodeStack[this.nodeStack.length - 1]; + return { + key: t2.key, + value: t2.value + }; + } +} +class pe { + constructor(t2, e, n, s, i) { + this.key = t2, this.value = e, this.color = null != n ? n : pe.RED, this.left = null != s ? s : pe.EMPTY, this.right = null != i ? i : pe.EMPTY, this.size = this.left.size + 1 + this.right.size; + } + copy(t2, e, n, s, i) { + return new pe(null != t2 ? t2 : this.key, null != e ? e : this.value, null != n ? n : this.color, null != s ? s : this.left, null != i ? i : this.right); + } + isEmpty() { + return false; + } + inorderTraversal(t2) { + return this.left.inorderTraversal(t2) || t2(this.key, this.value) || this.right.inorderTraversal(t2); + } + reverseTraversal(t2) { + return this.right.reverseTraversal(t2) || t2(this.key, this.value) || this.left.reverseTraversal(t2); + } + min() { + return this.left.isEmpty() ? this : this.left.min(); + } + minKey() { + return this.min().key; + } + maxKey() { + return this.right.isEmpty() ? this.key : this.right.maxKey(); + } + insert(t2, e, n) { + let s = this; + const i = n(t2, s.key); + return s = i < 0 ? s.copy(null, null, null, s.left.insert(t2, e, n), null) : 0 === i ? s.copy(null, e, null, null, null) : s.copy(null, null, null, null, s.right.insert(t2, e, n)), s.fixUp(); + } + removeMin() { + if (this.left.isEmpty()) + return pe.EMPTY; + let t2 = this; + return t2.left.isRed() || t2.left.left.isRed() || (t2 = t2.moveRedLeft()), t2 = t2.copy(null, null, null, t2.left.removeMin(), null), t2.fixUp(); + } + remove(t2, e) { + let n, s = this; + if (e(t2, s.key) < 0) + s.left.isEmpty() || s.left.isRed() || s.left.left.isRed() || (s = s.moveRedLeft()), s = s.copy(null, null, null, s.left.remove(t2, e), null); + else { + if (s.left.isRed() && (s = s.rotateRight()), s.right.isEmpty() || s.right.isRed() || s.right.left.isRed() || (s = s.moveRedRight()), 0 === e(t2, s.key)) { + if (s.right.isEmpty()) + return pe.EMPTY; + n = s.right.min(), s = s.copy(n.key, n.value, null, null, s.right.removeMin()); + } + s = s.copy(null, null, null, null, s.right.remove(t2, e)); + } + return s.fixUp(); + } + isRed() { + return this.color; + } + fixUp() { + let t2 = this; + return t2.right.isRed() && !t2.left.isRed() && (t2 = t2.rotateLeft()), t2.left.isRed() && t2.left.left.isRed() && (t2 = t2.rotateRight()), t2.left.isRed() && t2.right.isRed() && (t2 = t2.colorFlip()), t2; + } + moveRedLeft() { + let t2 = this.colorFlip(); + return t2.right.left.isRed() && (t2 = t2.copy(null, null, null, null, t2.right.rotateRight()), t2 = t2.rotateLeft(), t2 = t2.colorFlip()), t2; + } + moveRedRight() { + let t2 = this.colorFlip(); + return t2.left.left.isRed() && (t2 = t2.rotateRight(), t2 = t2.colorFlip()), t2; + } + rotateLeft() { + const t2 = this.copy(null, null, pe.RED, null, this.right.left); + return this.right.copy(null, null, this.color, t2, null); + } + rotateRight() { + const t2 = this.copy(null, null, pe.RED, this.left.right, null); + return this.left.copy(null, null, this.color, null, t2); + } + colorFlip() { + const t2 = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null); + return this.copy(null, null, !this.color, t2, e); + } + checkMaxDepth() { + const t2 = this.check(); + return Math.pow(2, t2) <= this.size + 1; + } + check() { + if (this.isRed() && this.left.isRed()) + throw O(); + if (this.right.isRed()) + throw O(); + const t2 = this.left.check(); + if (t2 !== this.right.check()) + throw O(); + return t2 + (this.isRed() ? 0 : 1); + } +} +pe.EMPTY = null, pe.RED = true, pe.BLACK = false; +pe.EMPTY = new class { + constructor() { + this.size = 0; + } + get key() { + throw O(); + } + get value() { + throw O(); + } + get color() { + throw O(); + } + get left() { + throw O(); + } + get right() { + throw O(); + } + copy(t2, e, n, s, i) { + return this; + } + insert(t2, e, n) { + return new pe(t2, e); + } + remove(t2, e) { + return this; + } + isEmpty() { + return true; + } + inorderTraversal(t2) { + return false; + } + reverseTraversal(t2) { + return false; + } + minKey() { + return null; + } + maxKey() { + return null; + } + isRed() { + return false; + } + checkMaxDepth() { + return true; + } + check() { + return 0; + } +}(); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ie { + constructor(t2) { + this.comparator = t2, this.data = new ge(this.comparator); + } + has(t2) { + return null !== this.data.get(t2); + } + first() { + return this.data.minKey(); + } + last() { + return this.data.maxKey(); + } + get size() { + return this.data.size; + } + indexOf(t2) { + return this.data.indexOf(t2); + } + forEach(t2) { + this.data.inorderTraversal((e, n) => (t2(e), false)); + } + forEachInRange(t2, e) { + const n = this.data.getIteratorFrom(t2[0]); + for (; n.hasNext(); ) { + const s = n.getNext(); + if (this.comparator(s.key, t2[1]) >= 0) + return; + e(s.key); + } + } + forEachWhile(t2, e) { + let n; + for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) { + if (!t2(n.getNext().key)) + return; + } + } + firstAfterOrEqual(t2) { + const e = this.data.getIteratorFrom(t2); + return e.hasNext() ? e.getNext().key : null; + } + getIterator() { + return new Te(this.data.getIterator()); + } + getIteratorFrom(t2) { + return new Te(this.data.getIteratorFrom(t2)); + } + add(t2) { + return this.copy(this.data.remove(t2).insert(t2, true)); + } + delete(t2) { + return this.has(t2) ? this.copy(this.data.remove(t2)) : this; + } + isEmpty() { + return this.data.isEmpty(); + } + unionWith(t2) { + let e = this; + return e.size < t2.size && (e = t2, t2 = this), t2.forEach((t3) => { + e = e.add(t3); + }), e; + } + isEqual(t2) { + if (!(t2 instanceof Ie)) + return false; + if (this.size !== t2.size) + return false; + const e = this.data.getIterator(), n = t2.data.getIterator(); + for (; e.hasNext(); ) { + const t3 = e.getNext().key, s = n.getNext().key; + if (0 !== this.comparator(t3, s)) + return false; + } + return true; + } + toArray() { + const t2 = []; + return this.forEach((e) => { + t2.push(e); + }), t2; + } + toString() { + const t2 = []; + return this.forEach((e) => t2.push(e)), "SortedSet(" + t2.toString() + ")"; + } + copy(t2) { + const e = new Ie(this.comparator); + return e.data = t2, e; + } +} +class Te { + constructor(t2) { + this.iter = t2; + } + getNext() { + return this.iter.getNext().key; + } + hasNext() { + return this.iter.hasNext(); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ae { + constructor(t2) { + this.fields = t2, t2.sort(ut.comparator); + } + static empty() { + return new Ae([]); + } + unionWith(t2) { + let e = new Ie(ut.comparator); + for (const t3 of this.fields) + e = e.add(t3); + for (const n of t2) + e = e.add(n); + return new Ae(e.toArray()); + } + covers(t2) { + for (const e of this.fields) + if (e.isPrefixOf(t2)) + return true; + return false; + } + isEqual(t2) { + return tt(this.fields, t2.fields, (t3, e) => t3.isEqual(e)); + } +} +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Re extends Error { + constructor() { + super(...arguments), this.name = "Base64DecodeError"; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class be { + constructor(t2) { + this.binaryString = t2; + } + static fromBase64String(t2) { + const e = function(t3) { + try { + return atob(t3); + } catch (t4) { + throw "undefined" != typeof DOMException && t4 instanceof DOMException ? new Re("Invalid base64 string: " + t4) : t4; + } + }(t2); + return new be(e); + } + static fromUint8Array(t2) { + const e = function(t3) { + let e2 = ""; + for (let n = 0; n < t3.length; ++n) + e2 += String.fromCharCode(t3[n]); + return e2; + }(t2); + return new be(e); + } + [Symbol.iterator]() { + let t2 = 0; + return { + next: () => t2 < this.binaryString.length ? { + value: this.binaryString.charCodeAt(t2++), + done: false + } : { + value: void 0, + done: true + } + }; + } + toBase64() { + return t2 = this.binaryString, btoa(t2); + var t2; + } + toUint8Array() { + return function(t2) { + const e = new Uint8Array(t2.length); + for (let n = 0; n < t2.length; n++) + e[n] = t2.charCodeAt(n); + return e; + }(this.binaryString); + } + approximateByteSize() { + return 2 * this.binaryString.length; + } + compareTo(t2) { + return X(this.binaryString, t2.binaryString); + } + isEqual(t2) { + return this.binaryString === t2.binaryString; + } +} +be.EMPTY_BYTE_STRING = new be(""); +const Pe = new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/); +function Ve(t2) { + if ($(!!t2), "string" == typeof t2) { + let e = 0; + const n = Pe.exec(t2); + if ($(!!n), n[1]) { + let t3 = n[1]; + t3 = (t3 + "000000000").substr(0, 9), e = Number(t3); + } + const s = new Date(t2); + return { + seconds: Math.floor(s.getTime() / 1e3), + nanos: e + }; + } + return { + seconds: Se(t2.seconds), + nanos: Se(t2.nanos) + }; +} +function Se(t2) { + return "number" == typeof t2 ? t2 : "string" == typeof t2 ? Number(t2) : 0; +} +function De(t2) { + return "string" == typeof t2 ? be.fromBase64String(t2) : be.fromUint8Array(t2); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ce(t2) { + var e, n; + return "server_timestamp" === (null === (n = ((null === (e = null == t2 ? void 0 : t2.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue); +} +function xe(t2) { + const e = t2.mapValue.fields.__previous_value__; + return Ce(e) ? xe(e) : e; +} +function Ne(t2) { + const e = Ve(t2.mapValue.fields.__local_write_time__.timestampValue); + return new nt(e.seconds, e.nanos); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ke { + constructor(t2, e, n, s, i, r, o, u) { + this.databaseId = t2, this.appId = e, this.persistenceKey = n, this.host = s, this.ssl = i, this.forceLongPolling = r, this.autoDetectLongPolling = o, this.useFetchStreams = u; + } +} +class Oe { + constructor(t2, e) { + this.projectId = t2, this.database = e || "(default)"; + } + static empty() { + return new Oe("", ""); + } + get isDefaultDatabase() { + return "(default)" === this.database; + } + isEqual(t2) { + return t2 instanceof Oe && t2.projectId === this.projectId && t2.database === this.database; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const $e = { + mapValue: { + fields: { + __type__: { + stringValue: "__max__" + } + } + } +}; +function Fe(t2) { + return "nullValue" in t2 ? 0 : "booleanValue" in t2 ? 1 : "integerValue" in t2 || "doubleValue" in t2 ? 2 : "timestampValue" in t2 ? 3 : "stringValue" in t2 ? 5 : "bytesValue" in t2 ? 6 : "referenceValue" in t2 ? 7 : "geoPointValue" in t2 ? 8 : "arrayValue" in t2 ? 9 : "mapValue" in t2 ? Ce(t2) ? 4 : Ze(t2) ? 9007199254740991 : 10 : O(); +} +function Be(t2, e) { + if (t2 === e) + return true; + const n = Fe(t2); + if (n !== Fe(e)) + return false; + switch (n) { + case 0: + case 9007199254740991: + return true; + case 1: + return t2.booleanValue === e.booleanValue; + case 4: + return Ne(t2).isEqual(Ne(e)); + case 3: + return function(t3, e2) { + if ("string" == typeof t3.timestampValue && "string" == typeof e2.timestampValue && t3.timestampValue.length === e2.timestampValue.length) + return t3.timestampValue === e2.timestampValue; + const n2 = Ve(t3.timestampValue), s = Ve(e2.timestampValue); + return n2.seconds === s.seconds && n2.nanos === s.nanos; + }(t2, e); + case 5: + return t2.stringValue === e.stringValue; + case 6: + return function(t3, e2) { + return De(t3.bytesValue).isEqual(De(e2.bytesValue)); + }(t2, e); + case 7: + return t2.referenceValue === e.referenceValue; + case 8: + return function(t3, e2) { + return Se(t3.geoPointValue.latitude) === Se(e2.geoPointValue.latitude) && Se(t3.geoPointValue.longitude) === Se(e2.geoPointValue.longitude); + }(t2, e); + case 2: + return function(t3, e2) { + if ("integerValue" in t3 && "integerValue" in e2) + return Se(t3.integerValue) === Se(e2.integerValue); + if ("doubleValue" in t3 && "doubleValue" in e2) { + const n2 = Se(t3.doubleValue), s = Se(e2.doubleValue); + return n2 === s ? Mt(n2) === Mt(s) : isNaN(n2) && isNaN(s); + } + return false; + }(t2, e); + case 9: + return tt(t2.arrayValue.values || [], e.arrayValue.values || [], Be); + case 10: + return function(t3, e2) { + const n2 = t3.mapValue.fields || {}, s = e2.mapValue.fields || {}; + if (we(n2) !== we(s)) + return false; + for (const t4 in n2) + if (n2.hasOwnProperty(t4) && (void 0 === s[t4] || !Be(n2[t4], s[t4]))) + return false; + return true; + }(t2, e); + default: + return O(); + } +} +function Le(t2, e) { + return void 0 !== (t2.values || []).find((t3) => Be(t3, e)); +} +function qe(t2, e) { + if (t2 === e) + return 0; + const n = Fe(t2), s = Fe(e); + if (n !== s) + return X(n, s); + switch (n) { + case 0: + case 9007199254740991: + return 0; + case 1: + return X(t2.booleanValue, e.booleanValue); + case 2: + return function(t3, e2) { + const n2 = Se(t3.integerValue || t3.doubleValue), s2 = Se(e2.integerValue || e2.doubleValue); + return n2 < s2 ? -1 : n2 > s2 ? 1 : n2 === s2 ? 0 : isNaN(n2) ? isNaN(s2) ? 0 : -1 : 1; + }(t2, e); + case 3: + return Ue(t2.timestampValue, e.timestampValue); + case 4: + return Ue(Ne(t2), Ne(e)); + case 5: + return X(t2.stringValue, e.stringValue); + case 6: + return function(t3, e2) { + const n2 = De(t3), s2 = De(e2); + return n2.compareTo(s2); + }(t2.bytesValue, e.bytesValue); + case 7: + return function(t3, e2) { + const n2 = t3.split("/"), s2 = e2.split("/"); + for (let t4 = 0; t4 < n2.length && t4 < s2.length; t4++) { + const e3 = X(n2[t4], s2[t4]); + if (0 !== e3) + return e3; + } + return X(n2.length, s2.length); + }(t2.referenceValue, e.referenceValue); + case 8: + return function(t3, e2) { + const n2 = X(Se(t3.latitude), Se(e2.latitude)); + if (0 !== n2) + return n2; + return X(Se(t3.longitude), Se(e2.longitude)); + }(t2.geoPointValue, e.geoPointValue); + case 9: + return function(t3, e2) { + const n2 = t3.values || [], s2 = e2.values || []; + for (let t4 = 0; t4 < n2.length && t4 < s2.length; ++t4) { + const e3 = qe(n2[t4], s2[t4]); + if (e3) + return e3; + } + return X(n2.length, s2.length); + }(t2.arrayValue, e.arrayValue); + case 10: + return function(t3, e2) { + if (t3 === $e.mapValue && e2 === $e.mapValue) + return 0; + if (t3 === $e.mapValue) + return 1; + if (e2 === $e.mapValue) + return -1; + const n2 = t3.fields || {}, s2 = Object.keys(n2), i = e2.fields || {}, r = Object.keys(i); + s2.sort(), r.sort(); + for (let t4 = 0; t4 < s2.length && t4 < r.length; ++t4) { + const e3 = X(s2[t4], r[t4]); + if (0 !== e3) + return e3; + const o = qe(n2[s2[t4]], i[r[t4]]); + if (0 !== o) + return o; + } + return X(s2.length, r.length); + }(t2.mapValue, e.mapValue); + default: + throw O(); + } +} +function Ue(t2, e) { + if ("string" == typeof t2 && "string" == typeof e && t2.length === e.length) + return X(t2, e); + const n = Ve(t2), s = Ve(e), i = X(n.seconds, s.seconds); + return 0 !== i ? i : X(n.nanos, s.nanos); +} +function Ke(t2) { + return Ge(t2); +} +function Ge(t2) { + return "nullValue" in t2 ? "null" : "booleanValue" in t2 ? "" + t2.booleanValue : "integerValue" in t2 ? "" + t2.integerValue : "doubleValue" in t2 ? "" + t2.doubleValue : "timestampValue" in t2 ? function(t3) { + const e2 = Ve(t3); + return `time(${e2.seconds},${e2.nanos})`; + }(t2.timestampValue) : "stringValue" in t2 ? t2.stringValue : "bytesValue" in t2 ? De(t2.bytesValue).toBase64() : "referenceValue" in t2 ? (n = t2.referenceValue, ct.fromName(n).toString()) : "geoPointValue" in t2 ? `geo(${(e = t2.geoPointValue).latitude},${e.longitude})` : "arrayValue" in t2 ? function(t3) { + let e2 = "[", n2 = true; + for (const s of t3.values || []) + n2 ? n2 = false : e2 += ",", e2 += Ge(s); + return e2 + "]"; + }(t2.arrayValue) : "mapValue" in t2 ? function(t3) { + const e2 = Object.keys(t3.fields || {}).sort(); + let n2 = "{", s = true; + for (const i of e2) + s ? s = false : n2 += ",", n2 += `${i}:${Ge(t3.fields[i])}`; + return n2 + "}"; + }(t2.mapValue) : O(); + var e, n; +} +function Qe(t2, e) { + return { + referenceValue: `projects/${t2.projectId}/databases/${t2.database}/documents/${e.path.canonicalString()}` + }; +} +function ze(t2) { + return !!t2 && "integerValue" in t2; +} +function je(t2) { + return !!t2 && "arrayValue" in t2; +} +function We(t2) { + return !!t2 && "nullValue" in t2; +} +function He(t2) { + return !!t2 && "doubleValue" in t2 && isNaN(Number(t2.doubleValue)); +} +function Je(t2) { + return !!t2 && "mapValue" in t2; +} +function Ye(t2) { + if (t2.geoPointValue) + return { + geoPointValue: Object.assign({}, t2.geoPointValue) + }; + if (t2.timestampValue && "object" == typeof t2.timestampValue) + return { + timestampValue: Object.assign({}, t2.timestampValue) + }; + if (t2.mapValue) { + const e = { + mapValue: { + fields: {} + } + }; + return _e(t2.mapValue.fields, (t3, n) => e.mapValue.fields[t3] = Ye(n)), e; + } + if (t2.arrayValue) { + const e = { + arrayValue: { + values: [] + } + }; + for (let n = 0; n < (t2.arrayValue.values || []).length; ++n) + e.arrayValue.values[n] = Ye(t2.arrayValue.values[n]); + return e; + } + return Object.assign({}, t2); +} +function Ze(t2) { + return "__max__" === (((t2.mapValue || {}).fields || {}).__type__ || {}).stringValue; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class sn { + constructor(t2) { + this.value = t2; + } + static empty() { + return new sn({ + mapValue: {} + }); + } + field(t2) { + if (t2.isEmpty()) + return this.value; + { + let e = this.value; + for (let n = 0; n < t2.length - 1; ++n) + if (e = (e.mapValue.fields || {})[t2.get(n)], !Je(e)) + return null; + return e = (e.mapValue.fields || {})[t2.lastSegment()], e || null; + } + } + set(t2, e) { + this.getFieldsMap(t2.popLast())[t2.lastSegment()] = Ye(e); + } + setAll(t2) { + let e = ut.emptyPath(), n = {}, s = []; + t2.forEach((t3, i2) => { + if (!e.isImmediateParentOf(i2)) { + const t4 = this.getFieldsMap(e); + this.applyChanges(t4, n, s), n = {}, s = [], e = i2.popLast(); + } + t3 ? n[i2.lastSegment()] = Ye(t3) : s.push(i2.lastSegment()); + }); + const i = this.getFieldsMap(e); + this.applyChanges(i, n, s); + } + delete(t2) { + const e = this.field(t2.popLast()); + Je(e) && e.mapValue.fields && delete e.mapValue.fields[t2.lastSegment()]; + } + isEqual(t2) { + return Be(this.value, t2.value); + } + getFieldsMap(t2) { + let e = this.value; + e.mapValue.fields || (e.mapValue = { + fields: {} + }); + for (let n = 0; n < t2.length; ++n) { + let s = e.mapValue.fields[t2.get(n)]; + Je(s) && s.mapValue.fields || (s = { + mapValue: { + fields: {} + } + }, e.mapValue.fields[t2.get(n)] = s), e = s; + } + return e.mapValue.fields; + } + applyChanges(t2, e, n) { + _e(e, (e2, n2) => t2[e2] = n2); + for (const e2 of n) + delete t2[e2]; + } + clone() { + return new sn(Ye(this.value)); + } +} +function rn(t2) { + const e = []; + return _e(t2.fields, (t3, n) => { + const s = new ut([t3]); + if (Je(n)) { + const t4 = rn(n.mapValue).fields; + if (0 === t4.length) + e.push(s); + else + for (const n2 of t4) + e.push(s.child(n2)); + } else + e.push(s); + }), new Ae(e); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class on { + constructor(t2, e, n, s, i, r, o) { + this.key = t2, this.documentType = e, this.version = n, this.readTime = s, this.createTime = i, this.data = r, this.documentState = o; + } + static newInvalidDocument(t2) { + return new on( + t2, + 0, + st.min(), + st.min(), + st.min(), + sn.empty(), + 0 + ); + } + static newFoundDocument(t2, e, n, s) { + return new on( + t2, + 1, + e, + st.min(), + n, + s, + 0 + ); + } + static newNoDocument(t2, e) { + return new on( + t2, + 2, + e, + st.min(), + st.min(), + sn.empty(), + 0 + ); + } + static newUnknownDocument(t2, e) { + return new on( + t2, + 3, + e, + st.min(), + st.min(), + sn.empty(), + 2 + ); + } + convertToFoundDocument(t2, e) { + return !this.createTime.isEqual(st.min()) || 2 !== this.documentType && 0 !== this.documentType || (this.createTime = t2), this.version = t2, this.documentType = 1, this.data = e, this.documentState = 0, this; + } + convertToNoDocument(t2) { + return this.version = t2, this.documentType = 2, this.data = sn.empty(), this.documentState = 0, this; + } + convertToUnknownDocument(t2) { + return this.version = t2, this.documentType = 3, this.data = sn.empty(), this.documentState = 2, this; + } + setHasCommittedMutations() { + return this.documentState = 2, this; + } + setHasLocalMutations() { + return this.documentState = 1, this.version = st.min(), this; + } + setReadTime(t2) { + return this.readTime = t2, this; + } + get hasLocalMutations() { + return 1 === this.documentState; + } + get hasCommittedMutations() { + return 2 === this.documentState; + } + get hasPendingWrites() { + return this.hasLocalMutations || this.hasCommittedMutations; + } + isValidDocument() { + return 0 !== this.documentType; + } + isFoundDocument() { + return 1 === this.documentType; + } + isNoDocument() { + return 2 === this.documentType; + } + isUnknownDocument() { + return 3 === this.documentType; + } + isEqual(t2) { + return t2 instanceof on && this.key.isEqual(t2.key) && this.version.isEqual(t2.version) && this.documentType === t2.documentType && this.documentState === t2.documentState && this.data.isEqual(t2.data); + } + mutableCopy() { + return new on(this.key, this.documentType, this.version, this.readTime, this.createTime, this.data.clone(), this.documentState); + } + toString() { + return `Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`; + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class un { + constructor(t2, e) { + this.position = t2, this.inclusive = e; + } +} +function cn(t2, e, n) { + let s = 0; + for (let i = 0; i < t2.position.length; i++) { + const r = e[i], o = t2.position[i]; + if (r.field.isKeyField()) + s = ct.comparator(ct.fromName(o.referenceValue), n.key); + else { + s = qe(o, n.data.field(r.field)); + } + if ("desc" === r.dir && (s *= -1), 0 !== s) + break; + } + return s; +} +function an(t2, e) { + if (null === t2) + return null === e; + if (null === e) + return false; + if (t2.inclusive !== e.inclusive || t2.position.length !== e.position.length) + return false; + for (let n = 0; n < t2.position.length; n++) { + if (!Be(t2.position[n], e.position[n])) + return false; + } + return true; +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class hn { + constructor(t2, e = "asc") { + this.field = t2, this.dir = e; + } +} +function ln(t2, e) { + return t2.dir === e.dir && t2.field.isEqual(e.field); +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class fn { +} +class dn extends fn { + constructor(t2, e, n) { + super(), this.field = t2, this.op = e, this.value = n; + } + static create(t2, e, n) { + return t2.isKeyField() ? "in" === e || "not-in" === e ? this.createKeyFieldInFilter(t2, e, n) : new An(t2, e, n) : "array-contains" === e ? new Pn(t2, n) : "in" === e ? new Vn(t2, n) : "not-in" === e ? new Sn(t2, n) : "array-contains-any" === e ? new Dn(t2, n) : new dn(t2, e, n); + } + static createKeyFieldInFilter(t2, e, n) { + return "in" === e ? new Rn(t2, n) : new vn(t2, n); + } + matches(t2) { + const e = t2.data.field(this.field); + return "!=" === this.op ? null !== e && this.matchesComparison(qe(e, this.value)) : null !== e && Fe(this.value) === Fe(e) && this.matchesComparison(qe(e, this.value)); + } + matchesComparison(t2) { + switch (this.op) { + case "<": + return t2 < 0; + case "<=": + return t2 <= 0; + case "==": + return 0 === t2; + case "!=": + return 0 !== t2; + case ">": + return t2 > 0; + case ">=": + return t2 >= 0; + default: + return O(); + } + } + isInequality() { + return ["<", "<=", ">", ">=", "!=", "not-in"].indexOf(this.op) >= 0; + } + getFlattenedFilters() { + return [this]; + } + getFilters() { + return [this]; + } + getFirstInequalityField() { + return this.isInequality() ? this.field : null; + } +} +class wn extends fn { + constructor(t2, e) { + super(), this.filters = t2, this.op = e, this.ht = null; + } + static create(t2, e) { + return new wn(t2, e); + } + matches(t2) { + return _n(this) ? void 0 === this.filters.find((e) => !e.matches(t2)) : void 0 !== this.filters.find((e) => e.matches(t2)); + } + getFlattenedFilters() { + return null !== this.ht || (this.ht = this.filters.reduce((t2, e) => t2.concat(e.getFlattenedFilters()), [])), this.ht; + } + getFilters() { + return Object.assign([], this.filters); + } + getFirstInequalityField() { + const t2 = this.lt((t3) => t3.isInequality()); + return null !== t2 ? t2.field : null; + } + lt(t2) { + for (const e of this.getFlattenedFilters()) + if (t2(e)) + return e; + return null; + } +} +function _n(t2) { + return "and" === t2.op; +} +function gn(t2) { + return yn(t2) && _n(t2); +} +function yn(t2) { + for (const e of t2.filters) + if (e instanceof wn) + return false; + return true; +} +function pn(t2) { + if (t2 instanceof dn) + return t2.field.canonicalString() + t2.op.toString() + Ke(t2.value); + if (gn(t2)) + return t2.filters.map((t3) => pn(t3)).join(","); + { + const e = t2.filters.map((t3) => pn(t3)).join(","); + return `${t2.op}(${e})`; + } +} +function In(t2, e) { + return t2 instanceof dn ? function(t3, e2) { + return e2 instanceof dn && t3.op === e2.op && t3.field.isEqual(e2.field) && Be(t3.value, e2.value); + }(t2, e) : t2 instanceof wn ? function(t3, e2) { + if (e2 instanceof wn && t3.op === e2.op && t3.filters.length === e2.filters.length) { + return t3.filters.reduce((t4, n, s) => t4 && In(n, e2.filters[s]), true); + } + return false; + }(t2, e) : void O(); +} +function En(t2) { + return t2 instanceof dn ? function(t3) { + return `${t3.field.canonicalString()} ${t3.op} ${Ke(t3.value)}`; + }(t2) : t2 instanceof wn ? function(t3) { + return t3.op.toString() + " {" + t3.getFilters().map(En).join(" ,") + "}"; + }(t2) : "Filter"; +} +class An extends dn { + constructor(t2, e, n) { + super(t2, e, n), this.key = ct.fromName(n.referenceValue); + } + matches(t2) { + const e = ct.comparator(t2.key, this.key); + return this.matchesComparison(e); + } +} +class Rn extends dn { + constructor(t2, e) { + super(t2, "in", e), this.keys = bn("in", e); + } + matches(t2) { + return this.keys.some((e) => e.isEqual(t2.key)); + } +} +class vn extends dn { + constructor(t2, e) { + super(t2, "not-in", e), this.keys = bn("not-in", e); + } + matches(t2) { + return !this.keys.some((e) => e.isEqual(t2.key)); + } +} +function bn(t2, e) { + var n; + return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((t3) => ct.fromName(t3.referenceValue)); +} +class Pn extends dn { + constructor(t2, e) { + super(t2, "array-contains", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return je(e) && Le(e.arrayValue, this.value); + } +} +class Vn extends dn { + constructor(t2, e) { + super(t2, "in", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return null !== e && Le(this.value.arrayValue, e); + } +} +class Sn extends dn { + constructor(t2, e) { + super(t2, "not-in", e); + } + matches(t2) { + if (Le(this.value.arrayValue, { + nullValue: "NULL_VALUE" + })) + return false; + const e = t2.data.field(this.field); + return null !== e && !Le(this.value.arrayValue, e); + } +} +class Dn extends dn { + constructor(t2, e) { + super(t2, "array-contains-any", e); + } + matches(t2) { + const e = t2.data.field(this.field); + return !(!je(e) || !e.arrayValue.values) && e.arrayValue.values.some((t3) => Le(this.value.arrayValue, t3)); + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Cn { + constructor(t2, e = null, n = [], s = [], i = null, r = null, o = null) { + this.path = t2, this.collectionGroup = e, this.orderBy = n, this.filters = s, this.limit = i, this.startAt = r, this.endAt = o, this.ft = null; + } +} +function xn(t2, e = null, n = [], s = [], i = null, r = null, o = null) { + return new Cn(t2, e, n, s, i, r, o); +} +function Nn(t2) { + const e = F(t2); + if (null === e.ft) { + let t3 = e.path.canonicalString(); + null !== e.collectionGroup && (t3 += "|cg:" + e.collectionGroup), t3 += "|f:", t3 += e.filters.map((t4) => pn(t4)).join(","), t3 += "|ob:", t3 += e.orderBy.map((t4) => function(t5) { + return t5.field.canonicalString() + t5.dir; + }(t4)).join(","), $t(e.limit) || (t3 += "|l:", t3 += e.limit), e.startAt && (t3 += "|lb:", t3 += e.startAt.inclusive ? "b:" : "a:", t3 += e.startAt.position.map((t4) => Ke(t4)).join(",")), e.endAt && (t3 += "|ub:", t3 += e.endAt.inclusive ? "a:" : "b:", t3 += e.endAt.position.map((t4) => Ke(t4)).join(",")), e.ft = t3; + } + return e.ft; +} +function kn(t2, e) { + if (t2.limit !== e.limit) + return false; + if (t2.orderBy.length !== e.orderBy.length) + return false; + for (let n = 0; n < t2.orderBy.length; n++) + if (!ln(t2.orderBy[n], e.orderBy[n])) + return false; + if (t2.filters.length !== e.filters.length) + return false; + for (let n = 0; n < t2.filters.length; n++) + if (!In(t2.filters[n], e.filters[n])) + return false; + return t2.collectionGroup === e.collectionGroup && (!!t2.path.isEqual(e.path) && (!!an(t2.startAt, e.startAt) && an(t2.endAt, e.endAt))); +} +function On(t2) { + return ct.isDocumentKey(t2.path) && null === t2.collectionGroup && 0 === t2.filters.length; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Bn { + constructor(t2, e = null, n = [], s = [], i = null, r = "F", o = null, u = null) { + this.path = t2, this.collectionGroup = e, this.explicitOrderBy = n, this.filters = s, this.limit = i, this.limitType = r, this.startAt = o, this.endAt = u, this.dt = null, this.wt = null, this.startAt, this.endAt; + } +} +function Ln(t2, e, n, s, i, r, o, u) { + return new Bn(t2, e, n, s, i, r, o, u); +} +function qn(t2) { + return new Bn(t2); +} +function Un(t2) { + return 0 === t2.filters.length && null === t2.limit && null == t2.startAt && null == t2.endAt && (0 === t2.explicitOrderBy.length || 1 === t2.explicitOrderBy.length && t2.explicitOrderBy[0].field.isKeyField()); +} +function Kn(t2) { + return t2.explicitOrderBy.length > 0 ? t2.explicitOrderBy[0].field : null; +} +function Gn(t2) { + for (const e of t2.filters) { + const t3 = e.getFirstInequalityField(); + if (null !== t3) + return t3; + } + return null; +} +function Qn(t2) { + return null !== t2.collectionGroup; +} +function zn(t2) { + const e = F(t2); + if (null === e.dt) { + e.dt = []; + const t3 = Gn(e), n = Kn(e); + if (null !== t3 && null === n) + t3.isKeyField() || e.dt.push(new hn(t3)), e.dt.push(new hn(ut.keyField(), "asc")); + else { + let t4 = false; + for (const n2 of e.explicitOrderBy) + e.dt.push(n2), n2.field.isKeyField() && (t4 = true); + if (!t4) { + const t5 = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : "asc"; + e.dt.push(new hn(ut.keyField(), t5)); + } + } + } + return e.dt; +} +function jn(t2) { + const e = F(t2); + if (!e.wt) + if ("F" === e.limitType) + e.wt = xn(e.path, e.collectionGroup, zn(e), e.filters, e.limit, e.startAt, e.endAt); + else { + const t3 = []; + for (const n2 of zn(e)) { + const e2 = "desc" === n2.dir ? "asc" : "desc"; + t3.push(new hn(n2.field, e2)); + } + const n = e.endAt ? new un(e.endAt.position, e.endAt.inclusive) : null, s = e.startAt ? new un(e.startAt.position, e.startAt.inclusive) : null; + e.wt = xn(e.path, e.collectionGroup, t3, e.filters, e.limit, n, s); + } + return e.wt; +} +function Wn(t2, e) { + e.getFirstInequalityField(), Gn(t2); + const n = t2.filters.concat([e]); + return new Bn(t2.path, t2.collectionGroup, t2.explicitOrderBy.slice(), n, t2.limit, t2.limitType, t2.startAt, t2.endAt); +} +function Hn(t2, e, n) { + return new Bn(t2.path, t2.collectionGroup, t2.explicitOrderBy.slice(), t2.filters.slice(), e, n, t2.startAt, t2.endAt); +} +function Jn(t2, e) { + return kn(jn(t2), jn(e)) && t2.limitType === e.limitType; +} +function Yn(t2) { + return `${Nn(jn(t2))}|lt:${t2.limitType}`; +} +function Zn(t2) { + return `Query(target=${function(t3) { + let e = t3.path.canonicalString(); + return null !== t3.collectionGroup && (e += " collectionGroup=" + t3.collectionGroup), t3.filters.length > 0 && (e += `, filters: [${t3.filters.map((t4) => En(t4)).join(", ")}]`), $t(t3.limit) || (e += ", limit: " + t3.limit), t3.orderBy.length > 0 && (e += `, orderBy: [${t3.orderBy.map((t4) => function(t5) { + return `${t5.field.canonicalString()} (${t5.dir})`; + }(t4)).join(", ")}]`), t3.startAt && (e += ", startAt: ", e += t3.startAt.inclusive ? "b:" : "a:", e += t3.startAt.position.map((t4) => Ke(t4)).join(",")), t3.endAt && (e += ", endAt: ", e += t3.endAt.inclusive ? "a:" : "b:", e += t3.endAt.position.map((t4) => Ke(t4)).join(",")), `Target(${e})`; + }(jn(t2))}; limitType=${t2.limitType})`; +} +function Xn(t2, e) { + return e.isFoundDocument() && function(t3, e2) { + const n = e2.key.path; + return null !== t3.collectionGroup ? e2.key.hasCollectionId(t3.collectionGroup) && t3.path.isPrefixOf(n) : ct.isDocumentKey(t3.path) ? t3.path.isEqual(n) : t3.path.isImmediateParentOf(n); + }(t2, e) && function(t3, e2) { + for (const n of zn(t3)) + if (!n.field.isKeyField() && null === e2.data.field(n.field)) + return false; + return true; + }(t2, e) && function(t3, e2) { + for (const n of t3.filters) + if (!n.matches(e2)) + return false; + return true; + }(t2, e) && function(t3, e2) { + if (t3.startAt && !function(t4, e3, n) { + const s = cn(t4, e3, n); + return t4.inclusive ? s <= 0 : s < 0; + }(t3.startAt, zn(t3), e2)) + return false; + if (t3.endAt && !function(t4, e3, n) { + const s = cn(t4, e3, n); + return t4.inclusive ? s >= 0 : s > 0; + }(t3.endAt, zn(t3), e2)) + return false; + return true; + }(t2, e); +} +function ts(t2) { + return t2.collectionGroup || (t2.path.length % 2 == 1 ? t2.path.lastSegment() : t2.path.get(t2.path.length - 2)); +} +function es(t2) { + return (e, n) => { + let s = false; + for (const i of zn(t2)) { + const t3 = ns(i, e, n); + if (0 !== t3) + return t3; + s = s || i.field.isKeyField(); + } + return 0; + }; +} +function ns(t2, e, n) { + const s = t2.field.isKeyField() ? ct.comparator(e.key, n.key) : function(t3, e2, n2) { + const s2 = e2.data.field(t3), i = n2.data.field(t3); + return null !== s2 && null !== i ? qe(s2, i) : O(); + }(t2.field, e, n); + switch (t2.dir) { + case "asc": + return s; + case "desc": + return -1 * s; + default: + return O(); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ss { + constructor(t2, e) { + this.mapKeyFn = t2, this.equalsFn = e, this.inner = {}, this.innerSize = 0; + } + get(t2) { + const e = this.mapKeyFn(t2), n = this.inner[e]; + if (void 0 !== n) { + for (const [e2, s] of n) + if (this.equalsFn(e2, t2)) + return s; + } + } + has(t2) { + return void 0 !== this.get(t2); + } + set(t2, e) { + const n = this.mapKeyFn(t2), s = this.inner[n]; + if (void 0 === s) + return this.inner[n] = [[t2, e]], void this.innerSize++; + for (let n2 = 0; n2 < s.length; n2++) + if (this.equalsFn(s[n2][0], t2)) + return void (s[n2] = [t2, e]); + s.push([t2, e]), this.innerSize++; + } + delete(t2) { + const e = this.mapKeyFn(t2), n = this.inner[e]; + if (void 0 === n) + return false; + for (let s = 0; s < n.length; s++) + if (this.equalsFn(n[s][0], t2)) + return 1 === n.length ? delete this.inner[e] : n.splice(s, 1), this.innerSize--, true; + return false; + } + forEach(t2) { + _e(this.inner, (e, n) => { + for (const [e2, s] of n) + t2(e2, s); + }); + } + isEmpty() { + return me(this.inner); + } + size() { + return this.innerSize; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const is = new ge(ct.comparator); +function rs() { + return is; +} +const os = new ge(ct.comparator); +function us(...t2) { + let e = os; + for (const n of t2) + e = e.insert(n.key, n); + return e; +} +function cs(t2) { + let e = os; + return t2.forEach((t3, n) => e = e.insert(t3, n.overlayedDocument)), e; +} +function as() { + return ls(); +} +function hs() { + return ls(); +} +function ls() { + return new ss((t2) => t2.toString(), (t2, e) => t2.isEqual(e)); +} +const fs = new ge(ct.comparator); +const ds = new Ie(ct.comparator); +function ws(...t2) { + let e = ds; + for (const n of t2) + e = e.add(n); + return e; +} +const _s = new Ie(X); +function ms() { + return _s; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function gs(t2, e) { + if (t2.useProto3Json) { + if (isNaN(e)) + return { + doubleValue: "NaN" + }; + if (e === 1 / 0) + return { + doubleValue: "Infinity" + }; + if (e === -1 / 0) + return { + doubleValue: "-Infinity" + }; + } + return { + doubleValue: Mt(e) ? "-0" : e + }; +} +function ys(t2) { + return { + integerValue: "" + t2 + }; +} +function ps(t2, e) { + return Ft(e) ? ys(e) : gs(t2, e); +} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Is { + constructor() { + this._ = void 0; + } +} +function Ts(t2, e, n) { + return t2 instanceof Rs ? function(t3, e2) { + const n2 = { + fields: { + __type__: { + stringValue: "server_timestamp" + }, + __local_write_time__: { + timestampValue: { + seconds: t3.seconds, + nanos: t3.nanoseconds + } + } + } + }; + return e2 && (n2.fields.__previous_value__ = e2), { + mapValue: n2 + }; + }(n, e) : t2 instanceof vs ? bs(t2, e) : t2 instanceof Ps ? Vs(t2, e) : function(t3, e2) { + const n2 = As(t3, e2), s = Ds(n2) + Ds(t3._t); + return ze(n2) && ze(t3._t) ? ys(s) : gs(t3.serializer, s); + }(t2, e); +} +function Es(t2, e, n) { + return t2 instanceof vs ? bs(t2, e) : t2 instanceof Ps ? Vs(t2, e) : n; +} +function As(t2, e) { + return t2 instanceof Ss ? ze(n = e) || function(t3) { + return !!t3 && "doubleValue" in t3; + }(n) ? e : { + integerValue: 0 + } : null; + var n; +} +class Rs extends Is { +} +class vs extends Is { + constructor(t2) { + super(), this.elements = t2; + } +} +function bs(t2, e) { + const n = Cs(e); + for (const e2 of t2.elements) + n.some((t3) => Be(t3, e2)) || n.push(e2); + return { + arrayValue: { + values: n + } + }; +} +class Ps extends Is { + constructor(t2) { + super(), this.elements = t2; + } +} +function Vs(t2, e) { + let n = Cs(e); + for (const e2 of t2.elements) + n = n.filter((t3) => !Be(t3, e2)); + return { + arrayValue: { + values: n + } + }; +} +class Ss extends Is { + constructor(t2, e) { + super(), this.serializer = t2, this._t = e; + } +} +function Ds(t2) { + return Se(t2.integerValue || t2.doubleValue); +} +function Cs(t2) { + return je(t2) && t2.arrayValue.values ? t2.arrayValue.values.slice() : []; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class xs { + constructor(t2, e) { + this.field = t2, this.transform = e; + } +} +function Ns(t2, e) { + return t2.field.isEqual(e.field) && function(t3, e2) { + return t3 instanceof vs && e2 instanceof vs || t3 instanceof Ps && e2 instanceof Ps ? tt(t3.elements, e2.elements, Be) : t3 instanceof Ss && e2 instanceof Ss ? Be(t3._t, e2._t) : t3 instanceof Rs && e2 instanceof Rs; + }(t2.transform, e.transform); +} +class ks { + constructor(t2, e) { + this.version = t2, this.transformResults = e; + } +} +class Os { + constructor(t2, e) { + this.updateTime = t2, this.exists = e; + } + static none() { + return new Os(); + } + static exists(t2) { + return new Os(void 0, t2); + } + static updateTime(t2) { + return new Os(t2); + } + get isNone() { + return void 0 === this.updateTime && void 0 === this.exists; + } + isEqual(t2) { + return this.exists === t2.exists && (this.updateTime ? !!t2.updateTime && this.updateTime.isEqual(t2.updateTime) : !t2.updateTime); + } +} +function $s(t2, e) { + return void 0 !== t2.updateTime ? e.isFoundDocument() && e.version.isEqual(t2.updateTime) : void 0 === t2.exists || t2.exists === e.isFoundDocument(); +} +class Ms { +} +function Fs(t2, e) { + if (!t2.hasLocalMutations || e && 0 === e.fields.length) + return null; + if (null === e) + return t2.isNoDocument() ? new Ws(t2.key, Os.none()) : new Ks(t2.key, t2.data, Os.none()); + { + const n = t2.data, s = sn.empty(); + let i = new Ie(ut.comparator); + for (let t3 of e.fields) + if (!i.has(t3)) { + let e2 = n.field(t3); + null === e2 && t3.length > 1 && (t3 = t3.popLast(), e2 = n.field(t3)), null === e2 ? s.delete(t3) : s.set(t3, e2), i = i.add(t3); + } + return new Gs(t2.key, s, new Ae(i.toArray()), Os.none()); + } +} +function Bs(t2, e, n) { + t2 instanceof Ks ? function(t3, e2, n2) { + const s = t3.value.clone(), i = zs(t3.fieldTransforms, e2, n2.transformResults); + s.setAll(i), e2.convertToFoundDocument(n2.version, s).setHasCommittedMutations(); + }(t2, e, n) : t2 instanceof Gs ? function(t3, e2, n2) { + if (!$s(t3.precondition, e2)) + return void e2.convertToUnknownDocument(n2.version); + const s = zs(t3.fieldTransforms, e2, n2.transformResults), i = e2.data; + i.setAll(Qs(t3)), i.setAll(s), e2.convertToFoundDocument(n2.version, i).setHasCommittedMutations(); + }(t2, e, n) : function(t3, e2, n2) { + e2.convertToNoDocument(n2.version).setHasCommittedMutations(); + }(0, e, n); +} +function Ls(t2, e, n, s) { + return t2 instanceof Ks ? function(t3, e2, n2, s2) { + if (!$s(t3.precondition, e2)) + return n2; + const i = t3.value.clone(), r = js(t3.fieldTransforms, s2, e2); + return i.setAll(r), e2.convertToFoundDocument(e2.version, i).setHasLocalMutations(), null; + }(t2, e, n, s) : t2 instanceof Gs ? function(t3, e2, n2, s2) { + if (!$s(t3.precondition, e2)) + return n2; + const i = js(t3.fieldTransforms, s2, e2), r = e2.data; + if (r.setAll(Qs(t3)), r.setAll(i), e2.convertToFoundDocument(e2.version, r).setHasLocalMutations(), null === n2) + return null; + return n2.unionWith(t3.fieldMask.fields).unionWith(t3.fieldTransforms.map((t4) => t4.field)); + }(t2, e, n, s) : function(t3, e2, n2) { + if ($s(t3.precondition, e2)) + return e2.convertToNoDocument(e2.version).setHasLocalMutations(), null; + return n2; + }(t2, e, n); +} +function qs(t2, e) { + let n = null; + for (const s of t2.fieldTransforms) { + const t3 = e.data.field(s.field), i = As(s.transform, t3 || null); + null != i && (null === n && (n = sn.empty()), n.set(s.field, i)); + } + return n || null; +} +function Us(t2, e) { + return t2.type === e.type && (!!t2.key.isEqual(e.key) && (!!t2.precondition.isEqual(e.precondition) && (!!function(t3, e2) { + return void 0 === t3 && void 0 === e2 || !(!t3 || !e2) && tt(t3, e2, (t4, e3) => Ns(t4, e3)); + }(t2.fieldTransforms, e.fieldTransforms) && (0 === t2.type ? t2.value.isEqual(e.value) : 1 !== t2.type || t2.data.isEqual(e.data) && t2.fieldMask.isEqual(e.fieldMask))))); +} +class Ks extends Ms { + constructor(t2, e, n, s = []) { + super(), this.key = t2, this.value = e, this.precondition = n, this.fieldTransforms = s, this.type = 0; + } + getFieldMask() { + return null; + } +} +class Gs extends Ms { + constructor(t2, e, n, s, i = []) { + super(), this.key = t2, this.data = e, this.fieldMask = n, this.precondition = s, this.fieldTransforms = i, this.type = 1; + } + getFieldMask() { + return this.fieldMask; + } +} +function Qs(t2) { + const e = /* @__PURE__ */ new Map(); + return t2.fieldMask.fields.forEach((n) => { + if (!n.isEmpty()) { + const s = t2.data.field(n); + e.set(n, s); + } + }), e; +} +function zs(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + $(t2.length === n.length); + for (let i = 0; i < n.length; i++) { + const r = t2[i], o = r.transform, u = e.data.field(r.field); + s.set(r.field, Es(o, u, n[i])); + } + return s; +} +function js(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + for (const i of t2) { + const t3 = i.transform, r = n.data.field(i.field); + s.set(i.field, Ts(t3, r, e)); + } + return s; +} +class Ws extends Ms { + constructor(t2, e) { + super(), this.key = t2, this.precondition = e, this.type = 2, this.fieldTransforms = []; + } + getFieldMask() { + return null; + } +} +class Hs extends Ms { + constructor(t2, e) { + super(), this.key = t2, this.precondition = e, this.type = 3, this.fieldTransforms = []; + } + getFieldMask() { + return null; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Js { + constructor(t2, e, n, s) { + this.batchId = t2, this.localWriteTime = e, this.baseMutations = n, this.mutations = s; + } + applyToRemoteDocument(t2, e) { + const n = e.mutationResults; + for (let e2 = 0; e2 < this.mutations.length; e2++) { + const s = this.mutations[e2]; + if (s.key.isEqual(t2.key)) { + Bs(s, t2, n[e2]); + } + } + } + applyToLocalView(t2, e) { + for (const n of this.baseMutations) + n.key.isEqual(t2.key) && (e = Ls(n, t2, e, this.localWriteTime)); + for (const n of this.mutations) + n.key.isEqual(t2.key) && (e = Ls(n, t2, e, this.localWriteTime)); + return e; + } + applyToLocalDocumentSet(t2, e) { + const n = hs(); + return this.mutations.forEach((s) => { + const i = t2.get(s.key), r = i.overlayedDocument; + let o = this.applyToLocalView(r, i.mutatedFields); + o = e.has(s.key) ? null : o; + const u = Fs(r, o); + null !== u && n.set(s.key, u), r.isValidDocument() || r.convertToNoDocument(st.min()); + }), n; + } + keys() { + return this.mutations.reduce((t2, e) => t2.add(e.key), ws()); + } + isEqual(t2) { + return this.batchId === t2.batchId && tt(this.mutations, t2.mutations, (t3, e) => Us(t3, e)) && tt(this.baseMutations, t2.baseMutations, (t3, e) => Us(t3, e)); + } +} +class Ys { + constructor(t2, e, n, s) { + this.batch = t2, this.commitVersion = e, this.mutationResults = n, this.docVersions = s; + } + static from(t2, e, n) { + $(t2.mutations.length === n.length); + let s = fs; + const i = t2.mutations; + for (let t3 = 0; t3 < i.length; t3++) + s = s.insert(i[t3].key, n[t3].version); + return new Ys(t2, e, n, s); + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Zs { + constructor(t2, e) { + this.largestBatchId = t2, this.mutation = e; + } + getKey() { + return this.mutation.key; + } + isEqual(t2) { + return null !== t2 && this.mutation === t2.mutation; + } + toString() { + return `Overlay{ + largestBatchId: ${this.largestBatchId}, + mutation: ${this.mutation.toString()} + }`; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ni { + constructor(t2) { + this.count = t2; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var si, ii; +function ri(t2) { + switch (t2) { + default: + return O(); + case B.CANCELLED: + case B.UNKNOWN: + case B.DEADLINE_EXCEEDED: + case B.RESOURCE_EXHAUSTED: + case B.INTERNAL: + case B.UNAVAILABLE: + case B.UNAUTHENTICATED: + return false; + case B.INVALID_ARGUMENT: + case B.NOT_FOUND: + case B.ALREADY_EXISTS: + case B.PERMISSION_DENIED: + case B.FAILED_PRECONDITION: + case B.ABORTED: + case B.OUT_OF_RANGE: + case B.UNIMPLEMENTED: + case B.DATA_LOSS: + return true; + } +} +function oi(t2) { + if (void 0 === t2) + return x("GRPC error has no .code"), B.UNKNOWN; + switch (t2) { + case si.OK: + return B.OK; + case si.CANCELLED: + return B.CANCELLED; + case si.UNKNOWN: + return B.UNKNOWN; + case si.DEADLINE_EXCEEDED: + return B.DEADLINE_EXCEEDED; + case si.RESOURCE_EXHAUSTED: + return B.RESOURCE_EXHAUSTED; + case si.INTERNAL: + return B.INTERNAL; + case si.UNAVAILABLE: + return B.UNAVAILABLE; + case si.UNAUTHENTICATED: + return B.UNAUTHENTICATED; + case si.INVALID_ARGUMENT: + return B.INVALID_ARGUMENT; + case si.NOT_FOUND: + return B.NOT_FOUND; + case si.ALREADY_EXISTS: + return B.ALREADY_EXISTS; + case si.PERMISSION_DENIED: + return B.PERMISSION_DENIED; + case si.FAILED_PRECONDITION: + return B.FAILED_PRECONDITION; + case si.ABORTED: + return B.ABORTED; + case si.OUT_OF_RANGE: + return B.OUT_OF_RANGE; + case si.UNIMPLEMENTED: + return B.UNIMPLEMENTED; + case si.DATA_LOSS: + return B.DATA_LOSS; + default: + return O(); + } +} +(ii = si || (si = {}))[ii.OK = 0] = "OK", ii[ii.CANCELLED = 1] = "CANCELLED", ii[ii.UNKNOWN = 2] = "UNKNOWN", ii[ii.INVALID_ARGUMENT = 3] = "INVALID_ARGUMENT", ii[ii.DEADLINE_EXCEEDED = 4] = "DEADLINE_EXCEEDED", ii[ii.NOT_FOUND = 5] = "NOT_FOUND", ii[ii.ALREADY_EXISTS = 6] = "ALREADY_EXISTS", ii[ii.PERMISSION_DENIED = 7] = "PERMISSION_DENIED", ii[ii.UNAUTHENTICATED = 16] = "UNAUTHENTICATED", ii[ii.RESOURCE_EXHAUSTED = 8] = "RESOURCE_EXHAUSTED", ii[ii.FAILED_PRECONDITION = 9] = "FAILED_PRECONDITION", ii[ii.ABORTED = 10] = "ABORTED", ii[ii.OUT_OF_RANGE = 11] = "OUT_OF_RANGE", ii[ii.UNIMPLEMENTED = 12] = "UNIMPLEMENTED", ii[ii.INTERNAL = 13] = "INTERNAL", ii[ii.UNAVAILABLE = 14] = "UNAVAILABLE", ii[ii.DATA_LOSS = 15] = "DATA_LOSS"; +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ui { + constructor() { + this.onExistenceFilterMismatchCallbacks = /* @__PURE__ */ new Map(); + } + static get instance() { + return ci; + } + static getOrCreateInstance() { + return null === ci && (ci = new ui()), ci; + } + onExistenceFilterMismatch(t2) { + const e = Symbol(); + return this.onExistenceFilterMismatchCallbacks.set(e, t2), () => this.onExistenceFilterMismatchCallbacks.delete(e); + } + notifyOnExistenceFilterMismatch(t2) { + this.onExistenceFilterMismatchCallbacks.forEach((e) => e(t2)); + } +} +let ci = null; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ai { + constructor(t2, e, n, s, i) { + this.snapshotVersion = t2, this.targetChanges = e, this.targetMismatches = n, this.documentUpdates = s, this.resolvedLimboDocuments = i; + } + static createSynthesizedRemoteEventForCurrentChange(t2, e, n) { + const s = /* @__PURE__ */ new Map(); + return s.set(t2, hi.createSynthesizedTargetChangeForCurrentChange(t2, e, n)), new ai(st.min(), s, ms(), rs(), ws()); + } +} +class hi { + constructor(t2, e, n, s, i) { + this.resumeToken = t2, this.current = e, this.addedDocuments = n, this.modifiedDocuments = s, this.removedDocuments = i; + } + static createSynthesizedTargetChangeForCurrentChange(t2, e, n) { + return new hi(n, e, ws(), ws(), ws()); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class li { + constructor(t2, e, n, s) { + this.It = t2, this.removedTargetIds = e, this.key = n, this.Tt = s; + } +} +class fi { + constructor(t2, e) { + this.targetId = t2, this.Et = e; + } +} +class di { + constructor(t2, e, n = be.EMPTY_BYTE_STRING, s = null) { + this.state = t2, this.targetIds = e, this.resumeToken = n, this.cause = s; + } +} +class wi { + constructor() { + this.At = 0, this.Rt = gi(), this.vt = be.EMPTY_BYTE_STRING, this.bt = false, this.Pt = true; + } + get current() { + return this.bt; + } + get resumeToken() { + return this.vt; + } + get Vt() { + return 0 !== this.At; + } + get St() { + return this.Pt; + } + Dt(t2) { + t2.approximateByteSize() > 0 && (this.Pt = true, this.vt = t2); + } + Ct() { + let t2 = ws(), e = ws(), n = ws(); + return this.Rt.forEach((s, i) => { + switch (i) { + case 0: + t2 = t2.add(s); + break; + case 2: + e = e.add(s); + break; + case 1: + n = n.add(s); + break; + default: + O(); + } + }), new hi(this.vt, this.bt, t2, e, n); + } + xt() { + this.Pt = false, this.Rt = gi(); + } + Nt(t2, e) { + this.Pt = true, this.Rt = this.Rt.insert(t2, e); + } + kt(t2) { + this.Pt = true, this.Rt = this.Rt.remove(t2); + } + Ot() { + this.At += 1; + } + $t() { + this.At -= 1; + } + Mt() { + this.Pt = true, this.bt = true; + } +} +class _i { + constructor(t2) { + this.Ft = t2, this.Bt = /* @__PURE__ */ new Map(), this.Lt = rs(), this.qt = mi(), this.Ut = new Ie(X); + } + Kt(t2) { + for (const e of t2.It) + t2.Tt && t2.Tt.isFoundDocument() ? this.Gt(e, t2.Tt) : this.Qt(e, t2.key, t2.Tt); + for (const e of t2.removedTargetIds) + this.Qt(e, t2.key, t2.Tt); + } + zt(t2) { + this.forEachTarget(t2, (e) => { + const n = this.jt(e); + switch (t2.state) { + case 0: + this.Wt(e) && n.Dt(t2.resumeToken); + break; + case 1: + n.$t(), n.Vt || n.xt(), n.Dt(t2.resumeToken); + break; + case 2: + n.$t(), n.Vt || this.removeTarget(e); + break; + case 3: + this.Wt(e) && (n.Mt(), n.Dt(t2.resumeToken)); + break; + case 4: + this.Wt(e) && (this.Ht(e), n.Dt(t2.resumeToken)); + break; + default: + O(); + } + }); + } + forEachTarget(t2, e) { + t2.targetIds.length > 0 ? t2.targetIds.forEach(e) : this.Bt.forEach((t3, n) => { + this.Wt(n) && e(n); + }); + } + Jt(t2) { + var e; + const n = t2.targetId, s = t2.Et.count, i = this.Yt(n); + if (i) { + const r = i.target; + if (On(r)) + if (0 === s) { + const t3 = new ct(r.path); + this.Qt(n, t3, on.newNoDocument(t3, st.min())); + } else + $(1 === s); + else { + const i2 = this.Zt(n); + i2 !== s && (this.Ht(n), this.Ut = this.Ut.add(n), null === (e = ui.instance) || void 0 === e || e.notifyOnExistenceFilterMismatch({ + localCacheCount: i2, + existenceFilterCount: t2.Et.count + })); + } + } + } + Xt(t2) { + const e = /* @__PURE__ */ new Map(); + this.Bt.forEach((n2, s2) => { + const i = this.Yt(s2); + if (i) { + if (n2.current && On(i.target)) { + const e2 = new ct(i.target.path); + null !== this.Lt.get(e2) || this.te(s2, e2) || this.Qt(s2, e2, on.newNoDocument(e2, t2)); + } + n2.St && (e.set(s2, n2.Ct()), n2.xt()); + } + }); + let n = ws(); + this.qt.forEach((t3, e2) => { + let s2 = true; + e2.forEachWhile((t4) => { + const e3 = this.Yt(t4); + return !e3 || 2 === e3.purpose || (s2 = false, false); + }), s2 && (n = n.add(t3)); + }), this.Lt.forEach((e2, n2) => n2.setReadTime(t2)); + const s = new ai(t2, e, this.Ut, this.Lt, n); + return this.Lt = rs(), this.qt = mi(), this.Ut = new Ie(X), s; + } + Gt(t2, e) { + if (!this.Wt(t2)) + return; + const n = this.te(t2, e.key) ? 2 : 0; + this.jt(t2).Nt(e.key, n), this.Lt = this.Lt.insert(e.key, e), this.qt = this.qt.insert(e.key, this.ee(e.key).add(t2)); + } + Qt(t2, e, n) { + if (!this.Wt(t2)) + return; + const s = this.jt(t2); + this.te(t2, e) ? s.Nt(e, 1) : s.kt(e), this.qt = this.qt.insert(e, this.ee(e).delete(t2)), n && (this.Lt = this.Lt.insert(e, n)); + } + removeTarget(t2) { + this.Bt.delete(t2); + } + Zt(t2) { + const e = this.jt(t2).Ct(); + return this.Ft.getRemoteKeysForTarget(t2).size + e.addedDocuments.size - e.removedDocuments.size; + } + Ot(t2) { + this.jt(t2).Ot(); + } + jt(t2) { + let e = this.Bt.get(t2); + return e || (e = new wi(), this.Bt.set(t2, e)), e; + } + ee(t2) { + let e = this.qt.get(t2); + return e || (e = new Ie(X), this.qt = this.qt.insert(t2, e)), e; + } + Wt(t2) { + const e = null !== this.Yt(t2); + return e || C("WatchChangeAggregator", "Detected inactive target", t2), e; + } + Yt(t2) { + const e = this.Bt.get(t2); + return e && e.Vt ? null : this.Ft.ne(t2); + } + Ht(t2) { + this.Bt.set(t2, new wi()); + this.Ft.getRemoteKeysForTarget(t2).forEach((e) => { + this.Qt(t2, e, null); + }); + } + te(t2, e) { + return this.Ft.getRemoteKeysForTarget(t2).has(e); + } +} +function mi() { + return new ge(ct.comparator); +} +function gi() { + return new ge(ct.comparator); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const yi = (() => { + const t2 = { + asc: "ASCENDING", + desc: "DESCENDING" + }; + return t2; +})(), pi = (() => { + const t2 = { + "<": "LESS_THAN", + "<=": "LESS_THAN_OR_EQUAL", + ">": "GREATER_THAN", + ">=": "GREATER_THAN_OR_EQUAL", + "==": "EQUAL", + "!=": "NOT_EQUAL", + "array-contains": "ARRAY_CONTAINS", + in: "IN", + "not-in": "NOT_IN", + "array-contains-any": "ARRAY_CONTAINS_ANY" + }; + return t2; +})(), Ii = (() => { + const t2 = { + and: "AND", + or: "OR" + }; + return t2; +})(); +class Ti { + constructor(t2, e) { + this.databaseId = t2, this.useProto3Json = e; + } +} +function Ei(t2, e) { + if (t2.useProto3Json) { + return `${new Date(1e3 * e.seconds).toISOString().replace(/\.\d*/, "").replace("Z", "")}.${("000000000" + e.nanoseconds).slice(-9)}Z`; + } + return { + seconds: "" + e.seconds, + nanos: e.nanoseconds + }; +} +function Ai(t2, e) { + return t2.useProto3Json ? e.toBase64() : e.toUint8Array(); +} +function Ri(t2, e) { + return Ei(t2, e.toTimestamp()); +} +function vi(t2) { + return $(!!t2), st.fromTimestamp(function(t3) { + const e = Ve(t3); + return new nt(e.seconds, e.nanos); + }(t2)); +} +function bi(t2, e) { + return function(t3) { + return new rt(["projects", t3.projectId, "databases", t3.database]); + }(t2).child("documents").child(e).canonicalString(); +} +function Pi(t2) { + const e = rt.fromString(t2); + return $(Xi(e)), e; +} +function Vi(t2, e) { + return bi(t2.databaseId, e.path); +} +function Si(t2, e) { + const n = Pi(e); + if (n.get(1) !== t2.databaseId.projectId) + throw new L(B.INVALID_ARGUMENT, "Tried to deserialize key from different project: " + n.get(1) + " vs " + t2.databaseId.projectId); + if (n.get(3) !== t2.databaseId.database) + throw new L(B.INVALID_ARGUMENT, "Tried to deserialize key from different database: " + n.get(3) + " vs " + t2.databaseId.database); + return new ct(Ni(n)); +} +function Di(t2, e) { + return bi(t2.databaseId, e); +} +function Ci(t2) { + const e = Pi(t2); + return 4 === e.length ? rt.emptyPath() : Ni(e); +} +function xi(t2) { + return new rt(["projects", t2.databaseId.projectId, "databases", t2.databaseId.database]).canonicalString(); +} +function Ni(t2) { + return $(t2.length > 4 && "documents" === t2.get(4)), t2.popFirst(5); +} +function ki(t2, e, n) { + return { + name: Vi(t2, e), + fields: n.value.mapValue.fields + }; +} +function Mi(t2, e) { + let n; + if ("targetChange" in e) { + e.targetChange; + const s = function(t3) { + return "NO_CHANGE" === t3 ? 0 : "ADD" === t3 ? 1 : "REMOVE" === t3 ? 2 : "CURRENT" === t3 ? 3 : "RESET" === t3 ? 4 : O(); + }(e.targetChange.targetChangeType || "NO_CHANGE"), i = e.targetChange.targetIds || [], r = function(t3, e2) { + return t3.useProto3Json ? ($(void 0 === e2 || "string" == typeof e2), be.fromBase64String(e2 || "")) : ($(void 0 === e2 || e2 instanceof Uint8Array), be.fromUint8Array(e2 || new Uint8Array())); + }(t2, e.targetChange.resumeToken), o = e.targetChange.cause, u = o && function(t3) { + const e2 = void 0 === t3.code ? B.UNKNOWN : oi(t3.code); + return new L(e2, t3.message || ""); + }(o); + n = new di(s, i, r, u || null); + } else if ("documentChange" in e) { + e.documentChange; + const s = e.documentChange; + s.document, s.document.name, s.document.updateTime; + const i = Si(t2, s.document.name), r = vi(s.document.updateTime), o = s.document.createTime ? vi(s.document.createTime) : st.min(), u = new sn({ + mapValue: { + fields: s.document.fields + } + }), c = on.newFoundDocument(i, r, o, u), a = s.targetIds || [], h = s.removedTargetIds || []; + n = new li(a, h, c.key, c); + } else if ("documentDelete" in e) { + e.documentDelete; + const s = e.documentDelete; + s.document; + const i = Si(t2, s.document), r = s.readTime ? vi(s.readTime) : st.min(), o = on.newNoDocument(i, r), u = s.removedTargetIds || []; + n = new li([], u, o.key, o); + } else if ("documentRemove" in e) { + e.documentRemove; + const s = e.documentRemove; + s.document; + const i = Si(t2, s.document), r = s.removedTargetIds || []; + n = new li([], r, i, null); + } else { + if (!("filter" in e)) + return O(); + { + e.filter; + const t3 = e.filter; + t3.targetId; + const s = t3.count || 0, i = new ni(s), r = t3.targetId; + n = new fi(r, i); + } + } + return n; +} +function Fi(t2, e) { + let n; + if (e instanceof Ks) + n = { + update: ki(t2, e.key, e.value) + }; + else if (e instanceof Ws) + n = { + delete: Vi(t2, e.key) + }; + else if (e instanceof Gs) + n = { + update: ki(t2, e.key, e.data), + updateMask: Zi(e.fieldMask) + }; + else { + if (!(e instanceof Hs)) + return O(); + n = { + verify: Vi(t2, e.key) + }; + } + return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((t3) => function(t4, e2) { + const n2 = e2.transform; + if (n2 instanceof Rs) + return { + fieldPath: e2.field.canonicalString(), + setToServerValue: "REQUEST_TIME" + }; + if (n2 instanceof vs) + return { + fieldPath: e2.field.canonicalString(), + appendMissingElements: { + values: n2.elements + } + }; + if (n2 instanceof Ps) + return { + fieldPath: e2.field.canonicalString(), + removeAllFromArray: { + values: n2.elements + } + }; + if (n2 instanceof Ss) + return { + fieldPath: e2.field.canonicalString(), + increment: n2._t + }; + throw O(); + }(0, t3))), e.precondition.isNone || (n.currentDocument = function(t3, e2) { + return void 0 !== e2.updateTime ? { + updateTime: Ri(t3, e2.updateTime) + } : void 0 !== e2.exists ? { + exists: e2.exists + } : O(); + }(t2, e.precondition)), n; +} +function Li(t2, e) { + return t2 && t2.length > 0 ? ($(void 0 !== e), t2.map((t3) => function(t4, e2) { + let n = t4.updateTime ? vi(t4.updateTime) : vi(e2); + return n.isEqual(st.min()) && (n = vi(e2)), new ks(n, t4.transformResults || []); + }(t3, e))) : []; +} +function qi(t2, e) { + return { + documents: [Di(t2, e.path)] + }; +} +function Ui(t2, e) { + const n = { + structuredQuery: {} + }, s = e.path; + null !== e.collectionGroup ? (n.parent = Di(t2, s), n.structuredQuery.from = [{ + collectionId: e.collectionGroup, + allDescendants: true + }]) : (n.parent = Di(t2, s.popLast()), n.structuredQuery.from = [{ + collectionId: s.lastSegment() + }]); + const i = function(t3) { + if (0 === t3.length) + return; + return Yi(wn.create(t3, "and")); + }(e.filters); + i && (n.structuredQuery.where = i); + const r = function(t3) { + if (0 === t3.length) + return; + return t3.map((t4) => function(t5) { + return { + field: Hi(t5.field), + direction: zi(t5.dir) + }; + }(t4)); + }(e.orderBy); + r && (n.structuredQuery.orderBy = r); + const o = function(t3, e2) { + return t3.useProto3Json || $t(e2) ? e2 : { + value: e2 + }; + }(t2, e.limit); + var u; + return null !== o && (n.structuredQuery.limit = o), e.startAt && (n.structuredQuery.startAt = { + before: (u = e.startAt).inclusive, + values: u.position + }), e.endAt && (n.structuredQuery.endAt = function(t3) { + return { + before: !t3.inclusive, + values: t3.position + }; + }(e.endAt)), n; +} +function Ki(t2) { + let e = Ci(t2.parent); + const n = t2.structuredQuery, s = n.from ? n.from.length : 0; + let i = null; + if (s > 0) { + $(1 === s); + const t3 = n.from[0]; + t3.allDescendants ? i = t3.collectionId : e = e.child(t3.collectionId); + } + let r = []; + n.where && (r = function(t3) { + const e2 = Qi(t3); + if (e2 instanceof wn && gn(e2)) + return e2.getFilters(); + return [e2]; + }(n.where)); + let o = []; + n.orderBy && (o = n.orderBy.map((t3) => function(t4) { + return new hn( + Ji(t4.field), + function(t5) { + switch (t5) { + case "ASCENDING": + return "asc"; + case "DESCENDING": + return "desc"; + default: + return; + } + }(t4.direction) + ); + }(t3))); + let u = null; + n.limit && (u = function(t3) { + let e2; + return e2 = "object" == typeof t3 ? t3.value : t3, $t(e2) ? null : e2; + }(n.limit)); + let c = null; + n.startAt && (c = function(t3) { + const e2 = !!t3.before, n2 = t3.values || []; + return new un(n2, e2); + }(n.startAt)); + let a = null; + return n.endAt && (a = function(t3) { + const e2 = !t3.before, n2 = t3.values || []; + return new un(n2, e2); + }(n.endAt)), Ln(e, i, o, r, u, "F", c, a); +} +function Gi(t2, e) { + const n = function(t3, e2) { + switch (e2) { + case 0: + return null; + case 1: + return "existence-filter-mismatch"; + case 2: + return "limbo-document"; + default: + return O(); + } + }(0, e.purpose); + return null == n ? null : { + "goog-listen-tags": n + }; +} +function Qi(t2) { + return void 0 !== t2.unaryFilter ? function(t3) { + switch (t3.unaryFilter.op) { + case "IS_NAN": + const e = Ji(t3.unaryFilter.field); + return dn.create(e, "==", { + doubleValue: NaN + }); + case "IS_NULL": + const n = Ji(t3.unaryFilter.field); + return dn.create(n, "==", { + nullValue: "NULL_VALUE" + }); + case "IS_NOT_NAN": + const s = Ji(t3.unaryFilter.field); + return dn.create(s, "!=", { + doubleValue: NaN + }); + case "IS_NOT_NULL": + const i = Ji(t3.unaryFilter.field); + return dn.create(i, "!=", { + nullValue: "NULL_VALUE" + }); + default: + return O(); + } + }(t2) : void 0 !== t2.fieldFilter ? function(t3) { + return dn.create(Ji(t3.fieldFilter.field), function(t4) { + switch (t4) { + case "EQUAL": + return "=="; + case "NOT_EQUAL": + return "!="; + case "GREATER_THAN": + return ">"; + case "GREATER_THAN_OR_EQUAL": + return ">="; + case "LESS_THAN": + return "<"; + case "LESS_THAN_OR_EQUAL": + return "<="; + case "ARRAY_CONTAINS": + return "array-contains"; + case "IN": + return "in"; + case "NOT_IN": + return "not-in"; + case "ARRAY_CONTAINS_ANY": + return "array-contains-any"; + default: + return O(); + } + }(t3.fieldFilter.op), t3.fieldFilter.value); + }(t2) : void 0 !== t2.compositeFilter ? function(t3) { + return wn.create(t3.compositeFilter.filters.map((t4) => Qi(t4)), function(t4) { + switch (t4) { + case "AND": + return "and"; + case "OR": + return "or"; + default: + return O(); + } + }(t3.compositeFilter.op)); + }(t2) : O(); +} +function zi(t2) { + return yi[t2]; +} +function ji(t2) { + return pi[t2]; +} +function Wi(t2) { + return Ii[t2]; +} +function Hi(t2) { + return { + fieldPath: t2.canonicalString() + }; +} +function Ji(t2) { + return ut.fromServerFormat(t2.fieldPath); +} +function Yi(t2) { + return t2 instanceof dn ? function(t3) { + if ("==" === t3.op) { + if (He(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NAN" + } + }; + if (We(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NULL" + } + }; + } else if ("!=" === t3.op) { + if (He(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NOT_NAN" + } + }; + if (We(t3.value)) + return { + unaryFilter: { + field: Hi(t3.field), + op: "IS_NOT_NULL" + } + }; + } + return { + fieldFilter: { + field: Hi(t3.field), + op: ji(t3.op), + value: t3.value + } + }; + }(t2) : t2 instanceof wn ? function(t3) { + const e = t3.getFilters().map((t4) => Yi(t4)); + if (1 === e.length) + return e[0]; + return { + compositeFilter: { + op: Wi(t3.op), + filters: e + } + }; + }(t2) : O(); +} +function Zi(t2) { + const e = []; + return t2.fields.forEach((t3) => e.push(t3.canonicalString())), { + fieldPaths: e + }; +} +function Xi(t2) { + return t2.length >= 4 && "projects" === t2.get(0) && "databases" === t2.get(2); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class tr { + constructor(t2, e, n, s, i = st.min(), r = st.min(), o = be.EMPTY_BYTE_STRING) { + this.target = t2, this.targetId = e, this.purpose = n, this.sequenceNumber = s, this.snapshotVersion = i, this.lastLimboFreeSnapshotVersion = r, this.resumeToken = o; + } + withSequenceNumber(t2) { + return new tr(this.target, this.targetId, this.purpose, t2, this.snapshotVersion, this.lastLimboFreeSnapshotVersion, this.resumeToken); + } + withResumeToken(t2, e) { + return new tr(this.target, this.targetId, this.purpose, this.sequenceNumber, e, this.lastLimboFreeSnapshotVersion, t2); + } + withLastLimboFreeSnapshotVersion(t2) { + return new tr(this.target, this.targetId, this.purpose, this.sequenceNumber, this.snapshotVersion, t2, this.resumeToken); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class er { + constructor(t2) { + this.se = t2; + } +} +function hr(t2) { + const e = Ki({ + parent: t2.parent, + structuredQuery: t2.structuredQuery + }); + return "LAST" === t2.limitType ? Hn(e, e.limit, "L") : e; +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Br { + constructor() { + this.He = new Lr(); + } + addToCollectionParentIndex(t2, e) { + return this.He.add(e), At.resolve(); + } + getCollectionParents(t2, e) { + return At.resolve(this.He.getEntries(e)); + } + addFieldIndex(t2, e) { + return At.resolve(); + } + deleteFieldIndex(t2, e) { + return At.resolve(); + } + getDocumentsMatchingTarget(t2, e) { + return At.resolve(null); + } + getIndexType(t2, e) { + return At.resolve(0); + } + getFieldIndexes(t2, e) { + return At.resolve([]); + } + getNextCollectionGroupToUpdate(t2) { + return At.resolve(null); + } + getMinOffset(t2, e) { + return At.resolve(yt.min()); + } + getMinOffsetFromCollectionGroup(t2, e) { + return At.resolve(yt.min()); + } + updateCollectionGroup(t2, e, n) { + return At.resolve(); + } + updateIndexEntries(t2, e) { + return At.resolve(); + } +} +class Lr { + constructor() { + this.index = {}; + } + add(t2) { + const e = t2.lastSegment(), n = t2.popLast(), s = this.index[e] || new Ie(rt.comparator), i = !s.has(n); + return this.index[e] = s.add(n), i; + } + has(t2) { + const e = t2.lastSegment(), n = t2.popLast(), s = this.index[e]; + return s && s.has(n); + } + getEntries(t2) { + return (this.index[t2] || new Ie(rt.comparator)).toArray(); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class so { + constructor(t2) { + this.Rn = t2; + } + next() { + return this.Rn += 2, this.Rn; + } + static vn() { + return new so(0); + } + static bn() { + return new so(-1); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class _o { + constructor() { + this.changes = new ss((t2) => t2.toString(), (t2, e) => t2.isEqual(e)), this.changesApplied = false; + } + addEntry(t2) { + this.assertNotApplied(), this.changes.set(t2.key, t2); + } + removeEntry(t2, e) { + this.assertNotApplied(), this.changes.set(t2, on.newInvalidDocument(t2).setReadTime(e)); + } + getEntry(t2, e) { + this.assertNotApplied(); + const n = this.changes.get(e); + return void 0 !== n ? At.resolve(n) : this.getFromCache(t2, e); + } + getEntries(t2, e) { + return this.getAllFromCache(t2, e); + } + apply(t2) { + return this.assertNotApplied(), this.changesApplied = true, this.applyChanges(t2); + } + assertNotApplied() { + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ro { + constructor(t2, e) { + this.overlayedDocument = t2, this.mutatedFields = e; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class vo { + constructor(t2, e, n, s) { + this.remoteDocumentCache = t2, this.mutationQueue = e, this.documentOverlayCache = n, this.indexManager = s; + } + getDocument(t2, e) { + let n = null; + return this.documentOverlayCache.getOverlay(t2, e).next((s) => (n = s, this.remoteDocumentCache.getEntry(t2, e))).next((t3) => (null !== n && Ls(n.mutation, t3, Ae.empty(), nt.now()), t3)); + } + getDocuments(t2, e) { + return this.remoteDocumentCache.getEntries(t2, e).next((e2) => this.getLocalViewOfDocuments(t2, e2, ws()).next(() => e2)); + } + getLocalViewOfDocuments(t2, e, n = ws()) { + const s = as(); + return this.populateOverlays(t2, s, e).next(() => this.computeViews(t2, e, s, n).next((t3) => { + let e2 = us(); + return t3.forEach((t4, n2) => { + e2 = e2.insert(t4, n2.overlayedDocument); + }), e2; + })); + } + getOverlayedDocuments(t2, e) { + const n = as(); + return this.populateOverlays(t2, n, e).next(() => this.computeViews(t2, e, n, ws())); + } + populateOverlays(t2, e, n) { + const s = []; + return n.forEach((t3) => { + e.has(t3) || s.push(t3); + }), this.documentOverlayCache.getOverlays(t2, s).next((t3) => { + t3.forEach((t4, n2) => { + e.set(t4, n2); + }); + }); + } + computeViews(t2, e, n, s) { + let i = rs(); + const r = ls(), o = ls(); + return e.forEach((t3, e2) => { + const o2 = n.get(e2.key); + s.has(e2.key) && (void 0 === o2 || o2.mutation instanceof Gs) ? i = i.insert(e2.key, e2) : void 0 !== o2 ? (r.set(e2.key, o2.mutation.getFieldMask()), Ls(o2.mutation, e2, o2.mutation.getFieldMask(), nt.now())) : r.set(e2.key, Ae.empty()); + }), this.recalculateAndSaveOverlays(t2, i).next((t3) => (t3.forEach((t4, e2) => r.set(t4, e2)), e.forEach((t4, e2) => { + var n2; + return o.set(t4, new Ro(e2, null !== (n2 = r.get(t4)) && void 0 !== n2 ? n2 : null)); + }), o)); + } + recalculateAndSaveOverlays(t2, e) { + const n = ls(); + let s = new ge((t3, e2) => t3 - e2), i = ws(); + return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t2, e).next((t3) => { + for (const i2 of t3) + i2.keys().forEach((t4) => { + const r = e.get(t4); + if (null === r) + return; + let o = n.get(t4) || Ae.empty(); + o = i2.applyToLocalView(r, o), n.set(t4, o); + const u = (s.get(i2.batchId) || ws()).add(t4); + s = s.insert(i2.batchId, u); + }); + }).next(() => { + const r = [], o = s.getReverseIterator(); + for (; o.hasNext(); ) { + const s2 = o.getNext(), u = s2.key, c = s2.value, a = hs(); + c.forEach((t3) => { + if (!i.has(t3)) { + const s3 = Fs(e.get(t3), n.get(t3)); + null !== s3 && a.set(t3, s3), i = i.add(t3); + } + }), r.push(this.documentOverlayCache.saveOverlays(t2, u, a)); + } + return At.waitFor(r); + }).next(() => n); + } + recalculateAndSaveOverlaysForDocumentKeys(t2, e) { + return this.remoteDocumentCache.getEntries(t2, e).next((e2) => this.recalculateAndSaveOverlays(t2, e2)); + } + getDocumentsMatchingQuery(t2, e, n) { + return function(t3) { + return ct.isDocumentKey(t3.path) && null === t3.collectionGroup && 0 === t3.filters.length; + }(e) ? this.getDocumentsMatchingDocumentQuery(t2, e.path) : Qn(e) ? this.getDocumentsMatchingCollectionGroupQuery(t2, e, n) : this.getDocumentsMatchingCollectionQuery(t2, e, n); + } + getNextDocuments(t2, e, n, s) { + return this.remoteDocumentCache.getAllFromCollectionGroup(t2, e, n, s).next((i) => { + const r = s - i.size > 0 ? this.documentOverlayCache.getOverlaysForCollectionGroup(t2, e, n.largestBatchId, s - i.size) : At.resolve(as()); + let o = -1, u = i; + return r.next((e2) => At.forEach(e2, (e3, n2) => (o < n2.largestBatchId && (o = n2.largestBatchId), i.get(e3) ? At.resolve() : this.remoteDocumentCache.getEntry(t2, e3).next((t3) => { + u = u.insert(e3, t3); + }))).next(() => this.populateOverlays(t2, e2, i)).next(() => this.computeViews(t2, u, e2, ws())).next((t3) => ({ + batchId: o, + changes: cs(t3) + }))); + }); + } + getDocumentsMatchingDocumentQuery(t2, e) { + return this.getDocument(t2, new ct(e)).next((t3) => { + let e2 = us(); + return t3.isFoundDocument() && (e2 = e2.insert(t3.key, t3)), e2; + }); + } + getDocumentsMatchingCollectionGroupQuery(t2, e, n) { + const s = e.collectionGroup; + let i = us(); + return this.indexManager.getCollectionParents(t2, s).next((r) => At.forEach(r, (r2) => { + const o = function(t3, e2) { + return new Bn( + e2, + null, + t3.explicitOrderBy.slice(), + t3.filters.slice(), + t3.limit, + t3.limitType, + t3.startAt, + t3.endAt + ); + }(e, r2.child(s)); + return this.getDocumentsMatchingCollectionQuery(t2, o, n).next((t3) => { + t3.forEach((t4, e2) => { + i = i.insert(t4, e2); + }); + }); + }).next(() => i)); + } + getDocumentsMatchingCollectionQuery(t2, e, n) { + let s; + return this.documentOverlayCache.getOverlaysForCollection(t2, e.path, n.largestBatchId).next((i) => (s = i, this.remoteDocumentCache.getDocumentsMatchingQuery(t2, e, n, s))).next((t3) => { + s.forEach((e2, n3) => { + const s2 = n3.getKey(); + null === t3.get(s2) && (t3 = t3.insert(s2, on.newInvalidDocument(s2))); + }); + let n2 = us(); + return t3.forEach((t4, i) => { + const r = s.get(t4); + void 0 !== r && Ls(r.mutation, i, Ae.empty(), nt.now()), Xn(e, i) && (n2 = n2.insert(t4, i)); + }), n2; + }); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class bo { + constructor(t2) { + this.serializer = t2, this.Zn = /* @__PURE__ */ new Map(), this.Xn = /* @__PURE__ */ new Map(); + } + getBundleMetadata(t2, e) { + return At.resolve(this.Zn.get(e)); + } + saveBundleMetadata(t2, e) { + var n; + return this.Zn.set(e.id, { + id: (n = e).id, + version: n.version, + createTime: vi(n.createTime) + }), At.resolve(); + } + getNamedQuery(t2, e) { + return At.resolve(this.Xn.get(e)); + } + saveNamedQuery(t2, e) { + return this.Xn.set(e.name, function(t3) { + return { + name: t3.name, + query: hr(t3.bundledQuery), + readTime: vi(t3.readTime) + }; + }(e)), At.resolve(); + } +} +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Po { + constructor() { + this.overlays = new ge(ct.comparator), this.ts = /* @__PURE__ */ new Map(); + } + getOverlay(t2, e) { + return At.resolve(this.overlays.get(e)); + } + getOverlays(t2, e) { + const n = as(); + return At.forEach(e, (e2) => this.getOverlay(t2, e2).next((t3) => { + null !== t3 && n.set(e2, t3); + })).next(() => n); + } + saveOverlays(t2, e, n) { + return n.forEach((n2, s) => { + this.re(t2, e, s); + }), At.resolve(); + } + removeOverlaysForBatchId(t2, e, n) { + const s = this.ts.get(n); + return void 0 !== s && (s.forEach((t3) => this.overlays = this.overlays.remove(t3)), this.ts.delete(n)), At.resolve(); + } + getOverlaysForCollection(t2, e, n) { + const s = as(), i = e.length + 1, r = new ct(e.child("")), o = this.overlays.getIteratorFrom(r); + for (; o.hasNext(); ) { + const t3 = o.getNext().value, r2 = t3.getKey(); + if (!e.isPrefixOf(r2.path)) + break; + r2.path.length === i && (t3.largestBatchId > n && s.set(t3.getKey(), t3)); + } + return At.resolve(s); + } + getOverlaysForCollectionGroup(t2, e, n, s) { + let i = new ge((t3, e2) => t3 - e2); + const r = this.overlays.getIterator(); + for (; r.hasNext(); ) { + const t3 = r.getNext().value; + if (t3.getKey().getCollectionGroup() === e && t3.largestBatchId > n) { + let e2 = i.get(t3.largestBatchId); + null === e2 && (e2 = as(), i = i.insert(t3.largestBatchId, e2)), e2.set(t3.getKey(), t3); + } + } + const o = as(), u = i.getIterator(); + for (; u.hasNext(); ) { + if (u.getNext().value.forEach((t3, e2) => o.set(t3, e2)), o.size() >= s) + break; + } + return At.resolve(o); + } + re(t2, e, n) { + const s = this.overlays.get(n.key); + if (null !== s) { + const t3 = this.ts.get(s.largestBatchId).delete(n.key); + this.ts.set(s.largestBatchId, t3); + } + this.overlays = this.overlays.insert(n.key, new Zs(e, n)); + let i = this.ts.get(e); + void 0 === i && (i = ws(), this.ts.set(e, i)), this.ts.set(e, i.add(n.key)); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Vo { + constructor() { + this.es = new Ie(So.ns), this.ss = new Ie(So.rs); + } + isEmpty() { + return this.es.isEmpty(); + } + addReference(t2, e) { + const n = new So(t2, e); + this.es = this.es.add(n), this.ss = this.ss.add(n); + } + os(t2, e) { + t2.forEach((t3) => this.addReference(t3, e)); + } + removeReference(t2, e) { + this.us(new So(t2, e)); + } + cs(t2, e) { + t2.forEach((t3) => this.removeReference(t3, e)); + } + hs(t2) { + const e = new ct(new rt([])), n = new So(e, t2), s = new So(e, t2 + 1), i = []; + return this.ss.forEachInRange([n, s], (t3) => { + this.us(t3), i.push(t3.key); + }), i; + } + ls() { + this.es.forEach((t2) => this.us(t2)); + } + us(t2) { + this.es = this.es.delete(t2), this.ss = this.ss.delete(t2); + } + fs(t2) { + const e = new ct(new rt([])), n = new So(e, t2), s = new So(e, t2 + 1); + let i = ws(); + return this.ss.forEachInRange([n, s], (t3) => { + i = i.add(t3.key); + }), i; + } + containsKey(t2) { + const e = new So(t2, 0), n = this.es.firstAfterOrEqual(e); + return null !== n && t2.isEqual(n.key); + } +} +class So { + constructor(t2, e) { + this.key = t2, this.ds = e; + } + static ns(t2, e) { + return ct.comparator(t2.key, e.key) || X(t2.ds, e.ds); + } + static rs(t2, e) { + return X(t2.ds, e.ds) || ct.comparator(t2.key, e.key); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Do { + constructor(t2, e) { + this.indexManager = t2, this.referenceDelegate = e, this.mutationQueue = [], this.ws = 1, this._s = new Ie(So.ns); + } + checkEmpty(t2) { + return At.resolve(0 === this.mutationQueue.length); + } + addMutationBatch(t2, e, n, s) { + const i = this.ws; + this.ws++, this.mutationQueue.length > 0 && this.mutationQueue[this.mutationQueue.length - 1]; + const r = new Js(i, e, n, s); + this.mutationQueue.push(r); + for (const e2 of s) + this._s = this._s.add(new So(e2.key, i)), this.indexManager.addToCollectionParentIndex(t2, e2.key.path.popLast()); + return At.resolve(r); + } + lookupMutationBatch(t2, e) { + return At.resolve(this.gs(e)); + } + getNextMutationBatchAfterBatchId(t2, e) { + const n = e + 1, s = this.ys(n), i = s < 0 ? 0 : s; + return At.resolve(this.mutationQueue.length > i ? this.mutationQueue[i] : null); + } + getHighestUnacknowledgedBatchId() { + return At.resolve(0 === this.mutationQueue.length ? -1 : this.ws - 1); + } + getAllMutationBatches(t2) { + return At.resolve(this.mutationQueue.slice()); + } + getAllMutationBatchesAffectingDocumentKey(t2, e) { + const n = new So(e, 0), s = new So(e, Number.POSITIVE_INFINITY), i = []; + return this._s.forEachInRange([n, s], (t3) => { + const e2 = this.gs(t3.ds); + i.push(e2); + }), At.resolve(i); + } + getAllMutationBatchesAffectingDocumentKeys(t2, e) { + let n = new Ie(X); + return e.forEach((t3) => { + const e2 = new So(t3, 0), s = new So(t3, Number.POSITIVE_INFINITY); + this._s.forEachInRange([e2, s], (t4) => { + n = n.add(t4.ds); + }); + }), At.resolve(this.ps(n)); + } + getAllMutationBatchesAffectingQuery(t2, e) { + const n = e.path, s = n.length + 1; + let i = n; + ct.isDocumentKey(i) || (i = i.child("")); + const r = new So(new ct(i), 0); + let o = new Ie(X); + return this._s.forEachWhile((t3) => { + const e2 = t3.key.path; + return !!n.isPrefixOf(e2) && (e2.length === s && (o = o.add(t3.ds)), true); + }, r), At.resolve(this.ps(o)); + } + ps(t2) { + const e = []; + return t2.forEach((t3) => { + const n = this.gs(t3); + null !== n && e.push(n); + }), e; + } + removeMutationBatch(t2, e) { + $(0 === this.Is(e.batchId, "removed")), this.mutationQueue.shift(); + let n = this._s; + return At.forEach(e.mutations, (s) => { + const i = new So(s.key, e.batchId); + return n = n.delete(i), this.referenceDelegate.markPotentiallyOrphaned(t2, s.key); + }).next(() => { + this._s = n; + }); + } + En(t2) { + } + containsKey(t2, e) { + const n = new So(e, 0), s = this._s.firstAfterOrEqual(n); + return At.resolve(e.isEqual(s && s.key)); + } + performConsistencyCheck(t2) { + return this.mutationQueue.length, At.resolve(); + } + Is(t2, e) { + return this.ys(t2); + } + ys(t2) { + if (0 === this.mutationQueue.length) + return 0; + return t2 - this.mutationQueue[0].batchId; + } + gs(t2) { + const e = this.ys(t2); + if (e < 0 || e >= this.mutationQueue.length) + return null; + return this.mutationQueue[e]; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Co { + constructor(t2) { + this.Ts = t2, this.docs = new ge(ct.comparator), this.size = 0; + } + setIndexManager(t2) { + this.indexManager = t2; + } + addEntry(t2, e) { + const n = e.key, s = this.docs.get(n), i = s ? s.size : 0, r = this.Ts(e); + return this.docs = this.docs.insert(n, { + document: e.mutableCopy(), + size: r + }), this.size += r - i, this.indexManager.addToCollectionParentIndex(t2, n.path.popLast()); + } + removeEntry(t2) { + const e = this.docs.get(t2); + e && (this.docs = this.docs.remove(t2), this.size -= e.size); + } + getEntry(t2, e) { + const n = this.docs.get(e); + return At.resolve(n ? n.document.mutableCopy() : on.newInvalidDocument(e)); + } + getEntries(t2, e) { + let n = rs(); + return e.forEach((t3) => { + const e2 = this.docs.get(t3); + n = n.insert(t3, e2 ? e2.document.mutableCopy() : on.newInvalidDocument(t3)); + }), At.resolve(n); + } + getDocumentsMatchingQuery(t2, e, n, s) { + let i = rs(); + const r = e.path, o = new ct(r.child("")), u = this.docs.getIteratorFrom(o); + for (; u.hasNext(); ) { + const { key: t3, value: { document: o2 } } = u.getNext(); + if (!r.isPrefixOf(t3.path)) + break; + t3.path.length > r.length + 1 || (pt(gt(o2), n) <= 0 || (s.has(o2.key) || Xn(e, o2)) && (i = i.insert(o2.key, o2.mutableCopy()))); + } + return At.resolve(i); + } + getAllFromCollectionGroup(t2, e, n, s) { + O(); + } + Es(t2, e) { + return At.forEach(this.docs, (t3) => e(t3)); + } + newChangeBuffer(t2) { + return new xo(this); + } + getSize(t2) { + return At.resolve(this.size); + } +} +class xo extends _o { + constructor(t2) { + super(), this.Jn = t2; + } + applyChanges(t2) { + const e = []; + return this.changes.forEach((n, s) => { + s.isValidDocument() ? e.push(this.Jn.addEntry(t2, s)) : this.Jn.removeEntry(n); + }), At.waitFor(e); + } + getFromCache(t2, e) { + return this.Jn.getEntry(t2, e); + } + getAllFromCache(t2, e) { + return this.Jn.getEntries(t2, e); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class No { + constructor(t2) { + this.persistence = t2, this.As = new ss((t3) => Nn(t3), kn), this.lastRemoteSnapshotVersion = st.min(), this.highestTargetId = 0, this.Rs = 0, this.vs = new Vo(), this.targetCount = 0, this.bs = so.vn(); + } + forEachTarget(t2, e) { + return this.As.forEach((t3, n) => e(n)), At.resolve(); + } + getLastRemoteSnapshotVersion(t2) { + return At.resolve(this.lastRemoteSnapshotVersion); + } + getHighestSequenceNumber(t2) { + return At.resolve(this.Rs); + } + allocateTargetId(t2) { + return this.highestTargetId = this.bs.next(), At.resolve(this.highestTargetId); + } + setTargetsMetadata(t2, e, n) { + return n && (this.lastRemoteSnapshotVersion = n), e > this.Rs && (this.Rs = e), At.resolve(); + } + Sn(t2) { + this.As.set(t2.target, t2); + const e = t2.targetId; + e > this.highestTargetId && (this.bs = new so(e), this.highestTargetId = e), t2.sequenceNumber > this.Rs && (this.Rs = t2.sequenceNumber); + } + addTargetData(t2, e) { + return this.Sn(e), this.targetCount += 1, At.resolve(); + } + updateTargetData(t2, e) { + return this.Sn(e), At.resolve(); + } + removeTargetData(t2, e) { + return this.As.delete(e.target), this.vs.hs(e.targetId), this.targetCount -= 1, At.resolve(); + } + removeTargets(t2, e, n) { + let s = 0; + const i = []; + return this.As.forEach((r, o) => { + o.sequenceNumber <= e && null === n.get(o.targetId) && (this.As.delete(r), i.push(this.removeMatchingKeysForTargetId(t2, o.targetId)), s++); + }), At.waitFor(i).next(() => s); + } + getTargetCount(t2) { + return At.resolve(this.targetCount); + } + getTargetData(t2, e) { + const n = this.As.get(e) || null; + return At.resolve(n); + } + addMatchingKeys(t2, e, n) { + return this.vs.os(e, n), At.resolve(); + } + removeMatchingKeys(t2, e, n) { + this.vs.cs(e, n); + const s = this.persistence.referenceDelegate, i = []; + return s && e.forEach((e2) => { + i.push(s.markPotentiallyOrphaned(t2, e2)); + }), At.waitFor(i); + } + removeMatchingKeysForTargetId(t2, e) { + return this.vs.hs(e), At.resolve(); + } + getMatchingKeysForTargetId(t2, e) { + const n = this.vs.fs(e); + return At.resolve(n); + } + containsKey(t2, e) { + return At.resolve(this.vs.containsKey(e)); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ko { + constructor(t2, e) { + this.Ps = {}, this.overlays = {}, this.Vs = new Ot(0), this.Ss = false, this.Ss = true, this.referenceDelegate = t2(this), this.Ds = new No(this); + this.indexManager = new Br(), this.remoteDocumentCache = function(t3) { + return new Co(t3); + }((t3) => this.referenceDelegate.Cs(t3)), this.serializer = new er(e), this.xs = new bo(this.serializer); + } + start() { + return Promise.resolve(); + } + shutdown() { + return this.Ss = false, Promise.resolve(); + } + get started() { + return this.Ss; + } + setDatabaseDeletedListener() { + } + setNetworkEnabled() { + } + getIndexManager(t2) { + return this.indexManager; + } + getDocumentOverlayCache(t2) { + let e = this.overlays[t2.toKey()]; + return e || (e = new Po(), this.overlays[t2.toKey()] = e), e; + } + getMutationQueue(t2, e) { + let n = this.Ps[t2.toKey()]; + return n || (n = new Do(e, this.referenceDelegate), this.Ps[t2.toKey()] = n), n; + } + getTargetCache() { + return this.Ds; + } + getRemoteDocumentCache() { + return this.remoteDocumentCache; + } + getBundleCache() { + return this.xs; + } + runTransaction(t2, e, n) { + C("MemoryPersistence", "Starting transaction:", t2); + const s = new Oo(this.Vs.next()); + return this.referenceDelegate.Ns(), n(s).next((t3) => this.referenceDelegate.ks(s).next(() => t3)).toPromise().then((t3) => (s.raiseOnCommittedEvent(), t3)); + } + Os(t2, e) { + return At.or(Object.values(this.Ps).map((n) => () => n.containsKey(t2, e))); + } +} +class Oo extends Tt { + constructor(t2) { + super(), this.currentSequenceNumber = t2; + } +} +class $o { + constructor(t2) { + this.persistence = t2, this.$s = new Vo(), this.Ms = null; + } + static Fs(t2) { + return new $o(t2); + } + get Bs() { + if (this.Ms) + return this.Ms; + throw O(); + } + addReference(t2, e, n) { + return this.$s.addReference(n, e), this.Bs.delete(n.toString()), At.resolve(); + } + removeReference(t2, e, n) { + return this.$s.removeReference(n, e), this.Bs.add(n.toString()), At.resolve(); + } + markPotentiallyOrphaned(t2, e) { + return this.Bs.add(e.toString()), At.resolve(); + } + removeTarget(t2, e) { + this.$s.hs(e.targetId).forEach((t3) => this.Bs.add(t3.toString())); + const n = this.persistence.getTargetCache(); + return n.getMatchingKeysForTargetId(t2, e.targetId).next((t3) => { + t3.forEach((t4) => this.Bs.add(t4.toString())); + }).next(() => n.removeTargetData(t2, e)); + } + Ns() { + this.Ms = /* @__PURE__ */ new Set(); + } + ks(t2) { + const e = this.persistence.getRemoteDocumentCache().newChangeBuffer(); + return At.forEach(this.Bs, (n) => { + const s = ct.fromPath(n); + return this.Ls(t2, s).next((t3) => { + t3 || e.removeEntry(s, st.min()); + }); + }).next(() => (this.Ms = null, e.apply(t2))); + } + updateLimboDocument(t2, e) { + return this.Ls(t2, e).next((t3) => { + t3 ? this.Bs.delete(e.toString()) : this.Bs.add(e.toString()); + }); + } + Cs(t2) { + return 0; + } + Ls(t2, e) { + return At.or([() => At.resolve(this.$s.containsKey(e)), () => this.persistence.getTargetCache().containsKey(t2, e), () => this.persistence.Os(t2, e)]); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Go { + constructor(t2, e, n, s) { + this.targetId = t2, this.fromCache = e, this.Vi = n, this.Si = s; + } + static Di(t2, e) { + let n = ws(), s = ws(); + for (const t3 of e.docChanges) + switch (t3.type) { + case 0: + n = n.add(t3.doc.key); + break; + case 1: + s = s.add(t3.doc.key); + } + return new Go(t2, e.fromCache, n, s); + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Qo { + constructor() { + this.Ci = false; + } + initialize(t2, e) { + this.xi = t2, this.indexManager = e, this.Ci = true; + } + getDocumentsMatchingQuery(t2, e, n, s) { + return this.Ni(t2, e).next((i) => i || this.ki(t2, e, s, n)).next((n2) => n2 || this.Oi(t2, e)); + } + Ni(t2, e) { + if (Un(e)) + return At.resolve(null); + let n = jn(e); + return this.indexManager.getIndexType(t2, n).next((s) => 0 === s ? null : (null !== e.limit && 1 === s && (e = Hn(e, null, "F"), n = jn(e)), this.indexManager.getDocumentsMatchingTarget(t2, n).next((s2) => { + const i = ws(...s2); + return this.xi.getDocuments(t2, i).next((s3) => this.indexManager.getMinOffset(t2, n).next((n2) => { + const r = this.$i(e, s3); + return this.Mi(e, r, i, n2.readTime) ? this.Ni(t2, Hn(e, null, "F")) : this.Fi(t2, r, e, n2); + })); + }))); + } + ki(t2, e, n, s) { + return Un(e) || s.isEqual(st.min()) ? this.Oi(t2, e) : this.xi.getDocuments(t2, n).next((i) => { + const r = this.$i(e, i); + return this.Mi(e, r, n, s) ? this.Oi(t2, e) : (S() <= LogLevel.DEBUG && C("QueryEngine", "Re-using previous result from %s to execute query: %s", s.toString(), Zn(e)), this.Fi(t2, r, e, mt(s, -1))); + }); + } + $i(t2, e) { + let n = new Ie(es(t2)); + return e.forEach((e2, s) => { + Xn(t2, s) && (n = n.add(s)); + }), n; + } + Mi(t2, e, n, s) { + if (null === t2.limit) + return false; + if (n.size !== e.size) + return true; + const i = "F" === t2.limitType ? e.last() : e.first(); + return !!i && (i.hasPendingWrites || i.version.compareTo(s) > 0); + } + Oi(t2, e) { + return S() <= LogLevel.DEBUG && C("QueryEngine", "Using full collection scan to execute query:", Zn(e)), this.xi.getDocumentsMatchingQuery(t2, e, yt.min()); + } + Fi(t2, e, n, s) { + return this.xi.getDocumentsMatchingQuery(t2, n, s).next((t3) => (e.forEach((e2) => { + t3 = t3.insert(e2.key, e2); + }), t3)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class zo { + constructor(t2, e, n, s) { + this.persistence = t2, this.Bi = e, this.serializer = s, this.Li = new ge(X), this.qi = new ss((t3) => Nn(t3), kn), this.Ui = /* @__PURE__ */ new Map(), this.Ki = t2.getRemoteDocumentCache(), this.Ds = t2.getTargetCache(), this.xs = t2.getBundleCache(), this.Gi(n); + } + Gi(t2) { + this.documentOverlayCache = this.persistence.getDocumentOverlayCache(t2), this.indexManager = this.persistence.getIndexManager(t2), this.mutationQueue = this.persistence.getMutationQueue(t2, this.indexManager), this.localDocuments = new vo(this.Ki, this.mutationQueue, this.documentOverlayCache, this.indexManager), this.Ki.setIndexManager(this.indexManager), this.Bi.initialize(this.localDocuments, this.indexManager); + } + collectGarbage(t2) { + return this.persistence.runTransaction("Collect garbage", "readwrite-primary", (e) => t2.collect(e, this.Li)); + } +} +function jo(t2, e, n, s) { + return new zo(t2, e, n, s); +} +async function Wo(t2, e) { + const n = F(t2); + return await n.persistence.runTransaction("Handle user change", "readonly", (t3) => { + let s; + return n.mutationQueue.getAllMutationBatches(t3).next((i) => (s = i, n.Gi(e), n.mutationQueue.getAllMutationBatches(t3))).next((e2) => { + const i = [], r = []; + let o = ws(); + for (const t4 of s) { + i.push(t4.batchId); + for (const e3 of t4.mutations) + o = o.add(e3.key); + } + for (const t4 of e2) { + r.push(t4.batchId); + for (const e3 of t4.mutations) + o = o.add(e3.key); + } + return n.localDocuments.getDocuments(t3, o).next((t4) => ({ + Qi: t4, + removedBatchIds: i, + addedBatchIds: r + })); + }); + }); +} +function Ho(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Acknowledge batch", "readwrite-primary", (t3) => { + const s = e.batch.keys(), i = n.Ki.newChangeBuffer({ + trackRemovals: true + }); + return function(t4, e2, n2, s2) { + const i2 = n2.batch, r = i2.keys(); + let o = At.resolve(); + return r.forEach((t5) => { + o = o.next(() => s2.getEntry(e2, t5)).next((e3) => { + const r2 = n2.docVersions.get(t5); + $(null !== r2), e3.version.compareTo(r2) < 0 && (i2.applyToRemoteDocument(e3, n2), e3.isValidDocument() && (e3.setReadTime(n2.commitVersion), s2.addEntry(e3))); + }); + }), o.next(() => t4.mutationQueue.removeMutationBatch(e2, i2)); + }(n, t3, e, i).next(() => i.apply(t3)).next(() => n.mutationQueue.performConsistencyCheck(t3)).next(() => n.documentOverlayCache.removeOverlaysForBatchId(t3, s, e.batch.batchId)).next(() => n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t3, function(t4) { + let e2 = ws(); + for (let n2 = 0; n2 < t4.mutationResults.length; ++n2) { + t4.mutationResults[n2].transformResults.length > 0 && (e2 = e2.add(t4.batch.mutations[n2].key)); + } + return e2; + }(e))).next(() => n.localDocuments.getDocuments(t3, s)); + }); +} +function Jo(t2) { + const e = F(t2); + return e.persistence.runTransaction("Get last remote snapshot version", "readonly", (t3) => e.Ds.getLastRemoteSnapshotVersion(t3)); +} +function Yo(t2, e) { + const n = F(t2), s = e.snapshotVersion; + let i = n.Li; + return n.persistence.runTransaction("Apply remote event", "readwrite-primary", (t3) => { + const r = n.Ki.newChangeBuffer({ + trackRemovals: true + }); + i = n.Li; + const o = []; + e.targetChanges.forEach((r2, u2) => { + const c2 = i.get(u2); + if (!c2) + return; + o.push(n.Ds.removeMatchingKeys(t3, r2.removedDocuments, u2).next(() => n.Ds.addMatchingKeys(t3, r2.addedDocuments, u2))); + let a = c2.withSequenceNumber(t3.currentSequenceNumber); + e.targetMismatches.has(u2) ? a = a.withResumeToken(be.EMPTY_BYTE_STRING, st.min()).withLastLimboFreeSnapshotVersion(st.min()) : r2.resumeToken.approximateByteSize() > 0 && (a = a.withResumeToken(r2.resumeToken, s)), i = i.insert(u2, a), function(t4, e2, n2) { + if (0 === t4.resumeToken.approximateByteSize()) + return true; + if (e2.snapshotVersion.toMicroseconds() - t4.snapshotVersion.toMicroseconds() >= 3e8) + return true; + return n2.addedDocuments.size + n2.modifiedDocuments.size + n2.removedDocuments.size > 0; + }(c2, a, r2) && o.push(n.Ds.updateTargetData(t3, a)); + }); + let u = rs(), c = ws(); + if (e.documentUpdates.forEach((s2) => { + e.resolvedLimboDocuments.has(s2) && o.push(n.persistence.referenceDelegate.updateLimboDocument(t3, s2)); + }), o.push(Zo(t3, r, e.documentUpdates).next((t4) => { + u = t4.zi, c = t4.ji; + })), !s.isEqual(st.min())) { + const e2 = n.Ds.getLastRemoteSnapshotVersion(t3).next((e3) => n.Ds.setTargetsMetadata(t3, t3.currentSequenceNumber, s)); + o.push(e2); + } + return At.waitFor(o).next(() => r.apply(t3)).next(() => n.localDocuments.getLocalViewOfDocuments(t3, u, c)).next(() => u); + }).then((t3) => (n.Li = i, t3)); +} +function Zo(t2, e, n) { + let s = ws(), i = ws(); + return n.forEach((t3) => s = s.add(t3)), e.getEntries(t2, s).next((t3) => { + let s2 = rs(); + return n.forEach((n2, r) => { + const o = t3.get(n2); + r.isFoundDocument() !== o.isFoundDocument() && (i = i.add(n2)), r.isNoDocument() && r.version.isEqual(st.min()) ? (e.removeEntry(n2, r.readTime), s2 = s2.insert(n2, r)) : !o.isValidDocument() || r.version.compareTo(o.version) > 0 || 0 === r.version.compareTo(o.version) && o.hasPendingWrites ? (e.addEntry(r), s2 = s2.insert(n2, r)) : C("LocalStore", "Ignoring outdated watch update for ", n2, ". Current version:", o.version, " Watch version:", r.version); + }), { + zi: s2, + ji: i + }; + }); +} +function Xo(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Get next mutation batch", "readonly", (t3) => (void 0 === e && (e = -1), n.mutationQueue.getNextMutationBatchAfterBatchId(t3, e))); +} +function tu(t2, e) { + const n = F(t2); + return n.persistence.runTransaction("Allocate target", "readwrite", (t3) => { + let s; + return n.Ds.getTargetData(t3, e).next((i) => i ? (s = i, At.resolve(s)) : n.Ds.allocateTargetId(t3).next((i2) => (s = new tr(e, i2, 0, t3.currentSequenceNumber), n.Ds.addTargetData(t3, s).next(() => s)))); + }).then((t3) => { + const s = n.Li.get(t3.targetId); + return (null === s || t3.snapshotVersion.compareTo(s.snapshotVersion) > 0) && (n.Li = n.Li.insert(t3.targetId, t3), n.qi.set(e, t3.targetId)), t3; + }); +} +async function eu(t2, e, n) { + const s = F(t2), i = s.Li.get(e), r = n ? "readwrite" : "readwrite-primary"; + try { + n || await s.persistence.runTransaction("Release target", r, (t3) => s.persistence.referenceDelegate.removeTarget(t3, i)); + } catch (t3) { + if (!Vt(t3)) + throw t3; + C("LocalStore", `Failed to update sequence numbers for target ${e}: ${t3}`); + } + s.Li = s.Li.remove(e), s.qi.delete(i.target); +} +function nu(t2, e, n) { + const s = F(t2); + let i = st.min(), r = ws(); + return s.persistence.runTransaction("Execute query", "readonly", (t3) => function(t4, e2, n2) { + const s2 = F(t4), i2 = s2.qi.get(n2); + return void 0 !== i2 ? At.resolve(s2.Li.get(i2)) : s2.Ds.getTargetData(e2, n2); + }(s, t3, jn(e)).next((e2) => { + if (e2) + return i = e2.lastLimboFreeSnapshotVersion, s.Ds.getMatchingKeysForTargetId(t3, e2.targetId).next((t4) => { + r = t4; + }); + }).next(() => s.Bi.getDocumentsMatchingQuery(t3, e, n ? i : st.min(), n ? r : ws())).next((t4) => (ru(s, ts(e), t4), { + documents: t4, + Wi: r + }))); +} +function ru(t2, e, n) { + let s = t2.Ui.get(e) || st.min(); + n.forEach((t3, e2) => { + e2.readTime.compareTo(s) > 0 && (s = e2.readTime); + }), t2.Ui.set(e, s); +} +class _u { + constructor() { + this.activeTargetIds = ms(); + } + tr(t2) { + this.activeTargetIds = this.activeTargetIds.add(t2); + } + er(t2) { + this.activeTargetIds = this.activeTargetIds.delete(t2); + } + Xi() { + const t2 = { + activeTargetIds: this.activeTargetIds.toArray(), + updateTimeMs: Date.now() + }; + return JSON.stringify(t2); + } +} +class gu { + constructor() { + this.Br = new _u(), this.Lr = {}, this.onlineStateHandler = null, this.sequenceNumberHandler = null; + } + addPendingMutation(t2) { + } + updateMutationState(t2, e, n) { + } + addLocalQueryTarget(t2) { + return this.Br.tr(t2), this.Lr[t2] || "not-current"; + } + updateQueryState(t2, e, n) { + this.Lr[t2] = e; + } + removeLocalQueryTarget(t2) { + this.Br.er(t2); + } + isLocalQueryTarget(t2) { + return this.Br.activeTargetIds.has(t2); + } + clearQueryState(t2) { + delete this.Lr[t2]; + } + getAllActiveQueryTargets() { + return this.Br.activeTargetIds; + } + isActiveQueryTarget(t2) { + return this.Br.activeTargetIds.has(t2); + } + start() { + return this.Br = new _u(), Promise.resolve(); + } + handleUserChange(t2, e, n) { + } + setOnlineState(t2) { + } + shutdown() { + } + writeSequenceNumber(t2) { + } + notifyBundleLoaded(t2) { + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class yu { + qr(t2) { + } + shutdown() { + } +} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class pu { + constructor() { + this.Ur = () => this.Kr(), this.Gr = () => this.Qr(), this.zr = [], this.jr(); + } + qr(t2) { + this.zr.push(t2); + } + shutdown() { + window.removeEventListener("online", this.Ur), window.removeEventListener("offline", this.Gr); + } + jr() { + window.addEventListener("online", this.Ur), window.addEventListener("offline", this.Gr); + } + Kr() { + C("ConnectivityMonitor", "Network connectivity changed: AVAILABLE"); + for (const t2 of this.zr) + t2(0); + } + Qr() { + C("ConnectivityMonitor", "Network connectivity changed: UNAVAILABLE"); + for (const t2 of this.zr) + t2(1); + } + static D() { + return "undefined" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener; + } +} +/** + * @license + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +let Iu = null; +function Tu() { + return null === Iu ? Iu = 268435456 + Math.round(2147483648 * Math.random()) : Iu++, "0x" + Iu.toString(16); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Eu = { + BatchGetDocuments: "batchGet", + Commit: "commit", + RunQuery: "runQuery", + RunAggregationQuery: "runAggregationQuery" +}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Au { + constructor(t2) { + this.Wr = t2.Wr, this.Hr = t2.Hr; + } + Jr(t2) { + this.Yr = t2; + } + Zr(t2) { + this.Xr = t2; + } + onMessage(t2) { + this.eo = t2; + } + close() { + this.Hr(); + } + send(t2) { + this.Wr(t2); + } + no() { + this.Yr(); + } + so(t2) { + this.Xr(t2); + } + io(t2) { + this.eo(t2); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Ru = "WebChannelConnection"; +class vu extends class { + constructor(t2) { + this.databaseInfo = t2, this.databaseId = t2.databaseId; + const e = t2.ssl ? "https" : "http"; + this.ro = e + "://" + t2.host, this.oo = "projects/" + this.databaseId.projectId + "/databases/" + this.databaseId.database + "/documents"; + } + get uo() { + return false; + } + co(t2, e, n, s, i) { + const r = Tu(), o = this.ao(t2, e); + C("RestConnection", `Sending RPC '${t2}' ${r}:`, o, n); + const u = {}; + return this.ho(u, s, i), this.lo(t2, o, u, n).then((e2) => (C("RestConnection", `Received RPC '${t2}' ${r}: `, e2), e2), (e2) => { + throw N("RestConnection", `RPC '${t2}' ${r} failed with error: `, e2, "url: ", o, "request:", n), e2; + }); + } + fo(t2, e, n, s, i, r) { + return this.co(t2, e, n, s, i); + } + ho(t2, e, n) { + t2["X-Goog-Api-Client"] = "gl-js/ fire/" + P, t2["Content-Type"] = "text/plain", this.databaseInfo.appId && (t2["X-Firebase-GMPID"] = this.databaseInfo.appId), e && e.headers.forEach((e2, n2) => t2[n2] = e2), n && n.headers.forEach((e2, n2) => t2[n2] = e2); + } + ao(t2, e) { + const n = Eu[t2]; + return `${this.ro}/v1/${e}:${n}`; + } +} { + constructor(t2) { + super(t2), this.forceLongPolling = t2.forceLongPolling, this.autoDetectLongPolling = t2.autoDetectLongPolling, this.useFetchStreams = t2.useFetchStreams; + } + lo(t2, e, n, s) { + const i = Tu(); + return new Promise((r, o) => { + const u = new XhrIo(); + u.setWithCredentials(true), u.listenOnce(EventType.COMPLETE, () => { + try { + switch (u.getLastErrorCode()) { + case ErrorCode.NO_ERROR: + const e2 = u.getResponseJson(); + C(Ru, `XHR for RPC '${t2}' ${i} received:`, JSON.stringify(e2)), r(e2); + break; + case ErrorCode.TIMEOUT: + C(Ru, `RPC '${t2}' ${i} timed out`), o(new L(B.DEADLINE_EXCEEDED, "Request time out")); + break; + case ErrorCode.HTTP_ERROR: + const n2 = u.getStatus(); + if (C(Ru, `RPC '${t2}' ${i} failed with status:`, n2, "response text:", u.getResponseText()), n2 > 0) { + let t3 = u.getResponseJson(); + Array.isArray(t3) && (t3 = t3[0]); + const e3 = null == t3 ? void 0 : t3.error; + if (e3 && e3.status && e3.message) { + const t4 = function(t5) { + const e4 = t5.toLowerCase().replace(/_/g, "-"); + return Object.values(B).indexOf(e4) >= 0 ? e4 : B.UNKNOWN; + }(e3.status); + o(new L(t4, e3.message)); + } else + o(new L(B.UNKNOWN, "Server responded with status " + u.getStatus())); + } else + o(new L(B.UNAVAILABLE, "Connection failed.")); + break; + default: + O(); + } + } finally { + C(Ru, `RPC '${t2}' ${i} completed.`); + } + }); + const c = JSON.stringify(s); + C(Ru, `RPC '${t2}' ${i} sending request:`, s), u.send(e, "POST", c, n, 15); + }); + } + wo(t2, e, n) { + const s = Tu(), i = [this.ro, "/", "google.firestore.v1.Firestore", "/", t2, "/channel"], r = createWebChannelTransport(), o = getStatEventTarget(), u = { + httpSessionIdParam: "gsessionid", + initMessageHeaders: {}, + messageUrlParams: { + database: `projects/${this.databaseId.projectId}/databases/${this.databaseId.database}` + }, + sendRawJson: true, + supportsCrossDomainXhr: true, + internalChannelParams: { + forwardChannelRequestTimeoutMs: 6e5 + }, + forceLongPolling: this.forceLongPolling, + detectBufferingProxy: this.autoDetectLongPolling + }; + this.useFetchStreams && (u.xmlHttpFactory = new FetchXmlHttpFactory({})), this.ho(u.initMessageHeaders, e, n), u.encodeInitMessageHeaders = true; + const c = i.join(""); + C(Ru, `Creating RPC '${t2}' stream ${s}: ${c}`, u); + const a = r.createWebChannel(c, u); + let h = false, l2 = false; + const f = new Au({ + Wr: (e2) => { + l2 ? C(Ru, `Not sending because RPC '${t2}' stream ${s} is closed:`, e2) : (h || (C(Ru, `Opening RPC '${t2}' stream ${s} transport.`), a.open(), h = true), C(Ru, `RPC '${t2}' stream ${s} sending:`, e2), a.send(e2)); + }, + Hr: () => a.close() + }), d = (t3, e2, n2) => { + t3.listen(e2, (t4) => { + try { + n2(t4); + } catch (t5) { + setTimeout(() => { + throw t5; + }, 0); + } + }); + }; + return d(a, WebChannel.EventType.OPEN, () => { + l2 || C(Ru, `RPC '${t2}' stream ${s} transport opened.`); + }), d(a, WebChannel.EventType.CLOSE, () => { + l2 || (l2 = true, C(Ru, `RPC '${t2}' stream ${s} transport closed`), f.so()); + }), d(a, WebChannel.EventType.ERROR, (e2) => { + l2 || (l2 = true, N(Ru, `RPC '${t2}' stream ${s} transport errored:`, e2), f.so(new L(B.UNAVAILABLE, "The operation could not be completed"))); + }), d(a, WebChannel.EventType.MESSAGE, (e2) => { + var n2; + if (!l2) { + const i2 = e2.data[0]; + $(!!i2); + const r2 = i2, o2 = r2.error || (null === (n2 = r2[0]) || void 0 === n2 ? void 0 : n2.error); + if (o2) { + C(Ru, `RPC '${t2}' stream ${s} received error:`, o2); + const e3 = o2.status; + let n3 = function(t3) { + const e4 = si[t3]; + if (void 0 !== e4) + return oi(e4); + }(e3), i3 = o2.message; + void 0 === n3 && (n3 = B.INTERNAL, i3 = "Unknown error status: " + e3 + " with message " + o2.message), l2 = true, f.so(new L(n3, i3)), a.close(); + } else + C(Ru, `RPC '${t2}' stream ${s} received:`, i2), f.io(i2); + } + }), d(o, Event.STAT_EVENT, (e2) => { + e2.stat === Stat.PROXY ? C(Ru, `RPC '${t2}' stream ${s} detected buffering proxy`) : e2.stat === Stat.NOPROXY && C(Ru, `RPC '${t2}' stream ${s} detected no buffering proxy`); + }), setTimeout(() => { + f.no(); + }, 0), f; + } +} +function Pu() { + return "undefined" != typeof document ? document : null; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Vu(t2) { + return new Ti(t2, true); +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Su { + constructor(t2, e, n = 1e3, s = 1.5, i = 6e4) { + this.Ws = t2, this.timerId = e, this._o = n, this.mo = s, this.yo = i, this.po = 0, this.Io = null, this.To = Date.now(), this.reset(); + } + reset() { + this.po = 0; + } + Eo() { + this.po = this.yo; + } + Ao(t2) { + this.cancel(); + const e = Math.floor(this.po + this.Ro()), n = Math.max(0, Date.now() - this.To), s = Math.max(0, e - n); + s > 0 && C("ExponentialBackoff", `Backing off for ${s} ms (base delay: ${this.po} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`), this.Io = this.Ws.enqueueAfterDelay(this.timerId, s, () => (this.To = Date.now(), t2())), this.po *= this.mo, this.po < this._o && (this.po = this._o), this.po > this.yo && (this.po = this.yo); + } + vo() { + null !== this.Io && (this.Io.skipDelay(), this.Io = null); + } + cancel() { + null !== this.Io && (this.Io.cancel(), this.Io = null); + } + Ro() { + return (Math.random() - 0.5) * this.po; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Du { + constructor(t2, e, n, s, i, r, o, u) { + this.Ws = t2, this.bo = n, this.Po = s, this.connection = i, this.authCredentialsProvider = r, this.appCheckCredentialsProvider = o, this.listener = u, this.state = 0, this.Vo = 0, this.So = null, this.Do = null, this.stream = null, this.Co = new Su(t2, e); + } + xo() { + return 1 === this.state || 5 === this.state || this.No(); + } + No() { + return 2 === this.state || 3 === this.state; + } + start() { + 4 !== this.state ? this.auth() : this.ko(); + } + async stop() { + this.xo() && await this.close(0); + } + Oo() { + this.state = 0, this.Co.reset(); + } + $o() { + this.No() && null === this.So && (this.So = this.Ws.enqueueAfterDelay(this.bo, 6e4, () => this.Mo())); + } + Fo(t2) { + this.Bo(), this.stream.send(t2); + } + async Mo() { + if (this.No()) + return this.close(0); + } + Bo() { + this.So && (this.So.cancel(), this.So = null); + } + Lo() { + this.Do && (this.Do.cancel(), this.Do = null); + } + async close(t2, e) { + this.Bo(), this.Lo(), this.Co.cancel(), this.Vo++, 4 !== t2 ? this.Co.reset() : e && e.code === B.RESOURCE_EXHAUSTED ? (x(e.toString()), x("Using maximum backoff delay to prevent overloading the backend."), this.Co.Eo()) : e && e.code === B.UNAUTHENTICATED && 3 !== this.state && (this.authCredentialsProvider.invalidateToken(), this.appCheckCredentialsProvider.invalidateToken()), null !== this.stream && (this.qo(), this.stream.close(), this.stream = null), this.state = t2, await this.listener.Zr(e); + } + qo() { + } + auth() { + this.state = 1; + const t2 = this.Uo(this.Vo), e = this.Vo; + Promise.all([this.authCredentialsProvider.getToken(), this.appCheckCredentialsProvider.getToken()]).then(([t3, n]) => { + this.Vo === e && this.Ko(t3, n); + }, (e2) => { + t2(() => { + const t3 = new L(B.UNKNOWN, "Fetching auth token failed: " + e2.message); + return this.Go(t3); + }); + }); + } + Ko(t2, e) { + const n = this.Uo(this.Vo); + this.stream = this.Qo(t2, e), this.stream.Jr(() => { + n(() => (this.state = 2, this.Do = this.Ws.enqueueAfterDelay(this.Po, 1e4, () => (this.No() && (this.state = 3), Promise.resolve())), this.listener.Jr())); + }), this.stream.Zr((t3) => { + n(() => this.Go(t3)); + }), this.stream.onMessage((t3) => { + n(() => this.onMessage(t3)); + }); + } + ko() { + this.state = 5, this.Co.Ao(async () => { + this.state = 0, this.start(); + }); + } + Go(t2) { + return C("PersistentStream", `close with error: ${t2}`), this.stream = null, this.close(4, t2); + } + Uo(t2) { + return (e) => { + this.Ws.enqueueAndForget(() => this.Vo === t2 ? e() : (C("PersistentStream", "stream callback skipped by getCloseGuardedDispatcher."), Promise.resolve())); + }; + } +} +class Cu extends Du { + constructor(t2, e, n, s, i, r) { + super(t2, "listen_stream_connection_backoff", "listen_stream_idle", "health_check_timeout", e, n, s, r), this.serializer = i; + } + Qo(t2, e) { + return this.connection.wo("Listen", t2, e); + } + onMessage(t2) { + this.Co.reset(); + const e = Mi(this.serializer, t2), n = function(t3) { + if (!("targetChange" in t3)) + return st.min(); + const e2 = t3.targetChange; + return e2.targetIds && e2.targetIds.length ? st.min() : e2.readTime ? vi(e2.readTime) : st.min(); + }(t2); + return this.listener.zo(e, n); + } + jo(t2) { + const e = {}; + e.database = xi(this.serializer), e.addTarget = function(t3, e2) { + let n2; + const s = e2.target; + return n2 = On(s) ? { + documents: qi(t3, s) + } : { + query: Ui(t3, s) + }, n2.targetId = e2.targetId, e2.resumeToken.approximateByteSize() > 0 ? n2.resumeToken = Ai(t3, e2.resumeToken) : e2.snapshotVersion.compareTo(st.min()) > 0 && (n2.readTime = Ei(t3, e2.snapshotVersion.toTimestamp())), n2; + }(this.serializer, t2); + const n = Gi(this.serializer, t2); + n && (e.labels = n), this.Fo(e); + } + Wo(t2) { + const e = {}; + e.database = xi(this.serializer), e.removeTarget = t2, this.Fo(e); + } +} +class xu extends Du { + constructor(t2, e, n, s, i, r) { + super(t2, "write_stream_connection_backoff", "write_stream_idle", "health_check_timeout", e, n, s, r), this.serializer = i, this.Ho = false; + } + get Jo() { + return this.Ho; + } + start() { + this.Ho = false, this.lastStreamToken = void 0, super.start(); + } + qo() { + this.Ho && this.Yo([]); + } + Qo(t2, e) { + return this.connection.wo("Write", t2, e); + } + onMessage(t2) { + if ($(!!t2.streamToken), this.lastStreamToken = t2.streamToken, this.Ho) { + this.Co.reset(); + const e = Li(t2.writeResults, t2.commitTime), n = vi(t2.commitTime); + return this.listener.Zo(n, e); + } + return $(!t2.writeResults || 0 === t2.writeResults.length), this.Ho = true, this.listener.Xo(); + } + tu() { + const t2 = {}; + t2.database = xi(this.serializer), this.Fo(t2); + } + Yo(t2) { + const e = { + streamToken: this.lastStreamToken, + writes: t2.map((t3) => Fi(this.serializer, t3)) + }; + this.Fo(e); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Nu extends class { +} { + constructor(t2, e, n, s) { + super(), this.authCredentials = t2, this.appCheckCredentials = e, this.connection = n, this.serializer = s, this.eu = false; + } + nu() { + if (this.eu) + throw new L(B.FAILED_PRECONDITION, "The client has already been terminated."); + } + co(t2, e, n) { + return this.nu(), Promise.all([this.authCredentials.getToken(), this.appCheckCredentials.getToken()]).then(([s, i]) => this.connection.co(t2, e, n, s, i)).catch((t3) => { + throw "FirebaseError" === t3.name ? (t3.code === B.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), this.appCheckCredentials.invalidateToken()), t3) : new L(B.UNKNOWN, t3.toString()); + }); + } + fo(t2, e, n, s) { + return this.nu(), Promise.all([this.authCredentials.getToken(), this.appCheckCredentials.getToken()]).then(([i, r]) => this.connection.fo(t2, e, n, i, r, s)).catch((t3) => { + throw "FirebaseError" === t3.name ? (t3.code === B.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), this.appCheckCredentials.invalidateToken()), t3) : new L(B.UNKNOWN, t3.toString()); + }); + } + terminate() { + this.eu = true; + } +} +class Ou { + constructor(t2, e) { + this.asyncQueue = t2, this.onlineStateHandler = e, this.state = "Unknown", this.su = 0, this.iu = null, this.ru = true; + } + ou() { + 0 === this.su && (this.uu("Unknown"), this.iu = this.asyncQueue.enqueueAfterDelay("online_state_timeout", 1e4, () => (this.iu = null, this.cu("Backend didn't respond within 10 seconds."), this.uu("Offline"), Promise.resolve()))); + } + au(t2) { + "Online" === this.state ? this.uu("Unknown") : (this.su++, this.su >= 1 && (this.hu(), this.cu(`Connection failed 1 times. Most recent error: ${t2.toString()}`), this.uu("Offline"))); + } + set(t2) { + this.hu(), this.su = 0, "Online" === t2 && (this.ru = false), this.uu(t2); + } + uu(t2) { + t2 !== this.state && (this.state = t2, this.onlineStateHandler(t2)); + } + cu(t2) { + const e = `Could not reach Cloud Firestore backend. ${t2} +This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`; + this.ru ? (x(e), this.ru = false) : C("OnlineStateTracker", e); + } + hu() { + null !== this.iu && (this.iu.cancel(), this.iu = null); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class $u { + constructor(t2, e, n, s, i) { + this.localStore = t2, this.datastore = e, this.asyncQueue = n, this.remoteSyncer = {}, this.lu = [], this.fu = /* @__PURE__ */ new Map(), this.du = /* @__PURE__ */ new Set(), this.wu = [], this._u = i, this._u.qr((t3) => { + n.enqueueAndForget(async () => { + Qu(this) && (C("RemoteStore", "Restarting streams for network reachability change."), await async function(t4) { + const e2 = F(t4); + e2.du.add(4), await Fu(e2), e2.mu.set("Unknown"), e2.du.delete(4), await Mu(e2); + }(this)); + }); + }), this.mu = new Ou(n, s); + } +} +async function Mu(t2) { + if (Qu(t2)) + for (const e of t2.wu) + await e(true); +} +async function Fu(t2) { + for (const e of t2.wu) + await e(false); +} +function Bu(t2, e) { + const n = F(t2); + n.fu.has(e.targetId) || (n.fu.set(e.targetId, e), Gu(n) ? Ku(n) : ac(n).No() && qu(n, e)); +} +function Lu(t2, e) { + const n = F(t2), s = ac(n); + n.fu.delete(e), s.No() && Uu(n, e), 0 === n.fu.size && (s.No() ? s.$o() : Qu(n) && n.mu.set("Unknown")); +} +function qu(t2, e) { + t2.gu.Ot(e.targetId), ac(t2).jo(e); +} +function Uu(t2, e) { + t2.gu.Ot(e), ac(t2).Wo(e); +} +function Ku(t2) { + t2.gu = new _i({ + getRemoteKeysForTarget: (e) => t2.remoteSyncer.getRemoteKeysForTarget(e), + ne: (e) => t2.fu.get(e) || null + }), ac(t2).start(), t2.mu.ou(); +} +function Gu(t2) { + return Qu(t2) && !ac(t2).xo() && t2.fu.size > 0; +} +function Qu(t2) { + return 0 === F(t2).du.size; +} +function zu(t2) { + t2.gu = void 0; +} +async function ju(t2) { + t2.fu.forEach((e, n) => { + qu(t2, e); + }); +} +async function Wu(t2, e) { + zu(t2), Gu(t2) ? (t2.mu.au(e), Ku(t2)) : t2.mu.set("Unknown"); +} +async function Hu(t2, e, n) { + if (t2.mu.set("Online"), e instanceof di && 2 === e.state && e.cause) + try { + await async function(t3, e2) { + const n2 = e2.cause; + for (const s of e2.targetIds) + t3.fu.has(s) && (await t3.remoteSyncer.rejectListen(s, n2), t3.fu.delete(s), t3.gu.removeTarget(s)); + }(t2, e); + } catch (n2) { + C("RemoteStore", "Failed to remove targets %s: %s ", e.targetIds.join(","), n2), await Ju(t2, n2); + } + else if (e instanceof li ? t2.gu.Kt(e) : e instanceof fi ? t2.gu.Jt(e) : t2.gu.zt(e), !n.isEqual(st.min())) + try { + const e2 = await Jo(t2.localStore); + n.compareTo(e2) >= 0 && await function(t3, e3) { + const n2 = t3.gu.Xt(e3); + return n2.targetChanges.forEach((n3, s) => { + if (n3.resumeToken.approximateByteSize() > 0) { + const i = t3.fu.get(s); + i && t3.fu.set(s, i.withResumeToken(n3.resumeToken, e3)); + } + }), n2.targetMismatches.forEach((e4) => { + const n3 = t3.fu.get(e4); + if (!n3) + return; + t3.fu.set(e4, n3.withResumeToken(be.EMPTY_BYTE_STRING, n3.snapshotVersion)), Uu(t3, e4); + const s = new tr(n3.target, e4, 1, n3.sequenceNumber); + qu(t3, s); + }), t3.remoteSyncer.applyRemoteEvent(n2); + }(t2, n); + } catch (e2) { + C("RemoteStore", "Failed to raise snapshot:", e2), await Ju(t2, e2); + } +} +async function Ju(t2, e, n) { + if (!Vt(e)) + throw e; + t2.du.add(1), await Fu(t2), t2.mu.set("Offline"), n || (n = () => Jo(t2.localStore)), t2.asyncQueue.enqueueRetryable(async () => { + C("RemoteStore", "Retrying IndexedDB access"), await n(), t2.du.delete(1), await Mu(t2); + }); +} +function Yu(t2, e) { + return e().catch((n) => Ju(t2, n, e)); +} +async function Zu(t2) { + const e = F(t2), n = hc(e); + let s = e.lu.length > 0 ? e.lu[e.lu.length - 1].batchId : -1; + for (; Xu(e); ) + try { + const t3 = await Xo(e.localStore, s); + if (null === t3) { + 0 === e.lu.length && n.$o(); + break; + } + s = t3.batchId, tc(e, t3); + } catch (t3) { + await Ju(e, t3); + } + ec(e) && nc(e); +} +function Xu(t2) { + return Qu(t2) && t2.lu.length < 10; +} +function tc(t2, e) { + t2.lu.push(e); + const n = hc(t2); + n.No() && n.Jo && n.Yo(e.mutations); +} +function ec(t2) { + return Qu(t2) && !hc(t2).xo() && t2.lu.length > 0; +} +function nc(t2) { + hc(t2).start(); +} +async function sc(t2) { + hc(t2).tu(); +} +async function ic(t2) { + const e = hc(t2); + for (const n of t2.lu) + e.Yo(n.mutations); +} +async function rc(t2, e, n) { + const s = t2.lu.shift(), i = Ys.from(s, e, n); + await Yu(t2, () => t2.remoteSyncer.applySuccessfulWrite(i)), await Zu(t2); +} +async function oc(t2, e) { + e && hc(t2).Jo && await async function(t3, e2) { + if (n = e2.code, ri(n) && n !== B.ABORTED) { + const n2 = t3.lu.shift(); + hc(t3).Oo(), await Yu(t3, () => t3.remoteSyncer.rejectFailedWrite(n2.batchId, e2)), await Zu(t3); + } + var n; + }(t2, e), ec(t2) && nc(t2); +} +async function uc(t2, e) { + const n = F(t2); + n.asyncQueue.verifyOperationInProgress(), C("RemoteStore", "RemoteStore received new credentials"); + const s = Qu(n); + n.du.add(3), await Fu(n), s && n.mu.set("Unknown"), await n.remoteSyncer.handleCredentialChange(e), n.du.delete(3), await Mu(n); +} +async function cc(t2, e) { + const n = F(t2); + e ? (n.du.delete(2), await Mu(n)) : e || (n.du.add(2), await Fu(n), n.mu.set("Unknown")); +} +function ac(t2) { + return t2.yu || (t2.yu = function(t3, e, n) { + const s = F(t3); + return s.nu(), new Cu(e, s.connection, s.authCredentials, s.appCheckCredentials, s.serializer, n); + }(t2.datastore, t2.asyncQueue, { + Jr: ju.bind(null, t2), + Zr: Wu.bind(null, t2), + zo: Hu.bind(null, t2) + }), t2.wu.push(async (e) => { + e ? (t2.yu.Oo(), Gu(t2) ? Ku(t2) : t2.mu.set("Unknown")) : (await t2.yu.stop(), zu(t2)); + })), t2.yu; +} +function hc(t2) { + return t2.pu || (t2.pu = function(t3, e, n) { + const s = F(t3); + return s.nu(), new xu(e, s.connection, s.authCredentials, s.appCheckCredentials, s.serializer, n); + }(t2.datastore, t2.asyncQueue, { + Jr: sc.bind(null, t2), + Zr: oc.bind(null, t2), + Xo: ic.bind(null, t2), + Zo: rc.bind(null, t2) + }), t2.wu.push(async (e) => { + e ? (t2.pu.Oo(), await Zu(t2)) : (await t2.pu.stop(), t2.lu.length > 0 && (C("RemoteStore", `Stopping write stream with ${t2.lu.length} pending writes`), t2.lu = [])); + })), t2.pu; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class lc { + constructor(t2, e, n, s, i) { + this.asyncQueue = t2, this.timerId = e, this.targetTimeMs = n, this.op = s, this.removalCallback = i, this.deferred = new q(), this.then = this.deferred.promise.then.bind(this.deferred.promise), this.deferred.promise.catch((t3) => { + }); + } + static createAndSchedule(t2, e, n, s, i) { + const r = Date.now() + n, o = new lc(t2, e, r, s, i); + return o.start(n), o; + } + start(t2) { + this.timerHandle = setTimeout(() => this.handleDelayElapsed(), t2); + } + skipDelay() { + return this.handleDelayElapsed(); + } + cancel(t2) { + null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new L(B.CANCELLED, "Operation cancelled" + (t2 ? ": " + t2 : "")))); + } + handleDelayElapsed() { + this.asyncQueue.enqueueAndForget(() => null !== this.timerHandle ? (this.clearTimeout(), this.op().then((t2) => this.deferred.resolve(t2))) : Promise.resolve()); + } + clearTimeout() { + null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), this.timerHandle = null); + } +} +function fc(t2, e) { + if (x("AsyncQueue", `${e}: ${t2}`), Vt(t2)) + return new L(B.UNAVAILABLE, `${e}: ${t2}`); + throw t2; +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class dc { + constructor(t2) { + this.comparator = t2 ? (e, n) => t2(e, n) || ct.comparator(e.key, n.key) : (t3, e) => ct.comparator(t3.key, e.key), this.keyedMap = us(), this.sortedSet = new ge(this.comparator); + } + static emptySet(t2) { + return new dc(t2.comparator); + } + has(t2) { + return null != this.keyedMap.get(t2); + } + get(t2) { + return this.keyedMap.get(t2); + } + first() { + return this.sortedSet.minKey(); + } + last() { + return this.sortedSet.maxKey(); + } + isEmpty() { + return this.sortedSet.isEmpty(); + } + indexOf(t2) { + const e = this.keyedMap.get(t2); + return e ? this.sortedSet.indexOf(e) : -1; + } + get size() { + return this.sortedSet.size; + } + forEach(t2) { + this.sortedSet.inorderTraversal((e, n) => (t2(e), false)); + } + add(t2) { + const e = this.delete(t2.key); + return e.copy(e.keyedMap.insert(t2.key, t2), e.sortedSet.insert(t2, null)); + } + delete(t2) { + const e = this.get(t2); + return e ? this.copy(this.keyedMap.remove(t2), this.sortedSet.remove(e)) : this; + } + isEqual(t2) { + if (!(t2 instanceof dc)) + return false; + if (this.size !== t2.size) + return false; + const e = this.sortedSet.getIterator(), n = t2.sortedSet.getIterator(); + for (; e.hasNext(); ) { + const t3 = e.getNext().key, s = n.getNext().key; + if (!t3.isEqual(s)) + return false; + } + return true; + } + toString() { + const t2 = []; + return this.forEach((e) => { + t2.push(e.toString()); + }), 0 === t2.length ? "DocumentSet ()" : "DocumentSet (\n " + t2.join(" \n") + "\n)"; + } + copy(t2, e) { + const n = new dc(); + return n.comparator = this.comparator, n.keyedMap = t2, n.sortedSet = e, n; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class wc { + constructor() { + this.Iu = new ge(ct.comparator); + } + track(t2) { + const e = t2.doc.key, n = this.Iu.get(e); + n ? 0 !== t2.type && 3 === n.type ? this.Iu = this.Iu.insert(e, t2) : 3 === t2.type && 1 !== n.type ? this.Iu = this.Iu.insert(e, { + type: n.type, + doc: t2.doc + }) : 2 === t2.type && 2 === n.type ? this.Iu = this.Iu.insert(e, { + type: 2, + doc: t2.doc + }) : 2 === t2.type && 0 === n.type ? this.Iu = this.Iu.insert(e, { + type: 0, + doc: t2.doc + }) : 1 === t2.type && 0 === n.type ? this.Iu = this.Iu.remove(e) : 1 === t2.type && 2 === n.type ? this.Iu = this.Iu.insert(e, { + type: 1, + doc: n.doc + }) : 0 === t2.type && 1 === n.type ? this.Iu = this.Iu.insert(e, { + type: 2, + doc: t2.doc + }) : O() : this.Iu = this.Iu.insert(e, t2); + } + Tu() { + const t2 = []; + return this.Iu.inorderTraversal((e, n) => { + t2.push(n); + }), t2; + } +} +class _c { + constructor(t2, e, n, s, i, r, o, u, c) { + this.query = t2, this.docs = e, this.oldDocs = n, this.docChanges = s, this.mutatedKeys = i, this.fromCache = r, this.syncStateChanged = o, this.excludesMetadataChanges = u, this.hasCachedResults = c; + } + static fromInitialDocuments(t2, e, n, s, i) { + const r = []; + return e.forEach((t3) => { + r.push({ + type: 0, + doc: t3 + }); + }), new _c( + t2, + e, + dc.emptySet(e), + r, + n, + s, + true, + false, + i + ); + } + get hasPendingWrites() { + return !this.mutatedKeys.isEmpty(); + } + isEqual(t2) { + if (!(this.fromCache === t2.fromCache && this.hasCachedResults === t2.hasCachedResults && this.syncStateChanged === t2.syncStateChanged && this.mutatedKeys.isEqual(t2.mutatedKeys) && Jn(this.query, t2.query) && this.docs.isEqual(t2.docs) && this.oldDocs.isEqual(t2.oldDocs))) + return false; + const e = this.docChanges, n = t2.docChanges; + if (e.length !== n.length) + return false; + for (let t3 = 0; t3 < e.length; t3++) + if (e[t3].type !== n[t3].type || !e[t3].doc.isEqual(n[t3].doc)) + return false; + return true; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class mc { + constructor() { + this.Eu = void 0, this.listeners = []; + } +} +class gc { + constructor() { + this.queries = new ss((t2) => Yn(t2), Jn), this.onlineState = "Unknown", this.Au = /* @__PURE__ */ new Set(); + } +} +async function yc(t2, e) { + const n = F(t2), s = e.query; + let i = false, r = n.queries.get(s); + if (r || (i = true, r = new mc()), i) + try { + r.Eu = await n.onListen(s); + } catch (t3) { + const n2 = fc(t3, `Initialization of query '${Zn(e.query)}' failed`); + return void e.onError(n2); + } + if (n.queries.set(s, r), r.listeners.push(e), e.Ru(n.onlineState), r.Eu) { + e.vu(r.Eu) && Ec(n); + } +} +async function pc(t2, e) { + const n = F(t2), s = e.query; + let i = false; + const r = n.queries.get(s); + if (r) { + const t3 = r.listeners.indexOf(e); + t3 >= 0 && (r.listeners.splice(t3, 1), i = 0 === r.listeners.length); + } + if (i) + return n.queries.delete(s), n.onUnlisten(s); +} +function Ic(t2, e) { + const n = F(t2); + let s = false; + for (const t3 of e) { + const e2 = t3.query, i = n.queries.get(e2); + if (i) { + for (const e3 of i.listeners) + e3.vu(t3) && (s = true); + i.Eu = t3; + } + } + s && Ec(n); +} +function Tc(t2, e, n) { + const s = F(t2), i = s.queries.get(e); + if (i) + for (const t3 of i.listeners) + t3.onError(n); + s.queries.delete(e); +} +function Ec(t2) { + t2.Au.forEach((t3) => { + t3.next(); + }); +} +class Ac { + constructor(t2, e, n) { + this.query = t2, this.bu = e, this.Pu = false, this.Vu = null, this.onlineState = "Unknown", this.options = n || {}; + } + vu(t2) { + if (!this.options.includeMetadataChanges) { + const e2 = []; + for (const n of t2.docChanges) + 3 !== n.type && e2.push(n); + t2 = new _c( + t2.query, + t2.docs, + t2.oldDocs, + e2, + t2.mutatedKeys, + t2.fromCache, + t2.syncStateChanged, + true, + t2.hasCachedResults + ); + } + let e = false; + return this.Pu ? this.Su(t2) && (this.bu.next(t2), e = true) : this.Du(t2, this.onlineState) && (this.Cu(t2), e = true), this.Vu = t2, e; + } + onError(t2) { + this.bu.error(t2); + } + Ru(t2) { + this.onlineState = t2; + let e = false; + return this.Vu && !this.Pu && this.Du(this.Vu, t2) && (this.Cu(this.Vu), e = true), e; + } + Du(t2, e) { + if (!t2.fromCache) + return true; + const n = "Offline" !== e; + return (!this.options.xu || !n) && (!t2.docs.isEmpty() || t2.hasCachedResults || "Offline" === e); + } + Su(t2) { + if (t2.docChanges.length > 0) + return true; + const e = this.Vu && this.Vu.hasPendingWrites !== t2.hasPendingWrites; + return !(!t2.syncStateChanged && !e) && true === this.options.includeMetadataChanges; + } + Cu(t2) { + t2 = _c.fromInitialDocuments(t2.query, t2.docs, t2.mutatedKeys, t2.fromCache, t2.hasCachedResults), this.Pu = true, this.bu.next(t2); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Vc { + constructor(t2) { + this.key = t2; + } +} +class Sc { + constructor(t2) { + this.key = t2; + } +} +class Dc { + constructor(t2, e) { + this.query = t2, this.Lu = e, this.qu = null, this.hasCachedResults = false, this.current = false, this.Uu = ws(), this.mutatedKeys = ws(), this.Ku = es(t2), this.Gu = new dc(this.Ku); + } + get Qu() { + return this.Lu; + } + zu(t2, e) { + const n = e ? e.ju : new wc(), s = e ? e.Gu : this.Gu; + let i = e ? e.mutatedKeys : this.mutatedKeys, r = s, o = false; + const u = "F" === this.query.limitType && s.size === this.query.limit ? s.last() : null, c = "L" === this.query.limitType && s.size === this.query.limit ? s.first() : null; + if (t2.inorderTraversal((t3, e2) => { + const a = s.get(t3), h = Xn(this.query, e2) ? e2 : null, l2 = !!a && this.mutatedKeys.has(a.key), f = !!h && (h.hasLocalMutations || this.mutatedKeys.has(h.key) && h.hasCommittedMutations); + let d = false; + if (a && h) { + a.data.isEqual(h.data) ? l2 !== f && (n.track({ + type: 3, + doc: h + }), d = true) : this.Wu(a, h) || (n.track({ + type: 2, + doc: h + }), d = true, (u && this.Ku(h, u) > 0 || c && this.Ku(h, c) < 0) && (o = true)); + } else + !a && h ? (n.track({ + type: 0, + doc: h + }), d = true) : a && !h && (n.track({ + type: 1, + doc: a + }), d = true, (u || c) && (o = true)); + d && (h ? (r = r.add(h), i = f ? i.add(t3) : i.delete(t3)) : (r = r.delete(t3), i = i.delete(t3))); + }), null !== this.query.limit) + for (; r.size > this.query.limit; ) { + const t3 = "F" === this.query.limitType ? r.last() : r.first(); + r = r.delete(t3.key), i = i.delete(t3.key), n.track({ + type: 1, + doc: t3 + }); + } + return { + Gu: r, + ju: n, + Mi: o, + mutatedKeys: i + }; + } + Wu(t2, e) { + return t2.hasLocalMutations && e.hasCommittedMutations && !e.hasLocalMutations; + } + applyChanges(t2, e, n) { + const s = this.Gu; + this.Gu = t2.Gu, this.mutatedKeys = t2.mutatedKeys; + const i = t2.ju.Tu(); + i.sort((t3, e2) => function(t4, e3) { + const n2 = (t5) => { + switch (t5) { + case 0: + return 1; + case 2: + case 3: + return 2; + case 1: + return 0; + default: + return O(); + } + }; + return n2(t4) - n2(e3); + }(t3.type, e2.type) || this.Ku(t3.doc, e2.doc)), this.Hu(n); + const r = e ? this.Ju() : [], o = 0 === this.Uu.size && this.current ? 1 : 0, u = o !== this.qu; + if (this.qu = o, 0 !== i.length || u) { + return { + snapshot: new _c( + this.query, + t2.Gu, + s, + i, + t2.mutatedKeys, + 0 === o, + u, + false, + !!n && n.resumeToken.approximateByteSize() > 0 + ), + Yu: r + }; + } + return { + Yu: r + }; + } + Ru(t2) { + return this.current && "Offline" === t2 ? (this.current = false, this.applyChanges( + { + Gu: this.Gu, + ju: new wc(), + mutatedKeys: this.mutatedKeys, + Mi: false + }, + false + )) : { + Yu: [] + }; + } + Zu(t2) { + return !this.Lu.has(t2) && (!!this.Gu.has(t2) && !this.Gu.get(t2).hasLocalMutations); + } + Hu(t2) { + t2 && (t2.addedDocuments.forEach((t3) => this.Lu = this.Lu.add(t3)), t2.modifiedDocuments.forEach((t3) => { + }), t2.removedDocuments.forEach((t3) => this.Lu = this.Lu.delete(t3)), this.current = t2.current); + } + Ju() { + if (!this.current) + return []; + const t2 = this.Uu; + this.Uu = ws(), this.Gu.forEach((t3) => { + this.Zu(t3.key) && (this.Uu = this.Uu.add(t3.key)); + }); + const e = []; + return t2.forEach((t3) => { + this.Uu.has(t3) || e.push(new Sc(t3)); + }), this.Uu.forEach((n) => { + t2.has(n) || e.push(new Vc(n)); + }), e; + } + Xu(t2) { + this.Lu = t2.Wi, this.Uu = ws(); + const e = this.zu(t2.documents); + return this.applyChanges(e, true); + } + tc() { + return _c.fromInitialDocuments(this.query, this.Gu, this.mutatedKeys, 0 === this.qu, this.hasCachedResults); + } +} +class Cc { + constructor(t2, e, n) { + this.query = t2, this.targetId = e, this.view = n; + } +} +class xc { + constructor(t2) { + this.key = t2, this.ec = false; + } +} +class Nc { + constructor(t2, e, n, s, i, r) { + this.localStore = t2, this.remoteStore = e, this.eventManager = n, this.sharedClientState = s, this.currentUser = i, this.maxConcurrentLimboResolutions = r, this.nc = {}, this.sc = new ss((t3) => Yn(t3), Jn), this.ic = /* @__PURE__ */ new Map(), this.rc = /* @__PURE__ */ new Set(), this.oc = new ge(ct.comparator), this.uc = /* @__PURE__ */ new Map(), this.cc = new Vo(), this.ac = {}, this.hc = /* @__PURE__ */ new Map(), this.lc = so.bn(), this.onlineState = "Unknown", this.fc = void 0; + } + get isPrimaryClient() { + return true === this.fc; + } +} +async function kc(t2, e) { + const n = aa(t2); + let s, i; + const r = n.sc.get(e); + if (r) + s = r.targetId, n.sharedClientState.addLocalQueryTarget(s), i = r.view.tc(); + else { + const t3 = await tu(n.localStore, jn(e)); + n.isPrimaryClient && Bu(n.remoteStore, t3); + const r2 = n.sharedClientState.addLocalQueryTarget(t3.targetId); + s = t3.targetId, i = await Oc(n, e, s, "current" === r2, t3.resumeToken); + } + return i; +} +async function Oc(t2, e, n, s, i) { + t2.dc = (e2, n2, s2) => async function(t3, e3, n3, s3) { + let i2 = e3.view.zu(n3); + i2.Mi && (i2 = await nu( + t3.localStore, + e3.query, + false + ).then(({ documents: t4 }) => e3.view.zu(t4, i2))); + const r2 = s3 && s3.targetChanges.get(e3.targetId), o2 = e3.view.applyChanges( + i2, + t3.isPrimaryClient, + r2 + ); + return Wc(t3, e3.targetId, o2.Yu), o2.snapshot; + }(t2, e2, n2, s2); + const r = await nu( + t2.localStore, + e, + true + ), o = new Dc(e, r.Wi), u = o.zu(r.documents), c = hi.createSynthesizedTargetChangeForCurrentChange(n, s && "Offline" !== t2.onlineState, i), a = o.applyChanges( + u, + t2.isPrimaryClient, + c + ); + Wc(t2, n, a.Yu); + const h = new Cc(e, n, o); + return t2.sc.set(e, h), t2.ic.has(n) ? t2.ic.get(n).push(e) : t2.ic.set(n, [e]), a.snapshot; +} +async function $c(t2, e) { + const n = F(t2), s = n.sc.get(e), i = n.ic.get(s.targetId); + if (i.length > 1) + return n.ic.set(s.targetId, i.filter((t3) => !Jn(t3, e))), void n.sc.delete(e); + if (n.isPrimaryClient) { + n.sharedClientState.removeLocalQueryTarget(s.targetId); + n.sharedClientState.isActiveQueryTarget(s.targetId) || await eu( + n.localStore, + s.targetId, + false + ).then(() => { + n.sharedClientState.clearQueryState(s.targetId), Lu(n.remoteStore, s.targetId), zc(n, s.targetId); + }).catch(Et); + } else + zc(n, s.targetId), await eu( + n.localStore, + s.targetId, + true + ); +} +async function Mc(t2, e, n) { + const s = ha(t2); + try { + const t3 = await function(t4, e2) { + const n2 = F(t4), s2 = nt.now(), i = e2.reduce((t5, e3) => t5.add(e3.key), ws()); + let r, o; + return n2.persistence.runTransaction("Locally write mutations", "readwrite", (t5) => { + let u = rs(), c = ws(); + return n2.Ki.getEntries(t5, i).next((t6) => { + u = t6, u.forEach((t7, e3) => { + e3.isValidDocument() || (c = c.add(t7)); + }); + }).next(() => n2.localDocuments.getOverlayedDocuments(t5, u)).next((i2) => { + r = i2; + const o2 = []; + for (const t6 of e2) { + const e3 = qs(t6, r.get(t6.key).overlayedDocument); + null != e3 && o2.push(new Gs(t6.key, e3, rn(e3.value.mapValue), Os.exists(true))); + } + return n2.mutationQueue.addMutationBatch(t5, s2, o2, e2); + }).next((e3) => { + o = e3; + const s3 = e3.applyToLocalDocumentSet(r, c); + return n2.documentOverlayCache.saveOverlays(t5, e3.batchId, s3); + }); + }).then(() => ({ + batchId: o.batchId, + changes: cs(r) + })); + }(s.localStore, e); + s.sharedClientState.addPendingMutation(t3.batchId), function(t4, e2, n2) { + let s2 = t4.ac[t4.currentUser.toKey()]; + s2 || (s2 = new ge(X)); + s2 = s2.insert(e2, n2), t4.ac[t4.currentUser.toKey()] = s2; + }(s, t3.batchId, n), await Yc(s, t3.changes), await Zu(s.remoteStore); + } catch (t3) { + const e2 = fc(t3, "Failed to persist write"); + n.reject(e2); + } +} +async function Fc(t2, e) { + const n = F(t2); + try { + const t3 = await Yo(n.localStore, e); + e.targetChanges.forEach((t4, e2) => { + const s = n.uc.get(e2); + s && ($(t4.addedDocuments.size + t4.modifiedDocuments.size + t4.removedDocuments.size <= 1), t4.addedDocuments.size > 0 ? s.ec = true : t4.modifiedDocuments.size > 0 ? $(s.ec) : t4.removedDocuments.size > 0 && ($(s.ec), s.ec = false)); + }), await Yc(n, t3, e); + } catch (t3) { + await Et(t3); + } +} +function Bc(t2, e, n) { + const s = F(t2); + if (s.isPrimaryClient && 0 === n || !s.isPrimaryClient && 1 === n) { + const t3 = []; + s.sc.forEach((n2, s2) => { + const i = s2.view.Ru(e); + i.snapshot && t3.push(i.snapshot); + }), function(t4, e2) { + const n2 = F(t4); + n2.onlineState = e2; + let s2 = false; + n2.queries.forEach((t5, n3) => { + for (const t6 of n3.listeners) + t6.Ru(e2) && (s2 = true); + }), s2 && Ec(n2); + }(s.eventManager, e), t3.length && s.nc.zo(t3), s.onlineState = e, s.isPrimaryClient && s.sharedClientState.setOnlineState(e); + } +} +async function Lc(t2, e, n) { + const s = F(t2); + s.sharedClientState.updateQueryState(e, "rejected", n); + const i = s.uc.get(e), r = i && i.key; + if (r) { + let t3 = new ge(ct.comparator); + t3 = t3.insert(r, on.newNoDocument(r, st.min())); + const n2 = ws().add(r), i2 = new ai( + st.min(), + /* @__PURE__ */ new Map(), + new Ie(X), + t3, + n2 + ); + await Fc(s, i2), s.oc = s.oc.remove(r), s.uc.delete(e), Jc(s); + } else + await eu( + s.localStore, + e, + false + ).then(() => zc(s, e, n)).catch(Et); +} +async function qc(t2, e) { + const n = F(t2), s = e.batch.batchId; + try { + const t3 = await Ho(n.localStore, e); + Qc(n, s, null), Gc(n, s), n.sharedClientState.updateMutationState(s, "acknowledged"), await Yc(n, t3); + } catch (t3) { + await Et(t3); + } +} +async function Uc(t2, e, n) { + const s = F(t2); + try { + const t3 = await function(t4, e2) { + const n2 = F(t4); + return n2.persistence.runTransaction("Reject batch", "readwrite-primary", (t5) => { + let s2; + return n2.mutationQueue.lookupMutationBatch(t5, e2).next((e3) => ($(null !== e3), s2 = e3.keys(), n2.mutationQueue.removeMutationBatch(t5, e3))).next(() => n2.mutationQueue.performConsistencyCheck(t5)).next(() => n2.documentOverlayCache.removeOverlaysForBatchId(t5, s2, e2)).next(() => n2.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t5, s2)).next(() => n2.localDocuments.getDocuments(t5, s2)); + }); + }(s.localStore, e); + Qc(s, e, n), Gc(s, e), s.sharedClientState.updateMutationState(e, "rejected", n), await Yc(s, t3); + } catch (n2) { + await Et(n2); + } +} +function Gc(t2, e) { + (t2.hc.get(e) || []).forEach((t3) => { + t3.resolve(); + }), t2.hc.delete(e); +} +function Qc(t2, e, n) { + const s = F(t2); + let i = s.ac[s.currentUser.toKey()]; + if (i) { + const t3 = i.get(e); + t3 && (n ? t3.reject(n) : t3.resolve(), i = i.remove(e)), s.ac[s.currentUser.toKey()] = i; + } +} +function zc(t2, e, n = null) { + t2.sharedClientState.removeLocalQueryTarget(e); + for (const s of t2.ic.get(e)) + t2.sc.delete(s), n && t2.nc.wc(s, n); + if (t2.ic.delete(e), t2.isPrimaryClient) { + t2.cc.hs(e).forEach((e2) => { + t2.cc.containsKey(e2) || jc(t2, e2); + }); + } +} +function jc(t2, e) { + t2.rc.delete(e.path.canonicalString()); + const n = t2.oc.get(e); + null !== n && (Lu(t2.remoteStore, n), t2.oc = t2.oc.remove(e), t2.uc.delete(n), Jc(t2)); +} +function Wc(t2, e, n) { + for (const s of n) + if (s instanceof Vc) + t2.cc.addReference(s.key, e), Hc(t2, s); + else if (s instanceof Sc) { + C("SyncEngine", "Document no longer in limbo: " + s.key), t2.cc.removeReference(s.key, e); + t2.cc.containsKey(s.key) || jc(t2, s.key); + } else + O(); +} +function Hc(t2, e) { + const n = e.key, s = n.path.canonicalString(); + t2.oc.get(n) || t2.rc.has(s) || (C("SyncEngine", "New document in limbo: " + n), t2.rc.add(s), Jc(t2)); +} +function Jc(t2) { + for (; t2.rc.size > 0 && t2.oc.size < t2.maxConcurrentLimboResolutions; ) { + const e = t2.rc.values().next().value; + t2.rc.delete(e); + const n = new ct(rt.fromString(e)), s = t2.lc.next(); + t2.uc.set(s, new xc(n)), t2.oc = t2.oc.insert(n, s), Bu(t2.remoteStore, new tr(jn(qn(n.path)), s, 2, Ot.ct)); + } +} +async function Yc(t2, e, n) { + const s = F(t2), i = [], r = [], o = []; + s.sc.isEmpty() || (s.sc.forEach((t3, u) => { + o.push(s.dc(u, e, n).then((t4) => { + if ((t4 || n) && s.isPrimaryClient && s.sharedClientState.updateQueryState(u.targetId, (null == t4 ? void 0 : t4.fromCache) ? "not-current" : "current"), t4) { + i.push(t4); + const e2 = Go.Di(u.targetId, t4); + r.push(e2); + } + })); + }), await Promise.all(o), s.nc.zo(i), await async function(t3, e2) { + const n2 = F(t3); + try { + await n2.persistence.runTransaction("notifyLocalViewChanges", "readwrite", (t4) => At.forEach(e2, (e3) => At.forEach(e3.Vi, (s2) => n2.persistence.referenceDelegate.addReference(t4, e3.targetId, s2)).next(() => At.forEach(e3.Si, (s2) => n2.persistence.referenceDelegate.removeReference(t4, e3.targetId, s2))))); + } catch (t4) { + if (!Vt(t4)) + throw t4; + C("LocalStore", "Failed to update sequence numbers: " + t4); + } + for (const t4 of e2) { + const e3 = t4.targetId; + if (!t4.fromCache) { + const t5 = n2.Li.get(e3), s2 = t5.snapshotVersion, i2 = t5.withLastLimboFreeSnapshotVersion(s2); + n2.Li = n2.Li.insert(e3, i2); + } + } + }(s.localStore, r)); +} +async function Zc(t2, e) { + const n = F(t2); + if (!n.currentUser.isEqual(e)) { + C("SyncEngine", "User change. New user:", e.toKey()); + const t3 = await Wo(n.localStore, e); + n.currentUser = e, function(t4, e2) { + t4.hc.forEach((t5) => { + t5.forEach((t6) => { + t6.reject(new L(B.CANCELLED, e2)); + }); + }), t4.hc.clear(); + }(n, "'waitForPendingWrites' promise is rejected due to a user change."), n.sharedClientState.handleUserChange(e, t3.removedBatchIds, t3.addedBatchIds), await Yc(n, t3.Qi); + } +} +function Xc(t2, e) { + const n = F(t2), s = n.uc.get(e); + if (s && s.ec) + return ws().add(s.key); + { + let t3 = ws(); + const s2 = n.ic.get(e); + if (!s2) + return t3; + for (const e2 of s2) { + const s3 = n.sc.get(e2); + t3 = t3.unionWith(s3.view.Qu); + } + return t3; + } +} +function aa(t2) { + const e = F(t2); + return e.remoteStore.remoteSyncer.applyRemoteEvent = Fc.bind(null, e), e.remoteStore.remoteSyncer.getRemoteKeysForTarget = Xc.bind(null, e), e.remoteStore.remoteSyncer.rejectListen = Lc.bind(null, e), e.nc.zo = Ic.bind(null, e.eventManager), e.nc.wc = Tc.bind(null, e.eventManager), e; +} +function ha(t2) { + const e = F(t2); + return e.remoteStore.remoteSyncer.applySuccessfulWrite = qc.bind(null, e), e.remoteStore.remoteSyncer.rejectFailedWrite = Uc.bind(null, e), e; +} +class fa { + constructor() { + this.synchronizeTabs = false; + } + async initialize(t2) { + this.serializer = Vu(t2.databaseInfo.databaseId), this.sharedClientState = this.createSharedClientState(t2), this.persistence = this.createPersistence(t2), await this.persistence.start(), this.localStore = this.createLocalStore(t2), this.gcScheduler = this.createGarbageCollectionScheduler(t2, this.localStore), this.indexBackfillerScheduler = this.createIndexBackfillerScheduler(t2, this.localStore); + } + createGarbageCollectionScheduler(t2, e) { + return null; + } + createIndexBackfillerScheduler(t2, e) { + return null; + } + createLocalStore(t2) { + return jo(this.persistence, new Qo(), t2.initialUser, this.serializer); + } + createPersistence(t2) { + return new ko($o.Fs, this.serializer); + } + createSharedClientState(t2) { + return new gu(); + } + async terminate() { + this.gcScheduler && this.gcScheduler.stop(), await this.sharedClientState.shutdown(), await this.persistence.shutdown(); + } +} +class _a { + async initialize(t2, e) { + this.localStore || (this.localStore = t2.localStore, this.sharedClientState = t2.sharedClientState, this.datastore = this.createDatastore(e), this.remoteStore = this.createRemoteStore(e), this.eventManager = this.createEventManager(e), this.syncEngine = this.createSyncEngine( + e, + !t2.synchronizeTabs + ), this.sharedClientState.onlineStateHandler = (t3) => Bc(this.syncEngine, t3, 1), this.remoteStore.remoteSyncer.handleCredentialChange = Zc.bind(null, this.syncEngine), await cc(this.remoteStore, this.syncEngine.isPrimaryClient)); + } + createEventManager(t2) { + return new gc(); + } + createDatastore(t2) { + const e = Vu(t2.databaseInfo.databaseId), n = (s = t2.databaseInfo, new vu(s)); + var s; + return function(t3, e2, n2, s2) { + return new Nu(t3, e2, n2, s2); + }(t2.authCredentials, t2.appCheckCredentials, n, e); + } + createRemoteStore(t2) { + return e = this.localStore, n = this.datastore, s = t2.asyncQueue, i = (t3) => Bc(this.syncEngine, t3, 0), r = pu.D() ? new pu() : new yu(), new $u(e, n, s, i, r); + var e, n, s, i, r; + } + createSyncEngine(t2, e) { + return function(t3, e2, n, s, i, r, o) { + const u = new Nc(t3, e2, n, s, i, r); + return o && (u.fc = true), u; + }(this.localStore, this.remoteStore, this.eventManager, this.sharedClientState, t2.initialUser, t2.maxConcurrentLimboResolutions, e); + } + terminate() { + return async function(t2) { + const e = F(t2); + C("RemoteStore", "RemoteStore shutting down."), e.du.add(5), await Fu(e), e._u.shutdown(), e.mu.set("Unknown"); + }(this.remoteStore); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ga { + constructor(t2) { + this.observer = t2, this.muted = false; + } + next(t2) { + this.observer.next && this.gc(this.observer.next, t2); + } + error(t2) { + this.observer.error ? this.gc(this.observer.error, t2) : x("Uncaught Error in snapshot listener:", t2.toString()); + } + yc() { + this.muted = true; + } + gc(t2, e) { + this.muted || setTimeout(() => { + this.muted || t2(e); + }, 0); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ta { + constructor(t2, e, n, s) { + this.authCredentials = t2, this.appCheckCredentials = e, this.asyncQueue = n, this.databaseInfo = s, this.user = b.UNAUTHENTICATED, this.clientId = Z.A(), this.authCredentialListener = () => Promise.resolve(), this.appCheckCredentialListener = () => Promise.resolve(), this.authCredentials.start(n, async (t3) => { + C("FirestoreClient", "Received user=", t3.uid), await this.authCredentialListener(t3), this.user = t3; + }), this.appCheckCredentials.start(n, (t3) => (C("FirestoreClient", "Received new app check token=", t3), this.appCheckCredentialListener(t3, this.user))); + } + async getConfiguration() { + return { + asyncQueue: this.asyncQueue, + databaseInfo: this.databaseInfo, + clientId: this.clientId, + authCredentials: this.authCredentials, + appCheckCredentials: this.appCheckCredentials, + initialUser: this.user, + maxConcurrentLimboResolutions: 100 + }; + } + setCredentialChangeListener(t2) { + this.authCredentialListener = t2; + } + setAppCheckTokenChangeListener(t2) { + this.appCheckCredentialListener = t2; + } + verifyNotTerminated() { + if (this.asyncQueue.isShuttingDown) + throw new L(B.FAILED_PRECONDITION, "The client has already been terminated."); + } + terminate() { + this.asyncQueue.enterRestrictedMode(); + const t2 = new q(); + return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async () => { + try { + this._onlineComponents && await this._onlineComponents.terminate(), this._offlineComponents && await this._offlineComponents.terminate(), this.authCredentials.shutdown(), this.appCheckCredentials.shutdown(), t2.resolve(); + } catch (e) { + const n = fc(e, "Failed to shutdown persistence"); + t2.reject(n); + } + }), t2.promise; + } +} +async function Ea(t2, e) { + t2.asyncQueue.verifyOperationInProgress(), C("FirestoreClient", "Initializing OfflineComponentProvider"); + const n = await t2.getConfiguration(); + await e.initialize(n); + let s = n.initialUser; + t2.setCredentialChangeListener(async (t3) => { + s.isEqual(t3) || (await Wo(e.localStore, t3), s = t3); + }), e.persistence.setDatabaseDeletedListener(() => t2.terminate()), t2._offlineComponents = e; +} +async function Aa(t2, e) { + t2.asyncQueue.verifyOperationInProgress(); + const n = await va(t2); + C("FirestoreClient", "Initializing OnlineComponentProvider"); + const s = await t2.getConfiguration(); + await e.initialize(n, s), t2.setCredentialChangeListener((t3) => uc(e.remoteStore, t3)), t2.setAppCheckTokenChangeListener((t3, n2) => uc(e.remoteStore, n2)), t2._onlineComponents = e; +} +function Ra(t2) { + return "FirebaseError" === t2.name ? t2.code === B.FAILED_PRECONDITION || t2.code === B.UNIMPLEMENTED : !("undefined" != typeof DOMException && t2 instanceof DOMException) || (22 === t2.code || 20 === t2.code || 11 === t2.code); +} +async function va(t2) { + if (!t2._offlineComponents) + if (t2._uninitializedComponentsProvider) { + C("FirestoreClient", "Using user provided OfflineComponentProvider"); + try { + await Ea(t2, t2._uninitializedComponentsProvider._offline); + } catch (e) { + const n = e; + if (!Ra(n)) + throw n; + N("Error using user provided cache. Falling back to memory cache: " + n), await Ea(t2, new fa()); + } + } else + C("FirestoreClient", "Using default OfflineComponentProvider"), await Ea(t2, new fa()); + return t2._offlineComponents; +} +async function ba(t2) { + return t2._onlineComponents || (t2._uninitializedComponentsProvider ? (C("FirestoreClient", "Using user provided OnlineComponentProvider"), await Aa(t2, t2._uninitializedComponentsProvider._online)) : (C("FirestoreClient", "Using default OnlineComponentProvider"), await Aa(t2, new _a()))), t2._onlineComponents; +} +function Da(t2) { + return ba(t2).then((t3) => t3.syncEngine); +} +async function xa(t2) { + const e = await ba(t2), n = e.eventManager; + return n.onListen = kc.bind(null, e.syncEngine), n.onUnlisten = $c.bind(null, e.syncEngine), n; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Ka = /* @__PURE__ */ new Map(); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ga(t2, e, n) { + if (!n) + throw new L(B.INVALID_ARGUMENT, `Function ${t2}() cannot be called with an empty ${e}.`); +} +function Qa(t2, e, n, s) { + if (true === e && true === s) + throw new L(B.INVALID_ARGUMENT, `${t2} and ${n} cannot be used together.`); +} +function za(t2) { + if (!ct.isDocumentKey(t2)) + throw new L(B.INVALID_ARGUMENT, `Invalid document reference. Document references must have an even number of segments, but ${t2} has ${t2.length}.`); +} +function ja(t2) { + if (ct.isDocumentKey(t2)) + throw new L(B.INVALID_ARGUMENT, `Invalid collection reference. Collection references must have an odd number of segments, but ${t2} has ${t2.length}.`); +} +function Wa(t2) { + if (void 0 === t2) + return "undefined"; + if (null === t2) + return "null"; + if ("string" == typeof t2) + return t2.length > 20 && (t2 = `${t2.substring(0, 20)}...`), JSON.stringify(t2); + if ("number" == typeof t2 || "boolean" == typeof t2) + return "" + t2; + if ("object" == typeof t2) { + if (t2 instanceof Array) + return "an array"; + { + const e = function(t3) { + if (t3.constructor) + return t3.constructor.name; + return null; + }(t2); + return e ? `a custom ${e} object` : "an object"; + } + } + return "function" == typeof t2 ? "a function" : O(); +} +function Ha(t2, e) { + if ("_delegate" in t2 && (t2 = t2._delegate), !(t2 instanceof e)) { + if (e.name === t2.constructor.name) + throw new L(B.INVALID_ARGUMENT, "Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?"); + { + const n = Wa(t2); + throw new L(B.INVALID_ARGUMENT, `Expected type '${e.name}', but it was: ${n}`); + } + } + return t2; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ya { + constructor(t2) { + var e; + if (void 0 === t2.host) { + if (void 0 !== t2.ssl) + throw new L(B.INVALID_ARGUMENT, "Can't provide ssl option if host option is not set"); + this.host = "firestore.googleapis.com", this.ssl = true; + } else + this.host = t2.host, this.ssl = null === (e = t2.ssl) || void 0 === e || e; + if (this.credentials = t2.credentials, this.ignoreUndefinedProperties = !!t2.ignoreUndefinedProperties, this.cache = t2.localCache, void 0 === t2.cacheSizeBytes) + this.cacheSizeBytes = 41943040; + else { + if (-1 !== t2.cacheSizeBytes && t2.cacheSizeBytes < 1048576) + throw new L(B.INVALID_ARGUMENT, "cacheSizeBytes must be at least 1048576"); + this.cacheSizeBytes = t2.cacheSizeBytes; + } + this.experimentalForceLongPolling = !!t2.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t2.experimentalAutoDetectLongPolling, this.useFetchStreams = !!t2.useFetchStreams, Qa("experimentalForceLongPolling", t2.experimentalForceLongPolling, "experimentalAutoDetectLongPolling", t2.experimentalAutoDetectLongPolling); + } + isEqual(t2) { + return this.host === t2.host && this.ssl === t2.ssl && this.credentials === t2.credentials && this.cacheSizeBytes === t2.cacheSizeBytes && this.experimentalForceLongPolling === t2.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t2.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t2.ignoreUndefinedProperties && this.useFetchStreams === t2.useFetchStreams; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Za { + constructor(t2, e, n, s) { + this._authCredentials = t2, this._appCheckCredentials = e, this._databaseId = n, this._app = s, this.type = "firestore-lite", this._persistenceKey = "(lite)", this._settings = new Ya({}), this._settingsFrozen = false; + } + get app() { + if (!this._app) + throw new L(B.FAILED_PRECONDITION, "Firestore was not initialized using the Firebase SDK. 'app' is not available"); + return this._app; + } + get _initialized() { + return this._settingsFrozen; + } + get _terminated() { + return void 0 !== this._terminateTask; + } + _setSettings(t2) { + if (this._settingsFrozen) + throw new L(B.FAILED_PRECONDITION, "Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object."); + this._settings = new Ya(t2), void 0 !== t2.credentials && (this._authCredentials = function(t3) { + if (!t3) + return new K(); + switch (t3.type) { + case "firstParty": + return new j(t3.sessionIndex || "0", t3.iamToken || null, t3.authTokenFactory || null); + case "provider": + return t3.client; + default: + throw new L(B.INVALID_ARGUMENT, "makeAuthCredentialsProvider failed due to invalid credential type"); + } + }(t2.credentials)); + } + _getSettings() { + return this._settings; + } + _freezeSettings() { + return this._settingsFrozen = true, this._settings; + } + _delete() { + return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask; + } + toJSON() { + return { + app: this._app, + databaseId: this._databaseId, + settings: this._settings + }; + } + _terminate() { + return function(t2) { + const e = Ka.get(t2); + e && (C("ComponentProvider", "Removing Datastore"), Ka.delete(t2), e.terminate()); + }(this), Promise.resolve(); + } +} +function Xa(t2, e, n, s = {}) { + var i; + const r = (t2 = Ha(t2, Za))._getSettings(); + if ("firestore.googleapis.com" !== r.host && r.host !== e && N("Host has been set in both settings() and useEmulator(), emulator host will be used"), t2._setSettings(Object.assign(Object.assign({}, r), { + host: `${e}:${n}`, + ssl: false + })), s.mockUserToken) { + let e2, n2; + if ("string" == typeof s.mockUserToken) + e2 = s.mockUserToken, n2 = b.MOCK_USER; + else { + e2 = createMockUserToken(s.mockUserToken, null === (i = t2._app) || void 0 === i ? void 0 : i.options.projectId); + const r2 = s.mockUserToken.sub || s.mockUserToken.user_id; + if (!r2) + throw new L(B.INVALID_ARGUMENT, "mockUserToken must contain 'sub' or 'user_id' field!"); + n2 = new b(r2); + } + t2._authCredentials = new G(new U(e2, n2)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class th { + constructor(t2, e, n) { + this.converter = e, this._key = n, this.type = "document", this.firestore = t2; + } + get _path() { + return this._key.path; + } + get id() { + return this._key.path.lastSegment(); + } + get path() { + return this._key.path.canonicalString(); + } + get parent() { + return new nh(this.firestore, this.converter, this._key.path.popLast()); + } + withConverter(t2) { + return new th(this.firestore, t2, this._key); + } +} +class eh { + constructor(t2, e, n) { + this.converter = e, this._query = n, this.type = "query", this.firestore = t2; + } + withConverter(t2) { + return new eh(this.firestore, t2, this._query); + } +} +class nh extends eh { + constructor(t2, e, n) { + super(t2, e, qn(n)), this._path = n, this.type = "collection"; + } + get id() { + return this._query.path.lastSegment(); + } + get path() { + return this._query.path.canonicalString(); + } + get parent() { + const t2 = this._path.popLast(); + return t2.isEmpty() ? null : new th( + this.firestore, + null, + new ct(t2) + ); + } + withConverter(t2) { + return new nh(this.firestore, t2, this._path); + } +} +function sh(t2, e, ...n) { + if (t2 = getModularInstance(t2), Ga("collection", "path", e), t2 instanceof Za) { + const s = rt.fromString(e, ...n); + return ja(s), new nh(t2, null, s); + } + { + if (!(t2 instanceof th || t2 instanceof nh)) + throw new L(B.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore"); + const s = t2._path.child(rt.fromString(e, ...n)); + return ja(s), new nh( + t2.firestore, + null, + s + ); + } +} +function rh(t2, e, ...n) { + if (t2 = getModularInstance(t2), 1 === arguments.length && (e = Z.A()), Ga("doc", "path", e), t2 instanceof Za) { + const s = rt.fromString(e, ...n); + return za(s), new th( + t2, + null, + new ct(s) + ); + } + { + if (!(t2 instanceof th || t2 instanceof nh)) + throw new L(B.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore"); + const s = t2._path.child(rt.fromString(e, ...n)); + return za(s), new th(t2.firestore, t2 instanceof nh ? t2.converter : null, new ct(s)); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ch { + constructor() { + this.Nc = Promise.resolve(), this.kc = [], this.Oc = false, this.$c = [], this.Mc = null, this.Fc = false, this.Bc = false, this.Lc = [], this.Co = new Su(this, "async_queue_retry"), this.qc = () => { + const t3 = Pu(); + t3 && C("AsyncQueue", "Visibility state changed to " + t3.visibilityState), this.Co.vo(); + }; + const t2 = Pu(); + t2 && "function" == typeof t2.addEventListener && t2.addEventListener("visibilitychange", this.qc); + } + get isShuttingDown() { + return this.Oc; + } + enqueueAndForget(t2) { + this.enqueue(t2); + } + enqueueAndForgetEvenWhileRestricted(t2) { + this.Uc(), this.Kc(t2); + } + enterRestrictedMode(t2) { + if (!this.Oc) { + this.Oc = true, this.Bc = t2 || false; + const e = Pu(); + e && "function" == typeof e.removeEventListener && e.removeEventListener("visibilitychange", this.qc); + } + } + enqueue(t2) { + if (this.Uc(), this.Oc) + return new Promise(() => { + }); + const e = new q(); + return this.Kc(() => this.Oc && this.Bc ? Promise.resolve() : (t2().then(e.resolve, e.reject), e.promise)).then(() => e.promise); + } + enqueueRetryable(t2) { + this.enqueueAndForget(() => (this.kc.push(t2), this.Gc())); + } + async Gc() { + if (0 !== this.kc.length) { + try { + await this.kc[0](), this.kc.shift(), this.Co.reset(); + } catch (t2) { + if (!Vt(t2)) + throw t2; + C("AsyncQueue", "Operation failed with retryable error: " + t2); + } + this.kc.length > 0 && this.Co.Ao(() => this.Gc()); + } + } + Kc(t2) { + const e = this.Nc.then(() => (this.Fc = true, t2().catch((t3) => { + this.Mc = t3, this.Fc = false; + const e2 = function(t4) { + let e3 = t4.message || ""; + t4.stack && (e3 = t4.stack.includes(t4.message) ? t4.stack : t4.message + "\n" + t4.stack); + return e3; + }(t3); + throw x("INTERNAL UNHANDLED ERROR: ", e2), t3; + }).then((t3) => (this.Fc = false, t3)))); + return this.Nc = e, e; + } + enqueueAfterDelay(t2, e, n) { + this.Uc(), this.Lc.indexOf(t2) > -1 && (e = 0); + const s = lc.createAndSchedule(this, t2, e, n, (t3) => this.Qc(t3)); + return this.$c.push(s), s; + } + Uc() { + this.Mc && O(); + } + verifyOperationInProgress() { + } + async zc() { + let t2; + do { + t2 = this.Nc, await t2; + } while (t2 !== this.Nc); + } + jc(t2) { + for (const e of this.$c) + if (e.timerId === t2) + return true; + return false; + } + Wc(t2) { + return this.zc().then(() => { + this.$c.sort((t3, e) => t3.targetTimeMs - e.targetTimeMs); + for (const e of this.$c) + if (e.skipDelay(), "all" !== t2 && e.timerId === t2) + break; + return this.zc(); + }); + } + Hc(t2) { + this.Lc.push(t2); + } + Qc(t2) { + const e = this.$c.indexOf(t2); + this.$c.splice(e, 1); + } +} +function ah(t2) { + return function(t3, e) { + if ("object" != typeof t3 || null === t3) + return false; + const n = t3; + for (const t4 of e) + if (t4 in n && "function" == typeof n[t4]) + return true; + return false; + }(t2, ["next", "error", "complete"]); +} +class fh extends Za { + constructor(t2, e, n, s) { + super(t2, e, n, s), this.type = "firestore", this._queue = new ch(), this._persistenceKey = (null == s ? void 0 : s.name) || "[DEFAULT]"; + } + _terminate() { + return this._firestoreClient || mh(this), this._firestoreClient.terminate(); + } +} +function wh(e, n) { + const s = "object" == typeof e ? e : getApp(), i = "string" == typeof e ? e : n || "(default)", r = _getProvider(s, "firestore").getImmediate({ + identifier: i + }); + if (!r._initialized) { + const t2 = getDefaultEmulatorHostnameAndPort("firestore"); + t2 && Xa(r, ...t2); + } + return r; +} +function _h(t2) { + return t2._firestoreClient || mh(t2), t2._firestoreClient.verifyNotTerminated(), t2._firestoreClient; +} +function mh(t2) { + var e, n, s; + const i = t2._freezeSettings(), r = function(t3, e2, n2, s2) { + return new ke(t3, e2, n2, s2.host, s2.ssl, s2.experimentalForceLongPolling, s2.experimentalAutoDetectLongPolling, s2.useFetchStreams); + }(t2._databaseId, (null === (e = t2._app) || void 0 === e ? void 0 : e.options.appId) || "", t2._persistenceKey, i); + t2._firestoreClient = new Ta(t2._authCredentials, t2._appCheckCredentials, t2._queue, r), (null === (n = i.cache) || void 0 === n ? void 0 : n._offlineComponentProvider) && (null === (s = i.cache) || void 0 === s ? void 0 : s._onlineComponentProvider) && (t2._firestoreClient._uninitializedComponentsProvider = { + _offlineKind: i.cache.kind, + _offline: i.cache._offlineComponentProvider, + _online: i.cache._onlineComponentProvider + }); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Dh { + constructor(t2) { + this._byteString = t2; + } + static fromBase64String(t2) { + try { + return new Dh(be.fromBase64String(t2)); + } catch (t3) { + throw new L(B.INVALID_ARGUMENT, "Failed to construct data from Base64 string: " + t3); + } + } + static fromUint8Array(t2) { + return new Dh(be.fromUint8Array(t2)); + } + toBase64() { + return this._byteString.toBase64(); + } + toUint8Array() { + return this._byteString.toUint8Array(); + } + toString() { + return "Bytes(base64: " + this.toBase64() + ")"; + } + isEqual(t2) { + return this._byteString.isEqual(t2._byteString); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Ch { + constructor(...t2) { + for (let e = 0; e < t2.length; ++e) + if (0 === t2[e].length) + throw new L(B.INVALID_ARGUMENT, "Invalid field name at argument $(i + 1). Field names must not be empty."); + this._internalPath = new ut(t2); + } + isEqual(t2) { + return this._internalPath.isEqual(t2._internalPath); + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Nh { + constructor(t2) { + this._methodName = t2; + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class kh { + constructor(t2, e) { + if (!isFinite(t2) || t2 < -90 || t2 > 90) + throw new L(B.INVALID_ARGUMENT, "Latitude must be a number between -90 and 90, but was: " + t2); + if (!isFinite(e) || e < -180 || e > 180) + throw new L(B.INVALID_ARGUMENT, "Longitude must be a number between -180 and 180, but was: " + e); + this._lat = t2, this._long = e; + } + get latitude() { + return this._lat; + } + get longitude() { + return this._long; + } + isEqual(t2) { + return this._lat === t2._lat && this._long === t2._long; + } + toJSON() { + return { + latitude: this._lat, + longitude: this._long + }; + } + _compareTo(t2) { + return X(this._lat, t2._lat) || X(this._long, t2._long); + } +} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const Oh = /^__.*__$/; +class $h { + constructor(t2, e, n) { + this.data = t2, this.fieldMask = e, this.fieldTransforms = n; + } + toMutation(t2, e) { + return null !== this.fieldMask ? new Gs(t2, this.data, this.fieldMask, e, this.fieldTransforms) : new Ks(t2, this.data, e, this.fieldTransforms); + } +} +class Mh { + constructor(t2, e, n) { + this.data = t2, this.fieldMask = e, this.fieldTransforms = n; + } + toMutation(t2, e) { + return new Gs(t2, this.data, this.fieldMask, e, this.fieldTransforms); + } +} +function Fh(t2) { + switch (t2) { + case 0: + case 2: + case 1: + return true; + case 3: + case 4: + return false; + default: + throw O(); + } +} +class Bh { + constructor(t2, e, n, s, i, r) { + this.settings = t2, this.databaseId = e, this.serializer = n, this.ignoreUndefinedProperties = s, void 0 === i && this.Jc(), this.fieldTransforms = i || [], this.fieldMask = r || []; + } + get path() { + return this.settings.path; + } + get Yc() { + return this.settings.Yc; + } + Zc(t2) { + return new Bh(Object.assign(Object.assign({}, this.settings), t2), this.databaseId, this.serializer, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask); + } + Xc(t2) { + var e; + const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t2), s = this.Zc({ + path: n, + ta: false + }); + return s.ea(t2), s; + } + na(t2) { + var e; + const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t2), s = this.Zc({ + path: n, + ta: false + }); + return s.Jc(), s; + } + sa(t2) { + return this.Zc({ + path: void 0, + ta: true + }); + } + ia(t2) { + return rl(t2, this.settings.methodName, this.settings.ra || false, this.path, this.settings.oa); + } + contains(t2) { + return void 0 !== this.fieldMask.find((e) => t2.isPrefixOf(e)) || void 0 !== this.fieldTransforms.find((e) => t2.isPrefixOf(e.field)); + } + Jc() { + if (this.path) + for (let t2 = 0; t2 < this.path.length; t2++) + this.ea(this.path.get(t2)); + } + ea(t2) { + if (0 === t2.length) + throw this.ia("Document fields must not be empty"); + if (Fh(this.Yc) && Oh.test(t2)) + throw this.ia('Document fields cannot begin and end with "__"'); + } +} +class Lh { + constructor(t2, e, n) { + this.databaseId = t2, this.ignoreUndefinedProperties = e, this.serializer = n || Vu(t2); + } + ua(t2, e, n, s = false) { + return new Bh({ + Yc: t2, + methodName: e, + oa: n, + path: ut.emptyPath(), + ta: false, + ra: s + }, this.databaseId, this.serializer, this.ignoreUndefinedProperties); + } +} +function qh(t2) { + const e = t2._freezeSettings(), n = Vu(t2._databaseId); + return new Lh(t2._databaseId, !!e.ignoreUndefinedProperties, n); +} +function Uh(t2, e, n, s, i, r = {}) { + const o = t2.ua(r.merge || r.mergeFields ? 2 : 0, e, n, i); + el("Data must be an object, but it was:", o, s); + const u = Xh(s, o); + let c, a; + if (r.merge) + c = new Ae(o.fieldMask), a = o.fieldTransforms; + else if (r.mergeFields) { + const t3 = []; + for (const s2 of r.mergeFields) { + const i2 = nl(e, s2, n); + if (!o.contains(i2)) + throw new L(B.INVALID_ARGUMENT, `Field '${i2}' is specified in your field mask but missing from your input data.`); + ol(t3, i2) || t3.push(i2); + } + c = new Ae(t3), a = o.fieldTransforms.filter((t4) => c.covers(t4.field)); + } else + c = null, a = o.fieldTransforms; + return new $h(new sn(u), c, a); +} +class Kh extends Nh { + _toFieldTransform(t2) { + if (2 !== t2.Yc) + throw 1 === t2.Yc ? t2.ia(`${this._methodName}() can only appear at the top level of your update data`) : t2.ia(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`); + return t2.fieldMask.push(t2.path), null; + } + isEqual(t2) { + return t2 instanceof Kh; + } +} +function Gh(t2, e, n) { + return new Bh({ + Yc: 3, + oa: e.settings.oa, + methodName: t2._methodName, + ta: n + }, e.databaseId, e.serializer, e.ignoreUndefinedProperties); +} +class zh extends Nh { + constructor(t2, e) { + super(t2), this.ca = e; + } + _toFieldTransform(t2) { + const e = Gh( + this, + t2, + true + ), n = this.ca.map((t3) => Zh(t3, e)), s = new vs(n); + return new xs(t2.path, s); + } + isEqual(t2) { + return this === t2; + } +} +class jh extends Nh { + constructor(t2, e) { + super(t2), this.ca = e; + } + _toFieldTransform(t2) { + const e = Gh( + this, + t2, + true + ), n = this.ca.map((t3) => Zh(t3, e)), s = new Ps(n); + return new xs(t2.path, s); + } + isEqual(t2) { + return this === t2; + } +} +function Hh(t2, e, n, s) { + const i = t2.ua(1, e, n); + el("Data must be an object, but it was:", i, s); + const r = [], o = sn.empty(); + _e(s, (t3, s2) => { + const u2 = il(e, t3, n); + s2 = getModularInstance(s2); + const c = i.na(u2); + if (s2 instanceof Kh) + r.push(u2); + else { + const t4 = Zh(s2, c); + null != t4 && (r.push(u2), o.set(u2, t4)); + } + }); + const u = new Ae(r); + return new Mh(o, u, i.fieldTransforms); +} +function Jh(t2, e, n, s, i, r) { + const o = t2.ua(1, e, n), u = [nl(e, s, n)], c = [i]; + if (r.length % 2 != 0) + throw new L(B.INVALID_ARGUMENT, `Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`); + for (let t3 = 0; t3 < r.length; t3 += 2) + u.push(nl(e, r[t3])), c.push(r[t3 + 1]); + const a = [], h = sn.empty(); + for (let t3 = u.length - 1; t3 >= 0; --t3) + if (!ol(a, u[t3])) { + const e2 = u[t3]; + let n2 = c[t3]; + n2 = getModularInstance(n2); + const s2 = o.na(e2); + if (n2 instanceof Kh) + a.push(e2); + else { + const t4 = Zh(n2, s2); + null != t4 && (a.push(e2), h.set(e2, t4)); + } + } + const l2 = new Ae(a); + return new Mh(h, l2, o.fieldTransforms); +} +function Yh(t2, e, n, s = false) { + return Zh(n, t2.ua(s ? 4 : 3, e)); +} +function Zh(t2, e) { + if (tl( + t2 = getModularInstance(t2) + )) + return el("Unsupported field value:", e, t2), Xh(t2, e); + if (t2 instanceof Nh) + return function(t3, e2) { + if (!Fh(e2.Yc)) + throw e2.ia(`${t3._methodName}() can only be used with update() and set()`); + if (!e2.path) + throw e2.ia(`${t3._methodName}() is not currently supported inside arrays`); + const n = t3._toFieldTransform(e2); + n && e2.fieldTransforms.push(n); + }(t2, e), null; + if (void 0 === t2 && e.ignoreUndefinedProperties) + return null; + if (e.path && e.fieldMask.push(e.path), t2 instanceof Array) { + if (e.settings.ta && 4 !== e.Yc) + throw e.ia("Nested arrays are not supported"); + return function(t3, e2) { + const n = []; + let s = 0; + for (const i of t3) { + let t4 = Zh(i, e2.sa(s)); + null == t4 && (t4 = { + nullValue: "NULL_VALUE" + }), n.push(t4), s++; + } + return { + arrayValue: { + values: n + } + }; + }(t2, e); + } + return function(t3, e2) { + if (null === (t3 = getModularInstance(t3))) + return { + nullValue: "NULL_VALUE" + }; + if ("number" == typeof t3) + return ps(e2.serializer, t3); + if ("boolean" == typeof t3) + return { + booleanValue: t3 + }; + if ("string" == typeof t3) + return { + stringValue: t3 + }; + if (t3 instanceof Date) { + const n = nt.fromDate(t3); + return { + timestampValue: Ei(e2.serializer, n) + }; + } + if (t3 instanceof nt) { + const n = new nt(t3.seconds, 1e3 * Math.floor(t3.nanoseconds / 1e3)); + return { + timestampValue: Ei(e2.serializer, n) + }; + } + if (t3 instanceof kh) + return { + geoPointValue: { + latitude: t3.latitude, + longitude: t3.longitude + } + }; + if (t3 instanceof Dh) + return { + bytesValue: Ai(e2.serializer, t3._byteString) + }; + if (t3 instanceof th) { + const n = e2.databaseId, s = t3.firestore._databaseId; + if (!s.isEqual(n)) + throw e2.ia(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${n.projectId}/${n.database}`); + return { + referenceValue: bi(t3.firestore._databaseId || e2.databaseId, t3._key.path) + }; + } + throw e2.ia(`Unsupported field value: ${Wa(t3)}`); + }(t2, e); +} +function Xh(t2, e) { + const n = {}; + return me(t2) ? e.path && e.path.length > 0 && e.fieldMask.push(e.path) : _e(t2, (t3, s) => { + const i = Zh(s, e.Xc(t3)); + null != i && (n[t3] = i); + }), { + mapValue: { + fields: n + } + }; +} +function tl(t2) { + return !("object" != typeof t2 || null === t2 || t2 instanceof Array || t2 instanceof Date || t2 instanceof nt || t2 instanceof kh || t2 instanceof Dh || t2 instanceof th || t2 instanceof Nh); +} +function el(t2, e, n) { + if (!tl(n) || !function(t3) { + return "object" == typeof t3 && null !== t3 && (Object.getPrototypeOf(t3) === Object.prototype || null === Object.getPrototypeOf(t3)); + }(n)) { + const s = Wa(n); + throw "an object" === s ? e.ia(t2 + " a custom object") : e.ia(t2 + " " + s); + } +} +function nl(t2, e, n) { + if ((e = getModularInstance(e)) instanceof Ch) + return e._internalPath; + if ("string" == typeof e) + return il(t2, e); + throw rl( + "Field path arguments must be of type string or ", + t2, + false, + void 0, + n + ); +} +const sl = new RegExp("[~\\*/\\[\\]]"); +function il(t2, e, n) { + if (e.search(sl) >= 0) + throw rl( + `Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`, + t2, + false, + void 0, + n + ); + try { + return new Ch(...e.split("."))._internalPath; + } catch (s) { + throw rl( + `Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`, + t2, + false, + void 0, + n + ); + } +} +function rl(t2, e, n, s, i) { + const r = s && !s.isEmpty(), o = void 0 !== i; + let u = `Function ${e}() called with invalid data`; + n && (u += " (via `toFirestore()`)"), u += ". "; + let c = ""; + return (r || o) && (c += " (found", r && (c += ` in field ${s}`), o && (c += ` in document ${i}`), c += ")"), new L(B.INVALID_ARGUMENT, u + t2 + c); +} +function ol(t2, e) { + return t2.some((t3) => t3.isEqual(e)); +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ul { + constructor(t2, e, n, s, i) { + this._firestore = t2, this._userDataWriter = e, this._key = n, this._document = s, this._converter = i; + } + get id() { + return this._key.path.lastSegment(); + } + get ref() { + return new th(this._firestore, this._converter, this._key); + } + exists() { + return null !== this._document; + } + data() { + if (this._document) { + if (this._converter) { + const t2 = new cl( + this._firestore, + this._userDataWriter, + this._key, + this._document, + null + ); + return this._converter.fromFirestore(t2); + } + return this._userDataWriter.convertValue(this._document.data.value); + } + } + get(t2) { + if (this._document) { + const e = this._document.data.field(al("DocumentSnapshot.get", t2)); + if (null !== e) + return this._userDataWriter.convertValue(e); + } + } +} +class cl extends ul { + data() { + return super.data(); + } +} +function al(t2, e) { + return "string" == typeof e ? il(t2, e) : e instanceof Ch ? e._internalPath : e._delegate._internalPath; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function hl(t2) { + if ("L" === t2.limitType && 0 === t2.explicitOrderBy.length) + throw new L(B.UNIMPLEMENTED, "limitToLast() queries require specifying at least one orderBy() clause"); +} +class ll { +} +class fl extends ll { +} +function dl(t2, e, ...n) { + let s = []; + e instanceof ll && s.push(e), s = s.concat(n), function(t3) { + const e2 = t3.filter((t4) => t4 instanceof ml).length, n2 = t3.filter((t4) => t4 instanceof wl).length; + if (e2 > 1 || e2 > 0 && n2 > 0) + throw new L(B.INVALID_ARGUMENT, "InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`."); + }(s); + for (const e2 of s) + t2 = e2._apply(t2); + return t2; +} +class wl extends fl { + constructor(t2, e, n) { + super(), this._field = t2, this._op = e, this._value = n, this.type = "where"; + } + static _create(t2, e, n) { + return new wl(t2, e, n); + } + _apply(t2) { + const e = this._parse(t2); + return Nl(t2._query, e), new eh(t2.firestore, t2.converter, Wn(t2._query, e)); + } + _parse(t2) { + const e = qh(t2.firestore), n = function(t3, e2, n2, s, i, r, o) { + let u; + if (i.isKeyField()) { + if ("array-contains" === r || "array-contains-any" === r) + throw new L(B.INVALID_ARGUMENT, `Invalid Query. You can't perform '${r}' queries on documentId().`); + if ("in" === r || "not-in" === r) { + xl(o, r); + const e3 = []; + for (const n3 of o) + e3.push(Cl(s, t3, n3)); + u = { + arrayValue: { + values: e3 + } + }; + } else + u = Cl(s, t3, o); + } else + "in" !== r && "not-in" !== r && "array-contains-any" !== r || xl(o, r), u = Yh( + n2, + e2, + o, + "in" === r || "not-in" === r + ); + return dn.create(i, r, u); + }(t2._query, "where", e, t2.firestore._databaseId, this._field, this._op, this._value); + return n; + } +} +class ml extends ll { + constructor(t2, e) { + super(), this.type = t2, this._queryConstraints = e; + } + static _create(t2, e) { + return new ml(t2, e); + } + _parse(t2) { + const e = this._queryConstraints.map((e2) => e2._parse(t2)).filter((t3) => t3.getFilters().length > 0); + return 1 === e.length ? e[0] : wn.create(e, this._getOperator()); + } + _apply(t2) { + const e = this._parse(t2); + return 0 === e.getFilters().length ? t2 : (function(t3, e2) { + let n = t3; + const s = e2.getFlattenedFilters(); + for (const t4 of s) + Nl(n, t4), n = Wn(n, t4); + }(t2._query, e), new eh(t2.firestore, t2.converter, Wn(t2._query, e))); + } + _getQueryConstraints() { + return this._queryConstraints; + } + _getOperator() { + return "and" === this.type ? "and" : "or"; + } +} +function Cl(t2, e, n) { + if ("string" == typeof (n = getModularInstance(n))) { + if ("" === n) + throw new L(B.INVALID_ARGUMENT, "Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string."); + if (!Qn(e) && -1 !== n.indexOf("/")) + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`); + const s = e.path.child(rt.fromString(n)); + if (!ct.isDocumentKey(s)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${s}' is not because it has an odd number of segments (${s.length}).`); + return Qe(t2, new ct(s)); + } + if (n instanceof th) + return Qe(t2, n._key); + throw new L(B.INVALID_ARGUMENT, `Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${Wa(n)}.`); +} +function xl(t2, e) { + if (!Array.isArray(t2) || 0 === t2.length) + throw new L(B.INVALID_ARGUMENT, `Invalid Query. A non-empty array is required for '${e.toString()}' filters.`); +} +function Nl(t2, e) { + if (e.isInequality()) { + const n2 = Gn(t2), s = e.field; + if (null !== n2 && !n2.isEqual(s)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n2.toString()}' and '${s.toString()}'`); + const i = Kn(t2); + null !== i && kl(t2, s, i); + } + const n = function(t3, e2) { + for (const n2 of t3) + for (const t4 of n2.getFlattenedFilters()) + if (e2.indexOf(t4.op) >= 0) + return t4.op; + return null; + }(t2.filters, function(t3) { + switch (t3) { + case "!=": + return ["!=", "not-in"]; + case "array-contains-any": + case "in": + return ["not-in"]; + case "not-in": + return ["array-contains-any", "in", "not-in", "!="]; + default: + return []; + } + }(e.op)); + if (null !== n) + throw n === e.op ? new L(B.INVALID_ARGUMENT, `Invalid query. You cannot use more than one '${e.op.toString()}' filter.`) : new L(B.INVALID_ARGUMENT, `Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`); +} +function kl(t2, e, n) { + if (!n.isEqual(e)) + throw new L(B.INVALID_ARGUMENT, `Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`); +} +class $l { + convertValue(t2, e = "none") { + switch (Fe(t2)) { + case 0: + return null; + case 1: + return t2.booleanValue; + case 2: + return Se(t2.integerValue || t2.doubleValue); + case 3: + return this.convertTimestamp(t2.timestampValue); + case 4: + return this.convertServerTimestamp(t2, e); + case 5: + return t2.stringValue; + case 6: + return this.convertBytes(De(t2.bytesValue)); + case 7: + return this.convertReference(t2.referenceValue); + case 8: + return this.convertGeoPoint(t2.geoPointValue); + case 9: + return this.convertArray(t2.arrayValue, e); + case 10: + return this.convertObject(t2.mapValue, e); + default: + throw O(); + } + } + convertObject(t2, e) { + const n = {}; + return _e(t2.fields, (t3, s) => { + n[t3] = this.convertValue(s, e); + }), n; + } + convertGeoPoint(t2) { + return new kh(Se(t2.latitude), Se(t2.longitude)); + } + convertArray(t2, e) { + return (t2.values || []).map((t3) => this.convertValue(t3, e)); + } + convertServerTimestamp(t2, e) { + switch (e) { + case "previous": + const n = xe(t2); + return null == n ? null : this.convertValue(n, e); + case "estimate": + return this.convertTimestamp(Ne(t2)); + default: + return null; + } + } + convertTimestamp(t2) { + const e = Ve(t2); + return new nt(e.seconds, e.nanos); + } + convertDocumentKey(t2, e) { + const n = rt.fromString(t2); + $(Xi(n)); + const s = new Oe(n.get(1), n.get(3)), i = new ct(n.popFirst(5)); + return s.isEqual(e) || x(`Document ${i} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`), i; + } +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function Ml(t2, e, n) { + let s; + return s = t2 ? n && (n.merge || n.mergeFields) ? t2.toFirestore(e, n) : t2.toFirestore(e) : e, s; +} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Gl { + constructor(t2, e) { + this.hasPendingWrites = t2, this.fromCache = e; + } + isEqual(t2) { + return this.hasPendingWrites === t2.hasPendingWrites && this.fromCache === t2.fromCache; + } +} +class Ql extends ul { + constructor(t2, e, n, s, i, r) { + super(t2, e, n, s, r), this._firestore = t2, this._firestoreImpl = t2, this.metadata = i; + } + exists() { + return super.exists(); + } + data(t2 = {}) { + if (this._document) { + if (this._converter) { + const e = new zl( + this._firestore, + this._userDataWriter, + this._key, + this._document, + this.metadata, + null + ); + return this._converter.fromFirestore(e, t2); + } + return this._userDataWriter.convertValue(this._document.data.value, t2.serverTimestamps); + } + } + get(t2, e = {}) { + if (this._document) { + const n = this._document.data.field(al("DocumentSnapshot.get", t2)); + if (null !== n) + return this._userDataWriter.convertValue(n, e.serverTimestamps); + } + } +} +class zl extends Ql { + data(t2 = {}) { + return super.data(t2); + } +} +class jl { + constructor(t2, e, n, s) { + this._firestore = t2, this._userDataWriter = e, this._snapshot = s, this.metadata = new Gl(s.hasPendingWrites, s.fromCache), this.query = n; + } + get docs() { + const t2 = []; + return this.forEach((e) => t2.push(e)), t2; + } + get size() { + return this._snapshot.docs.size; + } + get empty() { + return 0 === this.size; + } + forEach(t2, e) { + this._snapshot.docs.forEach((n) => { + t2.call(e, new zl(this._firestore, this._userDataWriter, n.key, n, new Gl(this._snapshot.mutatedKeys.has(n.key), this._snapshot.fromCache), this.query.converter)); + }); + } + docChanges(t2 = {}) { + const e = !!t2.includeMetadataChanges; + if (e && this._snapshot.excludesMetadataChanges) + throw new L(B.INVALID_ARGUMENT, "To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot()."); + return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === e || (this._cachedChanges = function(t3, e2) { + if (t3._snapshot.oldDocs.isEmpty()) { + let e3 = 0; + return t3._snapshot.docChanges.map((n) => { + const s = new zl(t3._firestore, t3._userDataWriter, n.doc.key, n.doc, new Gl(t3._snapshot.mutatedKeys.has(n.doc.key), t3._snapshot.fromCache), t3.query.converter); + return n.doc, { + type: "added", + doc: s, + oldIndex: -1, + newIndex: e3++ + }; + }); + } + { + let n = t3._snapshot.oldDocs; + return t3._snapshot.docChanges.filter((t4) => e2 || 3 !== t4.type).map((e3) => { + const s = new zl(t3._firestore, t3._userDataWriter, e3.doc.key, e3.doc, new Gl(t3._snapshot.mutatedKeys.has(e3.doc.key), t3._snapshot.fromCache), t3.query.converter); + let i = -1, r = -1; + return 0 !== e3.type && (i = n.indexOf(e3.doc.key), n = n.delete(e3.doc.key)), 1 !== e3.type && (n = n.add(e3.doc), r = n.indexOf(e3.doc.key)), { + type: Wl(e3.type), + doc: s, + oldIndex: i, + newIndex: r + }; + }); + } + }(this, e), this._cachedChangesIncludeMetadataChanges = e), this._cachedChanges; + } +} +function Wl(t2) { + switch (t2) { + case 0: + return "added"; + case 2: + case 3: + return "modified"; + case 1: + return "removed"; + default: + return O(); + } +} +class Yl extends $l { + constructor(t2) { + super(), this.firestore = t2; + } + convertBytes(t2) { + return new Dh(t2); + } + convertReference(t2) { + const e = this.convertDocumentKey(t2, this.firestore._databaseId); + return new th(this.firestore, null, e); + } +} +function rf(t2, e, n, ...s) { + t2 = Ha(t2, th); + const i = Ha(t2.firestore, fh), r = qh(i); + let o; + o = "string" == typeof (e = getModularInstance(e)) || e instanceof Ch ? Jh(r, "updateDoc", t2._key, e, n, s) : Hh(r, "updateDoc", t2._key, e); + return hf(i, [o.toMutation(t2._key, Os.exists(true))]); +} +function of(t2) { + return hf(Ha(t2.firestore, fh), [new Ws(t2._key, Os.none())]); +} +function uf(t2, e) { + const n = Ha(t2.firestore, fh), s = rh(t2), i = Ml(t2.converter, e); + return hf(n, [Uh(qh(t2.firestore), "addDoc", s._key, i, null !== t2.converter, {}).toMutation(s._key, Os.exists(false))]).then(() => s); +} +function cf(t2, ...e) { + var n, s, i; + t2 = getModularInstance(t2); + let r = { + includeMetadataChanges: false + }, o = 0; + "object" != typeof e[o] || ah(e[o]) || (r = e[o], o++); + const u = { + includeMetadataChanges: r.includeMetadataChanges + }; + if (ah(e[o])) { + const t3 = e[o]; + e[o] = null === (n = t3.next) || void 0 === n ? void 0 : n.bind(t3), e[o + 1] = null === (s = t3.error) || void 0 === s ? void 0 : s.bind(t3), e[o + 2] = null === (i = t3.complete) || void 0 === i ? void 0 : i.bind(t3); + } + let c, a, h; + if (t2 instanceof th) + a = Ha(t2.firestore, fh), h = qn(t2._key.path), c = { + next: (n2) => { + e[o] && e[o](lf(a, t2, n2)); + }, + error: e[o + 1], + complete: e[o + 2] + }; + else { + const n2 = Ha(t2, eh); + a = Ha(n2.firestore, fh), h = n2._query; + const s2 = new Yl(a); + c = { + next: (t3) => { + e[o] && e[o](new jl(a, s2, n2, t3)); + }, + error: e[o + 1], + complete: e[o + 2] + }, hl(t2._query); + } + return function(t3, e2, n2, s2) { + const i2 = new ga(s2), r2 = new Ac(e2, i2, n2); + return t3.asyncQueue.enqueueAndForget(async () => yc(await xa(t3), r2)), () => { + i2.yc(), t3.asyncQueue.enqueueAndForget(async () => pc(await xa(t3), r2)); + }; + }(_h(a), h, u, c); +} +function hf(t2, e) { + return function(t3, e2) { + const n = new q(); + return t3.asyncQueue.enqueueAndForget(async () => Mc(await Da(t3), e2, n)), n.promise; + }(_h(t2), e); +} +function lf(t2, e, n) { + const s = n.docs.get(e._key), i = new Yl(t2); + return new Ql(t2, i, e._key, s, new Gl(n.hasPendingWrites, n.fromCache), e.converter); +} +function Sf(...t2) { + return new zh("arrayUnion", t2); +} +function Df(...t2) { + return new jh("arrayRemove", t2); +} +!function(t2, e = true) { + !function(t3) { + P = t3; + }(SDK_VERSION), _registerComponent(new Component("firestore", (t3, { instanceIdentifier: n, options: s }) => { + const i = t3.getProvider("app").getImmediate(), r = new fh(new Q(t3.getProvider("auth-internal")), new H(t3.getProvider("app-check-internal")), function(t4, e2) { + if (!Object.prototype.hasOwnProperty.apply(t4.options, ["projectId"])) + throw new L(B.INVALID_ARGUMENT, '"projectId" not provided in firebase.initializeApp.'); + return new Oe(t4.options.projectId, e2); + }(i, n), i); + return s = Object.assign({ + useFetchStreams: e + }, s), r._setSettings(s), r; + }, "PUBLIC").setMultipleInstances(true)), registerVersion(v, "3.10.0", t2), registerVersion(v, "3.10.0", "esm2017"); +}(); +var name = "firebase"; +var version = "9.19.1"; +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +registerVersion(name, version, "app"); +const firebaseConfig = { + apiKey: "AIzaSyC8ACKL8U4ji8bqmmykq8warjqGgCuZTZg", + authDomain: "social-network-dev-005.firebaseapp.com", + projectId: "social-network-dev-005", + storageBucket: "social-network-dev-005.appspot.com", + messagingSenderId: "974878862098", + appId: "1:974878862098:web:3992591ee2ebb888c6e1cb" +}; +const app = initializeApp(firebaseConfig); +const auth = getAuth(app); +const db = wh(app); +const ref = () => dl(sh(db, "posts")); +const colPost = sh(db, "posts"); +const post = (postText) => { + uf(colPost, { + text: postText, + userEmail: auth.currentUser.email, + likes: [] + }); +}; +const editPost = (id2, text) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + text + }); +}; +const deleteDocData = (id2) => { + of(rh(db, "posts", `${id2}`)); +}; +const like = (id2, email) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + likes: Sf(email) + }); +}; +const disLike = (id2, email) => { + const postRef = rh(db, "posts", `${id2}`); + rf(postRef, { + likes: Df(email) + }); +}; +function home(navigateTo2) { + const postForm = document.createElement("section"); + postForm.classList.add("home"); + postForm.innerHTML = ` + +
+ + +
+ `; + const salir = postForm.querySelector(".goOut"); + salir.addEventListener("click", () => { + signOut(auth).then(() => { + navigateTo2("/"); + }).catch(() => { + }); + }); + const buttonPost = postForm.querySelector(".post"); + buttonPost.addEventListener("click", (e) => { + e.preventDefault(); + const textarea = postForm.querySelector(".areaPost"); + const postText = textarea.value; + if (postText.trim() !== "") { + post(postText); + } else { + alert("Ingrese post"); + } + textarea.value = ""; + }); + const printPost = (info, doc) => { + const postContainer = document.createElement("div"); + postContainer.classList.add("divPost"); + const name2 = document.createElement("h6"); + name2.classList.add("userName"); + postContainer.appendChild(name2); + name2.innerHTML = `${info.userEmail}`; + const textarea = document.createElement("textarea"); + textarea.classList.add("showPost"); + textarea.value = info.text; + postContainer.setAttribute("data-id", doc.id); + textarea.setAttribute("readonly", true); + postContainer.appendChild(textarea); + const buttonsContainer = document.createElement("div"); + buttonsContainer.classList.add("buttonsPost"); + const editButton = document.createElement("button"); + editButton.classList.add("edit"); + editButton.textContent = "Editar"; + editButton.addEventListener("click", () => { + if (editButton.textContent === "Editar") { + editButton.textContent = "Guardar"; + textarea.removeAttribute("readonly"); + } else if (editButton.textContent === "Guardar") { + const editedTextarea = postContainer.querySelector("textarea").value; + editPost(doc.id, editedTextarea); + editButton.textContent = "Editar"; + textarea.setAttribute("readonly", true); + } + }); + if (auth.currentUser.email === info.userEmail) { + buttonsContainer.appendChild(editButton); + } + const deleteButton = document.createElement("button"); + deleteButton.classList.add("delete-btn"); + deleteButton.textContent = "Eliminar"; + deleteButton.addEventListener("click", () => { + const confirmDelete = confirm("\xBFEst\xE1s seguro que deseas eliminar este post?"); + if (confirmDelete) { + deleteDocData(doc.id); + deleteButton.value = doc.id; + deleteButton.closest(".divPost").remove(); + } + }); + if (auth.currentUser.email === info.userEmail) { + buttonsContainer.appendChild(deleteButton); + } + const likeButton = document.createElement("button"); + likeButton.classList.add("like-btn"); + likeButton.addEventListener("click", () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + buttonsContainer.appendChild(likeButton); + postContainer.appendChild(buttonsContainer); + postForm.appendChild(postContainer); + return postForm; + }; + cf(ref(), (querySnapshot) => { + querySnapshot.forEach((doc) => { + const postInfo = doc.data(); + const postExists = postForm.querySelector(`div[data-id="${doc.id}"]`); + if (postExists) { + const textarea = document.querySelector(".showPost"); + textarea.removeAttribute("readonly"); + } else { + const nodoP = printPost(postInfo, doc); + nodoP.setAttribute("data-id", doc.id); + } + const buttonLike = postForm.querySelector(`div[data-id="${doc.id}"]`).querySelector(".like-btn"); + buttonLike.innerHTML = ` ${postInfo.likes.length}`; + if (buttonLike) { + buttonLike.addEventListener("click", () => { + if (doc.data().likes.includes(auth.currentUser.email)) { + disLike(doc.id, auth.currentUser.email); + } else { + like(doc.id, auth.currentUser.email); + } + }); + } + }); + }); + localStorage.getItem("userId"); + return postForm; +} +const provider = new GoogleAuthProvider(); +const loginWithGoogle = () => signInWithPopup(auth, provider); +const createUser = (email, password) => createUserWithEmailAndPassword(auth, email, password); +const signIn = (email, password) => signInWithEmailAndPassword(auth, email, password); +function init(navigateTo2) { + const section = document.createElement("section"); + section.classList.add("init"); + section.innerHTML = ` + + + + + + `; + const logIn = section.querySelector(".logIn"); + logIn.addEventListener("click", () => { + navigateTo2("/login"); + }); + const register = section.querySelector(".register"); + register.addEventListener("click", () => { + navigateTo2("/register"); + }); + const google = section.querySelector(".google"); + google.addEventListener("click", () => { + loginWithGoogle().then(() => { + navigateTo2("/emprende"); + }).catch(() => { + }); + }); + return section; +} +function login(navigateTo2) { + const sectionLogin = document.createElement("section"); + sectionLogin.classList.add("sectionLogin"); + sectionLogin.innerHTML = ` + +
+

Inicio de Sesi\xF3n

+ + + + + + +
+ + + `; + const checkIn = sectionLogin.querySelector(".bottomTextLogin"); + checkIn.addEventListener("click", () => { + navigateTo2("/register"); + }); + const formLogin = sectionLogin.querySelector(".formInteraction"); + formLogin.addEventListener("submit", (e) => { + e.preventDefault(); + const email = sectionLogin.querySelector(".inputEmail").value; + const password = sectionLogin.querySelector(".inputPassword").value; + signIn(email, password).then(() => { + navigateTo2("/emprende"); + }).catch((err) => { + sectionLogin.querySelector(".note1").innerHTML = `${err.message}`; + }); + }); + return sectionLogin; +} +function create(navigateTo2) { + const sectionCreate = document.createElement("div"); + sectionCreate.classList.add("creat"); + sectionCreate.innerHTML = ` + +
+

Crear cuenta

+ + + + + + +
+ + + `; + const logIn = sectionCreate.querySelector(".bottomText"); + logIn.addEventListener("click", () => { + navigateTo2("/login"); + }); + const form = sectionCreate.querySelector(".formCreateAccount"); + form.addEventListener("submit", (e) => { + e.preventDefault(); + const email = sectionCreate.querySelector(".card1").value; + const password = sectionCreate.querySelector(".card2").value; + createUser(email, password).then(() => { + navigateTo2("/emprende"); + }).catch((err) => { + sectionCreate.querySelector(".alerta").innerHTML = `${err.message}`; + }); + }); + return sectionCreate; +} +const root = document.getElementById("root"); +root.append(init()); +const routes = [ + { path: "/", component: init }, + { path: "/login", component: login }, + { path: "/register", component: create }, + { path: "/error", component: mistake }, + { path: "/emprende", component: home } +]; +function navigateTo(hash) { + const route = routes.find((routeFind) => routeFind.path === hash); + if (route && route.component) { + window.history.pushState({}, route.path, window.location.origin + route.path); + if (root.firstChild) { + root.removeChild(root.firstChild); + } + root.append(route.component(navigateTo)); + } else { + navigateTo("/error"); + } +} +onAuthStateChanged(auth, (user) => { + if (user) { + navigateTo("/emprende"); + } else if (window.location.pathname === "/emprende" && user === null) { + navigateTo(); + } else { + navigateTo(window.location.pathname); + } +}); diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 00000000..c1e3e80b --- /dev/null +++ b/dist/index.html @@ -0,0 +1,18 @@ + + + + + Emprende.app + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/firebase.json b/firebase.json new file mode 100644 index 00000000..2c33c295 --- /dev/null +++ b/firebase.json @@ -0,0 +1,16 @@ +{ + "hosting": { + "public": "dist", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ] + } +} diff --git a/src/Components/home.js b/src/Components/home.js index 168a867b..b56d2f25 100644 --- a/src/Components/home.js +++ b/src/Components/home.js @@ -9,7 +9,7 @@ function home(navigateTo) { const postForm = document.createElement('section'); postForm.classList.add('home'); postForm.innerHTML = ` - +
diff --git a/src/Components/init.js b/src/Components/init.js index a5a73e26..3523ce81 100644 --- a/src/Components/init.js +++ b/src/Components/init.js @@ -5,10 +5,10 @@ export function init(navigateTo) { const section = document.createElement('section'); section.classList.add('init'); section.innerHTML = ` - + - + `; const logIn = section.querySelector('.logIn'); diff --git a/src/Components/login.js b/src/Components/login.js index 2376c16e..1e8b08db 100644 --- a/src/Components/login.js +++ b/src/Components/login.js @@ -5,7 +5,7 @@ export function login(navigateTo) { const sectionLogin = document.createElement('section'); sectionLogin.classList.add('sectionLogin'); sectionLogin.innerHTML = ` - +

Inicio de Sesión

diff --git a/src/Components/mistake.js b/src/Components/mistake.js index 073fcfe6..4f728da1 100644 --- a/src/Components/mistake.js +++ b/src/Components/mistake.js @@ -1,7 +1,7 @@ // pantalla - error function mistake(navigateTo) { const bug = document.createElement('div'); - bug.innerHTML = `
+ bug.innerHTML = `

Error 404: página no encontrada.

`; diff --git a/src/Components/register.js b/src/Components/register.js index 71719d83..e88cfc63 100644 --- a/src/Components/register.js +++ b/src/Components/register.js @@ -4,7 +4,7 @@ export function create(navigateTo) { const sectionCreate = document.createElement('div'); sectionCreate.classList.add('creat'); sectionCreate.innerHTML = ` - +

Crear cuenta

diff --git a/src/lib/img/button-google.png b/src/lib/img/button-google.png deleted file mode 100644 index 85b9ef8446c247c2f275c90235ebd590a777be1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3222 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 IM6N<$f_DuaSpWb4 diff --git a/src/lib/img/corazon.png b/src/lib/img/corazon.png deleted file mode 100644 index 6856376c41643d4d0421c25700d568f8f01d038d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 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

}(*R_PIyPpm3+ z)e#rqGkg9Xla){3-j?3HV|RwTffPo<%qgBF+56!~+9xS`kAl+s{;<=S1N?DN@QgOU zW{wz}*Y0Xe!i7ZAZ6@4h{JlxT>mtnvY@RUX#q^hJy?{8`sO`JFJu}d;+Kk%?P4#yivIdBAlLEzH&@IJk0tT@>+WVN0Dj|9DQI12P8vmSF|uKy z_9z^Hvou86*x({Cmr-8NCh#y;KFaV(Vojm>9aP1!s;e4qcAr>^^=N+>=1Ln%13h3M~=#bJYu_PgJ znJSjQpto@q`-7-)p}AcN-Dr^h>^?UT;C0Jw)NF3=!7ohQrLaN9h_I?YSv!eYOJ#35 ziCUfq$1FG4wXu_S9TrjDZdNxm?~yq2)oox3$twbDJ@=>2x^Wu3h@39Bc&Xa=D(h3_ znIzLJKGKnm4d-ihVEq9hz9taE4pNmL zgL8OLtpl5Y1kxj{@9nbPk>munr4DHn#YRrn>@PCW{k~sPEYXah{C7;9-b8s! z@h^?TAyAvrt=}x2L4WlAj|*@&gDq}$_ANnb1*=m_Y|T=q0wdXgT<(zzL(H1FiNEhG zf-d*Z)^zG0!VN_WeBCAm=yT&j(&bhg)*A_?C?cZPWm*50N&=YxTTQ)=_k@VH_n#l7 z&+arlF$hO--hvw~SG2st$ri0Gqb2+Viv55*qOMVtqdO6(DB(9;N&Qb6y5OmG6F6Up zh4lc+K`y|op_!wo_=r$kPa{SeQ);*e4y0BA_vr}bbxA@vXW}!Fi0S4wDo*wyPSHm2 z@L^;JEMwwse&F=(1+sZ3ue#5YRq;6Tvsf8x#LrjB)h||~pt{7(UqSa1yLnaD|7ACP zK%Zx;Wox|(1#yUrI$8%PT^s?=3y<4NL8SDPp@5JO@axt0svDI@2COeUW6;3pPZ=EV zF9h7~-qNfCfB#Of(B=r~<@oE|fCfna5K=1Nr^DkP;neKw*q;b3g=k21F63pOGavcv z&s7E$MJ;n8Q-_LU0Jif{+$%={-}_4ZtD)Yn+HX?k$+67DaAPgW_ctCB=$sYO zZa!^DH9V-CRHgd5J#tN%QF*@J2!bIBJEaoA}tGO)#Ht>>H&nW(UY z<9phDf+TpG|K!|%Hr|wa>5~Xbt<*fNDcB)$4&mXaeSMQlzoPC=%M1lnHo|jyCbq)bV+A@ImSGmvvCFxopz)&(exRAH> zlc|Uj>AoAy07l>lav`^SJ9Vo-@hv28v_o9)rq{AK2h2VH%$egO;r=g1oi&oFK6nJU^r*f@ zmft)46j4vA3IMFi_D%bEQ=d^jhs1oOfgLn7It?+u#NgIU82P;;N+A>;9OsQ2F+tYh z1+cBEE|9vhjmFC7b{PM0z0YYZjR$uiSBl-7CY?eozZ#DP!{?|0PE3@Q+)Y!!{ijL= z8&SHYb~0W(b$L0Z;8$D>YH}6V^e&%&ak>ZQ0ML{YLqfL1>x2rke`wU@EirU+XKG?^t=i$P{89U-Ls?bz{F#N z3$Omgl=*qS;T{P+2flGR?&tnrBtp^Yj!KB#v?%yNo|}DJ4^rd%?1{JDE&a5ZnEMn! z0PqK|jsiC9l+Nypis7!)@!*eCnCpZ{|BcJ5zj;VaGAy2H##7Ue2&qa!-LF;wfW4ay zsJZjhR768{q8OB;0ARL=%vA3HB{|6Llk%k zE}*pFWs%wW0-l%M#1@CwpSQQ>H?TRvH4B|clpqee5h>W8&K|bZ;Nt|?CYEl87T(ZW#<(@Lo7(f@5)!DE~9@VeWfW=8@9st zxdy5FMuwR9GoOD22)R1_W%%8G83v4j2W&Jys8ED4)IFdfyjNlHi#QdKJvm3z#^$V& z;wqM8ShCdHMQ~v^QW63m@(gX?1O7#nH48=HwFlJl@{m^soA1h)!dRCGJa38gG5in8 z$o;JUMgF#j`Ty0D3<4E1o=6#1jQEaP6YdEdO(hCXQyqOZ>wFdhiUWO&Stwl+1Lb@w z1x#$%V$@x^<(=sS|-ykLg6j|Grp`g zV}F8>ux*E49Rz89n~dNF-}=WnaAwWg$1c1mdVr{zGV5O1;l(wAybKjf@mc^wIWr4HmQz4(Wt`d@`i)W0()y@h|DJFePA&N9Ly%T~Lkh;s<3o zu@V(xsG1cnpnP?3nk1+DuL*R;0qs7wT}Z!uqROhI=mopw%W<{QeI@qhDWysiU?fjZ z=5)XF`*mq?#Ed&5Rb=2|`ziHb9DuEC@=n&D0G7xmbqz$P`146C{&}dvdl~l&d`y}t z#LY?WGwAVT$jj;|)J_tq_tHkBi&1BZ=&;v59@5|Um+1GkyWrdT@I<`rJY1oNH%JJ9 zlt}rb1mQUPS2f}tF2t*}cZ;(1p)$?0%K^5Xr1#RL{hU*5I7B%NQvrPI^>|qu<1wGX zrO|@(v>WE8EU4%Bwnr>-X}?SO2_opYxm|ue1utT?KDxq=AJ(1=2Gp$WJxODLRy*~> z*IYO1{xEgKb?0k+P{Fp#d5xhN9%Rxr%l~#SM(k>|@BH2oN_&<=Y)4st zb>S}N9;Ob^Iz`X?%0)xp(##@B?DGmhS7k2p@(VaabtSZXJ(c#^_bnXYsd*S zp29!ms>#IYCgTe$)g8vjW@1J6|8?qL9=|}OOj8E`E&)7}{B{>!d2YV1!`q?Vc={4B zlX?Q2Jlwyz<<@8twf8{UzQdu{5Bc-3#KDC!?%#2ve}^{TBY1A9%3AtY-gz|-Xkf{V z(=(%X7SeZ&ow<0bDt06-dWMS0>`H%3V2q5z13b?AwpBCiAj-4XTY_5+V9hkec!JJ+;t*flbmg zf?Ot+@MG!KIGmXT3I!WaH~GFK>Kbn8QG!DKtxV=Anm7f`_1T*9>@?Au^ML%IV3!X8 zJd$_kbGDT`ud;nrU4O_(@Q621e-i;Lgx9C3ZR!4g(i*1a@#=z}{>ZF~=cLjfdAj*K zM0JM|(QM@_h?tm?S`Mff@)Q%N_=hv|GB*1q3(4VD!kO}Ox0r6*PCI*9#4&<qk+J%3h(}VpK*wi++lkEKdFQ%iB(&`*_4(wJAIm;ftdf4LO&qNLQV>v&|Ps zzFx6_pTi@lm`(@9H_=yTA@nN;12r%j**GyL(tYoe%UF?X#LeI84?={ciKS(TFd@gziF$MWo@V&y5&obHavubmC!8 zaPt1sp%#35WZwRey~6OP)@>_1THoel;$Mjs|WEESQJ?P}V-#s-%5wInyhIG0XUpKg1{qCePAuwpX;gvY2 zm8d{6ysl|2B$qGOf&A|)T()?hXwHib(#xmLP-xVC=pJDA_*i9jPts_cAjltcC59_Q zs4}^pqv4V6@(16u+01W}#=f)X)YQ7uA3{LW(i)n=Kg(>YgjdJ03W*4lgdu zA<_M#${79XM zKE^a>-)LImK*AjH)pX;p0$fJ%OQ9D2Y32BcTTE%ymnxS`9#O_}y{(0TV-3fIgeqgl zUJs>1Waf0&FO>UpD#7XE!>J4J&?wDeX(L51Lu@Y2@NAbT5}79tGIAv0-%k@_hc-ta zf}d|$ik%MAGp5Xis*UJ>VwQ&sas4sZX5$R#vW#yVh=?Kf#~U^u#u5v0;su@$I^x#x zzI<_>6Ai)p^X@tTe-w+>O9I1W{oiJ*hLzCV z{;5#JRYODF7$L<_nIyMPtfp<-zwYQG!(*w>%APtkElDgR*k#YYd0#gYMB5TlcfytD zAXn9tApN@U;}f=5P7hn#ztq_-NDgceD>sa<+8E@HC(_h6$5S0 z;%KOfgwv(&{y2C*#o{Yh-LQ#`ZQh~SlttO4+P;1S;m^Nlzd1OYd@lp>Y8iLaU z5EM*a0F=6!Z#Uf;jLu3(wE_|5r!m^$-M_<6Ce572;*43D-akVFECbQ1qR!a#Cow2( z^C|3=BOGOiJ;ZJfDq@_;>IlyN_qdXle>m!Hm-q4o|CrYmy9R*(1>4HFre3P5fWb&e z0n9~E%=m;qjz@xy6W{sSSNMY;#gDYW^1R#WE-xVsH^$iz>i|?t$eY{K5z4U^_-J|! zG2^Fxg_iYW2@K!9v?{nly#w;Tba?{JwUYm%?y25+}M+;PGPW)oGjIf?@)0I?~zrB%>z`Qku~<#xJT|IImb}=^B2r z>&Dtv5StMesSB363`Aw_46M#ZnvO_NS0NF%)Ki4UxoUZ!{={i=>}I#-<_eiWw-_u( zY`2$y@bUTM`MleqG~3hNLr(G>vF0o%m6LNZ{etDptl}o}Ldf+XFl*6rp;rGg1gnmF zN+Dvr@K!45iQK+uLKVS=2M~g?|Efq@e-F=}xFx1teMeCF43^F0Pir0kQIyDXwxbdh z{!Z8Dxa;|F<{zPlmz7fHEX+w{WMIp9&0stD?jZMb(r_$43i8!`Ow@H);u0I@c&8fR z%pIZ9y4EC*7G81U6DvSV{CswjypjJz8({PzwwZypBMkol`BoW3*CQ2(bWl%Ag;E3Wcy zw|7UTNN5A6;kA;#$9M{altZH0N?XhW__+za#w0yqgic;f`uN~&w|kwl2*mBo&$9WJ z740p(sYQ}bxI-SzoTfrd<8Gp6_$D3k2LD-RK|rL|tK^4YOZ^0$k8gdO+`u3_qu`ANx+Y2}!?32(65(s|=@Gj@dK|FMiB#-ktCiSTk~X>5*)rY-tmm(CTw8G~^e5#- z8uU-gls>>RcQOa_47UxkaOYCAjZz&E*k-8%WJ3NNs5;SJjp6BAY3W z$ZAy48v?>eK(-thIF8;nIw^6(Ic%o*PDVc7^Y6Z*?NxP8nqy^EWU`5@7_!b3NpIa0 zutBbv>RMDI7e^faIwC8nCjvXTj(Tj;er622h$AMl^X-ZP9ukY=<2T2~{Sh&~r6j`6 zn5qW@igvOu0;yL&QCAqUBjn@;m8Qcq_iI`Exz}EI+g@T9rPb4cZiVF5^v|!tQRqA8u|$FnmaVdvFARH#l7fvO zZlQeteYX&F9ZQgU)+#jW#H~O8sxRWwRHCPQca>92cdiEoPo!cP1z$R?XkPUla_ri0 zlw`Fdb`&`{GdHC7Faf2=$m~XeM*qvIGi8&-IQDWOJ@>~`Lz*5wcu05zOFb!(VcFHQ zsu`nCT=e&s?K*1zor`M4z>^d)e46cvf(>~6YiABhZu+U;S0l(Jz521w$BoD)x3?)g zt-GlzTLnKl{)>P)q_xTJ@^=W}CF4ScL%thIsERK5Lo$=FNJNTak(^04JwXz=Jk zV^j2U>fJg|92F{hUTH2Uo3bifKr$hBMd$xrL<02SmLFl59}5a3qh4InOa|&2=%5rj zqXqHtJT;$!MRN9p=e2WhDbK%{T zJ^Ugu;6;*iRK;$@hLVZ5mw>$1wgG3LTdSz$?=nhyv)C%0RTseJ2CFhQSvlv=!k_m!U`)p9)`@P{*Fo8&q-t#FiBCS#XpRFv+R+cL zHrIxxa*T1XHFyVuRINn4!x($y!?Um;j`ar2stPnk5$h4yqXHf&sUcqeQTJgH(oLW% zXa$;U6n*;Tx@NlGMeWrxIjg^g`!_2J^lIh6;Ohf>HZ`AYF9%#1`Hdck)$)`Td`svu)DM7NYZ)5u2#4Pu2 z^&l@16!$;1IG?C!zxnyd^FCkt>i2^38cFfj6spCbKnNOJuh{aO92--!0lBrSruYEa z%(+Lxy`L}7$*O1>2+EFLBf>2RON)dhMVw{pWYvk_qmWU$#R?n5I9F`-GPH_^T21MNX^%UvSCs03X6Cqm}?8 zhNds4hZtE0t3jRj&R*^wwl>D$irejKyrnS1`MuS-NBaUHOkSi=QEjI^qV7;kEx0ZD zXvaG-L|b%nmGEEDl59U zydT^B(AZvkc<_zK))#d?8wfh7jGEq_IhC+jn0JdnCFhCaN*b+kL7delv{KdicoA|B zX&LW1DKjf$#8;)aUcpI>13}M5PCaxN)z(C&Dt56xcSQZ}ayJTx%y*_;$>Dxm9nCk|iibCYLMOJtxz( zv(_CbI7yw)!UrIUGb$V>Kl%8kyM&f47~aMhIrhetZhq4KLfTW^2KRH1zw8-z{aITc zD4V85_$mG(Yrj&*&?qmcBEp@VA0k6xw%}dVdDZV+`YeC9g0`ik-Sryy zWkrCS_ZMSf9#Rm8!{a^$Bdz<9J3^j7x5~!`wPiV(WZU)rw&l0dkxOQ@J}g&GPCiIR};)rwzn{!=TT?xNEnl0dCxH$RRaCS5H*#_l#Yl2 zRPGWbRdY|vRmX-_+vj;aB=0xzjuIgwCC{Omkj_p*eof^+-|YaB#X$PE@E@ztWvO7o zCr0_=Y`^Xn=7u&C&eF&NW-j4|AL3g#xbdQg*d7ytvt$Q#gzGc6F?+ccA5{WQ;%Ixv z$EUwDtTiQ7RD)9tOl|kYveOik#hR62#s*b&LF$+E2ZdSt`sdvz_ufmr`e`j)6FTYL z=E3j{LaqISWMs(Ak74L?oxIbB3+2M&q@8w9Y>4pWvbk8YIYBvbzG^s%?4KG+1#LdG z*nLyVJoSeHPJD^q)Lb3>ZSl9Y;`B8y!D-k1d(tr5*H1sbp)AQzL4#KmWl|=Oa~$73 z%M{L{y1Snhg6{Qq>zpMwE%+I8QCJh?4+ogrJ?dfitx-JOM~MY^q%84&J9aXYjGcj3 zT^A;L{mi)vAwEZ!GAGv>sRvnpF`${X9P9D9?w##;)AvN&HSXHgFsMKV4{Q`es8A^x z=r96iFjAeoyBXN$PLG*VQ z^I9suJlwmLX4!OgAaK{~s1V4xIaxPm1bj?54w8ult+?5V@6iI*<1)$w^L~H08Myi* zoJu|OJ4n*Y603H(^@{)}gb2U;z?7|CN&nSarY_(>xE4P26at72(xLJQ2xUzbR9a-% zq=nzs4GR4{C|;<;jga%oEO}Q#$7=A0a)*NBEdIxD@r~6xLj@r>n;%iGf7Y<50Z%;k zJf%RtnRJC@OM8=l?Nd^B1>`!l#eLx77CENx3TS&cqW?e!Ou56?0XGY1t=5+ku#&B0 z(qXMBe1iy0eVql@G37E zK`5V8Zq;R_oop&=SOjdxs>T~<`{)&&o~ce;oQZ~Ql{PY_l_dBm19*qPL}>^Ia+x*^R&ooEylI%w4jZd$2yh49QX^&%W ze!q-p#iVjie#104$0P~dMeyQ^!4_5Yo6;Tg+V(4saLz)4Ey&= zE3->Z_FL`1O<{p`e12|(CEOUsr4p4&O_4*k?cV*!D%gJE17K%Jpk#fUy|QXb(|f6^ zW$OC|-z|M?DE*gp$WY?`Kx+QGt>jdcZt>RkOw&_G9RVEhVi9Cw~9K1<&;{$DI2?SN5vU$VkLUpdPElkIScl1qbv%9IV>PURREc?UiG zPuS5;rE$VhbCk}9wcT{8xjxD-h|9$5W^7f)D3b{56JS96xvKb;GpI*e}ndX zoyo&%w$!G@(8{JKuh}MavE3)5oP51H?!@jzg&T@o)1~ed(&}UtE~zBK#ayhG))Lk` zG;bH7vJ~Uh+J60>zUc+!gip9!TxGI8Veg6qE7!TS(&tP7E-pN9@W@Z^nb0xT9zW3~ z-eYsWcsaBXldwaR>xZXC+wQ+>m!>VRckY2`wb~yeE$onGEATdM@){Rxqf=SonXG<0 z<+ZBk78Wm+iazQmbQU$tw~C&x-;5rS(C3t&=&E54j7ICYvAd-0styS_qW`W1Db;eN zxCU2hX7Tr5Du0~3rMEW;(Hbd#`6Wh=5b3*$+u|3&09`n}{>L19x77VBKF%>ETZ=7Q z3+5%i`sw>8E!Hcku}S2MOWefA)$)%UMmam-FZ!h>gf%|v^4rGQ;DuH4+t?BUkHt@V zyjKjcvV%Up(qwG6ejRX8cm0I*;`{JBCk?5B*WY*G^!!m^QC7WrcSq}@`|B0PR0ZOl zOl`j`9zIU`814Q`QluLk9pC~GzLb{|*Ls?-Kk=v$U4A2VMaUe0OWJWXC+k6sA=I%O zIB^$6+*`*bVW!PGdTpZdPp^wY4Ht_9JoiKREmqybuBh>%0wY0{&-B~8Mz1zFVGKo} zG*@fHDeA2Kq<`pk`yx8=z_yIjFjB6CCB?nN*mc_b(WUq-!4C!TX+9xp&v zN4w5yYyK5U!Cd|9UG|CLB>gmLQGE{<%psyt8CGSd-QXt2PSci8UjOx`>ujq1V0=>t zPr#JODKgMTZKuP7qwtD=O#2?9i{L1!%GbI!e>?Hs6RJ69l|0jF z<4ROGPn{H?Y6KAJ%Hp=`{{_#AyuvPK4PUqERG|tj*?~+Ww=7wIOpQQqIdh3Vawk74 zJNQX30MpfC)*n}te-4DXUw)yl7hfy^A-}z12&eUT2x=cUSx|~=Sk`XXF(KXBk#k;> zI#;O|{0Ac6x3Vo0<|F0#U1Cw^OaT8P-bDG_(6Jxcq&7u}Y>>VlDH1vkImW}^=M9`h zFc7z$Uh^|w(}jW>Iu~?0>lE;00n8doq++DDa~W8}f>G&Dvc&5wn5am`4H{k+Wg zZu?RRG--RGJyLEvWssa2jb0DRGjdToEvGU(W2mEBhWyL2uSB+eEDwK3qIH>2Sj^A- zuw^EjOtsohk$ap&4`)q(abuA6Fl|qT-~l7DRc-xX*ZTf@re#vSb_Eh4Br4l8%r0e3 z3HeC<{&8|(f5k-^G_=^o_}>12fx>%B!|I@j#fgtR8K+VSb?DM;XTAlM-M4E;`d^K59b=Tky;`5HGSB^_JslKJ{slB0%H5c|w6faL$G?Xi zvGow0L5^>&n@Zn*KeJRU!OX8P&Y?)5??=-707obfC>NSWlxFHWj3+})*-rgiYDD+m z^Jr&R?#T`hj~kFy3GzF-`m-lRQG2J z!?CevQSR=-pB0o{Qk2DQZkWGHW%fRWR-;XSEt@(+OjROn-< zLmLpwEmrOI|I4Use=fP%6~@&@Yc&Zct0MJK_&TBCLHd}!J_f9!qoalml}{W^jv3ym z;v{Lulw|4-W1j@)Zz;P$7mE6$QeDhmvG*c8^lDX&o2-)_6)S8&sl{J?pCbS205e7w zyZ32C2B|w^C2VFrhgH3@QgiLDKw^J+!{?~}V)a|+i1v*_&7SwS&h*c9s>zS~5qDcV z6|1Gg1{*CdO$8=4T2tKPIIqCRH`g962Mk%6MiqCuVO?40qd>me$r*qOlGP5iR;Yjy z?PoY7pI^B5joG-1b2PD3sBhK)ZC1h=d1okOMwxyZVZ*Qkewc`-oDE+^#?`r-r8(pkxUVRT~3EIf2+}a-^51$UbC)fP} zeUoDiYpaHCe46;M%%QhBuTDyS9QW&~%;9VxXnH`iv~KrBUW3A#5Zy1vtLELR!U$6I z!agA#xi0LK+QMP3&t$O{Xe=aa6-HlcDZ$An=|rrWck*I;b@tzC9ZrS3W6!-{#*L$h zF9$}bq6F06vDf6uM7HvJy95i7+kmY(@#9FSup&;Li?MxA+E2BuL5;GVJ2nS)H}mfw z6Tq!}ym7(mJp*q|M8=mz9X!)CW`XxFehrjK{w!bT2?3etTM<)@zh#49IZC=Y#sfq( zA-m+0{>oYGZtbQG4L^6L9rDMdomUDLd(#I7?^v#Dqu#tw78yrHIwEt{J!z&A3lIzE z35rVA?`^0f5ZAzt-feLdn2CL(cKP+35DInd}jWI|OnTZ=( zRRn5IsUBgtkXWweD6{y=&wa{vSdjpO6sJiNQ|5)mOBm%~uYN>{V;>%JSFzx@hYDs+IIexfgmYb(W(Elb2<5@T=`RiSlJt|pbXb%yqzx@ad%R-``>6uXzW5?~QM3;cD4=1*MO&6J_Wzo?@^GlSKb}F1J=9oxM z`<#28bMCq4e3#GXe81X0?OxfLKN5n z6Xe~i?Y=|1-pPDQbDWoy$Ds=M84Z$C0>dRrz$CAw8|TBtbS@Y}a%+BoVyAl0;`O}^1|f~$HTjqw&geIcw4 zK$3VvTjJ?qWc!Xed>v?tc3198a7vrP8KUO`-G%7ar=oZPuExZ@ut5+^?al@>Bc1(f z>K|0l#Fr!++2kd{z}&U8C=;1*8@7t@)@Y>WS|!Kb@skTFW~oX>kj_}a~?b=TVIk8%fQmRWK6QF?VY&RU4B?*koQnmcO@!!K#z9-EqU)1_h`qG zZ|PL8x(~lVe?+C}kXqkQw4Q#vw^_=`b9VeJzFyWT%#=@2Rl`V(gph&d57buKXUY*~ z*%vDnG-THYQs{Q(Drf3S`f?s;NRXIrn@^qpGyo%W7iU#qt6vnZW+uK9t&aj(gKkc(@$}N=eEfM^n@H$r7bk6oQVBdzJCSJVhSBt?4GX`1%OaP*4iHzb|{ z^sB1}Y2A6jlCX-f7N?^@UEp?dKjDKNMEPd0Z=JUk;&Z;y<43k)!WbS?z2(yNW|XU& z!(S8-WcP)FsEDV1C8Ksw^qr3PAS$lXk#@zsDgY5A5+9p}Z4G^(MXF|?Q<~WKr+bP{ z!nn@ILJzraPlD+DYvC@VMHwzdw*pzQMQhY1S%^~;Rd~|wO_Cnch_g|4c-QJY|5#Bh z$6(S!RMT7(d%~%mZ`HrMA0f|X8S->Mvw5ub6+&Klie?G%>E}sUo|z=~43@bGF+h$+ z{dhpx@P+$)?9hd|EG$YJ?8#*&wlxo2W>#(5hofe`?p5wN*Lrlp?(4S=(j%$KCDo(H z1gvBOf7;)0*E+eQBS_ zl|H8$b-(KqeqO(vlDK++M6-m0M_M)Ot59ck{Wh68e?{v==^x{dw&tXe2Gnu|z|OM6 z$SYr*waJr7`U57Gd>G*6d?&NO7}t@M?;D+c>k*(;v-h7OpDH$2LB{TG_bM!D#}jzs z%?9etGPf}US4#sM@rhxJ)$@u)W9o?k0lpi375XzeINzwZDr-`DW=U&x5%KU z$syz5oNLBQm7J&1*HYscW(o~bvLz;Mns|{$vYfKgO>JW!kAQZ#?N@&ItlTx#sSk|{ zUDBb2)AI*2M)_tK;J8zDvgeHRqSVx#CnixBT@>TdHVqr9_iNdrI8mM9yv^lu^I|Nt z&UI62f#RL@MB#)i4AN`|@{h#(Za&dDn8H-5x!yL0KUtMpXOc`;b?EEf1a8}`0;=jo z^?8043x*cp4crcY2PDymvB>l~TNKdzMQeQ-6ikU_rUcLaTQ|)z^N;TpVDuqUU09vT zeQWn{{g+4=D23F}03XT?V^VAp@vT50HA8YzLt|8NS!fXiM|M>m@~}k*&DqA_7w=@= z{dh)-1!RMlWHzZaB&XP;(E}4HEv$c}PslhXyAbwskvnvw4QA<8p9QU=d&F$a-_7W2nx1@$MjFgc2wZ=~(*OVYW z2N-p2_a0vX(wefbI3b4(7vq=>hwSEv*aIPhpLz9i=OEI(7~2{dcFEXc;6PTzHxquf z9%;U~?K4Py+6Kk3SmKXi$z zVN$llh}wA_D){h^{aM^D6q{R=Kab zshec*nUr8$9=*sj(3|y7=XXbuEe&68>XUxb4!S;S)W-+a+qj*0ll&{U!|ze*vc~C` z7LK6G?h{{`gL?S@x^xwV8Dtn7+^_H}SHthl>po@^gw5zg&ti$lRdXErePxgda??TuAef%>5YnBs_Gh%LSCQ$c)3vFm&P<`4X{$FS-i6j63 diff --git a/src/lib/img/google.png b/src/lib/img/google.png deleted file mode 100644 index 8f3fd3f8a722600425a461012a4dd531276f4830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6126 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 KMNUMnLSTXz1aL6`