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/3F13-1-83ln_KLk.js.map
{"version":3,"file":"3F13-1-83ln_KLk.js","sources":["../../src/exercices/3e/3F13-1.js"],"sourcesContent":["import { graphiqueInterpole } from '../../lib/2d/courbes.js'\nimport { repere } from '../../lib/2d/reperes.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport { deuxColonnes } from '../../lib/format/miseEnPage.js'\nimport { numAlpha } from '../../lib/outils/outilString.js'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { randint, texConsigne } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Graphically read images and backgrounds'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\n\n/**\n * Lecture d'images et antécédents sur un graphe sinusoidale\n * @author Rémi Angot\n * Référence 3F13-1\n */\nexport const uuid = '4b121'\nexport const ref = '3F13-1'\nexport default function AntecedentEtImageGraphique () {\n  Exercice.call(this)\n  this.titre = titre\n  this.nbQuestions = 1\n  this.nbQuestionsModifiable = false\n  this.nbCols = 1\n  this.nbColsCorr = 1\n  if (context.isHtml) {\n    this.spacingCorr = 2\n  }\n\n  this.nouvelleVersion = function () {\n    const r = repere({\n      xMin: -5,\n      xMax: 5,\n      yMin: -4,\n      yMax: 4\n    })\n    let a = randint(1, 3)\n    let b = a - 4\n    let c = a - 2\n    let x0 = randint(-4, -2)\n    while ((x0 === a) || (x0 + 4 === b) || (x0 + 6 === c)) { // Pour éviter d'avoir une image égale à un antécédent\n      a = randint(1, 3)\n      b = a - 4\n      c = a - 2\n      x0 = randint(-4, -2)\n    }\n    let gr = graphiqueInterpole([[randint(-8, -5), a - 1], [x0, a], [x0 + 4, b], [x0 + 6, c], [randint(6, 10), c - 1]] // Coordonnées des 'summits'\n      ,\n      { repere: r, color: 'blue', step: 0.15, epaisseur: 2 })\n\n    if (choice([false, true])) {\n      a *= -1\n      b *= -1\n      c *= -1\n      gr = graphiqueInterpole([[randint(-8, -5), a + 1], [x0, a], [x0 + 4, b], [x0 + 6, c], [randint(6, 10), c + 1]] // Coordonnées des 'summits'\n        ,\n        { repere: r, color: 'blue', step: 0.15, epaisseur: 2 })\n    }\n    this.contenu = 'Below, we have drawn the representative curve of the function $f$.'\n    if (context.isAmc) {\n      this.autoCorrection[0] = {\n        enonce: this.contenu + '<br>' + mathalea2d({\n          xmin: -7,\n          ymin: -4.5,\n          xmax: 7,\n          ymax: 4.5,\n          pixelsParCm: 30\n        }, r, gr),\n        enonceAvant: false, // EE : ce champ est facultatif et permet (si false) de supprimer l'énoncé ci-dessus avant la numérotation de chaque question.\n        enonceAvantUneFois: true, // EE : ce champ est facultatif et permet (si true) d'display the above statement only once before the numbering of the first question of the exercise. Only works correctly if the mix option is false.\n        enonceCentre: true, // EE : ce champ est facultatif et permet (si true) de centrer le champ 'States' ci-dessus.}\n        options: { multicols: true, barreseparation: true, numerotationEnonce: true },\n        propositions: []\n      }\n    }\n\n    if (context.isHtml && this.interactif) {\n      this.contenu += '<br><em>If there are multiple answers, separate the answers with a semicolon.</em>'\n    }\n    this.contenu += '<br><br>'\n    let cont1 = `${numAlpha(0)} What is the image of $${x0}$?`\n    cont1 += ajouteChampTexteMathLive(this, 0)\n    if (context.isAmc) {\n      this.autoCorrection[0].propositions.push(\n        {\n          type: 'AMCNum', // on donne le type de la première question-réponse qcmMono, qcmMult, AMCNum, AMCOpen\n          propositions: [ // une ou plusieurs (Qcms) 'proposals'\n            {\n              texte: '', // Facultatif. la proposition de Qcm ou ce qui est affiché dans le corrigé pour cette question quand ce n'est pas un Qcm\n              reponse: { // utilisé si type = 'AMCNum'\n                texte: cont1, // facultatif\n                valeur: a, // obligatoire (la réponse numérique à comparer à celle de l'élève). EE : Si une fraction est la réponse, mettre un tableau sous la forme [num,den]\n                alignement: 'center', // EE : ce champ est facultatif et n'is functional only for the hybrid. It allows you to choose where the boxes are arranged on the sheet. By default, it is like the text before it. To put left, center or right, choose from ('flushleft', 'center', 'flushright').\n                param: {\n                  digits: 1, // obligatoire pour AMC (le nombre de chiffres dans le nombre, si digits est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  decimals: 0, // obligatoire pour AMC (le nombre de chiffres dans la partie décimale du nombre, si decimals est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  signe: true, // obligatoire pour AMC (présence d'une case + ou -)\n                  approx: 0 // (0 = valeur exacte attendue, sinon valeur de tolérance (voir explication détaillée dans type AMCNum))\n                }\n              }\n            }\n          ]\n        }\n      )\n    }\n    const enonceAMC = `${numAlpha(1)} What is the image of $${x0 + 5}$?`\n    cont1 += '<br>' + enonceAMC\n    cont1 += ajouteChampTexteMathLive(this, 1)\n    if (context.isAmc) {\n      this.autoCorrection[0].propositions.push(\n        {\n          type: 'AMCNum', // on donne le type de la première question-réponse qcmMono, qcmMult, AMCNum, AMCOpen\n          propositions: [ // une ou plusieurs (Qcms) 'proposals'\n            {\n              texte: '', // Facultatif. la proposition de Qcm ou ce qui est affiché dans le corrigé pour cette question quand ce n'est pas un Qcm\n              reponse: { // utilisé si type = 'AMCNum'\n                texte: enonceAMC, // facultatif\n                valeur: (b + c) / 2, // obligatoire (la réponse numérique à comparer à celle de l'élève). EE : Si une fraction est la réponse, mettre un tableau sous la forme [num,den]\n                alignement: 'center', // EE : ce champ est facultatif et n'is functional only for the hybrid. It allows you to choose where the boxes are arranged on the sheet. By default, it is like the text before it. To put left, center or right, choose from ('flushleft', 'center', 'flushright').\n                param: {\n                  digits: 1, // obligatoire pour AMC (le nombre de chiffres dans le nombre, si digits est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  decimals: 0, // obligatoire pour AMC (le nombre de chiffres dans la partie décimale du nombre, si decimals est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  signe: true, // obligatoire pour AMC (présence d'une case + ou -)\n                  approx: 0 // (0 = valeur exacte attendue, sinon valeur de tolérance (voir explication détaillée dans type AMCNum))\n                }\n              }\n            }\n          ]\n        }\n      )\n    }\n    const ordre = randint(1, 2)\n    let cont2\n    if (ordre === 1) {\n      cont2 = `${numAlpha(2)} Determine the antecedent(s) of $${b}$.`\n      cont2 += ajouteChampTexteMathLive(this, 2)\n      cont2 += `<br>${numAlpha(3)} Determine the antecedent(s) of $${c}$.`\n      cont2 += ajouteChampTexteMathLive(this, 3)\n    } else {\n      cont2 = `${numAlpha(2)} Determine the antecedent(s) of $${c}$.`\n      cont2 += ajouteChampTexteMathLive(this, 2)\n      cont2 += `<br>${numAlpha(3)} Determine the antecedent(s) of $${b}$.`\n      cont2 += ajouteChampTexteMathLive(this, 3)\n    }\n    if (context.isAmc) {\n      this.autoCorrection[0].propositions.push(\n        {\n          type: 'AMCNum', // on donne le type de la première question-réponse qcmMono, qcmMult, AMCNum, AMCOpen\n          propositions: [ // une ou plusieurs (Qcms) 'proposals'\n            {\n              texte: '', // Facultatif. la proposition de Qcm ou ce qui est affiché dans le corrigé pour cette question quand ce n'est pas un Qcm\n              reponse: { // utilisé si type = 'AMCNum'\n                texte: `${numAlpha(2)} Determine an antecedent of $${b}$.`, // facultatif\n                valeur: x0 + 4, // obligatoire (la réponse numérique à comparer à celle de l'élève). EE : Si une fraction est la réponse, mettre un tableau sous la forme [num,den]\n                alignement: 'center', // EE : ce champ est facultatif et n'is functional only for the hybrid. It allows you to choose where the boxes are arranged on the sheet. By default, it is like the text before it. To put left, center or right, choose from ('flushleft', 'center', 'flushright').\n                param: {\n                  digits: 1, // obligatoire pour AMC (le nombre de chiffres dans le nombre, si digits est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  decimals: 0, // obligatoire pour AMC (le nombre de chiffres dans la partie décimale du nombre, si decimals est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  signe: true, // obligatoire pour AMC (présence d'une case + ou -)\n                  approx: 0 // (0 = valeur exacte attendue, sinon valeur de tolérance (voir explication détaillée dans type AMCNum))\n                }\n              }\n            }\n          ]\n        }\n      )\n      this.autoCorrection[0].propositions.push(\n        {\n          type: 'AMCNum', // on donne le type de la première question-réponse qcmMono, qcmMult, AMCNum, AMCOpen\n          propositions: [ // une ou plusieurs (Qcms) 'proposals'\n            {\n              texte: '', // Facultatif. la proposition de Qcm ou ce qui est affiché dans le corrigé pour cette question quand ce n'est pas un Qcm\n              reponse: { // utilisé si type = 'AMCNum'\n                texte: `${numAlpha(3)} Determine an antecedent of $${c}$.`, // facultatif\n                valeur: x0 + 2, // obligatoire (la réponse numérique à comparer à celle de l'élève). EE : Si une fraction est la réponse, mettre un tableau sous la forme [num,den]\n                alignement: 'center', // EE : ce champ est facultatif et n'is functional only for the hybrid. It allows you to choose where the boxes are arranged on the sheet. By default, it is like the text before it. To put left, center or right, choose from ('flushleft', 'center', 'flushright').\n                param: {\n                  aussiCorrect: x0 + 6,\n                  digits: 1, // obligatoire pour AMC (le nombre de chiffres dans le nombre, si digits est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  decimals: 0, // obligatoire pour AMC (le nombre de chiffres dans la partie décimale du nombre, si decimals est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n                  signe: true, // obligatoire pour AMC (présence d'une case + ou -)\n                  approx: 0 // (0 = valeur exacte attendue, sinon valeur de tolérance (voir explication détaillée dans type AMCNum))\n                }\n              }\n            }\n          ]\n        }\n      )\n    }\n\n    this.contenu += deuxColonnes(cont1, cont2)\n    this.contenu += mathalea2d({ xmin: -7, ymin: -4.5, xmax: 7, ymax: 4.5, pixelsParCm: 30 }, r, gr)\n    this.contenuCorrection += `${numAlpha(0)} The image of $${x0}$ is $${a}$, we note $f(${x0})=${a}$.`\n    setReponse(this, 0, a)\n\n    this.contenuCorrection += `<br>${numAlpha(1)} The image of $${x0 + 5}$ is $${(b + c) / 2}$, we note $f(${x0 + 5})=${(b + c) / 2}$.`\n    setReponse(this, 1, (b + c) / 2)\n    if (ordre === 1) {\n      this.contenuCorrection += `<br>${numAlpha(2)} $${b}$ has the unique antecedent $${x0 + 4}$, we note $f(${x0 + 4})=${b}$.`\n      setReponse(this, 2, x0 + 4)\n      this.contenuCorrection += `<br>${numAlpha(3)} $${c}$ has two antecedents $${x0 + 2}$ and $${x0 + 6}$, we note $f(${x0 + 2})=f(${x0 + 6})=${c}$.`\n      setReponse(this, 3, [`${x0 + 2};${x0 + 6}`, `${x0 + 6};${x0 + 2}`])\n    } else {\n      this.contenuCorrection += `<br>${numAlpha(2)} $${c}$ has two antecedents $${x0 + 2}$ and $${x0 + 6}$, we note $f(${x0 + 2})=f(${x0 + 6})=${c}$.`\n      setReponse(this, 2, [`${x0 + 2};${x0 + 6}`, `${x0 + 6};${x0 + 2}`])\n      this.contenuCorrection += `<br>${numAlpha(3)} $${b}$ has the unique antecedent $${x0 + 4}$, we note $f(${x0 + 4})=${b}$.`\n      setReponse(this, 3, x0 + 4)\n    }\n    if (this.interactif && context.isHtml) {\n      this.contenu += `<br><button class=\"ui button checkReponses\" type=\"submit\" style=\"margin-bottom: 20px\" id=\"btnValidationEx${this.numeroExercice}-${this.id}\">Check Responses</button>`\n    }\n    if (!context.isHtml) {\n      this.contenu = texConsigne('') + this.contenu.replace(/<br><br>/g, '\\n\\n\\\\medskip\\n').replace(/<br>/g, '\\\\\\\\\\n')\n      this.contenuCorrection = this.contenuCorrection.replace(/<br><br>/g, '\\n\\n\\\\medskip\\n').replace(/<br>/g, '\\\\\\\\\\n')\n    } else {\n      this.contenuCorrection = `<div style=\"line-height: ${this.spacingCorr};\">\\n${this.contenuCorrection}\\n</div>`\n    }\n    this.listeQuestions[0] = this.contenu\n    this.listeCorrections[0] = this.contenuCorrection\n  }\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","uuid","ref","AntecedentEtImageGraphique","Exercice","context","r","repere","a","randint","b","c","x0","gr","graphiqueInterpole","choice","mathalea2d","cont1","numAlpha","ajouteChampTexteMathLive","enonceAMC","ordre","cont2","deuxColonnes","setReponse","texConsigne"],"mappings":"wLAYY,MAACA,EAAQ,0CACRC,EAAkB,GAClBC,EAAiB,WACjBC,EAAW,GACXC,EAAU,aAOVC,EAAO,QACPC,EAAM,SACJ,SAASC,GAA8B,CACpDC,EAAS,KAAK,IAAI,EAClB,KAAK,MAAQR,EACb,KAAK,YAAc,EACnB,KAAK,sBAAwB,GAC7B,KAAK,OAAS,EACd,KAAK,WAAa,EACdS,EAAQ,SACV,KAAK,YAAc,GAGrB,KAAK,gBAAkB,UAAY,CACjC,MAAMC,EAAIC,EAAO,CACf,KAAM,GACN,KAAM,EACN,KAAM,GACN,KAAM,CACZ,CAAK,EACD,IAAIC,EAAIC,EAAQ,EAAG,CAAC,EAChBC,EAAIF,EAAI,EACRG,EAAIH,EAAI,EACRI,EAAKH,EAAQ,GAAI,EAAE,EACvB,KAAQG,IAAOJ,GAAOI,EAAK,IAAMF,GAAOE,EAAK,IAAMD,GACjDH,EAAIC,EAAQ,EAAG,CAAC,EAChBC,EAAIF,EAAI,EACRG,EAAIH,EAAI,EACRI,EAAKH,EAAQ,GAAI,EAAE,EAErB,IAAII,EAAKC,EAAmB,CAAC,CAACL,EAAQ,GAAI,EAAE,EAAGD,EAAI,CAAC,EAAG,CAACI,EAAIJ,CAAC,EAAG,CAACI,EAAK,EAAGF,CAAC,EAAG,CAACE,EAAK,EAAGD,CAAC,EAAG,CAACF,EAAQ,EAAG,EAAE,EAAGE,EAAI,CAAC,CAAC,EAE/G,CAAE,OAAQL,EAAG,MAAO,OAAQ,KAAM,IAAM,UAAW,EAAG,EAEpDS,EAAO,CAAC,GAAO,EAAI,CAAC,IACtBP,GAAK,GACLE,GAAK,GACLC,GAAK,GACLE,EAAKC,EAAmB,CAAC,CAACL,EAAQ,GAAI,EAAE,EAAGD,EAAI,CAAC,EAAG,CAACI,EAAIJ,CAAC,EAAG,CAACI,EAAK,EAAGF,CAAC,EAAG,CAACE,EAAK,EAAGD,CAAC,EAAG,CAACF,EAAQ,EAAG,EAAE,EAAGE,EAAI,CAAC,CAAC,EAE3G,CAAE,OAAQL,EAAG,MAAO,OAAQ,KAAM,IAAM,UAAW,EAAG,GAE1D,KAAK,QAAU,qEACXD,EAAQ,QACV,KAAK,eAAe,CAAC,EAAI,CACvB,OAAQ,KAAK,QAAU,OAASW,EAAW,CACzC,KAAM,GACN,KAAM,KACN,KAAM,EACN,KAAM,IACN,YAAa,EACvB,EAAWV,EAAGO,CAAE,EACR,YAAa,GACb,mBAAoB,GACpB,aAAc,GACd,QAAS,CAAE,UAAW,GAAM,gBAAiB,GAAM,mBAAoB,EAAM,EAC7E,aAAc,CAAE,CACjB,GAGCR,EAAQ,QAAU,KAAK,aACzB,KAAK,SAAW,sFAElB,KAAK,SAAW,WAChB,IAAIY,EAAQ,GAAGC,EAAS,CAAC,CAAC,0BAA0BN,CAAE,KACtDK,GAASE,EAAyB,KAAM,CAAC,EACrCd,EAAQ,OACV,KAAK,eAAe,CAAC,EAAE,aAAa,KAClC,CACE,KAAM,SACN,aAAc,CACZ,CACE,MAAO,GACP,QAAS,CACP,MAAOY,EACP,OAAQT,EACR,WAAY,SACZ,MAAO,CACL,OAAQ,EACR,SAAU,EACV,MAAO,GACP,OAAQ,CACT,CACF,CACF,CACF,CACF,CACF,EAEH,MAAMY,EAAY,GAAGF,EAAS,CAAC,CAAC,0BAA0BN,EAAK,CAAC,KAChEK,GAAS,OAASG,EAClBH,GAASE,EAAyB,KAAM,CAAC,EACrCd,EAAQ,OACV,KAAK,eAAe,CAAC,EAAE,aAAa,KAClC,CACE,KAAM,SACN,aAAc,CACZ,CACE,MAAO,GACP,QAAS,CACP,MAAOe,EACP,QAASV,EAAIC,GAAK,EAClB,WAAY,SACZ,MAAO,CACL,OAAQ,EACR,SAAU,EACV,MAAO,GACP,OAAQ,CACT,CACF,CACF,CACF,CACF,CACF,EAEH,MAAMU,EAAQZ,EAAQ,EAAG,CAAC,EAC1B,IAAIa,EACAD,IAAU,GACZC,EAAQ,GAAGJ,EAAS,CAAC,CAAC,oCAAoCR,CAAC,KAC3DY,GAASH,EAAyB,KAAM,CAAC,EACzCG,GAAS,OAAOJ,EAAS,CAAC,CAAC,oCAAoCP,CAAC,KAChEW,GAASH,EAAyB,KAAM,CAAC,IAEzCG,EAAQ,GAAGJ,EAAS,CAAC,CAAC,oCAAoCP,CAAC,KAC3DW,GAASH,EAAyB,KAAM,CAAC,EACzCG,GAAS,OAAOJ,EAAS,CAAC,CAAC,oCAAoCR,CAAC,KAChEY,GAASH,EAAyB,KAAM,CAAC,GAEvCd,EAAQ,QACV,KAAK,eAAe,CAAC,EAAE,aAAa,KAClC,CACE,KAAM,SACN,aAAc,CACZ,CACE,MAAO,GACP,QAAS,CACP,MAAO,GAAGa,EAAS,CAAC,CAAC,gCAAgCR,CAAC,KACtD,OAAQE,EAAK,EACb,WAAY,SACZ,MAAO,CACL,OAAQ,EACR,SAAU,EACV,MAAO,GACP,OAAQ,CACT,CACF,CACF,CACF,CACF,CACF,EACD,KAAK,eAAe,CAAC,EAAE,aAAa,KAClC,CACE,KAAM,SACN,aAAc,CACZ,CACE,MAAO,GACP,QAAS,CACP,MAAO,GAAGM,EAAS,CAAC,CAAC,gCAAgCP,CAAC,KACtD,OAAQC,EAAK,EACb,WAAY,SACZ,MAAO,CACL,aAAcA,EAAK,EACnB,OAAQ,EACR,SAAU,EACV,MAAO,GACP,OAAQ,CACT,CACF,CACF,CACF,CACF,CACF,GAGH,KAAK,SAAWW,EAAaN,EAAOK,CAAK,EACzC,KAAK,SAAWN,EAAW,CAAE,KAAM,GAAI,KAAM,KAAM,KAAM,EAAG,KAAM,IAAK,YAAa,EAAI,EAAEV,EAAGO,CAAE,EAC/F,KAAK,mBAAqB,GAAGK,EAAS,CAAC,CAAC,kBAAkBN,CAAE,SAASJ,CAAC,iBAAiBI,CAAE,KAAKJ,CAAC,KAC/FgB,EAAW,KAAM,EAAGhB,CAAC,EAErB,KAAK,mBAAqB,OAAOU,EAAS,CAAC,CAAC,kBAAkBN,EAAK,CAAC,UAAUF,EAAIC,GAAK,CAAC,iBAAiBC,EAAK,CAAC,MAAMF,EAAIC,GAAK,CAAC,KAC/Ha,EAAW,KAAM,GAAId,EAAIC,GAAK,CAAC,EAC3BU,IAAU,GACZ,KAAK,mBAAqB,OAAOH,EAAS,CAAC,CAAC,KAAKR,CAAC,gCAAgCE,EAAK,CAAC,iBAAiBA,EAAK,CAAC,KAAKF,CAAC,KACrHc,EAAW,KAAM,EAAGZ,EAAK,CAAC,EAC1B,KAAK,mBAAqB,OAAOM,EAAS,CAAC,CAAC,KAAKP,CAAC,0BAA0BC,EAAK,CAAC,UAAUA,EAAK,CAAC,iBAAiBA,EAAK,CAAC,OAAOA,EAAK,CAAC,KAAKD,CAAC,KAC5Ia,EAAW,KAAM,EAAG,CAAC,GAAGZ,EAAK,CAAC,IAAIA,EAAK,CAAC,GAAI,GAAGA,EAAK,CAAC,IAAIA,EAAK,CAAC,EAAE,CAAC,IAElE,KAAK,mBAAqB,OAAOM,EAAS,CAAC,CAAC,KAAKP,CAAC,0BAA0BC,EAAK,CAAC,UAAUA,EAAK,CAAC,iBAAiBA,EAAK,CAAC,OAAOA,EAAK,CAAC,KAAKD,CAAC,KAC5Ia,EAAW,KAAM,EAAG,CAAC,GAAGZ,EAAK,CAAC,IAAIA,EAAK,CAAC,GAAI,GAAGA,EAAK,CAAC,IAAIA,EAAK,CAAC,EAAE,CAAC,EAClE,KAAK,mBAAqB,OAAOM,EAAS,CAAC,CAAC,KAAKR,CAAC,gCAAgCE,EAAK,CAAC,iBAAiBA,EAAK,CAAC,KAAKF,CAAC,KACrHc,EAAW,KAAM,EAAGZ,EAAK,CAAC,GAExB,KAAK,YAAcP,EAAQ,SAC7B,KAAK,SAAW,4GAA4G,KAAK,cAAc,IAAI,KAAK,EAAE,8BAEvJA,EAAQ,OAIX,KAAK,kBAAoB,4BAA4B,KAAK,WAAW;AAAA,EAAQ,KAAK,iBAAiB;AAAA,SAHnG,KAAK,QAAUoB,EAAY,EAAE,EAAI,KAAK,QAAQ,QAAQ,YAAa;AAAA;AAAA;AAAA,CAAiB,EAAE,QAAQ,QAAS;AAAA,CAAQ,EAC/G,KAAK,kBAAoB,KAAK,kBAAkB,QAAQ,YAAa;AAAA;AAAA;AAAA,CAAiB,EAAE,QAAQ,QAAS;AAAA,CAAQ,GAInH,KAAK,eAAe,CAAC,EAAI,KAAK,QAC9B,KAAK,iBAAiB,CAAC,EAAI,KAAK,iBACjC,CACH"}