File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/2F11-2-WZ04vWtI.js.map
{"version":3,"file":"2F11-2-WZ04vWtI.js","sources":["../../src/exercices/2e/2F11-2.js"],"sourcesContent":["import Decimal from 'decimal.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { ecritureParentheseSiNegatif } from '../../lib/outils/ecritures.js'\nimport { sp } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport {\n listeQuestionsToContenu,\n randint\n} from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\n\nexport const titre = 'Comparer deux images avec une fonction de référence'\nexport const dateDePublication = '14/02/2023'\n/**\n * Description didactique de l'exercice\n * @author Gilles Mora\n * Référence\n */\nexport const uuid = '9315e'\nexport const ref = '2F11-2'\nexport default function ComparerAvecFonctionRef () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.consigne = ''\n this.nbQuestions = 1\n // this.nbQuestionsModifiable = false\n this.nbCols = 1 // Uniquement pour la sortie LaTeX\n this.nbColsCorr = 1 // Uniquement pour la sortie LaTeX\n this.sup = 6\n this.sup2 = true\n this.sup2 = 1\n this.tailleDiaporama = 2 // Pour les exercices chronométrés. 50 par défaut pour les exercices avec du texte\n this.spacing = 1.5 // Interligne des questions\n this.spacingCorr = 1 // Interligne des réponses\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n let typeDeQuestionsDisponibles\n if (this.sup === 1) {\n typeDeQuestionsDisponibles = ['typeE1']\n } else if (this.sup === 2) {\n typeDeQuestionsDisponibles = ['typeE2', 'typeE3']\n } else if (this.sup === 3) {\n typeDeQuestionsDisponibles = ['typeE4', 'typeE5']\n } else if (this.sup === 4) {\n typeDeQuestionsDisponibles = ['typeE6']\n } else if (this.sup === 5) {\n typeDeQuestionsDisponibles = ['typeE7']\n } else if (this.sup === 6) {\n typeDeQuestionsDisponibles = ['typeE1', 'typeE2', 'typeE3', 'typeE4', 'typeE5', 'typeE6', 'typeE7']\n }\n //\n const listeTypeQuestions = combinaisonListes(typeDeQuestionsDisponibles, this.nbQuestions) // Tous les types de questions sont posés mais l'ordre diffère à chaque \"cycle\"\n for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n // Boucle principale où i+1 correspond au numéro de la question\n const nomF = [\n ['f'], ['g'], ['h'], ['u'],\n ['v'], ['w']\n ]\n switch (listeTypeQuestions[i]) { // Suivant le type de question, le contenu sera différent\n case 'typeE1':// fct affine\n {\n const a = new Decimal(randint(11, 99, [20, 30, 40, 50, 60, 70, 80, 90])).div(100) * choice([1, -1])\n const a1 = Math.round(a * 100) / 100\n const b = new Decimal(randint(1, 99, [10, 20, 30, 40, 50, 60, 70, 80, 90])).div(10)\n let x1 = new Decimal(randint(2, 29, [10, 20]) / 10) * choice([1, -1])\n const x2 = new Decimal(randint(2, 29, [10, 20]) / 10) * choice([1, -1])\n\n const x1B = Math.round(x1 * 10) / 10\n const x2B = Math.round(x2 * 10) / 10\n if (x1B === x2B) {\n x1 = new Decimal(x1).add(1)\n }\n const nom = choice(nomF)\n texte = ` Soit $${nom}$ la fonction définie sur $\\\\mathbb{R}$ par : $${nom}(x)=${texNombre(a, 2)}x+${texNombre(b, 1)}$.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 1)})$ et $${nom}(${texNombre(x2, 1)})$. `\n texteCorr = `La fonction $${nom}$ est une fonction de la forme $${nom}(x)=mx+p$ avec\n `\n if (a1 > 0) {\n texteCorr += `$m=${texNombre(a, 2)} > 0$.<br>\n D'après le cours, $${nom}$ est une fonction affine croissante sur $\\\\mathbb{R}$.<br>\n On sait que si une fonction est croissante, les antécédents et les images sont rangés dans le même ordre.<br>\n Ainsi, si $a$ et $b$ sont deux réels tels que $a < b$, alors $${nom}(a) < ${nom}(b)$.<br>\n `\n if (x1B < x2B) {\n texteCorr += `Or $${texNombre(x1, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 1)}$, donc $${nom}(${texNombre(x1, 2)})${sp(1)} ${miseEnEvidence('\\\\boldsymbol{<}')} ${sp(1)}${nom}(${texNombre(x2, 1)})$.`\n } else {\n texteCorr += `Or $${texNombre(x2, 1)}${sp(1)} ${miseEnEvidence('\\\\boldsymbol{<}')} ${sp(1)}${texNombre(x1, 1)}$, donc $${nom}(${texNombre(x2, 2)})${sp(1)} ${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)} ${nom}(${texNombre(x1, 1)})$.`\n }\n } else {\n texteCorr += `$m=${texNombre(a, 2)} < 0$. <br>\n D'après le cours, $${nom}$ est une fonction affine décroissante sur $\\\\mathbb{R}$.<br>\n On sait que si une fonction est décroissante, les antécédents et les images sont rangés dans l'ordre inverse.<br>\n Ainsi, si $a$ et $b$ sont deux réels tels que $a < b$, alors $${nom}(a) > ${nom}(b)$.<br>\n `\n if (x1B < x2B) {\n texteCorr += `Or $${texNombre(x1, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 1)}$, donc $${nom}(${texNombre(x1, 2)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x2, 1)})$.`\n } else {\n texteCorr += `Or $${texNombre(x2, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)} ${texNombre(x1, 1)}$, donc $${nom}(${texNombre(x2, 2)})${sp(1)} ${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)} ${nom}(${texNombre(x1, 1)})$.`\n }\n }\n }\n break\n\n case 'typeE2':// fct carré avec des nombres positifs\n {\n const x1 = new Decimal(randint(0, 5) + randint(5, 9) / 10 + randint(5, 9) / 100 + randint(0, 2) / 1000)\n const x2 = new Decimal(x1).add((2 * randint(1, 9) / 1000) * choice([1, -1]))\n const x1B = Math.round(x1 * 1000) / 1000\n const x2B = Math.round(x2 * 1000) / 1000\n const nom = choice(nomF)\n if (this.sup2 === 1) {\n texte = ` Soit $${nom}$ la fonction carré.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 3)})$ et $${nom}(${texNombre(x2, 3)})$. `\n } else {\n texte = `Sans effectuer de calcul, comparer $${texNombre(x1, 3)}^2$ et $${texNombre(x2, 3)}^2$.`\n }\n\n texteCorr = ` La fonction carré étant strictement croissante sur $[0\\\\,;\\\\,+\\\\infty[$, les antécédents et les images sont rangés dans le même ordre. <br>\n Ainsi, si $a$ et $b$ sont deux nombres réels positifs tels que $a < b$, alors $a^2 < b^2$.`\n\n if (x1B < x2B) {\n texteCorr += `<br>Or $${texNombre(x1, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 3)}$,\n donc $${texNombre(x1, 3)}^2${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 3)}^2$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x1, 3)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${nom}(${texNombre(x2, 3)})$.`\n } else {\n texteCorr += '.'\n }\n } else {\n texteCorr += `<br>Or $${texNombre(x2, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 3)}$,\n donc $${texNombre(x2, 3)}^2${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 3)}^2$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x2, 3)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${nom}(${texNombre(x1, 3)})$.`\n } else {\n texteCorr += '.'\n }\n }\n }\n break\n\n case 'typeE3':// fct carré avec des nombres négatifs\n {\n const x1 = new Decimal(randint(0, 5) + randint(5, 9) / 10 + randint(5, 9) / 100 + randint(0, 2) / 1000).mul(-1)\n const x2 = new Decimal(x1).add((2 * randint(1, 9) / 1000) * choice([1, -1]))\n const x1B = Math.round(x1 * 1000) / 1000\n const x2B = Math.round(x2 * 1000) / 1000\n const nom = choice(nomF)\n if (this.sup2 === 1) {\n texte = ` Soit $${nom}$ la fonction carré.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 3)})$ et $${nom}(${texNombre(x2, 3)})$. `\n } else {\n texte = `Sans effectuer de calcul, comparer $(${texNombre(x1, 3)})^2$ et $(${texNombre(x2, 3)})^2$.`\n }\n\n texteCorr = ` La fonction carré étant strictement décroissante sur $]-\\\\infty\\\\,;\\\\,0]$, les antécédents et les images sont rangés dans l'ordre inverse. <br>\n Ainsi, si $a$ et $b$ sont deux nombres réels négatifs tels que $a < b$, alors $a^2 > b^2$.`\n\n if (x1B < x2B) {\n texteCorr += `<br>Or $${texNombre(x1, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 3)}$,\n donc $(${texNombre(x1, 3)})^2${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}(${texNombre(x2, 3)})^2$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x1, 3)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x2, 3)})$.`\n } else {\n texteCorr += '.'\n }\n } else {\n texteCorr += `<br>Or $${texNombre(x2, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 3)}$,\n donc $(${texNombre(x2, 3)})^2${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}(${texNombre(x1, 3)})^2$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x2, 3)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x1, 3)})$.`\n } else {\n texteCorr += '.'\n }\n }\n }\n break\n\n case 'typeE4':// fct inverse avec des nombres positifs\n {\n const x1 = new Decimal(randint(1, 9) + randint(5, 9) / 10)\n const x2 = new Decimal(x1).add((randint(1, 9) / 10) * choice([1, -1]))\n const x1B = Math.round(x1 * 10) / 10\n const x2B = Math.round(x2 * 10) / 10\n\n const nom = choice(nomF)\n if (this.sup2 === 1) {\n texte = ` Soit $${nom}$ la fonction inverse.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 2)})$ et $${nom}(${texNombre(x2, 2)})$. `\n } else {\n texte = `Sans effectuer de calcul, comparer $\\\\dfrac{1}{${texNombre(x1, 2)}}$ et $\\\\dfrac{1}{${texNombre(x2, 2)}}$.`\n }\n\n texteCorr = ` La fonction inverse étant strictement décroissante sur $]0\\\\,;\\\\,+\\\\infty[$, les antécédents et les images sont rangés dans l'ordre inverse. <br>\n Ainsi, si $a$ et $b$ sont deux nombres réels stritement positifs tels que $a < b$, alors $\\\\dfrac{1}{a} > \\\\dfrac{1}{b}$.`\n\n if (x1B < x2B) {\n texteCorr += `<br>Or $${texNombre(x1, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 1)}$,\n donc $\\\\dfrac{1}{${texNombre(x1, 1)}}${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}\\\\dfrac{1}{${texNombre(x2, 1)}}$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x1, 1)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x2, 1)})$.`\n } else {\n texteCorr += '.'\n }\n } else {\n texteCorr += `<br>Or $${texNombre(x2, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 3)}$,\n donc $\\\\dfrac{1}{${texNombre(x2, 1)}}${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}\\\\dfrac{1}{${texNombre(x1, 1)}}$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x2, 1)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x1, 1)})$.`\n } else {\n texteCorr += '.'\n }\n }\n }\n break\n\n case 'typeE5':// fct inverse avec des nombres négatifs\n {\n const x1 = new Decimal(randint(1, 9) + randint(5, 9) / 10).mul(-1)\n const x2 = new Decimal(x1).add((randint(1, 9) / 10) * choice([1, -1]))\n const x1B = Math.round(x1 * 10) / 10\n const x2B = Math.round(x2 * 10) / 10\n\n const nom = choice(nomF)\n if (this.sup2 === 1) {\n texte = ` Soit $${nom}$ la fonction inverse.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 2)})$ et $${nom}(${texNombre(x2, 2)})$. `\n } else {\n texte = `Sans effectuer de calcul, comparer $\\\\dfrac{1}{${texNombre(x1, 2)}}$ et $\\\\dfrac{1}{${texNombre(x2, 2)}}$.`\n }\n\n texteCorr = ` La fonction inverse étant strictement décroissante sur $]-\\\\infty\\\\,;\\\\,0[$, les antécédents et les images sont rangés dans l'ordre inverse. <br>\n Ainsi, si $a$ et $b$ sont deux nombres réels stritement négatifs tels que $a < b$, alors $\\\\dfrac{1}{a} > \\\\dfrac{1}{b}$.`\n\n if (x1B < x2B) {\n texteCorr += `<br>Or $${texNombre(x1, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 3)}$,\n donc $\\\\dfrac{1}{${texNombre(x1, 1)}}${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}\\\\dfrac{1}{${texNombre(x2, 1)}}$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x1, 1)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x2, 1)})$.`\n } else {\n texteCorr += '.'\n }\n } else {\n texteCorr += `<br>Or $${texNombre(x2, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 3)}$,\n donc $\\\\dfrac{1}{${texNombre(x2, 1)}}${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}\\\\dfrac{1}{${texNombre(x1, 1)}}$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x2, 1)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{>}')}${sp(1)}${nom}(${texNombre(x1, 1)})$.`\n } else {\n texteCorr += '.'\n }\n }\n }\n break\n\n case 'typeE6':// fct racine carrée\n {\n let x1 = new Decimal(randint(0, 10) + (randint(6, 9) / 10))\n const x2 = new Decimal(x1).add((randint(1, 5, 0) / 10) * choice([1, -1]))\n const x1B = Math.round(x1 * 10) / 10\n const x2B = Math.round(x2 * 10) / 10\n if (x1B === 1) {\n x1 = new Decimal(randint(0, 10) + (randint(6, 9) / 10))\n }\n const nom = choice(nomF)\n if (this.sup2 === 1) {\n texte = ` Soit $${nom}$ la fonction racine carrée.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 1)})$ et $${nom}(${texNombre(x2, 1)})$. `\n } else {\n texte = `Sans effectuer de calcul, comparer $\\\\sqrt{${texNombre(x1, 1)}}$ et $\\\\sqrt{${texNombre(x2, 1)}}$.`\n }\n\n texteCorr = ` La fonction racine carrée étant strictement croissante sur $[0\\\\,;\\\\,+\\\\infty[$, les antécédents et les images sont rangés dans le même ordre. <br>\n Ainsi, si $a$ et $b$ sont deux nombres réels positifs tels que $a < b$, alors $\\\\sqrt{a} < \\\\sqrt{b}$.`\n\n if (x1B < x2B) {\n texteCorr += `<br>Or $${texNombre(x1, 3)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 3)}$,\n donc $\\\\sqrt{${texNombre(x1, 1)}}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}\\\\sqrt{${sp(1)}${texNombre(x2, 1)}}$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x1, 1)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${nom}(${texNombre(x2, 1)})$.`\n } else {\n texteCorr += '.'\n }\n } else {\n texteCorr += `<br>Or $${texNombre(x2, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 1)}$,\n donc $\\\\sqrt{${texNombre(x2, 3)}}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}\\\\sqrt{${texNombre(x1, 3)}}$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x2, 1)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${nom}(${texNombre(x1, 1)})$.`\n } else {\n texteCorr += '.'\n }\n }\n }\n break\n case 'typeE7':// fct cube\n {\n const x1 = new Decimal(randint(-10, 10) + (randint(-9, 9, 0) / 10) * choice([-1, 1]))\n const x2 = new Decimal(x1).add((randint(1, 9) / 10) * choice([1, -1]))\n const x1B = Math.round(x1 * 10) / 10\n const x2B = Math.round(x2 * 10) / 10\n const nom = choice(nomF)\n if (this.sup2 === 1) {\n texte = ` Soit $${nom}$ la fonction cube.<br>\n Sans effectuer de calcul, comparer $${nom}(${texNombre(x1, 1)})$ et $${nom}(${texNombre(x2, 1)})$. `\n } else {\n texte = `Sans effectuer de calcul, comparer $${ecritureParentheseSiNegatif(x1, 1)}^3$ et $${ecritureParentheseSiNegatif(x2, 1)}^3$.`\n }\n\n texteCorr = ` La fonction cube étant strictement croissante sur $\\\\mathbb{R}$, les antécédents et les images sont rangés dans le même ordre. <br>\n Ainsi, si $a$ et $b$ sont deux nombres réels tels que $a < b$, alors $a^3 < b^3$.`\n\n if (x1B < x2B) {\n texteCorr += `<br>Or $${texNombre(x1, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x2, 1)}$,\n donc $${ecritureParentheseSiNegatif(x1, 1)}^3${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${ecritureParentheseSiNegatif(x2, 1)}^3$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x1, 3)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${nom}(${texNombre(x2, 3)})$.`\n } else {\n texteCorr += '.'\n }\n } else {\n texteCorr += `<br>Or $${texNombre(x2, 1)}${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${texNombre(x1, 1)}$,\n donc $${ecritureParentheseSiNegatif(x2, 1)}^3${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${ecritureParentheseSiNegatif(x1, 1)}^3$`\n if (this.sup2 === 1) {\n texteCorr += `, soit $${nom}(${texNombre(x2, 3)})${sp(1)}${miseEnEvidence('\\\\boldsymbol{<}')}${sp(1)}${nom}(${texNombre(x1, 3)})$.`\n } else {\n texteCorr += '.'\n }\n }\n }\n break\n }\n if (this.listeQuestions.indexOf(texte) === -1) {\n // Si la question n'a jamais été posée, on en crée une autre\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireNumerique = ['Choix des questions', 6, '1 : Avec une fonction affine\\n2 : Avec la fonction carré\\n3 : Avec la fonction inverse\\n4 : Avec la fonction racine carrée\\n5 : Avec la fonction cube\\n6 : Mélange']\n this.besoinFormulaire2Numerique = ['Choix des énoncés', 2, '1 : Avec la fonction précisée \\n2 : Sans la fonction précisée (sauf fonction affine)']\n}\n"],"names":["titre","dateDePublication","uuid","ref","ComparerAvecFonctionRef","Exercice","typeDeQuestionsDisponibles","listeTypeQuestions","combinaisonListes","i","texte","texteCorr","cpt","nomF","a","Decimal","randint","choice","a1","b","x1","x2","x1B","x2B","nom","texNombre","sp","miseEnEvidence","ecritureParentheseSiNegatif","listeQuestionsToContenu"],"mappings":"wGAYY,MAACA,EAAQ,sDACRC,EAAoB,aAMpBC,EAAO,QACPC,EAAM,SACJ,SAASC,GAA2B,CACjDC,EAAS,KAAK,IAAI,EAClB,KAAK,SAAW,GAChB,KAAK,YAAc,EAEnB,KAAK,OAAS,EACd,KAAK,WAAa,EAClB,KAAK,IAAM,EACX,KAAK,KAAO,GACZ,KAAK,KAAO,EACZ,KAAK,gBAAkB,EACvB,KAAK,QAAU,IACf,KAAK,YAAc,EACnB,KAAK,gBAAkB,UAAY,CACjC,KAAK,eAAiB,CAAE,EACxB,KAAK,iBAAmB,CAAE,EAC1B,IAAIC,EACA,KAAK,MAAQ,EACfA,EAA6B,CAAC,QAAQ,EAC7B,KAAK,MAAQ,EACtBA,EAA6B,CAAC,SAAU,QAAQ,EACvC,KAAK,MAAQ,EACtBA,EAA6B,CAAC,SAAU,QAAQ,EACvC,KAAK,MAAQ,EACtBA,EAA6B,CAAC,QAAQ,EAC7B,KAAK,MAAQ,EACtBA,EAA6B,CAAC,QAAQ,EAC7B,KAAK,MAAQ,IACtBA,EAA6B,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAQ,GAGpG,MAAMC,EAAqBC,EAAkBF,EAA4B,KAAK,WAAW,EACzF,QAASG,EAAI,EAAGC,EAAOC,EAAWC,EAAM,EAAGH,EAAI,KAAK,aAAeG,EAAM,IAAK,CAE5E,MAAMC,EAAO,CACX,CAAC,GAAG,EAAG,CAAC,GAAG,EAAG,CAAC,GAAG,EAAG,CAAC,GAAG,EACzB,CAAC,GAAG,EAAG,CAAC,GAAG,CACZ,EACD,OAAQN,EAAmBE,CAAC,EAAC,CAC3B,IAAK,SACH,CACE,MAAMK,EAAI,IAAIC,EAAQC,EAAQ,GAAI,GAAI,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,EAAIC,EAAO,CAAC,EAAG,EAAE,CAAC,EAC5FC,EAAK,KAAK,MAAMJ,EAAI,GAAG,EAAI,IAC3BK,EAAI,IAAIJ,EAAQC,EAAQ,EAAG,GAAI,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAClF,IAAII,EAAK,IAAIL,EAAQC,EAAQ,EAAG,GAAI,CAAC,GAAI,EAAE,CAAC,EAAI,EAAE,EAAIC,EAAO,CAAC,EAAG,EAAE,CAAC,EACpE,MAAMI,EAAK,IAAIN,EAAQC,EAAQ,EAAG,GAAI,CAAC,GAAI,EAAE,CAAC,EAAI,EAAE,EAAIC,EAAO,CAAC,EAAG,EAAE,CAAC,EAEhEK,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC5BG,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC9BC,IAAQC,IACVH,EAAK,IAAIL,EAAQK,CAAE,EAAE,IAAI,CAAC,GAE5B,MAAMI,EAAMP,EAAOJ,CAAI,EACvBH,EAAQ,UAAUc,CAAG,kDAAkDA,CAAG,OAAOC,EAAUX,EAAG,CAAC,CAAC,KAAKW,EAAUN,EAAG,CAAC,CAAC;AAAA,kDAC9EK,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAC9FV,EAAY,gBAAgBa,CAAG,mCAAmCA,CAAG;AAAA,cAEjEN,EAAK,GACPP,GAAa,MAAMc,EAAUX,EAAG,CAAC,CAAC;AAAA,oCACZU,CAAG;AAAA;AAAA,8EAEuCA,CAAG,SAASA,CAAG;AAAA,gBAE3EF,EAAMC,EACRZ,GAAa,OAAOc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC,YAAYG,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,IAAIC,EAAe,iBAAiB,CAAC,IAAID,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE/NV,GAAa,OAAOc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,IAAIC,EAAe,iBAAiB,CAAC,IAAID,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC,YAAYI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,IAAIC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,IAAIF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,QAGnOT,GAAa,MAAMc,EAAUX,EAAG,CAAC,CAAC;AAAA,mCACbU,CAAG;AAAA;AAAA,8EAEwCA,CAAG,SAASA,CAAG;AAAA,gBAE3EF,EAAMC,EACRZ,GAAa,OAAOc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC,YAAYG,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE7NV,GAAa,OAAOc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,IAAID,EAAUL,EAAI,CAAC,CAAC,YAAYI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,IAAIC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,IAAIF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAGrO,CACD,MAEF,IAAK,SACH,CACE,MAAMA,EAAK,IAAIL,EAAQC,EAAQ,EAAG,CAAC,EAAIA,EAAQ,EAAG,CAAC,EAAI,GAAKA,EAAQ,EAAG,CAAC,EAAI,IAAMA,EAAQ,EAAG,CAAC,EAAI,GAAI,EAChGK,EAAK,IAAIN,EAAQK,CAAE,EAAE,IAAK,EAAIJ,EAAQ,EAAG,CAAC,EAAI,IAAQC,EAAO,CAAC,EAAG,EAAE,CAAC,CAAC,EACrEK,EAAM,KAAK,MAAMF,EAAK,GAAI,EAAI,IAC9BG,EAAM,KAAK,MAAMF,EAAK,GAAI,EAAI,IAC9BG,EAAMP,EAAOJ,CAAI,EACnB,KAAK,OAAS,EAChBH,EAAQ,UAAUc,CAAG;AAAA,kDACeA,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAE5FX,EAAQ,uCAAuCe,EAAUL,EAAI,CAAC,CAAC,WAAWK,EAAUJ,EAAI,CAAC,CAAC,OAG5FV,EAAY;AAAA,wGAGRW,EAAMC,GACRZ,GAAa,WAAWc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC;AAAA,mBAC1GI,EAAUL,EAAI,CAAC,CAAC,KAAKM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC,MAC1F,KAAK,OAAS,EAChBV,GAAa,WAAWa,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE9HV,GAAa,MAGfA,GAAa,WAAWc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC;AAAA,kBAC3GK,EAAUJ,EAAI,CAAC,CAAC,KAAKK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC,MACzF,KAAK,OAAS,EAChBT,GAAa,WAAWa,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAE9HT,GAAa,IAGlB,CACD,MAEF,IAAK,SACH,CACE,MAAMS,EAAK,IAAIL,EAAQC,EAAQ,EAAG,CAAC,EAAIA,EAAQ,EAAG,CAAC,EAAI,GAAKA,EAAQ,EAAG,CAAC,EAAI,IAAMA,EAAQ,EAAG,CAAC,EAAI,GAAI,EAAE,IAAI,EAAE,EACxGK,EAAK,IAAIN,EAAQK,CAAE,EAAE,IAAK,EAAIJ,EAAQ,EAAG,CAAC,EAAI,IAAQC,EAAO,CAAC,EAAG,EAAE,CAAC,CAAC,EACrEK,EAAM,KAAK,MAAMF,EAAK,GAAI,EAAI,IAC9BG,EAAM,KAAK,MAAMF,EAAK,GAAI,EAAI,IAC9BG,EAAMP,EAAOJ,CAAI,EACnB,KAAK,OAAS,EAChBH,EAAQ,UAAUc,CAAG;AAAA,kDACeA,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAE5FX,EAAQ,wCAAwCe,EAAUL,EAAI,CAAC,CAAC,aAAaK,EAAUJ,EAAI,CAAC,CAAC,QAG/FV,EAAY;AAAA,wGAGRW,EAAMC,GACRZ,GAAa,WAAWc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC;AAAA,oBACzGI,EAAUL,EAAI,CAAC,CAAC,MAAMM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,IAAID,EAAUJ,EAAI,CAAC,CAAC,OAC7F,KAAK,OAAS,EAChBV,GAAa,WAAWa,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE9HV,GAAa,MAGfA,GAAa,WAAWc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC;AAAA,mBAC1GK,EAAUJ,EAAI,CAAC,CAAC,MAAMK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,IAAID,EAAUL,EAAI,CAAC,CAAC,OAC5F,KAAK,OAAS,EAChBT,GAAa,WAAWa,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAE9HT,GAAa,IAGlB,CACD,MAEF,IAAK,SACH,CACE,MAAMS,EAAK,IAAIL,EAAQC,EAAQ,EAAG,CAAC,EAAIA,EAAQ,EAAG,CAAC,EAAI,EAAE,EACnDK,EAAK,IAAIN,EAAQK,CAAE,EAAE,IAAKJ,EAAQ,EAAG,CAAC,EAAI,GAAMC,EAAO,CAAC,EAAG,EAAE,CAAC,CAAC,EAC/DK,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC5BG,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAE5BG,EAAMP,EAAOJ,CAAI,EACnB,KAAK,OAAS,EAChBH,EAAQ,UAAUc,CAAG;AAAA,kDACeA,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAE5FX,EAAQ,kDAAkDe,EAAUL,EAAI,CAAC,CAAC,qBAAqBK,EAAUJ,EAAI,CAAC,CAAC,MAGjHV,EAAY;AAAA,uIAGRW,EAAMC,GACRZ,GAAa,WAAWc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC;AAAA,8BAC/FI,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,cAAcD,EAAUJ,EAAI,CAAC,CAAC,KAC/G,KAAK,OAAS,EAChBV,GAAa,WAAWa,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE9HV,GAAa,MAGfA,GAAa,WAAWc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC;AAAA,6BAChGK,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,cAAcD,EAAUL,EAAI,CAAC,CAAC,KAC9G,KAAK,OAAS,EAChBT,GAAa,WAAWa,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAE9HT,GAAa,IAGlB,CACD,MAEF,IAAK,SACH,CACE,MAAMS,EAAK,IAAIL,EAAQC,EAAQ,EAAG,CAAC,EAAIA,EAAQ,EAAG,CAAC,EAAI,EAAE,EAAE,IAAI,EAAE,EAC3DK,EAAK,IAAIN,EAAQK,CAAE,EAAE,IAAKJ,EAAQ,EAAG,CAAC,EAAI,GAAMC,EAAO,CAAC,EAAG,EAAE,CAAC,CAAC,EAC/DK,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC5BG,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAE5BG,EAAMP,EAAOJ,CAAI,EACnB,KAAK,OAAS,EAChBH,EAAQ,UAAUc,CAAG;AAAA,kDACeA,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAE5FX,EAAQ,kDAAkDe,EAAUL,EAAI,CAAC,CAAC,qBAAqBK,EAAUJ,EAAI,CAAC,CAAC,MAGjHV,EAAY;AAAA,uIAGRW,EAAMC,GACRZ,GAAa,WAAWc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC;AAAA,8BAC/FI,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,cAAcD,EAAUJ,EAAI,CAAC,CAAC,KAC/G,KAAK,OAAS,EAChBV,GAAa,WAAWa,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE9HV,GAAa,MAGfA,GAAa,WAAWc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC;AAAA,6BAChGK,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,cAAcD,EAAUL,EAAI,CAAC,CAAC,KAC9G,KAAK,OAAS,EAChBT,GAAa,WAAWa,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAE9HT,GAAa,IAGlB,CACD,MAEF,IAAK,SACH,CACE,IAAIS,EAAK,IAAIL,EAAQC,EAAQ,EAAG,EAAE,EAAKA,EAAQ,EAAG,CAAC,EAAI,EAAG,EAC1D,MAAMK,EAAK,IAAIN,EAAQK,CAAE,EAAE,IAAKJ,EAAQ,EAAG,EAAG,CAAC,EAAI,GAAMC,EAAO,CAAC,EAAG,EAAE,CAAC,CAAC,EAClEK,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC5BG,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC9BC,IAAQ,IACVF,EAAK,IAAIL,EAAQC,EAAQ,EAAG,EAAE,EAAKA,EAAQ,EAAG,CAAC,EAAI,EAAG,GAExD,MAAMQ,EAAMP,EAAOJ,CAAI,EACnB,KAAK,OAAS,EAChBH,EAAQ,UAAUc,CAAG;AAAA,kDACeA,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAE5FX,EAAQ,8CAA8Ce,EAAUL,EAAI,CAAC,CAAC,iBAAiBK,EAAUJ,EAAI,CAAC,CAAC,MAGzGV,EAAY;AAAA,oHAGRW,EAAMC,GACRZ,GAAa,WAAWc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC;AAAA,0BACnGI,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,UAAUD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC,KACvG,KAAK,OAAS,EAChBV,GAAa,WAAWa,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE9HV,GAAa,MAGfA,GAAa,WAAWc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC;AAAA,yBACpGK,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,UAAUD,EAAUL,EAAI,CAAC,CAAC,KACtG,KAAK,OAAS,EAChBT,GAAa,WAAWa,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAE9HT,GAAa,IAGlB,CACD,MACF,IAAK,SACH,CACE,MAAMS,EAAK,IAAIL,EAAQC,EAAQ,IAAK,EAAE,EAAKA,EAAQ,GAAI,EAAG,CAAC,EAAI,GAAMC,EAAO,CAAC,GAAI,CAAC,CAAC,CAAC,EAC9EI,EAAK,IAAIN,EAAQK,CAAE,EAAE,IAAKJ,EAAQ,EAAG,CAAC,EAAI,GAAMC,EAAO,CAAC,EAAG,EAAE,CAAC,CAAC,EAC/DK,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC5BG,EAAM,KAAK,MAAMF,EAAK,EAAE,EAAI,GAC5BG,EAAMP,EAAOJ,CAAI,EACnB,KAAK,OAAS,EAChBH,EAAQ,UAAUc,CAAG;AAAA,kDACeA,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,UAAUI,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,OAE5FX,EAAQ,uCAAuCkB,EAA4BR,CAAK,CAAC,WAAWQ,EAA4BP,CAAK,CAAC,OAGhIV,EAAY;AAAA,+FAGRW,EAAMC,GACRZ,GAAa,WAAWc,EAAUL,EAAI,CAAC,CAAC,GAAGM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUJ,EAAI,CAAC,CAAC;AAAA,mBAC1GO,EAA4BR,CAAK,CAAC,KAAKM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGE,EAA4BP,CAAK,CAAC,MAC9H,KAAK,OAAS,EAChBV,GAAa,WAAWa,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,IAAIM,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,MAE9HV,GAAa,MAGfA,GAAa,WAAWc,EAAUJ,EAAI,CAAC,CAAC,GAAGK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGD,EAAUL,EAAI,CAAC,CAAC;AAAA,kBAC3GQ,EAA4BP,CAAK,CAAC,KAAKK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGE,EAA4BR,CAAK,CAAC,MAC7H,KAAK,OAAS,EAChBT,GAAa,WAAWa,CAAG,IAAIC,EAAUJ,EAAI,CAAC,CAAC,IAAIK,EAAG,CAAC,CAAC,GAAGC,EAAe,iBAAiB,CAAC,GAAGD,EAAG,CAAC,CAAC,GAAGF,CAAG,IAAIC,EAAUL,EAAI,CAAC,CAAC,MAE9HT,GAAa,IAGlB,CACD,KACH,CACG,KAAK,eAAe,QAAQD,CAAK,IAAM,KAEzC,KAAK,eAAe,KAAKA,CAAK,EAC9B,KAAK,iBAAiB,KAAKC,CAAS,EACpCF,KAEFG,GACD,CACDiB,EAAwB,IAAI,CAC7B,EACD,KAAK,0BAA4B,CAAC,sBAAuB,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA,YAAoK,EAChO,KAAK,2BAA6B,CAAC,oBAAqB,EAAG;AAAA,qDAAsF,CACnJ"}