File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6P14-ifcthCFD.js.map
{"version":3,"file":"6P14-ifcthCFD.js","sources":["../../src/exercices/6e/6P14.js"],"sourcesContent":["import { angleOriente, codageAngleDroit } from '../../lib/2d/angles.js'\nimport { afficheLongueurSegment, codageSegments } from '../../lib/2d/codages.js'\nimport { point, pointAdistance } from '../../lib/2d/points.js'\nimport { nommePolygone, polygone } from '../../lib/2d/polygones.js'\nimport { rotation } from '../../lib/2d/transformations.js'\nimport { triangle2points2longueurs } from '../../lib/2d/triangle.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { arrondi, nombreDeChiffresDansLaPartieDecimale, nombreDeChiffresDe } from '../../lib/outils/nombres'\nimport { lettreDepuisChiffre, sp } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre'\nimport Exercice from '../deprecatedExercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { max, min } from 'mathjs'\nimport FractionEtendue from '../../modules/FractionEtendue.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\nimport { aleaVariables } from '../../modules/outilsMathjs.js'\n\nexport const titre = 'Enlarge or reduce figures, based on a situation of proportionality'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\nexport const dateDePublication = '13/03/2022'\n\n/**\n * Trouver comment agrandir ou réduire des longueurs d'une figure et construire la figure demandée\n * @author Eric Elter\n * Référence 6P14\n */\nexport const uuid = '4c6e2'\nexport const ref = '6P14'\nexport default function AgrandirReduireFigure () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.titre = titre\n this.besoinFormulaireTexte = [\n 'Type of figures', [\n 'Numbers separated by hyphens',\n '1: Equilateral triangle',\n '2: Square',\n '3: Triangle with reduction or enlargement coefficient',\n '4: Triangle with initial length and final length',\n '5: Rectangle with reduction or enlargement coefficient',\n '6: Rectangle with initial length and final length',\n '7: Combination'\n ].join('\\not')\n ]\n this.sup = 7\n this.nbQuestions = 4\n this.spacingCorr = 1\n this.spacing = 2\n\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n /*\n let listeTypeQuestions = []\n if (!this.sup) { // Si aucune liste n'est saisie\n listeTypeQuestions = rangeMinMax(1, 6)\n } else {\n if (typeof (this.sup) === 'number') { // Si c'is a number it means the number was entered in the address bar\n listeTypeQuestions[0] = contraindreValeur(1, 7, this.sup, 7)\n } else {\n listeTypeQuestions = this.sup.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < listeTypeQuestions.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']\n listeTypeQuestions[i] = contraindreValeur(1, 7, parseInt(listeTypeQuestions[i]), 7) // parseInt en fait un tableau d'entiers\n }\n }\n }\n if (compteOccurences(listeTypeQuestions, 7) > 0) listeTypeQuestions = rangeMinMax(1, 6) // Teste si l'utilisateur a choisi tout\n listeTypeQuestions = combinaisonListes(listeTypeQuestions, this.nbQuestions)\n */\n\n const listeTypeQuestions = gestionnaireFormulaireTexte({\n max: 6,\n defaut: 7,\n melange: 7,\n nbQuestions: this.nbQuestions,\n saisie: this.sup\n })\n\n const texteAgrandissementOuReduction = [[' enlargement', 'e reduction'], ['the requested expansion', 'the requested reduction']] // Ne pas supprimer le 'e'\n let ii = 0 // Cet indice permet de gérer les numéros de champs interactifs car ces champs ne sont pas de nombre égal selon les listeTypeQuestions[i].\n let iiAMC // Cet indice permet de gérer les numéros de champs AMC car ces champs ne sont pas de nombre égal selon les listeTypeQuestions[i].\n for (let i = 0, texte, A, B, C, D, BCorr, CCorr, DCorr, polygoneInit, polygoneCorr, choixOrientation, coefAgrandissement, coefReduction, choixAgrandissementOuReduction, sensRotation, nom, nomCorr, absD, absC, absB, alpha, alphaCorr, objets, numA, numACorr, numB, numC, numD, numBCorr, numCCorr, numDCorr, propositionsAMC, enonceAMC, enonceInit, texteCorr, reponse, reponse1, reponse2, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n propositionsAMC = []\n iiAMC = 0\n objets = []\n coefAgrandissement = [1.5, 2, 3, 5, 0.5, 0.25, 0.75]\n coefReduction = [new FractionEtendue(1, 2), new FractionEtendue(1, 4), new FractionEtendue(3, 4)]\n choixAgrandissementOuReduction = randint(0, 6)\n A = point(0, 0)\n absB = choixAgrandissementOuReduction < 5 ? randint(5, 11, [6, 9]) : 2 * randint(4, 7)\n switch (listeTypeQuestions[i]) {\n case 1:\n reponse = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absB, 1)\n alpha = randint(10, 170)\n alphaCorr = randint(10, 170, [alpha])\n sensRotation = choice([-1, 1])\n B = pointAdistance(A, absB, sensRotation * alpha)\n BCorr = pointAdistance(A, reponse, sensRotation * alphaCorr)\n C = pointAdistance(A, absB, sensRotation * (alpha + 60))\n CCorr = pointAdistance(A, reponse, sensRotation * (alphaCorr + 60))\n polygoneInit = polygone(A, B, C)\n polygoneCorr = polygone(A, BCorr, CCorr)\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n nom = lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC)\n numACorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n numBCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr])\n numCCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr])\n nomCorr = lettreDepuisChiffre(numACorr) + lettreDepuisChiffre(numBCorr) + lettreDepuisChiffre(numCCorr)\n objets.push(polygoneInit, codageSegments('||', 'red', polygoneInit.listePoints), afficheLongueurSegment(sensRotation < 0 ? A : B, sensRotation < 0 ? B : A, 'blue', 0.5, '', true), nommePolygone(polygoneInit, nom))\n enonceInit = `We decide to perform a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of the equilateral triangle ${nom}. What will be the length of the side of the triangle to construct?`\n texte = enonceInit\n enonceAMC = '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x) - 1,\n ymin: min(A.y, B.y, C.y) - 1,\n xmax: max(A.x, B.x, C.x) + 1,\n ymax: max(A.y, B.y, C.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n texte += enonceAMC\n if (this.interactif) {\n texte += ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, reponse)\n } else if (!context.isAmc) {\n texte = `Plot a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of triangle ${nom}.`\n texte += '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x) - 1,\n ymin: min(A.y, B.y, C.y) - 1,\n xmax: max(A.x, B.x, C.x) + 1,\n ymax: max(A.y, B.y, C.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n } else {\n propositionsAMC[iiAMC] = {\n type: 'AMCOpen',\n propositions:\n [\n {\n texte: '',\n statut: 1,\n sanscadre: true,\n enonce: enonceAMC + `<br>Trace, on a white sheet, ${texteAgrandissementOuReduction[1][choixAgrandissementOuReduction < 4 ? 0 : 1]}.`,\n sanslignes: true\n }\n ]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceInit,\n valeur: [reponse],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(reponse),\n decimals: nombreDeChiffresDansLaPartieDecimale(reponse),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n }\n texteCorr = `Performing a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ involves multiplying all lengths by this coefficient`\n if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or, since $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}=${coefReduction[choixAgrandissementOuReduction - 4].texFraction}$, this amounts to dividing all lengths by $${coefReduction[choixAgrandissementOuReduction - 4].den}$`\n texteCorr += choixAgrandissementOuReduction === 6 ? ' then multiply each of these results by 3' : ''\n }\n texteCorr += '.<br>'\n texteCorr += `$${absB} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse)}$`\n if (choixAgrandissementOuReduction === 6) {\n texteCorr += ` or $(${absB} \\\\div 4) \\\\times 3=${texNombre(arrondi(absB / 4, 1))} \\\\times 3=${texNombre(reponse)}$`\n } else if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or $${absB} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse)}$`\n }\n texteCorr += `<br>The equilateral triangle resulting from a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the triangle ${nom} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ therefore has sides of length $${miseEnEvidence(texNombre(reponse))}$.`\n texteCorr += '<br>Here is a creation below.'\n objets = []\n objets.push(polygoneCorr, codageSegments('|||', 'blue', polygoneCorr.listePoints), afficheLongueurSegment(sensRotation < 0 ? A : BCorr, sensRotation < 0 ? BCorr : A, 'red', 0.5, '', true), nommePolygone(polygoneCorr, nomCorr))\n texteCorr += '<br>' + mathalea2d({\n xmin: min(A.x, BCorr.x, CCorr.x) - 1,\n ymin: min(A.y, BCorr.y, CCorr.y) - 1,\n xmax: max(A.x, BCorr.x, CCorr.x) + 1,\n ymax: max(A.y, BCorr.y, CCorr.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n break\n case 2:\n reponse = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absB, 1)\n alpha = randint(10, 170)\n alphaCorr = randint(10, 170, [alpha])\n sensRotation = choice([-1, 1])\n B = pointAdistance(A, absB, sensRotation * alpha)\n BCorr = pointAdistance(A, reponse, sensRotation * alphaCorr)\n C = rotation(A, B, 90)\n D = rotation(B, A, -90)\n CCorr = rotation(A, BCorr, 90)\n DCorr = rotation(BCorr, A, -90)\n polygoneInit = polygone(A, B, C, D)\n polygoneCorr = polygone(A, BCorr, CCorr, DCorr)\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n numD = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n nom = lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC) + lettreDepuisChiffre(numD)\n numACorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n numBCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr])\n numCCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr])\n numDCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr, numCCorr])\n nomCorr = lettreDepuisChiffre(numACorr) + lettreDepuisChiffre(numBCorr) + lettreDepuisChiffre(numCCorr) + lettreDepuisChiffre(numDCorr)\n objets.push(polygoneInit, codageSegments('||', 'red', polygoneInit.listePoints), afficheLongueurSegment(A, B, 'blue', 0.5, '', true), nommePolygone(polygoneInit, nom))\n objets.push(codageAngleDroit(A, B, C), codageAngleDroit(D, C, B), codageAngleDroit(A, D, C), codageAngleDroit(B, A, D))\n enonceInit = `We decide to perform a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$, of the square ${nom}. What will be the length of the side of the square to be constructed?`\n texte = enonceInit\n enonceAMC = '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x, D.x) - 1,\n ymin: min(A.y, B.y, C.y, D.y) - 1,\n xmax: max(A.x, B.x, C.x, D.x) + 1,\n ymax: max(A.y, B.y, C.y, D.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n texte += enonceAMC\n if (this.interactif) {\n texte += ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, reponse)\n } else if (!context.isAmc) {\n texte = `Plot a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of the square ${nom}.`\n texte += '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x, D.x) - 1,\n ymin: min(A.y, B.y, C.y, D.y) - 1,\n xmax: max(A.x, B.x, C.x, D.x) + 1,\n ymax: max(A.y, B.y, C.y, D.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n } else {\n propositionsAMC[iiAMC] = {\n type: 'AMCOpen',\n propositions:\n [\n {\n texte: '',\n statut: 1,\n sanscadre: true,\n enonce: enonceAMC + `<br>Trace, on a white sheet, ${texteAgrandissementOuReduction[1][choixAgrandissementOuReduction < 4 ? 0 : 1]}.`,\n sanslignes: true\n }\n ]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceInit,\n valeur: [reponse],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(reponse),\n decimals: nombreDeChiffresDansLaPartieDecimale(reponse),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n }\n texteCorr = `Performing a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ involves multiplying all lengths by this coefficient`\n if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or, since $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}=${coefReduction[choixAgrandissementOuReduction - 4].texFraction}$, this amounts to dividing all lengths by $${coefReduction[choixAgrandissementOuReduction - 4].den}$`\n texteCorr += choixAgrandissementOuReduction === 6 ? ' then multiply each of these results by 3' : ''\n }\n texteCorr += '.<br>'\n texteCorr += `$${absB} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse)}$`\n if (choixAgrandissementOuReduction === 6) {\n texteCorr += ` or $(${absB} \\\\div 4) \\\\times 3=${texNombre(arrondi(absB / 4, 1))} \\\\times 3=${texNombre(reponse)}$`\n } else if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or $${absB} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse)}$`\n }\n texteCorr += `<br>The square resulting from a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the square ${nom} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ therefore has sides of length $${miseEnEvidence(texNombre(reponse))}$.`\n texteCorr += '<br>Here is a creation below.'\n objets = []\n objets.push(polygoneCorr, codageSegments('|||', 'blue', polygoneCorr.listePoints), afficheLongueurSegment(A, BCorr, 'red', 0.5, '', true), nommePolygone(polygoneCorr, nomCorr))\n objets.push(codageAngleDroit(A, BCorr, CCorr), codageAngleDroit(DCorr, CCorr, BCorr), codageAngleDroit(A, DCorr, CCorr), codageAngleDroit(BCorr, A, DCorr))\n texteCorr += '<br>' + mathalea2d({\n xmin: min(A.x, BCorr.x, CCorr.x, DCorr.x) - 1,\n ymin: min(A.y, BCorr.y, CCorr.y, DCorr.y) - 1,\n xmax: max(A.x, BCorr.x, CCorr.x, DCorr.x) + 1,\n ymax: max(A.y, BCorr.y, CCorr.y, DCorr.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n break\n case 3:\n absC = choixAgrandissementOuReduction < 4 ? randint(5, 11, [6, 9, absB]) : 2 * randint(4, 7, [arrondi(absB / 2, 0)])\n absD = Object.values(aleaVariables({ absD: true, test: `absD>0 and absD<${absB + absC} and ${absB}<absD+${absC} and ${absC}<absD+${absB}` }, { valueOf: true }))[0]\n // absD = choiceEnlargementOrReduction < 4? randint(5, 11, [6, 9, absB, absC]): 2 * randint(4, 7, [rounded(absB / 2, 0), rounded(absC / 2, 0)])\n reponse = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absB, 1)\n reponse1 = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absC, 1)\n reponse2 = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absD, 1)\n alpha = randint(10, 170)\n alphaCorr = randint(10, 170, [alpha])\n sensRotation = choice([-1, 1])\n B = pointAdistance(A, absB, sensRotation * alpha)\n BCorr = pointAdistance(A, reponse, sensRotation * alphaCorr)\n choixOrientation = randint(1, 2)\n polygoneInit = triangle2points2longueurs(A, B, absC, absD, choixOrientation)\n C = polygoneInit.listePoints[2]\n polygoneCorr = triangle2points2longueurs(A, BCorr, reponse1, reponse2, choixOrientation)\n CCorr = polygoneCorr.listePoints[2]\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n nom = lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC)\n numACorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n numBCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr])\n numCCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr])\n nomCorr = lettreDepuisChiffre(numACorr) + lettreDepuisChiffre(numBCorr) + lettreDepuisChiffre(numCCorr)\n objets.push(polygoneInit, nommePolygone(polygoneInit, nom))\n objets.push(afficheLongueurSegment(angleOriente(C, A, B) > 0 ? A : B, angleOriente(C, A, B) > 0 ? B : A, 'blue', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(A, B, C) > 0 ? B : C, angleOriente(A, B, C) > 0 ? C : B, 'blue', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(B, C, A) > 0 ? C : A, angleOriente(B, C, A) > 0 ? A : C, 'blue', 0.5, '', true))\n enonceInit = `We decide to perform a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of the triangle ${nom}. What will be the respective lengths of each side of the triangle to be constructed?`\n enonceAMC = '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x) - 1,\n ymin: min(A.y, B.y, C.y) - 1,\n xmax: max(A.x, B.x, C.x) + 1,\n ymax: max(A.y, B.y, C.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n if (this.interactif) {\n texte = enonceInit\n texte += enonceAMC\n texte += '<br> In the new triangle, the smallest length will be:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, min(reponse, reponse1, reponse2))\n ii++\n texte += '<br> In the new triangle, the greatest length will be:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, max(reponse, reponse1, reponse2))\n ii++\n texte += '<br> In the new triangle, the last length will be:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, choice([reponse, reponse1, reponse2], [min(reponse, reponse1, reponse2), max(reponse, reponse1, reponse2)]))\n } else if (!context.isAmc) {\n texte = `Plot a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of triangle ${nom}.`\n texte += '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x) - 1,\n ymin: min(A.y, B.y, C.y) - 1,\n xmax: max(A.x, B.x, C.x) + 1,\n ymax: max(A.y, B.y, C.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n } else {\n propositionsAMC[iiAMC] = {\n type: 'AMCOpen',\n propositions:\n [\n {\n texte: '',\n statut: 1,\n sanscadre: true,\n enonce: enonceAMC + `<br>Trace, on a white sheet, ${texteAgrandissementOuReduction[1][choixAgrandissementOuReduction < 4 ? 0 : 1]}.`,\n sanslignes: true\n }\n ]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceInit + '<br> <br>In the new triangle, the smallest length will be:',\n valeur: [min(reponse, reponse1, reponse2)],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(min(reponse, reponse1, reponse2)),\n decimals: nombreDeChiffresDansLaPartieDecimale(min(reponse, reponse1, reponse2)),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'In the new triangle, the greatest length will be:',\n valeur: [max(reponse, reponse1, reponse2)],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(max(reponse, reponse1, reponse2)),\n decimals: nombreDeChiffresDansLaPartieDecimale(max(reponse, reponse1, reponse2)),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'In the new triangle, the last length will be:',\n valeur: [choice([reponse, reponse1, reponse2], [min(reponse, reponse1, reponse2), max(reponse, reponse1, reponse2)])],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(choice([reponse, reponse1, reponse2], [min(reponse, reponse1, reponse2), max(reponse, reponse1, reponse2)])),\n decimals: nombreDeChiffresDansLaPartieDecimale(choice([reponse, reponse1, reponse2], [min(reponse, reponse1, reponse2), max(reponse, reponse1, reponse2)])),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n }\n texteCorr = `Performing a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ involves multiplying all lengths by this coefficient`\n if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or, since $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}=${coefReduction[choixAgrandissementOuReduction - 4].texFraction}$, this amounts to dividing all lengths by $${coefReduction[choixAgrandissementOuReduction - 4].den}$`\n texteCorr += choixAgrandissementOuReduction === 6 ? ' then multiply each of these results by 3' : ''\n }\n texteCorr += '.<br>'\n texteCorr += `$${absB} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse)}${sp(10)}$`\n texteCorr += `$${absC} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse1)}${sp(10)}$`\n texteCorr += `$${absD} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse2)}$`\n if (choixAgrandissementOuReduction === 6) {\n texteCorr += `${sp(10)} or ${sp(10)}$(${absB} \\\\div 4) \\\\times 3=${texNombre(arrondi(absB / 4, 1))} \\\\times 3=${texNombre(reponse)}$`\n texteCorr += `${sp(10)}$(${absC} \\\\div 4) \\\\times 3=${texNombre(arrondi(absC / 4, 1))} \\\\times 3=${texNombre(reponse1)}$`\n texteCorr += `${sp(10)}$(${absD} \\\\div 4) \\\\times 3=${texNombre(arrondi(absD / 4, 1))} \\\\times 3=${texNombre(reponse2)}$`\n } else if (choixAgrandissementOuReduction >= 4) {\n texteCorr += `${sp(10)} or ${sp(10)}$${absB} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse)}$`\n texteCorr += `${sp(10)}$${absC} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse1)}$`\n texteCorr += `${sp(10)}$${absD} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse2)}$`\n }\n texteCorr += `<br>The triangle resulting from a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the triangle ${nom} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ therefore has sides of respective length $${miseEnEvidence(texNombre(reponse))}$; $${miseEnEvidence(texNombre(reponse1))}$ and $${miseEnEvidence(texNombre(reponse2))}$.`\n texteCorr += '<br>Here is a creation below.'\n objets = []\n objets.push(polygoneCorr, nommePolygone(polygoneCorr, nomCorr))\n objets.push(afficheLongueurSegment(angleOriente(CCorr, A, BCorr) > 0 ? A : BCorr, angleOriente(CCorr, A, BCorr) > 0 ? BCorr : A, 'red', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(A, BCorr, CCorr) > 0 ? BCorr : CCorr, angleOriente(A, BCorr, CCorr) > 0 ? CCorr : BCorr, 'red', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(BCorr, CCorr, A) > 0 ? CCorr : A, angleOriente(BCorr, CCorr, A) > 0 ? A : CCorr, 'red', 0.5, '', true))\n texteCorr += '<br>' + mathalea2d({\n xmin: min(A.x, BCorr.x, CCorr.x) - 1,\n ymin: min(A.y, BCorr.y, CCorr.y) - 1,\n xmax: max(A.x, BCorr.x, CCorr.x) + 1,\n ymax: max(A.y, BCorr.y, CCorr.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n break\n case 4:\n\n absC = choixAgrandissementOuReduction < 4 ? randint(5, 11, [6, 9, absB]) : 2 * randint(4, 7, [arrondi(absB / 2, 0)])\n absD = Object.values(aleaVariables({ absD: true, test: `absD>0 and absD<${absB + absC} and ${absB}<absD+${absC} and ${absC}<absD+${absB}` }, { valueOf: true }))[0]\n // absD = choiceEnlargementOrReduction < 4? randint(5, 11, [6, 9, absB, absC]): 2 * randint(4, 7, [rounded(absB / 2, 0), rounded(absC / 2, 0)])\n reponse = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absB, 1)\n reponse1 = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absC, 1)\n reponse2 = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absD, 1)\n alpha = randint(10, 170)\n alphaCorr = randint(10, 170, [alpha])\n sensRotation = choice([-1, 1])\n B = pointAdistance(A, absB, sensRotation * alpha)\n BCorr = pointAdistance(A, reponse, sensRotation * alphaCorr)\n choixOrientation = randint(1, 2)\n polygoneInit = triangle2points2longueurs(A, B, absC, absD, choixOrientation)\n C = polygoneInit.listePoints[2]\n polygoneCorr = triangle2points2longueurs(A, BCorr, reponse1, reponse2, choixOrientation)\n CCorr = polygoneCorr.listePoints[2]\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n nom = lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC)\n numACorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n numBCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr])\n numCCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr])\n nomCorr = lettreDepuisChiffre(numACorr) + lettreDepuisChiffre(numBCorr) + lettreDepuisChiffre(numCCorr)\n objets.push(polygoneInit, nommePolygone(polygoneInit, nom))\n objets.push(afficheLongueurSegment(angleOriente(C, A, B) > 0 ? A : B, angleOriente(C, A, B) > 0 ? B : A, 'blue', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(A, B, C) > 0 ? B : C, angleOriente(A, B, C) > 0 ? C : B, 'blue', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(B, C, A) > 0 ? C : A, angleOriente(B, C, A) > 0 ? A : C, 'blue', 0.5, '', true))\n enonceInit = `We decide to perform a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the triangle ${nom}, such that the length of the side associated with [${lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC)}] will measure $${texNombre(reponse2)}$.<br>What will be the respective lengths of the two other sides of the triangle to construct?`\n enonceAMC = '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x) - 1,\n ymin: min(A.y, B.y, C.y) - 1,\n xmax: max(A.x, B.x, C.x) + 1,\n ymax: max(A.y, B.y, C.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n if (this.interactif) {\n texte = enonceInit\n texte += enonceAMC\n texte += '<br> In the new triangle, the smallest length to find will be:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, min(reponse, reponse1))\n ii++\n texte += '<br> In the new triangle, the greatest length to find will be:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, max(reponse, reponse1))\n } else if (!context.isAmc) {\n texte = `Draw a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the triangle ${nom} such that the length of the side associated with [${lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC)}] will measure $${texNombre(reponse2)}$.`\n texte += '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x) - 1,\n ymin: min(A.y, B.y, C.y) - 1,\n xmax: max(A.x, B.x, C.x) + 1,\n ymax: max(A.y, B.y, C.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n } else {\n propositionsAMC[iiAMC] = {\n type: 'AMCOpen',\n propositions:\n [\n {\n texte: '',\n statut: 1,\n sanscadre: true,\n enonce: enonceAMC + `<br>Trace, on a white sheet, ${texteAgrandissementOuReduction[1][choixAgrandissementOuReduction < 4 ? 0 : 1]}.`,\n sanslignes: true\n }\n ]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceInit + '<br> <br>In the new triangle, the smallest length to find will be:',\n valeur: [min(reponse, reponse1)],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(min(reponse, reponse1)),\n decimals: nombreDeChiffresDansLaPartieDecimale(min(reponse, reponse1)),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'In the new triangle, the greatest length to find will be:',\n valeur: [max(reponse, reponse1)],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(max(reponse, reponse1)),\n decimals: nombreDeChiffresDansLaPartieDecimale(max(reponse, reponse1)),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n }\n texteCorr = `Performing a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} involves multiplying all lengths by a proportionality coefficient. Let's find this coefficient.<br>`\n texteCorr += `To find this coefficient, divide the known length of the future triangle by its associated length in the current triangle: $${texNombre(reponse2)} \\\\div ${absD} = ${coefAgrandissement[choixAgrandissementOuReduction]}$. The proportionality coefficient is therefore $${coefAgrandissement[choixAgrandissementOuReduction]}$.<br>`\n texteCorr += `Let's multiply all known lengths of the current triangle by $${coefAgrandissement[choixAgrandissementOuReduction]}$`\n\n if (choixAgrandissementOuReduction >= 4) {\n texteCorr += `, or, since $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}=${coefReduction[choixAgrandissementOuReduction - 4].texFraction}$, this amounts to dividing all lengths by $${coefReduction[choixAgrandissementOuReduction - 4].den}$`\n texteCorr += choixAgrandissementOuReduction === 6 ? ' then multiply each of these results by 3' : ''\n }\n texteCorr += `.<br>$${absB} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse)}${sp(10)}$`\n texteCorr += `$${absC} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse1)}$`\n if (choixAgrandissementOuReduction === 6) {\n texteCorr += `${sp(10)} or ${sp(10)}$(${absB} \\\\div 4) \\\\times 3=${texNombre(arrondi(absB / 4, 1))} \\\\times 3=${texNombre(reponse)}$`\n texteCorr += `${sp(10)}$(${absC} \\\\div 4) \\\\times 3=${texNombre(arrondi(absC / 4, 1))} \\\\times 3=${texNombre(reponse1)}$`\n } else if (choixAgrandissementOuReduction >= 4) {\n texteCorr += `${sp(10)} or ${sp(10)}$${absB} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse)}$`\n texteCorr += `${sp(10)}$${absC} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse1)}$`\n }\n texteCorr += `<br>The triangle resulting from a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the triangle ${nom} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ therefore has sides of respective length $${texNombre(reponse2)}$; $${miseEnEvidence(texNombre(reponse1))}$ and $${miseEnEvidence(texNombre(reponse))}$.`\n texteCorr += '<br>Here is a creation below.'\n objets = []\n objets.push(polygoneCorr, nommePolygone(polygoneCorr, nomCorr))\n objets.push(afficheLongueurSegment(angleOriente(CCorr, A, BCorr) > 0 ? A : BCorr, angleOriente(CCorr, A, BCorr) > 0 ? BCorr : A, 'red', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(A, BCorr, CCorr) > 0 ? BCorr : CCorr, angleOriente(A, BCorr, CCorr) > 0 ? CCorr : BCorr, 'red', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(BCorr, CCorr, A) > 0 ? CCorr : A, angleOriente(BCorr, CCorr, A) > 0 ? A : CCorr, 'red', 0.5, '', true))\n texteCorr += '<br>' + mathalea2d({\n xmin: min(A.x, BCorr.x, CCorr.x) - 1,\n ymin: min(A.y, BCorr.y, CCorr.y) - 1,\n xmax: max(A.x, BCorr.x, CCorr.x) + 1,\n ymax: max(A.y, BCorr.y, CCorr.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n break\n case 5:\n absC = choixAgrandissementOuReduction < 4 ? randint(5, 11, [6, 9, absB]) : 2 * randint(4, 7, [arrondi(absB / 2, 0)])\n absD = choixAgrandissementOuReduction < 4 ? randint(5, 11, [6, 9, absB, absC]) : 2 * randint(4, 7, [arrondi(absB / 2, 0), arrondi(absC / 2, 0)])\n reponse = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absB, 1)\n reponse1 = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absC, 1)\n alpha = randint(10, 170)\n alphaCorr = randint(10, 170, [alpha])\n sensRotation = choice([-1, 1])\n B = pointAdistance(A, absB, sensRotation * alpha)\n BCorr = pointAdistance(A, reponse, sensRotation * alphaCorr)\n C = rotation(pointAdistance(B, absC, 180 + sensRotation * alpha), B, -90)\n CCorr = rotation(pointAdistance(BCorr, reponse1, 180 + sensRotation * alphaCorr), BCorr, -90)\n D = rotation(pointAdistance(A, absC, sensRotation * alpha), A, 90)\n DCorr = rotation(pointAdistance(A, reponse1, sensRotation * alphaCorr), A, 90)\n polygoneInit = polygone(A, B, C, D)\n polygoneCorr = polygone(A, BCorr, CCorr, DCorr)\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n numD = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n nom = lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC) + lettreDepuisChiffre(numD)\n numACorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n numBCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr])\n numCCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr])\n numDCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr, numCCorr])\n nomCorr = lettreDepuisChiffre(numACorr) + lettreDepuisChiffre(numBCorr) + lettreDepuisChiffre(numCCorr) + lettreDepuisChiffre(numDCorr)\n objets.push(polygoneInit, nommePolygone(polygoneInit, nom))\n objets.push(codageSegments('||', 'red', A, B, C, D))\n objets.push(codageSegments('X', 'red', B, C, D, A))\n objets.push(afficheLongueurSegment(angleOriente(B, C, D) > 0 ? C : D, angleOriente(B, C, D) > 0 ? D : C, 'blue', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(C, D, A) > 0 ? D : A, angleOriente(C, D, A) > 0 ? A : D, 'blue', 0.5, '', true))\n objets.push(codageAngleDroit(A, B, C), codageAngleDroit(D, C, B), codageAngleDroit(A, D, C), codageAngleDroit(B, A, D))\n enonceInit = `We decide to perform a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of the rectangle ${nom}. What will be the respective lengths of each side of the rectangle to be constructed?`\n enonceAMC = '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x, D.x) - 1,\n ymin: min(A.y, B.y, C.y, D.y) - 1,\n xmax: max(A.x, B.x, C.x, D.x) + 1,\n ymax: max(A.y, B.y, C.y, D.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n if (this.interactif) {\n texte = enonceInit\n texte += enonceAMC\n texte += '<br> In the new rectangle, the shorter side will have the length:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, min(reponse, reponse1))\n ii++\n texte += '<br> In the new rectangle, the longest side will have the length:' + ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n setReponse(this, i + ii, max(reponse, reponse1))\n } else if (!context.isAmc) {\n texte = `Plot a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ of the rectangle ${nom}.`\n texte += '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x, D.x) - 1,\n ymin: min(A.y, B.y, C.y, D.y) - 1,\n xmax: max(A.x, B.x, C.x, D.x) + 1,\n ymax: max(A.y, B.y, C.y, D.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n } else {\n propositionsAMC[iiAMC] = {\n type: 'AMCOpen',\n propositions:\n [\n {\n texte: '',\n statut: 1,\n sanscadre: true,\n enonce: enonceAMC + `<br>Trace, on a white sheet, ${texteAgrandissementOuReduction[1][choixAgrandissementOuReduction < 4 ? 0 : 1]}.`,\n sanslignes: true\n }\n ]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceInit + '<br> <br>In the new rectangle, the shortest side will have the length:',\n valeur: [min(reponse, reponse1)],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(min(reponse, reponse1)),\n decimals: nombreDeChiffresDansLaPartieDecimale(min(reponse, reponse1)),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'In the new rectangle, the longest side will have the length:',\n valeur: [max(reponse, reponse1)],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(max(reponse, reponse1)),\n decimals: nombreDeChiffresDansLaPartieDecimale(max(reponse, reponse1)),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n }\n texteCorr = `Performing a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ involves multiplying all lengths by this coefficient`\n if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or, since $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}=${coefReduction[choixAgrandissementOuReduction - 4].texFraction}$, this amounts to dividing all lengths by $${coefReduction[choixAgrandissementOuReduction - 4].den}$`\n texteCorr += choixAgrandissementOuReduction === 6 ? ' then multiply each of these results by 3' : ''\n }\n texteCorr += '.<br>'\n texteCorr += `$${absB} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse)}${sp(10)}$`\n texteCorr += `$${absC} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse1)}$`\n if (choixAgrandissementOuReduction === 6) {\n texteCorr += `${sp(10)} or ${sp(10)}$(${absB} \\\\div 4) \\\\times 3=${texNombre(arrondi(absB / 4, 1))} \\\\times 3=${texNombre(reponse)}$`\n texteCorr += `${sp(10)}$(${absC} \\\\div 4) \\\\times 3=${texNombre(arrondi(absC / 4, 1))} \\\\times 3=${texNombre(reponse1)}$`\n } else if (choixAgrandissementOuReduction >= 4) {\n texteCorr += `${sp(10)} or ${sp(10)}$${absB} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse)}$`\n texteCorr += `${sp(10)}$${absC} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse1)}$`\n }\n texteCorr += `<br>The rectangle resulting from a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the rectangle ${nom} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ therefore has sides of respective length $${miseEnEvidence(texNombre(reponse))}$ and $${miseEnEvidence(texNombre(reponse1))}$.`\n texteCorr += '<br>Here is a creation below.'\n objets = []\n objets.push(polygoneCorr, nommePolygone(polygoneCorr, nomCorr))\n objets.push(codageSegments('|||', 'blue', A, BCorr, CCorr, DCorr))\n objets.push(codageSegments('XX', 'blue', BCorr, CCorr, DCorr, A))\n objets.push(afficheLongueurSegment(angleOriente(CCorr, A, BCorr) > 0 ? A : BCorr, angleOriente(CCorr, A, BCorr) > 0 ? BCorr : A, 'red', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(A, BCorr, CCorr) > 0 ? BCorr : CCorr, angleOriente(A, BCorr, CCorr) > 0 ? CCorr : BCorr, 'red', 0.5, '', true))\n objets.push(codageAngleDroit(A, BCorr, CCorr), codageAngleDroit(DCorr, CCorr, BCorr), codageAngleDroit(A, DCorr, CCorr), codageAngleDroit(BCorr, A, DCorr))\n texteCorr += '<br>' + mathalea2d({\n xmin: min(A.x, BCorr.x, CCorr.x, DCorr.x) - 1,\n ymin: min(A.y, BCorr.y, CCorr.y, DCorr.y) - 1,\n xmax: max(A.x, BCorr.x, CCorr.x, DCorr.x) + 1,\n ymax: max(A.y, BCorr.y, CCorr.y, DCorr.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n break\n case 6:\n absC = choixAgrandissementOuReduction < 4 ? randint(5, 11, [6, 9, absB]) : 2 * randint(4, 7, [arrondi(absB / 2, 0)])\n absD = choixAgrandissementOuReduction < 4 ? randint(5, 11, [6, 9, absB, absC]) : 2 * randint(4, 7, [arrondi(absB / 2, 0), arrondi(absC / 2, 0)])\n reponse = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absB, 1)\n reponse1 = arrondi(coefAgrandissement[choixAgrandissementOuReduction] * absC, 1)\n alpha = randint(10, 170)\n alphaCorr = randint(10, 170, [alpha])\n sensRotation = choice([-1, 1])\n B = pointAdistance(A, absB, sensRotation * alpha)\n BCorr = pointAdistance(A, reponse, sensRotation * alphaCorr)\n C = rotation(pointAdistance(B, absC, 180 + sensRotation * alpha), B, -90)\n CCorr = rotation(pointAdistance(BCorr, reponse1, 180 + sensRotation * alphaCorr), BCorr, -90)\n D = rotation(pointAdistance(A, absC, sensRotation * alpha), A, 90)\n DCorr = rotation(pointAdistance(A, reponse1, sensRotation * alphaCorr), A, 90)\n polygoneInit = polygone(A, B, C, D)\n polygoneCorr = polygone(A, BCorr, CCorr, DCorr)\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n numD = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n nom = lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB) + lettreDepuisChiffre(numC) + lettreDepuisChiffre(numD)\n numACorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n numBCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr])\n numCCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr])\n numDCorr = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numACorr, numBCorr, numCCorr])\n nomCorr = lettreDepuisChiffre(numACorr) + lettreDepuisChiffre(numBCorr) + lettreDepuisChiffre(numCCorr) + lettreDepuisChiffre(numDCorr)\n objets.push(polygoneInit, nommePolygone(polygoneInit, nom))\n objets.push(codageSegments('||', 'red', A, B, C, D))\n objets.push(codageSegments('X', 'red', B, C, D, A))\n objets.push(afficheLongueurSegment(angleOriente(B, C, D) > 0 ? C : D, angleOriente(B, C, D) > 0 ? D : C, 'blue', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(C, D, A) > 0 ? D : A, angleOriente(C, D, A) > 0 ? A : D, 'blue', 0.5, '', true))\n objets.push(codageAngleDroit(A, B, C), codageAngleDroit(D, C, B), codageAngleDroit(A, D, C), codageAngleDroit(B, A, D))\n enonceInit = `We decide to perform a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the rectangle ${nom}, such that the length of the side associated with [${lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}] will measure $${texNombre(reponse)}$. What will be the other dimension of the rectangle to construct?`\n enonceAMC = '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x, D.x) - 1,\n ymin: min(A.y, B.y, C.y, D.y) - 1,\n xmax: max(A.x, B.x, C.x, D.x) + 1,\n ymax: max(A.y, B.y, C.y, D.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n if (this.interactif) {\n texte = enonceInit\n texte += ajouteChampTexteMathLive(this, i + ii, 'inline', { tailleExtensible: true })\n texte += enonceAMC\n setReponse(this, i + ii, reponse1)\n } else if (!context.isAmc) {\n texte = `Draw a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the rectangle ${nom} such that the length of the side associated with [${lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}] will measure $${texNombre(reponse)}$.`\n texte += '<br>' + mathalea2d({\n xmin: min(A.x, B.x, C.x, D.x) - 1,\n ymin: min(A.y, B.y, C.y, D.y) - 1,\n xmax: max(A.x, B.x, C.x, D.x) + 1,\n ymax: max(A.y, B.y, C.y, D.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n } else {\n propositionsAMC[iiAMC] = {\n type: 'AMCOpen',\n propositions:\n [\n {\n texte: '',\n statut: 1,\n sanscadre: true,\n enonce: enonceAMC + `<br>Trace, on a white sheet, ${texteAgrandissementOuReduction[1][choixAgrandissementOuReduction < 4 ? 0 : 1]}.`,\n sanslignes: true\n }\n ]\n }\n iiAMC++\n propositionsAMC[iiAMC] = {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceInit + '<br> <br>In the new rectangle, the second length will be:',\n valeur: [reponse1],\n alignement: 'center',\n param: {\n digits: nombreDeChiffresDe(reponse1),\n decimals: nombreDeChiffresDansLaPartieDecimale(reponse1),\n signe: false\n }\n }\n }]\n }\n iiAMC++\n }\n texteCorr = `Performing a ${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} involves multiplying all lengths by a proportionality coefficient. Let's find this coefficient.<br>`\n texteCorr += `To find this coefficient, divide the known length of the future rectangle by its associated length in the current rectangle: $${texNombre(reponse)} \\\\div ${absB} = ${coefAgrandissement[choixAgrandissementOuReduction]}$. The proportionality coefficient is therefore $${coefAgrandissement[choixAgrandissementOuReduction]}$.<br>`\n texteCorr += `Let's multiply all known lengths of the current triangle by $${coefAgrandissement[choixAgrandissementOuReduction]}$`\n\n if (choixAgrandissementOuReduction >= 4) {\n texteCorr += ` or, since $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}=${coefReduction[choixAgrandissementOuReduction - 4].texFraction}$, this amounts to dividing all lengths by $${coefReduction[choixAgrandissementOuReduction - 4].den}$`\n texteCorr += choixAgrandissementOuReduction === 6 ? ' then multiply each of these results by 3' : ''\n }\n texteCorr += '.<br>'\n texteCorr += `$${absC} \\\\times ${coefAgrandissement[choixAgrandissementOuReduction]}=${texNombre(reponse1)}$`\n if (choixAgrandissementOuReduction === 6) {\n texteCorr += `${sp(10)} or ${sp(10)}$(${absC} \\\\div 4) \\\\times 3=${texNombre(arrondi(absC / 4, 1))} \\\\times 3=${texNombre(reponse1)}$`\n } else if (choixAgrandissementOuReduction >= 4) {\n texteCorr += `${sp(10)} or ${sp(10)}$${absC} \\\\div ${coefReduction[choixAgrandissementOuReduction - 4].den}=${texNombre(reponse1)}$`\n }\n texteCorr += `<br>The rectangle resulting from a${texteAgrandissementOuReduction[0][choixAgrandissementOuReduction < 4 ? 0 : 1]} of the rectangle ${nom} with coefficient $${texNombre(coefAgrandissement[choixAgrandissementOuReduction])}$ therefore has sides of respective length $${miseEnEvidence(texNombre(reponse))}$ and $${miseEnEvidence(texNombre(reponse1))}$.`\n texteCorr += '<br>Here is a creation below.'\n objets = []\n objets.push(polygoneCorr, nommePolygone(polygoneCorr, nomCorr))\n objets.push(codageSegments('|||', 'blue', A, BCorr, CCorr, DCorr))\n objets.push(codageSegments('XX', 'blue', BCorr, CCorr, DCorr, A))\n objets.push(afficheLongueurSegment(angleOriente(CCorr, A, BCorr) > 0 ? A : BCorr, angleOriente(CCorr, A, BCorr) > 0 ? BCorr : A, 'red', 0.5, '', true))\n objets.push(afficheLongueurSegment(angleOriente(A, BCorr, CCorr) > 0 ? BCorr : CCorr, angleOriente(A, BCorr, CCorr) > 0 ? CCorr : BCorr, 'red', 0.5, '', true))\n objets.push(codageAngleDroit(A, BCorr, CCorr), codageAngleDroit(DCorr, CCorr, BCorr), codageAngleDroit(A, DCorr, CCorr), codageAngleDroit(BCorr, A, DCorr))\n texteCorr += '<br>' + mathalea2d({\n xmin: min(A.x, BCorr.x, CCorr.x, DCorr.x) - 1,\n ymin: min(A.y, BCorr.y, CCorr.y, DCorr.y) - 1,\n xmax: max(A.x, BCorr.x, CCorr.x, DCorr.x) + 1,\n ymax: max(A.y, BCorr.y, CCorr.y, DCorr.y) + 1,\n pixelsParCm: 20,\n scale: 0.5\n }, objets)\n break\n }\n if (context.isAmc) {\n this.autoCorrection[i] = {\n enonce: '',\n options: { multicols: true, barreseparation: false },\n enonceCentre: true,\n enonceAvant: true, // EE : ce champ est facultatif et permet (si false) de supprimer l'énoncé ci-dessus avant la numérotation de chaque question.\n propositions: propositionsAMC\n }\n }\n if (this.questionJamaisPosee(i, texte, absB, choixAgrandissementOuReduction)) {\n // If the question has never been asked, we create another one\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","dateDePublication","uuid","ref","AgrandirReduireFigure","Exercice","listeTypeQuestions","gestionnaireFormulaireTexte","texteAgrandissementOuReduction","ii","iiAMC","i","texte","A","B","C","D","BCorr","CCorr","DCorr","polygoneInit","polygoneCorr","choixOrientation","coefAgrandissement","coefReduction","choixAgrandissementOuReduction","sensRotation","nom","nomCorr","absD","absC","absB","alpha","alphaCorr","objets","numA","numACorr","numB","numC","numD","numBCorr","numCCorr","numDCorr","propositionsAMC","enonceAMC","enonceInit","texteCorr","reponse","reponse1","reponse2","cpt","FractionEtendue","randint","point","arrondi","choice","pointAdistance","polygone","lettreDepuisChiffre","codageSegments","afficheLongueurSegment","nommePolygone","texNombre","mathalea2d","min","max","ajouteChampTexteMathLive","setReponse","context","nombreDeChiffresDe","nombreDeChiffresDansLaPartieDecimale","miseEnEvidence","rotation","codageAngleDroit","aleaVariables","triangle2points2longueurs","angleOriente","sp","listeQuestionsToContenu"],"mappings":"kVAqBY,MAACA,GAAQ,qEACRC,GAAkB,GAClBC,GAAiB,WACjBC,GAAW,GACXC,GAAU,aACVC,GAAoB,aAOpBC,GAAO,QACPC,GAAM,OACJ,SAASC,IAAyB,CAC/CC,GAAS,KAAK,IAAI,EAClB,KAAK,MAAQT,GACb,KAAK,sBAAwB,CAC3B,kBAAmB,CACjB,+BACA,0BACA,YACA,wDACA,mDACA,yDACA,oDACA,gBACN,EAAM,KAAK;AAAA,GAAM,CACd,EACD,KAAK,IAAM,EACX,KAAK,YAAc,EACnB,KAAK,YAAc,EACnB,KAAK,QAAU,EAEf,KAAK,gBAAkB,UAAY,CACjC,KAAK,eAAiB,CAAE,EACxB,KAAK,iBAAmB,CAAE,EAmB1B,MAAMU,GAAqBC,GAA4B,CACrD,IAAK,EACL,OAAQ,EACR,QAAS,EACT,YAAa,KAAK,YAClB,OAAQ,KAAK,GACnB,CAAK,EAEKC,EAAiC,CAAC,CAAC,eAAgB,aAAa,EAAG,CAAC,0BAA2B,yBAAyB,CAAC,EAC/H,IAAIC,EAAK,EACLC,EACJ,QAASC,EAAI,EAAGC,EAAOC,EAAGC,EAAGC,EAAGC,EAAGC,EAAOC,EAAOC,EAAOC,EAAcC,EAAcC,GAAkBC,EAAoBC,EAAeC,EAAgCC,EAAcC,EAAKC,EAASC,EAAMC,EAAMC,EAAMC,EAAOC,EAAWC,EAAQC,EAAMC,EAAUC,EAAMC,EAAMC,GAAMC,EAAUC,EAAUC,GAAUC,EAAiBC,EAAWC,EAAYC,EAAWC,EAASC,EAAUC,EAAUC,GAAM,EAAGvC,EAAI,KAAK,aAAeuC,GAAM,IAAK,CAS3a,OARAP,EAAkB,CAAE,EACpBjC,EAAQ,EACRwB,EAAS,CAAE,EACXX,EAAqB,CAAC,IAAK,EAAG,EAAG,EAAG,GAAK,IAAM,GAAI,EACnDC,EAAgB,CAAC,IAAI2B,GAAgB,EAAG,CAAC,EAAG,IAAIA,GAAgB,EAAG,CAAC,EAAG,IAAIA,GAAgB,EAAG,CAAC,CAAC,EAChG1B,EAAiC2B,EAAQ,EAAG,CAAC,EAC7CvC,EAAIwC,GAAM,EAAG,CAAC,EACdtB,EAAON,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,CAAC,CAAC,EAAI,EAAIA,EAAQ,EAAG,CAAC,EAC7E9C,GAAmBK,CAAC,EAAC,CAC3B,IAAK,GACHoC,EAAUO,EAAQ/B,EAAmBE,CAA8B,EAAIM,EAAM,CAAC,EAC9EC,EAAQoB,EAAQ,GAAI,GAAG,EACvBnB,EAAYmB,EAAQ,GAAI,IAAK,CAACpB,CAAK,CAAC,EACpCN,EAAe6B,GAAO,CAAC,GAAI,CAAC,CAAC,EAC7BzC,EAAI0C,EAAe3C,EAAGkB,EAAML,EAAeM,CAAK,EAChDf,EAAQuC,EAAe3C,EAAGkC,EAASrB,EAAeO,CAAS,EAC3DlB,EAAIyC,EAAe3C,EAAGkB,EAAML,GAAgBM,EAAQ,GAAG,EACvDd,EAAQsC,EAAe3C,EAAGkC,EAASrB,GAAgBO,EAAY,GAAG,EAClEb,EAAeqC,GAAS5C,EAAGC,EAAGC,CAAC,EAC/BM,EAAeoC,GAAS5C,EAAGI,EAAOC,CAAK,EACvCiB,EAAOiB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAAC,EAC5Cf,EAAOe,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,CAAI,CAAC,EAClDG,EAAOc,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,CAAI,CAAC,EACxDV,EAAM+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,EACtFF,EAAWgB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAClEE,EAAWY,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,CAAQ,CAAC,EACtEK,EAAWW,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,CAAQ,CAAC,EAChFZ,EAAU8B,EAAoBtB,CAAQ,EAAIsB,EAAoBlB,CAAQ,EAAIkB,EAAoBjB,CAAQ,EACtGP,EAAO,KAAKd,EAAcuC,EAAe,KAAM,MAAOvC,EAAa,WAAW,EAAGwC,EAAuBlC,EAAe,EAAIb,EAAIC,EAAGY,EAAe,EAAIZ,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,EAAGgD,EAAczC,EAAcO,CAAG,CAAC,EACpNkB,EAAa,0BAA0BrC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,iCAAiCE,CAAG,sEACzOf,EAAQiC,EACRD,EAAY,OAASmB,EAAW,CAC9B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMiD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,YAAa,GACb,MAAO,EACR,EAAEmB,CAAM,EACTtB,GAASgC,EACL,KAAK,YACPhC,GAASsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EACpF0D,GAAW,KAAMxD,EAAIF,EAAIsC,CAAO,GACtBqB,GAAQ,OAWlBzB,EAAgBjC,CAAK,EAAI,CACvB,KAAM,UACN,aACkB,CACE,CACE,MAAO,GACP,OAAQ,EACR,UAAW,GACX,OAAQkC,EAAY,gCAAgCpC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,IACjI,WAAY,EACb,CACF,CACpB,EACDf,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAOmC,EACP,OAAQ,CAACE,CAAO,EAChB,WAAY,SACZ,MAAO,CACL,OAAQsB,GAAmBtB,CAAO,EAClC,SAAUuB,GAAqCvB,CAAO,EACtD,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDrC,MAzCAE,EAAQ,SAASJ,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,iBAAiBE,CAAG,IACrMf,GAAS,OAASmD,EAAW,CAC3B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMiD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,YAAa,GACb,MAAO,EACR,EAAEmB,CAAM,GAmCXY,EAAY,gBAAgBtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,yDACxLA,GAAkC,IACpCqB,GAAa,eAAegB,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,IAAID,EAAcC,EAAiC,CAAC,EAAE,WAAW,+CAA+CD,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAC9PqB,GAAarB,IAAmC,EAAI,4CAA8C,IAEpGqB,GAAa,QACbA,GAAa,IAAIf,CAAI,YAAYR,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUf,CAAO,CAAC,IACrGtB,IAAmC,EACrCqB,GAAa,SAASf,CAAI,uBAAuB+B,EAAUR,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAc+B,EAAUf,CAAO,CAAC,IACvGtB,GAAkC,IAC3CqB,GAAa,QAAQf,CAAI,UAAUP,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUf,CAAO,CAAC,KAEhHD,GAAa,gDAAgDtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBE,CAAG,sBAAsBmC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,oCAAoC8C,GAAeT,EAAUf,CAAO,CAAC,CAAC,KAC1TD,GAAa,gCACbZ,EAAS,CAAE,EACXA,EAAO,KAAKb,EAAcsC,EAAe,MAAO,OAAQtC,EAAa,WAAW,EAAGuC,EAAuBlC,EAAe,EAAIb,EAAII,EAAOS,EAAe,EAAIT,EAAQJ,EAAG,MAAO,GAAK,GAAI,EAAI,EAAGgD,EAAcxC,EAAcO,CAAO,CAAC,EACjOkB,GAAa,OAASiB,EAAW,CAC/B,KAAMC,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM8C,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM+C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM+C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,YAAa,GACb,MAAO,EACR,EAAEgB,CAAM,EACT,MACF,IAAK,GACHa,EAAUO,EAAQ/B,EAAmBE,CAA8B,EAAIM,EAAM,CAAC,EAC9EC,EAAQoB,EAAQ,GAAI,GAAG,EACvBnB,EAAYmB,EAAQ,GAAI,IAAK,CAACpB,CAAK,CAAC,EACpCN,EAAe6B,GAAO,CAAC,GAAI,CAAC,CAAC,EAC7BzC,EAAI0C,EAAe3C,EAAGkB,EAAML,EAAeM,CAAK,EAChDf,EAAQuC,EAAe3C,EAAGkC,EAASrB,EAAeO,CAAS,EAC3DlB,EAAIyD,EAAS3D,EAAGC,EAAG,EAAE,EACrBE,EAAIwD,EAAS1D,EAAGD,EAAG,GAAG,EACtBK,EAAQsD,EAAS3D,EAAGI,EAAO,EAAE,EAC7BE,EAAQqD,EAASvD,EAAOJ,EAAG,GAAG,EAC9BO,EAAeqC,GAAS5C,EAAGC,EAAGC,EAAGC,CAAC,EAClCK,EAAeoC,GAAS5C,EAAGI,EAAOC,EAAOC,CAAK,EAC9CgB,EAAOiB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAAC,EAC5Cf,EAAOe,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,CAAI,CAAC,EAClDG,EAAOc,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,CAAI,CAAC,EACxDE,GAAOa,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAC9DX,EAAM+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,EAAIoB,EAAoBnB,EAAI,EAClHH,EAAWgB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAClEE,EAAWY,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,CAAQ,CAAC,EACtEK,EAAWW,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,CAAQ,CAAC,EAChFE,GAAWU,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,EAAUC,CAAQ,CAAC,EAC1Fb,EAAU8B,EAAoBtB,CAAQ,EAAIsB,EAAoBlB,CAAQ,EAAIkB,EAAoBjB,CAAQ,EAAIiB,EAAoBhB,EAAQ,EACtIR,EAAO,KAAKd,EAAcuC,EAAe,KAAM,MAAOvC,EAAa,WAAW,EAAGwC,EAAuB/C,EAAGC,EAAG,OAAQ,GAAK,GAAI,EAAI,EAAG+C,EAAczC,EAAcO,CAAG,CAAC,EACtKO,EAAO,KAAKuC,EAAiB5D,EAAGC,EAAGC,CAAC,EAAG0D,EAAiBzD,EAAGD,EAAGD,CAAC,EAAG2D,EAAiB5D,EAAGG,EAAGD,CAAC,EAAG0D,EAAiB3D,EAAGD,EAAGG,CAAC,CAAC,EACtH6B,EAAa,0BAA0BrC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,oBAAoBE,CAAG,yEAC5Nf,EAAQiC,EACRD,EAAY,OAASmB,EAAW,CAC9B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMgD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,YAAa,GACb,MAAO,EACR,EAAEkB,CAAM,EACTtB,GAASgC,EACL,KAAK,YACPhC,GAASsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EACpF0D,GAAW,KAAMxD,EAAIF,EAAIsC,CAAO,GACtBqB,GAAQ,OAWlBzB,EAAgBjC,CAAK,EAAI,CACvB,KAAM,UACN,aACkB,CACE,CACE,MAAO,GACP,OAAQ,EACR,UAAW,GACX,OAAQkC,EAAY,gCAAgCpC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,IACjI,WAAY,EACb,CACF,CACpB,EACDf,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAOmC,EACP,OAAQ,CAACE,CAAO,EAChB,WAAY,SACZ,MAAO,CACL,OAAQsB,GAAmBtB,CAAO,EAClC,SAAUuB,GAAqCvB,CAAO,EACtD,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDrC,MAzCAE,EAAQ,SAASJ,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,mBAAmBE,CAAG,IACvMf,GAAS,OAASmD,EAAW,CAC3B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMgD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,YAAa,GACb,MAAO,EACR,EAAEkB,CAAM,GAmCXY,EAAY,gBAAgBtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,yDACxLA,GAAkC,IACpCqB,GAAa,eAAegB,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,IAAID,EAAcC,EAAiC,CAAC,EAAE,WAAW,+CAA+CD,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAC9PqB,GAAarB,IAAmC,EAAI,4CAA8C,IAEpGqB,GAAa,QACbA,GAAa,IAAIf,CAAI,YAAYR,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUf,CAAO,CAAC,IACrGtB,IAAmC,EACrCqB,GAAa,SAASf,CAAI,uBAAuB+B,EAAUR,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAc+B,EAAUf,CAAO,CAAC,IACvGtB,GAAkC,IAC3CqB,GAAa,QAAQf,CAAI,UAAUP,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUf,CAAO,CAAC,KAEhHD,GAAa,kCAAkCtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,kBAAkBE,CAAG,sBAAsBmC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,oCAAoC8C,GAAeT,EAAUf,CAAO,CAAC,CAAC,KAC1SD,GAAa,gCACbZ,EAAS,CAAE,EACXA,EAAO,KAAKb,EAAcsC,EAAe,MAAO,OAAQtC,EAAa,WAAW,EAAGuC,EAAuB/C,EAAGI,EAAO,MAAO,GAAK,GAAI,EAAI,EAAG4C,EAAcxC,EAAcO,CAAO,CAAC,EAC/KM,EAAO,KAAKuC,EAAiB5D,EAAGI,EAAOC,CAAK,EAAGuD,EAAiBtD,EAAOD,EAAOD,CAAK,EAAGwD,EAAiB5D,EAAGM,EAAOD,CAAK,EAAGuD,EAAiBxD,EAAOJ,EAAGM,CAAK,CAAC,EAC1J2B,GAAa,OAASiB,EAAW,CAC/B,KAAMC,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM6C,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM8C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM8C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,YAAa,GACb,MAAO,EACR,EAAEe,CAAM,EACT,MACF,IAAK,GACHJ,EAAOL,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAGrB,CAAI,CAAC,EAAI,EAAIqB,EAAQ,EAAG,EAAG,CAACE,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,EACnHF,EAAO,OAAO,OAAO6C,GAAc,CAAE,KAAM,GAAM,KAAM,mBAAmB3C,EAAOD,CAAI,QAAQC,CAAI,SAASD,CAAI,QAAQA,CAAI,SAASC,CAAI,EAAI,EAAE,CAAE,QAAS,GAAM,CAAC,EAAE,CAAC,EAElKgB,EAAUO,EAAQ/B,EAAmBE,CAA8B,EAAIM,EAAM,CAAC,EAC9EiB,EAAWM,EAAQ/B,EAAmBE,CAA8B,EAAIK,EAAM,CAAC,EAC/EmB,EAAWK,EAAQ/B,EAAmBE,CAA8B,EAAII,EAAM,CAAC,EAC/EG,EAAQoB,EAAQ,GAAI,GAAG,EACvBnB,EAAYmB,EAAQ,GAAI,IAAK,CAACpB,CAAK,CAAC,EACpCN,EAAe6B,GAAO,CAAC,GAAI,CAAC,CAAC,EAC7BzC,EAAI0C,EAAe3C,EAAGkB,EAAML,EAAeM,CAAK,EAChDf,EAAQuC,EAAe3C,EAAGkC,EAASrB,EAAeO,CAAS,EAC3DX,GAAmB8B,EAAQ,EAAG,CAAC,EAC/BhC,EAAeuD,GAA0B9D,EAAGC,EAAGgB,EAAMD,EAAMP,EAAgB,EAC3EP,EAAIK,EAAa,YAAY,CAAC,EAC9BC,EAAesD,GAA0B9D,EAAGI,EAAO+B,EAAUC,EAAU3B,EAAgB,EACvFJ,EAAQG,EAAa,YAAY,CAAC,EAClCc,EAAOiB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAAC,EAC5Cf,EAAOe,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,CAAI,CAAC,EAClDG,EAAOc,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,CAAI,CAAC,EACxDV,EAAM+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,EACtFF,EAAWgB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAClEE,EAAWY,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,CAAQ,CAAC,EACtEK,EAAWW,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,CAAQ,CAAC,EAChFZ,EAAU8B,EAAoBtB,CAAQ,EAAIsB,EAAoBlB,CAAQ,EAAIkB,EAAoBjB,CAAQ,EACtGP,EAAO,KAAKd,EAAcyC,EAAczC,EAAcO,CAAG,CAAC,EAC1DO,EAAO,KAAK0B,EAAuBgB,EAAa7D,EAAGF,EAAGC,CAAC,EAAI,EAAID,EAAIC,EAAG8D,EAAa7D,EAAGF,EAAGC,CAAC,EAAI,EAAIA,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HqB,EAAO,KAAK0B,EAAuBgB,EAAa/D,EAAGC,EAAGC,CAAC,EAAI,EAAID,EAAIC,EAAG6D,EAAa/D,EAAGC,EAAGC,CAAC,EAAI,EAAIA,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HoB,EAAO,KAAK0B,EAAuBgB,EAAa9D,EAAGC,EAAGF,CAAC,EAAI,EAAIE,EAAIF,EAAG+D,EAAa9D,EAAGC,EAAGF,CAAC,EAAI,EAAIA,EAAIE,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/H8B,EAAa,0BAA0BrC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,qBAAqBE,CAAG,wFAC7NiB,EAAY,OAASmB,EAAW,CAC9B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMiD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,YAAa,GACb,MAAO,EACR,EAAEmB,CAAM,EACL,KAAK,YACPtB,EAAQiC,EACRjC,GAASgC,EACThC,GAAS,yDAA2DsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EAC/I0D,GAAW,KAAMxD,EAAIF,EAAIuD,EAAIjB,EAASC,EAAUC,CAAQ,CAAC,EACzDxC,IACAG,GAAS,yDAA2DsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EAC/I0D,GAAW,KAAMxD,EAAIF,EAAIwD,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,EACzDxC,IACAG,GAAS,qDAAuDsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EAC3I0D,GAAW,KAAMxD,EAAIF,EAAI8C,GAAO,CAACR,EAASC,EAAUC,CAAQ,EAAG,CAACe,EAAIjB,EAASC,EAAUC,CAAQ,EAAGgB,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,CAAC,CAAC,GAC1HmB,GAAQ,OAWlBzB,EAAgBjC,CAAK,EAAI,CACvB,KAAM,UACN,aACkB,CACE,CACE,MAAO,GACP,OAAQ,EACR,UAAW,GACX,OAAQkC,EAAY,gCAAgCpC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,IACjI,WAAY,EACb,CACF,CACpB,EACDf,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAOmC,EAAa,6DACpB,OAAQ,CAACmB,EAAIjB,EAASC,EAAUC,CAAQ,CAAC,EACzC,WAAY,SACZ,MAAO,CACL,OAAQoB,GAAmBL,EAAIjB,EAASC,EAAUC,CAAQ,CAAC,EAC3D,SAAUqB,GAAqCN,EAAIjB,EAASC,EAAUC,CAAQ,CAAC,EAC/E,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDvC,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAO,oDACP,OAAQ,CAACuD,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,EACzC,WAAY,SACZ,MAAO,CACL,OAAQoB,GAAmBJ,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,EAC3D,SAAUqB,GAAqCL,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,EAC/E,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDvC,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAO,gDACP,OAAQ,CAAC6C,GAAO,CAACR,EAASC,EAAUC,CAAQ,EAAG,CAACe,EAAIjB,EAASC,EAAUC,CAAQ,EAAGgB,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,CAAC,CAAC,EACpH,WAAY,SACZ,MAAO,CACL,OAAQoB,GAAmBd,GAAO,CAACR,EAASC,EAAUC,CAAQ,EAAG,CAACe,EAAIjB,EAASC,EAAUC,CAAQ,EAAGgB,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,CAAC,CAAC,EACtI,SAAUqB,GAAqCf,GAAO,CAACR,EAASC,EAAUC,CAAQ,EAAG,CAACe,EAAIjB,EAASC,EAAUC,CAAQ,EAAGgB,EAAIlB,EAASC,EAAUC,CAAQ,CAAC,CAAC,CAAC,EAC1J,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDvC,MA7EAE,EAAQ,SAASJ,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,iBAAiBE,CAAG,IACrMf,GAAS,OAASmD,EAAW,CAC3B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMiD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,YAAa,GACb,MAAO,EACR,EAAEmB,CAAM,GAuEXY,EAAY,gBAAgBtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,yDACxLA,GAAkC,IACpCqB,GAAa,eAAegB,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,IAAID,EAAcC,EAAiC,CAAC,EAAE,WAAW,+CAA+CD,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAC9PqB,GAAarB,IAAmC,EAAI,4CAA8C,IAEpGqB,GAAa,QACbA,GAAa,IAAIf,CAAI,YAAYR,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUf,CAAO,CAAC,GAAG8B,EAAG,EAAE,CAAC,IAClH/B,GAAa,IAAIhB,CAAI,YAAYP,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUd,CAAQ,CAAC,GAAG6B,EAAG,EAAE,CAAC,IACnH/B,GAAa,IAAIjB,CAAI,YAAYN,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUb,CAAQ,CAAC,IACtGxB,IAAmC,GACrCqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,KAAK9C,CAAI,uBAAuB+B,EAAUR,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAc+B,EAAUf,CAAO,CAAC,IAClID,GAAa,GAAG+B,EAAG,EAAE,CAAC,KAAK/C,CAAI,uBAAuBgC,EAAUR,EAAQxB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAcgC,EAAUd,CAAQ,CAAC,IACtHF,GAAa,GAAG+B,EAAG,EAAE,CAAC,KAAKhD,CAAI,uBAAuBiC,EAAUR,EAAQzB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAciC,EAAUb,CAAQ,CAAC,KAC7GxB,GAAkC,IAC3CqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,IAAI9C,CAAI,UAAUP,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUf,CAAO,CAAC,IAChID,GAAa,GAAG+B,EAAG,EAAE,CAAC,IAAI/C,CAAI,UAAUN,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUd,CAAQ,CAAC,IACpHF,GAAa,GAAG+B,EAAG,EAAE,CAAC,IAAIhD,CAAI,UAAUL,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUb,CAAQ,CAAC,KAEtHH,GAAa,oCAAoCtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBE,CAAG,sBAAsBmC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,+CAA+C8C,GAAeT,EAAUf,CAAO,CAAC,CAAC,OAAOwB,GAAeT,EAAUd,CAAQ,CAAC,CAAC,UAAUuB,GAAeT,EAAUb,CAAQ,CAAC,CAAC,KAChZH,GAAa,gCACbZ,EAAS,CAAE,EACXA,EAAO,KAAKb,EAAcwC,EAAcxC,EAAcO,CAAO,CAAC,EAC9DM,EAAO,KAAK0B,EAAuBgB,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIJ,EAAII,EAAO2D,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIA,EAAQJ,EAAG,MAAO,GAAK,GAAI,EAAI,CAAC,EACtJqB,EAAO,KAAK0B,EAAuBgB,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAID,EAAQC,EAAO0D,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAIA,EAAQD,EAAO,MAAO,GAAK,GAAI,EAAI,CAAC,EAC9JiB,EAAO,KAAK0B,EAAuBgB,EAAa3D,EAAOC,EAAOL,CAAC,EAAI,EAAIK,EAAQL,EAAG+D,EAAa3D,EAAOC,EAAOL,CAAC,EAAI,EAAIA,EAAIK,EAAO,MAAO,GAAK,GAAI,EAAI,CAAC,EACtJ4B,GAAa,OAASiB,EAAW,CAC/B,KAAMC,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM8C,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM+C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM+C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,YAAa,GACb,MAAO,EACR,EAAEgB,CAAM,EACT,MACF,IAAK,GAEHJ,EAAOL,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAGrB,CAAI,CAAC,EAAI,EAAIqB,EAAQ,EAAG,EAAG,CAACE,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,EACnHF,EAAO,OAAO,OAAO6C,GAAc,CAAE,KAAM,GAAM,KAAM,mBAAmB3C,EAAOD,CAAI,QAAQC,CAAI,SAASD,CAAI,QAAQA,CAAI,SAASC,CAAI,EAAI,EAAE,CAAE,QAAS,GAAM,CAAC,EAAE,CAAC,EAElKgB,EAAUO,EAAQ/B,EAAmBE,CAA8B,EAAIM,EAAM,CAAC,EAC9EiB,EAAWM,EAAQ/B,EAAmBE,CAA8B,EAAIK,EAAM,CAAC,EAC/EmB,EAAWK,EAAQ/B,EAAmBE,CAA8B,EAAII,EAAM,CAAC,EAC/EG,EAAQoB,EAAQ,GAAI,GAAG,EACvBnB,EAAYmB,EAAQ,GAAI,IAAK,CAACpB,CAAK,CAAC,EACpCN,EAAe6B,GAAO,CAAC,GAAI,CAAC,CAAC,EAC7BzC,EAAI0C,EAAe3C,EAAGkB,EAAML,EAAeM,CAAK,EAChDf,EAAQuC,EAAe3C,EAAGkC,EAASrB,EAAeO,CAAS,EAC3DX,GAAmB8B,EAAQ,EAAG,CAAC,EAC/BhC,EAAeuD,GAA0B9D,EAAGC,EAAGgB,EAAMD,EAAMP,EAAgB,EAC3EP,EAAIK,EAAa,YAAY,CAAC,EAC9BC,EAAesD,GAA0B9D,EAAGI,EAAO+B,EAAUC,EAAU3B,EAAgB,EACvFJ,EAAQG,EAAa,YAAY,CAAC,EAClCc,EAAOiB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAAC,EAC5Cf,EAAOe,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,CAAI,CAAC,EAClDG,EAAOc,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,CAAI,CAAC,EACxDV,EAAM+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,EACtFF,EAAWgB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAClEE,EAAWY,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,CAAQ,CAAC,EACtEK,EAAWW,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,CAAQ,CAAC,EAChFZ,EAAU8B,EAAoBtB,CAAQ,EAAIsB,EAAoBlB,CAAQ,EAAIkB,EAAoBjB,CAAQ,EACtGP,EAAO,KAAKd,EAAcyC,EAAczC,EAAcO,CAAG,CAAC,EAC1DO,EAAO,KAAK0B,EAAuBgB,EAAa7D,EAAGF,EAAGC,CAAC,EAAI,EAAID,EAAIC,EAAG8D,EAAa7D,EAAGF,EAAGC,CAAC,EAAI,EAAIA,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HqB,EAAO,KAAK0B,EAAuBgB,EAAa/D,EAAGC,EAAGC,CAAC,EAAI,EAAID,EAAIC,EAAG6D,EAAa/D,EAAGC,EAAGC,CAAC,EAAI,EAAIA,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HoB,EAAO,KAAK0B,EAAuBgB,EAAa9D,EAAGC,EAAGF,CAAC,EAAI,EAAIE,EAAIF,EAAG+D,EAAa9D,EAAGC,EAAGF,CAAC,EAAI,EAAIA,EAAIE,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/H8B,EAAa,yBAAyBrC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBE,CAAG,uDAAuD+B,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,CAAC,mBAAmBwB,EAAUb,CAAQ,CAAC,iGAC5RL,EAAY,OAASmB,EAAW,CAC9B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMiD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,YAAa,GACb,MAAO,EACR,EAAEmB,CAAM,EACL,KAAK,YACPtB,EAAQiC,EACRjC,GAASgC,EACThC,GAAS,iEAAmEsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EACvJ0D,GAAW,KAAMxD,EAAIF,EAAIuD,EAAIjB,EAASC,CAAQ,CAAC,EAC/CvC,IACAG,GAAS,iEAAmEsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EACvJ0D,GAAW,KAAMxD,EAAIF,EAAIwD,EAAIlB,EAASC,CAAQ,CAAC,GACrCoB,GAAQ,OAWlBzB,EAAgBjC,CAAK,EAAI,CACvB,KAAM,UACN,aACkB,CACE,CACE,MAAO,GACP,OAAQ,EACR,UAAW,GACX,OAAQkC,EAAY,gCAAgCpC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,IACjI,WAAY,EACb,CACF,CACpB,EACDf,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAOmC,EAAa,qEACpB,OAAQ,CAACmB,EAAIjB,EAASC,CAAQ,CAAC,EAC/B,WAAY,SACZ,MAAO,CACL,OAAQqB,GAAmBL,EAAIjB,EAASC,CAAQ,CAAC,EACjD,SAAUsB,GAAqCN,EAAIjB,EAASC,CAAQ,CAAC,EACrE,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDtC,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAO,4DACP,OAAQ,CAACuD,EAAIlB,EAASC,CAAQ,CAAC,EAC/B,WAAY,SACZ,MAAO,CACL,OAAQqB,GAAmBJ,EAAIlB,EAASC,CAAQ,CAAC,EACjD,SAAUsB,GAAqCL,EAAIlB,EAASC,CAAQ,CAAC,EACrE,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDtC,MA3DAE,EAAQ,UAAUJ,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBE,CAAG,sDAAsD+B,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,CAAC,mBAAmBwB,EAAUb,CAAQ,CAAC,KACvQrC,GAAS,OAASmD,EAAW,CAC3B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMiD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,KAAMkD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAC3B,YAAa,GACb,MAAO,EACR,EAAEmB,CAAM,GAqDXY,EAAY,gBAAgBtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,uGACzGqB,GAAa,+HAA+HgB,EAAUb,CAAQ,CAAC,UAAUpB,CAAI,MAAMN,EAAmBE,CAA8B,CAAC,oDAAoDF,EAAmBE,CAA8B,CAAC,SAC3UqB,GAAa,gEAAgEvB,EAAmBE,CAA8B,CAAC,IAE3HA,GAAkC,IACpCqB,GAAa,gBAAgBgB,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,IAAID,EAAcC,EAAiC,CAAC,EAAE,WAAW,+CAA+CD,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAC/PqB,GAAarB,IAAmC,EAAI,4CAA8C,IAEpGqB,GAAa,SAASf,CAAI,YAAYR,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUf,CAAO,CAAC,GAAG8B,EAAG,EAAE,CAAC,IACvH/B,GAAa,IAAIhB,CAAI,YAAYP,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUd,CAAQ,CAAC,IACtGvB,IAAmC,GACrCqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,KAAK9C,CAAI,uBAAuB+B,EAAUR,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAc+B,EAAUf,CAAO,CAAC,IAClID,GAAa,GAAG+B,EAAG,EAAE,CAAC,KAAK/C,CAAI,uBAAuBgC,EAAUR,EAAQxB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAcgC,EAAUd,CAAQ,CAAC,KAC7GvB,GAAkC,IAC3CqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,IAAI9C,CAAI,UAAUP,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUf,CAAO,CAAC,IAChID,GAAa,GAAG+B,EAAG,EAAE,CAAC,IAAI/C,CAAI,UAAUN,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUd,CAAQ,CAAC,KAEtHF,GAAa,oCAAoCtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBE,CAAG,sBAAsBmC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,+CAA+CqC,EAAUb,CAAQ,CAAC,OAAOsB,GAAeT,EAAUd,CAAQ,CAAC,CAAC,UAAUuB,GAAeT,EAAUf,CAAO,CAAC,CAAC,KAChYD,GAAa,gCACbZ,EAAS,CAAE,EACXA,EAAO,KAAKb,EAAcwC,EAAcxC,EAAcO,CAAO,CAAC,EAC9DM,EAAO,KAAK0B,EAAuBgB,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIJ,EAAII,EAAO2D,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIA,EAAQJ,EAAG,MAAO,GAAK,GAAI,EAAI,CAAC,EACtJqB,EAAO,KAAK0B,EAAuBgB,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAID,EAAQC,EAAO0D,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAIA,EAAQD,EAAO,MAAO,GAAK,GAAI,EAAI,CAAC,EAC9JiB,EAAO,KAAK0B,EAAuBgB,EAAa3D,EAAOC,EAAOL,CAAC,EAAI,EAAIK,EAAQL,EAAG+D,EAAa3D,EAAOC,EAAOL,CAAC,EAAI,EAAIA,EAAIK,EAAO,MAAO,GAAK,GAAI,EAAI,CAAC,EACtJ4B,GAAa,OAASiB,EAAW,CAC/B,KAAMC,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM8C,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM+C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,KAAM+C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,CAAC,EAAI,EACnC,YAAa,GACb,MAAO,EACR,EAAEgB,CAAM,EACT,MACF,IAAK,GACHJ,EAAOL,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAGrB,CAAI,CAAC,EAAI,EAAIqB,EAAQ,EAAG,EAAG,CAACE,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,EACnHF,EAAOJ,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAGrB,EAAMD,CAAI,CAAC,EAAI,EAAIsB,EAAQ,EAAG,EAAG,CAACE,EAAQvB,EAAO,EAAG,CAAC,EAAGuB,EAAQxB,EAAO,EAAG,CAAC,CAAC,CAAC,EAC/IiB,EAAUO,EAAQ/B,EAAmBE,CAA8B,EAAIM,EAAM,CAAC,EAC9EiB,EAAWM,EAAQ/B,EAAmBE,CAA8B,EAAIK,EAAM,CAAC,EAC/EE,EAAQoB,EAAQ,GAAI,GAAG,EACvBnB,EAAYmB,EAAQ,GAAI,IAAK,CAACpB,CAAK,CAAC,EACpCN,EAAe6B,GAAO,CAAC,GAAI,CAAC,CAAC,EAC7BzC,EAAI0C,EAAe3C,EAAGkB,EAAML,EAAeM,CAAK,EAChDf,EAAQuC,EAAe3C,EAAGkC,EAASrB,EAAeO,CAAS,EAC3DlB,EAAIyD,EAAShB,EAAe1C,EAAGgB,EAAM,IAAMJ,EAAeM,CAAK,EAAGlB,EAAG,GAAG,EACxEI,EAAQsD,EAAShB,EAAevC,EAAO+B,EAAU,IAAMtB,EAAeO,CAAS,EAAGhB,EAAO,GAAG,EAC5FD,EAAIwD,EAAShB,EAAe3C,EAAGiB,EAAMJ,EAAeM,CAAK,EAAGnB,EAAG,EAAE,EACjEM,EAAQqD,EAAShB,EAAe3C,EAAGmC,EAAUtB,EAAeO,CAAS,EAAGpB,EAAG,EAAE,EAC7EO,EAAeqC,GAAS5C,EAAGC,EAAGC,EAAGC,CAAC,EAClCK,EAAeoC,GAAS5C,EAAGI,EAAOC,EAAOC,CAAK,EAC9CgB,EAAOiB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAAC,EAC5Cf,EAAOe,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,CAAI,CAAC,EAClDG,EAAOc,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,CAAI,CAAC,EACxDE,GAAOa,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAC9DX,EAAM+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,EAAIoB,EAAoBnB,EAAI,EAClHH,EAAWgB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAClEE,EAAWY,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,CAAQ,CAAC,EACtEK,EAAWW,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,CAAQ,CAAC,EAChFE,GAAWU,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,EAAUC,CAAQ,CAAC,EAC1Fb,EAAU8B,EAAoBtB,CAAQ,EAAIsB,EAAoBlB,CAAQ,EAAIkB,EAAoBjB,CAAQ,EAAIiB,EAAoBhB,EAAQ,EACtIR,EAAO,KAAKd,EAAcyC,EAAczC,EAAcO,CAAG,CAAC,EAC1DO,EAAO,KAAKyB,EAAe,KAAM,MAAO9C,EAAGC,EAAGC,EAAGC,CAAC,CAAC,EACnDkB,EAAO,KAAKyB,EAAe,IAAK,MAAO7C,EAAGC,EAAGC,EAAGH,CAAC,CAAC,EAClDqB,EAAO,KAAK0B,EAAuBgB,EAAa9D,EAAGC,EAAGC,CAAC,EAAI,EAAID,EAAIC,EAAG4D,EAAa9D,EAAGC,EAAGC,CAAC,EAAI,EAAIA,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HmB,EAAO,KAAK0B,EAAuBgB,EAAa7D,EAAGC,EAAGH,CAAC,EAAI,EAAIG,EAAIH,EAAG+D,EAAa7D,EAAGC,EAAGH,CAAC,EAAI,EAAIA,EAAIG,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HkB,EAAO,KAAKuC,EAAiB5D,EAAGC,EAAGC,CAAC,EAAG0D,EAAiBzD,EAAGD,EAAGD,CAAC,EAAG2D,EAAiB5D,EAAGG,EAAGD,CAAC,EAAG0D,EAAiB3D,EAAGD,EAAGG,CAAC,CAAC,EACtH6B,EAAa,0BAA0BrC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,oBAAoBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,sBAAsBE,CAAG,yFAC9NiB,EAAY,OAASmB,EAAW,CAC9B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMgD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,YAAa,GACb,MAAO,EACR,EAAEkB,CAAM,EACL,KAAK,YACPtB,EAAQiC,EACRjC,GAASgC,EACThC,GAAS,oEAAsEsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EAC1J0D,GAAW,KAAMxD,EAAIF,EAAIuD,EAAIjB,EAASC,CAAQ,CAAC,EAC/CvC,IACAG,GAAS,oEAAsEsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EAC1J0D,GAAW,KAAMxD,EAAIF,EAAIwD,EAAIlB,EAASC,CAAQ,CAAC,GACrCoB,GAAQ,OAWlBzB,EAAgBjC,CAAK,EAAI,CACvB,KAAM,UACN,aACkB,CACE,CACE,MAAO,GACP,OAAQ,EACR,UAAW,GACX,OAAQkC,EAAY,gCAAgCpC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,IACjI,WAAY,EACb,CACF,CACpB,EACDf,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAOmC,EAAa,yEACpB,OAAQ,CAACmB,EAAIjB,EAASC,CAAQ,CAAC,EAC/B,WAAY,SACZ,MAAO,CACL,OAAQqB,GAAmBL,EAAIjB,EAASC,CAAQ,CAAC,EACjD,SAAUsB,GAAqCN,EAAIjB,EAASC,CAAQ,CAAC,EACrE,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDtC,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAO,+DACP,OAAQ,CAACuD,EAAIlB,EAASC,CAAQ,CAAC,EAC/B,WAAY,SACZ,MAAO,CACL,OAAQqB,GAAmBJ,EAAIlB,EAASC,CAAQ,CAAC,EACjD,SAAUsB,GAAqCL,EAAIlB,EAASC,CAAQ,CAAC,EACrE,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDtC,MA3DAE,EAAQ,SAASJ,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,sBAAsBE,CAAG,IAC1Mf,GAAS,OAASmD,EAAW,CAC3B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMgD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,YAAa,GACb,MAAO,EACR,EAAEkB,CAAM,GAqDXY,EAAY,gBAAgBtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,sBAAsBqC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,yDACxLA,GAAkC,IACpCqB,GAAa,eAAegB,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,IAAID,EAAcC,EAAiC,CAAC,EAAE,WAAW,+CAA+CD,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAC9PqB,GAAarB,IAAmC,EAAI,4CAA8C,IAEpGqB,GAAa,QACbA,GAAa,IAAIf,CAAI,YAAYR,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUf,CAAO,CAAC,GAAG8B,EAAG,EAAE,CAAC,IAClH/B,GAAa,IAAIhB,CAAI,YAAYP,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUd,CAAQ,CAAC,IACtGvB,IAAmC,GACrCqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,KAAK9C,CAAI,uBAAuB+B,EAAUR,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAc+B,EAAUf,CAAO,CAAC,IAClID,GAAa,GAAG+B,EAAG,EAAE,CAAC,KAAK/C,CAAI,uBAAuBgC,EAAUR,EAAQxB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAcgC,EAAUd,CAAQ,CAAC,KAC7GvB,GAAkC,IAC3CqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,IAAI9C,CAAI,UAAUP,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUf,CAAO,CAAC,IAChID,GAAa,GAAG+B,EAAG,EAAE,CAAC,IAAI/C,CAAI,UAAUN,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUd,CAAQ,CAAC,KAEtHF,GAAa,qCAAqCtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,qBAAqBE,CAAG,sBAAsBmC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,+CAA+C8C,GAAeT,EAAUf,CAAO,CAAC,CAAC,UAAUwB,GAAeT,EAAUd,CAAQ,CAAC,CAAC,KACxWF,GAAa,gCACbZ,EAAS,CAAE,EACXA,EAAO,KAAKb,EAAcwC,EAAcxC,EAAcO,CAAO,CAAC,EAC9DM,EAAO,KAAKyB,EAAe,MAAO,OAAQ9C,EAAGI,EAAOC,EAAOC,CAAK,CAAC,EACjEe,EAAO,KAAKyB,EAAe,KAAM,OAAQ1C,EAAOC,EAAOC,EAAON,CAAC,CAAC,EAChEqB,EAAO,KAAK0B,EAAuBgB,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIJ,EAAII,EAAO2D,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIA,EAAQJ,EAAG,MAAO,GAAK,GAAI,EAAI,CAAC,EACtJqB,EAAO,KAAK0B,EAAuBgB,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAID,EAAQC,EAAO0D,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAIA,EAAQD,EAAO,MAAO,GAAK,GAAI,EAAI,CAAC,EAC9JiB,EAAO,KAAKuC,EAAiB5D,EAAGI,EAAOC,CAAK,EAAGuD,EAAiBtD,EAAOD,EAAOD,CAAK,EAAGwD,EAAiB5D,EAAGM,EAAOD,CAAK,EAAGuD,EAAiBxD,EAAOJ,EAAGM,CAAK,CAAC,EAC1J2B,GAAa,OAASiB,EAAW,CAC/B,KAAMC,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM6C,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM8C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM8C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,YAAa,GACb,MAAO,EACR,EAAEe,CAAM,EACT,MACF,IAAK,GACHJ,EAAOL,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAGrB,CAAI,CAAC,EAAI,EAAIqB,EAAQ,EAAG,EAAG,CAACE,EAAQvB,EAAO,EAAG,CAAC,CAAC,CAAC,EACnHF,EAAOJ,EAAiC,EAAI2B,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAGrB,EAAMD,CAAI,CAAC,EAAI,EAAIsB,EAAQ,EAAG,EAAG,CAACE,EAAQvB,EAAO,EAAG,CAAC,EAAGuB,EAAQxB,EAAO,EAAG,CAAC,CAAC,CAAC,EAC/IiB,EAAUO,EAAQ/B,EAAmBE,CAA8B,EAAIM,EAAM,CAAC,EAC9EiB,EAAWM,EAAQ/B,EAAmBE,CAA8B,EAAIK,EAAM,CAAC,EAC/EE,EAAQoB,EAAQ,GAAI,GAAG,EACvBnB,EAAYmB,EAAQ,GAAI,IAAK,CAACpB,CAAK,CAAC,EACpCN,EAAe6B,GAAO,CAAC,GAAI,CAAC,CAAC,EAC7BzC,EAAI0C,EAAe3C,EAAGkB,EAAML,EAAeM,CAAK,EAChDf,EAAQuC,EAAe3C,EAAGkC,EAASrB,EAAeO,CAAS,EAC3DlB,EAAIyD,EAAShB,EAAe1C,EAAGgB,EAAM,IAAMJ,EAAeM,CAAK,EAAGlB,EAAG,GAAG,EACxEI,EAAQsD,EAAShB,EAAevC,EAAO+B,EAAU,IAAMtB,EAAeO,CAAS,EAAGhB,EAAO,GAAG,EAC5FD,EAAIwD,EAAShB,EAAe3C,EAAGiB,EAAMJ,EAAeM,CAAK,EAAGnB,EAAG,EAAE,EACjEM,EAAQqD,EAAShB,EAAe3C,EAAGmC,EAAUtB,EAAeO,CAAS,EAAGpB,EAAG,EAAE,EAC7EO,EAAeqC,GAAS5C,EAAGC,EAAGC,EAAGC,CAAC,EAClCK,EAAeoC,GAAS5C,EAAGI,EAAOC,EAAOC,CAAK,EAC9CgB,EAAOiB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAAC,EAC5Cf,EAAOe,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,CAAI,CAAC,EAClDG,EAAOc,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,CAAI,CAAC,EACxDE,GAAOa,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAC9DX,EAAM+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,EAAIqB,EAAoBpB,CAAI,EAAIoB,EAAoBnB,EAAI,EAClHH,EAAWgB,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMC,CAAI,CAAC,EAClEE,EAAWY,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,CAAQ,CAAC,EACtEK,EAAWW,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,CAAQ,CAAC,EAChFE,GAAWU,EAAQ,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAIjB,EAAME,EAAMD,EAAUI,EAAUC,CAAQ,CAAC,EAC1Fb,EAAU8B,EAAoBtB,CAAQ,EAAIsB,EAAoBlB,CAAQ,EAAIkB,EAAoBjB,CAAQ,EAAIiB,EAAoBhB,EAAQ,EACtIR,EAAO,KAAKd,EAAcyC,EAAczC,EAAcO,CAAG,CAAC,EAC1DO,EAAO,KAAKyB,EAAe,KAAM,MAAO9C,EAAGC,EAAGC,EAAGC,CAAC,CAAC,EACnDkB,EAAO,KAAKyB,EAAe,IAAK,MAAO7C,EAAGC,EAAGC,EAAGH,CAAC,CAAC,EAClDqB,EAAO,KAAK0B,EAAuBgB,EAAa9D,EAAGC,EAAGC,CAAC,EAAI,EAAID,EAAIC,EAAG4D,EAAa9D,EAAGC,EAAGC,CAAC,EAAI,EAAIA,EAAID,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HmB,EAAO,KAAK0B,EAAuBgB,EAAa7D,EAAGC,EAAGH,CAAC,EAAI,EAAIG,EAAIH,EAAG+D,EAAa7D,EAAGC,EAAGH,CAAC,EAAI,EAAIA,EAAIG,EAAG,OAAQ,GAAK,GAAI,EAAI,CAAC,EAC/HkB,EAAO,KAAKuC,EAAiB5D,EAAGC,EAAGC,CAAC,EAAG0D,EAAiBzD,EAAGD,EAAGD,CAAC,EAAG2D,EAAiB5D,EAAGG,EAAGD,CAAC,EAAG0D,EAAiB3D,EAAGD,EAAGG,CAAC,CAAC,EACtH6B,EAAa,0BAA0BrC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,qBAAqBE,CAAG,uDAAuD+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,CAAC,mBAAmByB,EAAUf,CAAO,CAAC,qEAC7RH,EAAY,OAASmB,EAAW,CAC9B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMgD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,YAAa,GACb,MAAO,EACR,EAAEkB,CAAM,EACL,KAAK,YACPtB,EAAQiC,EACRjC,GAASsD,GAAyB,KAAMvD,EAAIF,EAAI,SAAU,CAAE,iBAAkB,GAAM,EACpFG,GAASgC,EACTuB,GAAW,KAAMxD,EAAIF,EAAIuC,CAAQ,GACvBoB,GAAQ,OAWlBzB,EAAgBjC,CAAK,EAAI,CACvB,KAAM,UACN,aACkB,CACE,CACE,MAAO,GACP,OAAQ,EACR,UAAW,GACX,OAAQkC,EAAY,gCAAgCpC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,IACjI,WAAY,EACb,CACF,CACpB,EACDf,IACAiC,EAAgBjC,CAAK,EAAI,CACvB,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,QAAS,CACP,MAAOmC,EAAa,4DACpB,OAAQ,CAACG,CAAQ,EACjB,WAAY,SACZ,MAAO,CACL,OAAQqB,GAAmBrB,CAAQ,EACnC,SAAUsB,GAAqCtB,CAAQ,EACvD,MAAO,EACR,CACF,CACjB,CAAe,CACF,EACDtC,MAzCAE,EAAQ,SAASJ,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,qBAAqBE,CAAG,sDAAsD+B,EAAoBvB,CAAI,EAAIuB,EAAoBrB,CAAI,CAAC,mBAAmByB,EAAUf,CAAO,CAAC,KACtQnC,GAAS,OAASmD,EAAW,CAC3B,KAAMC,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMgD,EAAInD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,KAAMiD,EAAIpD,EAAE,EAAGC,EAAE,EAAGC,EAAE,EAAGC,EAAE,CAAC,EAAI,EAChC,YAAa,GACb,MAAO,EACR,EAAEkB,CAAM,GAmCXY,EAAY,gBAAgBtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,uGACzGqB,GAAa,iIAAiIgB,EAAUf,CAAO,CAAC,UAAUhB,CAAI,MAAMR,EAAmBE,CAA8B,CAAC,oDAAoDF,EAAmBE,CAA8B,CAAC,SAC5UqB,GAAa,gEAAgEvB,EAAmBE,CAA8B,CAAC,IAE3HA,GAAkC,IACpCqB,GAAa,eAAegB,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,IAAID,EAAcC,EAAiC,CAAC,EAAE,WAAW,+CAA+CD,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAC9PqB,GAAarB,IAAmC,EAAI,4CAA8C,IAEpGqB,GAAa,QACbA,GAAa,IAAIhB,CAAI,YAAYP,EAAmBE,CAA8B,CAAC,IAAIqC,EAAUd,CAAQ,CAAC,IACtGvB,IAAmC,EACrCqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,KAAK/C,CAAI,uBAAuBgC,EAAUR,EAAQxB,EAAO,EAAG,CAAC,CAAC,CAAC,cAAcgC,EAAUd,CAAQ,CAAC,IAC1HvB,GAAkC,IAC3CqB,GAAa,GAAG+B,EAAG,EAAE,CAAC,OAAOA,EAAG,EAAE,CAAC,IAAI/C,CAAI,UAAUN,EAAcC,EAAiC,CAAC,EAAE,GAAG,IAAIqC,EAAUd,CAAQ,CAAC,KAEnIF,GAAa,qCAAqCtC,EAA+B,CAAC,EAAEiB,EAAiC,EAAI,EAAI,CAAC,CAAC,qBAAqBE,CAAG,sBAAsBmC,EAAUvC,EAAmBE,CAA8B,CAAC,CAAC,+CAA+C8C,GAAeT,EAAUf,CAAO,CAAC,CAAC,UAAUwB,GAAeT,EAAUd,CAAQ,CAAC,CAAC,KACxWF,GAAa,gCACbZ,EAAS,CAAE,EACXA,EAAO,KAAKb,EAAcwC,EAAcxC,EAAcO,CAAO,CAAC,EAC9DM,EAAO,KAAKyB,EAAe,MAAO,OAAQ9C,EAAGI,EAAOC,EAAOC,CAAK,CAAC,EACjEe,EAAO,KAAKyB,EAAe,KAAM,OAAQ1C,EAAOC,EAAOC,EAAON,CAAC,CAAC,EAChEqB,EAAO,KAAK0B,EAAuBgB,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIJ,EAAII,EAAO2D,EAAa1D,EAAOL,EAAGI,CAAK,EAAI,EAAIA,EAAQJ,EAAG,MAAO,GAAK,GAAI,EAAI,CAAC,EACtJqB,EAAO,KAAK0B,EAAuBgB,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAID,EAAQC,EAAO0D,EAAa/D,EAAGI,EAAOC,CAAK,EAAI,EAAIA,EAAQD,EAAO,MAAO,GAAK,GAAI,EAAI,CAAC,EAC9JiB,EAAO,KAAKuC,EAAiB5D,EAAGI,EAAOC,CAAK,EAAGuD,EAAiBtD,EAAOD,EAAOD,CAAK,EAAGwD,EAAiB5D,EAAGM,EAAOD,CAAK,EAAGuD,EAAiBxD,EAAOJ,EAAGM,CAAK,CAAC,EAC1J2B,GAAa,OAASiB,EAAW,CAC/B,KAAMC,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM6C,EAAInD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM8C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,KAAM8C,EAAIpD,EAAE,EAAGI,EAAM,EAAGC,EAAM,EAAGC,EAAM,CAAC,EAAI,EAC5C,YAAa,GACb,MAAO,EACR,EAAEe,CAAM,EACT,KACH,CACGkC,GAAQ,QACV,KAAK,eAAezD,CAAC,EAAI,CACvB,OAAQ,GACR,QAAS,CAAE,UAAW,GAAM,gBAAiB,EAAO,EACpD,aAAc,GACd,YAAa,GACb,aAAcgC,CACf,GAEC,KAAK,oBAAoBhC,EAAGC,EAAOmB,EAAMN,CAA8B,IAEzE,KAAK,eAAe,KAAKb,CAAK,EAC9B,KAAK,iBAAiB,KAAKkC,CAAS,EACpCnC,KAEFuC,IACD,CACD4B,GAAwB,IAAI,CAC7B,CACH"}