@mui/x-charts-vendor 7.12.0

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 (312) hide show
  1. package/README.md +76 -0
  2. package/d3-color.d.ts +5 -0
  3. package/d3-color.js +7 -0
  4. package/d3-delaunay.d.ts +5 -0
  5. package/d3-delaunay.js +7 -0
  6. package/d3-interpolate.d.ts +5 -0
  7. package/d3-interpolate.js +7 -0
  8. package/d3-scale.d.ts +5 -0
  9. package/d3-scale.js +7 -0
  10. package/d3-shape.d.ts +5 -0
  11. package/d3-shape.js +7 -0
  12. package/d3-time.d.ts +5 -0
  13. package/d3-time.js +7 -0
  14. package/es/d3-array.js +6 -0
  15. package/es/d3-color.js +6 -0
  16. package/es/d3-delaunay.js +6 -0
  17. package/es/d3-format.js +6 -0
  18. package/es/d3-interpolate.js +6 -0
  19. package/es/d3-path.js +6 -0
  20. package/es/d3-scale.js +6 -0
  21. package/es/d3-shape.js +6 -0
  22. package/es/d3-time-format.js +6 -0
  23. package/es/d3-time.js +6 -0
  24. package/es/delaunator.js +6 -0
  25. package/es/internmap.js +6 -0
  26. package/es/robust-predicates.js +6 -0
  27. package/lib/d3-array.js +6 -0
  28. package/lib/d3-color.js +6 -0
  29. package/lib/d3-delaunay.js +6 -0
  30. package/lib/d3-format.js +6 -0
  31. package/lib/d3-interpolate.js +6 -0
  32. package/lib/d3-path.js +6 -0
  33. package/lib/d3-scale.js +6 -0
  34. package/lib/d3-shape.js +6 -0
  35. package/lib/d3-time-format.js +6 -0
  36. package/lib/d3-time.js +6 -0
  37. package/lib/delaunator.js +6 -0
  38. package/lib/internmap.js +6 -0
  39. package/lib/robust-predicates.js +6 -0
  40. package/lib-vendor/d3-array/LICENSE +13 -0
  41. package/lib-vendor/d3-array/dist/d3-array.js +1349 -0
  42. package/lib-vendor/d3-array/dist/d3-array.min.js +777 -0
  43. package/lib-vendor/d3-array/src/array.js +9 -0
  44. package/lib-vendor/d3-array/src/ascending.js +9 -0
  45. package/lib-vendor/d3-array/src/bin.js +126 -0
  46. package/lib-vendor/d3-array/src/bisect.js +15 -0
  47. package/lib-vendor/d3-array/src/bisector.js +59 -0
  48. package/lib-vendor/d3-array/src/blur.js +122 -0
  49. package/lib-vendor/d3-array/src/constant.js +9 -0
  50. package/lib-vendor/d3-array/src/count.js +24 -0
  51. package/lib-vendor/d3-array/src/cross.js +35 -0
  52. package/lib-vendor/d3-array/src/cumsum.js +11 -0
  53. package/lib-vendor/d3-array/src/descending.js +9 -0
  54. package/lib-vendor/d3-array/src/deviation.js +12 -0
  55. package/lib-vendor/d3-array/src/difference.js +16 -0
  56. package/lib-vendor/d3-array/src/disjoint.js +24 -0
  57. package/lib-vendor/d3-array/src/every.js +16 -0
  58. package/lib-vendor/d3-array/src/extent.js +35 -0
  59. package/lib-vendor/d3-array/src/filter.js +17 -0
  60. package/lib-vendor/d3-array/src/fsum.js +77 -0
  61. package/lib-vendor/d3-array/src/greatest.js +31 -0
  62. package/lib-vendor/d3-array/src/greatestIndex.js +23 -0
  63. package/lib-vendor/d3-array/src/group.js +67 -0
  64. package/lib-vendor/d3-array/src/groupSort.js +15 -0
  65. package/lib-vendor/d3-array/src/identity.js +9 -0
  66. package/lib-vendor/d3-array/src/index.js +539 -0
  67. package/lib-vendor/d3-array/src/intersection.js +23 -0
  68. package/lib-vendor/d3-array/src/least.js +31 -0
  69. package/lib-vendor/d3-array/src/leastIndex.js +23 -0
  70. package/lib-vendor/d3-array/src/map.js +11 -0
  71. package/lib-vendor/d3-array/src/max.js +24 -0
  72. package/lib-vendor/d3-array/src/maxIndex.js +26 -0
  73. package/lib-vendor/d3-array/src/mean.js +25 -0
  74. package/lib-vendor/d3-array/src/median.js +16 -0
  75. package/lib-vendor/d3-array/src/merge.js +14 -0
  76. package/lib-vendor/d3-array/src/min.js +24 -0
  77. package/lib-vendor/d3-array/src/minIndex.js +26 -0
  78. package/lib-vendor/d3-array/src/mode.js +33 -0
  79. package/lib-vendor/d3-array/src/nice.js +23 -0
  80. package/lib-vendor/d3-array/src/number.js +26 -0
  81. package/lib-vendor/d3-array/src/pairs.js +21 -0
  82. package/lib-vendor/d3-array/src/permute.js +9 -0
  83. package/lib-vendor/d3-array/src/quantile.js +55 -0
  84. package/lib-vendor/d3-array/src/quickselect.js +47 -0
  85. package/lib-vendor/d3-array/src/range.js +16 -0
  86. package/lib-vendor/d3-array/src/rank.js +30 -0
  87. package/lib-vendor/d3-array/src/reduce.js +28 -0
  88. package/lib-vendor/d3-array/src/reverse.js +10 -0
  89. package/lib-vendor/d3-array/src/scan.js +12 -0
  90. package/lib-vendor/d3-array/src/shuffle.js +20 -0
  91. package/lib-vendor/d3-array/src/some.js +16 -0
  92. package/lib-vendor/d3-array/src/sort.js +45 -0
  93. package/lib-vendor/d3-array/src/subset.js +11 -0
  94. package/lib-vendor/d3-array/src/sum.js +24 -0
  95. package/lib-vendor/d3-array/src/superset.js +28 -0
  96. package/lib-vendor/d3-array/src/threshold/freedmanDiaconis.js +14 -0
  97. package/lib-vendor/d3-array/src/threshold/scott.js +14 -0
  98. package/lib-vendor/d3-array/src/threshold/sturges.js +11 -0
  99. package/lib-vendor/d3-array/src/ticks.js +60 -0
  100. package/lib-vendor/d3-array/src/transpose.js +20 -0
  101. package/lib-vendor/d3-array/src/union.js +16 -0
  102. package/lib-vendor/d3-array/src/variance.js +31 -0
  103. package/lib-vendor/d3-array/src/zip.js +11 -0
  104. package/lib-vendor/d3-color/LICENSE +13 -0
  105. package/lib-vendor/d3-color/dist/d3-color.js +532 -0
  106. package/lib-vendor/d3-color/dist/d3-color.min.js +446 -0
  107. package/lib-vendor/d3-color/src/color.js +366 -0
  108. package/lib-vendor/d3-color/src/cubehelix.js +61 -0
  109. package/lib-vendor/d3-color/src/define.js +16 -0
  110. package/lib-vendor/d3-color/src/index.js +59 -0
  111. package/lib-vendor/d3-color/src/lab.js +117 -0
  112. package/lib-vendor/d3-color/src/math.js +8 -0
  113. package/lib-vendor/d3-delaunay/LICENSE +14 -0
  114. package/lib-vendor/d3-delaunay/dist/d3-delaunay.js +1398 -0
  115. package/lib-vendor/d3-delaunay/dist/d3-delaunay.min.js +853 -0
  116. package/lib-vendor/d3-delaunay/src/delaunay.js +282 -0
  117. package/lib-vendor/d3-delaunay/src/index.js +20 -0
  118. package/lib-vendor/d3-delaunay/src/path.js +43 -0
  119. package/lib-vendor/d3-delaunay/src/polygon.js +24 -0
  120. package/lib-vendor/d3-delaunay/src/voronoi.js +390 -0
  121. package/lib-vendor/d3-format/LICENSE +13 -0
  122. package/lib-vendor/d3-format/dist/d3-format.js +313 -0
  123. package/lib-vendor/d3-format/dist/d3-format.min.js +193 -0
  124. package/lib-vendor/d3-format/src/defaultLocale.js +23 -0
  125. package/lib-vendor/d3-format/src/exponent.js +10 -0
  126. package/lib-vendor/d3-format/src/formatDecimal.js +23 -0
  127. package/lib-vendor/d3-format/src/formatGroup.js +22 -0
  128. package/lib-vendor/d3-format/src/formatNumerals.js +13 -0
  129. package/lib-vendor/d3-format/src/formatPrefixAuto.js +18 -0
  130. package/lib-vendor/d3-format/src/formatRounded.js +14 -0
  131. package/lib-vendor/d3-format/src/formatSpecifier.js +42 -0
  132. package/lib-vendor/d3-format/src/formatTrim.js +25 -0
  133. package/lib-vendor/d3-format/src/formatTypes.js +25 -0
  134. package/lib-vendor/d3-format/src/identity.js +9 -0
  135. package/lib-vendor/d3-format/src/index.js +68 -0
  136. package/lib-vendor/d3-format/src/locale.js +152 -0
  137. package/lib-vendor/d3-format/src/precisionFixed.js +11 -0
  138. package/lib-vendor/d3-format/src/precisionPrefix.js +11 -0
  139. package/lib-vendor/d3-format/src/precisionRound.js +12 -0
  140. package/lib-vendor/d3-interpolate/LICENSE +13 -0
  141. package/lib-vendor/d3-interpolate/dist/d3-interpolate.js +543 -0
  142. package/lib-vendor/d3-interpolate/dist/d3-interpolate.min.js +362 -0
  143. package/lib-vendor/d3-interpolate/src/array.js +28 -0
  144. package/lib-vendor/d3-interpolate/src/basis.js +23 -0
  145. package/lib-vendor/d3-interpolate/src/basisClosed.js +18 -0
  146. package/lib-vendor/d3-interpolate/src/color.js +33 -0
  147. package/lib-vendor/d3-interpolate/src/constant.js +8 -0
  148. package/lib-vendor/d3-interpolate/src/cubehelix.js +32 -0
  149. package/lib-vendor/d3-interpolate/src/date.js +12 -0
  150. package/lib-vendor/d3-interpolate/src/discrete.js +12 -0
  151. package/lib-vendor/d3-interpolate/src/hcl.js +27 -0
  152. package/lib-vendor/d3-interpolate/src/hsl.js +27 -0
  153. package/lib-vendor/d3-interpolate/src/hue.js +14 -0
  154. package/lib-vendor/d3-interpolate/src/index.js +191 -0
  155. package/lib-vendor/d3-interpolate/src/lab.js +22 -0
  156. package/lib-vendor/d3-interpolate/src/number.js +11 -0
  157. package/lib-vendor/d3-interpolate/src/numberArray.js +20 -0
  158. package/lib-vendor/d3-interpolate/src/object.js +26 -0
  159. package/lib-vendor/d3-interpolate/src/piecewise.js +20 -0
  160. package/lib-vendor/d3-interpolate/src/quantize.js +11 -0
  161. package/lib-vendor/d3-interpolate/src/rgb.js +59 -0
  162. package/lib-vendor/d3-interpolate/src/round.js +11 -0
  163. package/lib-vendor/d3-interpolate/src/string.js +75 -0
  164. package/lib-vendor/d3-interpolate/src/transform/decompose.js +31 -0
  165. package/lib-vendor/d3-interpolate/src/transform/index.js +83 -0
  166. package/lib-vendor/d3-interpolate/src/transform/parse.js +25 -0
  167. package/lib-vendor/d3-interpolate/src/value.js +23 -0
  168. package/lib-vendor/d3-interpolate/src/zoom.js +66 -0
  169. package/lib-vendor/d3-path/LICENSE +13 -0
  170. package/lib-vendor/d3-path/dist/d3-path.js +161 -0
  171. package/lib-vendor/d3-path/dist/d3-path.min.js +92 -0
  172. package/lib-vendor/d3-path/src/index.js +24 -0
  173. package/lib-vendor/d3-path/src/path.js +158 -0
  174. package/lib-vendor/d3-scale/LICENSE +13 -0
  175. package/lib-vendor/d3-scale/dist/d3-scale.js +944 -0
  176. package/lib-vendor/d3-scale/dist/d3-scale.min.js +690 -0
  177. package/lib-vendor/d3-scale/src/band.js +87 -0
  178. package/lib-vendor/d3-scale/src/colors.js +11 -0
  179. package/lib-vendor/d3-scale/src/constant.js +11 -0
  180. package/lib-vendor/d3-scale/src/continuous.js +116 -0
  181. package/lib-vendor/d3-scale/src/diverging.js +91 -0
  182. package/lib-vendor/d3-scale/src/identity.js +27 -0
  183. package/lib-vendor/d3-scale/src/index.js +193 -0
  184. package/lib-vendor/d3-scale/src/init.js +38 -0
  185. package/lib-vendor/d3-scale/src/linear.js +67 -0
  186. package/lib-vendor/d3-scale/src/log.js +123 -0
  187. package/lib-vendor/d3-scale/src/nice.js +21 -0
  188. package/lib-vendor/d3-scale/src/number.js +9 -0
  189. package/lib-vendor/d3-scale/src/ordinal.js +44 -0
  190. package/lib-vendor/d3-scale/src/pow.js +44 -0
  191. package/lib-vendor/d3-scale/src/quantile.js +48 -0
  192. package/lib-vendor/d3-scale/src/quantize.js +46 -0
  193. package/lib-vendor/d3-scale/src/radial.js +53 -0
  194. package/lib-vendor/d3-scale/src/sequential.js +90 -0
  195. package/lib-vendor/d3-scale/src/sequentialQuantile.js +38 -0
  196. package/lib-vendor/d3-scale/src/symlog.js +35 -0
  197. package/lib-vendor/d3-scale/src/threshold.js +34 -0
  198. package/lib-vendor/d3-scale/src/tickFormat.js +37 -0
  199. package/lib-vendor/d3-scale/src/time.js +62 -0
  200. package/lib-vendor/d3-scale/src/utcTime.js +13 -0
  201. package/lib-vendor/d3-shape/LICENSE +13 -0
  202. package/lib-vendor/d3-shape/dist/d3-shape.js +2004 -0
  203. package/lib-vendor/d3-shape/dist/d3-shape.min.js +1389 -0
  204. package/lib-vendor/d3-shape/src/arc.js +250 -0
  205. package/lib-vendor/d3-shape/src/area.js +98 -0
  206. package/lib-vendor/d3-shape/src/areaRadial.js +42 -0
  207. package/lib-vendor/d3-shape/src/array.js +12 -0
  208. package/lib-vendor/d3-shape/src/constant.js +11 -0
  209. package/lib-vendor/d3-shape/src/curve/basis.js +62 -0
  210. package/lib-vendor/d3-shape/src/curve/basisClosed.js +70 -0
  211. package/lib-vendor/d3-shape/src/curve/basisOpen.js +54 -0
  212. package/lib-vendor/d3-shape/src/curve/bump.js +81 -0
  213. package/lib-vendor/d3-shape/src/curve/bundle.js +50 -0
  214. package/lib-vendor/d3-shape/src/curve/cardinal.js +69 -0
  215. package/lib-vendor/d3-shape/src/curve/cardinalClosed.js +76 -0
  216. package/lib-vendor/d3-shape/src/curve/cardinalOpen.js +60 -0
  217. package/lib-vendor/d3-shape/src/curve/catmullRom.js +92 -0
  218. package/lib-vendor/d3-shape/src/curve/catmullRomClosed.js +83 -0
  219. package/lib-vendor/d3-shape/src/curve/catmullRomOpen.js +67 -0
  220. package/lib-vendor/d3-shape/src/curve/linear.js +42 -0
  221. package/lib-vendor/d3-shape/src/curve/linearClosed.js +28 -0
  222. package/lib-vendor/d3-shape/src/curve/monotone.js +121 -0
  223. package/lib-vendor/d3-shape/src/curve/natural.js +67 -0
  224. package/lib-vendor/d3-shape/src/curve/radial.js +37 -0
  225. package/lib-vendor/d3-shape/src/curve/step.js +63 -0
  226. package/lib-vendor/d3-shape/src/descending.js +9 -0
  227. package/lib-vendor/d3-shape/src/identity.js +9 -0
  228. package/lib-vendor/d3-shape/src/index.js +436 -0
  229. package/lib-vendor/d3-shape/src/line.js +52 -0
  230. package/lib-vendor/d3-shape/src/lineRadial.js +24 -0
  231. package/lib-vendor/d3-shape/src/link.js +70 -0
  232. package/lib-vendor/d3-shape/src/math.js +26 -0
  233. package/lib-vendor/d3-shape/src/noop.js +7 -0
  234. package/lib-vendor/d3-shape/src/offset/diverging.js +20 -0
  235. package/lib-vendor/d3-shape/src/offset/expand.js +16 -0
  236. package/lib-vendor/d3-shape/src/offset/none.js +15 -0
  237. package/lib-vendor/d3-shape/src/offset/silhouette.js +16 -0
  238. package/lib-vendor/d3-shape/src/offset/wiggle.js +30 -0
  239. package/lib-vendor/d3-shape/src/order/appearance.js +23 -0
  240. package/lib-vendor/d3-shape/src/order/ascending.js +23 -0
  241. package/lib-vendor/d3-shape/src/order/descending.js +11 -0
  242. package/lib-vendor/d3-shape/src/order/insideOut.js +31 -0
  243. package/lib-vendor/d3-shape/src/order/none.js +12 -0
  244. package/lib-vendor/d3-shape/src/order/reverse.js +11 -0
  245. package/lib-vendor/d3-shape/src/path.js +22 -0
  246. package/lib-vendor/d3-shape/src/pie.js +79 -0
  247. package/lib-vendor/d3-shape/src/point.js +13 -0
  248. package/lib-vendor/d3-shape/src/pointRadial.js +9 -0
  249. package/lib-vendor/d3-shape/src/stack.js +55 -0
  250. package/lib-vendor/d3-shape/src/symbol/asterisk.js +21 -0
  251. package/lib-vendor/d3-shape/src/symbol/circle.js +14 -0
  252. package/lib-vendor/d3-shape/src/symbol/cross.js +25 -0
  253. package/lib-vendor/d3-shape/src/symbol/diamond.js +20 -0
  254. package/lib-vendor/d3-shape/src/symbol/diamond2.js +17 -0
  255. package/lib-vendor/d3-shape/src/symbol/plus.js +16 -0
  256. package/lib-vendor/d3-shape/src/symbol/square.js +14 -0
  257. package/lib-vendor/d3-shape/src/symbol/square2.js +17 -0
  258. package/lib-vendor/d3-shape/src/symbol/star.js +28 -0
  259. package/lib-vendor/d3-shape/src/symbol/times.js +16 -0
  260. package/lib-vendor/d3-shape/src/symbol/triangle.js +17 -0
  261. package/lib-vendor/d3-shape/src/symbol/triangle2.js +19 -0
  262. package/lib-vendor/d3-shape/src/symbol/wye.js +32 -0
  263. package/lib-vendor/d3-shape/src/symbol.js +50 -0
  264. package/lib-vendor/d3-time/LICENSE +13 -0
  265. package/lib-vendor/d3-time/dist/d3-time.js +367 -0
  266. package/lib-vendor/d3-time/dist/d3-time.min.js +190 -0
  267. package/lib-vendor/d3-time/src/day.js +30 -0
  268. package/lib-vendor/d3-time/src/duration.js +13 -0
  269. package/lib-vendor/d3-time/src/hour.js +28 -0
  270. package/lib-vendor/d3-time/src/index.js +417 -0
  271. package/lib-vendor/d3-time/src/interval.js +61 -0
  272. package/lib-vendor/d3-time/src/millisecond.js +29 -0
  273. package/lib-vendor/d3-time/src/minute.js +28 -0
  274. package/lib-vendor/d3-time/src/month.js +29 -0
  275. package/lib-vendor/d3-time/src/second.js +18 -0
  276. package/lib-vendor/d3-time/src/ticks.js +41 -0
  277. package/lib-vendor/d3-time/src/week.js +56 -0
  278. package/lib-vendor/d3-time/src/year.js +51 -0
  279. package/lib-vendor/d3-time-format/LICENSE +13 -0
  280. package/lib-vendor/d3-time-format/dist/d3-time-format.js +648 -0
  281. package/lib-vendor/d3-time-format/dist/d3-time-format.min.js +528 -0
  282. package/lib-vendor/d3-time-format/src/defaultLocale.js +32 -0
  283. package/lib-vendor/d3-time-format/src/index.js +60 -0
  284. package/lib-vendor/d3-time-format/src/isoFormat.js +13 -0
  285. package/lib-vendor/d3-time-format/src/isoParse.js +14 -0
  286. package/lib-vendor/d3-time-format/src/locale.js +606 -0
  287. package/lib-vendor/delaunator/LICENSE +15 -0
  288. package/lib-vendor/delaunator/delaunator.js +688 -0
  289. package/lib-vendor/delaunator/delaunator.min.js +316 -0
  290. package/lib-vendor/delaunator/index.js +440 -0
  291. package/lib-vendor/internmap/LICENSE +13 -0
  292. package/lib-vendor/internmap/dist/internmap.js +93 -0
  293. package/lib-vendor/internmap/dist/internmap.min.js +81 -0
  294. package/lib-vendor/internmap/src/index.js +87 -0
  295. package/lib-vendor/robust-predicates/LICENSE +24 -0
  296. package/lib-vendor/robust-predicates/esm/incircle.js +667 -0
  297. package/lib-vendor/robust-predicates/esm/insphere.js +693 -0
  298. package/lib-vendor/robust-predicates/esm/orient2d.js +174 -0
  299. package/lib-vendor/robust-predicates/esm/orient3d.js +422 -0
  300. package/lib-vendor/robust-predicates/esm/util.js +147 -0
  301. package/lib-vendor/robust-predicates/index.js +57 -0
  302. package/lib-vendor/robust-predicates/umd/incircle.js +798 -0
  303. package/lib-vendor/robust-predicates/umd/incircle.min.js +170 -0
  304. package/lib-vendor/robust-predicates/umd/insphere.js +828 -0
  305. package/lib-vendor/robust-predicates/umd/insphere.min.js +223 -0
  306. package/lib-vendor/robust-predicates/umd/orient2d.js +260 -0
  307. package/lib-vendor/robust-predicates/umd/orient2d.min.js +69 -0
  308. package/lib-vendor/robust-predicates/umd/orient3d.js +550 -0
  309. package/lib-vendor/robust-predicates/umd/orient3d.min.js +133 -0
  310. package/lib-vendor/robust-predicates/umd/predicates.js +2073 -0
  311. package/lib-vendor/robust-predicates/umd/predicates.min.js +468 -0
  312. package/package.json +63 -0
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.slice = exports.map = void 0;
7
+ var array = Array.prototype;
8
+ var slice = exports.slice = array.slice;
9
+ var map = exports.map = array.map;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ascending;
7
+ function ascending(a, b) {
8
+ return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
9
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = bin;
8
+ var _array = require("./array.js");
9
+ var _bisect = _interopRequireDefault(require("./bisect.js"));
10
+ var _constant = _interopRequireDefault(require("./constant.js"));
11
+ var _extent = _interopRequireDefault(require("./extent.js"));
12
+ var _identity = _interopRequireDefault(require("./identity.js"));
13
+ var _nice = _interopRequireDefault(require("./nice.js"));
14
+ var _ticks = _interopRequireWildcard(require("./ticks.js"));
15
+ var _sturges = _interopRequireDefault(require("./threshold/sturges.js"));
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ function bin() {
19
+ var value = _identity.default,
20
+ domain = _extent.default,
21
+ threshold = _sturges.default;
22
+ function histogram(data) {
23
+ if (!Array.isArray(data)) data = Array.from(data);
24
+ var i,
25
+ n = data.length,
26
+ x,
27
+ step,
28
+ values = new Array(n);
29
+ for (i = 0; i < n; ++i) {
30
+ values[i] = value(data[i], i, data);
31
+ }
32
+ var xz = domain(values),
33
+ x0 = xz[0],
34
+ x1 = xz[1],
35
+ tz = threshold(values, x0, x1);
36
+
37
+ // Convert number of thresholds into uniform thresholds, and nice the
38
+ // default domain accordingly.
39
+ if (!Array.isArray(tz)) {
40
+ const max = x1,
41
+ tn = +tz;
42
+ if (domain === _extent.default) [x0, x1] = (0, _nice.default)(x0, x1, tn);
43
+ tz = (0, _ticks.default)(x0, x1, tn);
44
+
45
+ // If the domain is aligned with the first tick (which it will by
46
+ // default), then we can use quantization rather than bisection to bin
47
+ // values, which is substantially faster.
48
+ if (tz[0] <= x0) step = (0, _ticks.tickIncrement)(x0, x1, tn);
49
+
50
+ // If the last threshold is coincident with the domain’s upper bound, the
51
+ // last bin will be zero-width. If the default domain is used, and this
52
+ // last threshold is coincident with the maximum input value, we can
53
+ // extend the niced upper bound by one tick to ensure uniform bin widths;
54
+ // otherwise, we simply remove the last threshold. Note that we don’t
55
+ // coerce values or the domain to numbers, and thus must be careful to
56
+ // compare order (>=) rather than strict equality (===)!
57
+ if (tz[tz.length - 1] >= x1) {
58
+ if (max >= x1 && domain === _extent.default) {
59
+ const step = (0, _ticks.tickIncrement)(x0, x1, tn);
60
+ if (isFinite(step)) {
61
+ if (step > 0) {
62
+ x1 = (Math.floor(x1 / step) + 1) * step;
63
+ } else if (step < 0) {
64
+ x1 = (Math.ceil(x1 * -step) + 1) / -step;
65
+ }
66
+ }
67
+ } else {
68
+ tz.pop();
69
+ }
70
+ }
71
+ }
72
+
73
+ // Remove any thresholds outside the domain.
74
+ // Be careful not to mutate an array owned by the user!
75
+ var m = tz.length,
76
+ a = 0,
77
+ b = m;
78
+ while (tz[a] <= x0) ++a;
79
+ while (tz[b - 1] > x1) --b;
80
+ if (a || b < m) tz = tz.slice(a, b), m = b - a;
81
+ var bins = new Array(m + 1),
82
+ bin;
83
+
84
+ // Initialize bins.
85
+ for (i = 0; i <= m; ++i) {
86
+ bin = bins[i] = [];
87
+ bin.x0 = i > 0 ? tz[i - 1] : x0;
88
+ bin.x1 = i < m ? tz[i] : x1;
89
+ }
90
+
91
+ // Assign data to bins by value, ignoring any outside the domain.
92
+ if (isFinite(step)) {
93
+ if (step > 0) {
94
+ for (i = 0; i < n; ++i) {
95
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
96
+ bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
97
+ }
98
+ }
99
+ } else if (step < 0) {
100
+ for (i = 0; i < n; ++i) {
101
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
102
+ const j = Math.floor((x0 - x) * step);
103
+ bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
104
+ }
105
+ }
106
+ }
107
+ } else {
108
+ for (i = 0; i < n; ++i) {
109
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
110
+ bins[(0, _bisect.default)(tz, x, 0, m)].push(data[i]);
111
+ }
112
+ }
113
+ }
114
+ return bins;
115
+ }
116
+ histogram.value = function (_) {
117
+ return arguments.length ? (value = typeof _ === "function" ? _ : (0, _constant.default)(_), histogram) : value;
118
+ };
119
+ histogram.domain = function (_) {
120
+ return arguments.length ? (domain = typeof _ === "function" ? _ : (0, _constant.default)([_[0], _[1]]), histogram) : domain;
121
+ };
122
+ histogram.thresholds = function (_) {
123
+ return arguments.length ? (threshold = typeof _ === "function" ? _ : (0, _constant.default)(Array.isArray(_) ? _array.slice.call(_) : _), histogram) : threshold;
124
+ };
125
+ return histogram;
126
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.bisectRight = exports.bisectLeft = exports.bisectCenter = void 0;
8
+ var _ascending = _interopRequireDefault(require("./ascending.js"));
9
+ var _bisector = _interopRequireDefault(require("./bisector.js"));
10
+ var _number = _interopRequireDefault(require("./number.js"));
11
+ const ascendingBisect = (0, _bisector.default)(_ascending.default);
12
+ const bisectRight = exports.bisectRight = ascendingBisect.right;
13
+ const bisectLeft = exports.bisectLeft = ascendingBisect.left;
14
+ const bisectCenter = exports.bisectCenter = (0, _bisector.default)(_number.default).center;
15
+ var _default = exports.default = bisectRight;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = bisector;
8
+ var _ascending = _interopRequireDefault(require("./ascending.js"));
9
+ var _descending = _interopRequireDefault(require("./descending.js"));
10
+ function bisector(f) {
11
+ let compare1, compare2, delta;
12
+
13
+ // If an accessor is specified, promote it to a comparator. In this case we
14
+ // can test whether the search value is (self-) comparable. We can’t do this
15
+ // for a comparator (except for specific, known comparators) because we can’t
16
+ // tell if the comparator is symmetric, and an asymmetric comparator can’t be
17
+ // used to test whether a single value is comparable.
18
+ if (f.length !== 2) {
19
+ compare1 = _ascending.default;
20
+ compare2 = (d, x) => (0, _ascending.default)(f(d), x);
21
+ delta = (d, x) => f(d) - x;
22
+ } else {
23
+ compare1 = f === _ascending.default || f === _descending.default ? f : zero;
24
+ compare2 = f;
25
+ delta = f;
26
+ }
27
+ function left(a, x, lo = 0, hi = a.length) {
28
+ if (lo < hi) {
29
+ if (compare1(x, x) !== 0) return hi;
30
+ do {
31
+ const mid = lo + hi >>> 1;
32
+ if (compare2(a[mid], x) < 0) lo = mid + 1;else hi = mid;
33
+ } while (lo < hi);
34
+ }
35
+ return lo;
36
+ }
37
+ function right(a, x, lo = 0, hi = a.length) {
38
+ if (lo < hi) {
39
+ if (compare1(x, x) !== 0) return hi;
40
+ do {
41
+ const mid = lo + hi >>> 1;
42
+ if (compare2(a[mid], x) <= 0) lo = mid + 1;else hi = mid;
43
+ } while (lo < hi);
44
+ }
45
+ return lo;
46
+ }
47
+ function center(a, x, lo = 0, hi = a.length) {
48
+ const i = left(a, x, lo, hi - 1);
49
+ return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
50
+ }
51
+ return {
52
+ left,
53
+ center,
54
+ right
55
+ };
56
+ }
57
+ function zero() {
58
+ return 0;
59
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.blur = blur;
7
+ exports.blurImage = exports.blur2 = void 0;
8
+ function blur(values, r) {
9
+ if (!((r = +r) >= 0)) throw new RangeError("invalid r");
10
+ let length = values.length;
11
+ if (!((length = Math.floor(length)) >= 0)) throw new RangeError("invalid length");
12
+ if (!length || !r) return values;
13
+ const blur = blurf(r);
14
+ const temp = values.slice();
15
+ blur(values, temp, 0, length, 1);
16
+ blur(temp, values, 0, length, 1);
17
+ blur(values, temp, 0, length, 1);
18
+ return values;
19
+ }
20
+ const blur2 = exports.blur2 = Blur2(blurf);
21
+ const blurImage = exports.blurImage = Blur2(blurfImage);
22
+ function Blur2(blur) {
23
+ return function (data, rx, ry = rx) {
24
+ if (!((rx = +rx) >= 0)) throw new RangeError("invalid rx");
25
+ if (!((ry = +ry) >= 0)) throw new RangeError("invalid ry");
26
+ let {
27
+ data: values,
28
+ width,
29
+ height
30
+ } = data;
31
+ if (!((width = Math.floor(width)) >= 0)) throw new RangeError("invalid width");
32
+ if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError("invalid height");
33
+ if (!width || !height || !rx && !ry) return data;
34
+ const blurx = rx && blur(rx);
35
+ const blury = ry && blur(ry);
36
+ const temp = values.slice();
37
+ if (blurx && blury) {
38
+ blurh(blurx, temp, values, width, height);
39
+ blurh(blurx, values, temp, width, height);
40
+ blurh(blurx, temp, values, width, height);
41
+ blurv(blury, values, temp, width, height);
42
+ blurv(blury, temp, values, width, height);
43
+ blurv(blury, values, temp, width, height);
44
+ } else if (blurx) {
45
+ blurh(blurx, values, temp, width, height);
46
+ blurh(blurx, temp, values, width, height);
47
+ blurh(blurx, values, temp, width, height);
48
+ } else if (blury) {
49
+ blurv(blury, values, temp, width, height);
50
+ blurv(blury, temp, values, width, height);
51
+ blurv(blury, values, temp, width, height);
52
+ }
53
+ return data;
54
+ };
55
+ }
56
+ function blurh(blur, T, S, w, h) {
57
+ for (let y = 0, n = w * h; y < n;) {
58
+ blur(T, S, y, y += w, 1);
59
+ }
60
+ }
61
+ function blurv(blur, T, S, w, h) {
62
+ for (let x = 0, n = w * h; x < w; ++x) {
63
+ blur(T, S, x, x + n, w);
64
+ }
65
+ }
66
+ function blurfImage(radius) {
67
+ const blur = blurf(radius);
68
+ return (T, S, start, stop, step) => {
69
+ start <<= 2, stop <<= 2, step <<= 2;
70
+ blur(T, S, start + 0, stop + 0, step);
71
+ blur(T, S, start + 1, stop + 1, step);
72
+ blur(T, S, start + 2, stop + 2, step);
73
+ blur(T, S, start + 3, stop + 3, step);
74
+ };
75
+ }
76
+
77
+ // Given a target array T, a source array S, sets each value T[i] to the average
78
+ // of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop,
79
+ // for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between
80
+ // S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an
81
+ // integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted
82
+ // according to r - ⌊radius⌋.
83
+ function blurf(radius) {
84
+ const radius0 = Math.floor(radius);
85
+ if (radius0 === radius) return bluri(radius);
86
+ const t = radius - radius0;
87
+ const w = 2 * radius + 1;
88
+ return (T, S, start, stop, step) => {
89
+ // stop must be aligned!
90
+ if (!((stop -= step) >= start)) return; // inclusive stop
91
+ let sum = radius0 * S[start];
92
+ const s0 = step * radius0;
93
+ const s1 = s0 + step;
94
+ for (let i = start, j = start + s0; i < j; i += step) {
95
+ sum += S[Math.min(stop, i)];
96
+ }
97
+ for (let i = start, j = stop; i <= j; i += step) {
98
+ sum += S[Math.min(stop, i + s0)];
99
+ T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w;
100
+ sum -= S[Math.max(start, i - s0)];
101
+ }
102
+ };
103
+ }
104
+
105
+ // Like blurf, but optimized for integer radius.
106
+ function bluri(radius) {
107
+ const w = 2 * radius + 1;
108
+ return (T, S, start, stop, step) => {
109
+ // stop must be aligned!
110
+ if (!((stop -= step) >= start)) return; // inclusive stop
111
+ let sum = radius * S[start];
112
+ const s = step * radius;
113
+ for (let i = start, j = start + s; i < j; i += step) {
114
+ sum += S[Math.min(stop, i)];
115
+ }
116
+ for (let i = start, j = stop; i <= j; i += step) {
117
+ sum += S[Math.min(stop, i + s)];
118
+ T[i] = sum / w;
119
+ sum -= S[Math.max(start, i - s)];
120
+ }
121
+ };
122
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = constant;
7
+ function constant(x) {
8
+ return () => x;
9
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = count;
7
+ function count(values, valueof) {
8
+ let count = 0;
9
+ if (valueof === undefined) {
10
+ for (let value of values) {
11
+ if (value != null && (value = +value) >= value) {
12
+ ++count;
13
+ }
14
+ }
15
+ } else {
16
+ let index = -1;
17
+ for (let value of values) {
18
+ if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
19
+ ++count;
20
+ }
21
+ }
22
+ }
23
+ return count;
24
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = cross;
7
+ function length(array) {
8
+ return array.length | 0;
9
+ }
10
+ function empty(length) {
11
+ return !(length > 0);
12
+ }
13
+ function arrayify(values) {
14
+ return typeof values !== "object" || "length" in values ? values : Array.from(values);
15
+ }
16
+ function reducer(reduce) {
17
+ return values => reduce(...values);
18
+ }
19
+ function cross(...values) {
20
+ const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
21
+ values = values.map(arrayify);
22
+ const lengths = values.map(length);
23
+ const j = values.length - 1;
24
+ const index = new Array(j + 1).fill(0);
25
+ const product = [];
26
+ if (j < 0 || lengths.some(empty)) return product;
27
+ while (true) {
28
+ product.push(index.map((j, i) => values[i][j]));
29
+ let i = j;
30
+ while (++index[i] === lengths[i]) {
31
+ if (i === 0) return reduce ? product.map(reduce) : product;
32
+ index[i--] = 0;
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = cumsum;
7
+ function cumsum(values, valueof) {
8
+ var sum = 0,
9
+ index = 0;
10
+ return Float64Array.from(values, valueof === undefined ? v => sum += +v || 0 : v => sum += +valueof(v, index++, values) || 0);
11
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = descending;
7
+ function descending(a, b) {
8
+ return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
9
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = deviation;
8
+ var _variance = _interopRequireDefault(require("./variance.js"));
9
+ function deviation(values, valueof) {
10
+ const v = (0, _variance.default)(values, valueof);
11
+ return v ? Math.sqrt(v) : v;
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = difference;
7
+ var _index = require("../../../lib-vendor/internmap/src/index.js");
8
+ function difference(values, ...others) {
9
+ values = new _index.InternSet(values);
10
+ for (const other of others) {
11
+ for (const value of other) {
12
+ values.delete(value);
13
+ }
14
+ }
15
+ return values;
16
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = disjoint;
7
+ var _index = require("../../../lib-vendor/internmap/src/index.js");
8
+ function disjoint(values, other) {
9
+ const iterator = other[Symbol.iterator](),
10
+ set = new _index.InternSet();
11
+ for (const v of values) {
12
+ if (set.has(v)) return false;
13
+ let value, done;
14
+ while (({
15
+ value,
16
+ done
17
+ } = iterator.next())) {
18
+ if (done) break;
19
+ if (Object.is(v, value)) return false;
20
+ set.add(value);
21
+ }
22
+ }
23
+ return true;
24
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = every;
7
+ function every(values, test) {
8
+ if (typeof test !== "function") throw new TypeError("test is not a function");
9
+ let index = -1;
10
+ for (const value of values) {
11
+ if (!test(value, ++index, values)) {
12
+ return false;
13
+ }
14
+ }
15
+ return true;
16
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = extent;
7
+ function extent(values, valueof) {
8
+ let min;
9
+ let max;
10
+ if (valueof === undefined) {
11
+ for (const value of values) {
12
+ if (value != null) {
13
+ if (min === undefined) {
14
+ if (value >= value) min = max = value;
15
+ } else {
16
+ if (min > value) min = value;
17
+ if (max < value) max = value;
18
+ }
19
+ }
20
+ }
21
+ } else {
22
+ let index = -1;
23
+ for (let value of values) {
24
+ if ((value = valueof(value, ++index, values)) != null) {
25
+ if (min === undefined) {
26
+ if (value >= value) min = max = value;
27
+ } else {
28
+ if (min > value) min = value;
29
+ if (max < value) max = value;
30
+ }
31
+ }
32
+ }
33
+ }
34
+ return [min, max];
35
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = filter;
7
+ function filter(values, test) {
8
+ if (typeof test !== "function") throw new TypeError("test is not a function");
9
+ const array = [];
10
+ let index = -1;
11
+ for (const value of values) {
12
+ if (test(value, ++index, values)) {
13
+ array.push(value);
14
+ }
15
+ }
16
+ return array;
17
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Adder = void 0;
7
+ exports.fcumsum = fcumsum;
8
+ exports.fsum = fsum;
9
+ // https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
10
+ class Adder {
11
+ constructor() {
12
+ this._partials = new Float64Array(32);
13
+ this._n = 0;
14
+ }
15
+ add(x) {
16
+ const p = this._partials;
17
+ let i = 0;
18
+ for (let j = 0; j < this._n && j < 32; j++) {
19
+ const y = p[j],
20
+ hi = x + y,
21
+ lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
22
+ if (lo) p[i++] = lo;
23
+ x = hi;
24
+ }
25
+ p[i] = x;
26
+ this._n = i + 1;
27
+ return this;
28
+ }
29
+ valueOf() {
30
+ const p = this._partials;
31
+ let n = this._n,
32
+ x,
33
+ y,
34
+ lo,
35
+ hi = 0;
36
+ if (n > 0) {
37
+ hi = p[--n];
38
+ while (n > 0) {
39
+ x = hi;
40
+ y = p[--n];
41
+ hi = x + y;
42
+ lo = y - (hi - x);
43
+ if (lo) break;
44
+ }
45
+ if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
46
+ y = lo * 2;
47
+ x = hi + y;
48
+ if (y == x - hi) hi = x;
49
+ }
50
+ }
51
+ return hi;
52
+ }
53
+ }
54
+ exports.Adder = Adder;
55
+ function fsum(values, valueof) {
56
+ const adder = new Adder();
57
+ if (valueof === undefined) {
58
+ for (let value of values) {
59
+ if (value = +value) {
60
+ adder.add(value);
61
+ }
62
+ }
63
+ } else {
64
+ let index = -1;
65
+ for (let value of values) {
66
+ if (value = +valueof(value, ++index, values)) {
67
+ adder.add(value);
68
+ }
69
+ }
70
+ }
71
+ return +adder;
72
+ }
73
+ function fcumsum(values, valueof) {
74
+ const adder = new Adder();
75
+ let index = -1;
76
+ return Float64Array.from(values, valueof === undefined ? v => adder.add(+v || 0) : v => adder.add(+valueof(v, ++index, values) || 0));
77
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = greatest;
8
+ var _ascending = _interopRequireDefault(require("./ascending.js"));
9
+ function greatest(values, compare = _ascending.default) {
10
+ let max;
11
+ let defined = false;
12
+ if (compare.length === 1) {
13
+ let maxValue;
14
+ for (const element of values) {
15
+ const value = compare(element);
16
+ if (defined ? (0, _ascending.default)(value, maxValue) > 0 : (0, _ascending.default)(value, value) === 0) {
17
+ max = element;
18
+ maxValue = value;
19
+ defined = true;
20
+ }
21
+ }
22
+ } else {
23
+ for (const value of values) {
24
+ if (defined ? compare(value, max) > 0 : compare(value, value) === 0) {
25
+ max = value;
26
+ defined = true;
27
+ }
28
+ }
29
+ }
30
+ return max;
31
+ }