math-exercises 3.0.150 → 3.0.152

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/lib/exercises/exercise.d.ts +5 -0
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/primeNumbersAffirmations.js +1 -1
  4. package/lib/exercises/math/calcul/fractions/fractionToPercentToDecimal.d.ts +5 -1
  5. package/lib/exercises/math/calcul/fractions/fractionToPercentToDecimal.d.ts.map +1 -1
  6. package/lib/exercises/math/calcul/fractions/fractionToPercentToDecimal.js +92 -38
  7. package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +5 -1
  9. package/lib/exercises/math/calcul/proportionality/isTableProportional.d.ts.map +1 -1
  10. package/lib/exercises/math/calcul/proportionality/isTableProportional.js +7 -1
  11. package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
  12. package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +5 -1
  13. package/lib/exercises/math/calcul/proportionality/proportionalityTable.d.ts.map +1 -1
  14. package/lib/exercises/math/calcul/proportionality/proportionalityTable.js +5 -1
  15. package/lib/exercises/math/calcul/proportionality/proportionalityTableCoefficient.d.ts.map +1 -1
  16. package/lib/exercises/math/calcul/proportionality/proportionalityTableCoefficient.js +8 -2
  17. package/lib/exercises/math/calculLitteral/equation/equa1.d.ts +4 -1
  18. package/lib/exercises/math/calculLitteral/equation/equa1.d.ts.map +1 -1
  19. package/lib/exercises/math/calculLitteral/equation/equa1.js +27 -7
  20. package/lib/exercises/math/calculLitteral/equation/equa2.d.ts +1 -0
  21. package/lib/exercises/math/calculLitteral/equation/equa2.d.ts.map +1 -1
  22. package/lib/exercises/math/calculLitteral/equation/equa2.js +18 -1
  23. package/lib/exercises/math/calculLitteral/equation/equa3.d.ts +4 -1
  24. package/lib/exercises/math/calculLitteral/equation/equa3.d.ts.map +1 -1
  25. package/lib/exercises/math/calculLitteral/equation/equa3.js +26 -6
  26. package/lib/exercises/math/calculLitteral/equation/equa4.d.ts +4 -1
  27. package/lib/exercises/math/calculLitteral/equation/equa4.d.ts.map +1 -1
  28. package/lib/exercises/math/calculLitteral/equation/equa4.js +27 -7
  29. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa1.d.ts +14 -0
  30. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa1.d.ts.map +1 -0
  31. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa1.js +129 -0
  32. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa2.d.ts +18 -0
  33. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa2.d.ts.map +1 -0
  34. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa2.js +167 -0
  35. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa3.d.ts +15 -0
  36. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa3.d.ts.map +1 -0
  37. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa3.js +129 -0
  38. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa4.d.ts +16 -0
  39. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa4.d.ts.map +1 -0
  40. package/lib/exercises/math/calculLitteral/equation/firstDegree/equa4.js +124 -0
  41. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType1.d.ts +9 -0
  42. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType1.d.ts.map +1 -0
  43. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType1.js +107 -0
  44. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType2.d.ts +10 -0
  45. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType2.d.ts.map +1 -0
  46. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType2.js +108 -0
  47. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType3.d.ts +11 -0
  48. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType3.d.ts.map +1 -0
  49. package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType3.js +104 -0
  50. package/lib/exercises/math/calculLitteral/equation/firstDegree/index.d.ts +8 -0
  51. package/lib/exercises/math/calculLitteral/equation/firstDegree/index.d.ts.map +1 -0
  52. package/lib/exercises/math/calculLitteral/equation/firstDegree/index.js +7 -0
  53. package/lib/exercises/math/calculLitteral/equation/index.d.ts +1 -7
  54. package/lib/exercises/math/calculLitteral/equation/index.d.ts.map +1 -1
  55. package/lib/exercises/math/calculLitteral/equation/index.js +1 -7
  56. package/lib/exercises/math/dataRepresentations/histogram/etendueHistogram.d.ts +8 -0
  57. package/lib/exercises/math/dataRepresentations/histogram/etendueHistogram.d.ts.map +1 -0
  58. package/lib/exercises/math/dataRepresentations/histogram/etendueHistogram.js +175 -0
  59. package/lib/exercises/math/dataRepresentations/histogram/histogramCommenting.d.ts +9 -0
  60. package/lib/exercises/math/dataRepresentations/histogram/histogramCommenting.d.ts.map +1 -0
  61. package/lib/exercises/math/dataRepresentations/histogram/histogramCommenting.js +250 -0
  62. package/lib/exercises/math/dataRepresentations/histogram/histogramFillDataTableFromHistogramData.d.ts +9 -0
  63. package/lib/exercises/math/dataRepresentations/histogram/histogramFillDataTableFromHistogramData.d.ts.map +1 -0
  64. package/lib/exercises/math/dataRepresentations/histogram/histogramFillDataTableFromHistogramData.js +173 -0
  65. package/lib/exercises/math/dataRepresentations/histogram/histogramIsSameData.d.ts +14 -0
  66. package/lib/exercises/math/dataRepresentations/histogram/histogramIsSameData.d.ts.map +1 -0
  67. package/lib/exercises/math/dataRepresentations/histogram/histogramIsSameData.js +239 -0
  68. package/lib/exercises/math/dataRepresentations/histogram/histogramReading.d.ts +9 -0
  69. package/lib/exercises/math/dataRepresentations/histogram/histogramReading.d.ts.map +1 -0
  70. package/lib/exercises/math/dataRepresentations/histogram/histogramReading.js +163 -0
  71. package/lib/exercises/math/dataRepresentations/histogram/index.d.ts +6 -0
  72. package/lib/exercises/math/dataRepresentations/histogram/index.d.ts.map +1 -0
  73. package/lib/exercises/math/dataRepresentations/histogram/index.js +5 -0
  74. package/lib/exercises/math/dataRepresentations/index.d.ts +1 -1
  75. package/lib/exercises/math/dataRepresentations/index.d.ts.map +1 -1
  76. package/lib/exercises/math/dataRepresentations/index.js +1 -1
  77. package/lib/exercises/math/dataRepresentations/tableReading.d.ts.map +1 -1
  78. package/lib/exercises/math/dataRepresentations/tableReading.js +7 -0
  79. package/lib/exercises/math/functions/affines/affineAdjustment.d.ts.map +1 -1
  80. package/lib/exercises/math/functions/affines/affineAdjustment.js +7 -1
  81. package/lib/exercises/math/functions/affines/affineAdjustmentComplete.d.ts.map +1 -1
  82. package/lib/exercises/math/functions/affines/affineAdjustmentComplete.js +7 -1
  83. package/lib/exercises/math/functions/affines/affineAdjustmentRsquared.d.ts.map +1 -1
  84. package/lib/exercises/math/functions/affines/affineAdjustmentRsquared.js +7 -1
  85. package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.d.ts +4 -1
  86. package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.d.ts.map +1 -1
  87. package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.js +19 -4
  88. package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts +1 -0
  89. package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts.map +1 -1
  90. package/lib/exercises/math/functions/affines/leadingCoefficient.js +13 -1
  91. package/lib/exercises/math/functions/affines/recognizeAffineGraph.d.ts +4 -1
  92. package/lib/exercises/math/functions/affines/recognizeAffineGraph.d.ts.map +1 -1
  93. package/lib/exercises/math/functions/affines/recognizeAffineGraph.js +19 -4
  94. package/lib/exercises/math/functions/basics/inverseImageFunctionTable.d.ts.map +1 -1
  95. package/lib/exercises/math/functions/basics/inverseImageFunctionTable.js +7 -1
  96. package/lib/exercises/math/functions/basics/placePointsFromValueTable.d.ts.map +1 -1
  97. package/lib/exercises/math/functions/basics/placePointsFromValueTable.js +7 -0
  98. package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.d.ts +4 -1
  99. package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.d.ts.map +1 -1
  100. package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.js +18 -3
  101. package/lib/exercises/math/geometry/triangles/index.d.ts +1 -0
  102. package/lib/exercises/math/geometry/triangles/index.d.ts.map +1 -1
  103. package/lib/exercises/math/geometry/triangles/index.js +1 -0
  104. package/lib/exercises/math/geometry/triangles/similar/index.d.ts +4 -0
  105. package/lib/exercises/math/geometry/triangles/similar/index.d.ts.map +1 -0
  106. package/lib/exercises/math/geometry/triangles/similar/index.js +3 -0
  107. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.d.ts +10 -0
  108. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.d.ts.map +1 -0
  109. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.js +122 -0
  110. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWrtSideLengths.d.ts +15 -0
  111. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWrtSideLengths.d.ts.map +1 -0
  112. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWrtSideLengths.js +351 -0
  113. package/lib/exercises/math/geometry/triangles/similar/placeSegmentsOfSimilarTriangle.d.ts +11 -0
  114. package/lib/exercises/math/geometry/triangles/similar/placeSegmentsOfSimilarTriangle.d.ts.map +1 -0
  115. package/lib/exercises/math/geometry/triangles/similar/placeSegmentsOfSimilarTriangle.js +311 -0
  116. package/lib/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.d.ts +10 -0
  117. package/lib/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.d.ts.map +1 -0
  118. package/lib/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.js +135 -0
  119. package/lib/exercises/math/probaStat/basicProbas/findEffectifFromProba.d.ts +9 -0
  120. package/lib/exercises/math/probaStat/basicProbas/findEffectifFromProba.d.ts.map +1 -0
  121. package/lib/exercises/math/probaStat/basicProbas/findEffectifFromProba.js +109 -0
  122. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.d.ts.map +1 -1
  123. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.js +7 -0
  124. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValueMiddleSchool.d.ts +9 -0
  125. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValueMiddleSchool.d.ts.map +1 -0
  126. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValueMiddleSchool.js +120 -0
  127. package/lib/exercises/math/probaStat/basicProbas/index.d.ts +4 -0
  128. package/lib/exercises/math/probaStat/basicProbas/index.d.ts.map +1 -1
  129. package/lib/exercises/math/probaStat/basicProbas/index.js +4 -0
  130. package/lib/exercises/math/probaStat/basicProbas/pickEquiprobableTo.d.ts +12 -0
  131. package/lib/exercises/math/probaStat/basicProbas/pickEquiprobableTo.d.ts.map +1 -0
  132. package/lib/exercises/math/probaStat/basicProbas/pickEquiprobableTo.js +374 -0
  133. package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts.map +1 -1
  134. package/lib/exercises/math/probaStat/probaFromTableNoContext.js +7 -0
  135. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  136. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +7 -0
  137. package/lib/exercises/math/probaStat/stats1var/averageWithTable.d.ts.map +1 -1
  138. package/lib/exercises/math/probaStat/stats1var/averageWithTable.js +7 -1
  139. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.d.ts.map +1 -1
  140. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.js +7 -0
  141. package/lib/exercises/math/probaStat/stats1var/cumulativeSum.d.ts.map +1 -1
  142. package/lib/exercises/math/probaStat/stats1var/cumulativeSum.js +7 -0
  143. package/lib/exercises/math/probaStat/stats1var/etendueTable.d.ts.map +1 -1
  144. package/lib/exercises/math/probaStat/stats1var/etendueTable.js +7 -1
  145. package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.d.ts.map +1 -1
  146. package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.js +7 -0
  147. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts.map +1 -1
  148. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.js +5 -1
  149. package/lib/exercises/math/probaStat/stats1var/marginalAndConditionalFrequency.d.ts.map +1 -1
  150. package/lib/exercises/math/probaStat/stats1var/marginalAndConditionalFrequency.js +7 -0
  151. package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts +2 -0
  152. package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts.map +1 -1
  153. package/lib/exercises/math/probaStat/stats1var/medianWithList.js +67 -14
  154. package/lib/exercises/math/probaStat/stats1var/medianWithTable.d.ts.map +1 -1
  155. package/lib/exercises/math/probaStat/stats1var/medianWithTable.js +7 -1
  156. package/lib/exercises/math/probaStat/stats1var/quartiles.d.ts.map +1 -1
  157. package/lib/exercises/math/probaStat/stats1var/quartiles.js +7 -1
  158. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts.map +1 -1
  159. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.js +5 -1
  160. package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts.map +1 -1
  161. package/lib/exercises/math/probaStat/stats1var/varianceTable.js +5 -1
  162. package/lib/exercises/math/probaStat/stats2var/averagePoint.d.ts.map +1 -1
  163. package/lib/exercises/math/probaStat/stats2var/averagePoint.js +7 -1
  164. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts +7 -0
  165. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts.map +1 -0
  166. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.js +171 -0
  167. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts +7 -0
  168. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts.map +1 -0
  169. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.js +155 -0
  170. package/lib/exercises/math/probaStat/twoStepExperiments/index.d.ts +3 -0
  171. package/lib/exercises/math/probaStat/twoStepExperiments/index.d.ts.map +1 -1
  172. package/lib/exercises/math/probaStat/twoStepExperiments/index.js +3 -0
  173. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts +7 -0
  174. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts.map +1 -0
  175. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.js +189 -0
  176. package/lib/exercises/math/spaceGeometry/index.d.ts +1 -0
  177. package/lib/exercises/math/spaceGeometry/index.d.ts.map +1 -1
  178. package/lib/exercises/math/spaceGeometry/index.js +1 -0
  179. package/lib/exercises/math/spaceGeometry/sections/areaOfConeSection.d.ts +14 -0
  180. package/lib/exercises/math/spaceGeometry/sections/areaOfConeSection.d.ts.map +1 -0
  181. package/lib/exercises/math/spaceGeometry/sections/areaOfConeSection.js +439 -0
  182. package/lib/exercises/math/spaceGeometry/sections/areaOfCylinderSection.d.ts +14 -0
  183. package/lib/exercises/math/spaceGeometry/sections/areaOfCylinderSection.d.ts.map +1 -0
  184. package/lib/exercises/math/spaceGeometry/sections/areaOfCylinderSection.js +548 -0
  185. package/lib/exercises/math/spaceGeometry/sections/areaOfRectangularPrismSection.d.ts +11 -0
  186. package/lib/exercises/math/spaceGeometry/sections/areaOfRectangularPrismSection.d.ts.map +1 -0
  187. package/lib/exercises/math/spaceGeometry/sections/areaOfRectangularPrismSection.js +360 -0
  188. package/lib/exercises/math/spaceGeometry/sections/areaOfSphereSection.d.ts +9 -0
  189. package/lib/exercises/math/spaceGeometry/sections/areaOfSphereSection.d.ts.map +1 -0
  190. package/lib/exercises/math/spaceGeometry/sections/areaOfSphereSection.js +272 -0
  191. package/lib/exercises/math/spaceGeometry/sections/index.d.ts +9 -0
  192. package/lib/exercises/math/spaceGeometry/sections/index.d.ts.map +1 -0
  193. package/lib/exercises/math/spaceGeometry/sections/index.js +8 -0
  194. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCone.d.ts +11 -0
  195. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCone.d.ts.map +1 -0
  196. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCone.js +266 -0
  197. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCylinder.d.ts +11 -0
  198. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCylinder.d.ts.map +1 -0
  199. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCylinder.js +236 -0
  200. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfRectangularPrism.d.ts +7 -0
  201. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfRectangularPrism.d.ts.map +1 -0
  202. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfRectangularPrism.js +92 -0
  203. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfSphereOrBall.d.ts +9 -0
  204. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfSphereOrBall.d.ts.map +1 -0
  205. package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfSphereOrBall.js +236 -0
  206. package/lib/exercises/pc/mathExosInPC.d.ts +4 -4
  207. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  208. package/lib/exercises/pc/mathExosInPC.js +4 -4
  209. package/lib/index.d.ts +173 -45
  210. package/lib/index.d.ts.map +1 -1
  211. package/lib/math/geometry/spacePoint.d.ts +10 -0
  212. package/lib/math/geometry/spacePoint.d.ts.map +1 -1
  213. package/lib/math/geometry/spacePoint.js +13 -0
  214. package/lib/tree/nodes/operators/substractNode.d.ts +1 -0
  215. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  216. package/lib/tree/nodes/operators/substractNode.js +6 -0
  217. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ xValues: number[];
5
+ yValues: NodeIdentifiers[];
6
+ atLeastXIndex: number;
7
+ };
8
+ export declare const calculateProbaFromProbaLaw: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=calculateProbaFromProbaLaw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateProbaFromProbaLaw.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAoIF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAmB5D,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
4
+ import { randfloat } from "../../../../math/utils/random/randfloat.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { round } from "../../../../math/utils/round.js";
7
+ import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
8
+ import { AddNode } from "../../../../tree/nodes/operators/addNode.js";
9
+ import { operatorComposition } from "../../../../tree/utilities/operatorComposition.js";
10
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
11
+ import { mdTable } from "../../../../utils/markdown/mdTable.js";
12
+ const getAnswer = (identifiers) => {
13
+ const { yValues, atLeastXIndex } = identifiers;
14
+ return operatorComposition(AddNode, yValues.slice(atLeastXIndex).map((e) => reifyAlgebraic(e)))
15
+ .simplify()
16
+ .toTex();
17
+ };
18
+ const getPropositions = (n, { answer, xValues, yValues }) => {
19
+ const propositions = [];
20
+ addValidProp(propositions, answer);
21
+ for (let i = 1; i < xValues.length; i++) {
22
+ tryToAddWrongProp(propositions, getAnswer({
23
+ xValues,
24
+ yValues,
25
+ atLeastXIndex: i,
26
+ }));
27
+ }
28
+ return shuffleProps(propositions, n);
29
+ };
30
+ const getInstruction = (identifiers) => {
31
+ const { xValues, yValues, atLeastXIndex } = identifiers;
32
+ const ys = yValues.map((n) => reifyAlgebraic(n).toTex());
33
+ const x = xValues[atLeastXIndex];
34
+ return `Lors d'un jeu de grattage, on observe le gain obtenu. À chaque gain est associé la probabilité suivante :
35
+
36
+ ${mdTable([
37
+ ["Gain (en €)", ...xValues.map((x) => `$${x.frenchify()}$`)],
38
+ ["Probabilité", ...ys.map((y) => `$${y}$`)],
39
+ ])}
40
+
41
+ Quelle est la probabilité de gagner au moins $${x}€$ ?
42
+ `;
43
+ };
44
+ const getHint = (identifiers) => {
45
+ const { xValues, atLeastXIndex } = identifiers;
46
+ const x = xValues[atLeastXIndex];
47
+ return `Pour gagner au moins $${x}€$, on peut gagner ${xValues
48
+ .slice(atLeastXIndex)
49
+ .map((x) => `soit $${x.frenchify()}€$`)
50
+ .join(", ")}.
51
+
52
+ Il suffit alors d'additionner les probabilités correspondantes.`;
53
+ };
54
+ const getCorrection = (identifiers) => {
55
+ const { xValues, yValues, atLeastXIndex } = identifiers;
56
+ const x = xValues[atLeastXIndex];
57
+ const answer = getAnswer(identifiers);
58
+ return `On additionne les probabilités des gains supérieurs ou égaux à $${x}€$ :
59
+
60
+ $$
61
+ ${operatorComposition(AddNode, yValues.slice(atLeastXIndex).map((y) => reifyAlgebraic(y))).toTex()} = ${answer}
62
+ $$
63
+
64
+ `;
65
+ };
66
+ const getKeys = () => {
67
+ return [];
68
+ };
69
+ const isAnswerValid = (ans, { answer }) => {
70
+ try {
71
+ return numberVEA(ans, answer);
72
+ }
73
+ catch (err) {
74
+ return handleVEAError(err);
75
+ }
76
+ };
77
+ const getCalculateProbaFromProbaLawQuestion = () => {
78
+ const xValues = [
79
+ 0,
80
+ randint(1, 5),
81
+ randint(5, 10),
82
+ 5 * randint(10, 20),
83
+ 100 * randint(1, 10),
84
+ ];
85
+ const probas = [
86
+ randfloat(0.1, 0.3, 2),
87
+ randfloat(0.02, 0.04, 3),
88
+ randfloat(0.01, 0.02, 3),
89
+ randfloat(0.001, 0.009, 3),
90
+ ];
91
+ const left = round(1 - probas.reduce((acc, curr) => acc + curr, 0), 4);
92
+ probas.unshift(left);
93
+ const identifiers = {
94
+ xValues,
95
+ yValues: probas.map((e) => e.toTree().toIdentifiers()),
96
+ atLeastXIndex: randint(1, 4),
97
+ };
98
+ return getQuestionFromIdentifiers(identifiers);
99
+ };
100
+ const getQuestionFromIdentifiers = (identifiers) => {
101
+ return {
102
+ answer: getAnswer(identifiers),
103
+ instruction: getInstruction(identifiers),
104
+ keys: getKeys(identifiers),
105
+ answerFormat: "tex",
106
+ identifiers,
107
+ hint: getHint(identifiers),
108
+ correction: getCorrection(identifiers),
109
+ style: {
110
+ tableOptions: {
111
+ firstColumnIsHeader: true,
112
+ firstCellIsDivided: false,
113
+ firstRowIsHeader: false,
114
+ },
115
+ },
116
+ };
117
+ };
118
+ export const calculateProbaFromProbaLaw = {
119
+ id: "calculateProbaFromProbaLaw",
120
+ connector: "=",
121
+ label: "Calculer la probabilité de gagner au moins $x$ euros dans un jeu de grattage",
122
+ isSingleStep: true,
123
+ generator: (nb, opts) => getDistinctQuestions(() => getCalculateProbaFromProbaLawQuestion(opts), nb),
124
+ qcmTimer: 60,
125
+ freeTimer: 60,
126
+ getPropositions,
127
+ isAnswerValid,
128
+ subject: "Mathématiques",
129
+ getInstruction,
130
+ getHint,
131
+ getCorrection,
132
+ getAnswer,
133
+ getQuestionFromIdentifiers,
134
+ hasHintAndCorrection: true,
135
+ };
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ proba: NodeIdentifiers;
5
+ knownEffectif: number;
6
+ };
7
+ export declare const findEffectifFromProba: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=findEffectifFromProba.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findEffectifFromProba.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/findEffectifFromProba.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,eAAe,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAoGF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { addValidProp, shuffleProps, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
4
+ import { RationalConstructor } from "../../../../math/numbers/rationals/rational.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
7
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
8
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
9
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
10
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
11
+ const getPropositions = (n, { answer }) => {
12
+ const propositions = [];
13
+ addValidProp(propositions, answer);
14
+ propWhile(propositions, n, () => {
15
+ tryToAddWrongProp(propositions, Math.max(0, Number(answer) + randint(-5, 10, [0])).frenchify());
16
+ });
17
+ return shuffleProps(propositions, n);
18
+ };
19
+ const getAnswer = (identifiers) => {
20
+ const { knownEffectif, proba } = identifiers;
21
+ const probaNode = reifyAlgebraic(proba);
22
+ return substract(frac(knownEffectif, probaNode), knownEffectif)
23
+ .simplify()
24
+ .toTex();
25
+ };
26
+ const getInstruction = (identifiers) => {
27
+ const { knownEffectif, proba } = identifiers;
28
+ return `Dans un sac, il y a $${knownEffectif}$ jetons jaunes, et un nombre inconnu de jetons rouges. On tire un jeton au hasard dans le sac et on note sa couleur. Après plusieurs essais, on estime que la probabilité d'obtenir un jeton jaune est de $${reifyAlgebraic(proba).toTex()}$.
29
+
30
+ Combien il y a t il de jetons rouges dans le sac ?`;
31
+ };
32
+ const getHint = () => {
33
+ return `Cherche d'abord le nombre total de jetons dans le sac. Pour cela, utilise le fait que la probabilité d'obtenir un jeton jaune est égale au nombre de jetons jaunes divisé par le nombre total de jetons.`;
34
+ };
35
+ const getCorrection = (identifiers) => {
36
+ const { knownEffectif, proba } = identifiers;
37
+ const probaNode = reifyAlgebraic(proba);
38
+ const N = frac(knownEffectif, probaNode).simplify();
39
+ return `On détermine le nombre total de jetons dans le sac. On sait que la probabilité d'obtenir un jeton jaune est égale au nombre de jetons jaunes divisé par le nombre total de jetons.
40
+
41
+ Si on note $N$ le nombre total de jetons, on a donc :
42
+
43
+ $$
44
+ ${frac(knownEffectif, "N").toTex()} = ${probaNode.toTex()}.
45
+ $$
46
+
47
+ d'où :
48
+
49
+ $$
50
+ N = ${frac(knownEffectif, probaNode).toSimplificationTex()}
51
+ $$
52
+
53
+ Puisqu'il y a $${knownEffectif}$ jetons jaunes dans le sac, il y a donc :
54
+
55
+ $$
56
+ ${substract(N, knownEffectif).toSimplificationTex()}
57
+ $$
58
+
59
+ jetons rouges.`;
60
+ };
61
+ const getKeys = () => {
62
+ return [];
63
+ };
64
+ const isAnswerValid = (ans, { answer }) => {
65
+ try {
66
+ return numberVEA(ans, answer);
67
+ }
68
+ catch (err) {
69
+ return handleVEAError(err);
70
+ }
71
+ };
72
+ const getFindEffectifFromProbaQuestion = () => {
73
+ const proba = RationalConstructor.randomIrreductibleProba().toTree();
74
+ const knownEffectif = multiply(proba, proba.rightChild.evaluate() * randint(2, 11)).simplify();
75
+ const identifiers = {
76
+ knownEffectif: knownEffectif.evaluate(),
77
+ proba: proba.toIdentifiers(),
78
+ };
79
+ return getQuestionFromIdentifiers(identifiers);
80
+ };
81
+ const getQuestionFromIdentifiers = (identifiers) => {
82
+ return {
83
+ answer: getAnswer(identifiers),
84
+ instruction: getInstruction(identifiers),
85
+ keys: getKeys(identifiers),
86
+ answerFormat: "tex",
87
+ identifiers,
88
+ hint: getHint(identifiers),
89
+ correction: getCorrection(identifiers),
90
+ };
91
+ };
92
+ export const findEffectifFromProba = {
93
+ id: "findEffectifFromProba",
94
+ connector: "=",
95
+ label: "Utiliser une probabilité pour retrouver un effectif",
96
+ isSingleStep: true,
97
+ generator: (nb, opts) => getDistinctQuestions(() => getFindEffectifFromProbaQuestion(opts), nb),
98
+ qcmTimer: 60,
99
+ freeTimer: 60,
100
+ getPropositions,
101
+ isAnswerValid,
102
+ subject: "Mathématiques",
103
+ getInstruction,
104
+ getHint,
105
+ getCorrection,
106
+ getAnswer,
107
+ getQuestionFromIdentifiers,
108
+ hasHintAndCorrection: true,
109
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"getMissingProbabilityValue.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAiHF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAiB5D,CAAC"}
1
+ {"version":3,"file":"getMissingProbabilityValue.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAwHF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAiB5D,CAAC"}
@@ -89,6 +89,13 @@ const getQuestionFromIdentifiers = (identifiers) => ({
89
89
  identifiers,
90
90
  hint: getHint(identifiers),
91
91
  correction: getCorrection(identifiers),
92
+ style: {
93
+ tableOptions: {
94
+ firstColumnIsHeader: true,
95
+ firstCellIsDivided: false,
96
+ firstRowIsHeader: false,
97
+ },
98
+ },
92
99
  });
93
100
  export const getMissingProbabilityValue = {
94
101
  id: "getMissingProbabilityValue",
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ labels: string[];
4
+ pValues: number[];
5
+ missingIndex: number;
6
+ };
7
+ export declare const getMissingProbabilityValueMiddleSchool: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=getMissingProbabilityValueMiddleSchool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMissingProbabilityValueMiddleSchool.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/getMissingProbabilityValueMiddleSchool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AA4HF,eAAO,MAAM,sCAAsC,EAAE,QAAQ,CAAC,WAAW,CAoBxE,CAAC"}
@@ -0,0 +1,120 @@
1
+ import { addValidProp, tryToAddWrongProp, shuffleProps, propWhile, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
4
+ import { randfloat } from "../../../../math/utils/random/randfloat.js";
5
+ import { round } from "../../../../math/utils/round.js";
6
+ import { dollarize } from "../../../../utils/latex/dollarize.js";
7
+ import { mdTable } from "../../../../utils/markdown/mdTable.js";
8
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
9
+ const getPropositions = (n, { answer }) => {
10
+ const props = [];
11
+ addValidProp(props, answer);
12
+ propWhile(props, n, () => {
13
+ const numeric = answer.unfrenchify();
14
+ const offset = randfloat(-0.2, 0.2, 2);
15
+ const candidate = round(numeric + offset, 2).frenchify();
16
+ tryToAddWrongProp(props, candidate);
17
+ });
18
+ return shuffleProps(props, n);
19
+ };
20
+ const getAnswer = ({ pValues, missingIndex }) => {
21
+ return pValues[missingIndex].frenchify();
22
+ };
23
+ const getInstruction = ({ labels, pValues, missingIndex, }) => {
24
+ return `Un sac contient des jetons. Chaque jeton est rouge ou vert ou bleu. On tire un jeton au hasard et on regarde sa couleur.
25
+
26
+ On a les informations suivantes :
27
+
28
+ ${mdTable([
29
+ ["Issue", ...labels.map((l) => dollarize(l))],
30
+ [
31
+ "Probabilité",
32
+ ...pValues.map((p, i) => i === missingIndex ? "..." : dollarize(p.frenchify())),
33
+ ],
34
+ ])}
35
+
36
+ Quelle est la probabilité manquante ?`;
37
+ };
38
+ const getHint = () => {
39
+ return `La somme des probabilités des issues élémentaires est égale à $1$.`;
40
+ };
41
+ const getCorrection = ({ labels, pValues, missingIndex, }) => {
42
+ const knownTerms = labels
43
+ .map((_l, i) => (i === missingIndex ? null : pValues[i].frenchify()))
44
+ .filter(Boolean)
45
+ .join("+");
46
+ const sumKnown = round(pValues.filter((_, i) => i !== missingIndex).reduce((s, v) => s + v, 0), 2);
47
+ const missing = round(1 - sumKnown, 2);
48
+ return `
49
+ On additionne les probabilités connues :
50
+
51
+ $$
52
+ ${knownTerms} = ${sumKnown.frenchify()}
53
+ $$
54
+
55
+ Puisque la somme des probabilités des issues élémentaires vaut $1$, on peut en déduire la probabilité manquante :
56
+
57
+
58
+ $$
59
+ P(${labels[missingIndex]}) = 1 - ${sumKnown.frenchify()} = ${missing.frenchify()}
60
+ $$
61
+ `;
62
+ };
63
+ const getKeys = () => {
64
+ return [];
65
+ };
66
+ const isAnswerValid = (ans, { answer }) => {
67
+ try {
68
+ const a = parseAlgebraic(ans);
69
+ const b = parseAlgebraic(answer);
70
+ return a.simplify().equals(b.simplify());
71
+ }
72
+ catch (err) {
73
+ return handleVEAError(err);
74
+ }
75
+ };
76
+ const getMissingProbabilityValueMiddleSchoolQuestion = () => {
77
+ const labels = ["rouge", "vert", "bleu"];
78
+ const raw = labels.map(() => Math.random());
79
+ const total = raw.reduce((s, v) => s + v, 0);
80
+ const pValues = raw.map((v) => round(v / total, 2));
81
+ // ajustement pour que la somme fasse exactement 1
82
+ const sumRounded = pValues.reduce((s, v) => s + v, 0);
83
+ const diff = round(1 - sumRounded, 2);
84
+ pValues[pValues.length - 1] = round(pValues[pValues.length - 1] + diff, 2);
85
+ const missingIndex = Math.floor(Math.random() * labels.length);
86
+ return getQuestionFromIdentifiers({ labels, pValues, missingIndex });
87
+ };
88
+ const getQuestionFromIdentifiers = (identifiers) => ({
89
+ answer: getAnswer(identifiers),
90
+ instruction: getInstruction(identifiers),
91
+ keys: getKeys(identifiers),
92
+ answerFormat: "tex",
93
+ identifiers,
94
+ hint: getHint(identifiers),
95
+ correction: getCorrection(identifiers),
96
+ style: {
97
+ tableOptions: {
98
+ firstColumnIsHeader: true,
99
+ firstCellIsDivided: false,
100
+ firstRowIsHeader: false,
101
+ },
102
+ },
103
+ });
104
+ export const getMissingProbabilityValueMiddleSchool = {
105
+ id: "getMissingProbabilityValueMiddleSchool",
106
+ label: "Déterminer la probabilité manquante",
107
+ isSingleStep: true,
108
+ generator: (nb, opts) => getDistinctQuestions(() => getMissingProbabilityValueMiddleSchoolQuestion(opts), nb),
109
+ qcmTimer: 60,
110
+ freeTimer: 60,
111
+ getPropositions,
112
+ isAnswerValid,
113
+ subject: "Mathématiques",
114
+ getInstruction,
115
+ getHint,
116
+ getCorrection,
117
+ getAnswer,
118
+ getQuestionFromIdentifiers,
119
+ hasHintAndCorrection: true,
120
+ };
@@ -7,4 +7,8 @@ export * from "./mostLeastProbable.js";
7
7
  export * from "./rouletteProbas.js";
8
8
  export * from "./possibleValuesForProba.js";
9
9
  export * from "./rangeBasicProbas.js";
10
+ export * from "./pickEquiprobableTo.js";
11
+ export * from "./getMissingProbabilityValueMiddleSchool.js";
12
+ export * from "./findEffectifFromProba.js";
13
+ export * from "./calculateProbaFromProbaLaw.js";
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC"}
@@ -7,3 +7,7 @@ export * from "./mostLeastProbable.js";
7
7
  export * from "./rouletteProbas.js";
8
8
  export * from "./possibleValuesForProba.js";
9
9
  export * from "./rangeBasicProbas.js";
10
+ export * from "./pickEquiprobableTo.js";
11
+ export * from "./getMissingProbabilityValueMiddleSchool.js";
12
+ export * from "./findEffectifFromProba.js";
13
+ export * from "./calculateProbaFromProbaLaw.js";
@@ -0,0 +1,12 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type WheelItem = {
3
+ value: number;
4
+ indexColor: number;
5
+ };
6
+ type Identifiers = {
7
+ arrItem: WheelItem[];
8
+ typeAsked: string;
9
+ };
10
+ export declare const pickEquiprobableTo: Exercise<Identifiers>;
11
+ export {};
12
+ //# sourceMappingURL=pickEquiprobableTo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickEquiprobableTo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/pickEquiprobableTo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAqKrC,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAgIF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA2NF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAmBpD,CAAC"}