HEX
Server: Apache
System: Linux vps.mmtprep.com 4.18.0-477.21.1.el8_8.x86_64 #1 SMP Thu Aug 10 13:51:50 EDT 2023 x86_64
User: mmtprep (1001)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/5C12-3-C0COR1G5.js.map
{"version":3,"file":"5C12-3-C0COR1G5.js","sources":["../../src/exercices/5e/5C12-3.ts"],"sourcesContent":["import { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { lettreDepuisChiffre, sp } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre'\nimport Exercice from '../deprecatedExercice.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { remplisLesBlancs } from '../../lib/interactif/questionMathLive'\nimport { context } from '../../modules/context.js'\nimport { ComputeEngine } from '@cortex-js/compute-engine'\nimport type { MathfieldElement } from 'mathlive'\n\nexport const titre = 'Using distributiveness for mental arithmetic'\nexport const interactifReady = true\nexport const interactifType = 'custom'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\nconst ce = new ComputeEngine()\nexport const dateDePublication = '26/11/2022'\nexport const dateDeModifImportante = '18/11/2023'\n// Modif EE : Passage en interactif donc passage en TS\n/**\n * Distributivité numérique\n * @author Sébastien LOZANO\n*/\n\nexport const uuid = '9103e'\nexport const ref = '5C12-3'\nclass DistributiviteNumerique extends Exercice {\n  rep1: number[] = []\n  rep2: number[] = []\n  rep3: number[] = []\n  rep4: number[] = []\n  rep5: number[] = []\n  typeQuestion: (1 | 2)[] = []\n  exoCustomResultat: boolean\n  constructor () {\n    super()\n    this.exoCustomResultat = true\n    this.nbQuestions = 4 // Ici le nombre de questions\n    this.sup = 3\n    this.besoinFormulaireNumerique = ['Type of questions', 3, '1: In expanded form\\n2: In factored form\\n3: Combination']\n  }\n\n  nouvelleVersion () {\n    this.listeQuestions = [] // tableau contenant la liste des questions\n    this.listeCorrections = []\n    const typesDeQuestionsDisponibles = this.sup === 3 ? [1, 2, 3, 4] : this.sup === 2 ? [3, 4] : [1, 2]\n    const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n    this.consigne = 'Use distributivity to calculate cleverly'\n    const consigneAMC = this.consigne + 'the following expression:'\n    this.consigne += this.nbQuestions === 1 ? 'the following expression.' : 'the following expressions.'\n\n    // Some functions to factorize the code\n    function avecLesPriorites (i:number, k:number, b:number, c:number, formeInitiale:string, operation:number) {\n      let sortie:[string, number, number, number, number, number] = ['', 0, 0, 0, 0, 0]\n      if (formeInitiale === 'factorized') {\n        sortie = [`\n        $\\\\textbf{Here it makes more sense to distribute first :}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${operation === 1 ? texNombre(b + c, 0) : texNombre(b - c, 0)}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times (${texNombre(b, 0)} ${operation === 1 ? `+ ${texNombre(c, 0)}` : `- ${texNombre(c, 0)}`})$<br>\n        $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${texNombre(b, 0)} ${operation === 1 ? '+' : '-'} ${miseEnEvidence(k)}\\\\times ${texNombre(c, 0)}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${texNombre(k * b, 0)} ${operation === 1 ? '+' : '-'} ${texNombre(k * c, 0)}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${operation === 1 ? texNombre(k * b + k * c, 0) : texNombre(k * b - k * c, 0)}$\n        `,\n        b,\n        c,\n        k * b,\n        k * c,\n        operation === 1 ? k * b + k * c : k * b - k * c\n        ]\n      } else {\n        sortie = [`\n        $\\\\textbf{Here it makes more sense to factor first :}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${texNombre(b, 0)} ${operation === 1 ? '+' : '-'} ${miseEnEvidence(k)}\\\\times ${texNombre(c, 0)}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times (${texNombre(b, 0)} ${operation === 1 ? `+ ${texNombre(c, 0)}` : `- ${texNombre(c, 0)}`})$<br>\n        $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${operation === 1 ? texNombre(b + c, 0) : texNombre(b - c, 0)}$<br>\n        $${lettreDepuisChiffre(i + 1)}=${operation === 1 ? texNombre(k * (b + c), 0) : texNombre(k * (b - c), 0)}$\n        `,\n        b,\n        c,\n        operation === 1 ? b + c : b - c,\n        operation === 1 ? k * (b + c) : k * (b - c),\n        0]\n      }\n      return sortie\n    }\n\n    for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      let texte = '' // Nous utilisons souvent cette variable pour construire le texte de la question.\n      let texteCorr = '' // Idem pour le texte de la correction.\n      // Choice of random parameters\n      let k = 0\n      let b, c\n      let cinqChamps: boolean = false\n      let correctionTableau:[string, number, number, number, number, number] = ['', 0, 0, 0, 0, 0]\n      const puissance = [100, 1000]\n      const ajoutRetrait = randint(1, 3)\n      switch (listeTypeDeQuestions[i]) { // Chaque question peut être d'un type différent, ici 4 cas sont prévus...\n        case 1: { // Calcul mental addition developpée initialement\n          k = randint(47, 83)\n          const choixIndicePuissance = randint(0, 1)\n          c = ajoutRetrait\n          b = puissance[choixIndicePuissance] - c\n          texte = `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b, 0)} + ${k}\\\\times ${c}$`\n          correctionTableau = avecLesPriorites(i, k, b, c, 'developed', 1)\n          cinqChamps = false\n          this.typeQuestion[i] = 2\n          break\n        }\n        case 2: { // Calcul mental soustraction  developpée initialement\n          k = randint(47, 83)\n          const choixIndicePuissance = randint(0, 1)\n          c = ajoutRetrait\n          b = puissance[choixIndicePuissance] + c\n          texte = `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b, 0)} - ${k}\\\\times ${c}$`\n          correctionTableau = avecLesPriorites(i, k, b, c, 'developed', -1)\n          cinqChamps = false\n          this.typeQuestion[i] = 2\n          break\n        }\n        case 3: { // Calcul mental addition factorisée initialement\n          k = randint(47, 83)\n          const choixIndicePuissance = randint(0, 1)\n          c = ajoutRetrait\n          b = puissance[choixIndicePuissance] - c\n          texte = `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b + 2 * c, 0)}$`\n          correctionTableau = avecLesPriorites(i, k, b + c, c, 'factorized', 1)\n          cinqChamps = true\n          this.typeQuestion[i] = 1\n          break\n        }\n        case 4: { // Calcul mental soustraction factorisée initialement\n          k = randint(47, 83)\n          const choixIndicePuissance = randint(0, 1)\n          c = ajoutRetrait\n          b = puissance[choixIndicePuissance] + c\n          texte = `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b - 2 * c, 0)}$`\n          correctionTableau = avecLesPriorites(i, k, b - c, c, 'factorized', -1)\n          cinqChamps = true\n          this.typeQuestion[i] = 1\n          break\n        }\n      }\n      texteCorr += correctionTableau[0]\n      this.rep1[i] = correctionTableau[1]\n      this.rep2[i] = correctionTableau[2]\n      this.rep3[i] = correctionTableau[3]\n      this.rep4[i] = correctionTableau[4]\n      this.rep5[i] = correctionTableau[5]\n      if (this.interactif) {\n        if (cinqChamps) {\n          const code = sp(2) + remplisLesBlancs(this, i, `= ${texNombre(k, 0)} \\\\times %{place1} ${listeTypeDeQuestions[i] % 2 === 1 ? '+' : '-'} ${texNombre(k, 0)} \\\\times %{place2} = %{place3} ${listeTypeDeQuestions[i] % 2 === 1 ? '+' : '-'} %{place4} = %{place5}`, 'ml-2')\n          texte += code\n        } else {\n          const code = sp(2) + remplisLesBlancs(this, i, ` = ${texNombre(k, 0)} \\\\times (%{place1} ${listeTypeDeQuestions[i] % 2 === 1 ? '+' : '-'} %{place2}) = ${texNombre(k, 0)} \\\\times %{place3} = %{place4}`, 'ml-2')\n          texte += code\n        }\n      }\n\n      if (this.questionJamaisPosee(i, texte)) {\n        // If the question has never been asked, we store it in the list of questions\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        if (context.isAmc) {\n          this.autoCorrection[i] = {\n            enonce: '',\n            enonceAvant: true,\n            propositions: [\n              {\n                type: 'AMCOpen',\n                propositions: [{\n                  enonce: consigneAMC + texte + '<br>',\n                  texte: texteCorr,\n                  statut: 3,\n                  pointilles: false,\n                  multicolsBegin: true\n                }]\n              },\n              {\n                type: 'AMCNum',\n                propositions: [{\n                  texte: '',\n                  statut: '',\n                  multicolsEnd: true,\n                  reponse: {\n                    texte: 'Detail the calculations in the left box and give the result below.',\n                    valeur: cinqChamps ? [correctionTableau[5]] : [correctionTableau[4]],\n                    param: {\n                      digits: 1,\n                      decimals: 0,\n                      signe: false,\n                      approx: 0\n                    }\n                  }\n                }]\n              }\n            ]\n          }\n        }\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n  }\n\n  correctionInteractive = (i?: number) => {\n    if (i === undefined) return ''\n    if (this.answers === undefined) this.answers = {}\n    const result: ('OK' | 'KO')[] = []\n    const mf = document.querySelector(`#champTexteEx${this.numeroExercice}Q${i}`) as MathfieldElement\n    this.answers[`Ex${this.numeroExercice}Q${i}`] = mf.getValue()\n    const divFeedback = document.querySelector(`#feedbackEx${this.numeroExercice}Q${i}`) as HTMLDivElement\n    const test1 = ce.parse(mf.getPromptValue('place1')).isSame(ce.parse(`${this.rep1[i]}`))\n    const test2 = ce.parse(mf.getPromptValue('place2')).isSame(ce.parse(`${this.rep2[i]}`))\n    const test3 = ce.parse(mf.getPromptValue('place3')).isSame(ce.parse(`${this.rep3[i]}`))\n    const test4 = ce.parse(mf.getPromptValue('place4')).isSame(ce.parse(`${this.rep4[i]}`))\n    mf.setPromptState('place1', test1 ? 'correct' : 'incorrect', true)\n    mf.setPromptState('place2', test2 ? 'correct' : 'incorrect', true)\n    mf.setPromptState('place3', test3 ? 'correct' : 'incorrect', true)\n    mf.setPromptState('place4', test4 ? 'correct' : 'incorrect', true)\n    if (this.typeQuestion[i] === 1) {\n      const test5 = ce.parse(mf.getPromptValue('place5')).isSame(ce.parse(`${this.rep5[i]}`))\n      mf.setPromptState('place5', test5 ? 'correct' : 'incorrect', true)\n      if (test1 && test2 && test3 && test4) {\n        result.push('OK')\n        divFeedback.innerHTML = '😎'\n      } else {\n        result.push('KO')\n        divFeedback.innerHTML = '☹️'\n      }\n      if (test5) {\n        result.push('OK')\n      } else {\n        result.push('KO')\n      }\n    } else {\n      if (test1 && test2 && test3) {\n        result.push('OK')\n        divFeedback.innerHTML = '😎'\n      } else {\n        result.push('KO')\n        divFeedback.innerHTML = '☹️'\n      }\n      if (test4) {\n        result.push('OK')\n      } else {\n        result.push('KO')\n      }\n    }\n    return result\n  }\n}\n\nexport default DistributiviteNumerique\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","ce","ComputeEngine","dateDePublication","dateDeModifImportante","uuid","ref","DistributiviteNumerique","Exercice","__publicField","i","result","mf","divFeedback","test1","test2","test3","test4","test5","typesDeQuestionsDisponibles","listeTypeDeQuestions","combinaisonListes","consigneAMC","avecLesPriorites","k","b","c","formeInitiale","operation","sortie","lettreDepuisChiffre","miseEnEvidence","texNombre","cpt","texte","texteCorr","cinqChamps","correctionTableau","puissance","ajoutRetrait","randint","choixIndicePuissance","code","sp","remplisLesBlancs","context","listeQuestionsToContenu"],"mappings":"0RAWO,MAAMA,EAAQ,+CACRC,EAAkB,GAClBC,EAAiB,SACjBC,EAAW,GACXC,EAAU,aACjBC,EAAK,IAAIC,EACFC,EAAoB,aACpBC,EAAwB,aAOxBC,EAAO,QACPC,EAAM,SACnB,MAAMC,UAAgCC,CAAS,CAQ7C,aAAe,CACP,QARRC,EAAA,YAAiB,CAAA,GACjBA,EAAA,YAAiB,CAAA,GACjBA,EAAA,YAAiB,CAAA,GACjBA,EAAA,YAAiB,CAAA,GACjBA,EAAA,YAAiB,CAAA,GACjBA,EAAA,oBAA0B,CAAA,GAC1BA,EAAA,0BA4KAA,EAAA,6BAAyBC,GAAe,CACtC,GAAIA,IAAM,OAAkB,MAAA,GACxB,KAAK,UAAY,SAAW,KAAK,QAAU,IAC/C,MAAMC,EAA0B,CAAA,EAC1BC,EAAK,SAAS,cAAc,gBAAgB,KAAK,cAAc,IAAIF,CAAC,EAAE,EACvE,KAAA,QAAQ,KAAK,KAAK,cAAc,IAAIA,CAAC,EAAE,EAAIE,EAAG,SAAS,EACtD,MAAAC,EAAc,SAAS,cAAc,cAAc,KAAK,cAAc,IAAIH,CAAC,EAAE,EAC7EI,EAAQb,EAAG,MAAMW,EAAG,eAAe,QAAQ,CAAC,EAAE,OAAOX,EAAG,MAAM,GAAG,KAAK,KAAKS,CAAC,CAAC,EAAE,CAAC,EAChFK,EAAQd,EAAG,MAAMW,EAAG,eAAe,QAAQ,CAAC,EAAE,OAAOX,EAAG,MAAM,GAAG,KAAK,KAAKS,CAAC,CAAC,EAAE,CAAC,EAChFM,EAAQf,EAAG,MAAMW,EAAG,eAAe,QAAQ,CAAC,EAAE,OAAOX,EAAG,MAAM,GAAG,KAAK,KAAKS,CAAC,CAAC,EAAE,CAAC,EAChFO,EAAQhB,EAAG,MAAMW,EAAG,eAAe,QAAQ,CAAC,EAAE,OAAOX,EAAG,MAAM,GAAG,KAAK,KAAKS,CAAC,CAAC,EAAE,CAAC,EAKtF,GAJAE,EAAG,eAAe,SAAUE,EAAQ,UAAY,YAAa,EAAI,EACjEF,EAAG,eAAe,SAAUG,EAAQ,UAAY,YAAa,EAAI,EACjEH,EAAG,eAAe,SAAUI,EAAQ,UAAY,YAAa,EAAI,EACjEJ,EAAG,eAAe,SAAUK,EAAQ,UAAY,YAAa,EAAI,EAC7D,KAAK,aAAaP,CAAC,IAAM,EAAG,CAC9B,MAAMQ,EAAQjB,EAAG,MAAMW,EAAG,eAAe,QAAQ,CAAC,EAAE,OAAOX,EAAG,MAAM,GAAG,KAAK,KAAKS,CAAC,CAAC,EAAE,CAAC,EACtFE,EAAG,eAAe,SAAUM,EAAQ,UAAY,YAAa,EAAI,EAC7DJ,GAASC,GAASC,GAASC,GAC7BN,EAAO,KAAK,IAAI,EAChBE,EAAY,UAAY,OAExBF,EAAO,KAAK,IAAI,EAChBE,EAAY,UAAY,MAEtBK,EACFP,EAAO,KAAK,IAAI,EAEhBA,EAAO,KAAK,IAAI,CAClB,MAEIG,GAASC,GAASC,GACpBL,EAAO,KAAK,IAAI,EAChBE,EAAY,UAAY,OAExBF,EAAO,KAAK,IAAI,EAChBE,EAAY,UAAY,MAEtBI,EACFN,EAAO,KAAK,IAAI,EAEhBA,EAAO,KAAK,IAAI,EAGb,OAAAA,CAAA,GArNP,KAAK,kBAAoB,GACzB,KAAK,YAAc,EACnB,KAAK,IAAM,EACX,KAAK,0BAA4B,CAAC,oBAAqB,EAAG;AAAA;AAAA,eAA0D,CACtH,CAEA,iBAAmB,CACjB,KAAK,eAAiB,GACtB,KAAK,iBAAmB,GACxB,MAAMQ,EAA8B,KAAK,MAAQ,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EAAI,KAAK,MAAQ,EAAI,CAAC,EAAG,CAAC,EAAI,CAAC,EAAG,CAAC,EAC7FC,EAAuBC,EAAkBF,EAA6B,KAAK,WAAW,EAC5F,KAAK,SAAW,2CACV,MAAAG,EAAc,KAAK,SAAW,4BACpC,KAAK,UAAY,KAAK,cAAgB,EAAI,4BAA8B,6BAGxE,SAASC,EAAkBb,EAAUc,EAAUC,EAAUC,EAAUC,EAAsBC,EAAkB,CACzG,IAAIC,EAA0D,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,CAAC,EAChF,OAAIF,IAAkB,aACXE,EAAA,CAAC;AAAA;AAAA,WAEPC,EAAoBpB,EAAI,CAAC,CAAC,IAAIqB,EAAeP,CAAC,CAAC,WAAWI,IAAc,EAAII,EAAUP,EAAIC,EAAG,CAAC,EAAIM,EAAUP,EAAIC,EAAG,CAAC,CAAC;AAAA,WACrHI,EAAoBpB,EAAI,CAAC,CAAC,IAAIqB,EAAeP,CAAC,CAAC,YAAYQ,EAAUP,EAAG,CAAC,CAAC,IAAIG,IAAc,EAAI,KAAKI,EAAUN,EAAG,CAAC,CAAC,GAAK,KAAKM,EAAUN,EAAG,CAAC,CAAC,EAAE;AAAA,WAC/II,EAAoBpB,EAAI,CAAC,CAAC,IAAIqB,EAAeP,CAAC,CAAC,WAAWQ,EAAUP,EAAG,CAAC,CAAC,IAAIG,IAAc,EAAI,IAAM,GAAG,IAAIG,EAAeP,CAAC,CAAC,WAAWQ,EAAUN,EAAG,CAAC,CAAC;AAAA,WACvJI,EAAoBpB,EAAI,CAAC,CAAC,IAAIsB,EAAUR,EAAIC,EAAG,CAAC,CAAC,IAAIG,IAAc,EAAI,IAAM,GAAG,IAAII,EAAUR,EAAIE,EAAG,CAAC,CAAC;AAAA,WACvGI,EAAoBpB,EAAI,CAAC,CAAC,IAAIkB,IAAc,EAAII,EAAUR,EAAIC,EAAID,EAAIE,EAAG,CAAC,EAAIM,EAAUR,EAAIC,EAAID,EAAIE,EAAG,CAAC,CAAC;AAAA,UAE5GD,EACAC,EACAF,EAAIC,EACJD,EAAIE,EACJE,IAAc,EAAIJ,EAAIC,EAAID,EAAIE,EAAIF,EAAIC,EAAID,EAAIE,CAAA,EAGrCG,EAAA,CAAC;AAAA;AAAA,WAEPC,EAAoBpB,EAAI,CAAC,CAAC,IAAIqB,EAAeP,CAAC,CAAC,WAAWQ,EAAUP,EAAG,CAAC,CAAC,IAAIG,IAAc,EAAI,IAAM,GAAG,IAAIG,EAAeP,CAAC,CAAC,WAAWQ,EAAUN,EAAG,CAAC,CAAC;AAAA,WACvJI,EAAoBpB,EAAI,CAAC,CAAC,IAAIqB,EAAeP,CAAC,CAAC,YAAYQ,EAAUP,EAAG,CAAC,CAAC,IAAIG,IAAc,EAAI,KAAKI,EAAUN,EAAG,CAAC,CAAC,GAAK,KAAKM,EAAUN,EAAG,CAAC,CAAC,EAAE;AAAA,WAC/II,EAAoBpB,EAAI,CAAC,CAAC,IAAIqB,EAAeP,CAAC,CAAC,WAAWI,IAAc,EAAII,EAAUP,EAAIC,EAAG,CAAC,EAAIM,EAAUP,EAAIC,EAAG,CAAC,CAAC;AAAA,WACrHI,EAAoBpB,EAAI,CAAC,CAAC,IAAIkB,IAAc,EAAII,EAAUR,GAAKC,EAAIC,GAAI,CAAC,EAAIM,EAAUR,GAAKC,EAAIC,GAAI,CAAC,CAAC;AAAA,UAExGD,EACAC,EACAE,IAAc,EAAIH,EAAIC,EAAID,EAAIC,EAC9BE,IAAc,EAAIJ,GAAKC,EAAIC,GAAKF,GAAKC,EAAIC,GACzC,CAAA,EAEKG,CACT,CAES,QAAAnB,EAAI,EAAGuB,EAAM,EAAGvB,EAAI,KAAK,aAAeuB,EAAM,IAAK,CAC1D,IAAIC,EAAQ,GACRC,EAAY,GAEZX,EAAI,EACJC,EAAG,EACHW,EAAsB,GACtBC,EAAqE,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,CAAC,EACrF,MAAAC,EAAY,CAAC,IAAK,GAAI,EACtBC,EAAeC,EAAQ,EAAG,CAAC,EACzB,OAAApB,EAAqBV,CAAC,EAAG,CAC/B,IAAK,GAAG,CACFc,EAAAgB,EAAQ,GAAI,EAAE,EACZ,MAAAC,EAAuBD,EAAQ,EAAG,CAAC,EACrC,EAAAD,EACAd,EAAAa,EAAUG,CAAoB,EAAI,EACtCP,EAAQ,IAAIJ,EAAoBpB,EAAI,CAAC,CAAC,IAAIc,CAAC,WAAWQ,EAAUP,EAAG,CAAC,CAAC,MAAMD,CAAC,WAAW,CAAC,IACxFa,EAAoBd,EAAiBb,EAAGc,EAAGC,EAAG,EAAG,YAAa,CAAC,EAClDW,EAAA,GACR,KAAA,aAAa1B,CAAC,EAAI,EACvB,KACF,CACA,IAAK,GAAG,CACFc,EAAAgB,EAAQ,GAAI,EAAE,EACZ,MAAAC,EAAuBD,EAAQ,EAAG,CAAC,EACrC,EAAAD,EACAd,EAAAa,EAAUG,CAAoB,EAAI,EACtCP,EAAQ,IAAIJ,EAAoBpB,EAAI,CAAC,CAAC,IAAIc,CAAC,WAAWQ,EAAUP,EAAG,CAAC,CAAC,MAAMD,CAAC,WAAW,CAAC,IACxFa,EAAoBd,EAAiBb,EAAGc,EAAGC,EAAG,EAAG,YAAa,EAAE,EACnDW,EAAA,GACR,KAAA,aAAa1B,CAAC,EAAI,EACvB,KACF,CACA,IAAK,GAAG,CACFc,EAAAgB,EAAQ,GAAI,EAAE,EACZ,MAAAC,EAAuBD,EAAQ,EAAG,CAAC,EACrC,EAAAD,EACAd,EAAAa,EAAUG,CAAoB,EAAI,EACtCP,EAAQ,IAAIJ,EAAoBpB,EAAI,CAAC,CAAC,IAAIc,CAAC,WAAWQ,EAAUP,EAAI,EAAI,EAAG,CAAC,CAAC,IAC7EY,EAAoBd,EAAiBb,EAAGc,EAAGC,EAAI,EAAG,EAAG,aAAc,CAAC,EACvDW,EAAA,GACR,KAAA,aAAa1B,CAAC,EAAI,EACvB,KACF,CACA,IAAK,GAAG,CACFc,EAAAgB,EAAQ,GAAI,EAAE,EACZ,MAAAC,EAAuBD,EAAQ,EAAG,CAAC,EACrC,EAAAD,EACAd,EAAAa,EAAUG,CAAoB,EAAI,EACtCP,EAAQ,IAAIJ,EAAoBpB,EAAI,CAAC,CAAC,IAAIc,CAAC,WAAWQ,EAAUP,EAAI,EAAI,EAAG,CAAC,CAAC,IAC7EY,EAAoBd,EAAiBb,EAAGc,EAAGC,EAAI,EAAG,EAAG,aAAc,EAAE,EACxDW,EAAA,GACR,KAAA,aAAa1B,CAAC,EAAI,EACvB,KACF,CACF,CAOA,GANAyB,GAAaE,EAAkB,CAAC,EAChC,KAAK,KAAK3B,CAAC,EAAI2B,EAAkB,CAAC,EAClC,KAAK,KAAK3B,CAAC,EAAI2B,EAAkB,CAAC,EAClC,KAAK,KAAK3B,CAAC,EAAI2B,EAAkB,CAAC,EAClC,KAAK,KAAK3B,CAAC,EAAI2B,EAAkB,CAAC,EAClC,KAAK,KAAK3B,CAAC,EAAI2B,EAAkB,CAAC,EAC9B,KAAK,WACP,GAAID,EAAY,CACd,MAAMM,EAAOC,EAAG,CAAC,EAAIC,EAAiB,KAAMlC,EAAG,KAAKsB,EAAUR,EAAG,CAAC,CAAC,sBAAsBJ,EAAqBV,CAAC,EAAI,IAAM,EAAI,IAAM,GAAG,IAAIsB,EAAUR,EAAG,CAAC,CAAC,kCAAkCJ,EAAqBV,CAAC,EAAI,IAAM,EAAI,IAAM,GAAG,yBAA0B,MAAM,EAC/PwB,GAAAQ,CAAA,KACJ,CACC,MAAAA,EAAOC,EAAG,CAAC,EAAIC,EAAiB,KAAMlC,EAAG,MAAMsB,EAAUR,EAAG,CAAC,CAAC,uBAAuBJ,EAAqBV,CAAC,EAAI,IAAM,EAAI,IAAM,GAAG,iBAAiBsB,EAAUR,EAAG,CAAC,CAAC,iCAAkC,MAAM,EACvMU,GAAAQ,CACX,CAGE,KAAK,oBAAoBhC,EAAGwB,CAAK,IAE9B,KAAA,eAAe,KAAKA,CAAK,EACzB,KAAA,iBAAiB,KAAKC,CAAS,EAChCU,EAAQ,QACL,KAAA,eAAenC,CAAC,EAAI,CACvB,OAAQ,GACR,YAAa,GACb,aAAc,CACZ,CACE,KAAM,UACN,aAAc,CAAC,CACb,OAAQY,EAAcY,EAAQ,OAC9B,MAAOC,EACP,OAAQ,EACR,WAAY,GACZ,eAAgB,EAAA,CACjB,CACH,EACA,CACE,KAAM,SACN,aAAc,CAAC,CACb,MAAO,GACP,OAAQ,GACR,aAAc,GACd,QAAS,CACP,MAAO,qEACP,OAAQC,EAAa,CAACC,EAAkB,CAAC,CAAC,EAAI,CAACA,EAAkB,CAAC,CAAC,EACnE,MAAO,CACL,OAAQ,EACR,SAAU,EACV,MAAO,GACP,OAAQ,CACV,CACF,CAAA,CACD,CACH,CACF,CAAA,GAGJ3B,KAEFuB,GACF,CACAa,EAAwB,IAAI,CAC9B,CAgDF"}