@evergis/charts 3.1.6 → 3.1.7

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 (369) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +10 -0
  3. package/dist/charts/BarChart/draw.d.ts +2 -2
  4. package/dist/charts/BarChart/drawGrid/index.d.ts +2 -2
  5. package/dist/charts/BarChart/drawGrid/types.d.ts +8 -8
  6. package/dist/charts/BarChart/drawLines/index.d.ts +13 -13
  7. package/dist/charts/BarChart/drawLines/types.d.ts +9 -9
  8. package/dist/charts/BarChart/drawTooltip/getLabel.d.ts +2 -2
  9. package/dist/charts/BarChart/drawTooltip/getLabelY.d.ts +2 -2
  10. package/dist/charts/BarChart/drawTooltip/index.d.ts +2 -2
  11. package/dist/charts/BarChart/drawTooltip/types.d.ts +12 -13
  12. package/dist/charts/BarChart/getBars/index.d.ts +3 -3
  13. package/dist/charts/BarChart/getBars/types.d.ts +6 -6
  14. package/dist/charts/BarChart/getDomain.d.ts +5 -5
  15. package/dist/charts/BarChart/hooks/useSelection.d.ts +2 -2
  16. package/dist/charts/BarChart/index.d.ts +3 -3
  17. package/dist/charts/BarChart/marshaling.d.ts +2 -2
  18. package/dist/charts/BarChart/resizeBarWidth/index.d.ts +2 -2
  19. package/dist/charts/BarChart/resizeBarWidth/types.d.ts +5 -5
  20. package/dist/charts/BarChart/styled.d.ts +37 -37
  21. package/dist/charts/BarChart/types.d.ts +148 -148
  22. package/dist/charts/BubbleChart/bubbleChartDefaultProps.d.ts +14 -14
  23. package/dist/charts/BubbleChart/draw.d.ts +2 -2
  24. package/dist/charts/BubbleChart/drawGrid/index.d.ts +2 -2
  25. package/dist/charts/BubbleChart/drawGrid/types.d.ts +8 -8
  26. package/dist/charts/BubbleChart/drawTooltip/index.d.ts +2 -2
  27. package/dist/charts/BubbleChart/drawTooltip/styled.d.ts +1 -1
  28. package/dist/charts/BubbleChart/drawTooltip/types.d.ts +4 -4
  29. package/dist/charts/BubbleChart/index.d.ts +3 -3
  30. package/dist/charts/BubbleChart/styled.d.ts +17 -17
  31. package/dist/charts/BubbleChart/types.d.ts +55 -55
  32. package/dist/charts/BubbleChart/unmount.d.ts +1 -1
  33. package/dist/charts/CalendarChart/draw.d.ts +2 -2
  34. package/dist/charts/CalendarChart/index.d.ts +3 -3
  35. package/dist/charts/CalendarChart/styled.d.ts +18 -18
  36. package/dist/charts/CalendarChart/types.d.ts +22 -22
  37. package/dist/charts/HorizontalBarChart/Bar/index.d.ts +3 -3
  38. package/dist/charts/HorizontalBarChart/Bar/styled.d.ts +1 -1
  39. package/dist/charts/HorizontalBarChart/Bar/types.d.ts +11 -11
  40. package/dist/charts/HorizontalBarChart/Tooltip/index.d.ts +3 -3
  41. package/dist/charts/HorizontalBarChart/Tooltip/types.d.ts +5 -5
  42. package/dist/charts/HorizontalBarChart/XScale/hooks/useScale.d.ts +2 -2
  43. package/dist/charts/HorizontalBarChart/XScale/index.d.ts +3 -3
  44. package/dist/charts/HorizontalBarChart/XScale/styled.d.ts +3 -3
  45. package/dist/charts/HorizontalBarChart/hooks/useMarshaling.d.ts +5 -5
  46. package/dist/charts/HorizontalBarChart/hooks/useStackWrapper.d.ts +12 -12
  47. package/dist/charts/HorizontalBarChart/hooks/useTooltip/index.d.ts +3 -3
  48. package/dist/charts/HorizontalBarChart/hooks/useTooltip/types.d.ts +6 -3
  49. package/dist/charts/HorizontalBarChart/index.d.ts +3 -3
  50. package/dist/charts/HorizontalBarChart/styled.d.ts +30 -30
  51. package/dist/charts/HorizontalBarChart/types.d.ts +41 -41
  52. package/dist/charts/LineChart/draw.d.ts +2 -2
  53. package/dist/charts/LineChart/drawGrid/index.d.ts +2 -2
  54. package/dist/charts/LineChart/drawGrid/types.d.ts +9 -9
  55. package/dist/charts/LineChart/drawLabel/index.d.ts +3 -3
  56. package/dist/charts/LineChart/drawLabel/styled.d.ts +2 -2
  57. package/dist/charts/LineChart/drawLabel/types.d.ts +7 -7
  58. package/dist/charts/LineChart/drawTooltip/index.d.ts +2 -2
  59. package/dist/charts/LineChart/drawTooltip/types.d.ts +9 -9
  60. package/dist/charts/LineChart/index.d.ts +3 -3
  61. package/dist/charts/LineChart/styled.d.ts +27 -27
  62. package/dist/charts/LineChart/types.d.ts +78 -78
  63. package/dist/charts/PieChart/draw.d.ts +2 -2
  64. package/dist/charts/PieChart/drawRadialLabels/helpers.d.ts +3 -3
  65. package/dist/charts/PieChart/drawRadialLabels/index.d.ts +2 -2
  66. package/dist/charts/PieChart/drawRadialLabels/types.d.ts +11 -11
  67. package/dist/charts/PieChart/drawTooltips/index.d.ts +2 -2
  68. package/dist/charts/PieChart/drawTooltips/types.d.ts +8 -8
  69. package/dist/charts/PieChart/index.d.ts +3 -3
  70. package/dist/charts/PieChart/styled.d.ts +18 -18
  71. package/dist/charts/PieChart/types.d.ts +54 -54
  72. package/dist/charts/RadarChart/draw.d.ts +2 -2
  73. package/dist/charts/RadarChart/drawRadialLabels/index.d.ts +2 -2
  74. package/dist/charts/RadarChart/drawRadialLabels/styled.d.ts +2 -2
  75. package/dist/charts/RadarChart/drawRadialLabels/types.d.ts +25 -25
  76. package/dist/charts/RadarChart/helpers.d.ts +2 -2
  77. package/dist/charts/RadarChart/index.d.ts +3 -3
  78. package/dist/charts/RadarChart/styled.d.ts +13 -13
  79. package/dist/charts/RadarChart/types.d.ts +42 -42
  80. package/dist/charts.esm.js +10174 -3323
  81. package/dist/charts.esm.js.map +1 -1
  82. package/dist/common/components/SwipeScroll/animate.d.ts +6 -6
  83. package/dist/common/components/SwipeScroll/hooks/useSwipe.d.ts +2 -2
  84. package/dist/common/components/SwipeScroll/index.d.ts +3 -3
  85. package/dist/common/components/SwipeScroll/styled.d.ts +1 -1
  86. package/dist/common/components/SwipeScroll/types.d.ts +8 -8
  87. package/dist/common/components/Wrapper.d.ts +1 -1
  88. package/dist/common/components/labels/index.d.ts +7 -7
  89. package/dist/common/components/labels/types.d.ts +6 -6
  90. package/dist/common/components/tooltips/index.d.ts +14 -14
  91. package/dist/common/types/interpolator.d.ts +1 -1
  92. package/dist/common/types/margin.d.ts +6 -6
  93. package/dist/helpers/appendSvg.d.ts +2 -2
  94. package/dist/helpers/common.d.ts +2 -2
  95. package/dist/helpers/computeDimensions.d.ts +2 -2
  96. package/dist/helpers/getLegend/index.d.ts +19 -19
  97. package/dist/helpers/getLegend/types.d.ts +15 -15
  98. package/dist/helpers/getTextWidth.d.ts +1 -1
  99. package/dist/helpers/index.d.ts +1 -1
  100. package/dist/helpers/math.d.ts +2 -2
  101. package/dist/helpers/stackedData.d.ts +2 -2
  102. package/dist/helpers/textAlignCenter.d.ts +2 -2
  103. package/dist/helpers/throttle.d.ts +1 -1
  104. package/dist/hooks/index.d.ts +2 -2
  105. package/dist/hooks/useNode.d.ts +2 -2
  106. package/dist/hooks/useResize.d.ts +1 -1
  107. package/dist/index.d.ts +26 -26
  108. package/dist/index.js +10355 -5
  109. package/dist/index.js.map +1 -0
  110. package/dist/src/charts/BarChart/draw.d.ts +2 -0
  111. package/dist/src/charts/BarChart/drawGrid/index.d.ts +2 -0
  112. package/dist/src/charts/BarChart/drawGrid/types.d.ts +8 -0
  113. package/dist/src/charts/BarChart/drawLines/index.d.ts +13 -0
  114. package/dist/src/charts/BarChart/drawLines/types.d.ts +9 -0
  115. package/dist/src/charts/BarChart/drawTooltip/getLabel.d.ts +2 -0
  116. package/dist/src/charts/BarChart/drawTooltip/getLabelY.d.ts +2 -0
  117. package/dist/src/charts/BarChart/drawTooltip/index.d.ts +2 -0
  118. package/dist/src/charts/BarChart/drawTooltip/types.d.ts +12 -0
  119. package/dist/src/charts/BarChart/getBars/index.d.ts +3 -0
  120. package/dist/src/charts/BarChart/getBars/types.d.ts +6 -0
  121. package/dist/src/charts/BarChart/getDomain.d.ts +5 -0
  122. package/dist/src/charts/BarChart/hooks/useSelection.d.ts +2 -0
  123. package/dist/src/charts/BarChart/index.d.ts +3 -0
  124. package/dist/src/charts/BarChart/marshaling.d.ts +2 -0
  125. package/dist/src/charts/BarChart/resizeBarWidth/index.d.ts +2 -0
  126. package/dist/src/charts/BarChart/resizeBarWidth/types.d.ts +5 -0
  127. package/dist/src/charts/BarChart/styled.d.ts +37 -0
  128. package/dist/src/charts/BarChart/types.d.ts +148 -0
  129. package/dist/src/charts/BubbleChart/bubbleChartDefaultProps.d.ts +14 -0
  130. package/dist/src/charts/BubbleChart/draw.d.ts +2 -0
  131. package/dist/src/charts/BubbleChart/drawGrid/index.d.ts +2 -0
  132. package/dist/src/charts/BubbleChart/drawGrid/types.d.ts +8 -0
  133. package/dist/src/charts/BubbleChart/drawTooltip/index.d.ts +2 -0
  134. package/dist/src/charts/BubbleChart/drawTooltip/styled.d.ts +1 -0
  135. package/dist/src/charts/BubbleChart/drawTooltip/types.d.ts +4 -0
  136. package/dist/src/charts/BubbleChart/index.d.ts +3 -0
  137. package/dist/src/charts/BubbleChart/styled.d.ts +17 -0
  138. package/dist/src/charts/BubbleChart/types.d.ts +55 -0
  139. package/dist/src/charts/BubbleChart/unmount.d.ts +1 -0
  140. package/dist/src/charts/CalendarChart/draw.d.ts +2 -0
  141. package/dist/src/charts/CalendarChart/index.d.ts +3 -0
  142. package/dist/src/charts/CalendarChart/styled.d.ts +18 -0
  143. package/dist/src/charts/CalendarChart/types.d.ts +22 -0
  144. package/dist/src/charts/HorizontalBarChart/Bar/index.d.ts +3 -0
  145. package/dist/src/charts/HorizontalBarChart/Bar/styled.d.ts +1 -0
  146. package/dist/src/charts/HorizontalBarChart/Bar/types.d.ts +11 -0
  147. package/dist/src/charts/HorizontalBarChart/Tooltip/index.d.ts +3 -0
  148. package/dist/src/charts/HorizontalBarChart/Tooltip/types.d.ts +5 -0
  149. package/dist/src/charts/HorizontalBarChart/XScale/hooks/useScale.d.ts +2 -0
  150. package/dist/src/charts/HorizontalBarChart/XScale/index.d.ts +3 -0
  151. package/dist/src/charts/HorizontalBarChart/XScale/styled.d.ts +3 -0
  152. package/dist/src/charts/HorizontalBarChart/hooks/useMarshaling.d.ts +5 -0
  153. package/dist/src/charts/HorizontalBarChart/hooks/useStackWrapper.d.ts +12 -0
  154. package/dist/src/charts/HorizontalBarChart/hooks/useTooltip/index.d.ts +3 -0
  155. package/dist/src/charts/HorizontalBarChart/hooks/useTooltip/types.d.ts +6 -0
  156. package/dist/src/charts/HorizontalBarChart/index.d.ts +3 -0
  157. package/dist/src/charts/HorizontalBarChart/styled.d.ts +30 -0
  158. package/dist/src/charts/HorizontalBarChart/types.d.ts +41 -0
  159. package/dist/src/charts/LineChart/draw.d.ts +2 -0
  160. package/dist/src/charts/LineChart/drawGrid/index.d.ts +2 -0
  161. package/dist/src/charts/LineChart/drawGrid/types.d.ts +9 -0
  162. package/dist/src/charts/LineChart/drawLabel/index.d.ts +3 -0
  163. package/dist/src/charts/LineChart/drawLabel/styled.d.ts +2 -0
  164. package/dist/src/charts/LineChart/drawLabel/types.d.ts +7 -0
  165. package/dist/src/charts/LineChart/drawTooltip/index.d.ts +2 -0
  166. package/dist/src/charts/LineChart/drawTooltip/types.d.ts +9 -0
  167. package/dist/src/charts/LineChart/index.d.ts +3 -0
  168. package/dist/src/charts/LineChart/styled.d.ts +27 -0
  169. package/dist/src/charts/LineChart/types.d.ts +78 -0
  170. package/dist/src/charts/PieChart/draw.d.ts +2 -0
  171. package/dist/src/charts/PieChart/drawRadialLabels/helpers.d.ts +3 -0
  172. package/dist/src/charts/PieChart/drawRadialLabels/index.d.ts +2 -0
  173. package/dist/src/charts/PieChart/drawRadialLabels/types.d.ts +11 -0
  174. package/dist/src/charts/PieChart/drawTooltips/index.d.ts +2 -0
  175. package/dist/src/charts/PieChart/drawTooltips/types.d.ts +8 -0
  176. package/dist/src/charts/PieChart/index.d.ts +3 -0
  177. package/dist/src/charts/PieChart/styled.d.ts +18 -0
  178. package/dist/src/charts/PieChart/types.d.ts +54 -0
  179. package/dist/src/charts/RadarChart/draw.d.ts +2 -0
  180. package/dist/src/charts/RadarChart/drawRadialLabels/index.d.ts +2 -0
  181. package/dist/src/charts/RadarChart/drawRadialLabels/styled.d.ts +2 -0
  182. package/dist/src/charts/RadarChart/drawRadialLabels/types.d.ts +25 -0
  183. package/dist/src/charts/RadarChart/helpers.d.ts +2 -0
  184. package/dist/src/charts/RadarChart/index.d.ts +3 -0
  185. package/dist/src/charts/RadarChart/styled.d.ts +13 -0
  186. package/dist/src/charts/RadarChart/types.d.ts +42 -0
  187. package/dist/src/common/components/SwipeScroll/animate.d.ts +6 -0
  188. package/dist/src/common/components/SwipeScroll/hooks/useSwipe.d.ts +2 -0
  189. package/dist/src/common/components/SwipeScroll/index.d.ts +3 -0
  190. package/dist/src/common/components/SwipeScroll/styled.d.ts +1 -0
  191. package/dist/src/common/components/SwipeScroll/types.d.ts +8 -0
  192. package/dist/src/common/components/Wrapper.d.ts +1 -0
  193. package/dist/src/common/components/labels/index.d.ts +7 -0
  194. package/dist/src/common/components/labels/types.d.ts +6 -0
  195. package/dist/src/common/components/tooltips/index.d.ts +14 -0
  196. package/dist/src/common/types/interpolator.d.ts +1 -0
  197. package/dist/src/common/types/margin.d.ts +6 -0
  198. package/dist/src/helpers/appendSvg.d.ts +2 -0
  199. package/dist/src/helpers/common.d.ts +2 -0
  200. package/dist/src/helpers/computeDimensions.d.ts +2 -0
  201. package/dist/src/helpers/getLegend/index.d.ts +19 -0
  202. package/dist/src/helpers/getLegend/types.d.ts +15 -0
  203. package/dist/src/helpers/getTextWidth.d.ts +1 -0
  204. package/dist/src/helpers/index.d.ts +1 -0
  205. package/dist/src/helpers/math.d.ts +2 -0
  206. package/dist/src/helpers/stackedData.d.ts +2 -0
  207. package/dist/src/helpers/textAlignCenter.d.ts +2 -0
  208. package/dist/src/helpers/throttle.d.ts +1 -0
  209. package/dist/src/hooks/index.d.ts +2 -0
  210. package/dist/src/hooks/useNode.d.ts +2 -0
  211. package/dist/src/hooks/useResize.d.ts +1 -0
  212. package/dist/src/index.d.ts +26 -0
  213. package/package.json +17 -34
  214. package/dist/charts.cjs.development.js +0 -3513
  215. package/dist/charts.cjs.development.js.map +0 -1
  216. package/dist/charts.cjs.production.min.js +0 -2
  217. package/dist/charts.cjs.production.min.js.map +0 -1
  218. package/dist/jest.config.d.ts +0 -14
  219. package/dist/stories/Bar/Examples.stories.d.ts +0 -23
  220. package/dist/stories/Bar/HorizontalBar.stories.d.ts +0 -25
  221. package/dist/stories/Bar/Statistics.stories.d.ts +0 -7
  222. package/dist/stories/Bar/VerticalBar.stories.d.ts +0 -41
  223. package/dist/stories/Bubble/Bubble.stories.d.ts +0 -23
  224. package/dist/stories/Bubble/Examples.stories.d.ts +0 -4
  225. package/dist/stories/Bubble/examples/VEB/InvestBubble.d.ts +0 -5
  226. package/dist/stories/Bubble/examples/VEB/hooks/useCustomize.d.ts +0 -3
  227. package/dist/stories/Bubble/examples/VEB/hooks/useRenderTooltip/index.d.ts +0 -4
  228. package/dist/stories/Bubble/examples/VEB/hooks/useRenderTooltip/styled.d.ts +0 -8
  229. package/dist/stories/Bubble/examples/VEB/styled.d.ts +0 -1
  230. package/dist/stories/Calendar/Calendar.stories.d.ts +0 -23
  231. package/dist/stories/Calendar/ColorScheme.stories.d.ts +0 -7
  232. package/dist/stories/Calendar/Examples.stories.d.ts +0 -11
  233. package/dist/stories/Calendar/Legend.stories.d.ts +0 -30
  234. package/dist/stories/Common/SwipeScroll/SwipeScroll.stories.d.ts +0 -13
  235. package/dist/stories/Common/SwipeScroll/hooks/useSwipe.d.ts +0 -1
  236. package/dist/stories/Line/Examples.stories.d.ts +0 -7
  237. package/dist/stories/Line/Line.stories.d.ts +0 -48
  238. package/dist/stories/Line/examples/Beeline.d.ts +0 -5
  239. package/dist/stories/Line/examples/GeoVeb.d.ts +0 -5
  240. package/dist/stories/Line/examples/GeoVebInterval/data.d.ts +0 -9
  241. package/dist/stories/Line/examples/GeoVebInterval/index.d.ts +0 -5
  242. package/dist/stories/Line/examples/GeoVebInterval/styled.d.ts +0 -4
  243. package/dist/stories/Line/examples/Msp.d.ts +0 -5
  244. package/dist/stories/Pie/ColorScheme.stories.d.ts +0 -7
  245. package/dist/stories/Pie/Examples.stories.d.ts +0 -7
  246. package/dist/stories/Pie/Pie.stories.d.ts +0 -47
  247. package/dist/stories/Radar/Chart.stories.d.ts +0 -38
  248. package/dist/stories/Radar/Github.stories.d.ts +0 -7
  249. package/dist/stories/Radar/Gradient.stories.d.ts +0 -7
  250. package/dist/stories/Radar/Veb.stories.d.ts +0 -7
  251. package/dist/stories/Sankey/Examples.stories.d.ts +0 -4
  252. package/dist/stories/Sankey/examples/RelatedIndustries/data.d.ts +0 -2
  253. package/dist/stories/Sankey/examples/RelatedIndustries/index.d.ts +0 -5
  254. package/dist/stories/__internal__/colors.d.ts +0 -40
  255. package/dist/stories/__internal__/components/BeelineLineChart/hooks/useCustomize.d.ts +0 -11
  256. package/dist/stories/__internal__/components/BeelineLineChart/hooks/useLineRenderTooltip/index.d.ts +0 -5
  257. package/dist/stories/__internal__/components/BeelineLineChart/hooks/useLineRenderTooltip/styled.d.ts +0 -5
  258. package/dist/stories/__internal__/components/BeelineLineChart/index.d.ts +0 -3
  259. package/dist/stories/__internal__/components/BeelineLineChart/styled.d.ts +0 -3
  260. package/dist/stories/__internal__/components/BeelineRangeLineChart/Range/index.d.ts +0 -7
  261. package/dist/stories/__internal__/components/BeelineRangeLineChart/Range/styled.d.ts +0 -3
  262. package/dist/stories/__internal__/components/BeelineRangeLineChart/hooks/useChange.d.ts +0 -8
  263. package/dist/stories/__internal__/components/BeelineRangeLineChart/index.d.ts +0 -2
  264. package/dist/stories/__internal__/components/BeelineRangeLineChart/styled.d.ts +0 -4
  265. package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/data.d.ts +0 -5
  266. package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/hooks/useRenderDataTable.d.ts +0 -2
  267. package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/index.d.ts +0 -2
  268. package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/styled.d.ts +0 -3
  269. package/dist/stories/__internal__/components/Divider.d.ts +0 -6
  270. package/dist/stories/__internal__/components/GeoVebBarCharts.d.ts +0 -2
  271. package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/data.d.ts +0 -47
  272. package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/hooks/useRenderTooltip.d.ts +0 -3
  273. package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/hooks/useSimpleRenderTooltip.d.ts +0 -3
  274. package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/index.d.ts +0 -4
  275. package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/styled.d.ts +0 -4
  276. package/dist/stories/__internal__/components/GeoYearsBarChart/index.d.ts +0 -2
  277. package/dist/stories/__internal__/components/GeoYearsBarChart/styled.d.ts +0 -4
  278. package/dist/stories/__internal__/components/MixedTableChart/Chart/index.d.ts +0 -3
  279. package/dist/stories/__internal__/components/MixedTableChart/Chart/styled.d.ts +0 -2
  280. package/dist/stories/__internal__/components/MixedTableChart/index.d.ts +0 -3
  281. package/dist/stories/__internal__/components/MixedTableChart/styled.d.ts +0 -5
  282. package/dist/stories/__internal__/components/MixedTableChart/types.d.ts +0 -21
  283. package/dist/stories/__internal__/components/MspDashboardChart/hooks/useAnimation.d.ts +0 -5
  284. package/dist/stories/__internal__/components/MspDashboardChart/index.d.ts +0 -3
  285. package/dist/stories/__internal__/components/MspDashboardChart/styled.d.ts +0 -5
  286. package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useAnimationAreas.d.ts +0 -6
  287. package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useAnimationBars.d.ts +0 -5
  288. package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useCustomize.d.ts +0 -4
  289. package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useData.d.ts +0 -8
  290. package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useMarshalledMap.d.ts +0 -1
  291. package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useRenderTooltip.d.ts +0 -2
  292. package/dist/stories/__internal__/components/MspPromSupplyBarChart/index.d.ts +0 -9
  293. package/dist/stories/__internal__/components/MspPromSupplyBarChart/styled.d.ts +0 -22
  294. package/dist/stories/__internal__/components/SankeyTriChart/Groups/getCSSProperties.d.ts +0 -4
  295. package/dist/stories/__internal__/components/SankeyTriChart/Groups/helpers.d.ts +0 -1
  296. package/dist/stories/__internal__/components/SankeyTriChart/Groups/index.d.ts +0 -5
  297. package/dist/stories/__internal__/components/SankeyTriChart/Groups/styled.d.ts +0 -1
  298. package/dist/stories/__internal__/components/SankeyTriChart/ItemContent/getCSSProperties.d.ts +0 -3
  299. package/dist/stories/__internal__/components/SankeyTriChart/ItemContent/index.d.ts +0 -5
  300. package/dist/stories/__internal__/components/SankeyTriChart/ItemContent/styled.d.ts +0 -8
  301. package/dist/stories/__internal__/components/SankeyTriChart/draw.d.ts +0 -2
  302. package/dist/stories/__internal__/components/SankeyTriChart/helpers.d.ts +0 -9
  303. package/dist/stories/__internal__/components/SankeyTriChart/index.d.ts +0 -10
  304. package/dist/stories/__internal__/components/SankeyTriChart/marshaling.d.ts +0 -6
  305. package/dist/stories/__internal__/components/SankeyTriChart/styled.d.ts +0 -1
  306. package/dist/stories/__internal__/components/SankeyTriChart/types.d.ts +0 -40
  307. package/dist/stories/__internal__/components/SberBarMixChart/colors.d.ts +0 -3
  308. package/dist/stories/__internal__/components/SberBarMixChart/data.d.ts +0 -8
  309. package/dist/stories/__internal__/components/SberBarMixChart/hooks/styled.d.ts +0 -3
  310. package/dist/stories/__internal__/components/SberBarMixChart/hooks/useRenderTooltip.d.ts +0 -2
  311. package/dist/stories/__internal__/components/SberBarMixChart/index.d.ts +0 -2
  312. package/dist/stories/__internal__/components/SberBarMixChart/styled.d.ts +0 -1
  313. package/dist/stories/__internal__/components/StatisticsBarCharts/NumbersStatistics.d.ts +0 -2
  314. package/dist/stories/__internal__/components/StatisticsBarCharts/StringsStatistics.d.ts +0 -2
  315. package/dist/stories/__internal__/components/StatisticsBarCharts/index.d.ts +0 -2
  316. package/dist/stories/__internal__/components/StatisticsBarCharts/styled.d.ts +0 -1
  317. package/dist/stories/__internal__/components/VebEstimationBarChart/data.d.ts +0 -38
  318. package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useCustomize.d.ts +0 -5
  319. package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useDrawBars.d.ts +0 -4
  320. package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderLabel/index.d.ts +0 -9
  321. package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderLabel/styled.d.ts +0 -1
  322. package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderTooltip/index.d.ts +0 -8
  323. package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderTooltip/styled.d.ts +0 -13
  324. package/dist/stories/__internal__/components/VebEstimationBarChart/index.d.ts +0 -3
  325. package/dist/stories/__internal__/components/VebEstimationBarChart/styled.d.ts +0 -2
  326. package/dist/stories/__internal__/components/VebFilterBarChart/index.d.ts +0 -2
  327. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderSum/index.d.ts +0 -3
  328. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderSum/styled.d.ts +0 -1
  329. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderTooltip/index.d.ts +0 -1
  330. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderTooltip/styled.d.ts +0 -5
  331. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/index.d.ts +0 -3
  332. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/styled.d.ts +0 -5
  333. package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/types.d.ts +0 -11
  334. package/dist/stories/__internal__/curves.d.ts +0 -8
  335. package/dist/stories/__internal__/data/msp.d.ts +0 -14
  336. package/dist/stories/__internal__/data/mspDashboard.d.ts +0 -1
  337. package/dist/stories/__internal__/data/mspPromSupply.d.ts +0 -11
  338. package/dist/stories/__internal__/data/population.d.ts +0 -4
  339. package/dist/stories/__internal__/data/veb.d.ts +0 -31
  340. package/dist/stories/__internal__/helpers/Path.d.ts +0 -10
  341. package/dist/stories/__internal__/helpers/Vector.d.ts +0 -9
  342. package/dist/stories/__internal__/helpers/animation.d.ts +0 -15
  343. package/dist/stories/__internal__/helpers/hexToRGB.d.ts +0 -1
  344. package/dist/stories/__internal__/helpers/random.d.ts +0 -1
  345. package/dist/stories/__internal__/helpers/randomData.d.ts +0 -14
  346. package/dist/stories/__internal__/helpers/randomHorizontalBarData.d.ts +0 -5
  347. package/dist/stories/__internal__/helpers/randomIntervalData.d.ts +0 -11
  348. package/dist/stories/__internal__/helpers/randomLineData.d.ts +0 -8
  349. package/dist/stories/__internal__/helpers/randomText.d.ts +0 -1
  350. package/dist/stories/__internal__/helpers/roundedRect.d.ts +0 -10
  351. package/dist/stories/__internal__/helpers/shuffleArray.d.ts +0 -1
  352. package/dist/stories/__internal__/hooks/useBarData.d.ts +0 -10
  353. package/dist/stories/__internal__/hooks/useLegend.d.ts +0 -1
  354. package/dist/stories/__internal__/hooks/useMinMaxValue.d.ts +0 -4
  355. package/dist/stories/__internal__/interpolates.d.ts +0 -23
  356. package/dist/storybook-static/1.05dfd83c.iframe.bundle.d.ts +0 -0
  357. package/dist/storybook-static/189.8c077122866758d3cf20.manager.bundle.d.ts +0 -0
  358. package/dist/storybook-static/190.58050c9beb344d4cefd9.manager.bundle.d.ts +0 -2
  359. package/dist/storybook-static/191.b202c06c72968435b80b.manager.bundle.d.ts +0 -0
  360. package/dist/storybook-static/192.83987c5b15f8a80893c5.manager.bundle.d.ts +0 -0
  361. package/dist/storybook-static/193.8a12aa992b466e778018.manager.bundle.d.ts +0 -2
  362. package/dist/storybook-static/2.0231c7b6.iframe.bundle.d.ts +0 -0
  363. package/dist/storybook-static/6.6185fd0d.iframe.bundle.d.ts +0 -0
  364. package/dist/storybook-static/7.0ede09e9.iframe.bundle.d.ts +0 -0
  365. package/dist/storybook-static/8.6f0230ef.iframe.bundle.d.ts +0 -2
  366. package/dist/storybook-static/main.6b7543c14993fcfcab71.manager.bundle.d.ts +0 -2
  367. package/dist/storybook-static/main.724b5942.iframe.bundle.d.ts +0 -9
  368. package/dist/storybook-static/runtime~main.92273705.iframe.bundle.d.ts +0 -1
  369. package/dist/storybook-static/runtime~main.c89e55a461c11ef29193.manager.bundle.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"charts.esm.js","sources":["../src/common/components/Wrapper.ts","../src/hooks/useNode.ts","../src/helpers/throttle.ts","../src/hooks/useResize.ts","../src/helpers/appendSvg.ts","../src/common/components/SwipeScroll/styled.ts","../src/common/components/SwipeScroll/animate.ts","../src/common/components/SwipeScroll/hooks/useSwipe.ts","../src/common/components/SwipeScroll/index.tsx","../src/charts/RadarChart/helpers.ts","../src/charts/RadarChart/drawRadialLabels/styled.ts","../src/charts/RadarChart/drawRadialLabels/index.tsx","../src/common/components/labels/index.ts","../src/charts/RadarChart/styled.ts","../src/charts/RadarChart/draw.tsx","../src/charts/RadarChart/index.tsx","../src/helpers/math.ts","../src/charts/PieChart/styled.ts","../src/charts/PieChart/drawRadialLabels/helpers.ts","../src/charts/PieChart/drawRadialLabels/index.tsx","../src/common/components/tooltips/index.ts","../src/charts/PieChart/drawTooltips/index.tsx","../src/charts/PieChart/draw.tsx","../src/charts/PieChart/index.tsx","../src/helpers/getLegend/index.ts","../src/charts/CalendarChart/styled.ts","../src/charts/CalendarChart/draw.ts","../src/charts/CalendarChart/index.tsx","../src/helpers/computeDimensions.ts","../src/helpers/common.ts","../src/helpers/stackedData.ts","../src/charts/LineChart/styled.ts","../src/charts/LineChart/drawGrid/index.ts","../src/charts/LineChart/drawLabel/styled.ts","../src/charts/LineChart/drawLabel/index.tsx","../src/charts/LineChart/drawTooltip/index.tsx","../src/charts/LineChart/draw.ts","../src/charts/LineChart/index.tsx","../src/charts/BarChart/drawLines/index.ts","../src/charts/BarChart/styled.ts","../src/charts/BarChart/hooks/useSelection.ts","../src/charts/BarChart/drawGrid/index.ts","../src/charts/BarChart/getDomain.ts","../src/charts/BarChart/marshaling.ts","../src/charts/BarChart/drawTooltip/getLabelY.ts","../src/charts/BarChart/drawTooltip/getLabel.tsx","../src/charts/BarChart/drawTooltip/index.tsx","../src/charts/BarChart/resizeBarWidth/index.ts","../src/charts/BarChart/getBars/index.ts","../src/charts/BarChart/draw.ts","../src/charts/BarChart/index.tsx","../src/charts/HorizontalBarChart/hooks/useMarshaling.ts","../src/charts/HorizontalBarChart/styled.ts","../src/charts/HorizontalBarChart/Tooltip/index.tsx","../src/charts/HorizontalBarChart/hooks/useTooltip/index.tsx","../src/charts/HorizontalBarChart/hooks/useStackWrapper.tsx","../src/charts/HorizontalBarChart/Bar/styled.ts","../src/charts/HorizontalBarChart/Bar/index.tsx","../src/charts/HorizontalBarChart/XScale/hooks/useScale.ts","../src/charts/HorizontalBarChart/XScale/styled.ts","../src/charts/HorizontalBarChart/XScale/index.tsx","../src/charts/HorizontalBarChart/index.tsx","../src/charts/BubbleChart/bubbleChartDefaultProps.ts","../src/charts/BubbleChart/styled.ts","../src/charts/BubbleChart/drawGrid/index.ts","../src/charts/BubbleChart/drawTooltip/styled.ts","../src/charts/BubbleChart/drawTooltip/index.tsx","../src/charts/BubbleChart/draw.ts","../src/charts/BubbleChart/unmount.ts","../src/charts/BubbleChart/index.tsx"],"sourcesContent":["import styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n position: relative;\n width: 100%;\n box-sizing: border-box;\n`;\n","import { PropsWithRef, useCallback, useState } from \"react\";\n\nexport function useNode(): [PropsWithRef<any>, HTMLElement | null] {\n const [node, onSetNode] = useState<HTMLElement | null>(null);\n\n const ref = useCallback(onSetNode, [onSetNode]);\n\n return [ref, node];\n}\n","export function throttle(fn: Function, wait: number) {\n let isCalled = false;\n\n return function(...args: any) {\n if (!isCalled) {\n fn(...args);\n isCalled = true;\n setTimeout(function() {\n isCalled = false;\n }, wait);\n }\n };\n}\n","import { useEffect, useMemo } from \"react\";\n\nimport { throttle } from \"../helpers/throttle\";\n\nconst THROTTLE_DELAY = 44;\n\nexport const useResize = (\n width?: number,\n callback?: (...args: any) => any,\n delay?: number,\n) => {\n const throttledCallback: VoidFunction | undefined = useMemo(() => {\n return callback ? throttle(callback, delay || THROTTLE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n throttledCallback &&\n typeof width !== \"number\" &&\n window.addEventListener(\"resize\", throttledCallback);\n\n return () =>\n throttledCallback &&\n window.removeEventListener(\"resize\", throttledCallback);\n }, [width, throttledCallback]);\n};\n","import * as d3 from 'd3';\n\nexport const appendSvg = (node: HTMLElement, width: number, height: number) => {\n d3.select(node)\n .select('svg')\n .remove();\n\n const svg = d3\n .select(node)\n .append('svg')\n .attr('width', width)\n .attr('height', height);\n\n return svg;\n};\n","import styled from \"styled-components\";\n\nexport const SwipeScrollContainer = styled.div`\n width: 100%;\n overflow: hidden;\n user-select: none;\n`;\n","export function animate({\n duration,\n timing,\n draw,\n}: {\n duration: number;\n timing: (n: number) => number;\n draw: (progress: number, requestId: number) => void;\n}): void {\n const start = performance.now();\n let requestId: number;\n\n requestAnimationFrame(function requestAnimate(time) {\n let timeFraction = (time - start) / duration;\n\n if (timeFraction < 1) {\n requestId = requestAnimationFrame(requestAnimate);\n }\n\n if (timeFraction > 1) cancelAnimationFrame(requestId);\n const progress = timing(timeFraction);\n\n draw(progress, requestId);\n });\n}\n\nexport const easeOutQuad = (time: number): number => time * (2 - time);\n","import { useEffect, useRef, useCallback } from 'react';\nimport * as d3 from 'd3';\n\nimport { animate, easeOutQuad } from '../animate';\n\nimport { SwipeScrollProps } from '../types';\n\nconst range = (num: number, min: number, max: number) =>\n Math.min(Math.max(num, min), max);\n\nconst defaultRefs = {\n animation: 0,\n speed: 0,\n timestamp: 0,\n startX: 0,\n currentX: 0,\n};\n\nexport const useSwipe = (\n node: HTMLElement | null,\n { width, duration, animationFunc, onSwipe }: SwipeScrollProps\n) => {\n const container = d3.select(node);\n const body = d3.select('body');\n const documentSelect = d3.select(document);\n const refs = useRef(defaultRefs);\n\n useEffect(() => {\n if (width && refs.current.animation) {\n cancelAnimationFrame(refs.current.animation);\n refs.current = defaultRefs;\n }\n }, [width]);\n\n const onMove = useCallback(\n (event: any) => {\n const { width: nodeWidth } = node\n ? node.getBoundingClientRect()\n : { width: 0 };\n const [x] = d3.pointer(\n event.type.includes('touch') ? event.touches[0] : event\n );\n const newX = x - refs.current.startX;\n const maxX = width - nodeWidth;\n const translateX = range(newX, -maxX, 0);\n\n container.style('transform', `translateX(${translateX}px)`);\n\n if (refs.current.currentX) {\n const hundred = 100;\n const now = Date.now();\n const dt = now - refs.current.timestamp;\n const dx = translateX - refs.current.currentX;\n const speedX = Math.round((dx / dt) * hundred);\n\n refs.current.speed = speedX;\n refs.current.timestamp = now;\n }\n\n refs.current.currentX = translateX;\n\n onSwipe && onSwipe(translateX, container);\n },\n [onSwipe, width, node, container]\n );\n\n const onEnd = useCallback(() => {\n const { width: nodeWidth } = node\n ? node.getBoundingClientRect()\n : { width: 0 };\n\n documentSelect.on(\n 'mousemove.swipe touchmove.swipe mouseup.swipe touchend.swipe',\n null\n );\n body.style('cursor', null);\n if (width > nodeWidth) {\n container.style('cursor', 'grab');\n } else {\n container.style('cursor', null);\n }\n\n const dt = Date.now() - refs.current.timestamp;\n const dtEnd = 44;\n\n if (dt < dtEnd) {\n animate({\n duration: duration as number,\n timing: animationFunc || easeOutQuad,\n draw: (progress, requestId) => {\n refs.current.animation = requestId;\n const px = Math.round(refs.current.speed * 2 * progress);\n const currX = refs.current.currentX + px;\n const maxX = width - nodeWidth;\n const translateX = range(currX, -maxX, 0);\n\n const transX = Math.max(Math.min(currX, maxX), 0);\n\n if (refs.current.currentX !== transX) {\n container.style('transform', `translateX(${translateX}px)`);\n\n onSwipe && onSwipe(translateX, container);\n }\n },\n });\n }\n }, [\n body,\n animationFunc,\n onSwipe,\n container,\n duration,\n node,\n width,\n documentSelect,\n ]);\n\n const onStart = useCallback(\n (event: any) => {\n const isTouch = event.type.includes('touch');\n const [x] = d3.pointer(isTouch ? event.touches[0] : event, node);\n\n const { left } =\n node && node.parentElement\n ? node.parentElement.getBoundingClientRect()\n : { left: 0 };\n body.style('cursor', 'grabbing');\n container.style('cursor', 'grabbing');\n\n if (refs.current.animation) {\n cancelAnimationFrame(refs.current.animation);\n refs.current = defaultRefs;\n }\n\n refs.current.startX = Math.max(x + left, 0);\n\n documentSelect.on('mousemove.swipe touchmove.swipe', onMove);\n documentSelect.on('mouseup.swipe touchend.swipe', onEnd);\n },\n [container, body, node, onEnd, onMove, documentSelect]\n );\n\n useEffect(() => {\n if (node) {\n const { width: nodeWidth } = node.getBoundingClientRect();\n\n if (width > nodeWidth) {\n container.style('cursor', 'grab');\n container.on('mousedown.swipe touchstart.swipe', onStart);\n }\n }\n }, [container, onStart, node, width]);\n};\n","import React, { FC } from \"react\";\n\nimport { SwipeScrollContainer } from './styled';\n\nimport { useNode } from '../../../hooks';\nimport { useSwipe } from './hooks/useSwipe';\n\nimport { SwipeScrollProps } from './types';\n\nexport const SwipeScroll: FC<SwipeScrollProps> = ({\n children,\n width,\n onSwipe,\n ...props\n}) => {\n const [ref, draggingNode] = useNode();\n\n useSwipe(draggingNode, { width, onSwipe, ...props });\n\n return (\n <SwipeScrollContainer {...props}>\n <div ref={ref}>{children}</div>\n </SwipeScrollContainer>\n );\n};\n\nSwipeScroll.defaultProps = {\n duration: 1400,\n};\n","const degByIndex = (index: number, count: number): number => {\n const degs = 360;\n const deg = (degs / count) * index;\n\n return deg;\n};\n\nexport const getTextAnchor = (\n index: number,\n length: number\n): 'start' | 'middle' | 'end' => {\n const deg = degByIndex(index, length);\n const halfAngle = 180;\n\n if ([0, halfAngle].includes(deg)) {\n return 'middle';\n }\n if (deg < halfAngle) {\n return 'start';\n }\n\n return 'end';\n};\n\nexport const getMaxWidth = (elements: SVGElement[]) => {\n let maxWidth = 0;\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n\n if (element && 'getBoundingClientRect' in element) {\n maxWidth = Math.max(maxWidth, element.getBoundingClientRect().width);\n }\n }\n\n return maxWidth;\n};\n","import styled from 'styled-components';\n\nimport { LabelContainerProps } from './types';\n\nconst getTranslate = ({\n anchor,\n index,\n translateX,\n translateY,\n}: LabelContainerProps) => {\n if (index === 0 && anchor === 'middle') {\n return `translate(calc(-50% + ${translateX}px), calc(-100% + ${translateY}px))`;\n } else if (anchor === 'middle') {\n return `translate(calc(-50% + ${translateX}px), calc(${translateY}px))`;\n } else if (anchor === 'start') {\n return `translate(calc(${translateX}px), calc(-50% + ${translateY}px))`;\n } else if (anchor === 'end') {\n return `translate(calc(-100% + ${translateX}px), calc(-50% + ${translateY}px))`;\n }\n return `translate(${translateX}px, ${translateY}px)`;\n};\n\nexport const LabelContainer = styled.div.attrs<LabelContainerProps>(props => ({\n style: {\n transform: getTranslate(props),\n },\n}))<LabelContainerProps>`\n position: absolute;\n`;\n","import * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\nimport React from 'react';\n\nimport { DrawRadialLabels } from './types';\n\nimport { getTextAnchor } from '../helpers';\nimport { LabelContainer } from './styled';\n\nconst labelClassName = 'd3-chart-label';\n\nexport const drawRadialLabels = ({\n node,\n dataLength,\n radiusScale,\n maxValue,\n angleSlice,\n radius,\n xOffset,\n yOffset,\n translateX,\n translateY,\n renderLabel,\n selectLabel,\n}: DrawRadialLabels) => {\n const d3container = d3.select(node);\n d3container.selectAll(`.${labelClassName}`).remove();\n\n const pxToValue = (value: number) => (maxValue / radius) * value;\n const axisX = (i: number) =>\n (radiusScale(maxValue + pxToValue(xOffset || 0)) as number) *\n Math.cos(angleSlice * i - Math.PI / 2);\n\n const axisY = (i: number) =>\n radiusScale(\n (maxValue + pxToValue(yOffset || 0)) *\n Math.sin(angleSlice * i - Math.PI / 2)\n ) as number;\n\n const labels = Array.from({ length: dataLength }, (_, index) => ({\n x: Math.ceil(axisX(index)),\n y: Math.ceil(axisY(index)),\n }));\n\n labels.forEach(({ x, y }: { x: number; y: number }, index: number) => {\n const anchor = getTextAnchor(index, dataLength);\n const html = ReactDOMServer.renderToString(\n <LabelContainer\n anchor={anchor}\n translateX={translateX || 0}\n translateY={translateY || 0}\n index={index}\n style={{\n left: x,\n top: y,\n }}\n >\n {typeof renderLabel === 'function'\n ? renderLabel(anchor, index)\n : renderLabel}\n </LabelContainer>\n );\n\n const label = d3container\n .append('div')\n .attr('class', labelClassName)\n .html(html);\n\n selectLabel(label, anchor, index);\n });\n};\n","import styled, { css } from \"styled-components\";\n\nimport { LabelContainerProps } from \"./types\";\n\nexport const getTranslate = ({\n anchor,\n index,\n translateX,\n translateY,\n}: LabelContainerProps) => {\n if (index === 0 && anchor === \"middle\") {\n return `translate(calc(-50% + ${translateX}px), calc(-100% + ${translateY}px))`;\n } else if (anchor === \"middle\") {\n return `translate(calc(-50% + ${translateX}px), calc(${translateY}px))`;\n } else if (anchor === \"start\") {\n return `translate(calc(${translateX}px), calc(-50% + ${translateY}px))`;\n } else if (anchor === \"end\") {\n return `translate(calc(-100% + ${translateX}px), calc(-50% + ${translateY}px))`;\n }\n return `translate(${translateX}px, ${translateY}px)`;\n};\n\nexport const Label = styled.div`\n display: flex;\n align-items: center;\n font-size: 12px;\n`;\n\nexport const Name = styled.div`\n text-align: center;\n max-width: 120px;\n`;\n\nconst middleBadgeStyles = css`\n position: absolute;\n top: 50%;\n right: 0;\n transform: translate(calc(100% + 6px), -50%);\n`;\n\nexport const DefaultBadge = styled.div`\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border-radius: 4px;\n color: rgb(255, 255, 255);\n background-color: rgb(144, 197, 61);\n margin-left: 8px;\n`;\n\nexport const MiddleBadge = styled(DefaultBadge)`\n ${middleBadgeStyles}\n`;\n\nexport const BadgePrefix = styled.div`\n margin-left: 4px;\n font-size: 10px;\n color: rgba(255, 255, 255, 0.54);\n`;\n","import styled from 'styled-components';\n\nimport { Wrapper } from '../../common/components/Wrapper';\n\nexport const radarChartclassNames = {\n radar: 'radar',\n radarAxis: 'radarAxis',\n radarAxisTextGlobal: 'radarAxisTextGlobal',\n radarAxisText: 'radarAxisText',\n radarPolygon: 'radarPolygon',\n radarLabel: 'radarLabel',\n radarLabelName: 'radarLabelName',\n radarLabelBadge: 'radarLabelBadge',\n radarLabelBadgePrefix: 'radarLabelBadgePrefix',\n radarCircle: 'radarCircle',\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${radarChartclassNames.radarAxis} {\n path,\n line,\n circle {\n fill: none;\n stroke-width: 1px;\n stroke: rgba(149, 149, 149, 0.18);\n }\n }\n .${radarChartclassNames.radarAxisText} {\n font-size: 12px;\n fill-opacity: 0.56;\n }\n .${radarChartclassNames.radarPolygon} {\n fill-opacity: 0.06;\n stroke-width: 2px;\n fill: rgb(144, 197, 61);\n stroke: rgb(144, 197, 61);\n }\n .${radarChartclassNames.radarCircle} {\n fill: rgb(144, 197, 61);\n }\n`;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport * as d3 from 'd3';\n\nimport { RadarChartProps } from './types';\n\nimport { appendSvg } from '../../helpers';\nimport { drawRadialLabels } from './drawRadialLabels';\n\nimport {\n Label,\n MiddleBadge,\n DefaultBadge,\n Name,\n BadgePrefix,\n} from '../../common/components/labels';\nimport { radarChartclassNames } from './styled';\n\nexport const draw = (\n node: HTMLElement | null,\n props: RadarChartProps\n): void => {\n const {\n data,\n curve,\n polar,\n formatValue,\n badgePrefix,\n labelOffset,\n circleRadius,\n svgElements,\n renderLabel,\n customize,\n formatAxisValue,\n radarStyles,\n labelIndex,\n selectLabel,\n } = props;\n\n if (node !== null && data.length) {\n const defaultBleedLength = 10;\n const bleedLength =\n typeof props.bleedLength === 'number'\n ? props.bleedLength\n : defaultBleedLength;\n\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const defaultHeight = 400;\n const height = props.height || defaultHeight;\n\n const minValue =\n props.minValue ||\n Math.min(\n 0,\n d3.min(data, i => d3.min(i.map(({ value }) => value))) as number\n );\n const maxValue =\n (props.maxValue ||\n Math.max(\n 0,\n d3.max(data, i => d3.max(i.map(({ value }) => value))) as number\n )) - minValue;\n const paddingX = props.paddingX || 0;\n const paddingY = props.paddingY || 0;\n const radius = Math.min(\n (width - paddingX * 2 - bleedLength * 2) / 2,\n (height - paddingY * 2 - bleedLength * 2) / 2\n );\n\n const defaultLevels = 4;\n const ticks = d3\n .scaleLinear()\n .domain([0, maxValue || 1])\n .range([])\n .ticks(props.levels || defaultLevels);\n const lastTick = ticks[ticks.length - 1];\n const newLastTick = lastTick + (ticks[1] - ticks[0]);\n\n if (lastTick < maxValue) {\n ticks.push(newLastTick);\n }\n\n const levels = props.levels || ticks.length - 1;\n const newMaxValue = ticks[ticks.length - 1];\n const angleSlice = (Math.PI * 2) / data[0].length;\n\n const radiusScale = d3\n .scaleLinear()\n .range([0, radius])\n .domain([0, newMaxValue]);\n\n const radarLine = d3\n .lineRadial()\n .curve(d3.curveLinearClosed)\n // @ts-ignore\n .radius(({ value }) => radiusScale(value) as number)\n .angle((_, i) => i * angleSlice);\n const radarValue = d3\n .lineRadial()\n .curve(curve || d3.curveLinearClosed)\n // @ts-ignore\n .radius(({ value }) => radiusScale(value) as number)\n .angle((_, i) => i * angleSlice);\n\n const svg = appendSvg(node, width, height);\n const globalCenter = svg.append('g');\n\n const levelsGrid = d3.range(1, levels + 1).reverse();\n const axisGridY = (value: number) => (-value * radius) / levels;\n const getAxisValue = (value: number) => (newMaxValue * value) / levels;\n\n const gridGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radarAxis)\n .selectAll()\n .data([data[0]])\n .enter();\n\n const radarGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radar);\n\n const axis = gridGlobal\n .selectAll()\n .data(data[0].map(({ name }) => name))\n .enter();\n\n let maxGridHeight = 0;\n\n if (polar) {\n levelsGrid.forEach(value => {\n const path = gridGlobal\n .append('circle')\n .attr('cx', 0)\n .attr('cy', 0)\n .attr('r', () => (radius / levels) * value);\n\n const circleNode = path.node() as SVGCircleElement;\n const circleHeight = circleNode.getBoundingClientRect().height;\n maxGridHeight = Math.max(maxGridHeight, circleHeight);\n });\n } else {\n levelsGrid.map(getAxisValue).forEach(value => {\n const path = gridGlobal.append('path').attr('d', () =>\n // @ts-ignore\n radarLine(Array.from({ length: data[0].length }, () => ({ value })))\n );\n const pathNode = path.node() as SVGPathElement;\n const pathHeight = pathNode.getBoundingClientRect().height;\n maxGridHeight = Math.max(maxGridHeight, pathHeight);\n });\n }\n\n const radiusByMaxValue = (radiusScale(newMaxValue) as number) + bleedLength;\n\n axis\n .append('line')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', (_, i) =>\n Math.round(radiusByMaxValue * Math.cos(angleSlice * i - Math.PI / 2))\n )\n .attr('y2', (_, i) =>\n Math.round(radiusByMaxValue * Math.sin(angleSlice * i - Math.PI / 2))\n );\n\n radarGlobal\n .selectAll('path')\n .data(data)\n .join('path')\n .attr('class', radarChartclassNames.radarPolygon)\n .attr('style', (_, index) => radarStyles?.[index] || '')\n .attr('d', d =>\n radarValue(\n // @ts-ignore\n d.map(dataItem => ({\n ...dataItem,\n value: dataItem.value - minValue,\n }))\n )\n );\n\n const format = d3.format(',');\n const axisTextGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radarAxisTextGlobal);\n axisTextGlobal\n .selectAll('text')\n .data(levelsGrid)\n .enter()\n .append('text')\n .attr('class', radarChartclassNames.radarAxisText)\n .attr('x', '4')\n .attr('y', axisGridY)\n .attr('dy', 0)\n .attr('dominant-baseline', 'central')\n .text((value, index) => {\n const axisValue = getAxisValue(value) + minValue;\n\n return formatAxisValue\n ? formatAxisValue(axisValue, index)\n : format(axisValue);\n });\n\n circleRadius &&\n data.forEach(item => {\n const circleGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radarCircle);\n\n item.forEach(({ value }, i) => {\n circleGlobal\n .append('circle')\n .attr(\n 'cx',\n Math.round(\n (radiusScale(value) as number) *\n Math.cos(angleSlice * i - Math.PI / 2)\n )\n )\n .attr(\n 'cy',\n Math.round(\n radiusScale(\n value * Math.sin(angleSlice * i - Math.PI / 2)\n ) as number\n )\n )\n .attr('r', circleRadius);\n });\n });\n\n const defaultLabelOffset = 8;\n const heightInner = height - bleedLength - paddingY;\n const translateX = width / 2;\n const translateY = heightInner / 2 + (heightInner - maxGridHeight) / 2;\n const offset = bleedLength + (labelOffset || defaultLabelOffset);\n\n globalCenter.attr('transform', `translate(${translateX},${translateY})`);\n\n drawRadialLabels({\n node,\n maxValue: newMaxValue,\n translateX,\n translateY,\n dataLength: data[labelIndex || 0].length,\n angleSlice,\n radius,\n radiusScale,\n xOffset: offset,\n yOffset: offset,\n renderLabel: (anchor, index) => {\n const items = data.map(item => item[index]);\n const Badge = anchor === 'middle' ? MiddleBadge : DefaultBadge;\n const item = data[labelIndex || 0][index];\n const { name, value } = item;\n\n return renderLabel ? (\n renderLabel({ item, items, anchor, index })\n ) : (\n <Label className={radarChartclassNames.radarLabel}>\n <Name className={radarChartclassNames.radarLabelName}>{name}</Name>\n <Badge className={radarChartclassNames.radarLabelBadge}>\n {formatValue ? formatValue(value, index) : format(value)}\n {badgePrefix && (\n <BadgePrefix\n className={radarChartclassNames.radarLabelBadgePrefix}\n >\n {badgePrefix}\n </BadgePrefix>\n )}\n </Badge>\n </Label>\n );\n },\n selectLabel: (label, anchor, index) => {\n if (selectLabel) {\n const items = data.map(item => item[index]);\n const item = data[labelIndex || 0][index];\n\n selectLabel(label, { index, item, items, anchor });\n }\n },\n });\n\n if (svgElements) {\n const html = ReactDOMServer.renderToString(svgElements);\n\n svg.append('g').html(html);\n }\n\n customize && customize(svg);\n }\n};\n","import React, { useEffect } from 'react';\nimport * as d3 from 'd3';\n\nimport { RadarChartProps } from './types';\n\nimport { useNode } from '../../hooks';\nimport { useResize } from '../../hooks';\n\nimport { draw } from './draw';\n\nimport { SvgWrapper } from './styled';\n\nexport const RadarChart: React.FC<RadarChartProps> = (\n props\n): React.ReactElement => {\n const { className, style } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <SvgWrapper ref={ref} />\n </div>\n );\n};\n\nRadarChart.defaultProps = {\n height: 400,\n data: [],\n curve: d3.curveLinearClosed,\n};\n","export function radiansToDegrees(radians: number): number {\n const flatAngle = 180;\n\n return (radians * flatAngle) / Math.PI;\n}\n\nexport function degreesToRadians(degrees: number): number {\n const flatAngle = 180;\n\n return degrees * (Math.PI / flatAngle);\n}\n","import styled from 'styled-components';\n\nimport { Wrapper } from '../../common/components/Wrapper';\n\nexport const pieChartclassNames = {\n pieGlobal: 'pieGlobal',\n pieSlice: 'pieSlice',\n pieSliceLabel: 'pieSliceLabel',\n pieSliceLabelValue: 'pieSliceLabelValue',\n pieSliceLabelName: 'pieSliceLabelName',\n pieRadialLabel: 'pieRadialLabel',\n pieRadialLink: 'pieRadialLink',\n pieTooltipContainer: 'pieTooltipContainer',\n pieTooltipFlex: 'pieTooltipFlex',\n pieTooltip: 'pieTooltip',\n pieTooltipItem: 'pieTooltipItem',\n pieTooltipName: 'pieTooltipName',\n pieTooltipValue: 'pieTooltipValue',\n pieTooltipColorBox: 'pieTooltipColorBox',\n pieFullChartTooltipCircle: 'pieFullChartTooltipCircle',\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${pieChartclassNames.pieSliceLabel} {\n fill: #4a4a4a;\n }\n .${pieChartclassNames.pieRadialLabel} {\n position: absolute;\n max-width: 128px;\n }\n .${pieChartclassNames.pieRadialLink} {\n stroke: #000;\n }\n .${pieChartclassNames.pieFullChartTooltipCircle} {\n fill: transparent;\n cursor: pointer;\n }\n`;\n","import { PieChartDatum } from '../types';\n\nexport const getMidFactor = (d: PieChartDatum) =>\n d.startAngle + (d.endAngle - d.startAngle) / 2 < Math.PI ? 1 : -1;\n\nexport const getAlign = (d: PieChartDatum): 'start' | 'end' => {\n const midangle = d.startAngle + (d.endAngle - d.startAngle) / 2;\n\n return midangle < Math.PI ? 'start' : 'end';\n};\n","import * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawRadialLabels } from './types';\nimport { PieChartDatum } from '../types';\n\nimport { pieChartclassNames } from '../styled';\nimport { getMidFactor, getAlign } from './helpers';\nimport { getTranslate } from '../../../common/components/labels';\n\nexport const drawRadialLabels = ({\n arc,\n enableRadialLabels,\n global,\n node,\n radius,\n dataReady,\n radialLabelsLinkHorizontalLength,\n formatRadialLabel,\n radialLabelsTextXOffset,\n translateX,\n translateY,\n radialLabelYOffset,\n radialAngleXOffset,\n}: DrawRadialLabels): void => {\n const d3container = d3.select(node);\n d3container.selectAll(`.${pieChartclassNames.pieRadialLabel}`).remove();\n\n if (enableRadialLabels) {\n const defaultRadialLabelsLinkHorizontalLength = 4;\n const outerArc = d3\n .arc()\n .innerRadius(radius)\n .outerRadius(radius);\n\n global\n .selectAll('allPolylines')\n .data(dataReady)\n .enter()\n .append('polyline')\n .attr('class', pieChartclassNames.pieRadialLink)\n .style('fill', 'none')\n .attr('points', (d: PieChartDatum) => {\n const midFactor = getMidFactor(d);\n const posA = arc.centroid(d);\n const posB = outerArc.centroid(d);\n const posC = outerArc.centroid(d);\n const posCPi = [\n (radius +\n (radialLabelsLinkHorizontalLength ||\n defaultRadialLabelsLinkHorizontalLength)) *\n midFactor,\n posC[1],\n ];\n return [\n [posA[0], posA[1]],\n [\n posB[0] + (radialAngleXOffset || 0) * midFactor,\n posB[1] - (radialLabelYOffset || 0) * d.index,\n ],\n [posCPi[0], posCPi[1] - (radialLabelYOffset || 0) * d.index],\n ];\n });\n\n const getPosition = (d: PieChartDatum): [number, number] => {\n const pos = outerArc.centroid(d);\n return [\n (radius +\n (radialLabelsLinkHorizontalLength ||\n defaultRadialLabelsLinkHorizontalLength)) *\n getMidFactor(d),\n pos[1],\n ];\n };\n\n const defaultRadialLabelsTextXOffset = 4;\n d3container\n .selectAll('allLabels')\n .data(dataReady)\n .enter()\n .append('div')\n // @ts-ignore\n .html((d: PieChartDatum) => {\n const html = ReactDOMServer.renderToString(\n // @ts-ignore\n formatRadialLabel ? formatRadialLabel(d) : d.data.name\n );\n\n return html;\n })\n .attr('class', pieChartclassNames.pieRadialLabel)\n // @ts-ignore\n .style('transform', (d: PieChartDatum) =>\n getTranslate({\n anchor: getAlign(d),\n index: d.index,\n translateX,\n translateY: translateY - (radialLabelYOffset || 0) * d.index,\n })\n )\n // @ts-ignore\n .style(\n 'left',\n // @ts-ignore\n (d: PieChartDatum) =>\n `${getPosition(d)[0] -\n (getAlign(d) === 'start'\n ? -(radialLabelsTextXOffset || defaultRadialLabelsTextXOffset)\n : radialLabelsTextXOffset || defaultRadialLabelsTextXOffset)}px`\n )\n // @ts-ignore\n .style('top', (d: PieChartDatum) => `${getPosition(d)[1]}px`)\n // @ts-ignore\n .style('text-align', getAlign);\n }\n};\n","import styled from \"styled-components\";\n\nexport const TooltipFlex = styled.div`\n width: 0;\n height: 0;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n pointer-events: none;\n white-space: nowrap;\n`;\n\nexport const LabelFlex = styled(TooltipFlex)``;\n\nexport const LabelFlexCenter = styled(LabelFlex)`\n align-items: center;\n`;\n\nexport const TooltipContainer = styled.div`\n position: relative;\n font-size: 11px;\n color: #fff;\n margin-bottom: 8px;\n padding: 4px 6px;\n background-color: rgba(48, 69, 79, 1);\n border-radius: 4px;\n box-shadow: 0 0.1875rem 0.5rem rgba(48, 69, 79, 0.06);\n\n :before {\n content: '';\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translate(-50%, 100%);\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 3px 0 3px;\n border-color: rgba(48, 69, 79, 1) transparent transparent transparent;\n }\n`;\n\nexport const TooltipGroupName = styled.div`\n font-size: 14px;\n margin-bottom: 6px;\n`;\n\nexport const TooltipItem = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 0.25rem;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`;\n\nexport const ColFlex = styled.div`\n display: flex;\n align-items: center;\n margin-right: 4px;\n`;\n\nexport const ColorBox = styled.div`\n margin-right: 4px;\n width: 10px;\n height: 10px;\n border-radius: 2px;\n`;\n\nexport const ColorLine = styled(ColorBox)`\n height: 2px;\n border-radius: 0;\n`;\n\nexport const Name = styled.div`\n margin-right: 4px;\n`;\n\nexport const Value = styled.div`\n text-align: right;\n flex-shrink: 0;\n flex-grow: 1;\n`;\n\nexport const Label = styled.div`\n position: relative;\n font-size: 11px;\n color: #fff;\n font-weight: bold;\n letter-spacing: 0.52px;\n`;\n\nexport const LabelTop = styled(Label)`\n top: 6px;\n`;\n\nexport const LabelBottom = styled(Label)`\n bottom: 6px;\n`;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport * as d3 from 'd3';\n\nimport { pieChartclassNames as classNames } from '../styled';\n\nimport { DrawTooltipProps } from './types';\n\nimport {\n TooltipContainer,\n TooltipFlex,\n TooltipItem,\n Value,\n Name,\n ColorBox,\n} from '../../../common/components/tooltips';\nimport { PieChartData, PieChartDatum } from '../types';\n\nexport const drawTooltip = ({\n fullChartTooltip,\n global,\n tooltipRoot,\n data,\n tooltipClassName,\n tooltipBind,\n renderTooltip,\n arc,\n allSlices,\n tooltipStyle,\n width,\n height,\n radius,\n}: DrawTooltipProps) => {\n const container: Element | null =\n tooltipRoot || document.querySelector('body');\n const format = d3.format(',');\n const pieTooltipContainer: d3.Selection<\n HTMLDivElement,\n unknown,\n null,\n undefined\n > = d3.select(container).select(`.${classNames.pieTooltipContainer}`);\n const isEmpty = pieTooltipContainer.empty();\n\n const tooltipContainer = isEmpty\n ? d3\n .select(container)\n .append('div')\n .attr(\n 'class',\n `${classNames.pieTooltipContainer} ${tooltipClassName || ''}`\n )\n .style('position', 'absolute')\n .style('opacity', '0')\n .style('z-index', '103')\n : pieTooltipContainer;\n\n if (tooltipStyle) {\n Object.entries(tooltipStyle).forEach(([prop, val]) =>\n tooltipContainer.style(prop, val)\n );\n }\n\n tooltipContainer.html('');\n let isVisible = false;\n\n const setVisible = (visible?: boolean) => {\n isVisible = Boolean(visible);\n const opacity = isVisible ? '1' : '0';\n tooltipContainer.style('opacity', opacity);\n };\n\n const setPosition = (event: any, pieChartDatum?: PieChartDatum) => {\n let [x, y] = d3.pointer(event, document);\n\n if (!tooltipBind && fullChartTooltip) {\n const [itemX, itemY] = d3.pointer(event, event.target);\n\n x = x - itemX;\n y = y - itemY;\n } else if (!tooltipBind) {\n const globalNode = global.node();\n const {\n x: itemX,\n y: itemY,\n width: itemWidth,\n height: itemHeight,\n } = globalNode\n ? globalNode.getBoundingClientRect()\n : { x: 0, y: 0, width: 0, height: 0 };\n const [arcX, arcY] = arc.centroid(pieChartDatum as d3.DefaultArcObject);\n x = itemX + itemWidth / 2 + arcX;\n y = itemY + itemHeight / 2 + arcY;\n }\n\n tooltipContainer.style('left', x + 'px').style('top', y + 'px');\n };\n\n const setTooltip = (event: any, pieChartDatum?: PieChartDatum) => {\n setVisible(true);\n setPosition(event, pieChartDatum);\n const pieChartData = pieChartDatum ? [pieChartDatum.data] : data;\n\n tooltipContainer.html(() => {\n const html = ReactDOMServer.renderToString(\n <TooltipFlex className={classNames.pieTooltipFlex}>\n <TooltipContainer className={classNames.pieTooltip}>\n {renderTooltip ? (\n renderTooltip(pieChartData)\n ) : (\n <>\n {pieChartData.map(\n ({ color, name, value }: PieChartData, index: number) => (\n <TooltipItem\n key={`${name}-${index}`}\n className={classNames.pieTooltipItem}\n >\n {color && (\n <ColorBox\n className={classNames.pieTooltipColorBox}\n style={{ backgroundColor: color }}\n />\n )}\n {name && (\n <Name className={classNames.pieTooltipName}>\n {name}\n </Name>\n )}\n <Value className={classNames.pieTooltipValue}>\n {format(value)}\n </Value>\n </TooltipItem>\n )\n )}\n </>\n )}\n </TooltipContainer>\n </TooltipFlex>\n );\n\n return html;\n });\n };\n\n if (fullChartTooltip) {\n global.on('mouseover.fulltooltip', event => setTooltip(event));\n global.on('mouseout.fulltooltip', () => {\n tooltipContainer.html('');\n setVisible();\n });\n\n if (width && height) {\n global\n .append('circle')\n .attr('class', classNames.pieFullChartTooltipCircle)\n .attr('r', radius)\n .attr('cx', 0)\n .attr('cy', 0);\n }\n\n if (!tooltipBind) {\n global.on('touchmove.tooltipBind mousemove.tooltipBind', event =>\n setPosition(event)\n );\n }\n } else {\n allSlices.on('mouseover.slice', setTooltip);\n if (!tooltipBind) {\n allSlices.on('touchmove.slice mousemove.slice', setPosition);\n }\n allSlices.on('mouseout.slice', () => {\n tooltipContainer.html('');\n setVisible();\n });\n }\n};\n","import * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { PieChartProps, PieChartDatum } from './types';\n\nimport { appendSvg } from '../../helpers';\nimport { degreesToRadians, radiansToDegrees } from '../../helpers/math';\nimport { drawRadialLabels } from './drawRadialLabels';\nimport { drawTooltip } from './drawTooltips';\n\nimport { pieChartclassNames } from './styled';\n\nexport const draw = (node: HTMLElement | null, props: PieChartProps): void => {\n const {\n data,\n padAngle,\n onClick,\n outerRadius,\n startAngle,\n endAngle,\n cornerRadius,\n margin,\n enableSlicesLabels,\n formatSliceLabel,\n slicesLabelsSkipAngle,\n enableSlicesLabelsName,\n formatSliceLabelName,\n borderWidth,\n borderColor,\n enableRadialLabels,\n backgroundColor,\n radialLabelsLinkHorizontalLength,\n radialLabelsTextXOffset,\n formatRadialLabel,\n radialLabelYOffset,\n svgElements,\n formatSliceTitle,\n radialAngleXOffset,\n withTooltip,\n fullChartTooltip,\n tooltipClassName,\n tooltipBind,\n renderTooltip,\n tooltipStyle,\n } = props;\n\n if (node !== null && data.length) {\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const defaultHeight = 240;\n const height = props.height || defaultHeight;\n const radius =\n (Math.min(width, height) -\n (borderWidth || 0) * 2 -\n (width > height\n ? marginTop + marginBottom\n : marginRight + marginLeft)) /\n 2;\n\n const svg = appendSvg(node, width, height);\n const global = svg\n .append('g')\n .attr('class', pieChartclassNames.pieGlobal)\n .attr(\n 'transform',\n `translate(${(width - (marginLeft + marginRight)) / 2 +\n marginLeft},${(height - (marginBottom + marginTop)) / 2 + marginTop})`\n );\n\n const maxPadAngle = 45;\n const dividerPadAngle = 100;\n const fullAngle = 360;\n\n const pie = d3\n .pie()\n .startAngle(-degreesToRadians(startAngle || 0))\n .endAngle(degreesToRadians(endAngle || fullAngle))\n .padAngle(\n padAngle\n ? Math.max(Math.min(padAngle / dividerPadAngle, maxPadAngle), 0)\n : 0\n )\n .sort(null)\n // @ts-ignore\n .value(({ value }) => value);\n\n // @ts-ignore\n const dataReady = pie(data) as PieChartDatum[];\n\n const maxOuterRadius = 0.95;\n const arc = d3\n .arc()\n .cornerRadius(cornerRadius || 0)\n .innerRadius(radius)\n .outerRadius(\n radius * Math.min(Math.max(outerRadius || 0, 0), maxOuterRadius)\n );\n\n if (typeof backgroundColor === 'string') {\n global\n .append('path')\n .attr('fill', backgroundColor)\n .attr('d', () =>\n // @ts-ignore\n arc({\n startAngle: degreesToRadians(0),\n endAngle: degreesToRadians(fullAngle),\n })\n );\n }\n\n const format = d3.format(',');\n const allSlices = global\n .selectAll('allSlices')\n .data(dataReady)\n .enter()\n .append('path')\n // @ts-ignore\n .attr('d', arc);\n\n allSlices\n .attr('class', pieChartclassNames.pieSlice)\n .attr('fill', ({ index }) => data[index].color || '')\n .attr('stroke', borderColor || '')\n .attr('stroke-width', borderWidth || 0)\n .attr('style', onClick ? 'cursor: pointer' : '')\n .on(\n 'click',\n // @ts-ignore\n (_, d) => onClick && onClick(data[d.index])\n )\n .append('svg:title')\n .text(d =>\n formatSliceTitle\n ? // @ts-ignore\n formatSliceTitle(d)\n : fullChartTooltip || withTooltip\n ? ''\n : `${data[d.index].name || ''} (${format(data[d.index].value)})`\n );\n\n if (enableSlicesLabels) {\n const text = global\n .selectAll('allSlices')\n .data(dataReady)\n .enter()\n .append('text')\n .attr('class', pieChartclassNames.pieSliceLabel)\n .attr('text-anchor', 'middle')\n .attr('dominant-baseline', 'central')\n .attr(\n 'transform',\n // @ts-ignore\n (d: PieChartDatum) => 'translate(' + arc.centroid(d) + ')'\n );\n\n text\n .append('tspan')\n .attr('class', pieChartclassNames.pieSliceLabelValue)\n // @ts-ignore\n .text((d: PieChartDatum) => {\n const deg = radiansToDegrees(d.endAngle - d.startAngle);\n\n if (!slicesLabelsSkipAngle || deg > slicesLabelsSkipAngle) {\n return formatSliceLabel ? formatSliceLabel(d) : d.value;\n }\n });\n\n if (enableSlicesLabelsName) {\n text\n .append('tspan')\n .attr('class', pieChartclassNames.pieSliceLabelName)\n // @ts-ignore\n .text((d: PieChartDatum) =>\n formatSliceLabelName ? formatSliceLabelName(d) : d.data.name\n )\n .attr('x', '0')\n .attr('dy', '1.2em');\n }\n }\n\n drawRadialLabels({\n arc,\n enableRadialLabels,\n global,\n radius,\n node,\n dataReady,\n translateX: (width - (marginLeft - marginRight)) / 2,\n translateY: (height + (marginTop - marginBottom)) / 2,\n radialLabelsLinkHorizontalLength,\n radialLabelsTextXOffset,\n formatRadialLabel,\n radialLabelYOffset,\n radialAngleXOffset,\n });\n\n if (withTooltip || fullChartTooltip) {\n drawTooltip({\n fullChartTooltip,\n global,\n data,\n tooltipClassName,\n tooltipBind,\n renderTooltip,\n allSlices,\n arc,\n tooltipStyle,\n width,\n height,\n radius,\n });\n }\n\n if (svgElements) {\n const html = ReactDOMServer.renderToString(svgElements);\n\n svg.append('g').html(html);\n }\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { PieChartProps } from \"./types\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\n\nimport { draw } from \"./draw\";\n\nimport { SvgWrapper } from \"./styled\";\n\nexport const PieChart: FC<PieChartProps> = (\n props,\n) => {\n const { className, style, children } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <SvgWrapper ref={ref}>{children}</SvgWrapper>\n </div>\n );\n};\n\nPieChart.defaultProps = {\n data: [],\n startAngle: 0,\n endAngle: 360,\n slicesLabelsSkipAngle: 0,\n radialLabelYOffset: 16,\n radialAngleXOffset: 8,\n};\n","import * as d3 from 'd3';\n\nimport { Interpolator } from '../../common/types/interpolator';\nimport { GetLegendProps } from './types';\n\nconst defaultN = 256;\n\nexport const legendClassNames = {\n legendContainer: 'd3-legend-container',\n legendTitle: 'd3-legend-title',\n legendTick: 'd3-legend-tick',\n legendTickLine: 'd3-legend-tick-line',\n legendTickText: 'd3-legend-tick-text',\n};\n\nfunction ramp(color: Interpolator, n: number = defaultN) {\n const canvas = document.createElement('canvas');\n canvas.width = n;\n canvas.height = 1;\n const context = canvas.getContext('2d') as CanvasRenderingContext2D;\n\n for (let i = 0; i < n; ++i) {\n context.fillStyle = color(i / (n - 1));\n context.fillRect(i, 0, 1, 1);\n }\n\n return canvas;\n}\n\nexport const legendDefaultParams = {\n tickSize: 6,\n height: 44,\n width: 320,\n marginTop: 18,\n marginBottom: 16,\n ticksDivier: 64,\n titleMarginBottom: 6,\n};\n\nexport const getLegend = ({\n color,\n title,\n tickSize = legendDefaultParams.tickSize,\n width = legendDefaultParams.width,\n height = legendDefaultParams.height + tickSize,\n marginTop = legendDefaultParams.marginTop,\n marginRight = 0,\n marginBottom = legendDefaultParams.marginBottom + tickSize,\n marginLeft = 0,\n ticks = legendDefaultParams.width / legendDefaultParams.ticksDivier,\n tickFormat,\n tickValues,\n titleMarginBottom,\n}: GetLegendProps) => {\n const svg = d3\n .create('svg')\n .attr('width', width)\n .attr('height', height)\n // @ts-ignore\n .attr('viewBox', [0, 0, width, height])\n .style('overflow', 'visible')\n .style('display', 'block');\n\n let tickAdjust = (g: d3.Selection<SVGGElement, any, any, any>) => {\n const tick = g.selectAll('.tick');\n\n tick\n .selectAll('.tick line')\n .attr('y1', marginTop + marginBottom - height)\n .attr('class', legendClassNames.legendTickLine);\n tick.selectAll('.tick text').attr('class', legendClassNames.legendTickText);\n tick.attr('class', legendClassNames.legendTick);\n\n return tick;\n };\n let x: any;\n\n // Continuous\n if (color.interpolate) {\n const n = Math.min(color.domain().length, color.range().length);\n\n x = color\n .copy()\n .rangeRound(\n d3.quantize(d3.interpolate(marginLeft, width - marginRight), n)\n );\n\n svg\n .append('image')\n .attr('x', marginLeft)\n .attr('y', marginTop)\n .attr('class', legendClassNames.legendContainer)\n .attr('width', width - marginLeft - marginRight)\n .attr('height', height - marginTop - marginBottom)\n .attr('preserveAspectRatio', 'none')\n .attr(\n 'xlink:href',\n ramp(\n color.copy().domain(d3.quantize(d3.interpolate(0, 1), n))\n ).toDataURL()\n );\n }\n\n // Sequential\n else if (color.interpolator) {\n x = Object.assign(\n color\n .copy()\n .interpolator(d3.interpolateRound(marginLeft, width - marginRight)),\n {\n range() {\n return [marginLeft, width - marginRight];\n },\n }\n );\n\n svg\n .append('image')\n .attr('x', marginLeft)\n .attr('y', marginTop)\n .attr('width', width - marginLeft - marginRight)\n .attr('height', height - marginTop - marginBottom)\n .attr('preserveAspectRatio', 'none')\n .attr('xlink:href', ramp(color.interpolator()).toDataURL());\n\n // scaleSequentialQuantile doesn’t implement ticks or tickFormat.\n if (!x.ticks) {\n if (tickValues === undefined) {\n const n = Math.round(ticks + 1);\n tickValues = d3\n .range(n)\n .map(i => d3.quantile(color.domain(), i / (n - 1)));\n }\n if (typeof tickFormat !== 'function') {\n tickFormat = d3.format(tickFormat === undefined ? ',f' : tickFormat);\n }\n }\n }\n\n svg\n .append('g')\n .attr('transform', `translate(0,${height - marginBottom})`)\n // @ts-ignore\n .call(\n d3\n .axisBottom(x)\n .ticks(ticks, typeof tickFormat === 'string' ? tickFormat : undefined)\n // @ts-ignore\n .tickFormat(typeof tickFormat === 'function' ? tickFormat : undefined)\n .tickSize(tickSize)\n // @ts-ignore\n .tickValues(tickValues),\n )\n .call(tickAdjust)\n .call(g => g.select('.domain').remove())\n .call(g =>\n g\n .append('text')\n .attr('x', marginLeft)\n .attr('class', legendClassNames.legendTitle)\n .attr(\n 'y',\n marginTop +\n marginBottom -\n height -\n (titleMarginBottom || legendDefaultParams.titleMarginBottom)\n )\n .attr('fill', 'currentColor')\n .attr('text-anchor', 'start')\n .attr('font-weight', 'bold')\n .text(title as string)\n );\n\n return svg;\n};\n","import styled from \"styled-components\";\n\nimport { Wrapper } from \"../../common/components/Wrapper\";\nimport { legendClassNames } from \"../../helpers/getLegend\";\n\nexport const calendarChartClassNames = {\n calendarChart: \"calendarChart\",\n calendarYear: \"calendarYear\",\n calendarAxis: \"calendarAxis\",\n calendarBody: \"calendarBody\",\n calendarHeader: \"calendarHeader\",\n calendarYearTitle: \"calendarYearTitle\",\n calendarWeekDay: \"calendarWeekDay\",\n calendarMonth: \"calendarMonth\",\n calendarDays: \"calendarDays\",\n calendarDay: \"calendarDay\",\n ...legendClassNames,\n};\n\nconst headerHeight = \"20px\";\n\nexport const SvgWrapper = styled(Wrapper)`\n .${calendarChartClassNames.calendarYear} {\n display: flex;\n margin-bottom: 16px;\n }\n\n .${calendarChartClassNames.calendarYearTitle} {\n display: inline-flex;\n align-items: flex-end;\n height: ${headerHeight};\n margin-bottom: 4px;\n font-weight: bold;\n }\n\n .${calendarChartClassNames.calendarHeader} {\n height: ${headerHeight};\n margin-bottom: 4px;\n position: relative;\n display: flex;\n }\n\n .${calendarChartClassNames.calendarMonth} {\n font-size: 14px;\n bottom: 0;\n position: absolute;\n }\n\n .${calendarChartClassNames.calendarAxis} {\n display: flex;\n flex-direction: column;\n margin-right: 10px;\n }\n\n .${calendarChartClassNames.calendarWeekDay} {\n font-size: 12px;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n .${calendarChartClassNames.calendarDays} {\n position: relative;\n }\n\n .${calendarChartClassNames.calendarDay} {\n position: absolute;\n }\n`;\n","import * as d3 from 'd3';\n\nimport { Interpolator } from '../../common/types/interpolator';\nimport { CalendarChartProps, CalendarChartData } from './types';\n\nimport { getLegend } from '../../helpers/getLegend';\n\nimport { calendarChartClassNames } from './styled';\n\nexport const draw = (\n node: HTMLElement | null,\n props: CalendarChartProps\n): void => {\n const {\n data,\n startSunday,\n weekdays,\n interpolator,\n monthSpacing,\n onEachDay,\n colorRange,\n legendProps,\n } = props;\n\n if (node !== null && data.length) {\n const years: Map<number, CalendarChartData[]> = d3.group(data, d =>\n d.date.getUTCFullYear()\n );\n const cellOffset =\n typeof props.cellOffset === 'number' ? props.cellOffset : 0;\n const weekDays = 7;\n const defaultCellSize = 18;\n const cellSize = props.cellSize || defaultCellSize;\n const countDay = (i: number) =>\n startSunday ? i : (i + (weekDays - 1)) % weekDays;\n const days = weekdays || ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'];\n const sundayIndex = 6;\n const formatDay = (i: number) =>\n startSunday ? days[i] : i === sundayIndex ? days[0] : days[i + 1];\n const formatDate = d3.utcFormat('%x');\n const timeWeek = startSunday ? d3.utcSunday : d3.utcMonday;\n const getTimeWeekCount = (from: Date, to: Date) =>\n timeWeek.count(d3.utcYear(from), to);\n const getMonthSpacing = (date: Date) =>\n date.getUTCMonth() * (monthSpacing || 0);\n const formatMonth = d3.utcFormat('%b');\n const max = d3.max(data.map(({ value }) => value)) as number;\n const min = d3.min(data.map(({ value }) => value)) as number;\n\n const color = colorRange\n ? d3\n .scaleLinear()\n .domain([min, max])\n // @ts-ignore\n .range(colorRange)\n : d3\n .scaleSequential(interpolator || d3.interpolateGreens)\n .domain([min, +max]);\n\n let chartWidth = 0;\n\n years.forEach((values, year) => {\n const min = new Date(year, 1);\n const max = d3.max(values.map(d => d.date)) as Date;\n const months = max.getUTCMonth() - min.getUTCMonth();\n const weekCount = getTimeWeekCount(min, max) + 1;\n const width =\n weekCount * (cellSize + cellOffset) + (monthSpacing || 0) * months;\n\n chartWidth = Math.max(chartWidth, width);\n });\n\n d3.select(node)\n .select(`.${calendarChartClassNames.calendarChart}`)\n .remove();\n\n const container = d3\n .select(node)\n .append('div')\n .attr('class', calendarChartClassNames.calendarChart);\n\n const year = container\n .selectAll('div')\n // @ts-ignore\n .data(years)\n .join('div')\n .attr('class', calendarChartClassNames.calendarYear);\n\n const calendarWeekdays = year\n .append('div')\n .attr('class', calendarChartClassNames.calendarAxis);\n\n calendarWeekdays\n .append('div')\n .attr('class', calendarChartClassNames.calendarYearTitle)\n // @ts-ignore\n .text(([key]) => key);\n\n calendarWeekdays\n .selectAll('span')\n .data(d3.range(weekDays))\n .join('div')\n .attr('class', calendarChartClassNames.calendarWeekDay)\n .style('height', cellSize + 'px')\n .style('margin-bottom', cellOffset + 'px')\n .text(formatDay);\n\n const body = year\n .append('div')\n .attr('class', calendarChartClassNames.calendarBody);\n\n const header = body\n .append('div')\n .attr('class', calendarChartClassNames.calendarHeader);\n\n header\n .selectAll('div')\n // @ts-ignore\n .data(([_, values]) => {\n const fullYearlastMonth = 12;\n const fullYearlastDate = 31;\n\n return d3.utcMonths(\n d3.utcMonth(new Date(values[0].date.getUTCFullYear(), 1, 1)),\n d3.utcMonth(\n new Date(\n values[0].date.getUTCFullYear(),\n fullYearlastMonth,\n fullYearlastDate\n )\n )\n );\n })\n .join('div')\n .attr('class', calendarChartClassNames.calendarMonth)\n .style(\n 'left',\n (d: any) =>\n getTimeWeekCount(d, timeWeek.ceil(d)) * (cellSize + cellOffset) +\n getMonthSpacing(d) +\n 'px'\n )\n // @ts-ignore\n .text(formatMonth);\n\n // @ts-ignore\n body\n .append('div')\n .attr('class', calendarChartClassNames.calendarDays)\n .style('height', (cellSize + cellOffset) * weekDays + 'px')\n .style('width', chartWidth + 'px')\n .selectAll('div')\n // @ts-ignore\n .data(([, values]) => values)\n .join('div')\n // @ts-ignore\n .each((data: CalendarChartData, index, elements) => {\n if (onEachDay) {\n const element = elements[index] as HTMLDivElement;\n const currColor = color(data.value) as string;\n\n onEachDay(data, element, currColor);\n }\n })\n .attr('class', calendarChartClassNames.calendarDay)\n .style('width', cellSize + 'px')\n .style('height', cellSize + 'px')\n // @ts-ignore\n .style(\n 'left',\n (d: any) =>\n getTimeWeekCount(d.date, d.date) * (cellSize + cellOffset) +\n getMonthSpacing(d.date) +\n 'px'\n )\n .style(\n 'top',\n // @ts-ignore\n d => countDay(d.date.getUTCDay()) * (cellSize + cellOffset) + 'px'\n )\n // @ts-ignore\n .style('background-color', d => color(d.value))\n // @ts-ignore\n .attr('title', d => `${formatDate(d.date)} - ${d.value}`);\n\n if (typeof legendProps === 'object') {\n const legend = getLegend({\n color: color as Interpolator,\n ...legendProps,\n });\n\n const containerNode = container.node() as HTMLDivElement;\n const legendSvg = legend.node() as SVGElement;\n\n containerNode.appendChild(legendSvg);\n }\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { SvgWrapper } from \"./styled\";\n\nimport { useNode } from \"../../hooks\";\nimport { draw } from \"./draw\";\n\nimport { CalendarChartProps } from \"./types\";\n\nexport const CalendarChart: FC<CalendarChartProps> = (props) => {\n const {\n className,\n style,\n children,\n data,\n startSunday,\n weekdays,\n cellOffset,\n cellSize,\n interpolator,\n monthSpacing,\n colorRange,\n legendProps,\n } = props;\n\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n // eslint-disable-next-line\n }, [\n node,\n data,\n startSunday,\n weekdays,\n cellOffset,\n cellSize,\n interpolator,\n monthSpacing,\n colorRange,\n legendProps,\n ]);\n\n return (\n <SvgWrapper ref={ref} className={className} style={style}>\n {children}\n </SvgWrapper>\n );\n};\n\nCalendarChart.defaultProps = {\n data: [],\n};\n","import * as d3 from 'd3';\n\nexport function computeDimensions(\n selection: d3.Selection<any, any, any, any>\n): SVGRect | DOMRect {\n let dimensions;\n const node = selection.node();\n\n if (node instanceof SVGGraphicsElement) {\n // check if node is svg element\n dimensions = node.getBBox();\n } else {\n // else is html element\n dimensions = node.getBoundingClientRect();\n }\n\n return dimensions;\n}\n","export function none() {\n return;\n}\n\nexport function isVoid(value: any) {\n return value === undefined || value === null || Number.isNaN(value);\n}\n","import { LineChartData } from '../charts/LineChart/types';\n\nexport const stackedData = (data: LineChartData[]) => {\n const stacks: { [key: string]: { [key: string]: number } } = {};\n\n return data.map((item, index) => {\n stacks[index] = {};\n\n if (index > 0) {\n return {\n ...item,\n values: item.values.map((value, valuesIndex) => {\n const prevValue = stacks[index - 1][valuesIndex];\n stacks[index][valuesIndex] = Number(\n (typeof prevValue !== 'number' ? 0 : Math.abs(prevValue)) +\n (typeof value !== 'number' ? 0 : Math.abs(value))\n );\n\n return stacks[index][valuesIndex];\n }),\n };\n } else {\n item.values.forEach((value, valuesIndex) => {\n stacks[index][valuesIndex] = Number(value);\n });\n }\n\n return item;\n });\n};\n","import { JSXElementConstructor } from \"react\";\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport { Wrapper } from \"../../common/components/Wrapper\";\n\nexport const lineChartClassNames = {\n lineChartYScaleGlobal: \"lineChartYScaleGlobal\",\n lineChartYScaleRight: \"lineChartYScaleRight\",\n lineChartXScaleGlobal: \"lineChartXScaleGlobal\",\n lineChartLinesGlobal: \"lineChartLinesGlobal\",\n lineChartLine: \"lineChartLine\",\n lineChartAreasGlobal: \"lineChartAreasGlobal\",\n lineChartArea: \"lineChartArea\",\n lineChartDotsGlobalContainer: \"lineChartDotsGlobalContainer\",\n lineChartDotsGlobal: \"lineChartDotsGlobal\",\n lineChartDot: \"lineChartDot\",\n lineChartGridGlobal: \"lineChartGridGlobal\",\n lineChartGridLineX: \"lineChartGridLineX\",\n lineChartGridLineY: \"lineChartGridLineY\",\n lineChartLabelContainer: \"lineChartLabelContainer\",\n lineChartLabelFlex: \"lineChartLabelFlex\",\n lineChartLabel: \"lineChartLabel\",\n lineChartMouseGlobal: \"lineChartMouseGlobal\",\n lineChartMouseLine: \"lineChartMouseLine\",\n lineChartMouseRect: \"lineChartMouseRect\",\n lineChartMouseCircle: \"lineChartMouseCircle\",\n lineChartMouseLabelContainer: \"lineChartMouseLabelContainer\",\n lineChartMouseLabel: \"lineChartMouseLabel\",\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${lineChartClassNames.lineChartYScaleGlobal},\n .${lineChartClassNames.lineChartXScaleGlobal},\n .${lineChartClassNames.lineChartGridGlobal} {\n shape-rendering: crispEdges;\n }\n\n .${lineChartClassNames.lineChartLinesGlobal} {\n fill: none;\n stroke: steelblue;\n stroke-width: 1.5px;\n stroke-linejoin: round;\n stroke-linecap: round;\n }\n\n .${lineChartClassNames.lineChartArea} {\n fill-opacity: 0.24;\n }\n\n .${lineChartClassNames.lineChartGridLineX},\n .${lineChartClassNames.lineChartGridLineY},\n .${lineChartClassNames.lineChartMouseLine} {\n stroke: rgba(149, 149, 149, 0.24);\n }\n\n .${lineChartClassNames.lineChartMouseLine},\n .${lineChartClassNames.lineChartMouseCircle} {\n transition: opacity linear 200ms;\n pointer-events: none;\n stroke-width: 1px;\n }\n\n .${lineChartClassNames.lineChartDot} {\n stroke: #fff;\n stroke-width: 2px;\n }\n\n .${lineChartClassNames.lineChartMouseLine} {\n shape-rendering: crispEdges;\n }\n\n .${lineChartClassNames.lineChartMouseRect} {\n fill: none;\n pointer-events: all;\n }\n`;\n\nexport const TooltipStyles = createGlobalStyle`\n .${lineChartClassNames.lineChartMouseLabel} {\n transition: opacity linear 200ms;\n z-index: 100;\n\n .${lineChartClassNames.lineChartLabelFlex} {\n justify-content: flex-start;\n align-items: center;\n pointer-events: none;\n }\n\n .${lineChartClassNames.lineChartLabel} {\n margin: 0 0 0 10px;\n }\n }\n` as JSXElementConstructor<any>;\n","import { DrawGridProps } from './types';\n\nimport { lineChartClassNames } from '../styled';\n\nexport const drawGrid = ({\n svg,\n yScale,\n xScale,\n yTicksCount,\n lastIndex,\n drawGridX,\n drawGridY,\n}: DrawGridProps) => {\n if (!drawGridY && !drawGridX) return;\n\n const global = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartGridGlobal);\n\n const yTicks = yScale.ticks(yTicksCount);\n\n if (drawGridX) {\n global\n .append('g')\n .selectAll('line')\n .data(yTicks)\n .join('line')\n .attr('class', lineChartClassNames.lineChartGridLineX)\n .attr('x1', () => xScale(0))\n .attr('x2', () => xScale(lastIndex))\n .attr('y1', (d: number) => Math.round(yScale(d)))\n .attr('y2', (d: number) => Math.round(yScale(d)));\n }\n\n if (drawGridY) {\n global\n .append('g')\n .selectAll('line')\n .data(Array.from({ length: lastIndex + 1 }, (_, index) => index))\n .join('line')\n .attr('class', lineChartClassNames.lineChartGridLineY)\n .attr('x1', (_, index: number) => Math.round(xScale(index) as number))\n .attr('x2', (_, index: number) => Math.round(xScale(index) as number))\n .attr('y1', () => Math.round(yScale(yTicks[0]) as number))\n .attr('y2', () =>\n Math.round(yScale(yTicks[yTicks.length - 1]) as number)\n );\n }\n};\n","import styled from 'styled-components';\n\nexport const LabelContainer = styled.div`\n width: 0;\n height: 0;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n font-size: 12px;\n white-space: nowrap;\n`;\n\nexport const Label = styled.div`\n margin-bottom: 4px;\n`;\n","import React from 'react';\nimport * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawLabelProps } from './types';\n\nimport { none } from '../../../helpers/common';\n\nimport { lineChartClassNames } from '../styled';\nimport { LabelContainer, Label } from './styled';\n\nexport const labelClassName = 'd3-chart-label';\n\nexport const drawLabel = ({\n node,\n data,\n yScale,\n xScale,\n formatLabel,\n eachLabel,\n}: DrawLabelProps) => {\n const labelsDiv = d3\n .select(node)\n .append('div')\n .attr('class', labelClassName);\n const format = d3.format(',');\n\n // @ts-ignore\n data.forEach(({ values }: { values: number[] }) => {\n labelsDiv\n .append('div')\n .selectAll('div')\n .data(values)\n .join('div')\n .attr('class', lineChartClassNames.lineChartLabelContainer)\n .style('position', 'absolute')\n .style('left', (_, index) => xScale(index) + 'px')\n .style('top', d => yScale(d) + 'px')\n .html((d: number, index, elements: any) => {\n const html = ReactDOMServer.renderToString(\n <LabelContainer className={lineChartClassNames.lineChartLabelFlex}>\n <Label className={lineChartClassNames.lineChartLabel}>\n {formatLabel ? formatLabel(d, index, elements) : format(d)}\n </Label>\n </LabelContainer>\n );\n\n return html;\n })\n // @ts-ignore\n .each(eachLabel ? eachLabel : none);\n });\n};\n","import React from 'react';\nimport * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawTooltipProps } from './types';\n\nimport { isVoid } from '../../../helpers/common';\n\nimport { lineChartClassNames } from '../styled';\nimport { Label, LabelContainer } from '../drawLabel/styled';\n\nexport const drawTooltip = ({\n svg,\n node,\n data: argData,\n xScale,\n yScale,\n dynamicCircleRadius,\n formatDynamicTooltip,\n renderTooltip,\n stackedTooltipIndex,\n stackedTooltip,\n tooltipLineTop,\n tooltipRoot,\n tooltipClassName,\n dotSnapping,\n lastIndex,\n}: DrawTooltipProps) => {\n const container: Element | null =\n tooltipRoot || document.querySelector('body');\n const format = d3.format(',');\n const chartData = argData.filter(({ tooltipOff }) => !tooltipOff);\n\n const data =\n typeof stackedTooltipIndex === 'number'\n ? [chartData[stackedTooltipIndex]]\n : stackedTooltip\n ? [chartData[0]]\n : chartData;\n\n const [x1, x2] = xScale.range();\n const [y1, y2] = yScale.range();\n\n const mouseGlobal = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartMouseGlobal);\n\n const mouseRect = mouseGlobal\n .append('rect')\n .attr('width', x2 - x1)\n .attr('height', Math.abs(y1 - y2))\n .attr('class', lineChartClassNames.lineChartMouseRect)\n .attr('transform', `translate(${x1}, ${y2})`);\n\n const mouseLine = mouseGlobal\n .append('path')\n .attr('class', lineChartClassNames.lineChartMouseLine)\n .style('opacity', '0');\n\n const lines = svg\n .selectAll(`.${lineChartClassNames.lineChartLine}`)\n .nodes() as SVGPathElement[];\n\n const circles = mouseGlobal\n .selectAll('circle')\n .data(chartData.filter(({ dynamicDotOff }) => !dynamicDotOff))\n .join('circle')\n .attr('class', lineChartClassNames.lineChartMouseCircle)\n .attr('r', dynamicCircleRadius as number)\n .attr('fill', ({ stroke }) => stroke || 'none')\n .attr('stroke', ({ stroke }) => stroke || 'none')\n .style('opacity', '0');\n\n let labelContainer: d3.Selection<any, unknown, any, any> = d3.select(\n `.${lineChartClassNames.lineChartMouseLabelContainer}`\n );\n\n if (labelContainer.size() === 0) {\n labelContainer = d3\n .select(container)\n .append('div')\n .attr('class', lineChartClassNames.lineChartMouseLabelContainer);\n }\n\n let labels: d3.Selection<any, any, any, any> | null = null;\n\n let isVisible = false;\n\n const setVisible = (visible?: boolean) => {\n isVisible = Boolean(visible);\n const opacity = isVisible ? '1' : '0';\n mouseLine.style('opacity', opacity);\n circles.style('opacity', opacity);\n labels && labels.style('opacity', opacity);\n };\n\n const mouseMove = (event: MouseEvent | TouchEvent) => {\n const [docX, docY] = d3.pointer(event, document);\n const [rectrX] = d3.pointer(event, mouseRect);\n const [nodeX, nodeY] = d3.pointer(event, node);\n const x = rectrX - (rectrX - nodeX);\n const left = nodeX + (docX - nodeX);\n const currIndex = Math.abs(xScale.invert(x));\n const positions: { [key: string]: { x: number; y: number } } = {};\n\n const getValue = (values: (number | null)[]) => {\n // The returning result is fixed for the task: https://jr.everpoint.ru/browse/PUB-5648\n // Before the task it was like this (and I don't know why):\n /* return !isVoid(values[Math.floor(currIndex + 1)])\n ? values[Math.floor(currIndex)]\n : null;*/\n\n return values[Math.floor(currIndex)];\n }\n\n lines.forEach((line, index) => {\n let pos = {\n x: 0,\n y: 0,\n };\n\n if (!line.hasAttribute('d') || argData[index].tooltipOff) {\n positions[index] = pos;\n return;\n }\n\n if (!dotSnapping) {\n let beginning = 0;\n let end = line.getTotalLength();\n let target = null;\n\n while (true) {\n target = Math.floor((beginning + end) / 2);\n pos = line.getPointAtLength(target);\n\n if ((target === end || target === beginning) && pos.x !== x) {\n break;\n }\n\n if (pos.x > x) {\n end = target;\n } else if (pos.x < x) {\n beginning = target;\n } else {\n break;\n }\n }\n\n positions[index] = pos;\n } else {\n const [x1, x2] = xScale.range();\n const chartWidth = x2 - x1;\n const step = chartWidth / lastIndex;\n\n positions[index] = {\n x: x1 + Math.round(currIndex) * step,\n y: typeof argData[index].values[Math.round(currIndex)] === \"number\"\n ? yScale(argData[index].values[Math.round(currIndex)] as number)\n : 0,\n };\n }\n });\n\n circles\n .attr('transform', (lineChartData, index) => {\n const value = getValue(lineChartData.values);\n\n return positions[index] && value\n ? 'translate(' + (!dotSnapping ? x : positions[index].x) + ',' + positions[index].y + ')'\n : 'translate(-9999, -9999)';\n })\n .attr('style', ({ dynamicDotStyle }) => dynamicDotStyle || '');\n\n const datas = chartData.map(({ values, ...rest }, i) => ({\n ...rest,\n value: getValue(values),\n invertValue: positions[i] ? yScale.invert(positions[i].y) : 0,\n }));\n\n const noHasData = datas.every(({ value }) => isVoid(value));\n\n if (noHasData && isVisible) {\n setVisible();\n } else if (!isVisible && !noHasData) {\n setVisible(true);\n }\n\n const topIndex = Object.keys(positions).reduce((acc, key, index) => {\n const prevValue = datas[Number(acc)]?.value;\n const value = datas[Number(key)]?.value;\n const dynamicDotOff = argData?.[index].dynamicDotOff;\n\n return index === 0 || isVoid(value) || dynamicDotOff\n ? acc\n : isVoid(prevValue) || positions[acc].y > positions[key].y\n ? key\n : acc;\n }, '0');\n\n const labelTexts =\n labels &&\n labels\n .style('left', (_, i) => {\n return !dotSnapping ? `${left}px` : `${positions[i]?.x ?? 0}px`;\n })\n .style('top', (_, i) => {\n const index =\n typeof stackedTooltipIndex === 'number'\n ? stackedTooltipIndex\n : stackedTooltip\n ? topIndex\n : i;\n\n return `${(positions[index]?.y ?? 0) + (docY - nodeY)}px`;\n })\n .select(`.${lineChartClassNames.lineChartLabel}`);\n\n if (renderTooltip && labels) {\n labels.html((_, index) => {\n return ReactDOMServer.renderToString(\n <LabelContainer className={lineChartClassNames.lineChartLabelFlex}>\n {renderTooltip(datas, {\n indexX: Math.round(currIndex),\n indexY: index,\n svg,\n event,\n })}\n </LabelContainer>\n );\n });\n } else {\n labelTexts &&\n labelTexts.text((_, i) => {\n const value = datas[i].value;\n const invertValue = datas[i].invertValue;\n\n return formatDynamicTooltip\n ? formatDynamicTooltip(invertValue, value)\n : format(invertValue);\n });\n }\n\n mouseLine.attr('d', () => {\n let d = 'M' + x + ',' + y1;\n d += ' ' + x + ',' + (tooltipLineTop ? y2 : positions[topIndex]?.y || 0);\n return d;\n });\n };\n\n mouseRect.on('mouseover.tooltip', event => {\n labels = labelContainer\n .selectAll('div')\n .data(data)\n .join('div')\n .attr(\n 'class',\n `${lineChartClassNames.lineChartMouseLabel} ${tooltipClassName || ''}`\n )\n .style('opacity', '0')\n .style('position', 'absolute')\n .html(() => {\n const html = ReactDOMServer.renderToString(\n <LabelContainer className={lineChartClassNames.lineChartLabelFlex}>\n <Label className={lineChartClassNames.lineChartLabel} />\n </LabelContainer>\n );\n\n return html;\n });\n\n mouseMove(event);\n });\n\n mouseRect.on('mouseout.tooltip', () => {\n d3.select(`.${lineChartClassNames.lineChartMouseLabelContainer}`)\n .selectAll('*')\n .remove();\n setVisible();\n });\n\n mouseRect.on('touchmove.tooltip mousemove.tooltip', mouseMove);\n};\n","import * as d3 from 'd3';\n\nimport { LineChartProps, LineChartData, LineChartDot } from './types';\n\nimport { computeDimensions } from '../../helpers/computeDimensions';\nimport { appendSvg } from '../../helpers';\nimport { none } from '../../helpers/common';\nimport { stackedData } from '../../helpers/stackedData';\nimport { drawGrid } from './drawGrid';\nimport { drawLabel, labelClassName } from './drawLabel';\nimport { drawTooltip } from './drawTooltip';\n\nimport { lineChartClassNames } from './styled';\n\nexport const draw = (node: HTMLElement | null, props: LineChartProps): void => {\n const {\n data: chartData,\n labels,\n margin,\n customYAxisSelection,\n customXAxisSelection,\n customYAxis,\n customXAxis,\n curve,\n yAxisPadding,\n xAxisPadding,\n drawGridY,\n drawGridX,\n withLabels,\n formatLabel,\n eachLabel,\n stacked,\n dynamicTooltipEnable,\n dynamicCircleRadius,\n formatDynamicTooltip,\n renderTooltip,\n stackedTooltip,\n stackedTooltipIndex,\n tooltipLineTop,\n customize,\n customYScale,\n customLine,\n tooltipClassName,\n xScaleItemWidth,\n areaCurve,\n dotSnapping,\n rightAxis,\n } = props;\n\n if (node !== null && chartData.length) {\n const data = stacked ? stackedData(chartData) : chartData;\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const height = props.height || 0;\n const min =\n typeof props.min === 'number'\n ? props.min\n : d3.min(data, ({ values }) => d3.min(values as number[]));\n const max =\n typeof props.max === 'number'\n ? props.max\n : d3.max(data, ({ values }) => d3.max(values as number[]));\n\n const svg = appendSvg(node, width, height || 0);\n\n const yRange = [\n height - marginTop - marginBottom - (xAxisPadding || 0),\n marginTop,\n ];\n const yScale = d3\n .scaleLinear()\n .domain([min || 0, max || 0])\n .range(yRange)\n .nice();\n\n customYScale && customYScale(yScale);\n\n const yTicksCountDefault = 8;\n const yAxisLeft = d3.axisLeft(yScale).ticks(yTicksCountDefault);\n\n customYAxis && customYAxis(yAxisLeft);\n\n const yTicksCount = yAxisLeft.tickArguments()[0];\n\n const yAxis = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartYScaleGlobal)\n .call(yAxisLeft)\n .call(customYAxisSelection ? customYAxisSelection : none);\n const { width: yAxisWidth } = computeDimensions(yAxis);\n\n yAxis.attr('transform', `translate(${marginLeft + yAxisWidth}, 0)`);\n\n let yAxisRightWidth = 0;\n\n if (rightAxis) {\n const rightAxisMin = d3.min(rightAxis);\n const rightAxisMax = d3.max(rightAxis);\n const yRightScale = d3\n .scaleLinear()\n .domain([rightAxisMin || 0, rightAxisMax || 0])\n .range(yRange)\n .nice();\n\n const yAxisRightTicks = d3.axisRight(yRightScale).ticks(yTicksCountDefault);\n const yAxisRight = svg\n .append('g')\n .attr('class', `${lineChartClassNames.lineChartYScaleGlobal} ${lineChartClassNames.lineChartYScaleRight}`)\n .call(yAxisRightTicks)\n .call(customYAxisSelection ? customYAxisSelection : none);\n\n ({ width: yAxisRightWidth } = computeDimensions(yAxisRight));\n\n yAxisRight.attr('transform', `translate(${width - yAxisRightWidth}, 0)`);\n }\n\n /** xScale **/\n const lastIndex =\n labels && labels.length\n ? labels.length - 1\n : data.reduce((acc, { values }) => Math.max(acc, values.length), 0) - 1;\n\n const xScale = d3\n .scaleLinear()\n .domain([0, lastIndex])\n .range([\n marginLeft + yAxisWidth + (yAxisPadding || 0),\n width - yAxisRightWidth - marginRight,\n ]);\n\n const xAxisBottom = d3\n .axisBottom(xScale)\n .tickFormat((value: d3.NumberValue) =>\n // @ts-ignore\n labels && labels.length > 0 ? labels[value] : 0\n )\n .ticks(lastIndex);\n\n if (typeof xScaleItemWidth === 'number') {\n const [x1, x2] = xScale.range();\n const chartWidth = x2 - x1;\n\n xAxisBottom\n .ticks(Math.round(chartWidth / xScaleItemWidth))\n .tickSizeOuter(0);\n }\n\n customXAxis && customXAxis(xAxisBottom);\n\n drawGrid({\n svg,\n yScale,\n xScale,\n yTicksCount,\n lastIndex,\n drawGridY,\n drawGridX,\n });\n\n if (Array.isArray(labels) && labels.length > 0) {\n const xAxis = svg\n .append('g')\n .call(customXAxisSelection ? customXAxisSelection : none)\n .attr('class', lineChartClassNames.lineChartXScaleGlobal)\n .call(xAxisBottom);\n\n const { height: xAxisHeight } = computeDimensions(xAxis);\n\n xAxis.attr(\n 'transform',\n `translate(0, ${height - Math.ceil(xAxisHeight) - marginBottom})`\n );\n }\n\n const line = d3\n .line()\n .defined(d => d !== null)\n .x((_, index) => xScale(index))\n .y((d: unknown) => yScale(d as d3.NumberValue))\n .curve(curve || d3.curveLinear);\n\n customLine && customLine(line);\n\n const withAreas = data.some(({ fill }) => fill);\n\n if (withAreas) {\n let dataIndex = -2;\n\n const getArea = (d: LineChartData): d3.Area<[number, number]> => {\n const { minAreaValues } = d;\n const minTick = yScale.ticks()[0];\n\n return d3\n .area()\n .defined(d => d !== null)\n .x((_, index) => xScale(index))\n .y0((value: unknown, index) => {\n if (index === 0) {\n dataIndex = dataIndex + 1;\n }\n\n let minValue: number = minTick;\n\n if (minAreaValues && typeof minAreaValues[index] === 'number') {\n minValue = minAreaValues[index] || minValue;\n } else if (minAreaValues) {\n minValue = yScale(\n (minValue - (value as number)) as d3.NumberValue\n );\n }\n\n const currData = data[dataIndex];\n\n return stacked\n ? dataIndex > -1\n ? yScale(\n typeof currData.values[index] !== 'number'\n ? 0\n : (currData.values[index] as number)\n )\n : yScale(minValue)\n : yScale(minValue);\n })\n .y1((d: unknown) => yScale(d as d3.NumberValue))\n .curve(areaCurve || curve || d3.curveLinear);\n };\n\n svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartAreasGlobal)\n .selectAll('path')\n .data(data.filter(({ fill }) => Boolean(fill)))\n .join('path')\n .attr('class', lineChartClassNames.lineChartArea)\n .attr('d', (d: LineChartData) => {\n const area = getArea(d);\n\n return area((d.values as unknown) as [number, number][]);\n })\n .attr('fill', ({ fill }) => fill || 'none')\n .attr('style', ({ areaStyle }) => areaStyle || '');\n }\n\n svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartLinesGlobal)\n .selectAll('path')\n .data(data)\n .join('path')\n .attr('class', lineChartClassNames.lineChartLine)\n .attr('d', (d: LineChartData | any) => line(d.values))\n .attr('stroke', ({ stroke }) => stroke || 'steelblue')\n .attr('style', ({ style }) => style || '');\n\n const dots = data.filter(({ dot }) => dot) as (Omit<\n LineChartData,\n 'dot'\n > & {\n dot: LineChartDot;\n })[];\n\n if (dots.length > 0) {\n const dotsGlobal = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartDotsGlobalContainer);\n\n dots.forEach(item => {\n const { values, dot } = item;\n const { radius, style, filter } = dot;\n\n const dotsGroup = dotsGlobal\n .append('g')\n .attr('class', lineChartClassNames.lineChartDotsGlobal);\n\n dotsGroup\n .selectAll('circle')\n .data(values)\n .join('circle')\n .attr('cx', (_, index) => xScale(index))\n .attr('class', lineChartClassNames.lineChartDot)\n .attr('cy', d => yScale(d as d3.NumberValue))\n .attr('r', radius || 0)\n .attr('style', style || '');\n\n if (filter) {\n dotsGroup\n .selectAll('circle')\n .select((_, i, g) => (filter(item, i, g) ? g[i] : null))\n .remove();\n }\n });\n }\n\n d3.select(node)\n .select(`.${labelClassName}`)\n .remove();\n withLabels &&\n drawLabel({ node, eachLabel, data, yScale, xScale, formatLabel });\n\n if (dynamicTooltipEnable) {\n drawTooltip({\n tooltipLineTop,\n stackedTooltip,\n renderTooltip,\n stackedTooltipIndex,\n formatDynamicTooltip,\n node,\n svg,\n data,\n xScale,\n yScale,\n dynamicCircleRadius,\n tooltipClassName,\n dotSnapping,\n lastIndex,\n });\n }\n\n customize && customize({ svg, yScale, xScale });\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { LineChartProps } from \"./types\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\n\nimport { draw } from \"./draw\";\n\nimport { SvgWrapper, TooltipStyles } from \"./styled\";\n\nexport const LineChart: FC<LineChartProps> = (props) => {\n const { className, style, children } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <TooltipStyles />\n <SvgWrapper ref={ref}>{children}</SvgWrapper>\n </div>\n );\n};\n\nLineChart.defaultProps = {\n data: [],\n labels: [],\n height: 240,\n yAxisPadding: 10,\n xAxisPadding: 20,\n margin: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 0,\n },\n dynamicCircleRadius: 4,\n stackedTooltip: false,\n};\n","import * as d3 from 'd3';\n\nimport { BarChartLineData } from '../types';\nimport { DrawLinesProps } from './types';\n\nexport const barChartLinesClassNames = {\n barChartLinesGlobal: 'barChartLinesGlobal',\n barChartLine: 'barChartLine',\n barChartAreasGlobal: 'barChartAreasGlobal',\n barChartArea: 'barChartArea',\n};\n\nexport const drawLines = ({\n svg,\n lineData,\n min,\n yScale,\n xScale,\n curve,\n stackedLine,\n}: DrawLinesProps) => {\n let linesSelection = null;\n let areasSelection = null;\n let area: d3.Area<[number, number]> | null = null;\n\n const line = d3\n .line()\n .defined(d => d !== null)\n .x(\n (_, index) =>\n (xScale((index as unknown) as string) as number) + bandwidth / 2\n )\n // @ts-ignore\n .y((d: number) => yScale(d))\n .curve(curve || d3.curveLinear);\n const bandwidth = xScale.bandwidth();\n\n const linesData = lineData.filter(({ lineType }) => lineType === 'line');\n const areasData = lineData.filter(({ lineType }) => lineType === 'area');\n\n if (linesData.length > 0) {\n linesSelection = svg\n .append('g')\n .attr('class', barChartLinesClassNames.barChartLinesGlobal)\n .selectAll('path')\n .data(linesData)\n .join('path')\n .attr('class', barChartLinesClassNames.barChartLine)\n .attr('d', (d: BarChartLineData) =>\n line(d.values as Iterable<[number, number]>)\n )\n .attr('stroke', ({ stroke }) => stroke || '')\n .attr('fill', ({ fill }) => fill || 'none');\n }\n\n if (areasData.length > 0) {\n let dataIndex = -2;\n\n area = d3\n .area()\n .x(\n (_, index) =>\n (xScale((index as unknown) as string) as number) + bandwidth / 2\n )\n .y0((_, index) => {\n if (index === 0) {\n dataIndex = dataIndex + 1;\n }\n\n return stackedLine\n ? dataIndex > -1\n ? yScale(\n typeof lineData[dataIndex].values[index] !== 'number'\n ? 0\n : (lineData[dataIndex].values[index] as number)\n )\n : yScale(min as number)\n : yScale(min as number);\n })\n // @ts-ignore\n .y1(d => yScale(d))\n .curve(curve || d3.curveLinear);\n\n areasSelection = svg\n .append('g')\n .attr('class', barChartLinesClassNames.barChartAreasGlobal)\n .selectAll('path')\n .data(areasData)\n .join('path')\n .attr('class', barChartLinesClassNames.barChartArea)\n .attr('d', (d: BarChartLineData | any) => area && area(d.values))\n .attr('fill', ({ fill }) => fill || 'none');\n }\n\n return {\n areasSelection,\n linesSelection,\n area,\n };\n};\n","import styled, { createGlobalStyle } from 'styled-components';\n\nimport { Wrapper } from '../../common/components/Wrapper';\nimport { barChartLinesClassNames } from './drawLines';\nimport { JSXElementConstructor } from \"react\";\n\nconst tooltipClassnames = {\n barChartMouseRect: 'barChartMouseRect',\n barChartMouseContainer: 'barChartMouseContainer',\n barChartTooltipFlex: 'barChartTooltipFlex',\n barChartMouseTooltip: 'barChartMouseTooltip',\n barChartTooltip: 'barChartTooltip',\n barChartTooltipItem: 'barChartTooltipItem',\n barChartTooltipColFlex: 'barChartTooltipColFlex',\n barChartTooltipGroupName: 'barChartTooltipGroupName',\n barChartColorBox: 'barChartColorBox',\n barChartColorLine: 'barChartColorLine',\n barChartTooltipName: 'barChartTooltipName',\n barChartTooltipValue: 'barChartTooltipValue',\n};\n\nconst labelClassnames = {\n barChartLabelContainer: 'barChartLabelContainer',\n barChartLabelFlex: 'barChartLabelFlex',\n barChartLabel: 'barChartLabel',\n};\n\nexport const barChartClassNames = {\n barChartBarGlobal: 'barChartBarGlobal',\n barChartYScaleGlobal: 'barChartYScaleGlobal',\n barChartYAxis: 'barChartYAxis',\n barChartXAxis: 'barChartXAxis',\n barChartYAxisZeroTick: 'barChartYAxisZeroTick',\n barChartGridGlobal: 'barChartGridGlobal',\n barChartGridLineX: 'barChartGridLineX',\n barChartGridLineXZero: 'barChartGridLineXZero',\n barChartGridLineYZero: 'barChartGridLineYZero',\n barChartGridLineY: 'barChartGridLineY',\n barChartSelection: 'barChartSelection',\n ...tooltipClassnames,\n ...labelClassnames,\n ...barChartLinesClassNames,\n};\n\nexport const SvgWrapper = styled(Wrapper)<{ selectable?: boolean }>`\n display: ${({ selectable }) => selectable && \"inline-block\"};\n user-select: ${({ selectable }) => selectable && \"none\"};\n width: ${({ selectable }) => selectable && \"auto\"};\n\n line {\n stroke-width: 1px;\n shape-rendering: crispEdges;\n }\n\n .${barChartClassNames.barChartGridLineX},\n .${barChartClassNames.barChartGridLineY} {\n stroke: rgba(48, 69, 79, 0.06);\n }\n\n .${barChartClassNames.barChartMouseRect} {\n }\n\n .${barChartClassNames.barChartMouseRect} {\n fill: none;\n pointer-events: all;\n }\n\n .${barChartClassNames.barChartLinesGlobal} {\n stroke-width: 1.5px;\n stroke-linejoin: round;\n stroke-linecap: round;\n }\n\n .${barChartClassNames.barChartLine} {\n shape-rendering: auto;\n }\n\n .${barChartClassNames.barChartArea} {\n fill-opacity: 0.24;\n }\n\n .${barChartClassNames.barChartSelection} {\n position: absolute;\n top: 0;\n width: 0;\n background: rgba(0, 170, 255, 0.06);\n box-shadow: 1px 0 0 #00AAFF, -1px 0 0 #00AAFF;\n pointer-events: none;\n }\n`;\n\nexport const TooltipStyles = createGlobalStyle`\n .${barChartClassNames.barChartMouseTooltip} {\n z-index: 100;\n transition: all linear 144ms;\n\n .${barChartClassNames.barChartTooltipItem} {\n margin-bottom: 4px;\n :last-of-type {\n margin-bottom: 0;\n }\n }\n }\n` as JSXElementConstructor<any>;\n","import { useCallback, useEffect, useRef } from \"react\";\n\nimport { barChartClassNames } from \"../styled\";\n\nimport { BarChartProps } from \"../types\";\n\nexport const useSelection = (node: HTMLElement | null, props: BarChartProps) => {\n const drawing = useRef<boolean>(false);\n const startX = useRef<number>(0);\n const selection = useRef<HTMLDivElement | undefined>();\n\n const clearSelection = useCallback(() => {\n if (node && selection.current) {\n drawing.current = false;\n\n node.removeChild(selection.current);\n\n selection.current = undefined;\n }\n }, [node]);\n\n const onStartDrawing = useCallback((e: any) => {\n const isTouch = Boolean(e.touches);\n\n e.stopPropagation();\n\n if (node && e.which !== 3) {\n clearSelection();\n\n selection.current = document.createElement(\"div\");\n selection.current.setAttribute(\"class\", barChartClassNames.barChartSelection);\n selection.current.setAttribute(\"style\", `height: calc(100% - ${props.margin?.bottom ?? 0}px)`);\n\n node.appendChild(selection.current);\n\n drawing.current = true;\n startX.current = isTouch\n ? (e.touches[0]?.pageX - (node.firstChild as HTMLElement).getBoundingClientRect().left)\n : e.offsetX;\n selection.current.style.display = \"block\";\n selection.current.style.width = \"0px\";\n selection.current.style.left = `${startX.current}px`;\n }\n }, [node]);\n\n const onDraw = useCallback((e: any) => {\n const isTouch = Boolean(e.touches);\n\n e.stopPropagation();\n\n if (node && drawing.current && selection.current) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n const offsetX = isTouch\n ? (e.touches[0]?.pageX - (node.firstChild as HTMLElement).getBoundingClientRect().left)\n : e.offsetX;\n const newWidth = offsetX - startX.current;\n\n if (offsetX >= 0) {\n if (newWidth > 0) {\n selection.current.style.marginLeft = \"0px\";\n selection.current.style.width = offsetX <= nodeWidth ? `${newWidth}px` : `${nodeWidth - startX.current}px`;\n } else {\n selection.current.style.right = `${nodeWidth - startX.current}px`;\n selection.current.style.width = `${Math.abs(newWidth)}px`;\n selection.current.style.marginLeft = `${newWidth}px`;\n }\n }\n\n if (isTouch) {\n if (node.offsetLeft > e.touches[0].pageX) {\n selection.current.style.right = `${nodeWidth - startX.current}px`;\n selection.current.style.width = `${startX.current}px`;\n selection.current.style.marginLeft = `-${startX.current}px`;\n }\n }\n }\n }, [node]);\n\n const onMouseLeave = useCallback((e: any) => {\n if (drawing.current && node && selection.current) {\n if (node.offsetLeft > e.pageX) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n\n selection.current.style.right = `${nodeWidth - startX.current}px`;\n selection.current.style.width = `${startX.current}px`;\n selection.current.style.marginLeft = `-${startX.current}px`;\n }\n\n if (node.offsetLeft + node.offsetWidth < e.pageX) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n\n selection.current.style.left = `${startX.current}px`;\n selection.current.style.width = `${nodeWidth - startX.current}px`;\n selection.current.style.marginLeft = \"0px\";\n }\n }\n }, [node]);\n\n const onStopDrawing = useCallback(() => {\n if (node && selection.current) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n const selectionMinX = selection.current.offsetLeft >= 0\n ? selection.current.offsetLeft <= nodeWidth ? selection.current.offsetLeft : nodeWidth\n : 0;\n const selectionWidth = selection.current.getBoundingClientRect().right - selection.current.getBoundingClientRect().left;\n const selectionMaxX = selection.current.offsetLeft + selectionWidth <= nodeWidth\n ? selection.current.offsetLeft + selectionWidth >= 0 ? selection.current.offsetLeft + selectionWidth : 0\n : nodeWidth;\n const min = Math.round(selectionMinX);\n const max = Math.round(selectionMaxX);\n\n if (max - min > 0 && props.onSelect) {\n props.onSelect([min, max]);\n }\n }\n\n clearSelection();\n }, [node, clearSelection]);\n\n useEffect(() => {\n if (node) {\n node.childNodes.forEach((child) => {\n (child as HTMLElement).style.userSelect = \"none\";\n });\n\n node.addEventListener(\"mousedown\", onStartDrawing);\n node.addEventListener(\"touchstart\", onStartDrawing);\n node.addEventListener(\"mousemove\", onDraw);\n node.addEventListener(\"touchmove\", onDraw);\n node.addEventListener(\"mouseleave\", onMouseLeave);\n node.addEventListener(\"mouseup\", onStopDrawing);\n node.addEventListener(\"touchend\", onStopDrawing);\n document.addEventListener(\"mouseup\", onStopDrawing);\n }\n\n return () => {\n node?.removeEventListener(\"mousedown\", onStartDrawing);\n node?.removeEventListener(\"touchstart\", onStartDrawing);\n node?.removeEventListener(\"mousemove\", onDraw);\n node?.removeEventListener(\"touchmove\", onDraw);\n node?.removeEventListener(\"mouseleave\", onMouseLeave);\n node?.removeEventListener(\"mouseup\", onStopDrawing);\n node?.removeEventListener(\"touchend\", onStopDrawing);\n document.removeEventListener(\"mouseup\", onStopDrawing);\n };\n }, [node]);\n};\n","import { BarChartData } from '../types';\nimport { DrawGridProps } from './types';\n\nimport { barChartClassNames } from '../styled';\n\nexport const drawGrid = ({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridX,\n drawGridY,\n}: DrawGridProps) => {\n if (!drawGridY && !drawGridX) return;\n\n const global = svg\n .append('g')\n .attr('class', barChartClassNames.barChartGridGlobal);\n\n const yTicks = yScale.ticks(yTicksCount);\n const range = xScale.range();\n const domain = xScale.domain();\n\n if (drawGridX) {\n global\n .append('g')\n .selectAll('line')\n .data(yTicks)\n .join('line')\n .attr('class', d =>\n d === 0\n ? `${barChartClassNames.barChartGridLineX} ${barChartClassNames.barChartGridLineXZero}`\n : barChartClassNames.barChartGridLineX\n )\n .attr('x1', () => range[0])\n .attr('x2', () => range[1])\n .attr('y1', (d: BarChartData | any) => Math.round(yScale(d) as number))\n .attr('y2', (d: BarChartData | any) => Math.round(yScale(d) as number));\n }\n\n if (drawGridY) {\n const getX = (index: number) =>\n domain[index] !== void 0\n ? index === 0\n ? range[0]\n : Math.round(\n xScale.step() * index +\n range[0] -\n (xScale.step() / 2) * xScale.padding()\n )\n : range[1];\n\n global\n .append('g')\n .selectAll('line')\n .data(Array.from({ length: domain.length + 1 }, (_, index) => index))\n .join('line')\n .attr('class', d =>\n d === 0\n ? `${barChartClassNames.barChartGridLineY} ${barChartClassNames.barChartGridLineYZero}`\n : barChartClassNames.barChartGridLineY\n )\n .attr('x1', getX)\n .attr('x2', getX)\n .attr('y1', () => Math.round(yScale(yTicks[0]) as number))\n .attr('y2', () =>\n Math.round(yScale(yTicks[yTicks.length - 1]) as number)\n );\n }\n};\n","import { BarChartProps } from './types';\n\nexport const getDomain = ({\n data,\n minDomainValue,\n maxDomainValue,\n}: Pick<BarChartProps, 'data' | 'minDomainValue' | 'maxDomainValue'>) => {\n let MIN = Number.POSITIVE_INFINITY;\n let MAX = Number.NEGATIVE_INFINITY;\n\n data.forEach(({ groupName, ...groups }) => {\n let groupMax = 0;\n let groupMin = 0;\n\n Object.keys(groups).forEach(key => {\n const group = groups[key as never];\n\n let stackMax = 0;\n let stackMin = 0;\n\n Object.keys(group).forEach(groupKey => {\n const value = group[groupKey];\n\n if (value > 0) {\n stackMax += value;\n } else {\n stackMin += value;\n }\n });\n\n groupMax = Math.min(groupMax, stackMin);\n groupMin = Math.max(groupMin, stackMax);\n });\n\n MIN = Math.min(MIN, groupMax);\n MAX = Math.max(MAX, groupMin);\n });\n\n if (MIN === 0 && MAX === 0) {\n return {\n min: typeof minDomainValue === 'number' ? minDomainValue : 0,\n max: typeof maxDomainValue === 'number' ? maxDomainValue : 1,\n };\n }\n\n return {\n min: typeof minDomainValue === 'number' ? minDomainValue : MIN,\n max: typeof maxDomainValue === 'number' ? maxDomainValue : MAX,\n };\n};\n","import { BarChartMarshalledGroup, BarChartMarshaling } from './types';\n\nexport const marshaling = ({\n data,\n yScale,\n xScale,\n barWidth,\n barPadding,\n colors,\n marginTop,\n}: BarChartMarshaling): BarChartMarshalledGroup[][] =>\n data.map(({ groupName, ...groups }, groupIndex) => {\n const marshalledGroup: BarChartMarshalledGroup[] = [];\n const hundred = 100;\n const bandwidth = xScale.bandwidth();\n const groupsKeys = Object.keys(groups);\n\n groupsKeys.forEach((key: string, stackIndex: number) => {\n const group = groups[key as never];\n const groupKeys = Object.keys(group);\n const barGroupWidth =\n ((barWidth as number) + (barPadding as number)) * groupsKeys.length -\n (groupKeys.length > 1 ? (barPadding as number) : 0);\n\n let stackMax = 0;\n let stackMin = 0;\n\n groupKeys.forEach(groupKey => {\n const value = group[groupKey];\n const color = colors[groupKey];\n const x =\n ((barWidth as number) + (barPadding as number)) * stackIndex +\n bandwidth / 2 -\n barGroupWidth / 2;\n const isPositiveValue = value > 0;\n const height = isPositiveValue\n ? Math.abs(\n ((yScale(stackMax - value) - yScale(stackMax) + Number.EPSILON) *\n hundred) /\n hundred\n )\n : Math.abs(\n ((yScale(stackMin - value) - yScale(stackMin) + Number.EPSILON) *\n hundred) /\n hundred\n );\n\n if (isPositiveValue) {\n stackMax += value;\n }\n\n const y = isPositiveValue\n ? ((yScale(stackMax) + Number.EPSILON) * hundred) / hundred\n : yScale(stackMin) - yScale(0) + yScale(0);\n\n marshalledGroup.push({\n x,\n y: y + (marginTop || 0),\n height,\n color,\n value,\n groupName: groupName as string,\n name: groupKey,\n stackIndex,\n groupIndex,\n });\n\n if (!isPositiveValue) {\n stackMin += value;\n }\n });\n });\n\n return marshalledGroup;\n });\n","import { BarChartLabelPosition, BarChartMarshalledGroup } from '../types';\n\nexport const getLabelY = (\n labelPosition: BarChartLabelPosition,\n y2: number,\n item: BarChartMarshalledGroup\n): number => {\n switch (labelPosition) {\n case 'center':\n return item.y + item.height / 2 - y2;\n case 'bottom':\n return item.y + item.height - y2;\n default:\n return item.y;\n }\n};\n","import { BarChartLabelPosition } from '../types';\n\nimport {\n Label as LabelUI,\n LabelTop,\n LabelBottom,\n} from '../../../common/components/tooltips';\n\nexport const getLabel = (labelPosition: BarChartLabelPosition) => {\n switch (labelPosition) {\n case 'top':\n return LabelTop;\n case 'bottom':\n return LabelBottom;\n default:\n return LabelUI;\n }\n};\n","import React from 'react';\nimport * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawTooltipProps } from './types';\nimport {\n BarChartMarshalledGroup,\n BarChartLineData,\n BarChartMergedData,\n} from '../types';\n\nimport { getLabelY } from './getLabelY';\nimport { getLabel } from './getLabel';\nimport { barChartClassNames } from '../styled';\nimport {\n TooltipFlex,\n TooltipGroupName,\n LabelFlex,\n LabelFlexCenter,\n TooltipContainer,\n TooltipItem,\n ColFlex,\n ColorBox,\n ColorLine,\n Name,\n Value,\n} from '../../../common/components/tooltips';\n\nexport const drawTooltip = ({\n svg,\n node,\n data,\n marshalledData,\n xScale,\n yScale,\n renderTooltip,\n labelPosition,\n marginTop,\n renderLabel,\n barWidth,\n barPadding,\n dynamicTooltipEnable,\n hideTooltipGroupName,\n tooltipY,\n tooltipBind,\n lineData,\n formatTooltipValue,\n formatTooltipName,\n tooltipYDomain,\n setTooltipPosition,\n onLabelItem,\n isBarTooltip,\n bars,\n tooltipRoot,\n tooltipClassName,\n onBarClick,\n onBarHover,\n}: DrawTooltipProps) => {\n d3.select(node)\n .select(`.${barChartClassNames.barChartMouseContainer}`)\n .remove();\n\n const xScaleBandDomain = xScale.domain();\n const [x1, x2] = xScale.range();\n const [y1, y2] = yScale.range();\n const bandwidth = xScale.bandwidth();\n const format = d3.format(',');\n\n const getX = (index: number): number =>\n xScaleBandDomain[index] !== void 0\n ? index === 0\n ? x1\n : Math.round(\n xScale.step() * index + x1 - (xScale.step() / 2) * xScale.padding()\n )\n : x2;\n const groups = xScaleBandDomain.map(value => getX(Number(value) + 1));\n\n const topYDomain = tooltipYDomain\n ? tooltipYDomain({ data: marshalledData, lineData, yScale })\n : marshalledData.reduce((acc, curr, index) => {\n const lineMin =\n d3.min(lineData as BarChartLineData[], ({ values }) =>\n typeof values[index] === 'number'\n ? yScale((values[index] || 0) - y2)\n : Number.POSITIVE_INFINITY\n ) || Number.POSITIVE_INFINITY;\n\n acc.push(\n curr.reduce(\n (acc, { y }) => Math.min(acc, y, lineMin as number),\n Number.POSITIVE_INFINITY\n ) as any\n );\n return acc;\n }, []);\n\n const mouseGlobal = svg.append('g').attr('class', 'lineChartMouseGlobal');\n const mouseRect = mouseGlobal\n .append('rect')\n .attr('width', x2 - x1)\n .attr('height', Math.abs(y1 - y2))\n .attr('class', barChartClassNames.barChartMouseRect)\n .attr('transform', `translate(${x1}, ${y2})`);\n\n if (dynamicTooltipEnable) {\n const tooltipContainer: Element | null =\n tooltipRoot || document.querySelector('body');\n let tooltip: d3.Selection<any, unknown, any, any> = d3.select(\n `.${barChartClassNames.barChartMouseTooltip}`\n );\n\n if (tooltip.size() === 0) {\n tooltip = d3\n .select(tooltipContainer)\n .append('div')\n .attr('class', barChartClassNames.barChartMouseTooltip)\n .style('opacity', '0')\n .style('position', 'absolute')\n .html(() => {\n const html = ReactDOMServer.renderToString(\n <TooltipFlex className={barChartClassNames.barChartTooltipFlex} />\n );\n\n return html;\n });\n }\n\n const barChartTootipFlex = tooltip.select(\n `.${barChartClassNames.barChartTooltipFlex}`\n );\n\n let isVisible = false;\n let flagCurrIndex: number | null = null;\n\n const setVisible = (visible?: boolean) => {\n isVisible = Boolean(visible);\n\n const opacity = isVisible ? '1' : '0';\n tooltip.style('opacity', opacity);\n\n if (!isVisible) {\n tooltip.attr('class', barChartClassNames.barChartMouseTooltip);\n flagCurrIndex = null;\n tooltip.style('transition', 'none');\n tooltip.style('top', null);\n tooltip.style('left', null);\n } else {\n tooltip.attr(\n 'class',\n `${barChartClassNames.barChartMouseTooltip} ${tooltipClassName || ''}`\n );\n tooltip.style('transition', null);\n }\n };\n\n mouseRect.on('mouseout.tooltip', () => setVisible());\n mouseRect.on('touchmove.tooltip mousemove.tooltip', event => {\n const [docX, docY] = d3.pointer(event, document);\n const [rectrX] = d3.pointer(event, mouseRect);\n const [nodeX, nodeY] = d3.pointer(event, node);\n const x = rectrX - (rectrX - nodeX);\n const offsetX = docX - nodeX;\n const offsetY = docY - nodeY;\n\n const currIndex = groups.findIndex(value => x <= value);\n\n if (isBarTooltip) {\n const containts = document.elementsFromPoint(\n event.clientX,\n event.clientY\n );\n const currBars = d3\n .select(bars.nodes()[currIndex])\n .selectAll('rect')\n .nodes();\n const isContains = containts.some(item => currBars.includes(item));\n\n if (!isContains) {\n if (isVisible) {\n setVisible(false);\n }\n mouseRect.style('cursor', 'default');\n return;\n } else {\n mouseRect.style('cursor', 'pointer');\n }\n }\n\n const top =\n (typeof tooltipY === 'number'\n ? tooltipY\n : ((topYDomain[currIndex] as unknown) as number) - y2) + offsetY;\n const left =\n (tooltipBind\n ? (xScale((currIndex as unknown) as string) || 0) + bandwidth / 2\n : x) + offsetX;\n\n if (tooltipBind && flagCurrIndex === currIndex) {\n return;\n }\n\n let currData = marshalledData[currIndex] as BarChartMergedData;\n if (Array.isArray(currData) && currData.length === 0) {\n return;\n }\n\n if (lineData) {\n const currLineData = lineData.map(({ values, ...rest }) => ({\n ...rest,\n value: values[currIndex],\n groupName: data[currIndex] && data[currIndex].groupName,\n }));\n\n if (Array.isArray(currLineData) && Array.isArray(currData)) {\n currData = currData.concat(currLineData as BarChartMergedData);\n }\n }\n\n const svgWidth = (svg.node() as SVGElement).getBoundingClientRect()\n .width as number;\n\n if (typeof setTooltipPosition === 'function') {\n setTooltipPosition({\n left,\n top,\n tooltip,\n svgWidth,\n });\n } else if (!setTooltipPosition) {\n tooltip.style('left', `${left}px`).style('top', `${top}px`);\n }\n\n if (renderTooltip) {\n barChartTootipFlex.html(() => {\n const html = ReactDOMServer.renderToString(\n <>\n {renderTooltip(\n currData,\n setTooltipPosition\n ? {\n left,\n top,\n tooltip,\n svgWidth,\n }\n : undefined,\n barWidth\n )}\n </>\n );\n\n return html;\n });\n } else {\n if (!isVisible) {\n setVisible(true);\n }\n\n barChartTootipFlex.html(() => {\n const html = ReactDOMServer.renderToString(\n <TooltipContainer className={barChartClassNames.barChartTooltip}>\n {currData && currData[0] && !hideTooltipGroupName && (\n <TooltipGroupName\n className={barChartClassNames.barChartTooltipGroupName}\n >\n {currData[0].groupName}\n </TooltipGroupName>\n )}\n {currData &&\n currData.map(\n ({ name, value, stroke, fill, color, lineType }) => (\n <TooltipItem\n key={name}\n className={barChartClassNames.barChartTooltipItem}\n >\n <ColFlex\n className={barChartClassNames.barChartTooltipColFlex}\n >\n {lineType ? (\n <ColorLine\n className={barChartClassNames.barChartColorLine}\n style={{ backgroundColor: stroke || fill }}\n />\n ) : (\n <ColorBox\n className={barChartClassNames.barChartColorBox}\n style={{ backgroundColor: color }}\n />\n )}\n <Name\n className={barChartClassNames.barChartTooltipName}\n >\n {formatTooltipName ? formatTooltipName(name) : name}\n </Name>\n </ColFlex>\n <Value\n className={barChartClassNames.barChartTooltipValue}\n >\n {formatTooltipValue\n ? formatTooltipValue(value, name)\n : format(value)}\n </Value>\n </TooltipItem>\n )\n )}\n </TooltipContainer>\n );\n\n return html;\n });\n }\n\n flagCurrIndex = currIndex;\n if (!isVisible) {\n setVisible(true);\n }\n });\n }\n\n const container = d3\n .select(node)\n .append('div')\n .attr('class', barChartClassNames.barChartMouseContainer);\n\n const labelContainer = container\n .append('div')\n .attr('class', barChartClassNames.barChartLabelContainer)\n .style('position', 'absolute')\n .style('top', `${y2}px`);\n\n const isMouseWithin = (e: MouseEvent, callback: (group: BarChartMarshalledGroup) => void) => {\n const [rectrX, rectrY] = d3.pointer(e, mouseRect);\n const [nodeX, nodeY] = d3.pointer(e, node);\n const x = rectrX - (rectrX - nodeX);\n const y = rectrY - nodeY;\n\n const currIndex = groups.findIndex(value => x <= value);\n const dataItem = marshalledData[currIndex][0];\n\n if (dataItem.height >= y1 - y) {\n callback(dataItem);\n }\n };\n\n mouseGlobal\n .on(\"click\", e => isMouseWithin(e, (dataItem) => onBarClick && onBarClick(dataItem)))\n .on(\"mousemove\", e => isMouseWithin(e, (dataItem) => onBarHover && onBarHover(dataItem)))\n .on(\"mouseleave\", () => onBarHover && onBarHover(undefined));\n\n if (labelPosition) {\n const concatedData: BarChartMarshalledGroup[][] = lineData\n ? marshalledData.map((stack, index) =>\n stack.concat(\n lineData.map(({ values, name, stroke }) => {\n const { stacksCount } = stack.reduce(\n (acc, { stackIndex }) => {\n const { indexFlag, stacksCount } = acc;\n if (stackIndex !== indexFlag) {\n return {\n indexFlag: stackIndex,\n stacksCount: stacksCount + 1,\n };\n }\n return acc;\n },\n {\n indexFlag: -1,\n stacksCount: 0,\n }\n );\n const barsWidth =\n (barWidth * stacksCount +\n (barPadding || 0) * (stacksCount - 1)) /\n 2;\n\n return {\n x: stack[0].x - barWidth / 2 + barsWidth,\n y: yScale(values[index] as number) + marginTop,\n height: 0,\n color: stroke,\n value: values[index],\n groupName: stack[0].groupName,\n name,\n stackIndex: 0,\n groupIndex: index,\n };\n }) as BarChartMarshalledGroup[]\n )\n )\n : marshalledData;\n\n const groups = labelContainer\n .selectAll('div')\n .data(concatedData)\n .enter()\n .append('div')\n .style('position', 'absolute')\n .style(\n 'transform',\n (_: BarChartMarshalledGroup[], index) =>\n `translate(${Math.round(\n xScale((index as unknown) as string) as number\n )}px,${-(marginTop || 0)}px)`\n );\n\n const LabelFlexStyled =\n labelPosition === 'center' ? LabelFlexCenter : LabelFlex;\n\n const LabelStyle = getLabel(labelPosition);\n\n groups\n .selectAll('span')\n .data((item: BarChartMarshalledGroup[]) =>\n onLabelItem ? onLabelItem(item) : item\n )\n .join('div')\n .style('left', item => `${Math.round(item.x + barWidth / 2)}px`)\n .style(\n 'top',\n (item: BarChartMarshalledGroup) =>\n `${getLabelY(labelPosition, y2, item)}px`\n )\n .style('position', 'absolute')\n .html((item: BarChartMarshalledGroup) =>\n ReactDOMServer.renderToString(\n <LabelFlexStyled className={barChartClassNames.barChartLabelFlex}>\n {renderLabel ? (\n renderLabel({ ...item, barWidth })\n ) : (\n <LabelStyle className={barChartClassNames.barChartLabel}>\n {format(item.value)}\n </LabelStyle>\n )}\n </LabelFlexStyled>\n )\n );\n }\n};\n","import { ResizeBarWidthProps } from './types';\n\nexport const resizeBarWidth = ({\n data,\n range,\n barWidth,\n barPadding,\n sectionPadding,\n}: ResizeBarWidthProps): number => {\n const groupPadding = typeof sectionPadding === 'number' ? sectionPadding : 0;\n const chartWidth = range[1] - range[0];\n const barsWidth = data.reduce((acc, { groupName, ...curr }) => {\n return (\n acc +\n Object.keys(curr).reduce(\n (acc, _key, index) =>\n index > 0\n ? acc + (barWidth || 0) + (barPadding || 0)\n : acc + barWidth,\n 0\n ) +\n groupPadding\n );\n }, groupPadding);\n\n if (chartWidth < barsWidth) {\n return Math.floor(barWidth * (chartWidth / barsWidth));\n }\n\n return barWidth;\n};\n","import { BarChartMarshalledGroup } from '../types';\nimport { GetBarsProps } from './types';\n\nconst MIN_BAR_HEIGHT = 2;\n\nexport const getBars = ({ groups, barWidth }: GetBarsProps) => {\n return groups\n .selectAll('rect')\n .data((item: BarChartMarshalledGroup[]) => item)\n .join('rect')\n .attr('x', (item: BarChartMarshalledGroup) => item.x)\n .attr('y', (item: BarChartMarshalledGroup) => item.y)\n .attr('width', barWidth)\n .attr('height', (item: BarChartMarshalledGroup) =>\n item.value === null ? 0 : Math.max(item.height, MIN_BAR_HEIGHT))\n .style('fill', (item: BarChartMarshalledGroup) => item.color);\n};\n","import * as d3 from 'd3';\nimport { uniqueId } from 'lodash';\n\nimport { barChartClassNames as classNames } from './styled';\nimport { drawGrid } from './drawGrid';\nimport { appendSvg } from '../../helpers';\nimport { computeDimensions } from '../../helpers/computeDimensions';\nimport { getDomain } from './getDomain';\nimport { marshaling } from './marshaling';\nimport { drawTooltip } from './drawTooltip';\nimport { resizeBarWidth } from './resizeBarWidth';\nimport { drawLines } from './drawLines';\nimport { getBars } from './getBars';\nimport { BarChartProps, BarChartData, BarChartMarshalledGroup } from './types';\n\nconst MIN_BAR_HEIGHT = 2;\n\nexport const draw = (node: HTMLElement | null, props: BarChartProps): void => {\n const {\n data,\n lineData = [],\n markers = [],\n barWidth: barWidthProp,\n barPadding,\n colors,\n margin,\n xAxisPadding,\n yAxisPadding,\n drawGridY,\n drawGridX,\n customYScale,\n customXScale,\n customYAxisLeft,\n customXAxisBottom,\n customYAxis,\n customXAxis,\n customBars,\n customize,\n dynamicTooltipEnable,\n hideTooltipGroupName,\n renderTooltip,\n labelPosition,\n renderLabel,\n tooltipY,\n tooltipBind,\n stackedLine,\n curve,\n formatTooltipValue,\n formatTooltipName,\n sectionPadding,\n minValuesLine,\n tooltipYDomain,\n marshalledMap,\n minValue,\n maxValue,\n minDomainValue,\n maxDomainValue,\n drawBars,\n setTooltipPosition,\n onLabelItem,\n isBarTooltip,\n xScaleItemWidth,\n tooltipRoot,\n tooltipClassName,\n onBarClick,\n onBarHover,\n } = props;\n\n if (node !== null && data.length) {\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const defaultBarWidth = 12;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const height = props.height || 0;\n const barDomain = getDomain({\n data,\n minDomainValue,\n maxDomainValue,\n });\n\n const min =\n typeof minValue === 'number'\n ? minValue\n : Math.min(\n d3.min(lineData, ({ values }) => d3.min(values as number[])) ||\n Number.POSITIVE_INFINITY,\n barDomain.min || 0\n );\n const max =\n typeof maxValue === 'number'\n ? maxValue\n : Math.max(\n d3.max(lineData, ({ values }) => d3.max(values as number[])) ||\n Number.NEGATIVE_INFINITY,\n barDomain.max\n );\n const svg = appendSvg(node, width, height || 0);\n const yTicksCountDefault = 6;\n const labels = data.map((item: BarChartData) => item.groupName as string);\n let barWidth = barWidthProp || defaultBarWidth;\n\n const yScale = d3\n .scaleLinear()\n .domain([min, max])\n .range([\n height - marginTop - marginBottom - (xAxisPadding || 0),\n marginTop,\n ])\n .nice();\n\n customYScale && customYScale(yScale);\n\n const yTicks = yScale.ticks();\n const yAxisLeft = d3.axisLeft(yScale).ticks(yTicksCountDefault);\n\n customYAxisLeft && customYAxisLeft(yAxisLeft);\n\n const yTicksCount = yAxisLeft.tickArguments()[0];\n\n const yAxis = svg\n .append('g')\n .attr('class', classNames.barChartYAxis)\n .call(yAxisLeft);\n\n yAxis.selectAll('.tick').attr('class', value => {\n return value === 0 ? `tick ${classNames.barChartYAxisZeroTick}` : 'tick';\n });\n\n customYAxis && customYAxis(yAxis);\n\n const { width: yAxisWidth } = computeDimensions(yAxis);\n const range = [\n marginLeft + yAxisWidth + (yAxisPadding || 0),\n width - marginRight,\n ];\n\n const xScale = d3\n .scaleBand()\n .domain(d3.range(data.length) as [])\n .range(range);\n\n barWidth = resizeBarWidth({\n data,\n sectionPadding,\n range,\n barWidth,\n barPadding,\n });\n\n customXScale && customXScale(xScale);\n\n const [x1, x2] = xScale.range();\n\n const xAxisBottom = d3\n .axisBottom(xScale)\n .tickFormat(value => labels[Number(value)]);\n\n if (typeof xScaleItemWidth === 'number') {\n xAxisBottom\n .tickValues(\n xScale.domain().filter((_, i, array) => {\n const chartWidth = x2 - x1;\n const ticks = Math.round(chartWidth / xScaleItemWidth);\n const length = array.length;\n const divider = Math.round(length / ticks);\n\n return !(i % divider);\n })\n )\n .tickSizeOuter(0);\n }\n\n customXAxisBottom && customXAxisBottom(xAxisBottom, { node, labels });\n\n const xAxis = svg\n .append('g')\n .call(xAxisBottom)\n .attr('class', classNames.barChartXAxis);\n\n customXAxis && customXAxis(xAxis);\n\n const marshalled = marshaling({\n data,\n yScale,\n xScale,\n barWidth,\n barPadding: typeof barPadding === 'number' ? barPadding : 0,\n colors,\n marginTop,\n });\n\n const marshalledData = marshalledMap\n ? marshalledMap(marshalled)\n : marshalled;\n\n yAxis.attr('transform', `translate( ${marginLeft + yAxisWidth}, 0)`);\n\n drawGrid({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridY,\n drawGridX,\n });\n\n xAxis.attr(\n 'transform',\n `translate(0, ${yScale(yTicks[0]) + (xAxisPadding || 0)})`\n );\n\n const maskId = `height-limit-mask-${uniqueId()}`;\n\n svg.append('defs')\n .append('mask')\n .attr('id', maskId)\n .append('rect')\n .attr('width', '100%')\n .attr('height', height - marginBottom + MIN_BAR_HEIGHT)\n .attr('fill', 'white');\n\n const gSvg = svg.append('g')\n .attr('class', classNames.barChartBarGlobal)\n .attr('mask', `url(#${maskId})`);\n\n const groups = gSvg\n .selectAll('g')\n .data(marshalledData)\n .enter()\n .append('g')\n .attr(\n 'transform',\n (_: BarChartMarshalledGroup[], i) =>\n `translate(${Math.round(\n xScale((i as unknown) as string) as number\n )},${-(marginTop || 0)})`\n );\n\n const bars = drawBars\n ? drawBars({ groups, yScale, marshalledData, barWidth })\n : getBars({ groups, barWidth });\n\n markers.forEach((marker) => {\n if (!marker) {\n return;\n }\n\n if (marker.horizontal) {\n if (marker.line) {\n svg.append('line')\n .style(\"stroke\", marker.lineColor || marker.color || \"inherit\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", (\"5, 3\"))\n .attr(\"x1\", marginLeft + yAxisWidth)\n .attr(\"y1\", yScale(marker.value) + 1)\n .attr(\"x2\", width)\n .attr(\"y2\", yScale(marker.value) + 1);\n }\n\n svg.append(\"text\")\n .attr(\"y\", yScale(marker.value) + 1)\n .attr(\"x\", marginLeft + yAxisWidth)\n .attr('text-anchor', 'middle')\n .attr(\"class\", [\"marker\", marker.className].filter(Boolean).join(\" \"))\n .style(\"fill\", marker?.color || \"inherit\")\n .text(marker.label);\n\n return;\n }\n\n if (marker.line) {\n svg.append('line')\n .style(\"stroke\", marker.lineColor || marker.color || \"inherit\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", (\"5, 3\"))\n .attr(\"x1\", width / data.length * marker.value + 1)\n .attr(\"y1\", 0)\n .attr(\"x2\", width / data.length * marker.value + 1)\n .attr(\"y2\", (height - marginTop - marginBottom + 8));\n }\n\n svg.append(\"text\")\n .attr(\"y\", height - 2)\n .attr(\"x\", width / data.length * marker.value + 1)\n .attr('text-anchor', marker.align === 'right' ? 'end' : marker.align === 'left' ? 'start' : 'middle')\n .attr(\"class\", [\"marker\", marker.className].filter(Boolean).join(\" \"))\n .style(\"fill\", marker?.color || \"inherit\")\n .text(marker.label);\n });\n\n let lines = null;\n\n if (Array.isArray(lineData) && lineData.length > 0) {\n lines = drawLines({\n svg,\n lineData,\n xScale,\n yScale,\n min: typeof minValuesLine === 'number' ? minValuesLine : min,\n stackedLine,\n curve,\n });\n }\n\n customBars && customBars({ bars, yScale, lines, marshalledData, lineData });\n\n if (dynamicTooltipEnable || labelPosition) {\n drawTooltip({\n svg,\n node,\n xScale,\n yScale,\n marshalledData,\n data,\n lineData,\n renderTooltip,\n labelPosition,\n marginTop,\n renderLabel,\n barWidth,\n barPadding,\n dynamicTooltipEnable,\n hideTooltipGroupName,\n tooltipY,\n tooltipBind,\n formatTooltipValue,\n formatTooltipName,\n tooltipYDomain,\n setTooltipPosition,\n onLabelItem,\n isBarTooltip,\n bars: groups,\n tooltipRoot,\n tooltipClassName,\n onBarClick,\n onBarHover,\n });\n }\n\n customize && customize({ svg, marshalledData, yScale, xScale, lineData });\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { SvgWrapper, TooltipStyles } from \"./styled\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\nimport { useSelection } from \"./hooks/useSelection\";\n\nimport { draw } from \"./draw\";\n\nimport { BarChartProps } from \"./types\";\n\nexport const BarChart: FC<BarChartProps> = (props) => {\n const { className, style, children, selectable } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n useSelection(selectable ? node : null, props);\n\n return (\n <div className={className} style={style}>\n <TooltipStyles />\n <SvgWrapper ref={ref} selectable={selectable}>{children}</SvgWrapper>\n </div>\n );\n};\n\nBarChart.defaultProps = {\n data: [],\n colors: {},\n margin: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 0,\n },\n barWidth: 12,\n barPadding: 0,\n height: 320,\n yAxisPadding: 0,\n xAxisPadding: 0,\n tooltipBind: true,\n sectionPadding: 1,\n};\n","import { useMemo } from 'react';\nimport * as d3 from 'd3';\n\nimport {\n HorizontalBarChartProps,\n HorizontalBarChartData,\n HorizontalBarChartMarshalingData,\n} from '../types';\n\nconst hundred = 100;\n\nexport const useMarshaling = ({\n data,\n fullExtent,\n maxValue,\n labels,\n}: Pick<\n HorizontalBarChartProps,\n 'data' | 'fullExtent' | 'maxValue' | 'labels'\n>): {\n fullMax: number;\n data: HorizontalBarChartMarshalingData[][];\n} => {\n return useMemo(() => {\n const fullMax = d3.max(data, item =>\n d3.sum(item, ({ value }) => value)\n ) as number;\n const scaleLinear = d3\n .scaleLinear()\n .domain([\n 0,\n typeof maxValue === 'number' ? maxValue : fullMax,\n ] as Iterable<d3.NumberValue>)\n .range([0, hundred]);\n\n return {\n fullMax,\n data: data.map((item: HorizontalBarChartData[], index) => {\n if (!fullExtent) {\n scaleLinear.domain([\n 0,\n typeof maxValue === 'number'\n ? maxValue\n : d3.sum(item, ({ value }) => value),\n ] as Iterable<d3.NumberValue>);\n }\n\n return item.map(({ value, ...rest }) => ({\n ...rest,\n value,\n width: scaleLinear(value),\n groupName: labels ? labels[index] : '',\n }));\n }),\n };\n }, [data, fullExtent, maxValue, labels]);\n};\n","import styled from \"styled-components\";\n\nimport { TooltipFlex as TooltipFlexUI } from \"../../common/components/tooltips\";\n\nexport const horizontalBarChartClassNames = {\n horizontalBarChartButtonTd: \"horizontalBarChartButtonTd\",\n horizontalBarChartLabelTd: \"horizontalBarChartLabelTd\",\n horizontalBarChartLabelCell: \"horizontalBarChartLabelCell\",\n horizontalBarChartBarTd: \"horizontalBarChartBarTd\",\n horizontalBarChartBarFlex: \"horizontalBarChartBarFlex\",\n horizontalBarChartBar: \"horizontalBarChartBar\",\n horizontalBarChartBarFirst: \"horizontalBarChartBarFirst\",\n horizontalBarChartBarLast: \"horizontalBarChartBarLast\",\n horizontalBarChartBarOnly: \"horizontalBarChartBarOnly\",\n horizontalBarChartTooltipFlex: \"horizontalBarChartTooltipFlex\",\n horizontalBarChartStackWrapper: \"horizontalBarChartStackWrapper\",\n horizontalBarChartTooltipContainer: \"horizontalBarChartTooltipContainer\",\n horizontalBarChartStackSumContainer: \"horizontalBarChartStackSumContainer\",\n horizontalBarChartStackSum: \"horizontalBarChartStackSum\",\n horizontalBarChartXScaleTd: \"horizontalBarChartXScaleTd\",\n horizontalBarChartXScaleTicks: \"horizontalBarChartXScaleTicks\",\n horizontalBarChartXScaleTick: \"horizontalBarChartXScaleTick\",\n horizontalBarChartTooltipItem: \"horizontalBarChartTooltipItem\",\n horizontalBarChartTooltipName: \"horizontalBarChartTooltipName\",\n horizontalBarChartTooltipValue: \"horizontalBarChartTooltipValue\",\n};\n\nexport const Table = styled.table`\n width: 100%;\n`;\n\nexport const LabelCell = styled.div`\n text-align: right;\n`;\n\nexport const BarFlex = styled.div`\n width: 100%;\n display: flex;\n height: 1rem;\n`;\n\nexport const BarsTd = styled.td`\n width: 100%;\n position: relative;\n vertical-align: middle;\n`;\n\nexport const TooltipFlex = styled(TooltipFlexUI)`\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n will-change: left, top;\n`;\n\nexport const StackSumContainer = styled.div`\n position: relative;\n`;\n\nexport const StackSum = styled.div`\n white-space: nowrap;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(0, -50%);\n`;\n\nexport const StackWrapper = styled.div`\n position: absolute;\n top: 0;\n display: flex;\n justify-content: flex-start;\n height: 100%;\n`;\n","import React from 'react';\nimport * as d3 from 'd3';\n\nimport {\n horizontalBarChartClassNames as classNames,\n TooltipFlex,\n} from '../styled';\nimport {\n TooltipContainer,\n TooltipItem,\n Name,\n Value,\n ColorBox,\n} from '../../../common/components/tooltips';\n\nimport { TooltipProps } from './types';\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n renderTooltip,\n bars,\n style,\n className,\n}): React.ReactElement => {\n const format = d3.format(',');\n\n return (\n <TooltipFlex\n className={`${classNames.horizontalBarChartTooltipFlex} ${className ||\n ''}`}\n style={style}\n >\n <TooltipContainer\n className={classNames.horizontalBarChartTooltipContainer}\n >\n {renderTooltip\n ? renderTooltip(bars)\n : bars.map(({ color, name, value, groupName }, index) => (\n <TooltipItem\n key={`${name || ''}-${index}-${groupName}`}\n className={classNames.horizontalBarChartTooltipItem}\n >\n {color && <ColorBox style={{ backgroundColor: color }} />}\n {name && (\n <Name className={classNames.horizontalBarChartTooltipName}>\n {name}\n </Name>\n )}\n <Value className={classNames.horizontalBarChartTooltipValue}>\n {format(value)}\n </Value>\n </TooltipItem>\n ))}\n </TooltipContainer>\n </TooltipFlex>\n );\n};\n","import React, { useCallback, useEffect } from 'react';\nimport * as d3 from 'd3';\nimport { render, unmountComponentAtNode } from 'react-dom';\n\nimport {\n HorizontalBarChartMarshalingData,\n HorizontalBarChartProps,\n} from '../../types';\nimport { UseTooltip } from './types';\n\nimport { Tooltip } from '../../Tooltip';\n\nconst rootElement: HTMLDivElement = document.createElement('div');\n\nexport const useTooltip = ({\n renderTooltip,\n tooltipBind,\n tooltipStyle,\n tooltipRoot,\n tooltipClassName,\n hideTooltip,\n}: Pick<\n HorizontalBarChartProps,\n | 'renderTooltip'\n | 'tooltipBind'\n | 'tooltipStyle'\n | 'tooltipRoot'\n | 'tooltipClassName'\n | 'hideTooltip'\n>): UseTooltip => {\n useEffect(() => {\n const container: Element | null =\n tooltipRoot || document.querySelector('body');\n\n container && container.appendChild(rootElement);\n return () => {\n unmountComponentAtNode(rootElement);\n };\n }, [tooltipRoot]);\n\n const onMouseMove = useCallback(\n (event: React.MouseEvent, bars: HorizontalBarChartMarshalingData[]) => {\n let [x, y] = d3.pointer(event, document);\n\n if (!tooltipBind && 'getBoundingClientRect' in event.target) {\n const {\n width,\n height,\n }: DOMRect = (event.target as HTMLDivElement).getBoundingClientRect();\n const [barX, barY] = d3.pointer(event, event.target);\n\n x = x - barX + width / 2;\n y = y - barY + height / 2;\n }\n\n if (rootElement) {\n rootElement.style.visibility = 'visible';\n }\n\n render(\n <Tooltip\n style={{\n left: x,\n top: y,\n ...tooltipStyle,\n }}\n bars={bars}\n renderTooltip={renderTooltip}\n className={tooltipClassName}\n />,\n rootElement\n );\n },\n [tooltipClassName, tooltipStyle, renderTooltip, tooltipBind]\n );\n\n const onMouseLeave = useCallback(() => {\n if (rootElement) {\n rootElement.style.visibility = 'hidden';\n hideTooltip && hideTooltip();\n }\n }, [hideTooltip]);\n\n return [onMouseMove, onMouseLeave];\n};\n","import React, { Fragment, useMemo, CSSProperties, ReactNode } from 'react';\n\nimport {\n horizontalBarChartClassNames as classNames,\n StackWrapper,\n} from '../styled';\n\nimport { UseTooltip } from './useTooltip/types';\nimport {\n HorizontalBarChartMarshalingData,\n HorizontalBarChartProps,\n} from '../types';\n\nexport const useStackWrapper = (stackedTooltip?: boolean) => {\n return useMemo(\n () =>\n stackedTooltip\n ? ({\n item,\n mouseMove,\n mouseLeave,\n tooltipBind,\n ...props\n }: {\n style?: CSSProperties;\n item: HorizontalBarChartMarshalingData[];\n tooltipBind: HorizontalBarChartProps['tooltipBind'];\n mouseMove: UseTooltip[0];\n mouseLeave: UseTooltip[1];\n }) => (\n <StackWrapper\n className={classNames.horizontalBarChartStackWrapper}\n onMouseOver={event => mouseMove(event, item)}\n onMouseMove={\n tooltipBind ? event => mouseMove(event, item) : void 0\n }\n onMouseOut={mouseLeave}\n {...props}\n />\n )\n : ({ children }: { children?: ReactNode }) => (\n <Fragment>{children}</Fragment>\n ),\n [stackedTooltip]\n );\n};\n","import styled from 'styled-components';\n\nexport const BarStyled = styled.div`\n position: relative;\n display: inline-flex;\n height: 100%;\n`;\n","import React from 'react';\n\nimport { BarProps } from './types';\n\nimport { horizontalBarChartClassNames as classNames } from '../styled';\nimport { BarStyled } from './styled';\n\nexport const Bar: React.FC<BarProps> = ({\n withTooltip,\n bar,\n formatNativeTitle,\n tooltipBind,\n mouseMove,\n mouseLeave,\n pointerEventsNone,\n isFirstChild,\n isLastChild,\n isOnlyChild,\n}): React.ReactElement => {\n const { color, width } = bar;\n const ceiledWidth = Math.abs(width);\n const onMouseMove = withTooltip\n ? (event: React.MouseEvent) => mouseMove(event, [bar])\n : void 0;\n const onMouseLeave = withTooltip ? () => mouseLeave() : void 0;\n\n return (\n <BarStyled\n className={`${classNames.horizontalBarChartBar} ${\n isFirstChild ? classNames.horizontalBarChartBarFirst : ''\n } ${isLastChild ? classNames.horizontalBarChartBarLast : ''} ${\n isOnlyChild ? classNames.horizontalBarChartBarOnly : ''\n }`}\n style={{\n width: `${ceiledWidth}%`,\n backgroundColor: color,\n pointerEvents: pointerEventsNone ? 'none' : 'auto',\n }}\n title={formatNativeTitle ? formatNativeTitle(bar) : ''}\n onMouseOver={onMouseMove}\n onMouseMove={tooltipBind ? onMouseMove : void 0}\n onMouseOut={onMouseLeave}\n />\n );\n};\n","import { useMemo } from 'react';\nimport * as d3 from 'd3';\n\nimport {\n HorizontalBarChartProps,\n HorizontalBarChartScaleItem,\n} from '../../types';\n\nconst hundred = 100;\n\nexport const useScale = ({\n maxValue,\n scaleTicks,\n scaleDomain,\n}: Pick<\n HorizontalBarChartProps,\n 'maxValue' | 'scaleTicks' | 'scaleDomain'\n>): HorizontalBarChartScaleItem[] => {\n return useMemo(() => {\n const scaleLinear = d3\n .scaleLinear()\n .domain([0, maxValue] as Iterable<d3.NumberValue>)\n .range([0, hundred]);\n\n const ticks = scaleLinear.ticks(scaleTicks);\n\n return (scaleDomain || ticks).map((value: number) => ({\n value,\n x: scaleLinear(value),\n }));\n }, [maxValue, scaleTicks, scaleDomain]);\n};\n","import styled from 'styled-components';\n\nexport const TickTd = styled.td`\n position: relative;\n`;\n\nexport const Ticks = styled.div`\n position: relative;\n height: 1rem;\n`;\n\nexport const Tick = styled.div`\n white-space: nowrap;\n width: 0;\n height: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n","import React from 'react';\nimport * as d3 from 'd3';\n\nimport { HorizontalBarChartProps } from '../types';\n\nimport { useScale } from './hooks/useScale';\n\nimport { TickTd, Ticks, Tick } from './styled';\nimport { horizontalBarChartClassNames as classNames } from '../styled';\n\nexport const XScale: React.FC<Pick<\n HorizontalBarChartProps,\n 'maxValue' | 'scaleTicks' | 'renderTicks' | 'scaleDomain'\n>> = ({\n maxValue,\n scaleTicks,\n renderTicks,\n scaleDomain,\n}): React.ReactElement => {\n const range = useScale({ maxValue, scaleTicks, scaleDomain });\n const format = d3.format(',');\n\n return (\n <tr>\n <td />\n <TickTd className={classNames.horizontalBarChartXScaleTd}>\n <Ticks className={classNames.horizontalBarChartXScaleTicks}>\n {range.map((tick, index, ticks) => {\n const { value, x } = tick;\n\n return (\n <Tick\n key={value}\n className={classNames.horizontalBarChartXScaleTick}\n style={{\n left: `${x}%`,\n justifyContent:\n index === 0\n ? 'flex-start'\n : index === ticks.length - 1\n ? 'flex-end'\n : '',\n }}\n >\n {renderTicks ? renderTicks(tick) : format(value)}\n </Tick>\n );\n })}\n </Ticks>\n </TickTd>\n </tr>\n );\n};\n","import React, { FC } from \"react\";\nimport * as d3 from \"d3\";\n\nimport { HorizontalBarChartProps } from \"./types\";\n\nimport { useMarshaling } from \"./hooks/useMarshaling\";\nimport { useTooltip } from \"./hooks/useTooltip\";\nimport { useStackWrapper } from \"./hooks/useStackWrapper\";\n\nimport { Bar } from \"./Bar\";\nimport { XScale } from \"./XScale\";\n\nimport {\n Table,\n LabelCell,\n horizontalBarChartClassNames as classNames,\n BarFlex,\n BarsTd,\n StackSumContainer,\n StackSum,\n} from \"./styled\";\n\nexport const HorizontalBarChart: FC<HorizontalBarChartProps> = ({\n data,\n className,\n style,\n children,\n labels,\n fullExtent,\n maxValue,\n formatNativeTitle,\n renderTooltip,\n withTooltip,\n withStackSum,\n tooltipBind,\n scaleTicks,\n renderTicks,\n renderButton,\n tooltipStyle,\n tooltipClassName,\n scaleDomain,\n renderDataTable,\n thead,\n withoutXScale,\n stackedTooltip,\n fullChartTooltip,\n hideTooltip,\n}) => {\n const { fullMax, data: marshalingData } = useMarshaling({\n data,\n fullExtent,\n maxValue,\n labels,\n });\n const [mouseMove, mouseLeave] = useTooltip({\n renderTooltip,\n tooltipBind,\n tooltipStyle,\n tooltipClassName,\n hideTooltip,\n });\n const Stack = useStackWrapper(stackedTooltip);\n\n return (\n <Table\n className={className}\n style={style}\n onMouseOver={\n fullChartTooltip\n ? event => mouseMove(event, marshalingData.flat())\n : void 0\n }\n onMouseMove={\n fullChartTooltip\n ? event => mouseMove(event, marshalingData.flat())\n : void 0\n }\n onMouseOut={fullChartTooltip ? mouseLeave : void 0}\n >\n {thead}\n <tbody>\n {marshalingData.map((item, rowIndex) => {\n const stackSum =\n (withStackSum || renderDataTable) &&\n d3.sum(item, ({ value }) => value);\n const sumWidth = d3.sum(item, ({ width }) => width);\n\n return (\n <tr key={`row-${rowIndex}`}>\n {typeof renderButton === \"function\" && (\n <td className={classNames.horizontalBarChartButtonTd}>\n {renderButton(item, rowIndex)}\n </td>\n )}\n <td className={classNames.horizontalBarChartLabelTd}>\n {labels && labels[ rowIndex ] && (\n <LabelCell className={classNames.horizontalBarChartLabelCell}>\n {labels[ rowIndex ]}\n </LabelCell>\n )}\n </td>\n <BarsTd\n className={classNames.horizontalBarChartBarTd}\n style={{ pointerEvents: fullChartTooltip ? \"none\" : \"auto\" }}\n >\n <BarFlex\n className={classNames.horizontalBarChartBarFlex}\n style={{ pointerEvents: fullChartTooltip ? \"none\" : \"auto\" }}\n >\n <Stack\n style={stackedTooltip ? { width: `${sumWidth}%` } : void 0}\n item={item}\n tooltipBind={tooltipBind}\n mouseMove={mouseMove}\n mouseLeave={mouseLeave}\n />\n {item.map(\n (bar, barIndex, array) =>\n bar.value !== 0 && (\n <Bar\n key={`bar-${bar.name || \"\"}-${barIndex}`}\n formatNativeTitle={formatNativeTitle}\n bar={bar}\n tooltipBind={tooltipBind}\n pointerEventsNone={stackedTooltip || fullChartTooltip}\n withTooltip={withTooltip && !stackedTooltip}\n mouseMove={mouseMove}\n mouseLeave={mouseLeave}\n isOnlyChild={array.length === 1}\n isFirstChild={barIndex === 0 && array.length > 1}\n isLastChild={\n array.length - 1 === barIndex && array.length > 1\n }\n />\n ),\n )}\n {withStackSum && (\n <StackSumContainer\n className={classNames.horizontalBarChartStackSumContainer}\n >\n <StackSum\n className={classNames.horizontalBarChartStackSum}\n >\n {stackSum}\n </StackSum>\n </StackSumContainer>\n )}\n </BarFlex>\n </BarsTd>\n {renderDataTable &&\n renderDataTable(item, stackSum as number, rowIndex)}\n </tr>\n );\n })}\n {!withoutXScale && (\n <XScale\n maxValue={typeof maxValue === \"number\" ? maxValue : fullMax}\n scaleTicks={scaleTicks}\n renderTicks={renderTicks}\n scaleDomain={scaleDomain}\n />\n )}\n {children}\n </tbody>\n </Table>\n );\n};\n\nHorizontalBarChart.defaultProps = {\n fullExtent: true,\n withTooltip: false,\n withStackSum: false,\n tooltipBind: false,\n scaleTicks: 4,\n withoutXScale: false,\n};\n","export const bubbleChartDefaultProps = {\n height: 280,\n minSize: 6,\n maxSize: 30,\n margin: {\n top: 10,\n right: 15,\n bottom: 10,\n left: 0,\n },\n yAxisPadding: 10,\n xAxisPadding: 10,\n yScaleLabelPadding: 10,\n};\n","import { JSXElementConstructor } from \"react\";\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport { Wrapper } from \"../../common/components/Wrapper\";\n\nexport const bubbleChartClassNames = {\n bubbleChartYAxis: \"bubbleChartYAxis\",\n bubbleChartYAxisZeroTick: \"bubbleChartYAxisZeroTick\",\n bubbleChartXAxis: \"bubbleChartXAxis\",\n bubbleChartGridGlobal: \"bubbleChartGridGlobal\",\n bubbleChartGridLineX: \"bubbleChartGridLineX\",\n bubbleChartGridLineY: \"bubbleChartGridLineY\",\n bubbleChartCircle: \"bubbleChartCircle\",\n bubbleChartYScaleLabel: \"bubbleChartYScaleLabel\",\n bubbleChartTooltip: \"bubbleChartTooltip\",\n bubbleChartTooltipContainer: \"bubbleChartTooltipContainer\",\n bubbleChartTooltipFlex: \"bubbleChartTooltipFlex\",\n bubbleChartTip: \"bubbleChartTip\",\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${bubbleChartClassNames.bubbleChartYAxis},\n .${bubbleChartClassNames.bubbleChartXAxis},\n .${bubbleChartClassNames.bubbleChartGridGlobal} {\n shape-rendering: crispEdges;\n }\n\n .${bubbleChartClassNames.bubbleChartGridLineX},\n .${bubbleChartClassNames.bubbleChartGridLineY} {\n stroke: rgba(149, 149, 149, 0.24);\n }\n\n .${bubbleChartClassNames.bubbleChartYScaleLabel} {\n font-size: 10px;\n }\n`;\n\nexport const TooltipStyles = createGlobalStyle`\n .${bubbleChartClassNames.bubbleChartTooltipContainer} {\n position: absolute;\n transition: opacity 150ms cubic-bezier(0.2, 1, 0.6, 1);\n pointer-events: none;\n z-index: 1;\n }\n` as JSXElementConstructor<any>;\n","import { DrawGridProps } from './types';\n\nimport { bubbleChartClassNames } from '../styled';\n\nexport const drawGrid = ({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridX,\n drawGridY,\n}: DrawGridProps) => {\n if (!drawGridY && !drawGridX) return;\n const [min, max] = xScale.domain();\n\n const global = svg\n .append('g')\n .attr('class', bubbleChartClassNames.bubbleChartGridGlobal);\n\n const yTicks = yScale.ticks(yTicksCount);\n\n if (drawGridX) {\n global\n .append('g')\n .selectAll('line')\n .data(yTicks)\n .join('line')\n .attr('class', bubbleChartClassNames.bubbleChartGridLineX)\n .attr('x1', () => xScale(min))\n .attr('x2', () => xScale(max))\n .attr('y1', (d: number) => Math.round(yScale(d)))\n .attr('y2', (d: number) => Math.round(yScale(d)));\n }\n\n if (drawGridY) {\n global\n .append('g')\n .selectAll('line')\n .data(xScale.ticks(yTicksCount))\n .join('line')\n .attr('class', bubbleChartClassNames.bubbleChartGridLineY)\n .attr('x1', (d: number) => Math.round(xScale(d)))\n .attr('x2', (d: number) => Math.round(xScale(d)))\n .attr('y1', () => Math.round(yScale(yTicks[0])))\n .attr('y2', () => Math.round(yScale(yTicks[yTicks.length - 1])));\n }\n};\n","import styled from 'styled-components';\n\nexport const Tooltip = styled.div`\n width: 0;\n height: 0;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n font-size: 12px;\n white-space: nowrap;\n`;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport * as d3 from 'd3';\n\nimport { Tooltip } from './styled';\nimport { bubbleChartClassNames as classNames } from '../styled';\nimport { TooltipContainer } from '../../../common/components/tooltips';\nimport { DrawTooltipProps } from './types';\n\nexport const drawTooltip = ({\n bubbles,\n tooltipRoot,\n tooltipClassName,\n renderTooltip,\n}: DrawTooltipProps) => {\n const root: Element | null = tooltipRoot || document.querySelector('body');\n const format = d3.format(',');\n\n let container: d3.Selection<any, unknown, any, any> = d3\n .select(root)\n .select(`.${classNames.bubbleChartTooltip}`);\n\n if (container.node() === null) {\n container = d3\n .select(root)\n .append('div')\n .attr('class', classNames.bubbleChartTooltip);\n }\n\n let tooltip: d3.Selection<\n HTMLDivElement,\n unknown,\n d3.BaseType,\n any\n > = container\n .append('div')\n .attr(\n 'class',\n `${classNames.bubbleChartTooltipContainer} ${tooltipClassName || ''}`\n )\n .style('opacity', '0');\n\n bubbles.on('mouseover.tooltip', (event, data) => {\n const { sizeValue } = data;\n const circle = event.currentTarget as SVGCircleElement;\n const { x, y, width } = circle.getBoundingClientRect();\n const left = window.pageXOffset + x + width / 2;\n const top = window.pageYOffset + y;\n\n tooltip\n .style('left', `${left}px`)\n .style('top', `${top}px`)\n .html(() => {\n const html = ReactDOMServer.renderToString(\n <Tooltip className={classNames.bubbleChartTooltipFlex}>\n <TooltipContainer className={classNames.bubbleChartTip}>\n {format(sizeValue)}\n </TooltipContainer>\n </Tooltip>\n );\n\n return html;\n });\n\n renderTooltip && renderTooltip({ tooltip, data, circle });\n\n tooltip.style('opacity', '1');\n });\n\n bubbles.on('mouseout.tooltip', () => {\n tooltip.style('opacity', '0');\n });\n};\n","import * as d3 from 'd3';\n\nimport { BubbleChartProps } from './types';\n\nimport { appendSvg } from '../../helpers';\nimport { computeDimensions } from '../../helpers/computeDimensions';\n\nimport { bubbleChartDefaultProps } from './bubbleChartDefaultProps';\nimport { drawGrid } from './drawGrid';\nimport { drawTooltip } from './drawTooltip';\n\nimport { bubbleChartClassNames as classNames } from './styled';\n\nexport const draw = (\n node: HTMLElement | null,\n props: BubbleChartProps\n): void => {\n const {\n data,\n margin,\n xAxisPadding,\n yAxisPadding,\n customYScale,\n customYAxis,\n customXScale,\n customXAxis,\n minSize,\n maxSize,\n minYValue,\n maxYValue,\n drawGridY,\n drawGridX,\n scaleLog,\n xScaleItemWidth,\n bubbleStyle,\n customize,\n yScaleLabel,\n yScaleLabelPadding,\n enableTooltip,\n tooltipRoot,\n tooltipClassName,\n renderTooltip,\n } = props;\n\n if (node !== null && data.length) {\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const height = props.height || 0;\n const yTicksCountDefault = 6;\n\n const minY =\n typeof minYValue === 'number'\n ? minYValue\n : (d3.min(data, ({ yValue }) => yValue) as number);\n const maxY =\n typeof maxYValue === 'number'\n ? maxYValue\n : (d3.max(data, ({ yValue }) => yValue) as number);\n\n const svg = appendSvg(node, width, height || 0);\n\n const sizeScale = scaleLog\n ? d3\n .scaleLog()\n .domain([\n d3.min(data, ({ sizeValue }) => sizeValue) as number || 0.1,\n d3.max(data, ({ sizeValue }) => sizeValue) as number || 0.1,\n ])\n .range([\n minSize || bubbleChartDefaultProps.minSize || 0.1,\n maxSize || bubbleChartDefaultProps.maxSize || 0.1,\n ])\n : d3\n .scaleLinear()\n .domain([\n d3.min(data, ({ sizeValue }) => sizeValue) as number,\n d3.max(data, ({ sizeValue }) => sizeValue) as number,\n ])\n .range([\n minSize || bubbleChartDefaultProps.minSize,\n maxSize || bubbleChartDefaultProps.maxSize,\n ]);\n\n const yRange1 = height - marginTop - marginBottom - (xAxisPadding || 0);\n\n const yScale = scaleLog\n ? d3\n .scaleLog()\n .domain([minY || 0.1, maxY || 0.1])\n .range([yRange1 || 0.1, marginTop || 0.1])\n .nice()\n : d3\n .scaleLinear()\n .domain([minY, maxY])\n .range([yRange1, marginTop])\n .nice();\n\n customYScale && customYScale(yScale);\n\n const yTicks = yScale.ticks();\n const yAxisLeft = d3.axisLeft(yScale).ticks(yTicksCountDefault);\n\n const yTicksCount = yAxisLeft.tickArguments()[0];\n\n const yAxis = svg\n .append('g')\n .attr('class', classNames.bubbleChartYAxis)\n .call(yAxisLeft);\n\n let yScaleLabelHeight = yScaleLabelPadding || 0;\n\n if (yScaleLabel) {\n const label = svg\n .append('text')\n .text(yScaleLabel)\n .attr('class', classNames.bubbleChartYScaleLabel);\n\n const { width, height } = computeDimensions(label);\n\n yScaleLabelHeight = yScaleLabelHeight + height;\n\n label.attr(\n 'transform',\n `rotate(-90) translate(-${(yRange1 + marginBottom + width) /\n 2}, ${height})`\n );\n }\n\n yAxis.selectAll('.tick').attr('class', value => {\n return value === 0\n ? `tick ${classNames.bubbleChartYAxisZeroTick}`\n : 'tick';\n });\n\n customYAxis && customYAxis(yAxis);\n\n const { width: yAxisWidth } = computeDimensions(yAxis);\n\n const xScale = scaleLog\n ? d3\n .scaleLog()\n .domain([\n d3.min(data, ({ xValue }) => xValue) as number || 0.1,\n d3.max(data, ({ xValue }) => xValue) as number || 0.1,\n ])\n .range([\n (marginLeft + yAxisWidth + (yAxisPadding || 0) + yScaleLabelHeight) || 0.1,\n (width - marginRight) || 0.1,\n ])\n : d3\n .scaleLinear()\n .domain([\n d3.min(data, ({ xValue }) => xValue) as number,\n d3.max(data, ({ xValue }) => xValue) as number,\n ])\n .range([\n marginLeft + yAxisWidth + (yAxisPadding || 0) + yScaleLabelHeight,\n width - marginRight,\n ]);\n\n customXScale && customXScale(xScale);\n\n const xAxisBottom = d3.axisBottom(xScale);\n\n if (typeof xScaleItemWidth === 'number') {\n const [x1, x2] = xScale.range();\n const chartWidth = x2 - x1;\n\n xAxisBottom\n .ticks(Math.round(chartWidth / xScaleItemWidth))\n .tickSizeOuter(0);\n }\n\n const xAxis = svg\n .append('g')\n .call(xAxisBottom)\n .attr('class', classNames.bubbleChartXAxis);\n\n customXAxis && customXAxis(xAxis);\n\n yAxis.attr(\n 'transform',\n `translate(${marginLeft + yAxisWidth + yScaleLabelHeight}, 0)`\n );\n\n drawGrid({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridY,\n drawGridX,\n });\n\n xAxis.attr(\n 'transform',\n `translate(0, ${yScale(yTicks[0]) + (xAxisPadding || 0)})`\n );\n\n const bubbles = svg\n .append('g')\n .selectAll('dot')\n .data(data)\n .enter()\n .append('circle')\n .attr('class', classNames.bubbleChartCircle)\n .attr('cx', ({ xValue }) => xScale(xValue))\n .attr('cy', ({ yValue }) => yScale(yValue))\n .attr('r', ({ sizeValue }) => sizeScale(sizeValue) / 2)\n .attr('fill', ({ color }) => color || 'rgba(0, 176, 113, 0.6)')\n .attr('stroke', ({ stroke }) => stroke || 'transparent')\n .attr('style', ({ style }) => style || bubbleStyle || '');\n\n if (enableTooltip) {\n drawTooltip({ bubbles, tooltipRoot, tooltipClassName, renderTooltip });\n }\n\n customize && customize({ svg, bubbles, yScale, xScale, sizeScale });\n }\n};\n","import * as d3 from 'd3';\n\nimport { bubbleChartClassNames as classNames } from './styled';\n\nexport const unmount = (tooltipRoot?: Element) => {\n const root: Element | null = tooltipRoot || document.querySelector('body');\n\n d3.select(root)\n .select(`.${classNames.bubbleChartTooltip}`)\n .remove();\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { BubbleChartProps } from \"./types\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\n\nimport { draw } from \"./draw\";\nimport { unmount } from \"./unmount\";\nimport { bubbleChartDefaultProps } from \"./bubbleChartDefaultProps\";\n\nimport { SvgWrapper, TooltipStyles } from \"./styled\";\n\nexport const BubbleChart: FC<BubbleChartProps> = (\n props,\n) => {\n const { className, style, children, tooltipRoot } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n useEffect(() => {\n return () => unmount(tooltipRoot);\n }, [tooltipRoot]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <TooltipStyles />\n <SvgWrapper ref={ref}>{children}</SvgWrapper>\n </div>\n );\n};\n\nBubbleChart.defaultProps = bubbleChartDefaultProps;\n"],"names":["Wrapper","styled","div","_templateObject","_taggedTemplateLiteralLoose","useNode","node","onSetNode","useState","ref","useCallback","throttle","fn","wait","isCalled","arguments","setTimeout","THROTTLE_DELAY","useResize","width","callback","delay","throttledCallback","useMemo","undefined","useEffect","window","addEventListener","removeEventListener","appendSvg","height","d3","select","remove","svg","append","attr","SwipeScrollContainer","animate","_ref","duration","timing","draw","start","performance","now","requestId","requestAnimationFrame","requestAnimate","time","timeFraction","cancelAnimationFrame","progress","easeOutQuad","range","num","min","max","Math","defaultRefs","animation","speed","timestamp","startX","currentX","useSwipe","animationFunc","onSwipe","container","body","documentSelect","document","refs","useRef","current","onMove","event","nodeWidth","getBoundingClientRect","x","type","includes","touches","newX","maxX","translateX","style","hundred","Date","dt","dx","speedX","round","onEnd","on","dtEnd","px","currX","transX","onStart","isTouch","left","parentElement","SwipeScroll","children","props","_objectWithoutPropertiesLoose","_excluded","draggingNode","_extends","React","defaultProps","degByIndex","index","count","degs","deg","getTextAnchor","length","halfAngle","getTranslate","anchor","translateY","LabelContainer","attrs","transform","labelClassName","drawRadialLabels","dataLength","radiusScale","maxValue","angleSlice","radius","xOffset","yOffset","renderLabel","selectLabel","d3container","selectAll","pxToValue","value","axisX","i","cos","PI","axisY","sin","labels","Array","from","_","ceil","y","forEach","_ref2","html","ReactDOMServer","renderToString","top","label","Label","Name","_templateObject2","middleBadgeStyles","css","_templateObject3","DefaultBadge","_templateObject4","MiddleBadge","_templateObject5","BadgePrefix","_templateObject6","radarChartclassNames","radar","radarAxis","radarAxisTextGlobal","radarAxisText","radarPolygon","radarLabel","radarLabelName","radarLabelBadge","radarLabelBadgePrefix","radarCircle","SvgWrapper","data","curve","polar","formatValue","badgePrefix","labelOffset","circleRadius","svgElements","customize","formatAxisValue","radarStyles","labelIndex","defaultBleedLength","bleedLength","defaultHeight","minValue","map","paddingX","paddingY","defaultLevels","ticks","domain","levels","lastTick","newLastTick","push","newMaxValue","radarLine","_ref3","angle","radarValue","_ref4","globalCenter","levelsGrid","reverse","axisGridY","getAxisValue","gridGlobal","enter","radarGlobal","axis","_ref5","name","maxGridHeight","path","circleNode","circleHeight","pathNode","pathHeight","radiusByMaxValue","join","d","dataItem","format","axisTextGlobal","text","axisValue","item","circleGlobal","_ref6","defaultLabelOffset","heightInner","offset","items","Badge","className","RadarChart","onDraw","radiansToDegrees","radians","flatAngle","degreesToRadians","degrees","pieChartclassNames","pieGlobal","pieSlice","pieSliceLabel","pieSliceLabelValue","pieSliceLabelName","pieRadialLabel","pieRadialLink","pieTooltipContainer","pieTooltipFlex","pieTooltip","pieTooltipItem","pieTooltipName","pieTooltipValue","pieTooltipColorBox","pieFullChartTooltipCircle","getMidFactor","startAngle","endAngle","getAlign","midangle","arc","enableRadialLabels","global","dataReady","radialLabelsLinkHorizontalLength","formatRadialLabel","radialLabelsTextXOffset","radialLabelYOffset","radialAngleXOffset","defaultRadialLabelsLinkHorizontalLength","outerArc","innerRadius","outerRadius","midFactor","posA","centroid","posB","posC","posCPi","getPosition","pos","defaultRadialLabelsTextXOffset","TooltipFlex","LabelFlex","LabelFlexCenter","TooltipContainer","TooltipGroupName","TooltipItem","ColFlex","_templateObject7","ColorBox","_templateObject8","ColorLine","_templateObject9","_templateObject0","Value","_templateObject1","_templateObject10","LabelTop","_templateObject11","LabelBottom","_templateObject12","drawTooltip","fullChartTooltip","tooltipRoot","tooltipClassName","tooltipBind","renderTooltip","allSlices","tooltipStyle","querySelector","classNames","isEmpty","empty","tooltipContainer","Object","entries","prop","val","isVisible","setVisible","visible","Boolean","opacity","setPosition","pieChartDatum","itemX","itemY","target","globalNode","itemWidth","itemHeight","arcX","arcY","setTooltip","pieChartData","color","key","backgroundColor","padAngle","onClick","cornerRadius","margin","enableSlicesLabels","formatSliceLabel","slicesLabelsSkipAngle","enableSlicesLabelsName","formatSliceLabelName","borderWidth","borderColor","formatSliceTitle","withTooltip","marginTop","marginRight","right","marginBottom","bottom","marginLeft","maxPadAngle","dividerPadAngle","fullAngle","pie","sort","maxOuterRadius","PieChart","defaultN","legendClassNames","legendContainer","legendTitle","legendTick","legendTickLine","legendTickText","ramp","n","canvas","createElement","context","getContext","fillStyle","fillRect","legendDefaultParams","tickSize","ticksDivier","titleMarginBottom","getLegend","title","tickFormat","tickValues","tickAdjust","g","tick","interpolate","copy","rangeRound","toDataURL","interpolator","assign","call","calendarChartClassNames","calendarChart","calendarYear","calendarAxis","calendarBody","calendarHeader","calendarYearTitle","calendarWeekDay","calendarMonth","calendarDays","calendarDay","headerHeight","startSunday","weekdays","monthSpacing","onEachDay","colorRange","legendProps","years","date","getUTCFullYear","cellOffset","weekDays","defaultCellSize","cellSize","countDay","days","sundayIndex","formatDay","formatDate","timeWeek","getTimeWeekCount","to","getMonthSpacing","getUTCMonth","formatMonth","chartWidth","values","year","months","weekCount","calendarWeekdays","header","fullYearlastMonth","fullYearlastDate","each","elements","element","currColor","getUTCDay","legend","containerNode","legendSvg","appendChild","CalendarChart","computeDimensions","selection","dimensions","SVGGraphicsElement","getBBox","none","isVoid","Number","isNaN","stackedData","stacks","valuesIndex","prevValue","abs","lineChartClassNames","lineChartYScaleGlobal","lineChartYScaleRight","lineChartXScaleGlobal","lineChartLinesGlobal","lineChartLine","lineChartAreasGlobal","lineChartArea","lineChartDotsGlobalContainer","lineChartDotsGlobal","lineChartDot","lineChartGridGlobal","lineChartGridLineX","lineChartGridLineY","lineChartLabelContainer","lineChartLabelFlex","lineChartLabel","lineChartMouseGlobal","lineChartMouseLine","lineChartMouseRect","lineChartMouseCircle","lineChartMouseLabelContainer","lineChartMouseLabel","TooltipStyles","createGlobalStyle","drawGrid","yScale","xScale","yTicksCount","lastIndex","drawGridX","drawGridY","yTicks","drawLabel","formatLabel","eachLabel","labelsDiv","argData","dynamicCircleRadius","formatDynamicTooltip","stackedTooltipIndex","stackedTooltip","tooltipLineTop","dotSnapping","chartData","filter","tooltipOff","x1","x2","y1","y2","mouseGlobal","mouseRect","mouseLine","lines","nodes","circles","dynamicDotOff","stroke","labelContainer","size","mouseMove","docX","docY","rectrX","nodeX","nodeY","currIndex","invert","positions","getValue","floor","line","hasAttribute","beginning","end","getTotalLength","getPointAtLength","step","lineChartData","dynamicDotStyle","datas","_ref7","rest","invertValue","noHasData","every","_ref8","topIndex","keys","reduce","acc","_datas$Number","_datas$Number2","labelTexts","_positions$i$x","_positions$i","_positions$index$y","_positions$index","indexX","indexY","_positions$topIndex","customYAxisSelection","customXAxisSelection","customYAxis","customXAxis","yAxisPadding","xAxisPadding","withLabels","stacked","dynamicTooltipEnable","customYScale","customLine","xScaleItemWidth","areaCurve","rightAxis","yRange","nice","yTicksCountDefault","yAxisLeft","tickArguments","yAxis","yAxisWidth","yAxisRightWidth","rightAxisMin","rightAxisMax","yRightScale","yAxisRightTicks","yAxisRight","xAxisBottom","tickSizeOuter","isArray","xAxis","xAxisHeight","defined","withAreas","some","fill","dataIndex","getArea","minAreaValues","minTick","y0","currData","area","areaStyle","_ref9","dots","_ref0","dot","dotsGlobal","dotsGroup","LineChart","barChartLinesClassNames","barChartLinesGlobal","barChartLine","barChartAreasGlobal","barChartArea","drawLines","lineData","stackedLine","linesSelection","areasSelection","bandwidth","linesData","lineType","areasData","tooltipClassnames","barChartMouseRect","barChartMouseContainer","barChartTooltipFlex","barChartMouseTooltip","barChartTooltip","barChartTooltipItem","barChartTooltipColFlex","barChartTooltipGroupName","barChartColorBox","barChartColorLine","barChartTooltipName","barChartTooltipValue","labelClassnames","barChartLabelContainer","barChartLabelFlex","barChartLabel","barChartClassNames","barChartBarGlobal","barChartYScaleGlobal","barChartYAxis","barChartXAxis","barChartYAxisZeroTick","barChartGridGlobal","barChartGridLineX","barChartGridLineXZero","barChartGridLineYZero","barChartGridLineY","barChartSelection","selectable","useSelection","drawing","clearSelection","removeChild","onStartDrawing","e","stopPropagation","which","_props$margin$bottom","_props$margin","_e$touches$","setAttribute","pageX","firstChild","offsetX","display","_e$touches$2","newWidth","offsetLeft","onMouseLeave","offsetWidth","onStopDrawing","selectionMinX","selectionWidth","selectionMaxX","onSelect","childNodes","child","userSelect","getX","padding","getDomain","minDomainValue","maxDomainValue","MIN","POSITIVE_INFINITY","MAX","NEGATIVE_INFINITY","groups","groupMax","groupMin","group","stackMax","stackMin","groupKey","marshaling","barWidth","barPadding","colors","groupIndex","groupName","marshalledGroup","groupsKeys","stackIndex","groupKeys","barGroupWidth","isPositiveValue","EPSILON","getLabelY","labelPosition","getLabel","LabelUI","marshalledData","hideTooltipGroupName","tooltipY","formatTooltipValue","formatTooltipName","tooltipYDomain","setTooltipPosition","onLabelItem","isBarTooltip","bars","onBarClick","onBarHover","xScaleBandDomain","topYDomain","curr","lineMin","tooltip","barChartTootipFlex","flagCurrIndex","offsetY","findIndex","containts","elementsFromPoint","clientX","clientY","currBars","isContains","currLineData","concat","svgWidth","isMouseWithin","rectrY","concatedData","stack","stacksCount","indexFlag","barsWidth","LabelFlexStyled","LabelStyle","resizeBarWidth","sectionPadding","groupPadding","_key","MIN_BAR_HEIGHT","getBars","markers","barWidthProp","customXScale","customYAxisLeft","customXAxisBottom","customBars","minValuesLine","marshalledMap","drawBars","defaultBarWidth","barDomain","array","divider","marshalled","maskId","uniqueId","gSvg","marker","horizontal","lineColor","align","BarChart","useMarshaling","fullExtent","fullMax","scaleLinear","horizontalBarChartClassNames","horizontalBarChartButtonTd","horizontalBarChartLabelTd","horizontalBarChartLabelCell","horizontalBarChartBarTd","horizontalBarChartBarFlex","horizontalBarChartBar","horizontalBarChartBarFirst","horizontalBarChartBarLast","horizontalBarChartBarOnly","horizontalBarChartTooltipFlex","horizontalBarChartStackWrapper","horizontalBarChartTooltipContainer","horizontalBarChartStackSumContainer","horizontalBarChartStackSum","horizontalBarChartXScaleTd","horizontalBarChartXScaleTicks","horizontalBarChartXScaleTick","horizontalBarChartTooltipItem","horizontalBarChartTooltipName","horizontalBarChartTooltipValue","Table","table","LabelCell","BarFlex","BarsTd","td","TooltipFlexUI","StackSumContainer","StackSum","StackWrapper","Tooltip","rootElement","useTooltip","hideTooltip","unmountComponentAtNode","onMouseMove","barX","barY","visibility","render","useStackWrapper","mouseLeave","onMouseOver","onMouseOut","Fragment","BarStyled","Bar","bar","formatNativeTitle","pointerEventsNone","isFirstChild","isLastChild","isOnlyChild","ceiledWidth","pointerEvents","useScale","scaleTicks","scaleDomain","TickTd","Ticks","Tick","XScale","renderTicks","justifyContent","HorizontalBarChart","withStackSum","renderButton","renderDataTable","thead","withoutXScale","marshalingData","Stack","flat","rowIndex","stackSum","sumWidth","barIndex","bubbleChartDefaultProps","minSize","maxSize","yScaleLabelPadding","bubbleChartClassNames","bubbleChartYAxis","bubbleChartYAxisZeroTick","bubbleChartXAxis","bubbleChartGridGlobal","bubbleChartGridLineX","bubbleChartGridLineY","bubbleChartCircle","bubbleChartYScaleLabel","bubbleChartTooltip","bubbleChartTooltipContainer","bubbleChartTooltipFlex","bubbleChartTip","bubbles","root","sizeValue","circle","currentTarget","pageXOffset","pageYOffset","minYValue","maxYValue","scaleLog","bubbleStyle","yScaleLabel","enableTooltip","minY","yValue","maxY","sizeScale","yRange1","yScaleLabelHeight","xValue","_ref1","_ref10","_ref11","_ref12","_ref13","_ref14","unmount","BubbleChart"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEaA,OAAO,gBAAGC,MAAM,CAACC,GAAG,CAAAC,eAAA,KAAAA,eAAA,gBAAAC,2BAAA;;SCAjBC,OAAOA;EACrB,MAAM,CAACC,IAAI,EAAEC,SAAS,CAAC,GAAGC,QAAQ,CAAqB,IAAI,CAAC;EAE5D,MAAMC,GAAG,GAAGC,WAAW,CAACH,SAAS,EAAE,CAACA,SAAS,CAAC,CAAC;EAE/C,OAAO,CAACE,GAAG,EAAEH,IAAI,CAAC;AACpB;;SCRgBK,QAAQA,CAACC,EAAY,EAAEC,IAAY;EACjD,IAAIC,QAAQ,GAAG,KAAK;EAEpB,OAAO;IACL,IAAI,CAACA,QAAQ,EAAE;MACbF,EAAE,CAAC,GAAAG,SAAO,CAAC;MACXD,QAAQ,GAAG,IAAI;MACfE,UAAU,CAAC;QACTF,QAAQ,GAAG,KAAK;OACjB,EAAED,IAAI,CAAC;;GAEX;AACH;;ACRA,MAAMI,cAAc,GAAG,EAAE;AAEzB,MAAaC,SAAS,GAAGA,CACvBC,KAAc,EACdC,QAAgC,EAChCC,KAAc;EAEd,MAAMC,iBAAiB,GAA6BC,OAAO,CAAC;IAC1D,OAAOH,QAAQ,GAAGT,QAAQ,CAACS,QAAQ,EAAEC,KAAK,IAAIJ,cAAc,CAAC,GAAGO,SAAS;GAC1E,EAAE,CAACJ,QAAQ,EAAEC,KAAK,CAAC,CAAC;EAErBI,SAAS,CAAC;IACRH,iBAAiB,IACjB,OAAOH,KAAK,KAAK,QAAQ,IACzBO,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEL,iBAAiB,CAAC;IAEpD,OAAO,MACLA,iBAAiB,IACjBI,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEN,iBAAiB,CAAC;GAC1D,EAAE,CAACH,KAAK,EAAEG,iBAAiB,CAAC,CAAC;AAChC,CAAC;;MCtBYO,SAAS,GAAGA,CAACvB,IAAiB,EAAEa,KAAa,EAAEW,MAAc;EACxEC,MAAS,CAACzB,IAAI,CAAC,CACZ0B,MAAM,CAAC,KAAK,CAAC,CACbC,MAAM,EAAE;EAEX,MAAMC,GAAG,GAAGH,MACH,CAACzB,IAAI,CAAC,CACZ6B,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAEjB,KAAK,CAAC,CACpBiB,IAAI,CAAC,QAAQ,EAAEN,MAAM,CAAC;EAEzB,OAAOI,GAAG;AACZ,CAAC;;;ACdD,AAEO,MAAMG,oBAAoB,gBAAGpC,MAAM,CAACC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,qEAI7C;;SCNekC,OAAOA,CAAAC,IAAA;MAAC;IACtBC,QAAQ;IACRC,MAAM;IACNC;GAKD,GAAAH,IAAA;EACC,MAAMI,KAAK,GAAGC,WAAW,CAACC,GAAG,EAAE;EAC/B,IAAIC,SAAiB;EAErBC,qBAAqB,CAAC,SAASC,cAAcA,CAACC,IAAI;IAChD,IAAIC,YAAY,GAAG,CAACD,IAAI,GAAGN,KAAK,IAAIH,QAAQ;IAE5C,IAAIU,YAAY,GAAG,CAAC,EAAE;MACpBJ,SAAS,GAAGC,qBAAqB,CAACC,cAAc,CAAC;;IAGnD,IAAIE,YAAY,GAAG,CAAC,EAAEC,oBAAoB,CAACL,SAAS,CAAC;IACrD,MAAMM,QAAQ,GAAGX,MAAM,CAACS,YAAY,CAAC;IAErCR,IAAI,CAACU,QAAQ,EAAEN,SAAS,CAAC;GAC1B,CAAC;AACJ;AAEA,AAAO,MAAMO,WAAW,GAAIJ,IAAY,IAAaA,IAAI,IAAI,CAAC,GAAGA,IAAI,CAAC;;ACnBtE,MAAMK,KAAK,GAAGA,CAACC,GAAW,EAAEC,GAAW,EAAEC,GAAW,KAClDC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,GAAG,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAEnC,MAAME,WAAW,GAAG;EAClBC,SAAS,EAAE,CAAC;EACZC,KAAK,EAAE,CAAC;EACRC,SAAS,EAAE,CAAC;EACZC,MAAM,EAAE,CAAC;EACTC,QAAQ,EAAE;CACX;AAED,AAAO,MAAMC,QAAQ,GAAGA,CACtB3D,IAAwB,EAAAiC,IAAA;MACxB;IAAEpB,KAAK;IAAEqB,QAAQ;IAAE0B,aAAa;IAAEC;GAA2B,GAAA5B,IAAA;EAE7D,MAAM6B,SAAS,GAAGrC,MAAS,CAACzB,IAAI,CAAC;EACjC,MAAM+D,IAAI,GAAGtC,MAAS,CAAC,MAAM,CAAC;EAC9B,MAAMuC,cAAc,GAAGvC,MAAS,CAACwC,QAAQ,CAAC;EAC1C,MAAMC,IAAI,GAAGC,MAAM,CAACd,WAAW,CAAC;EAEhClC,SAAS,CAAC;IACR,IAAIN,KAAK,IAAIqD,IAAI,CAACE,OAAO,CAACd,SAAS,EAAE;MACnCT,oBAAoB,CAACqB,IAAI,CAACE,OAAO,CAACd,SAAS,CAAC;MAC5CY,IAAI,CAACE,OAAO,GAAGf,WAAW;;GAE7B,EAAE,CAACxC,KAAK,CAAC,CAAC;EAEX,MAAMwD,MAAM,GAAGjE,WAAW,CACvBkE,KAAU;IACT,MAAM;MAAEzD,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,GAC7BA,IAAI,CAACwE,qBAAqB,EAAE,GAC5B;MAAE3D,KAAK,EAAE;KAAG;IAChB,MAAM,CAAC4D,CAAC,CAAC,GAAGhD,OAAU,CACpB6C,KAAK,CAACI,IAAI,CAACC,QAAQ,CAAC,OAAO,CAAC,GAAGL,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC,GAAGN,KAAK,CACxD;IACD,MAAMO,IAAI,GAAGJ,CAAC,GAAGP,IAAI,CAACE,OAAO,CAACX,MAAM;IACpC,MAAMqB,IAAI,GAAGjE,KAAK,GAAG0D,SAAS;IAC9B,MAAMQ,UAAU,GAAG/B,KAAK,CAAC6B,IAAI,EAAE,CAACC,IAAI,EAAE,CAAC,CAAC;IAExChB,SAAS,CAACkB,KAAK,CAAC,WAAW,kBAAgBD,UAAU,QAAK,CAAC;IAE3D,IAAIb,IAAI,CAACE,OAAO,CAACV,QAAQ,EAAE;MACzB,MAAMuB,OAAO,GAAG,GAAG;MACnB,MAAM1C,GAAG,GAAG2C,IAAI,CAAC3C,GAAG,EAAE;MACtB,MAAM4C,EAAE,GAAG5C,GAAG,GAAG2B,IAAI,CAACE,OAAO,CAACZ,SAAS;MACvC,MAAM4B,EAAE,GAAGL,UAAU,GAAGb,IAAI,CAACE,OAAO,CAACV,QAAQ;MAC7C,MAAM2B,MAAM,GAAGjC,IAAI,CAACkC,KAAK,CAAEF,EAAE,GAAGD,EAAE,GAAIF,OAAO,CAAC;MAE9Cf,IAAI,CAACE,OAAO,CAACb,KAAK,GAAG8B,MAAM;MAC3BnB,IAAI,CAACE,OAAO,CAACZ,SAAS,GAAGjB,GAAG;;IAG9B2B,IAAI,CAACE,OAAO,CAACV,QAAQ,GAAGqB,UAAU;IAElClB,OAAO,IAAIA,OAAO,CAACkB,UAAU,EAAEjB,SAAS,CAAC;GAC1C,EACD,CAACD,OAAO,EAAEhD,KAAK,EAAEb,IAAI,EAAE8D,SAAS,CAAC,CAClC;EAED,MAAMyB,KAAK,GAAGnF,WAAW,CAAC;IACxB,MAAM;MAAES,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,GAC7BA,IAAI,CAACwE,qBAAqB,EAAE,GAC5B;MAAE3D,KAAK,EAAE;KAAG;IAEhBmD,cAAc,CAACwB,EAAE,CACf,8DAA8D,EAC9D,IAAI,CACL;IACDzB,IAAI,CAACiB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC1B,IAAInE,KAAK,GAAG0D,SAAS,EAAE;MACrBT,SAAS,CAACkB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;KAClC,MAAM;MACLlB,SAAS,CAACkB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;;IAGjC,MAAMG,EAAE,GAAGD,IAAI,CAAC3C,GAAG,EAAE,GAAG2B,IAAI,CAACE,OAAO,CAACZ,SAAS;IAC9C,MAAMiC,KAAK,GAAG,EAAE;IAEhB,IAAIN,EAAE,GAAGM,KAAK,EAAE;MACdzD,OAAO,CAAC;QACNE,QAAQ,EAAEA,QAAkB;QAC5BC,MAAM,EAAEyB,aAAa,IAAIb,WAAW;QACpCX,IAAI,EAAEA,CAACU,QAAQ,EAAEN,SAAS;UACxB0B,IAAI,CAACE,OAAO,CAACd,SAAS,GAAGd,SAAS;UAClC,MAAMkD,EAAE,GAAGtC,IAAI,CAACkC,KAAK,CAACpB,IAAI,CAACE,OAAO,CAACb,KAAK,GAAG,CAAC,GAAGT,QAAQ,CAAC;UACxD,MAAM6C,KAAK,GAAGzB,IAAI,CAACE,OAAO,CAACV,QAAQ,GAAGgC,EAAE;UACxC,MAAMZ,IAAI,GAAGjE,KAAK,GAAG0D,SAAS;UAC9B,MAAMQ,UAAU,GAAG/B,KAAK,CAAC2C,KAAK,EAAE,CAACb,IAAI,EAAE,CAAC,CAAC;UAEzC,MAAMc,MAAM,GAAGxC,IAAI,CAACD,GAAG,CAACC,IAAI,CAACF,GAAG,CAACyC,KAAK,EAAEb,IAAI,CAAC,EAAE,CAAC,CAAC;UAEjD,IAAIZ,IAAI,CAACE,OAAO,CAACV,QAAQ,KAAKkC,MAAM,EAAE;YACpC9B,SAAS,CAACkB,KAAK,CAAC,WAAW,kBAAgBD,UAAU,QAAK,CAAC;YAE3DlB,OAAO,IAAIA,OAAO,CAACkB,UAAU,EAAEjB,SAAS,CAAC;;;OAG9C,CAAC;;GAEL,EAAE,CACDC,IAAI,EACJH,aAAa,EACbC,OAAO,EACPC,SAAS,EACT5B,QAAQ,EACRlC,IAAI,EACJa,KAAK,EACLmD,cAAc,CACf,CAAC;EAEF,MAAM6B,OAAO,GAAGzF,WAAW,CACxBkE,KAAU;IACT,MAAMwB,OAAO,GAAGxB,KAAK,CAACI,IAAI,CAACC,QAAQ,CAAC,OAAO,CAAC;IAC5C,MAAM,CAACF,CAAC,CAAC,GAAGhD,OAAU,CAACqE,OAAO,GAAGxB,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC,GAAGN,KAAK,EAAEtE,IAAI,CAAC;IAEhE,MAAM;MAAE+F;KAAM,GACZ/F,IAAI,IAAIA,IAAI,CAACgG,aAAa,GACtBhG,IAAI,CAACgG,aAAa,CAACxB,qBAAqB,EAAE,GAC1C;MAAEuB,IAAI,EAAE;KAAG;IACjBhC,IAAI,CAACiB,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;IAChClB,SAAS,CAACkB,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;IAErC,IAAId,IAAI,CAACE,OAAO,CAACd,SAAS,EAAE;MAC1BT,oBAAoB,CAACqB,IAAI,CAACE,OAAO,CAACd,SAAS,CAAC;MAC5CY,IAAI,CAACE,OAAO,GAAGf,WAAW;;IAG5Ba,IAAI,CAACE,OAAO,CAACX,MAAM,GAAGL,IAAI,CAACD,GAAG,CAACsB,CAAC,GAAGsB,IAAI,EAAE,CAAC,CAAC;IAE3C/B,cAAc,CAACwB,EAAE,CAAC,iCAAiC,EAAEnB,MAAM,CAAC;IAC5DL,cAAc,CAACwB,EAAE,CAAC,8BAA8B,EAAED,KAAK,CAAC;GACzD,EACD,CAACzB,SAAS,EAAEC,IAAI,EAAE/D,IAAI,EAAEuF,KAAK,EAAElB,MAAM,EAAEL,cAAc,CAAC,CACvD;EAED7C,SAAS,CAAC;IACR,IAAInB,IAAI,EAAE;MACR,MAAM;QAAEa,KAAK,EAAE0D;OAAW,GAAGvE,IAAI,CAACwE,qBAAqB,EAAE;MAEzD,IAAI3D,KAAK,GAAG0D,SAAS,EAAE;QACrBT,SAAS,CAACkB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACjClB,SAAS,CAAC0B,EAAE,CAAC,kCAAkC,EAAEK,OAAO,CAAC;;;GAG9D,EAAE,CAAC/B,SAAS,EAAE+B,OAAO,EAAE7F,IAAI,EAAEa,KAAK,CAAC,CAAC;AACvC,CAAC;;;ACxJD,MASaoF,WAAW,GAAyBhE,IAAA;MAAC;MAChDiE,QAAQ;MACRrF,KAAK;MACLgD;KAED,GAAA5B,IAAA;IADIkE,KAAK,GAAAC,6BAAA,CAAAnE,IAAA,EAAAoE,SAAA;EAER,MAAM,CAAClG,GAAG,EAAEmG,YAAY,CAAC,GAAGvG,OAAO,EAAE;EAErC4D,QAAQ,CAAC2C,YAAY,EAAAC,QAAA;IAAI1F,KAAK;IAAEgD;KAAYsC,KAAK,CAAE,CAAC;EAEpD,OACEK,oBAACzE,oBAAoB,oBAAKoE,KAAK,GAC7BK;IAAKrG,GAAG,EAAEA;KAAM+F,QAAQ,CAAO,CACV;AAE3B,CAAC;AAEDD,WAAW,CAACQ,YAAY,GAAG;EACzBvE,QAAQ,EAAE;CACX;;AC5BD,MAAMwE,UAAU,GAAGA,CAACC,KAAa,EAAEC,KAAa;EAC9C,MAAMC,IAAI,GAAG,GAAG;EAChB,MAAMC,GAAG,GAAID,IAAI,GAAGD,KAAK,GAAID,KAAK;EAElC,OAAOG,GAAG;AACZ,CAAC;AAED,AAAO,MAAMC,aAAa,GAAGA,CAC3BJ,KAAa,EACbK,MAAc;EAEd,MAAMF,GAAG,GAAGJ,UAAU,CAACC,KAAK,EAAEK,MAAM,CAAC;EACrC,MAAMC,SAAS,GAAG,GAAG;EAErB,IAAI,CAAC,CAAC,EAAEA,SAAS,CAAC,CAACtC,QAAQ,CAACmC,GAAG,CAAC,EAAE;IAChC,OAAO,QAAQ;;EAEjB,IAAIA,GAAG,GAAGG,SAAS,EAAE;IACnB,OAAO,OAAO;;EAGhB,OAAO,KAAK;AACd,CAAC;;;ACtBD,AAIA,MAAMC,YAAY,GAAGjF,IAAA;MAAC;IACpBkF,MAAM;IACNR,KAAK;IACL5B,UAAU;IACVqC;GACoB,GAAAnF,IAAA;EACpB,IAAI0E,KAAK,KAAK,CAAC,IAAIQ,MAAM,KAAK,QAAQ,EAAE;IACtC,kCAAgCpC,UAAU,0BAAqBqC,UAAU;GAC1E,MAAM,IAAID,MAAM,KAAK,QAAQ,EAAE;IAC9B,kCAAgCpC,UAAU,kBAAaqC,UAAU;GAClE,MAAM,IAAID,MAAM,KAAK,OAAO,EAAE;IAC7B,2BAAyBpC,UAAU,yBAAoBqC,UAAU;GAClE,MAAM,IAAID,MAAM,KAAK,KAAK,EAAE;IAC3B,mCAAiCpC,UAAU,yBAAoBqC,UAAU;;EAE3E,sBAAoBrC,UAAU,YAAOqC,UAAU;AACjD,CAAC;AAED,AAAO,MAAMC,cAAc,gBAAG1H,MAAM,CAACC,GAAG,CAAC0H,KAAK,CAAsBnB,KAAK,KAAK;EAC5EnB,KAAK,EAAE;IACLuC,SAAS,EAAEL,YAAY,CAACf,KAAK;;CAEhC,CAAC,CAAC,CAAAtG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,iCAEF;;ACnBD,MAAM0H,cAAc,GAAG,gBAAgB;AAEvC,AAAO,MAAMC,gBAAgB,GAAGxF,IAAA;MAAC;IAC/BjC,IAAI;IACJ0H,UAAU;IACVC,WAAW;IACXC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPjD,UAAU;IACVqC,UAAU;IACVa,WAAW;IACXC;GACiB,GAAAjG,IAAA;EACjB,MAAMkG,WAAW,GAAG1G,MAAS,CAACzB,IAAI,CAAC;EACnCmI,WAAW,CAACC,SAAS,OAAKZ,cAAgB,CAAC,CAAC7F,MAAM,EAAE;EAEpD,MAAM0G,SAAS,GAAIC,KAAa,IAAMV,QAAQ,GAAGE,MAAM,GAAIQ,KAAK;EAChE,MAAMC,KAAK,GAAIC,CAAS,IACrBb,WAAW,CAACC,QAAQ,GAAGS,SAAS,CAACN,OAAO,IAAI,CAAC,CAAC,CAAY,GAC3D3E,IAAI,CAACqF,GAAG,CAACZ,UAAU,GAAGW,CAAC,GAAGpF,IAAI,CAACsF,EAAE,GAAG,CAAC,CAAC;EAExC,MAAMC,KAAK,GAAIH,CAAS,IACtBb,WAAW,CACT,CAACC,QAAQ,GAAGS,SAAS,CAACL,OAAO,IAAI,CAAC,CAAC,IACjC5E,IAAI,CAACwF,GAAG,CAACf,UAAU,GAAGW,CAAC,GAAGpF,IAAI,CAACsF,EAAE,GAAG,CAAC,CAAC,CAC/B;EAEb,MAAMG,MAAM,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAE/B,MAAM,EAAEU;GAAY,EAAE,CAACsB,CAAC,EAAErC,KAAK,MAAM;IAC/DlC,CAAC,EAAErB,IAAI,CAAC6F,IAAI,CAACV,KAAK,CAAC5B,KAAK,CAAC,CAAC;IAC1BuC,CAAC,EAAE9F,IAAI,CAAC6F,IAAI,CAACN,KAAK,CAAChC,KAAK,CAAC;GAC1B,CAAC,CAAC;EAEHkC,MAAM,CAACM,OAAO,CAAC,CAAAC,KAAA,EAAqCzC,KAAa;QAAjD;MAAElC,CAAC;MAAEyE;KAA6B,GAAAE,KAAA;IAChD,MAAMjC,MAAM,GAAGJ,aAAa,CAACJ,KAAK,EAAEe,UAAU,CAAC;IAC/C,MAAM2B,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAACa,cAAc;MACbF,MAAM,EAAEA,MAAM;MACdpC,UAAU,EAAEA,UAAU,IAAI,CAAC;MAC3BqC,UAAU,EAAEA,UAAU,IAAI,CAAC;MAC3BT,KAAK,EAAEA,KAAK;MACZ3B,KAAK,EAAE;QACLe,IAAI,EAAEtB,CAAC;QACP+E,GAAG,EAAEN;;OAGN,OAAOjB,WAAW,KAAK,UAAU,GAC9BA,WAAW,CAACd,MAAM,EAAER,KAAK,CAAC,GAC1BsB,WAAW,CACA,CAClB;IAED,MAAMwB,KAAK,GAAGtB,WAAW,CACtBtG,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE0F,cAAc,CAAC,CAC7B6B,IAAI,CAACA,IAAI,CAAC;IAEbnB,WAAW,CAACuB,KAAK,EAAEtC,MAAM,EAAER,KAAK,CAAC;GAClC,CAAC;AACJ,CAAC;;;ACtED,AAIO,MAAMO,cAAY,GAAGjF,IAAA;MAAC;IAC3BkF,MAAM;IACNR,KAAK;IACL5B,UAAU;IACVqC;GACoB,GAAAnF,IAAA;EACpB,IAAI0E,KAAK,KAAK,CAAC,IAAIQ,MAAM,KAAK,QAAQ,EAAE;IACtC,kCAAgCpC,UAAU,0BAAqBqC,UAAU;GAC1E,MAAM,IAAID,MAAM,KAAK,QAAQ,EAAE;IAC9B,kCAAgCpC,UAAU,kBAAaqC,UAAU;GAClE,MAAM,IAAID,MAAM,KAAK,OAAO,EAAE;IAC7B,2BAAyBpC,UAAU,yBAAoBqC,UAAU;GAClE,MAAM,IAAID,MAAM,KAAK,KAAK,EAAE;IAC3B,mCAAiCpC,UAAU,yBAAoBqC,UAAU;;EAE3E,sBAAoBrC,UAAU,YAAOqC,UAAU;AACjD,CAAC;AAED,AAAO,MAAMsC,KAAK,gBAAG/J,MAAM,CAACC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,wEAI9B;AAED,AAAO,MAAM6J,IAAI,gBAAGhK,MAAM,CAACC,GAAG,CAAAgK,gBAAA,KAAAA,gBAAA,gBAAA9J,2BAAA,sDAG7B;AAED,MAAM+J,iBAAiB,gBAAGC,GAAG,CAAAC,gBAAA,KAAAA,gBAAA,gBAAAjK,2BAAA,4GAK5B;AAED,AAAO,MAAMkK,YAAY,gBAAGrK,MAAM,CAACC,GAAG,CAAAqK,gBAAA,KAAAA,gBAAA,gBAAAnK,2BAAA,2LAQrC;AAED,AAAO,MAAMoK,WAAW,gBAAGvK,MAAM,CAACqK,YAAY,CAAC,CAAAG,gBAAA,KAAAA,gBAAA,gBAAArK,2BAAA,mBAC3C+J,iBAAiB,CACpB;AAED,AAAO,MAAMO,WAAW,gBAAGzK,MAAM,CAACC,GAAG,CAAAyK,gBAAA,KAAAA,gBAAA,gBAAAvK,2BAAA,wFAIpC;;;AC1DD,MAIawK,oBAAoB,GAAG;EAClCC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,WAAW;EACtBC,mBAAmB,EAAE,qBAAqB;EAC1CC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE,cAAc;EAC5BC,UAAU,EAAE,YAAY;EACxBC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,qBAAqB,EAAE,uBAAuB;EAC9CC,WAAW,EAAE;CACd;AAED,AAAO,MAAMC,UAAU,gBAAGtL,MAAM,CAACD,OAAO,CAAC,CAAAG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,yYACpCwK,oBAAoB,CAACE,SAAS,EAS9BF,oBAAoB,CAACI,aAAa,EAIlCJ,oBAAoB,CAACK,YAAY,EAMjCL,oBAAoB,CAACU,WAAW,CAGpC;;ACtBM,MAAM5I,IAAI,GAAGA,CAClBpC,IAAwB,EACxBmG,KAAsB;EAEtB,MAAM;IACJ+E,IAAI;IACJC,KAAK;IACLC,KAAK;IACLC,WAAW;IACXC,WAAW;IACXC,WAAW;IACXC,YAAY;IACZC,WAAW;IACXxD,WAAW,EAAXA,YAAW;IACXyD,SAAS;IACTC,eAAe;IACfC,WAAW;IACXC,UAAU;IACV3D,WAAW,EAAXA;GACD,GAAG/B,KAAK;EAET,IAAInG,IAAI,KAAK,IAAI,IAAIkL,IAAI,CAAClE,MAAM,EAAE;IAChC,MAAM8E,kBAAkB,GAAG,EAAE;IAC7B,MAAMC,WAAW,GACf,OAAO5F,KAAK,CAAC4F,WAAW,KAAK,QAAQ,GACjC5F,KAAK,CAAC4F,WAAW,GACjBD,kBAAkB;IAExB,MAAM;MAAEjL,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,CAACwE,qBAAqB,EAAE;IACzD,MAAM3D,KAAK,GAAGsF,KAAK,CAACtF,KAAK,IAAI0D,SAAS;IACtC,MAAMyH,aAAa,GAAG,GAAG;IACzB,MAAMxK,MAAM,GAAG2E,KAAK,CAAC3E,MAAM,IAAIwK,aAAa;IAE5C,MAAMC,QAAQ,GACZ9F,KAAK,CAAC8F,QAAQ,IACd7I,IAAI,CAACF,GAAG,CACN,CAAC,EACDzB,GAAM,CAACyJ,IAAI,EAAE1C,CAAC,IAAI/G,GAAM,CAAC+G,CAAC,CAAC0D,GAAG,CAACjK,IAAA;MAAA,IAAC;QAAEqG;OAAO,GAAArG,IAAA;MAAA,OAAKqG,KAAK;MAAC,CAAC,CAAW,CACjE;IACH,MAAMV,QAAQ,GACZ,CAACzB,KAAK,CAACyB,QAAQ,IACbxE,IAAI,CAACD,GAAG,CACN,CAAC,EACD1B,GAAM,CAACyJ,IAAI,EAAE1C,CAAC,IAAI/G,GAAM,CAAC+G,CAAC,CAAC0D,GAAG,CAAC9C,KAAA;MAAA,IAAC;QAAEd;OAAO,GAAAc,KAAA;MAAA,OAAKd,KAAK;MAAC,CAAC,CAAW,CACjE,IAAI2D,QAAQ;IACjB,MAAME,QAAQ,GAAGhG,KAAK,CAACgG,QAAQ,IAAI,CAAC;IACpC,MAAMC,QAAQ,GAAGjG,KAAK,CAACiG,QAAQ,IAAI,CAAC;IACpC,MAAMtE,MAAM,GAAG1E,IAAI,CAACF,GAAG,CACrB,CAACrC,KAAK,GAAGsL,QAAQ,GAAG,CAAC,GAAGJ,WAAW,GAAG,CAAC,IAAI,CAAC,EAC5C,CAACvK,MAAM,GAAG4K,QAAQ,GAAG,CAAC,GAAGL,WAAW,GAAG,CAAC,IAAI,CAAC,CAC9C;IAED,MAAMM,aAAa,GAAG,CAAC;IACvB,MAAMC,KAAK,GAAG7K,WACA,EAAE,CACb8K,MAAM,CAAC,CAAC,CAAC,EAAE3E,QAAQ,IAAI,CAAC,CAAC,CAAC,CAC1B5E,KAAK,CAAC,EAAE,CAAC,CACTsJ,KAAK,CAACnG,KAAK,CAACqG,MAAM,IAAIH,aAAa,CAAC;IACvC,MAAMI,QAAQ,GAAGH,KAAK,CAACA,KAAK,CAACtF,MAAM,GAAG,CAAC,CAAC;IACxC,MAAM0F,WAAW,GAAGD,QAAQ,IAAIH,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAIG,QAAQ,GAAG7E,QAAQ,EAAE;MACvB0E,KAAK,CAACK,IAAI,CAACD,WAAW,CAAC;;IAGzB,MAAMF,MAAM,GAAGrG,KAAK,CAACqG,MAAM,IAAIF,KAAK,CAACtF,MAAM,GAAG,CAAC;IAC/C,MAAM4F,WAAW,GAAGN,KAAK,CAACA,KAAK,CAACtF,MAAM,GAAG,CAAC,CAAC;IAC3C,MAAMa,UAAU,GAAIzE,IAAI,CAACsF,EAAE,GAAG,CAAC,GAAIwC,IAAI,CAAC,CAAC,CAAC,CAAClE,MAAM;IAEjD,MAAMW,WAAW,GAAGlG,WACN,EAAE,CACbuB,KAAK,CAAC,CAAC,CAAC,EAAE8E,MAAM,CAAC,CAAC,CAClByE,MAAM,CAAC,CAAC,CAAC,EAAEK,WAAW,CAAC,CAAC;IAE3B,MAAMC,SAAS,GAAGpL,UACL,EAAE,CACZ0J,KAAK,CAAC1J,iBAAoB;;KAE1BqG,MAAM,CAACgF,KAAA;MAAA,IAAC;QAAExE;OAAO,GAAAwE,KAAA;MAAA,OAAKnF,WAAW,CAACW,KAAK,CAAW;MAAC,CACnDyE,KAAK,CAAC,CAAC/D,CAAC,EAAER,CAAC,KAAKA,CAAC,GAAGX,UAAU,CAAC;IAClC,MAAMmF,UAAU,GAAGvL,UACN,EAAE,CACZ0J,KAAK,CAACA,KAAK,IAAI1J,iBAAoB;;KAEnCqG,MAAM,CAACmF,KAAA;MAAA,IAAC;QAAE3E;OAAO,GAAA2E,KAAA;MAAA,OAAKtF,WAAW,CAACW,KAAK,CAAW;MAAC,CACnDyE,KAAK,CAAC,CAAC/D,CAAC,EAAER,CAAC,KAAKA,CAAC,GAAGX,UAAU,CAAC;IAElC,MAAMjG,GAAG,GAAGL,SAAS,CAACvB,IAAI,EAAEa,KAAK,EAAEW,MAAM,CAAC;IAC1C,MAAM0L,YAAY,GAAGtL,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC;IAEpC,MAAMsL,UAAU,GAAG1L,OAAQ,CAAC,CAAC,EAAE+K,MAAM,GAAG,CAAC,CAAC,CAACY,OAAO,EAAE;IACpD,MAAMC,SAAS,GAAI/E,KAAa,IAAM,CAACA,KAAK,GAAGR,MAAM,GAAI0E,MAAM;IAC/D,MAAMc,YAAY,GAAIhF,KAAa,IAAMsE,WAAW,GAAGtE,KAAK,GAAIkE,MAAM;IAEtE,MAAMe,UAAU,GAAGL,YAAY,CAC5BrL,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEwI,oBAAoB,CAACE,SAAS,CAAC,CAC7CpC,SAAS,EAAE,CACX8C,IAAI,CAAC,CAACA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACfsC,KAAK,EAAE;IAEV,MAAMC,WAAW,GAAGP,YAAY,CAC7BrL,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEwI,oBAAoB,CAACC,KAAK,CAAC;IAE5C,MAAMmD,IAAI,GAAGH,UAAU,CACpBnF,SAAS,EAAE,CACX8C,IAAI,CAACA,IAAI,CAAC,CAAC,CAAC,CAACgB,GAAG,CAACyB,KAAA;MAAA,IAAC;QAAEC;OAAM,GAAAD,KAAA;MAAA,OAAKC,IAAI;MAAC,CAAC,CACrCJ,KAAK,EAAE;IAEV,IAAIK,aAAa,GAAG,CAAC;IAErB,IAAIzC,KAAK,EAAE;MACT+B,UAAU,CAAChE,OAAO,CAACb,KAAK;QACtB,MAAMwF,IAAI,GAAGP,UAAU,CACpB1L,MAAM,CAAC,QAAQ,CAAC,CAChBC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,GAAG,EAAE,MAAOgG,MAAM,GAAG0E,MAAM,GAAIlE,KAAK,CAAC;QAE7C,MAAMyF,UAAU,GAAGD,IAAI,CAAC9N,IAAI,EAAsB;QAClD,MAAMgO,YAAY,GAAGD,UAAU,CAACvJ,qBAAqB,EAAE,CAAChD,MAAM;QAC9DqM,aAAa,GAAGzK,IAAI,CAACD,GAAG,CAAC0K,aAAa,EAAEG,YAAY,CAAC;OACtD,CAAC;KACH,MAAM;MACLb,UAAU,CAACjB,GAAG,CAACoB,YAAY,CAAC,CAACnE,OAAO,CAACb,KAAK;QACxC,MAAMwF,IAAI,GAAGP,UAAU,CAAC1L,MAAM,CAAC,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,EAAE;;QAE/C+K,SAAS,CAAC/D,KAAK,CAACC,IAAI,CAAC;UAAE/B,MAAM,EAAEkE,IAAI,CAAC,CAAC,CAAC,CAAClE;SAAQ,EAAE,OAAO;UAAEsB;SAAO,CAAC,CAAC,CAAC,CACrE;QACD,MAAM2F,QAAQ,GAAGH,IAAI,CAAC9N,IAAI,EAAoB;QAC9C,MAAMkO,UAAU,GAAGD,QAAQ,CAACzJ,qBAAqB,EAAE,CAAChD,MAAM;QAC1DqM,aAAa,GAAGzK,IAAI,CAACD,GAAG,CAAC0K,aAAa,EAAEK,UAAU,CAAC;OACpD,CAAC;;IAGJ,MAAMC,gBAAgB,GAAIxG,WAAW,CAACiF,WAAW,CAAY,GAAGb,WAAW;IAE3E2B,IAAI,CACD7L,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,IAAI,EAAE,CAACkH,CAAC,EAAER,CAAC,KACfpF,IAAI,CAACkC,KAAK,CAAC6I,gBAAgB,GAAG/K,IAAI,CAACqF,GAAG,CAACZ,UAAU,GAAGW,CAAC,GAAGpF,IAAI,CAACsF,EAAE,GAAG,CAAC,CAAC,CAAC,CACtE,CACA5G,IAAI,CAAC,IAAI,EAAE,CAACkH,CAAC,EAAER,CAAC,KACfpF,IAAI,CAACkC,KAAK,CAAC6I,gBAAgB,GAAG/K,IAAI,CAACwF,GAAG,CAACf,UAAU,GAAGW,CAAC,GAAGpF,IAAI,CAACsF,EAAE,GAAG,CAAC,CAAC,CAAC,CACtE;IAEH+E,WAAW,CACRrF,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACA,IAAI,CAAC,CACVkD,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEwI,oBAAoB,CAACK,YAAY,CAAC,CAChD7I,IAAI,CAAC,OAAO,EAAE,CAACkH,CAAC,EAAErC,KAAK,KAAK,CAAAiF,WAAW,oBAAXA,WAAW,CAAGjF,KAAK,CAAC,KAAI,EAAE,CAAC,CACvD7E,IAAI,CAAC,GAAG,EAAEuM,CAAC,IACVrB,UAAU;;IAERqB,CAAC,CAACnC,GAAG,CAACoC,QAAQ,IAAA/H,QAAA,KACT+H,QAAQ;MACXhG,KAAK,EAAEgG,QAAQ,CAAChG,KAAK,GAAG2D;MACxB,CAAC,CACJ,CACF;IAEH,MAAMsC,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;IAC7B,MAAM+M,cAAc,GAAGtB,YAAY,CAChCrL,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEwI,oBAAoB,CAACG,mBAAmB,CAAC;IAC1D+D,cAAc,CACXpG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACiC,UAAU,CAAC,CAChBK,KAAK,EAAE,CACP3L,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,OAAO,EAAEwI,oBAAoB,CAACI,aAAa,CAAC,CACjD5I,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CACdA,IAAI,CAAC,GAAG,EAAEuL,SAAS,CAAC,CACpBvL,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CACpC2M,IAAI,CAAC,CAACnG,KAAK,EAAE3B,KAAK;MACjB,MAAM+H,SAAS,GAAGpB,YAAY,CAAChF,KAAK,CAAC,GAAG2D,QAAQ;MAEhD,OAAON,eAAe,GAClBA,eAAe,CAAC+C,SAAS,EAAE/H,KAAK,CAAC,GACjC4H,QAAM,CAACG,SAAS,CAAC;KACtB,CAAC;IAEJlD,YAAY,IACVN,IAAI,CAAC/B,OAAO,CAACwF,IAAI;MACf,MAAMC,YAAY,GAAG1B,YAAY,CAC9BrL,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEwI,oBAAoB,CAACU,WAAW,CAAC;MAElD2D,IAAI,CAACxF,OAAO,CAAC,CAAA0F,KAAA,EAAYrG,CAAC;YAAZ;UAAEF;SAAO,GAAAuG,KAAA;QACrBD,YAAY,CACT/M,MAAM,CAAC,QAAQ,CAAC,CAChBC,IAAI,CACH,IAAI,EACJsB,IAAI,CAACkC,KAAK,CACPqC,WAAW,CAACW,KAAK,CAAY,GAC5BlF,IAAI,CAACqF,GAAG,CAACZ,UAAU,GAAGW,CAAC,GAAGpF,IAAI,CAACsF,EAAE,GAAG,CAAC,CAAC,CACzC,CACF,CACA5G,IAAI,CACH,IAAI,EACJsB,IAAI,CAACkC,KAAK,CACRqC,WAAW,CACTW,KAAK,GAAGlF,IAAI,CAACwF,GAAG,CAACf,UAAU,GAAGW,CAAC,GAAGpF,IAAI,CAACsF,EAAE,GAAG,CAAC,CAAC,CACrC,CACZ,CACF,CACA5G,IAAI,CAAC,GAAG,EAAE0J,YAAY,CAAC;OAC3B,CAAC;KACH,CAAC;IAEJ,MAAMsD,kBAAkB,GAAG,CAAC;IAC5B,MAAMC,WAAW,GAAGvN,MAAM,GAAGuK,WAAW,GAAGK,QAAQ;IACnD,MAAMrH,UAAU,GAAGlE,KAAK,GAAG,CAAC;IAC5B,MAAMuG,UAAU,GAAG2H,WAAW,GAAG,CAAC,GAAG,CAACA,WAAW,GAAGlB,aAAa,IAAI,CAAC;IACtE,MAAMmB,MAAM,GAAGjD,WAAW,IAAIR,WAAW,IAAIuD,kBAAkB,CAAC;IAEhE5B,YAAY,CAACpL,IAAI,CAAC,WAAW,iBAAeiD,UAAU,SAAIqC,UAAU,MAAG,CAAC;IAExEK,gBAAgB,CAAC;MACfzH,IAAI;MACJ4H,QAAQ,EAAEgF,WAAW;MACrB7H,UAAU;MACVqC,UAAU;MACVM,UAAU,EAAEwD,IAAI,CAACW,UAAU,IAAI,CAAC,CAAC,CAAC7E,MAAM;MACxCa,UAAU;MACVC,MAAM;MACNH,WAAW;MACXI,OAAO,EAAEiH,MAAM;MACfhH,OAAO,EAAEgH,MAAM;MACf/G,WAAW,EAAEA,CAACd,MAAM,EAAER,KAAK;QACzB,MAAMsI,KAAK,GAAG/D,IAAI,CAACgB,GAAG,CAACyC,IAAI,IAAIA,IAAI,CAAChI,KAAK,CAAC,CAAC;QAC3C,MAAMuI,KAAK,GAAG/H,MAAM,KAAK,QAAQ,GAAG+C,WAAW,GAAGF,YAAY;QAC9D,MAAM2E,IAAI,GAAGzD,IAAI,CAACW,UAAU,IAAI,CAAC,CAAC,CAAClF,KAAK,CAAC;QACzC,MAAM;UAAEiH,IAAI;UAAEtF;SAAO,GAAGqG,IAAI;QAE5B,OAAO1G,YAAW,GAChBA,YAAW,CAAC;UAAE0G,IAAI;UAAEM,KAAK;UAAE9H,MAAM;UAAER;SAAO,CAAC,GAE3CH,oBAACkD,KAAK;UAACyF,SAAS,EAAE7E,oBAAoB,CAACM;WACrCpE,oBAACmD,IAAI;UAACwF,SAAS,EAAE7E,oBAAoB,CAACO;WAAiB+C,IAAI,CAAQ,EACnEpH,oBAAC0I,KAAK;UAACC,SAAS,EAAE7E,oBAAoB,CAACQ;WACpCO,WAAW,GAAGA,WAAW,CAAC/C,KAAK,EAAE3B,KAAK,CAAC,GAAG4H,QAAM,CAACjG,KAAK,CAAC,EACvDgD,WAAW,IACV9E,oBAAC4D,WAAW;UACV+E,SAAS,EAAE7E,oBAAoB,CAACS;WAE/BO,WAAW,CAEf,CACK,CAEX;OACF;MACDpD,WAAW,EAAEA,CAACuB,KAAK,EAAEtC,MAAM,EAAER,KAAK;QAChC,IAAIuB,YAAW,EAAE;UACf,MAAM+G,KAAK,GAAG/D,IAAI,CAACgB,GAAG,CAACyC,IAAI,IAAIA,IAAI,CAAChI,KAAK,CAAC,CAAC;UAC3C,MAAMgI,IAAI,GAAGzD,IAAI,CAACW,UAAU,IAAI,CAAC,CAAC,CAAClF,KAAK,CAAC;UAEzCuB,YAAW,CAACuB,KAAK,EAAE;YAAE9C,KAAK;YAAEgI,IAAI;YAAEM,KAAK;YAAE9H;WAAQ,CAAC;;;KAGvD,CAAC;IAEF,IAAIsE,WAAW,EAAE;MACf,MAAMpC,IAAI,GAAGC,cAAc,CAACC,cAAc,CAACkC,WAAW,CAAC;MAEvD7J,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,CAACwH,IAAI,CAACA,IAAI,CAAC;;IAG5BqC,SAAS,IAAIA,SAAS,CAAC9J,GAAG,CAAC;;AAE/B,CAAC;;MC1RYwN,UAAU,GACrBjJ,KAAK;EAEL,MAAM;IAAEgJ,SAAS;IAAEnK;GAAO,GAAGmB,KAAK;EAClC,MAAM,CAAChG,GAAG,EAAEH,IAAI,CAAC,GAAGD,OAAO,EAAE;EAE7BoB,SAAS,CAAC;IACRnB,IAAI,IAAIoC,IAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;GAC1B,EAAE,CAACnG,IAAI,EAAEmG,KAAK,CAAC,CAAC;EAEjB,MAAMkJ,MAAM,GAAGA,MAAMjN,IAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;EAEtCvF,SAAS,CAACuF,KAAK,CAACtF,KAAK,EAAEwO,MAAM,CAAC;EAE9B,OACE7I;IAAK2I,SAAS,EAAEA,SAAS;IAAEnK,KAAK,EAAEA;KAChCwB,oBAACyE,UAAU;IAAC9K,GAAG,EAAEA;IAAO,CACpB;AAEV,CAAC;AAEDiP,UAAU,CAAC3I,YAAY,GAAG;EACxBjF,MAAM,EAAE,GAAG;EACX0J,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE1J;CACR;;SCrCe6N,gBAAgBA,CAACC,OAAe;EAC9C,MAAMC,SAAS,GAAG,GAAG;EAErB,OAAQD,OAAO,GAAGC,SAAS,GAAIpM,IAAI,CAACsF,EAAE;AACxC;AAEA,SAAgB+G,gBAAgBA,CAACC,OAAe;EAC9C,MAAMF,SAAS,GAAG,GAAG;EAErB,OAAOE,OAAO,IAAItM,IAAI,CAACsF,EAAE,GAAG8G,SAAS,CAAC;AACxC;;;ACVA,MAIaG,kBAAkB,GAAG;EAChCC,SAAS,EAAE,WAAW;EACtBC,QAAQ,EAAE,UAAU;EACpBC,aAAa,EAAE,eAAe;EAC9BC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,mBAAmB;EACtCC,cAAc,EAAE,gBAAgB;EAChCC,aAAa,EAAE,eAAe;EAC9BC,mBAAmB,EAAE,qBAAqB;EAC1CC,cAAc,EAAE,gBAAgB;EAChCC,UAAU,EAAE,YAAY;EACxBC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,kBAAkB,EAAE,oBAAoB;EACxCC,yBAAyB,EAAE;CAC5B;AAED,AAAO,MAAMzF,YAAU,gBAAGtL,MAAM,CAACD,OAAO,CAAC,CAAAG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,gNACpC6P,kBAAkB,CAACG,aAAa,EAGhCH,kBAAkB,CAACM,cAAc,EAIjCN,kBAAkB,CAACO,aAAa,EAGhCP,kBAAkB,CAACe,yBAAyB,CAIhD;;ACnCM,MAAMC,YAAY,GAAItC,CAAgB,IAC3CA,CAAC,CAACuC,UAAU,GAAG,CAACvC,CAAC,CAACwC,QAAQ,GAAGxC,CAAC,CAACuC,UAAU,IAAI,CAAC,GAAGxN,IAAI,CAACsF,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnE,AAAO,MAAMoI,QAAQ,GAAIzC,CAAgB;EACvC,MAAM0C,QAAQ,GAAG1C,CAAC,CAACuC,UAAU,GAAG,CAACvC,CAAC,CAACwC,QAAQ,GAAGxC,CAAC,CAACuC,UAAU,IAAI,CAAC;EAE/D,OAAOG,QAAQ,GAAG3N,IAAI,CAACsF,EAAE,GAAG,OAAO,GAAG,KAAK;AAC7C,CAAC;;ACCM,MAAMjB,kBAAgB,GAAGxF,IAAA;MAAC;SAC/B+O,KAAG;IACHC,kBAAkB;IAClBC,MAAM;IACNlR,IAAI;IACJ8H,MAAM;IACNqJ,SAAS;IACTC,gCAAgC;IAChCC,iBAAiB;IACjBC,uBAAuB;IACvBvM,UAAU;IACVqC,UAAU;IACVmK,kBAAkB;IAClBC;GACiB,GAAAvP,IAAA;EACjB,MAAMkG,WAAW,GAAG1G,MAAS,CAACzB,IAAI,CAAC;EACnCmI,WAAW,CAACC,SAAS,OAAKuH,kBAAkB,CAACM,cAAgB,CAAC,CAACtO,MAAM,EAAE;EAEvE,IAAIsP,kBAAkB,EAAE;IACtB,MAAMQ,uCAAuC,GAAG,CAAC;IACjD,MAAMC,QAAQ,GAAGjQ,GACX,EAAE,CACLkQ,WAAW,CAAC7J,MAAM,CAAC,CACnB8J,WAAW,CAAC9J,MAAM,CAAC;IAEtBoJ,MAAM,CACH9I,SAAS,CAAC,cAAc,CAAC,CACzB8C,IAAI,CAACiG,SAAS,CAAC,CACf3D,KAAK,EAAE,CACP3L,MAAM,CAAC,UAAU,CAAC,CAClBC,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACO,aAAa,CAAC,CAC/ClL,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CACrBlD,IAAI,CAAC,QAAQ,EAAGuM,CAAgB;MAC/B,MAAMwD,SAAS,GAAGlB,YAAY,CAACtC,CAAC,CAAC;MACjC,MAAMyD,IAAI,GAAGd,KAAG,CAACe,QAAQ,CAAC1D,CAAC,CAAC;MAC5B,MAAM2D,IAAI,GAAGN,QAAQ,CAACK,QAAQ,CAAC1D,CAAC,CAAC;MACjC,MAAM4D,IAAI,GAAGP,QAAQ,CAACK,QAAQ,CAAC1D,CAAC,CAAC;MACjC,MAAM6D,MAAM,GAAG,CACb,CAACpK,MAAM,IACJsJ,gCAAgC,IAC/BK,uCAAuC,CAAC,IAC1CI,SAAS,EACXI,IAAI,CAAC,CAAC,CAAC,CACR;MACD,OAAO,CACL,CAACH,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC,EAClB,CACEE,IAAI,CAAC,CAAC,CAAC,GAAG,CAACR,kBAAkB,IAAI,CAAC,IAAIK,SAAS,EAC/CG,IAAI,CAAC,CAAC,CAAC,GAAG,CAACT,kBAAkB,IAAI,CAAC,IAAIlD,CAAC,CAAC1H,KAAK,CAC9C,EACD,CAACuL,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,GAAG,CAACX,kBAAkB,IAAI,CAAC,IAAIlD,CAAC,CAAC1H,KAAK,CAAC,CAC7D;KACF,CAAC;IAEJ,MAAMwL,WAAW,GAAI9D,CAAgB;MACnC,MAAM+D,GAAG,GAAGV,QAAQ,CAACK,QAAQ,CAAC1D,CAAC,CAAC;MAChC,OAAO,CACL,CAACvG,MAAM,IACJsJ,gCAAgC,IAC/BK,uCAAuC,CAAC,IAC1Cd,YAAY,CAACtC,CAAC,CAAC,EACjB+D,GAAG,CAAC,CAAC,CAAC,CACP;KACF;IAED,MAAMC,8BAA8B,GAAG,CAAC;IACxClK,WAAW,CACRC,SAAS,CAAC,WAAW,CAAC,CACtB8C,IAAI,CAACiG,SAAS,CAAC,CACf3D,KAAK,EAAE,CACP3L,MAAM,CAAC,KAAK;;KAEZwH,IAAI,CAAEgF,CAAgB;MACrB,MAAMhF,IAAI,GAAGC,cAAc,CAACC,cAAc;;MAExC8H,iBAAiB,GAAGA,iBAAiB,CAAChD,CAAC,CAAC,GAAGA,CAAC,CAACnD,IAAI,CAAC0C,IAAI,CACvD;MAED,OAAOvE,IAAI;KACZ,CAAC,CACDvH,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACM,cAAc;;KAE/CjL,KAAK,CAAC,WAAW,EAAGqJ,CAAgB,IACnCnH,cAAY,CAAC;MACXC,MAAM,EAAE2J,QAAQ,CAACzC,CAAC,CAAC;MACnB1H,KAAK,EAAE0H,CAAC,CAAC1H,KAAK;MACd5B,UAAU;MACVqC,UAAU,EAAEA,UAAU,GAAG,CAACmK,kBAAkB,IAAI,CAAC,IAAIlD,CAAC,CAAC1H;KACxD,CAAC;;KAGH3B,KAAK,CACJ,MAAM;;IAELqJ,CAAgB,IACZ8D,WAAW,CAAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,IACjByC,QAAQ,CAACzC,CAAC,CAAC,KAAK,OAAO,GACpB,EAAEiD,uBAAuB,IAAIe,8BAA8B,CAAC,GAC5Df,uBAAuB,IAAIe,8BAA8B,CAAC,OAAI;;KAGvErN,KAAK,CAAC,KAAK,EAAGqJ,CAAgB,IAAQ8D,WAAW,CAAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,OAAI;;KAE3DrJ,KAAK,CAAC,YAAY,EAAE8L,QAAQ,CAAC;;AAEpC,CAAC;;;ACnHD,AAEO,MAAMwB,WAAW,gBAAG3S,MAAM,CAACC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,8JAQpC;AAED,AAAO,MAAMyS,SAAS,gBAAG5S,MAAM,CAAC2S,WAAW,CAAC,CAAA1I,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,QAAE;AAE9C,AAAO,MAAM0S,eAAe,gBAAG7S,MAAM,CAAC4S,SAAS,CAAC,CAAAxI,kBAAA,KAAAA,kBAAA,gBAAAjK,2BAAA,kCAE/C;AAED,AAAO,MAAM2S,gBAAgB,gBAAG9S,MAAM,CAACC,GAAG,CAAAqK,kBAAA,KAAAA,kBAAA,gBAAAnK,2BAAA,yhBAsBzC;AAED,AAAO,MAAM4S,gBAAgB,gBAAG/S,MAAM,CAACC,GAAG,CAAAuK,kBAAA,KAAAA,kBAAA,gBAAArK,2BAAA,qDAGzC;AAED,AAAO,MAAM6S,WAAW,gBAAGhT,MAAM,CAACC,GAAG,CAAAyK,kBAAA,KAAAA,kBAAA,gBAAAvK,2BAAA,iIAQpC;AAED,AAAO,MAAM8S,OAAO,gBAAGjT,MAAM,CAACC,GAAG,CAAAiT,gBAAA,KAAAA,gBAAA,gBAAA/S,2BAAA,0EAIhC;AAED,AAAO,MAAMgT,QAAQ,gBAAGnT,MAAM,CAACC,GAAG,CAAAmT,gBAAA,KAAAA,gBAAA,gBAAAjT,2BAAA,wFAKjC;AAED,AAAO,MAAMkT,SAAS,gBAAGrT,MAAM,CAACmT,QAAQ,CAAC,CAAAG,gBAAA,KAAAA,gBAAA,gBAAAnT,2BAAA,+CAGxC;AAED,AAAO,MAAM6J,MAAI,gBAAGhK,MAAM,CAACC,GAAG,CAAAsT,gBAAA,KAAAA,gBAAA,gBAAApT,2BAAA,gCAE7B;AAED,AAAO,MAAMqT,KAAK,gBAAGxT,MAAM,CAACC,GAAG,CAAAwT,gBAAA,KAAAA,gBAAA,gBAAAtT,2BAAA,oEAI9B;AAED,AAAO,MAAM4J,OAAK,gBAAG/J,MAAM,CAACC,GAAG,CAAAyT,iBAAA,KAAAA,iBAAA,gBAAAvT,2BAAA,sHAM9B;AAED,AAAO,MAAMwT,QAAQ,gBAAG3T,MAAM,CAAC+J,OAAK,CAAC,CAAA6J,iBAAA,KAAAA,iBAAA,gBAAAzT,2BAAA,uBAEpC;AAED,AAAO,MAAM0T,WAAW,gBAAG7T,MAAM,CAAC+J,OAAK,CAAC,CAAA+J,iBAAA,KAAAA,iBAAA,gBAAA3T,2BAAA,0BAEvC;;ACjFM,MAAM4T,WAAW,GAAGzR,IAAA;MAAC;IAC1B0R,gBAAgB;IAChBzC,MAAM;IACN0C,WAAW;IACX1I,IAAI;IACJ2I,gBAAgB;IAChBC,WAAW;IACXC,aAAa;IACb/C,GAAG;IACHgD,SAAS;IACTC,YAAY;IACZpT,KAAK;IACLW,MAAM;IACNsG;GACiB,GAAA7F,IAAA;EACjB,MAAM6B,SAAS,GACb8P,WAAW,IAAI3P,QAAQ,CAACiQ,aAAa,CAAC,MAAM,CAAC;EAC/C,MAAM3F,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;EAC7B,MAAM0O,mBAAmB,GAKrB1O,MAAS,CAACqC,SAAS,CAAC,CAACpC,MAAM,OAAKyS,kBAAU,CAAChE,mBAAqB,CAAC;EACrE,MAAMiE,OAAO,GAAGjE,mBAAmB,CAACkE,KAAK,EAAE;EAE3C,MAAMC,gBAAgB,GAAGF,OAAO,GAC5B3S,MACS,CAACqC,SAAS,CAAC,CACjBjC,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CACH,OAAO,EACJqS,kBAAU,CAAChE,mBAAmB,UAAI0D,gBAAgB,IAAI,EAAE,CAAE,CAC9D,CACA7O,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BA,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CACrBA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAC1BmL,mBAAmB;EAEvB,IAAI8D,YAAY,EAAE;IAChBM,MAAM,CAACC,OAAO,CAACP,YAAY,CAAC,CAAC9K,OAAO,CAACC,KAAA;MAAA,IAAC,CAACqL,IAAI,EAAEC,GAAG,CAAC,GAAAtL,KAAA;MAAA,OAC/CkL,gBAAgB,CAACtP,KAAK,CAACyP,IAAI,EAAEC,GAAG,CAAC;MAClC;;EAGHJ,gBAAgB,CAACjL,IAAI,CAAC,EAAE,CAAC;EACzB,IAAIsL,SAAS,GAAG,KAAK;EAErB,MAAMC,UAAU,GAAIC,OAAiB;IACnCF,SAAS,GAAGG,OAAO,CAACD,OAAO,CAAC;IAC5B,MAAME,OAAO,GAAGJ,SAAS,GAAG,GAAG,GAAG,GAAG;IACrCL,gBAAgB,CAACtP,KAAK,CAAC,SAAS,EAAE+P,OAAO,CAAC;GAC3C;EAED,MAAMC,WAAW,GAAGA,CAAC1Q,KAAU,EAAE2Q,aAA6B;IAC5D,IAAI,CAACxQ,CAAC,EAAEyE,CAAC,CAAC,GAAGzH,OAAU,CAAC6C,KAAK,EAAEL,QAAQ,CAAC;IAExC,IAAI,CAAC6P,WAAW,IAAIH,gBAAgB,EAAE;MACpC,MAAM,CAACuB,KAAK,EAAEC,KAAK,CAAC,GAAG1T,OAAU,CAAC6C,KAAK,EAAEA,KAAK,CAAC8Q,MAAM,CAAC;MAEtD3Q,CAAC,GAAGA,CAAC,GAAGyQ,KAAK;MACbhM,CAAC,GAAGA,CAAC,GAAGiM,KAAK;KACd,MAAM,IAAI,CAACrB,WAAW,EAAE;MACvB,MAAMuB,UAAU,GAAGnE,MAAM,CAAClR,IAAI,EAAE;MAChC,MAAM;QACJyE,CAAC,EAAEyQ,KAAK;QACRhM,CAAC,EAAEiM,KAAK;QACRtU,KAAK,EAAEyU,SAAS;QAChB9T,MAAM,EAAE+T;OACT,GAAGF,UAAU,GACVA,UAAU,CAAC7Q,qBAAqB,EAAE,GAClC;QAAEC,CAAC,EAAE,CAAC;QAAEyE,CAAC,EAAE,CAAC;QAAErI,KAAK,EAAE,CAAC;QAAEW,MAAM,EAAE;OAAG;MACvC,MAAM,CAACgU,IAAI,EAAEC,IAAI,CAAC,GAAGzE,GAAG,CAACe,QAAQ,CAACkD,aAAoC,CAAC;MACvExQ,CAAC,GAAGyQ,KAAK,GAAGI,SAAS,GAAG,CAAC,GAAGE,IAAI;MAChCtM,CAAC,GAAGiM,KAAK,GAAGI,UAAU,GAAG,CAAC,GAAGE,IAAI;;IAGnCnB,gBAAgB,CAACtP,KAAK,CAAC,MAAM,EAAEP,CAAC,GAAG,IAAI,CAAC,CAACO,KAAK,CAAC,KAAK,EAAEkE,CAAC,GAAG,IAAI,CAAC;GAChE;EAED,MAAMwM,UAAU,GAAGA,CAACpR,KAAU,EAAE2Q,aAA6B;IAC3DL,UAAU,CAAC,IAAI,CAAC;IAChBI,WAAW,CAAC1Q,KAAK,EAAE2Q,aAAa,CAAC;IACjC,MAAMU,YAAY,GAAGV,aAAa,GAAG,CAACA,aAAa,CAAC/J,IAAI,CAAC,GAAGA,IAAI;IAEhEoJ,gBAAgB,CAACjL,IAAI,CAAC;MACpB,MAAMA,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAAC8L,WAAW;QAACnD,SAAS,EAAEgF,kBAAU,CAAC/D;SACjC5J,oBAACiM,gBAAgB;QAACtD,SAAS,EAAEgF,kBAAU,CAAC9D;SACrC0D,aAAa,GACZA,aAAa,CAAC4B,YAAY,CAAC,GAE3BnP,0CACGmP,YAAY,CAACzJ,GAAG,CACf,CAAAY,KAAA,EAAuCnG,KAAa;QAAA,IAAnD;UAAEiP,KAAK;UAAEhI,IAAI;UAAEtF;SAAqB,GAAAwE,KAAA;QAAA,OACnCtG,oBAACmM,WAAW;UACVkD,GAAG,EAAKjI,IAAI,SAAIjH,KAAO;UACvBwI,SAAS,EAAEgF,kBAAU,CAAC7D;WAErBsF,KAAK,IACJpP,oBAACsM,QAAQ;UACP3D,SAAS,EAAEgF,kBAAU,CAAC1D,kBAAkB;UACxCzL,KAAK,EAAE;YAAE8Q,eAAe,EAAEF;;UAE7B,EACAhI,IAAI,IACHpH,oBAACmD,MAAI;UAACwF,SAAS,EAAEgF,kBAAU,CAAC5D;WACzB3C,IAAI,CAER,EACDpH,oBAAC2M,KAAK;UAAChE,SAAS,EAAEgF,kBAAU,CAAC3D;WAC1BjC,QAAM,CAACjG,KAAK,CAAC,CACR,CACI;OACf,CACF,CAEJ,CACgB,CACP,CACf;MAED,OAAOe,IAAI;KACZ,CAAC;GACH;EAED,IAAIsK,gBAAgB,EAAE;IACpBzC,MAAM,CAAC1L,EAAE,CAAC,uBAAuB,EAAElB,KAAK,IAAIoR,UAAU,CAACpR,KAAK,CAAC,CAAC;IAC9D4M,MAAM,CAAC1L,EAAE,CAAC,sBAAsB,EAAE;MAChC8O,gBAAgB,CAACjL,IAAI,CAAC,EAAE,CAAC;MACzBuL,UAAU,EAAE;KACb,CAAC;IAEF,IAAI/T,KAAK,IAAIW,MAAM,EAAE;MACnB0P,MAAM,CACHrP,MAAM,CAAC,QAAQ,CAAC,CAChBC,IAAI,CAAC,OAAO,EAAEqS,kBAAU,CAACzD,yBAAyB,CAAC,CACnD5O,IAAI,CAAC,GAAG,EAAEgG,MAAM,CAAC,CACjBhG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;IAGlB,IAAI,CAACgS,WAAW,EAAE;MAChB5C,MAAM,CAAC1L,EAAE,CAAC,6CAA6C,EAAElB,KAAK,IAC5D0Q,WAAW,CAAC1Q,KAAK,CAAC,CACnB;;GAEJ,MAAM;IACL0P,SAAS,CAACxO,EAAE,CAAC,iBAAiB,EAAEkQ,UAAU,CAAC;IAC3C,IAAI,CAAC5B,WAAW,EAAE;MAChBE,SAAS,CAACxO,EAAE,CAAC,iCAAiC,EAAEwP,WAAW,CAAC;;IAE9DhB,SAAS,CAACxO,EAAE,CAAC,gBAAgB,EAAE;MAC7B8O,gBAAgB,CAACjL,IAAI,CAAC,EAAE,CAAC;MACzBuL,UAAU,EAAE;KACb,CAAC;;AAEN,CAAC;;ACnKM,MAAMxS,MAAI,GAAGA,CAACpC,IAAwB,EAAEmG,KAAoB;EACjE,MAAM;IACJ+E,IAAI;IACJ6K,QAAQ;IACRC,OAAO;IACPpE,WAAW;IACXhB,UAAU;IACVC,QAAQ;IACRoF,YAAY;IACZC,MAAM;IACNC,kBAAkB;IAClBC,gBAAgB;IAChBC,qBAAqB;IACrBC,sBAAsB;IACtBC,oBAAoB;IACpBC,WAAW;IACXC,WAAW;IACXxF,kBAAkB;IAClB6E,eAAe;IACf1E,gCAAgC;IAChCE,uBAAuB;IACvBD,iBAAiB;IACjBE,kBAAkB;IAClB9F,WAAW;IACXiL,gBAAgB;IAChBlF,kBAAkB;IAClBmF,WAAW;IACXhD,gBAAgB;IAChBE,gBAAgB;IAChBC,WAAW;IACXC,aAAa;IACbE;GACD,GAAG9N,KAAK;EAET,IAAInG,IAAI,KAAK,IAAI,IAAIkL,IAAI,CAAClE,MAAM,EAAE;IAChC,MAAM4P,SAAS,GAAGV,MAAM,GAAGA,MAAM,CAAC1M,GAAG,GAAG,CAAC;IACzC,MAAMqN,WAAW,GAAGX,MAAM,GAAGA,MAAM,CAACY,KAAK,GAAG,CAAC;IAC7C,MAAMC,YAAY,GAAGb,MAAM,GAAGA,MAAM,CAACc,MAAM,GAAG,CAAC;IAC/C,MAAMC,UAAU,GAAGf,MAAM,GAAGA,MAAM,CAACnQ,IAAI,GAAG,CAAC;IAC3C,MAAM;MAAElF,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,CAACwE,qBAAqB,EAAE;IACzD,MAAM3D,KAAK,GAAGsF,KAAK,CAACtF,KAAK,IAAI0D,SAAS;IACtC,MAAMyH,aAAa,GAAG,GAAG;IACzB,MAAMxK,MAAM,GAAG2E,KAAK,CAAC3E,MAAM,IAAIwK,aAAa;IAC5C,MAAMlE,MAAM,GACV,CAAC1E,IAAI,CAACF,GAAG,CAACrC,KAAK,EAAEW,MAAM,CAAC,GACtB,CAACgV,WAAW,IAAI,CAAC,IAAI,CAAC,IACrB3V,KAAK,GAAGW,MAAM,GACXoV,SAAS,GAAGG,YAAY,GACxBF,WAAW,GAAGI,UAAU,CAAC,IAC/B,CAAC;IAEH,MAAMrV,GAAG,GAAGL,SAAS,CAACvB,IAAI,EAAEa,KAAK,EAAEW,MAAM,CAAC;IAC1C,MAAM0P,MAAM,GAAGtP,GAAG,CACfC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACC,SAAS,CAAC,CAC3C9N,IAAI,CACH,WAAW,kBACE,CAACjB,KAAK,IAAIoW,UAAU,GAAGJ,WAAW,CAAC,IAAI,CAAC,GACnDI,UAAU,WAAI,CAACzV,MAAM,IAAIuV,YAAY,GAAGH,SAAS,CAAC,IAAI,CAAC,GAAGA,SAAS,OAAG,CACzE;IAEH,MAAMM,WAAW,GAAG,EAAE;IACtB,MAAMC,eAAe,GAAG,GAAG;IAC3B,MAAMC,SAAS,GAAG,GAAG;IAErB,MAAMC,KAAG,GAAG5V,GACN,EAAE,CACLmP,UAAU,CAAC,CAACnB,gBAAgB,CAACmB,UAAU,IAAI,CAAC,CAAC,CAAC,CAC9CC,QAAQ,CAACpB,gBAAgB,CAACoB,QAAQ,IAAIuG,SAAS,CAAC,CAAC,CACjDrB,QAAQ,CACPA,QAAQ,GACJ3S,IAAI,CAACD,GAAG,CAACC,IAAI,CAACF,GAAG,CAAC6S,QAAQ,GAAGoB,eAAe,EAAED,WAAW,CAAC,EAAE,CAAC,CAAC,GAC9D,CAAC,CACN,CACAI,IAAI,CAAC,IAAI;;KAEThP,KAAK,CAACrG,IAAA;MAAA,IAAC;QAAEqG;OAAO,GAAArG,IAAA;MAAA,OAAKqG,KAAK;MAAC;;IAG9B,MAAM6I,SAAS,GAAGkG,KAAG,CAACnM,IAAI,CAAoB;IAE9C,MAAMqM,cAAc,GAAG,IAAI;IAC3B,MAAMvG,KAAG,GAAGvP,GACN,EAAE,CACLwU,YAAY,CAACA,YAAY,IAAI,CAAC,CAAC,CAC/BtE,WAAW,CAAC7J,MAAM,CAAC,CACnB8J,WAAW,CACV9J,MAAM,GAAG1E,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACyO,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE2F,cAAc,CAAC,CACjE;IAEH,IAAI,OAAOzB,eAAe,KAAK,QAAQ,EAAE;MACvC5E,MAAM,CACHrP,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,MAAM,EAAEgU,eAAe,CAAC,CAC7BhU,IAAI,CAAC,GAAG,EAAE;;MAETkP,KAAG,CAAC;QACFJ,UAAU,EAAEnB,gBAAgB,CAAC,CAAC,CAAC;QAC/BoB,QAAQ,EAAEpB,gBAAgB,CAAC2H,SAAS;OACrC,CAAC,CACH;;IAGL,MAAM7I,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;IAC7B,MAAMuS,SAAS,GAAG9C,MAAM,CACrB9I,SAAS,CAAC,WAAW,CAAC,CACtB8C,IAAI,CAACiG,SAAS,CAAC,CACf3D,KAAK,EAAE,CACP3L,MAAM,CAAC,MAAM;;KAEbC,IAAI,CAAC,GAAG,EAAEkP,KAAG,CAAC;IAEjBgD,SAAS,CACNlS,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACE,QAAQ,CAAC,CAC1C/N,IAAI,CAAC,MAAM,EAAEsH,KAAA;MAAA,IAAC;QAAEzC;OAAO,GAAAyC,KAAA;MAAA,OAAK8B,IAAI,CAACvE,KAAK,CAAC,CAACiP,KAAK,IAAI,EAAE;MAAC,CACpD9T,IAAI,CAAC,QAAQ,EAAE2U,WAAW,IAAI,EAAE,CAAC,CACjC3U,IAAI,CAAC,cAAc,EAAE0U,WAAW,IAAI,CAAC,CAAC,CACtC1U,IAAI,CAAC,OAAO,EAAEkU,OAAO,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAC/CxQ,EAAE,CACD,OAAO;;IAEP,CAACwD,CAAC,EAAEqF,CAAC,KAAK2H,OAAO,IAAIA,OAAO,CAAC9K,IAAI,CAACmD,CAAC,CAAC1H,KAAK,CAAC,CAAC,CAC5C,CACA9E,MAAM,CAAC,WAAW,CAAC,CACnB4M,IAAI,CAACJ,CAAC,IACLqI,gBAAgB;;IAEZA,gBAAgB,CAACrI,CAAC,CAAC,GACnBsF,gBAAgB,IAAIgD,WAAW,GAC/B,EAAE,IACCzL,IAAI,CAACmD,CAAC,CAAC1H,KAAK,CAAC,CAACiH,IAAI,IAAI,EAAE,WAAKW,QAAM,CAACrD,IAAI,CAACmD,CAAC,CAAC1H,KAAK,CAAC,CAAC2B,KAAK,CAAC,MAAG,CACnE;IAEH,IAAI6N,kBAAkB,EAAE;MACtB,MAAM1H,IAAI,GAAGyC,MAAM,CAChB9I,SAAS,CAAC,WAAW,CAAC,CACtB8C,IAAI,CAACiG,SAAS,CAAC,CACf3D,KAAK,EAAE,CACP3L,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACG,aAAa,CAAC,CAC/ChO,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC7BA,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CACpCA,IAAI,CACH,WAAW;;MAEVuM,CAAgB,IAAK,YAAY,GAAG2C,KAAG,CAACe,QAAQ,CAAC1D,CAAC,CAAC,GAAG,GAAG,CAC3D;MAEHI,IAAI,CACD5M,MAAM,CAAC,OAAO,CAAC,CACfC,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACI,kBAAkB;;OAEnDtB,IAAI,CAAEJ,CAAgB;QACrB,MAAMvH,GAAG,GAAGwI,gBAAgB,CAACjB,CAAC,CAACwC,QAAQ,GAAGxC,CAAC,CAACuC,UAAU,CAAC;QAEvD,IAAI,CAACyF,qBAAqB,IAAIvP,GAAG,GAAGuP,qBAAqB,EAAE;UACzD,OAAOD,gBAAgB,GAAGA,gBAAgB,CAAC/H,CAAC,CAAC,GAAGA,CAAC,CAAC/F,KAAK;;OAE1D,CAAC;MAEJ,IAAIgO,sBAAsB,EAAE;QAC1B7H,IAAI,CACD5M,MAAM,CAAC,OAAO,CAAC,CACfC,IAAI,CAAC,OAAO,EAAE6N,kBAAkB,CAACK,iBAAiB;;SAElDvB,IAAI,CAAEJ,CAAgB,IACrBkI,oBAAoB,GAAGA,oBAAoB,CAAClI,CAAC,CAAC,GAAGA,CAAC,CAACnD,IAAI,CAAC0C,IAAI,CAC7D,CACA9L,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CACdA,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;;;IAI1B2F,kBAAgB,CAAC;WACfuJ,KAAG;MACHC,kBAAkB;MAClBC,MAAM;MACNpJ,MAAM;MACN9H,IAAI;MACJmR,SAAS;MACTpM,UAAU,EAAE,CAAClE,KAAK,IAAIoW,UAAU,GAAGJ,WAAW,CAAC,IAAI,CAAC;MACpDzP,UAAU,EAAE,CAAC5F,MAAM,IAAIoV,SAAS,GAAGG,YAAY,CAAC,IAAI,CAAC;MACrD3F,gCAAgC;MAChCE,uBAAuB;MACvBD,iBAAiB;MACjBE,kBAAkB;MAClBC;KACD,CAAC;IAEF,IAAImF,WAAW,IAAIhD,gBAAgB,EAAE;MACnCD,WAAW,CAAC;QACVC,gBAAgB;QAChBzC,MAAM;QACNhG,IAAI;QACJ2I,gBAAgB;QAChBC,WAAW;QACXC,aAAa;QACbC,SAAS;aACThD,KAAG;QACHiD,YAAY;QACZpT,KAAK;QACLW,MAAM;QACNsG;OACD,CAAC;;IAGJ,IAAI2D,WAAW,EAAE;MACf,MAAMpC,IAAI,GAAGC,cAAc,CAACC,cAAc,CAACkC,WAAW,CAAC;MAEvD7J,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,CAACwH,IAAI,CAACA,IAAI,CAAC;;;AAGhC,CAAC;;MCrNYmO,QAAQ,GACnBrR,KAAK;EAEL,MAAM;IAAEgJ,SAAS;IAAEnK,KAAK;IAAEkB;GAAU,GAAGC,KAAK;EAC5C,MAAM,CAAChG,GAAG,EAAEH,IAAI,CAAC,GAAGD,OAAO,EAAE;EAE7BoB,SAAS,CAAC;IACRnB,IAAI,IAAIoC,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;GAC1B,EAAE,CAACnG,IAAI,EAAEmG,KAAK,CAAC,CAAC;EAEjB,MAAMkJ,MAAM,GAAGA,MAAMjN,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;EAEtCvF,SAAS,CAACuF,KAAK,CAACtF,KAAK,EAAEwO,MAAM,CAAC;EAE9B,OACE7I;IAAK2I,SAAS,EAAEA,SAAS;IAAEnK,KAAK,EAAEA;KAChCwB,oBAACyE,YAAU;IAAC9K,GAAG,EAAEA;KAAM+F,QAAQ,CAAc,CACzC;AAEV,CAAC;AAEDsR,QAAQ,CAAC/Q,YAAY,GAAG;EACtByE,IAAI,EAAE,EAAE;EACR0F,UAAU,EAAE,CAAC;EACbC,QAAQ,EAAE,GAAG;EACbwF,qBAAqB,EAAE,CAAC;EACxB9E,kBAAkB,EAAE,EAAE;EACtBC,kBAAkB,EAAE;CACrB;;AClCD,MAAMiG,QAAQ,GAAG,GAAG;AAEpB,AAAO,MAAMC,gBAAgB,GAAG;EAC9BC,eAAe,EAAE,qBAAqB;EACtCC,WAAW,EAAE,iBAAiB;EAC9BC,UAAU,EAAE,gBAAgB;EAC5BC,cAAc,EAAE,qBAAqB;EACrCC,cAAc,EAAE;CACjB;AAED,SAASC,IAAIA,CAACpC,KAAmB,EAAEqC;MAAAA;IAAAA,IAAYR,QAAQ;;EACrD,MAAMS,MAAM,GAAGjU,QAAQ,CAACkU,aAAa,CAAC,QAAQ,CAAC;EAC/CD,MAAM,CAACrX,KAAK,GAAGoX,CAAC;EAChBC,MAAM,CAAC1W,MAAM,GAAG,CAAC;EACjB,MAAM4W,OAAO,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAA6B;EAEnE,KAAK,IAAI7P,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyP,CAAC,EAAE,EAAEzP,CAAC,EAAE;IAC1B4P,OAAO,CAACE,SAAS,GAAG1C,KAAK,CAACpN,CAAC,IAAIyP,CAAC,GAAG,CAAC,CAAC,CAAC;IACtCG,OAAO,CAACG,QAAQ,CAAC/P,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;EAG9B,OAAO0P,MAAM;AACf;AAEA,AAAO,MAAMM,mBAAmB,GAAG;EACjCC,QAAQ,EAAE,CAAC;EACXjX,MAAM,EAAE,EAAE;EACVX,KAAK,EAAE,GAAG;EACV+V,SAAS,EAAE,EAAE;EACbG,YAAY,EAAE,EAAE;EAChB2B,WAAW,EAAE,EAAE;EACfC,iBAAiB,EAAE;CACpB;AAED,AAAO,MAAMC,SAAS,GAAG3W,IAAA;MAAC;IACxB2T,KAAK;IACLiD,KAAK;IACLJ,QAAQ,GAAGD,mBAAmB,CAACC,QAAQ;IACvC5X,KAAK,GAAG2X,mBAAmB,CAAC3X,KAAK;IACjCW,MAAM,GAAGgX,mBAAmB,CAAChX,MAAM,GAAGiX,QAAQ;IAC9C7B,SAAS,GAAG4B,mBAAmB,CAAC5B,SAAS;IACzCC,WAAW,GAAG,CAAC;IACfE,YAAY,GAAGyB,mBAAmB,CAACzB,YAAY,GAAG0B,QAAQ;IAC1DxB,UAAU,GAAG,CAAC;IACd3K,KAAK,GAAGkM,mBAAmB,CAAC3X,KAAK,GAAG2X,mBAAmB,CAACE,WAAW;IACnEI,UAAU;IACVC,UAAU;IACVJ;GACe,GAAA1W,IAAA;EACf,MAAML,GAAG,GAAGH,MACH,CAAC,KAAK,CAAC,CACbK,IAAI,CAAC,OAAO,EAAEjB,KAAK,CAAC,CACpBiB,IAAI,CAAC,QAAQ,EAAEN,MAAM;;GAErBM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEjB,KAAK,EAAEW,MAAM,CAAC,CAAC,CACtCwD,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAC5BA,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;EAE5B,IAAIgU,UAAU,GAAIC,CAA2C;IAC3D,MAAMC,IAAI,GAAGD,CAAC,CAAC7Q,SAAS,CAAC,OAAO,CAAC;IAEjC8Q,IAAI,CACD9Q,SAAS,CAAC,YAAY,CAAC,CACvBtG,IAAI,CAAC,IAAI,EAAE8U,SAAS,GAAGG,YAAY,GAAGvV,MAAM,CAAC,CAC7CM,IAAI,CAAC,OAAO,EAAE4V,gBAAgB,CAACI,cAAc,CAAC;IACjDoB,IAAI,CAAC9Q,SAAS,CAAC,YAAY,CAAC,CAACtG,IAAI,CAAC,OAAO,EAAE4V,gBAAgB,CAACK,cAAc,CAAC;IAC3EmB,IAAI,CAACpX,IAAI,CAAC,OAAO,EAAE4V,gBAAgB,CAACG,UAAU,CAAC;IAE/C,OAAOqB,IAAI;GACZ;EACD,IAAIzU,CAAM;;EAGV,IAAImR,KAAK,CAACuD,WAAW,EAAE;IACrB,MAAMlB,CAAC,GAAG7U,IAAI,CAACF,GAAG,CAAC0S,KAAK,CAACrJ,MAAM,EAAE,CAACvF,MAAM,EAAE4O,KAAK,CAAC5S,KAAK,EAAE,CAACgE,MAAM,CAAC;IAE/DvC,CAAC,GAAGmR,KAAK,CACNwD,IAAI,EAAE,CACNC,UAAU,CACT5X,QAAW,CAACA,WAAc,CAACwV,UAAU,EAAEpW,KAAK,GAAGgW,WAAW,CAAC,EAAEoB,CAAC,CAAC,CAChE;IAEHrW,GAAG,CACAC,MAAM,CAAC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,EAAEmV,UAAU,CAAC,CACrBnV,IAAI,CAAC,GAAG,EAAE8U,SAAS,CAAC,CACpB9U,IAAI,CAAC,OAAO,EAAE4V,gBAAgB,CAACC,eAAe,CAAC,CAC/C7V,IAAI,CAAC,OAAO,EAAEjB,KAAK,GAAGoW,UAAU,GAAGJ,WAAW,CAAC,CAC/C/U,IAAI,CAAC,QAAQ,EAAEN,MAAM,GAAGoV,SAAS,GAAGG,YAAY,CAAC,CACjDjV,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CACnCA,IAAI,CACH,YAAY,EACZkW,IAAI,CACFpC,KAAK,CAACwD,IAAI,EAAE,CAAC7M,MAAM,CAAC9K,QAAW,CAACA,WAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEwW,CAAC,CAAC,CAAC,CAC1D,CAACqB,SAAS,EAAE,CACd;;;OAIA,IAAI1D,KAAK,CAAC2D,YAAY,EAAE;IAC3B9U,CAAC,GAAG8P,MAAM,CAACiF,MAAM,CACf5D,KAAK,CACFwD,IAAI,EAAE,CACNG,YAAY,CAAC9X,gBAAmB,CAACwV,UAAU,EAAEpW,KAAK,GAAGgW,WAAW,CAAC,CAAC,EACrE;MACE7T,KAAKA;QACH,OAAO,CAACiU,UAAU,EAAEpW,KAAK,GAAGgW,WAAW,CAAC;;KAE3C,CACF;IAEDjV,GAAG,CACAC,MAAM,CAAC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,EAAEmV,UAAU,CAAC,CACrBnV,IAAI,CAAC,GAAG,EAAE8U,SAAS,CAAC,CACpB9U,IAAI,CAAC,OAAO,EAAEjB,KAAK,GAAGoW,UAAU,GAAGJ,WAAW,CAAC,CAC/C/U,IAAI,CAAC,QAAQ,EAAEN,MAAM,GAAGoV,SAAS,GAAGG,YAAY,CAAC,CACjDjV,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CACnCA,IAAI,CAAC,YAAY,EAAEkW,IAAI,CAACpC,KAAK,CAAC2D,YAAY,EAAE,CAAC,CAACD,SAAS,EAAE,CAAC;;IAG7D,IAAI,CAAC7U,CAAC,CAAC6H,KAAK,EAAE;MACZ,IAAIyM,UAAU,KAAK7X,SAAS,EAAE;QAC5B,MAAM+W,CAAC,GAAG7U,IAAI,CAACkC,KAAK,CAACgH,KAAK,GAAG,CAAC,CAAC;QAC/ByM,UAAU,GAAGtX,OACL,CAACwW,CAAC,CAAC,CACR/L,GAAG,CAAC1D,CAAC,IAAI/G,QAAW,CAACmU,KAAK,CAACrJ,MAAM,EAAE,EAAE/D,CAAC,IAAIyP,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;MAEvD,IAAI,OAAOa,UAAU,KAAK,UAAU,EAAE;QACpCA,UAAU,GAAGrX,MAAS,CAACqX,UAAU,KAAK5X,SAAS,GAAG,IAAI,GAAG4X,UAAU,CAAC;;;;EAK1ElX,GAAG,CACAC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,WAAW,oBAAiBN,MAAM,GAAGuV,YAAY,OAAG;;GAEzD0C,IAAI,CACHhY,UACa,CAACgD,CAAC,CAAC,CACb6H,KAAK,CAACA,KAAK,EAAE,OAAOwM,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAG5X,SAAS;;GAEpE4X,UAAU,CAAC,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,GAAG5X,SAAS,CAAC,CACrEuX,QAAQ,CAACA,QAAQ;;GAEjBM,UAAU,CAACA,UAAU,CAAC,CAC1B,CACAU,IAAI,CAACT,UAAU,CAAC,CAChBS,IAAI,CAACR,CAAC,IAAIA,CAAC,CAACvX,MAAM,CAAC,SAAS,CAAC,CAACC,MAAM,EAAE,CAAC,CACvC8X,IAAI,CAACR,CAAC,IACLA,CAAC,CACEpX,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,GAAG,EAAEmV,UAAU,CAAC,CACrBnV,IAAI,CAAC,OAAO,EAAE4V,gBAAgB,CAACE,WAAW,CAAC,CAC3C9V,IAAI,CACH,GAAG,EACH8U,SAAS,GACPG,YAAY,GACZvV,MAAM,IACLmX,iBAAiB,IAAIH,mBAAmB,CAACG,iBAAiB,CAAC,CAC/D,CACA7W,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAC5BA,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAC5BA,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAC3B2M,IAAI,CAACoK,KAAe,CAAC,CACzB;EAEH,OAAOjX,GAAG;AACZ,CAAC;;;AC9KD,MAKa8X,uBAAuB,gBAAAnT,QAAA;EAClCoT,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE,cAAc;EAC5BC,YAAY,EAAE,cAAc;EAC5BC,YAAY,EAAE,cAAc;EAC5BC,cAAc,EAAE,gBAAgB;EAChCC,iBAAiB,EAAE,mBAAmB;EACtCC,eAAe,EAAE,iBAAiB;EAClCC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE,cAAc;EAC5BC,WAAW,EAAE;AAAa,GACvB1C,gBAAgB,CACpB;AAED,MAAM2C,YAAY,GAAG,MAAM;AAE3B,AAAO,MAAMpP,YAAU,gBAAGtL,MAAM,CAACD,OAAO,CAAC,CAAAG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,isBACpC4Z,uBAAuB,CAACE,YAAY,EAKpCF,uBAAuB,CAACM,iBAAiB,EAGhCK,YAAY,EAKrBX,uBAAuB,CAACK,cAAc,EAC7BM,YAAY,EAMrBX,uBAAuB,CAACQ,aAAa,EAMrCR,uBAAuB,CAACG,YAAY,EAMpCH,uBAAuB,CAACO,eAAe,EAOvCP,uBAAuB,CAACS,YAAY,EAIpCT,uBAAuB,CAACU,WAAW,CAGvC;;AC3DM,MAAMhY,MAAI,GAAGA,CAClBpC,IAAwB,EACxBmG,KAAyB;EAEzB,MAAM;IACJ+E,IAAI;IACJoP,WAAW;IACXC,QAAQ;IACRhB,YAAY;IACZiB,YAAY;IACZC,SAAS;IACTC,UAAU;IACVC;GACD,GAAGxU,KAAK;EAET,IAAInG,IAAI,KAAK,IAAI,IAAIkL,IAAI,CAAClE,MAAM,EAAE;IAChC,MAAM4T,KAAK,GAAqCnZ,KAAQ,CAACyJ,IAAI,EAAEmD,CAAC,IAC9DA,CAAC,CAACwM,IAAI,CAACC,cAAc,EAAE,CACxB;IACD,MAAMC,UAAU,GACd,OAAO5U,KAAK,CAAC4U,UAAU,KAAK,QAAQ,GAAG5U,KAAK,CAAC4U,UAAU,GAAG,CAAC;IAC7D,MAAMC,QAAQ,GAAG,CAAC;IAClB,MAAMC,eAAe,GAAG,EAAE;IAC1B,MAAMC,QAAQ,GAAG/U,KAAK,CAAC+U,QAAQ,IAAID,eAAe;IAClD,MAAME,QAAQ,GAAI3S,CAAS,IACzB8R,WAAW,GAAG9R,CAAC,GAAG,CAACA,CAAC,IAAIwS,QAAQ,GAAG,CAAC,CAAC,IAAIA,QAAQ;IACnD,MAAMI,IAAI,GAAGb,QAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACnE,MAAMc,WAAW,GAAG,CAAC;IACrB,MAAMC,SAAS,GAAI9S,CAAS,IAC1B8R,WAAW,GAAGc,IAAI,CAAC5S,CAAC,CAAC,GAAGA,CAAC,KAAK6S,WAAW,GAAGD,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC5S,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM+S,UAAU,GAAG9Z,SAAY,CAAC,IAAI,CAAC;IACrC,MAAM+Z,QAAQ,GAAGlB,WAAW,GAAG7Y,SAAY,GAAGA,SAAY;IAC1D,MAAMga,gBAAgB,GAAGA,CAAC1S,IAAU,EAAE2S,EAAQ,KAC5CF,QAAQ,CAAC5U,KAAK,CAACnF,OAAU,CAACsH,IAAI,CAAC,EAAE2S,EAAE,CAAC;IACtC,MAAMC,eAAe,GAAId,IAAU,IACjCA,IAAI,CAACe,WAAW,EAAE,IAAIpB,YAAY,IAAI,CAAC,CAAC;IAC1C,MAAMqB,WAAW,GAAGpa,SAAY,CAAC,IAAI,CAAC;IACtC,MAAM0B,KAAG,GAAG1B,GAAM,CAACyJ,IAAI,CAACgB,GAAG,CAACjK,IAAA;MAAA,IAAC;QAAEqG;OAAO,GAAArG,IAAA;MAAA,OAAKqG,KAAK;MAAC,CAAW;IAC5D,MAAMpF,KAAG,GAAGzB,GAAM,CAACyJ,IAAI,CAACgB,GAAG,CAAC9C,KAAA;MAAA,IAAC;QAAEd;OAAO,GAAAc,KAAA;MAAA,OAAKd,KAAK;MAAC,CAAW;IAE5D,MAAMsN,KAAK,GAAG8E,UAAU,GACpBjZ,WACc,EAAE,CACb8K,MAAM,CAAC,CAACrJ,KAAG,EAAEC,KAAG,CAAC;;KAEjBH,KAAK,CAAC0X,UAAU,CAAC,GACpBjZ,eACkB,CAAC8X,YAAY,IAAI9X,iBAAoB,CAAC,CACrD8K,MAAM,CAAC,CAACrJ,KAAG,EAAE,CAACC,KAAG,CAAC,CAAC;IAE1B,IAAI2Y,UAAU,GAAG,CAAC;IAElBlB,KAAK,CAACzR,OAAO,CAAC,CAAC4S,MAAM,EAAEC,IAAI;MACzB,MAAM9Y,GAAG,GAAG,IAAIgC,IAAI,CAAC8W,IAAI,EAAE,CAAC,CAAC;MAC7B,MAAM7Y,KAAG,GAAG1B,GAAM,CAACsa,MAAM,CAAC7P,GAAG,CAACmC,CAAC,IAAIA,CAAC,CAACwM,IAAI,CAAC,CAAS;MACnD,MAAMoB,MAAM,GAAG9Y,KAAG,CAACyY,WAAW,EAAE,GAAG1Y,GAAG,CAAC0Y,WAAW,EAAE;MACpD,MAAMM,SAAS,GAAGT,gBAAgB,CAACvY,GAAG,EAAEC,KAAG,CAAC,GAAG,CAAC;MAChD,MAAMtC,KAAK,GACTqb,SAAS,IAAIhB,QAAQ,GAAGH,UAAU,CAAC,GAAG,CAACP,YAAY,IAAI,CAAC,IAAIyB,MAAM;MAEpEH,UAAU,GAAG1Y,IAAI,CAACD,GAAG,CAAC2Y,UAAU,EAAEjb,KAAK,CAAC;KACzC,CAAC;IAEFY,MAAS,CAACzB,IAAI,CAAC,CACZ0B,MAAM,OAAKgY,uBAAuB,CAACC,aAAe,CAAC,CACnDhY,MAAM,EAAE;IAEX,MAAMmC,SAAS,GAAGrC,MACT,CAACzB,IAAI,CAAC,CACZ6B,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACC,aAAa,CAAC;IAEvD,MAAMqC,IAAI,GAAGlY,SAAS,CACnBsE,SAAS,CAAC,KAAK;;KAEf8C,IAAI,CAAC0P,KAAK,CAAC,CACXxM,IAAI,CAAC,KAAK,CAAC,CACXtM,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACE,YAAY,CAAC;IAEtD,MAAMuC,gBAAgB,GAAGH,IAAI,CAC1Bna,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACG,YAAY,CAAC;IAEtDsC,gBAAgB,CACbta,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACM,iBAAiB;;KAEvDvL,IAAI,CAAC3B,KAAA;MAAA,IAAC,CAAC+I,GAAG,CAAC,GAAA/I,KAAA;MAAA,OAAK+I,GAAG;MAAC;IAEvBsG,gBAAgB,CACb/T,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACzJ,OAAQ,CAACuZ,QAAQ,CAAC,CAAC,CACxB5M,IAAI,CAAC,KAAK,CAAC,CACXtM,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACO,eAAe,CAAC,CACtDjV,KAAK,CAAC,QAAQ,EAAEkW,QAAQ,GAAG,IAAI,CAAC,CAChClW,KAAK,CAAC,eAAe,EAAE+V,UAAU,GAAG,IAAI,CAAC,CACzCtM,IAAI,CAAC6M,SAAS,CAAC;IAElB,MAAMvX,IAAI,GAAGiY,IAAI,CACdna,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACI,YAAY,CAAC;IAEtD,MAAMsC,MAAM,GAAGrY,IAAI,CAChBlC,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACK,cAAc,CAAC;IAExDqC,MAAM,CACHhU,SAAS,CAAC,KAAK;;KAEf8C,IAAI,CAAC+B,KAAA;UAAC,CAACjE,CAAC,EAAE+S,MAAM,CAAC,GAAA9O,KAAA;MAChB,MAAMoP,iBAAiB,GAAG,EAAE;MAC5B,MAAMC,gBAAgB,GAAG,EAAE;MAE3B,OAAO7a,SAAY,CACjBA,QAAW,CAAC,IAAIyD,IAAI,CAAC6W,MAAM,CAAC,CAAC,CAAC,CAAClB,IAAI,CAACC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAC5DrZ,QAAW,CACT,IAAIyD,IAAI,CACN6W,MAAM,CAAC,CAAC,CAAC,CAAClB,IAAI,CAACC,cAAc,EAAE,EAC/BuB,iBAAiB,EACjBC,gBAAgB,CACjB,CACF,CACF;KACF,CAAC,CACDlO,IAAI,CAAC,KAAK,CAAC,CACXtM,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACQ,aAAa,CAAC,CACpDlV,KAAK,CACJ,MAAM,EACLqJ,CAAM,IACLoN,gBAAgB,CAACpN,CAAC,EAAEmN,QAAQ,CAACvS,IAAI,CAACoF,CAAC,CAAC,CAAC,IAAI6M,QAAQ,GAAGH,UAAU,CAAC,GAC/DY,eAAe,CAACtN,CAAC,CAAC,GAClB,IAAI;;KAGPI,IAAI,CAACoN,WAAW,CAAC;;IAGpB9X,IAAI,CACDlC,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACS,YAAY,CAAC,CACnDnV,KAAK,CAAC,QAAQ,EAAE,CAACkW,QAAQ,GAAGH,UAAU,IAAIC,QAAQ,GAAG,IAAI,CAAC,CAC1DhW,KAAK,CAAC,OAAO,EAAE8W,UAAU,GAAG,IAAI,CAAC,CACjC1T,SAAS,CAAC,KAAK;;KAEf8C,IAAI,CAACyC,KAAA;MAAA,IAAC,GAAGoO,MAAM,CAAC,GAAApO,KAAA;MAAA,OAAKoO,MAAM;MAAC,CAC5B3N,IAAI,CAAC,KAAK;;KAEVmO,IAAI,CAAC,CAACrR,IAAuB,EAAEvE,KAAK,EAAE6V,QAAQ;MAC7C,IAAI/B,SAAS,EAAE;QACb,MAAMgC,OAAO,GAAGD,QAAQ,CAAC7V,KAAK,CAAmB;QACjD,MAAM+V,SAAS,GAAG9G,KAAK,CAAC1K,IAAI,CAAC5C,KAAK,CAAW;QAE7CmS,SAAS,CAACvP,IAAI,EAAEuR,OAAO,EAAEC,SAAS,CAAC;;KAEtC,CAAC,CACD5a,IAAI,CAAC,OAAO,EAAE4X,uBAAuB,CAACU,WAAW,CAAC,CAClDpV,KAAK,CAAC,OAAO,EAAEkW,QAAQ,GAAG,IAAI,CAAC,CAC/BlW,KAAK,CAAC,QAAQ,EAAEkW,QAAQ,GAAG,IAAI;;KAE/BlW,KAAK,CACJ,MAAM,EACLqJ,CAAM,IACLoN,gBAAgB,CAACpN,CAAC,CAACwM,IAAI,EAAExM,CAAC,CAACwM,IAAI,CAAC,IAAIK,QAAQ,GAAGH,UAAU,CAAC,GAC1DY,eAAe,CAACtN,CAAC,CAACwM,IAAI,CAAC,GACvB,IAAI,CACP,CACA7V,KAAK,CACJ,KAAK;;IAELqJ,CAAC,IAAI8M,QAAQ,CAAC9M,CAAC,CAACwM,IAAI,CAAC8B,SAAS,EAAE,CAAC,IAAIzB,QAAQ,GAAGH,UAAU,CAAC,GAAG,IAAI;;KAGnE/V,KAAK,CAAC,kBAAkB,EAAEqJ,CAAC,IAAIuH,KAAK,CAACvH,CAAC,CAAC/F,KAAK,CAAC;;KAE7CxG,IAAI,CAAC,OAAO,EAAEuM,CAAC,IAAOkN,UAAU,CAAClN,CAAC,CAACwM,IAAI,CAAC,WAAMxM,CAAC,CAAC/F,KAAO,CAAC;IAE3D,IAAI,OAAOqS,WAAW,KAAK,QAAQ,EAAE;MACnC,MAAMiC,MAAM,GAAGhE,SAAS,CAAArS,QAAA;QACtBqP,KAAK,EAAEA;SACJ+E,WAAW,CACf,CAAC;MAEF,MAAMkC,aAAa,GAAG/Y,SAAS,CAAC9D,IAAI,EAAoB;MACxD,MAAM8c,SAAS,GAAGF,MAAM,CAAC5c,IAAI,EAAgB;MAE7C6c,aAAa,CAACE,WAAW,CAACD,SAAS,CAAC;;;AAG1C,CAAC;;MC5LYE,aAAa,GAA4B7W,KAAK;EACzD,MAAM;IACJgJ,SAAS;IACTnK,KAAK;IACLkB,QAAQ;IACRgF,IAAI;IACJoP,WAAW;IACXC,QAAQ;IACRQ,UAAU;IACVG,QAAQ;IACR3B,YAAY;IACZiB,YAAY;IACZE,UAAU;IACVC;GACD,GAAGxU,KAAK;EAET,MAAM,CAAChG,GAAG,EAAEH,IAAI,CAAC,GAAGD,OAAO,EAAE;EAE7BoB,SAAS,CAAC;IACRnB,IAAI,IAAIoC,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;;GAE1B,EAAE,CACDnG,IAAI,EACJkL,IAAI,EACJoP,WAAW,EACXC,QAAQ,EACRQ,UAAU,EACVG,QAAQ,EACR3B,YAAY,EACZiB,YAAY,EACZE,UAAU,EACVC,WAAW,CACZ,CAAC;EAEF,OACEnU,oBAACyE,YAAU;IAAC9K,GAAG,EAAEA,GAAG;IAAEgP,SAAS,EAAEA,SAAS;IAAEnK,KAAK,EAAEA;KAChDkB,QAAQ,CACE;AAEjB,CAAC;AAED8W,aAAa,CAACvW,YAAY,GAAG;EAC3ByE,IAAI,EAAE;CACP;;SClDe+R,iBAAiBA,CAC/BC,SAA2C;EAE3C,IAAIC,UAAU;EACd,MAAMnd,IAAI,GAAGkd,SAAS,CAACld,IAAI,EAAE;EAE7B,IAAIA,IAAI,YAAYod,kBAAkB,EAAE;;IAEtCD,UAAU,GAAGnd,IAAI,CAACqd,OAAO,EAAE;GAC5B,MAAM;;IAELF,UAAU,GAAGnd,IAAI,CAACwE,qBAAqB,EAAE;;EAG3C,OAAO2Y,UAAU;AACnB;;SCjBgBG,IAAIA;EAClB;AACF;AAEA,SAAgBC,MAAMA,CAACjV,KAAU;EAC/B,OAAOA,KAAK,KAAKpH,SAAS,IAAIoH,KAAK,KAAK,IAAI,IAAIkV,MAAM,CAACC,KAAK,CAACnV,KAAK,CAAC;AACrE;;ACJO,MAAMoV,WAAW,GAAIxS,IAAqB;EAC/C,MAAMyS,MAAM,GAAiD,EAAE;EAE/D,OAAOzS,IAAI,CAACgB,GAAG,CAAC,CAACyC,IAAI,EAAEhI,KAAK;IAC1BgX,MAAM,CAAChX,KAAK,CAAC,GAAG,EAAE;IAElB,IAAIA,KAAK,GAAG,CAAC,EAAE;MACb,OAAAJ,QAAA,KACKoI,IAAI;QACPoN,MAAM,EAAEpN,IAAI,CAACoN,MAAM,CAAC7P,GAAG,CAAC,CAAC5D,KAAK,EAAEsV,WAAW;UACzC,MAAMC,SAAS,GAAGF,MAAM,CAAChX,KAAK,GAAG,CAAC,CAAC,CAACiX,WAAW,CAAC;UAChDD,MAAM,CAAChX,KAAK,CAAC,CAACiX,WAAW,CAAC,GAAGJ,MAAM,CACjC,CAAC,OAAOK,SAAS,KAAK,QAAQ,GAAG,CAAC,GAAGza,IAAI,CAAC0a,GAAG,CAACD,SAAS,CAAC,KACrD,OAAOvV,KAAK,KAAK,QAAQ,GAAG,CAAC,GAAGlF,IAAI,CAAC0a,GAAG,CAACxV,KAAK,CAAC,CAAC,CACpD;UAED,OAAOqV,MAAM,CAAChX,KAAK,CAAC,CAACiX,WAAW,CAAC;SAClC;;KAEJ,MAAM;MACLjP,IAAI,CAACoN,MAAM,CAAC5S,OAAO,CAAC,CAACb,KAAK,EAAEsV,WAAW;QACrCD,MAAM,CAAChX,KAAK,CAAC,CAACiX,WAAW,CAAC,GAAGJ,MAAM,CAAClV,KAAK,CAAC;OAC3C,CAAC;;IAGJ,OAAOqG,IAAI;GACZ,CAAC;AACJ,CAAC;;;AC5BD,MAIaoP,mBAAmB,GAAG;EACjCC,qBAAqB,EAAE,uBAAuB;EAC9CC,oBAAoB,EAAE,sBAAsB;EAC5CC,qBAAqB,EAAE,uBAAuB;EAC9CC,oBAAoB,EAAE,sBAAsB;EAC5CC,aAAa,EAAE,eAAe;EAC9BC,oBAAoB,EAAE,sBAAsB;EAC5CC,aAAa,EAAE,eAAe;EAC9BC,4BAA4B,EAAE,8BAA8B;EAC5DC,mBAAmB,EAAE,qBAAqB;EAC1CC,YAAY,EAAE,cAAc;EAC5BC,mBAAmB,EAAE,qBAAqB;EAC1CC,kBAAkB,EAAE,oBAAoB;EACxCC,kBAAkB,EAAE,oBAAoB;EACxCC,uBAAuB,EAAE,yBAAyB;EAClDC,kBAAkB,EAAE,oBAAoB;EACxCC,cAAc,EAAE,gBAAgB;EAChCC,oBAAoB,EAAE,sBAAsB;EAC5CC,kBAAkB,EAAE,oBAAoB;EACxCC,kBAAkB,EAAE,oBAAoB;EACxCC,oBAAoB,EAAE,sBAAsB;EAC5CC,4BAA4B,EAAE,8BAA8B;EAC5DC,mBAAmB,EAAE;CACtB;AAED,AAAO,MAAMpU,YAAU,gBAAGtL,MAAM,CAACD,OAAO,CAAC,CAAAG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,4nBACpCie,mBAAmB,CAACC,qBAAqB,EACzCD,mBAAmB,CAACG,qBAAqB,EACzCH,mBAAmB,CAACW,mBAAmB,EAIvCX,mBAAmB,CAACI,oBAAoB,EAQxCJ,mBAAmB,CAACO,aAAa,EAIjCP,mBAAmB,CAACY,kBAAkB,EACtCZ,mBAAmB,CAACa,kBAAkB,EACtCb,mBAAmB,CAACkB,kBAAkB,EAItClB,mBAAmB,CAACkB,kBAAkB,EACtClB,mBAAmB,CAACoB,oBAAoB,EAMxCpB,mBAAmB,CAACU,YAAY,EAKhCV,mBAAmB,CAACkB,kBAAkB,EAItClB,mBAAmB,CAACmB,kBAAkB,CAI1C;AAED,AAAO,MAAMI,aAAa,gBAAGC,iBAAiB,CAAA3V,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,yPACzCie,mBAAmB,CAACsB,mBAAmB,EAIrCtB,mBAAmB,CAACe,kBAAkB,EAMtCf,mBAAmB,CAACgB,cAAc,CAIV;;ACxFxB,MAAMS,QAAQ,GAAGvd,IAAA;MAAC;IACvBL,GAAG;IACH6d,MAAM;IACNC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,SAAS;IACTC;GACc,GAAA7d,IAAA;EACd,IAAI,CAAC6d,SAAS,IAAI,CAACD,SAAS,EAAE;EAE9B,MAAM3O,MAAM,GAAGtP,GAAG,CACfC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACW,mBAAmB,CAAC;EAEzD,MAAMqB,MAAM,GAAGN,MAAM,CAACnT,KAAK,CAACqT,WAAW,CAAC;EAExC,IAAIE,SAAS,EAAE;IACb3O,MAAM,CACHrP,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAAC6U,MAAM,CAAC,CACZ3R,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACY,kBAAkB,CAAC,CACrD7c,IAAI,CAAC,IAAI,EAAE,MAAM4d,MAAM,CAAC,CAAC,CAAC,CAAC,CAC3B5d,IAAI,CAAC,IAAI,EAAE,MAAM4d,MAAM,CAACE,SAAS,CAAC,CAAC,CACnC9d,IAAI,CAAC,IAAI,EAAGuM,CAAS,IAAKjL,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACpR,CAAC,CAAC,CAAC,CAAC,CAChDvM,IAAI,CAAC,IAAI,EAAGuM,CAAS,IAAKjL,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACpR,CAAC,CAAC,CAAC,CAAC;;EAGrD,IAAIyR,SAAS,EAAE;IACb5O,MAAM,CACHrP,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACpC,KAAK,CAACC,IAAI,CAAC;MAAE/B,MAAM,EAAE4Y,SAAS,GAAG;KAAG,EAAE,CAAC5W,CAAC,EAAErC,KAAK,KAAKA,KAAK,CAAC,CAAC,CAChEyH,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACa,kBAAkB,CAAC,CACrD9c,IAAI,CAAC,IAAI,EAAE,CAACkH,CAAC,EAAErC,KAAa,KAAKvD,IAAI,CAACkC,KAAK,CAACoa,MAAM,CAAC/Y,KAAK,CAAW,CAAC,CAAC,CACrE7E,IAAI,CAAC,IAAI,EAAE,CAACkH,CAAC,EAAErC,KAAa,KAAKvD,IAAI,CAACkC,KAAK,CAACoa,MAAM,CAAC/Y,KAAK,CAAW,CAAC,CAAC,CACrE7E,IAAI,CAAC,IAAI,EAAE,MAAMsB,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACM,MAAM,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,CACzDje,IAAI,CAAC,IAAI,EAAE,MACVsB,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACM,MAAM,CAACA,MAAM,CAAC/Y,MAAM,GAAG,CAAC,CAAC,CAAW,CAAC,CACxD;;AAEP,CAAC;;;AChDD,AAEO,MAAMK,gBAAc,gBAAG1H,MAAM,CAACC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,yJAQvC;AAED,AAAO,MAAM4J,OAAK,gBAAG/J,MAAM,CAACC,GAAG,CAAAgK,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,iCAE9B;;ACHM,MAAM0H,gBAAc,GAAG,gBAAgB;AAE9C,AAAO,MAAMwY,SAAS,GAAG/d,IAAA;MAAC;IACxBjC,IAAI;IACJkL,IAAI;IACJuU,MAAM;IACNC,MAAM;IACNO,WAAW;IACXC;GACe,GAAAje,IAAA;EACf,MAAMke,SAAS,GAAG1e,MACT,CAACzB,IAAI,CAAC,CACZ6B,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAE0F,gBAAc,CAAC;EAChC,MAAM+G,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;;EAG7ByJ,IAAI,CAAC/B,OAAO,CAACC,KAAA;QAAC;MAAE2S;KAA8B,GAAA3S,KAAA;IAC5C+W,SAAS,CACNte,MAAM,CAAC,KAAK,CAAC,CACbuG,SAAS,CAAC,KAAK,CAAC,CAChB8C,IAAI,CAAC6Q,MAAM,CAAC,CACZ3N,IAAI,CAAC,KAAK,CAAC,CACXtM,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACc,uBAAuB,CAAC,CAC1D7Z,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BA,KAAK,CAAC,MAAM,EAAE,CAACgE,CAAC,EAAErC,KAAK,KAAK+Y,MAAM,CAAC/Y,KAAK,CAAC,GAAG,IAAI,CAAC,CACjD3B,KAAK,CAAC,KAAK,EAAEqJ,CAAC,IAAIoR,MAAM,CAACpR,CAAC,CAAC,GAAG,IAAI,CAAC,CACnChF,IAAI,CAAC,CAACgF,CAAS,EAAE1H,KAAK,EAAE6V,QAAa;MACpC,MAAMnT,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAACa,gBAAc;QAAC8H,SAAS,EAAE4O,mBAAmB,CAACe;SAC7CtY,oBAACkD,OAAK;QAACyF,SAAS,EAAE4O,mBAAmB,CAACgB;SACnCkB,WAAW,GAAGA,WAAW,CAAC5R,CAAC,EAAE1H,KAAK,EAAE6V,QAAQ,CAAC,GAAGjO,QAAM,CAACF,CAAC,CAAC,CACpD,CACO,CAClB;MAED,OAAOhF,IAAI;KACZ;;KAEAkT,IAAI,CAAC2D,SAAS,GAAGA,SAAS,GAAG5C,IAAI,CAAC;GACtC,CAAC;AACJ,CAAC;;;ACpDD,AAWO,MAAM5J,aAAW,GAAGzR,IAAA;MAAC;IAC1BL,GAAG;IACH5B,IAAI;IACJkL,IAAI,EAAEkV,OAAO;IACbV,MAAM;IACND,MAAM;IACNY,mBAAmB;IACnBC,oBAAoB;IACpBvM,aAAa;IACbwM,mBAAmB;IACnBC,cAAc;IACdC,cAAc;IACd7M,WAAW;IACXC,gBAAgB;IAChB6M,WAAW;IACXd;GACiB,GAAA3d,IAAA;EACjB,MAAM6B,SAAS,GACb8P,WAAW,IAAI3P,QAAQ,CAACiQ,aAAa,CAAC,MAAM,CAAC;EAC/C,MAAM3F,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;EAC7B,MAAMkf,SAAS,GAAGP,OAAO,CAACQ,MAAM,CAACxX,KAAA;IAAA,IAAC;MAAEyX;KAAY,GAAAzX,KAAA;IAAA,OAAK,CAACyX,UAAU;IAAC;EAEjE,MAAM3V,IAAI,GACR,OAAOqV,mBAAmB,KAAK,QAAQ,GACnC,CAACI,SAAS,CAACJ,mBAAmB,CAAC,CAAC,GAChCC,cAAc,GACd,CAACG,SAAS,CAAC,CAAC,CAAC,CAAC,GACdA,SAAS;EAEf,MAAM,CAACG,EAAE,EAAEC,EAAE,CAAC,GAAGrB,MAAM,CAAC1c,KAAK,EAAE;EAC/B,MAAM,CAACge,EAAE,EAAEC,EAAE,CAAC,GAAGxB,MAAM,CAACzc,KAAK,EAAE;EAE/B,MAAMke,WAAW,GAAGtf,GAAG,CACpBC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACiB,oBAAoB,CAAC;EAE1D,MAAMmC,SAAS,GAAGD,WAAW,CAC1Brf,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,OAAO,EAAEif,EAAE,GAAGD,EAAE,CAAC,CACtBhf,IAAI,CAAC,QAAQ,EAAEsB,IAAI,CAAC0a,GAAG,CAACkD,EAAE,GAAGC,EAAE,CAAC,CAAC,CACjCnf,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACmB,kBAAkB,CAAC,CACrDpd,IAAI,CAAC,WAAW,iBAAegf,EAAE,UAAKG,EAAE,MAAG,CAAC;EAE/C,MAAMG,SAAS,GAAGF,WAAW,CAC1Brf,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACkB,kBAAkB,CAAC,CACrDja,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;EAExB,MAAMqc,KAAK,GAAGzf,GAAG,CACdwG,SAAS,OAAK2V,mBAAmB,CAACK,aAAe,CAAC,CAClDkD,KAAK,EAAsB;EAE9B,MAAMC,OAAO,GAAGL,WAAW,CACxB9Y,SAAS,CAAC,QAAQ,CAAC,CACnB8C,IAAI,CAACyV,SAAS,CAACC,MAAM,CAAC9T,KAAA;IAAA,IAAC;MAAE0U;KAAe,GAAA1U,KAAA;IAAA,OAAK,CAAC0U,aAAa;IAAC,CAAC,CAC7DpT,IAAI,CAAC,QAAQ,CAAC,CACdtM,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACoB,oBAAoB,CAAC,CACvDrd,IAAI,CAAC,GAAG,EAAEue,mBAA6B,CAAC,CACxCve,IAAI,CAAC,MAAM,EAAEmL,KAAA;IAAA,IAAC;MAAEwU;KAAQ,GAAAxU,KAAA;IAAA,OAAKwU,MAAM,IAAI,MAAM;IAAC,CAC9C3f,IAAI,CAAC,QAAQ,EAAE6L,KAAA;IAAA,IAAC;MAAE8T;KAAQ,GAAA9T,KAAA;IAAA,OAAK8T,MAAM,IAAI,MAAM;IAAC,CAChDzc,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;EAExB,IAAI0c,cAAc,GAAyCjgB,MAAS,OAC9Dsc,mBAAmB,CAACqB,4BAA8B,CACvD;EAED,IAAIsC,cAAc,CAACC,IAAI,EAAE,KAAK,CAAC,EAAE;IAC/BD,cAAc,GAAGjgB,MACR,CAACqC,SAAS,CAAC,CACjBjC,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACqB,4BAA4B,CAAC;;EAGpE,IAAIvW,MAAM,GAA4C,IAAI;EAE1D,IAAI8L,SAAS,GAAG,KAAK;EAErB,MAAMC,UAAU,GAAIC,OAAiB;IACnCF,SAAS,GAAGG,OAAO,CAACD,OAAO,CAAC;IAC5B,MAAME,OAAO,GAAGJ,SAAS,GAAG,GAAG,GAAG,GAAG;IACrCyM,SAAS,CAACpc,KAAK,CAAC,SAAS,EAAE+P,OAAO,CAAC;IACnCwM,OAAO,CAACvc,KAAK,CAAC,SAAS,EAAE+P,OAAO,CAAC;IACjClM,MAAM,IAAIA,MAAM,CAAC7D,KAAK,CAAC,SAAS,EAAE+P,OAAO,CAAC;GAC3C;EAED,MAAM6M,SAAS,GAAItd,KAA8B;IAC/C,MAAM,CAACud,IAAI,EAAEC,IAAI,CAAC,GAAGrgB,OAAU,CAAC6C,KAAK,EAAEL,QAAQ,CAAC;IAChD,MAAM,CAAC8d,MAAM,CAAC,GAAGtgB,OAAU,CAAC6C,KAAK,EAAE6c,SAAS,CAAC;IAC7C,MAAM,CAACa,KAAK,EAAEC,KAAK,CAAC,GAAGxgB,OAAU,CAAC6C,KAAK,EAAEtE,IAAI,CAAC;IAC9C,MAAMyE,CAAC,GAAGsd,MAAM,IAAIA,MAAM,GAAGC,KAAK,CAAC;IACnC,MAAMjc,IAAI,GAAGic,KAAK,IAAIH,IAAI,GAAGG,KAAK,CAAC;IACnC,MAAME,SAAS,GAAG9e,IAAI,CAAC0a,GAAG,CAAC4B,MAAM,CAACyC,MAAM,CAAC1d,CAAC,CAAC,CAAC;IAC5C,MAAM2d,SAAS,GAAgD,EAAE;IAEjE,MAAMC,QAAQ,GAAItG,MAAyB;;;;;;MAOzC,OAAOA,MAAM,CAAC3Y,IAAI,CAACkf,KAAK,CAACJ,SAAS,CAAC,CAAC;KACrC;IAEDb,KAAK,CAAClY,OAAO,CAAC,CAACoZ,IAAI,EAAE5b,KAAK;MACxB,IAAIyL,GAAG,GAAG;QACR3N,CAAC,EAAE,CAAC;QACJyE,CAAC,EAAE;OACJ;MAED,IAAI,CAACqZ,IAAI,CAACC,YAAY,CAAC,GAAG,CAAC,IAAIpC,OAAO,CAACzZ,KAAK,CAAC,CAACka,UAAU,EAAE;QACxDuB,SAAS,CAACzb,KAAK,CAAC,GAAGyL,GAAG;QACtB;;MAGF,IAAI,CAACsO,WAAW,EAAE;QAChB,IAAI+B,SAAS,GAAG,CAAC;QACjB,IAAIC,GAAG,GAAGH,IAAI,CAACI,cAAc,EAAE;QAC/B,IAAIvN,MAAM,GAAG,IAAI;QAEjB,OAAO,IAAI,EAAE;UACXA,MAAM,GAAGhS,IAAI,CAACkf,KAAK,CAAC,CAACG,SAAS,GAAGC,GAAG,IAAI,CAAC,CAAC;UAC1CtQ,GAAG,GAAGmQ,IAAI,CAACK,gBAAgB,CAACxN,MAAM,CAAC;UAEnC,IAAI,CAACA,MAAM,KAAKsN,GAAG,IAAItN,MAAM,KAAKqN,SAAS,KAAKrQ,GAAG,CAAC3N,CAAC,KAAKA,CAAC,EAAE;YAC3D;;UAGF,IAAI2N,GAAG,CAAC3N,CAAC,GAAGA,CAAC,EAAE;YACbie,GAAG,GAAGtN,MAAM;WACb,MAAM,IAAIhD,GAAG,CAAC3N,CAAC,GAAGA,CAAC,EAAE;YACpBge,SAAS,GAAGrN,MAAM;WACnB,MAAM;YACL;;;QAIJgN,SAAS,CAACzb,KAAK,CAAC,GAAGyL,GAAG;OACvB,MAAM;QACL,MAAM,CAAC0O,EAAE,EAAEC,EAAE,CAAC,GAAGrB,MAAM,CAAC1c,KAAK,EAAE;QAC/B,MAAM8Y,UAAU,GAAGiF,EAAE,GAAGD,EAAE;QAC1B,MAAM+B,IAAI,GAAG/G,UAAU,GAAG8D,SAAS;QAEnCwC,SAAS,CAACzb,KAAK,CAAC,GAAG;UACjBlC,CAAC,EAAEqc,EAAE,GAAG1d,IAAI,CAACkC,KAAK,CAAC4c,SAAS,CAAC,GAAGW,IAAI;UACpC3Z,CAAC,EAAE,OAAOkX,OAAO,CAACzZ,KAAK,CAAC,CAACoV,MAAM,CAAC3Y,IAAI,CAACkC,KAAK,CAAC4c,SAAS,CAAC,CAAC,KAAK,QAAQ,GAC/DzC,MAAM,CAACW,OAAO,CAACzZ,KAAK,CAAC,CAACoV,MAAM,CAAC3Y,IAAI,CAACkC,KAAK,CAAC4c,SAAS,CAAC,CAAW,CAAC,GAC9D;SACL;;KAEJ,CAAC;IAEFX,OAAO,CACJzf,IAAI,CAAC,WAAW,EAAE,CAACghB,aAAa,EAAEnc,KAAK;MACtC,MAAM2B,KAAK,GAAG+Z,QAAQ,CAACS,aAAa,CAAC/G,MAAM,CAAC;MAE5C,OAAOqG,SAAS,CAACzb,KAAK,CAAC,IAAI2B,KAAK,GAC5B,YAAY,IAAI,CAACoY,WAAW,GAAGjc,CAAC,GAAG2d,SAAS,CAACzb,KAAK,CAAC,CAAClC,CAAC,CAAC,GAAG,GAAG,GAAG2d,SAAS,CAACzb,KAAK,CAAC,CAACuC,CAAC,GAAG,GAAG,GACvF,yBAAyB;KAC9B,CAAC,CACDpH,IAAI,CAAC,OAAO,EAAE+M,KAAA;MAAA,IAAC;QAAEkU;OAAiB,GAAAlU,KAAA;MAAA,OAAKkU,eAAe,IAAI,EAAE;MAAC;IAEhE,MAAMC,KAAK,GAAGrC,SAAS,CAACzU,GAAG,CAAC,CAAA+W,KAAA,EAAsBza,CAAC;MAAA,IAAtB;UAAEuT;SAAiB,GAAAkH,KAAA;QAANC,IAAI,GAAA9c,6BAAA,CAAA6c,KAAA,EAAA5c,WAAA;MAAA,OAAAE,QAAA,KACzC2c,IAAI;QACP5a,KAAK,EAAE+Z,QAAQ,CAACtG,MAAM,CAAC;QACvBoH,WAAW,EAAEf,SAAS,CAAC5Z,CAAC,CAAC,GAAGiX,MAAM,CAAC0C,MAAM,CAACC,SAAS,CAAC5Z,CAAC,CAAC,CAACU,CAAC,CAAC,GAAG;;KAC5D,CAAC;IAEH,MAAMka,SAAS,GAAGJ,KAAK,CAACK,KAAK,CAACC,KAAA;MAAA,IAAC;QAAEhb;OAAO,GAAAgb,KAAA;MAAA,OAAK/F,MAAM,CAACjV,KAAK,CAAC;MAAC;IAE3D,IAAI8a,SAAS,IAAIzO,SAAS,EAAE;MAC1BC,UAAU,EAAE;KACb,MAAM,IAAI,CAACD,SAAS,IAAI,CAACyO,SAAS,EAAE;MACnCxO,UAAU,CAAC,IAAI,CAAC;;IAGlB,MAAM2O,QAAQ,GAAGhP,MAAM,CAACiP,IAAI,CAACpB,SAAS,CAAC,CAACqB,MAAM,CAAC,CAACC,GAAG,EAAE7N,GAAG,EAAElP,KAAK;;MAC7D,MAAMkX,SAAS,IAAA8F,aAAA,GAAGX,KAAK,CAACxF,MAAM,CAACkG,GAAG,CAAC,CAAC,qBAAlBC,aAAA,CAAoBrb,KAAK;MAC3C,MAAMA,KAAK,IAAAsb,cAAA,GAAGZ,KAAK,CAACxF,MAAM,CAAC3H,GAAG,CAAC,CAAC,qBAAlB+N,cAAA,CAAoBtb,KAAK;MACvC,MAAMkZ,aAAa,GAAGpB,OAAO,oBAAPA,OAAO,CAAGzZ,KAAK,CAAC,CAAC6a,aAAa;MAEpD,OAAO7a,KAAK,KAAK,CAAC,IAAI4W,MAAM,CAACjV,KAAK,CAAC,IAAIkZ,aAAa,GAChDkC,GAAG,GACHnG,MAAM,CAACM,SAAS,CAAC,IAAIuE,SAAS,CAACsB,GAAG,CAAC,CAACxa,CAAC,GAAGkZ,SAAS,CAACvM,GAAG,CAAC,CAAC3M,CAAC,GACxD2M,GAAG,GACH6N,GAAG;KACR,EAAE,GAAG,CAAC;IAEP,MAAMG,UAAU,GACdhb,MAAM,IACNA,MAAM,CACH7D,KAAK,CAAC,MAAM,EAAE,CAACgE,CAAC,EAAER,CAAC;;MAClB,OAAO,CAACkY,WAAW,GAAM3a,IAAI,YAAA+d,cAAA,IAAAC,YAAA,GAAU3B,SAAS,CAAC5Z,CAAC,CAAC,qBAAZub,YAAA,CAActf,CAAC,YAAAqf,cAAA,GAAI,CAAC,QAAI;KAChE,CAAC,CACD9e,KAAK,CAAC,KAAK,EAAE,CAACgE,CAAC,EAAER,CAAC;;MACjB,MAAM7B,KAAK,GACT,OAAO4Z,mBAAmB,KAAK,QAAQ,GACnCA,mBAAmB,GACnBC,cAAc,GACd+C,QAAQ,GACR/a,CAAC;MAEP,OAAU,EAAAwb,kBAAA,IAAAC,gBAAA,GAAC7B,SAAS,CAACzb,KAAK,CAAC,qBAAhBsd,gBAAA,CAAkB/a,CAAC,YAAA8a,kBAAA,GAAI,CAAC,KAAKlC,IAAI,GAAGG,KAAK,CAAC;KACtD,CAAC,CACDvgB,MAAM,OAAKqc,mBAAmB,CAACgB,cAAgB,CAAC;IAErD,IAAIhL,aAAa,IAAIlL,MAAM,EAAE;MAC3BA,MAAM,CAACQ,IAAI,CAAC,CAACL,CAAC,EAAErC,KAAK;QACnB,OAAO2C,cAAc,CAACC,cAAc,CAClC/C,oBAACa,gBAAc;UAAC8H,SAAS,EAAE4O,mBAAmB,CAACe;WAC5C/K,aAAa,CAACiP,KAAK,EAAE;UACpBkB,MAAM,EAAE9gB,IAAI,CAACkC,KAAK,CAAC4c,SAAS,CAAC;UAC7BiC,MAAM,EAAExd,KAAK;UACb/E,GAAG;UACH0C;SACD,CAAC,CACa,CAClB;OACF,CAAC;KACH,MAAM;MACLuf,UAAU,IACRA,UAAU,CAACpV,IAAI,CAAC,CAACzF,CAAC,EAAER,CAAC;QACnB,MAAMF,KAAK,GAAG0a,KAAK,CAACxa,CAAC,CAAC,CAACF,KAAK;QAC5B,MAAM6a,WAAW,GAAGH,KAAK,CAACxa,CAAC,CAAC,CAAC2a,WAAW;QAExC,OAAO7C,oBAAoB,GACvBA,oBAAoB,CAAC6C,WAAW,EAAE7a,KAAK,CAAC,GACxCiG,QAAM,CAAC4U,WAAW,CAAC;OACxB,CAAC;;IAGN/B,SAAS,CAACtf,IAAI,CAAC,GAAG,EAAE;;MAClB,IAAIuM,CAAC,GAAG,GAAG,GAAG5J,CAAC,GAAG,GAAG,GAAGuc,EAAE;MAC1B3S,CAAC,IAAI,GAAG,GAAG5J,CAAC,GAAG,GAAG,IAAIgc,cAAc,GAAGQ,EAAE,GAAG,EAAAmD,mBAAA,GAAAhC,SAAS,CAACmB,QAAQ,CAAC,qBAAnBa,mBAAA,CAAqBlb,CAAC,KAAI,CAAC,CAAC;MACxE,OAAOmF,CAAC;KACT,CAAC;GACH;EAED8S,SAAS,CAAC3b,EAAE,CAAC,mBAAmB,EAAElB,KAAK;IACrCuE,MAAM,GAAG6Y,cAAc,CACpBtZ,SAAS,CAAC,KAAK,CAAC,CAChB8C,IAAI,CAACA,IAAI,CAAC,CACVkD,IAAI,CAAC,KAAK,CAAC,CACXtM,IAAI,CACH,OAAO,EACJic,mBAAmB,CAACsB,mBAAmB,UAAIxL,gBAAgB,IAAI,EAAE,CAAE,CACvE,CACA7O,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CACrBA,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BqE,IAAI,CAAC;MACJ,MAAMA,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAACa,gBAAc;QAAC8H,SAAS,EAAE4O,mBAAmB,CAACe;SAC7CtY,oBAACkD,OAAK;QAACyF,SAAS,EAAE4O,mBAAmB,CAACgB;QAAkB,CACzC,CAClB;MAED,OAAO1V,IAAI;KACZ,CAAC;IAEJuY,SAAS,CAACtd,KAAK,CAAC;GACjB,CAAC;EAEF6c,SAAS,CAAC3b,EAAE,CAAC,kBAAkB,EAAE;IAC/B/D,MAAS,OAAKsc,mBAAmB,CAACqB,4BAA8B,CAAC,CAC9DhX,SAAS,CAAC,GAAG,CAAC,CACdzG,MAAM,EAAE;IACXiT,UAAU,EAAE;GACb,CAAC;EAEFuM,SAAS,CAAC3b,EAAE,CAAC,qCAAqC,EAAEoc,SAAS,CAAC;AAChE,CAAC;;AC3QM,MAAMxf,MAAI,GAAGA,CAACpC,IAAwB,EAAEmG,KAAqB;EAClE,MAAM;IACJ+E,IAAI,EAAEyV,SAAS;IACf9X,MAAM;IACNqN,MAAM;IACNmO,oBAAoB;IACpBC,oBAAoB;IACpBC,WAAW;IACXC,WAAW;IACXrZ,KAAK;IACLsZ,YAAY;IACZC,YAAY;IACZ5E,SAAS;IACTD,SAAS;IACT8E,UAAU;IACV1E,WAAW;IACXC,SAAS;IACT0E,OAAO;IACPC,oBAAoB;IACpBxE,mBAAmB;IACnBC,oBAAoB;IACpBvM,aAAa;IACbyM,cAAc;IACdD,mBAAmB;IACnBE,cAAc;IACd/U,SAAS;IACToZ,YAAY;IACZC,UAAU;IACVlR,gBAAgB;IAChBmR,eAAe;IACfC,SAAS;IACTvE,WAAW;IACXwE;GACD,GAAG/e,KAAK;EAET,IAAInG,IAAI,KAAK,IAAI,IAAI2gB,SAAS,CAAC3Z,MAAM,EAAE;IACrC,MAAMkE,IAAI,GAAG0Z,OAAO,GAAGlH,WAAW,CAACiD,SAAS,CAAC,GAAGA,SAAS;IACzD,MAAM/J,SAAS,GAAGV,MAAM,GAAGA,MAAM,CAAC1M,GAAG,GAAG,CAAC;IACzC,MAAMqN,WAAW,GAAGX,MAAM,GAAGA,MAAM,CAACY,KAAK,GAAG,CAAC;IAC7C,MAAMC,YAAY,GAAGb,MAAM,GAAGA,MAAM,CAACc,MAAM,GAAG,CAAC;IAC/C,MAAMC,UAAU,GAAGf,MAAM,GAAGA,MAAM,CAACnQ,IAAI,GAAG,CAAC;IAC3C,MAAM;MAAElF,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,CAACwE,qBAAqB,EAAE;IACzD,MAAM3D,KAAK,GAAGsF,KAAK,CAACtF,KAAK,IAAI0D,SAAS;IACtC,MAAM/C,MAAM,GAAG2E,KAAK,CAAC3E,MAAM,IAAI,CAAC;IAChC,MAAM0B,KAAG,GACP,OAAOiD,KAAK,CAACjD,GAAG,KAAK,QAAQ,GACzBiD,KAAK,CAACjD,GAAG,GACTzB,GAAM,CAACyJ,IAAI,EAAEjJ,IAAA;MAAA,IAAC;QAAE8Z;OAAQ,GAAA9Z,IAAA;MAAA,OAAKR,GAAM,CAACsa,MAAkB,CAAC;MAAC;IAC9D,MAAM5Y,KAAG,GACP,OAAOgD,KAAK,CAAChD,GAAG,KAAK,QAAQ,GACzBgD,KAAK,CAAChD,GAAG,GACT1B,GAAM,CAACyJ,IAAI,EAAE9B,KAAA;MAAA,IAAC;QAAE2S;OAAQ,GAAA3S,KAAA;MAAA,OAAK3H,GAAM,CAACsa,MAAkB,CAAC;MAAC;IAE9D,MAAMna,GAAG,GAAGL,SAAS,CAACvB,IAAI,EAAEa,KAAK,EAAEW,MAAM,IAAI,CAAC,CAAC;IAE/C,MAAM2jB,MAAM,GAAG,CACb3jB,MAAM,GAAGoV,SAAS,GAAGG,YAAY,IAAI2N,YAAY,IAAI,CAAC,CAAC,EACvD9N,SAAS,CACV;IACD,MAAM6I,MAAM,GAAGhe,WACD,EAAE,CACb8K,MAAM,CAAC,CAACrJ,KAAG,IAAI,CAAC,EAAEC,KAAG,IAAI,CAAC,CAAC,CAAC,CAC5BH,KAAK,CAACmiB,MAAM,CAAC,CACbC,IAAI,EAAE;IAETN,YAAY,IAAIA,YAAY,CAACrF,MAAM,CAAC;IAEpC,MAAM4F,kBAAkB,GAAG,CAAC;IAC5B,MAAMC,SAAS,GAAG7jB,QAAW,CAACge,MAAM,CAAC,CAACnT,KAAK,CAAC+Y,kBAAkB,CAAC;IAE/Dd,WAAW,IAAIA,WAAW,CAACe,SAAS,CAAC;IAErC,MAAM3F,WAAW,GAAG2F,SAAS,CAACC,aAAa,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAMC,KAAK,GAAG5jB,GAAG,CACdC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACC,qBAAqB,CAAC,CACxDvE,IAAI,CAAC6L,SAAS,CAAC,CACf7L,IAAI,CAAC4K,oBAAoB,GAAGA,oBAAoB,GAAG/G,IAAI,CAAC;IAC3D,MAAM;MAAEzc,KAAK,EAAE4kB;KAAY,GAAGxI,iBAAiB,CAACuI,KAAK,CAAC;IAEtDA,KAAK,CAAC1jB,IAAI,CAAC,WAAW,kBAAemV,UAAU,GAAGwO,UAAU,UAAM,CAAC;IAEnE,IAAIC,eAAe,GAAG,CAAC;IAEvB,IAAIR,SAAS,EAAE;MACb,MAAMS,YAAY,GAAGlkB,GAAM,CAACyjB,SAAS,CAAC;MACtC,MAAMU,YAAY,GAAGnkB,GAAM,CAACyjB,SAAS,CAAC;MACtC,MAAMW,WAAW,GAAGpkB,WACN,EAAE,CACb8K,MAAM,CAAC,CAACoZ,YAAY,IAAI,CAAC,EAAEC,YAAY,IAAI,CAAC,CAAC,CAAC,CAC9C5iB,KAAK,CAACmiB,MAAM,CAAC,CACbC,IAAI,EAAE;MAET,MAAMU,eAAe,GAAGrkB,SAAY,CAACokB,WAAW,CAAC,CAACvZ,KAAK,CAAC+Y,kBAAkB,CAAC;MAC3E,MAAMU,UAAU,GAAGnkB,GAAG,CACnBC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAKic,mBAAmB,CAACC,qBAAqB,SAAID,mBAAmB,CAACE,oBAAsB,CAAC,CACzGxE,IAAI,CAACqM,eAAe,CAAC,CACrBrM,IAAI,CAAC4K,oBAAoB,GAAGA,oBAAoB,GAAG/G,IAAI,CAAC;MAE3D,CAAC;QAAEzc,KAAK,EAAE6kB;OAAiB,GAAGzI,iBAAiB,CAAC8I,UAAU,CAAC;MAE3DA,UAAU,CAACjkB,IAAI,CAAC,WAAW,kBAAejB,KAAK,GAAG6kB,eAAe,UAAM,CAAC;;;IAI1E,MAAM9F,SAAS,GACb/W,MAAM,IAAIA,MAAM,CAAC7B,MAAM,GACnB6B,MAAM,CAAC7B,MAAM,GAAG,CAAC,GACjBkE,IAAI,CAACuY,MAAM,CAAC,CAACC,GAAG,EAAA5W,KAAA;MAAA,IAAE;QAAEiP;OAAQ,GAAAjP,KAAA;MAAA,OAAK1J,IAAI,CAACD,GAAG,CAACugB,GAAG,EAAE3H,MAAM,CAAC/U,MAAM,CAAC;OAAE,CAAC,CAAC,GAAG,CAAC;IAE3E,MAAM0Y,MAAM,GAAGje,WACD,EAAE,CACb8K,MAAM,CAAC,CAAC,CAAC,EAAEqT,SAAS,CAAC,CAAC,CACtB5c,KAAK,CAAC,CACLiU,UAAU,GAAGwO,UAAU,IAAIhB,YAAY,IAAI,CAAC,CAAC,EAC7C5jB,KAAK,GAAG6kB,eAAe,GAAG7O,WAAW,CACtC,CAAC;IAEJ,MAAMmP,WAAW,GAAGvkB,UACP,CAACie,MAAM,CAAC,CAClB5G,UAAU,CAAExQ,KAAqB;;IAEhCO,MAAM,IAAIA,MAAM,CAAC7B,MAAM,GAAG,CAAC,GAAG6B,MAAM,CAACP,KAAK,CAAC,GAAG,CAAC,CAChD,CACAgE,KAAK,CAACsT,SAAS,CAAC;IAEnB,IAAI,OAAOoF,eAAe,KAAK,QAAQ,EAAE;MACvC,MAAM,CAAClE,EAAE,EAAEC,EAAE,CAAC,GAAGrB,MAAM,CAAC1c,KAAK,EAAE;MAC/B,MAAM8Y,UAAU,GAAGiF,EAAE,GAAGD,EAAE;MAE1BkF,WAAW,CACR1Z,KAAK,CAAClJ,IAAI,CAACkC,KAAK,CAACwW,UAAU,GAAGkJ,eAAe,CAAC,CAAC,CAC/CiB,aAAa,CAAC,CAAC,CAAC;;IAGrBzB,WAAW,IAAIA,WAAW,CAACwB,WAAW,CAAC;IAEvCxG,QAAQ,CAAC;MACP5d,GAAG;MACH6d,MAAM;MACNC,MAAM;MACNC,WAAW;MACXC,SAAS;MACTE,SAAS;MACTD;KACD,CAAC;IAEF,IAAI/W,KAAK,CAACod,OAAO,CAACrd,MAAM,CAAC,IAAIA,MAAM,CAAC7B,MAAM,GAAG,CAAC,EAAE;MAC9C,MAAMmf,KAAK,GAAGvkB,GAAG,CACdC,MAAM,CAAC,GAAG,CAAC,CACX4X,IAAI,CAAC6K,oBAAoB,GAAGA,oBAAoB,GAAGhH,IAAI,CAAC,CACxDxb,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACG,qBAAqB,CAAC,CACxDzE,IAAI,CAACuM,WAAW,CAAC;MAEpB,MAAM;QAAExkB,MAAM,EAAE4kB;OAAa,GAAGnJ,iBAAiB,CAACkJ,KAAK,CAAC;MAExDA,KAAK,CAACrkB,IAAI,CACR,WAAW,qBACKN,MAAM,GAAG4B,IAAI,CAAC6F,IAAI,CAACmd,WAAW,CAAC,GAAGrP,YAAY,OAAG,CAClE;;IAGH,MAAMwL,MAAI,GAAG9gB,IACN,EAAE,CACN4kB,OAAO,CAAChY,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACxB5J,CAAC,CAAC,CAACuE,CAAC,EAAErC,KAAK,KAAK+Y,MAAM,CAAC/Y,KAAK,CAAC,CAAC,CAC9BuC,CAAC,CAAEmF,CAAU,IAAKoR,MAAM,CAACpR,CAAmB,CAAC,CAAC,CAC9ClD,KAAK,CAACA,KAAK,IAAI1J,WAAc,CAAC;IAEjCsjB,UAAU,IAAIA,UAAU,CAACxC,MAAI,CAAC;IAE9B,MAAM+D,SAAS,GAAGpb,IAAI,CAACqb,IAAI,CAACtZ,KAAA;MAAA,IAAC;QAAEuZ;OAAM,GAAAvZ,KAAA;MAAA,OAAKuZ,IAAI;MAAC;IAE/C,IAAIF,SAAS,EAAE;MACb,IAAIG,SAAS,GAAG,CAAC,CAAC;MAElB,MAAMC,OAAO,GAAIrY,CAAgB;QAC/B,MAAM;UAAEsY;SAAe,GAAGtY,CAAC;QAC3B,MAAMuY,OAAO,GAAGnH,MAAM,CAACnT,KAAK,EAAE,CAAC,CAAC,CAAC;QAEjC,OAAO7K,IACA,EAAE,CACN4kB,OAAO,CAAChY,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACxB5J,CAAC,CAAC,CAACuE,CAAC,EAAErC,KAAK,KAAK+Y,MAAM,CAAC/Y,KAAK,CAAC,CAAC,CAC9BkgB,EAAE,CAAC,CAACve,KAAc,EAAE3B,KAAK;UACxB,IAAIA,KAAK,KAAK,CAAC,EAAE;YACf8f,SAAS,GAAGA,SAAS,GAAG,CAAC;;UAG3B,IAAIxa,QAAQ,GAAW2a,OAAO;UAE9B,IAAID,aAAa,IAAI,OAAOA,aAAa,CAAChgB,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC7DsF,QAAQ,GAAG0a,aAAa,CAAChgB,KAAK,CAAC,IAAIsF,QAAQ;WAC5C,MAAM,IAAI0a,aAAa,EAAE;YACxB1a,QAAQ,GAAGwT,MAAM,CACdxT,QAAQ,GAAI3D,KAAmC,CACjD;;UAGH,MAAMwe,QAAQ,GAAG5b,IAAI,CAACub,SAAS,CAAC;UAEhC,OAAO7B,OAAO,GACV6B,SAAS,GAAG,CAAC,CAAC,GACZhH,MAAM,CACJ,OAAOqH,QAAQ,CAAC/K,MAAM,CAACpV,KAAK,CAAC,KAAK,QAAQ,GACtC,CAAC,GACAmgB,QAAQ,CAAC/K,MAAM,CAACpV,KAAK,CAAY,CACvC,GACD8Y,MAAM,CAACxT,QAAQ,CAAC,GAClBwT,MAAM,CAACxT,QAAQ,CAAC;SACrB,CAAC,CACD+U,EAAE,CAAE3S,CAAU,IAAKoR,MAAM,CAACpR,CAAmB,CAAC,CAAC,CAC/ClD,KAAK,CAAC8Z,SAAS,IAAI9Z,KAAK,IAAI1J,WAAc,CAAC;OAC/C;MAEDG,GAAG,CACAC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACM,oBAAoB,CAAC,CACvDjW,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACA,IAAI,CAAC0V,MAAM,CAACjT,KAAA;QAAA,IAAC;UAAE6Y;SAAM,GAAA7Y,KAAA;QAAA,OAAKmH,OAAO,CAAC0R,IAAI,CAAC;QAAC,CAAC,CAC9CpY,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACO,aAAa,CAAC,CAChDxc,IAAI,CAAC,GAAG,EAAGuM,CAAgB;QAC1B,MAAM0Y,IAAI,GAAGL,OAAO,CAACrY,CAAC,CAAC;QAEvB,OAAO0Y,IAAI,CAAE1Y,CAAC,CAAC0N,MAAwC,CAAC;OACzD,CAAC,CACDja,IAAI,CAAC,MAAM,EAAE+M,KAAA;QAAA,IAAC;UAAE2X;SAAM,GAAA3X,KAAA;QAAA,OAAK2X,IAAI,IAAI,MAAM;QAAC,CAC1C1kB,IAAI,CAAC,OAAO,EAAEmhB,KAAA;QAAA,IAAC;UAAE+D;SAAW,GAAA/D,KAAA;QAAA,OAAK+D,SAAS,IAAI,EAAE;QAAC;;IAGtDplB,GAAG,CACAC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACI,oBAAoB,CAAC,CACvD/V,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACA,IAAI,CAAC,CACVkD,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACK,aAAa,CAAC,CAChDtc,IAAI,CAAC,GAAG,EAAGuM,CAAsB,IAAKkU,MAAI,CAAClU,CAAC,CAAC0N,MAAM,CAAC,CAAC,CACrDja,IAAI,CAAC,QAAQ,EAAEwhB,KAAA;MAAA,IAAC;QAAE7B;OAAQ,GAAA6B,KAAA;MAAA,OAAK7B,MAAM,IAAI,WAAW;MAAC,CACrD3f,IAAI,CAAC,OAAO,EAAEmlB,KAAA;MAAA,IAAC;QAAEjiB;OAAO,GAAAiiB,KAAA;MAAA,OAAKjiB,KAAK,IAAI,EAAE;MAAC;IAE5C,MAAMkiB,IAAI,GAAGhc,IAAI,CAAC0V,MAAM,CAACuG,KAAA;MAAA,IAAC;QAAEC;OAAK,GAAAD,KAAA;MAAA,OAAKC,GAAG;MAKrC;IAEJ,IAAIF,IAAI,CAAClgB,MAAM,GAAG,CAAC,EAAE;MACnB,MAAMqgB,UAAU,GAAGzlB,GAAG,CACnBC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACQ,4BAA4B,CAAC;MAElE2I,IAAI,CAAC/d,OAAO,CAACwF,IAAI;QACf,MAAM;UAAEoN,MAAM;UAAEqL;SAAK,GAAGzY,IAAI;QAC5B,MAAM;UAAE7G,MAAM;UAAE9C,KAAK;UAAE4b;SAAQ,GAAGwG,GAAG;QAErC,MAAME,SAAS,GAAGD,UAAU,CACzBxlB,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACS,mBAAmB,CAAC;QAEzD8I,SAAS,CACNlf,SAAS,CAAC,QAAQ,CAAC,CACnB8C,IAAI,CAAC6Q,MAAM,CAAC,CACZ3N,IAAI,CAAC,QAAQ,CAAC,CACdtM,IAAI,CAAC,IAAI,EAAE,CAACkH,CAAC,EAAErC,KAAK,KAAK+Y,MAAM,CAAC/Y,KAAK,CAAC,CAAC,CACvC7E,IAAI,CAAC,OAAO,EAAEic,mBAAmB,CAACU,YAAY,CAAC,CAC/C3c,IAAI,CAAC,IAAI,EAAEuM,CAAC,IAAIoR,MAAM,CAACpR,CAAmB,CAAC,CAAC,CAC5CvM,IAAI,CAAC,GAAG,EAAEgG,MAAM,IAAI,CAAC,CAAC,CACtBhG,IAAI,CAAC,OAAO,EAAEkD,KAAK,IAAI,EAAE,CAAC;QAE7B,IAAI4b,MAAM,EAAE;UACV0G,SAAS,CACNlf,SAAS,CAAC,QAAQ,CAAC,CACnB1G,MAAM,CAAC,CAACsH,CAAC,EAAER,CAAC,EAAEyQ,CAAC,KAAM2H,MAAM,CAACjS,IAAI,EAAEnG,CAAC,EAAEyQ,CAAC,CAAC,GAAGA,CAAC,CAACzQ,CAAC,CAAC,GAAG,IAAK,CAAC,CACvD7G,MAAM,EAAE;;OAEd,CAAC;;IAGJF,MAAS,CAACzB,IAAI,CAAC,CACZ0B,MAAM,OAAK8F,gBAAgB,CAAC,CAC5B7F,MAAM,EAAE;IACXgjB,UAAU,IACR3E,SAAS,CAAC;MAAEhgB,IAAI;MAAEkgB,SAAS;MAAEhV,IAAI;MAAEuU,MAAM;MAAEC,MAAM;MAAEO;KAAa,CAAC;IAEnE,IAAI4E,oBAAoB,EAAE;MACxBnR,aAAW,CAAC;QACV+M,cAAc;QACdD,cAAc;QACdzM,aAAa;QACbwM,mBAAmB;QACnBD,oBAAoB;QACpBtgB,IAAI;QACJ4B,GAAG;QACHsJ,IAAI;QACJwU,MAAM;QACND,MAAM;QACNY,mBAAmB;QACnBxM,gBAAgB;QAChB6M,WAAW;QACXd;OACD,CAAC;;IAGJlU,SAAS,IAAIA,SAAS,CAAC;MAAE9J,GAAG;MAAE6d,MAAM;MAAEC;KAAQ,CAAC;;AAEnD,CAAC;;MCzTY6H,SAAS,GAAwBphB,KAAK;EACjD,MAAM;IAAEgJ,SAAS;IAAEnK,KAAK;IAAEkB;GAAU,GAAGC,KAAK;EAC5C,MAAM,CAAChG,GAAG,EAAEH,IAAI,CAAC,GAAGD,OAAO,EAAE;EAE7BoB,SAAS,CAAC;IACRnB,IAAI,IAAIoC,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;GAC1B,EAAE,CAACnG,IAAI,EAAEmG,KAAK,CAAC,CAAC;EAEjB,MAAMkJ,MAAM,GAAGA,MAAMjN,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;EAEtCvF,SAAS,CAACuF,KAAK,CAACtF,KAAK,EAAEwO,MAAM,CAAC;EAE9B,OACE7I;IAAK2I,SAAS,EAAEA,SAAS;IAAEnK,KAAK,EAAEA;KAChCwB,oBAAC8Y,aAAa,OAAG,EACjB9Y,oBAACyE,YAAU;IAAC9K,GAAG,EAAEA;KAAM+F,QAAQ,CAAc,CACzC;AAEV,CAAC;AAEDqhB,SAAS,CAAC9gB,YAAY,GAAG;EACvByE,IAAI,EAAE,EAAE;EACRrC,MAAM,EAAE,EAAE;EACVrH,MAAM,EAAE,GAAG;EACXijB,YAAY,EAAE,EAAE;EAChBC,YAAY,EAAE,EAAE;EAChBxO,MAAM,EAAE;IACN1M,GAAG,EAAE,EAAE;IACPsN,KAAK,EAAE,EAAE;IACTE,MAAM,EAAE,EAAE;IACVjR,IAAI,EAAE;GACP;EACDsa,mBAAmB,EAAE,CAAC;EACtBG,cAAc,EAAE;CACjB;;ACxCM,MAAMgH,uBAAuB,GAAG;EACrCC,mBAAmB,EAAE,qBAAqB;EAC1CC,YAAY,EAAE,cAAc;EAC5BC,mBAAmB,EAAE,qBAAqB;EAC1CC,YAAY,EAAE;CACf;AAED,AAAO,MAAMC,SAAS,GAAG5lB,IAAA;MAAC;IACxBL,GAAG;IACHkmB,QAAQ;IACR5kB,GAAG;IACHuc,MAAM;IACNC,MAAM;IACNvU,KAAK;IACL4c;GACe,GAAA9lB,IAAA;EACf,IAAI+lB,cAAc,GAAG,IAAI;EACzB,IAAIC,cAAc,GAAG,IAAI;EACzB,IAAIlB,MAAI,GAAqC,IAAI;EAEjD,MAAMxE,MAAI,GAAG9gB,IACN,EAAE,CACN4kB,OAAO,CAAChY,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACxB5J,CAAC,CACA,CAACuE,CAAC,EAAErC,KAAK,KACN+Y,MAAM,CAAE/Y,KAA2B,CAAY,GAAGuhB,SAAS,GAAG,CAAC;;GAGnEhf,CAAC,CAAEmF,CAAS,IAAKoR,MAAM,CAACpR,CAAC,CAAC,CAAC,CAC3BlD,KAAK,CAACA,KAAK,IAAI1J,WAAc,CAAC;EACjC,MAAMymB,SAAS,GAAGxI,MAAM,CAACwI,SAAS,EAAE;EAEpC,MAAMC,SAAS,GAAGL,QAAQ,CAAClH,MAAM,CAACxX,KAAA;IAAA,IAAC;MAAEgf;KAAU,GAAAhf,KAAA;IAAA,OAAKgf,QAAQ,KAAK,MAAM;IAAC;EACxE,MAAMC,SAAS,GAAGP,QAAQ,CAAClH,MAAM,CAAC9T,KAAA;IAAA,IAAC;MAAEsb;KAAU,GAAAtb,KAAA;IAAA,OAAKsb,QAAQ,KAAK,MAAM;IAAC;EAExE,IAAID,SAAS,CAACnhB,MAAM,GAAG,CAAC,EAAE;IACxBghB,cAAc,GAAGpmB,GAAG,CACjBC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAE0lB,uBAAuB,CAACC,mBAAmB,CAAC,CAC1Drf,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACid,SAAS,CAAC,CACf/Z,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAE0lB,uBAAuB,CAACE,YAAY,CAAC,CACnD5lB,IAAI,CAAC,GAAG,EAAGuM,CAAmB,IAC7BkU,MAAI,CAAClU,CAAC,CAAC0N,MAAoC,CAAC,CAC7C,CACAja,IAAI,CAAC,QAAQ,EAAEmL,KAAA;MAAA,IAAC;QAAEwU;OAAQ,GAAAxU,KAAA;MAAA,OAAKwU,MAAM,IAAI,EAAE;MAAC,CAC5C3f,IAAI,CAAC,MAAM,EAAE6L,KAAA;MAAA,IAAC;QAAE6Y;OAAM,GAAA7Y,KAAA;MAAA,OAAK6Y,IAAI,IAAI,MAAM;MAAC;;EAG/C,IAAI6B,SAAS,CAACrhB,MAAM,GAAG,CAAC,EAAE;IACxB,IAAIyf,SAAS,GAAG,CAAC,CAAC;IAElBM,MAAI,GAAGtlB,IACA,EAAE,CACNgD,CAAC,CACA,CAACuE,CAAC,EAAErC,KAAK,KACN+Y,MAAM,CAAE/Y,KAA2B,CAAY,GAAGuhB,SAAS,GAAG,CAAC,CACnE,CACArB,EAAE,CAAC,CAAC7d,CAAC,EAAErC,KAAK;MACX,IAAIA,KAAK,KAAK,CAAC,EAAE;QACf8f,SAAS,GAAGA,SAAS,GAAG,CAAC;;MAG3B,OAAOsB,WAAW,GACdtB,SAAS,GAAG,CAAC,CAAC,GACZhH,MAAM,CACJ,OAAOqI,QAAQ,CAACrB,SAAS,CAAC,CAAC1K,MAAM,CAACpV,KAAK,CAAC,KAAK,QAAQ,GACjD,CAAC,GACAmhB,QAAQ,CAACrB,SAAS,CAAC,CAAC1K,MAAM,CAACpV,KAAK,CAAY,CAClD,GACD8Y,MAAM,CAACvc,GAAa,CAAC,GACvBuc,MAAM,CAACvc,GAAa,CAAC;KAC1B;;KAEA8d,EAAE,CAAC3S,CAAC,IAAIoR,MAAM,CAACpR,CAAC,CAAC,CAAC,CAClBlD,KAAK,CAACA,KAAK,IAAI1J,WAAc,CAAC;IAEjCwmB,cAAc,GAAGrmB,GAAG,CACjBC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAE0lB,uBAAuB,CAACG,mBAAmB,CAAC,CAC1Dvf,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACmd,SAAS,CAAC,CACfja,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAE0lB,uBAAuB,CAACI,YAAY,CAAC,CACnD9lB,IAAI,CAAC,GAAG,EAAGuM,CAAyB,IAAK0Y,MAAI,IAAIA,MAAI,CAAC1Y,CAAC,CAAC0N,MAAM,CAAC,CAAC,CAChEja,IAAI,CAAC,MAAM,EAAE+M,KAAA;MAAA,IAAC;QAAE2X;OAAM,GAAA3X,KAAA;MAAA,OAAK2X,IAAI,IAAI,MAAM;MAAC;;EAG/C,OAAO;IACLyB,cAAc;IACdD,cAAc;UACdjB;GACD;AACH,CAAC;;;ACnGD,AAMA,MAAMuB,iBAAiB,GAAG;EACxBC,iBAAiB,EAAE,mBAAmB;EACtCC,sBAAsB,EAAE,wBAAwB;EAChDC,mBAAmB,EAAE,qBAAqB;EAC1CC,oBAAoB,EAAE,sBAAsB;EAC5CC,eAAe,EAAE,iBAAiB;EAClCC,mBAAmB,EAAE,qBAAqB;EAC1CC,sBAAsB,EAAE,wBAAwB;EAChDC,wBAAwB,EAAE,0BAA0B;EACpDC,gBAAgB,EAAE,kBAAkB;EACpCC,iBAAiB,EAAE,mBAAmB;EACtCC,mBAAmB,EAAE,qBAAqB;EAC1CC,oBAAoB,EAAE;CACvB;AAED,MAAMC,eAAe,GAAG;EACtBC,sBAAsB,EAAE,wBAAwB;EAChDC,iBAAiB,EAAE,mBAAmB;EACtCC,aAAa,EAAE;CAChB;AAED,MAAaC,kBAAkB,gBAAAhjB,QAAA;EAC7BijB,iBAAiB,EAAE,mBAAmB;EACtCC,oBAAoB,EAAE,sBAAsB;EAC5CC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,qBAAqB,EAAE,uBAAuB;EAC9CC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,mBAAmB;EACtCC,qBAAqB,EAAE,uBAAuB;EAC9CC,qBAAqB,EAAE,uBAAuB;EAC9CC,iBAAiB,EAAE,mBAAmB;EACtCC,iBAAiB,EAAE;AAAmB,GACnC5B,iBAAiB,EACjBa,eAAe,EACf3B,uBAAuB,CAC3B;AAED,AAAO,MAAMvc,YAAU,gBAAGtL,MAAM,CAACD,OAAO,CAAC,CAAAG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,4pBAC5BmC,IAAA;EAAA,IAAC;IAAEkoB;GAAY,GAAAloB,IAAA;EAAA,OAAKkoB,UAAU,IAAI,cAAc;AAAA,GAC5C/gB,KAAA;EAAA,IAAC;IAAE+gB;GAAY,GAAA/gB,KAAA;EAAA,OAAK+gB,UAAU,IAAI,MAAM;AAAA,GAC9Crd,KAAA;EAAA,IAAC;IAAEqd;GAAY,GAAArd,KAAA;EAAA,OAAKqd,UAAU,IAAI,MAAM;AAAA,GAO9CZ,kBAAkB,CAACO,iBAAiB,EACpCP,kBAAkB,CAACU,iBAAiB,EAIpCV,kBAAkB,CAAChB,iBAAiB,EAGpCgB,kBAAkB,CAAChB,iBAAiB,EAKpCgB,kBAAkB,CAAC9B,mBAAmB,EAMtC8B,kBAAkB,CAAC7B,YAAY,EAI/B6B,kBAAkB,CAAC3B,YAAY,EAI/B2B,kBAAkB,CAACW,iBAAiB,CAQxC;AAED,AAAO,MAAM5K,eAAa,gBAAGC,iBAAiB,CAAA3V,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,6LACzCypB,kBAAkB,CAACb,oBAAoB,EAIrCa,kBAAkB,CAACX,mBAAmB,CAOd;;ACjGxB,MAAMwB,YAAY,GAAGA,CAACpqB,IAAwB,EAAEmG,KAAoB;EACzE,MAAMkkB,OAAO,GAAGlmB,MAAM,CAAU,KAAK,CAAC;EACtC,MAAMV,MAAM,GAAGU,MAAM,CAAS,CAAC,CAAC;EAChC,MAAM+Y,SAAS,GAAG/Y,MAAM,EAA8B;EAEtD,MAAMmmB,cAAc,GAAGlqB,WAAW,CAAC;IACjC,IAAIJ,IAAI,IAAIkd,SAAS,CAAC9Y,OAAO,EAAE;MAC7BimB,OAAO,CAACjmB,OAAO,GAAG,KAAK;MAEvBpE,IAAI,CAACuqB,WAAW,CAACrN,SAAS,CAAC9Y,OAAO,CAAC;MAEnC8Y,SAAS,CAAC9Y,OAAO,GAAGlD,SAAS;;GAEhC,EAAE,CAAClB,IAAI,CAAC,CAAC;EAEV,MAAMwqB,cAAc,GAAGpqB,WAAW,CAAEqqB,CAAM;IACxC,MAAM3kB,OAAO,GAAGgP,OAAO,CAAC2V,CAAC,CAAC7lB,OAAO,CAAC;IAElC6lB,CAAC,CAACC,eAAe,EAAE;IAEnB,IAAI1qB,IAAI,IAAIyqB,CAAC,CAACE,KAAK,KAAK,CAAC,EAAE;MAAA,IAAAC,oBAAA,EAAAC,aAAA,EAAAC,WAAA;MACzBR,cAAc,EAAE;MAEhBpN,SAAS,CAAC9Y,OAAO,GAAGH,QAAQ,CAACkU,aAAa,CAAC,KAAK,CAAC;MACjD+E,SAAS,CAAC9Y,OAAO,CAAC2mB,YAAY,CAAC,OAAO,EAAExB,kBAAkB,CAACW,iBAAiB,CAAC;MAC7EhN,SAAS,CAAC9Y,OAAO,CAAC2mB,YAAY,CAAC,OAAO,6BAAAH,oBAAA,IAAAC,aAAA,GAAyB1kB,KAAK,CAAC+P,MAAM,qBAAZ2U,aAAA,CAAc7T,MAAM,YAAA4T,oBAAA,GAAI,CAAC,SAAK,CAAC;MAE9F5qB,IAAI,CAAC+c,WAAW,CAACG,SAAS,CAAC9Y,OAAO,CAAC;MAEnCimB,OAAO,CAACjmB,OAAO,GAAG,IAAI;MACtBX,MAAM,CAACW,OAAO,GAAG0B,OAAO,GACnB,EAAAglB,WAAA,GAAAL,CAAC,CAAC7lB,OAAO,CAAC,CAAC,CAAC,qBAAZkmB,WAAA,CAAcE,KAAK,IAAIhrB,IAAI,CAACirB,UAA0B,CAACzmB,qBAAqB,EAAE,CAACuB,IAAI,GACpF0kB,CAAC,CAACS,OAAO;MACbhO,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACmmB,OAAO,GAAG,OAAO;MACzCjO,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACnE,KAAK,GAAG,KAAK;MACrCqc,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACe,IAAI,GAAMtC,MAAM,CAACW,OAAO,OAAI;;GAEvD,EAAE,CAACpE,IAAI,CAAC,CAAC;EAEV,MAAMqP,MAAM,GAAGjP,WAAW,CAAEqqB,CAAM;IAChC,MAAM3kB,OAAO,GAAGgP,OAAO,CAAC2V,CAAC,CAAC7lB,OAAO,CAAC;IAElC6lB,CAAC,CAACC,eAAe,EAAE;IAEnB,IAAI1qB,IAAI,IAAIqqB,OAAO,CAACjmB,OAAO,IAAI8Y,SAAS,CAAC9Y,OAAO,EAAE;MAAA,IAAAgnB,YAAA;MAChD,MAAM7mB,SAAS,GAAIvE,IAAI,CAACirB,UAA0B,CAACzmB,qBAAqB,EAAE,CAAC3D,KAAK;MAChF,MAAMqqB,OAAO,GAAGplB,OAAO,GAClB,EAAAslB,YAAA,GAAAX,CAAC,CAAC7lB,OAAO,CAAC,CAAC,CAAC,qBAAZwmB,YAAA,CAAcJ,KAAK,IAAIhrB,IAAI,CAACirB,UAA0B,CAACzmB,qBAAqB,EAAE,CAACuB,IAAI,GACpF0kB,CAAC,CAACS,OAAO;MACb,MAAMG,QAAQ,GAAGH,OAAO,GAAGznB,MAAM,CAACW,OAAO;MAEzC,IAAI8mB,OAAO,IAAI,CAAC,EAAE;QAChB,IAAIG,QAAQ,GAAG,CAAC,EAAE;UAChBnO,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACiS,UAAU,GAAG,KAAK;UAC1CiG,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACnE,KAAK,GAAGqqB,OAAO,IAAI3mB,SAAS,GAAM8mB,QAAQ,UAAU9mB,SAAS,GAAGd,MAAM,CAACW,OAAO,OAAI;SAC3G,MAAM;UACL8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAAC8R,KAAK,GAAMvS,SAAS,GAAGd,MAAM,CAACW,OAAO,OAAI;UACjE8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACnE,KAAK,GAAMuC,IAAI,CAAC0a,GAAG,CAACuN,QAAQ,CAAC,OAAI;UACzDnO,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACiS,UAAU,GAAMoU,QAAQ,OAAI;;;MAIxD,IAAIvlB,OAAO,EAAE;QACX,IAAI9F,IAAI,CAACsrB,UAAU,GAAGb,CAAC,CAAC7lB,OAAO,CAAC,CAAC,CAAC,CAAComB,KAAK,EAAE;UACxC9N,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAAC8R,KAAK,GAAMvS,SAAS,GAAGd,MAAM,CAACW,OAAO,OAAI;UACjE8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACnE,KAAK,GAAM4C,MAAM,CAACW,OAAO,OAAI;UACrD8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACiS,UAAU,SAAOxT,MAAM,CAACW,OAAO,OAAI;;;;GAIlE,EAAE,CAACpE,IAAI,CAAC,CAAC;EAEV,MAAMurB,YAAY,GAAGnrB,WAAW,CAAEqqB,CAAM;IACtC,IAAIJ,OAAO,CAACjmB,OAAO,IAAIpE,IAAI,IAAIkd,SAAS,CAAC9Y,OAAO,EAAE;MAChD,IAAIpE,IAAI,CAACsrB,UAAU,GAAGb,CAAC,CAACO,KAAK,EAAE;QAC7B,MAAMzmB,SAAS,GAAIvE,IAAI,CAACirB,UAA0B,CAACzmB,qBAAqB,EAAE,CAAC3D,KAAK;QAEhFqc,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAAC8R,KAAK,GAAMvS,SAAS,GAAGd,MAAM,CAACW,OAAO,OAAI;QACjE8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACnE,KAAK,GAAM4C,MAAM,CAACW,OAAO,OAAI;QACrD8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACiS,UAAU,SAAOxT,MAAM,CAACW,OAAO,OAAI;;MAG7D,IAAIpE,IAAI,CAACsrB,UAAU,GAAGtrB,IAAI,CAACwrB,WAAW,GAAGf,CAAC,CAACO,KAAK,EAAE;QAChD,MAAMzmB,SAAS,GAAIvE,IAAI,CAACirB,UAA0B,CAACzmB,qBAAqB,EAAE,CAAC3D,KAAK;QAEhFqc,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACe,IAAI,GAAMtC,MAAM,CAACW,OAAO,OAAI;QACpD8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACnE,KAAK,GAAM0D,SAAS,GAAGd,MAAM,CAACW,OAAO,OAAI;QACjE8Y,SAAS,CAAC9Y,OAAO,CAACY,KAAK,CAACiS,UAAU,GAAG,KAAK;;;GAG/C,EAAE,CAACjX,IAAI,CAAC,CAAC;EAEV,MAAMyrB,aAAa,GAAGrrB,WAAW,CAAC;IAChC,IAAIJ,IAAI,IAAIkd,SAAS,CAAC9Y,OAAO,EAAE;MAC7B,MAAMG,SAAS,GAAIvE,IAAI,CAACirB,UAA0B,CAACzmB,qBAAqB,EAAE,CAAC3D,KAAK;MAChF,MAAM6qB,aAAa,GAAGxO,SAAS,CAAC9Y,OAAO,CAACknB,UAAU,IAAI,CAAC,GACnDpO,SAAS,CAAC9Y,OAAO,CAACknB,UAAU,IAAI/mB,SAAS,GAAG2Y,SAAS,CAAC9Y,OAAO,CAACknB,UAAU,GAAG/mB,SAAS,GACpF,CAAC;MACL,MAAMonB,cAAc,GAAGzO,SAAS,CAAC9Y,OAAO,CAACI,qBAAqB,EAAE,CAACsS,KAAK,GAAGoG,SAAS,CAAC9Y,OAAO,CAACI,qBAAqB,EAAE,CAACuB,IAAI;MACvH,MAAM6lB,aAAa,GAAG1O,SAAS,CAAC9Y,OAAO,CAACknB,UAAU,GAAGK,cAAc,IAAIpnB,SAAS,GAC5E2Y,SAAS,CAAC9Y,OAAO,CAACknB,UAAU,GAAGK,cAAc,IAAI,CAAC,GAAGzO,SAAS,CAAC9Y,OAAO,CAACknB,UAAU,GAAGK,cAAc,GAAG,CAAC,GACtGpnB,SAAS;MACb,MAAMrB,GAAG,GAAGE,IAAI,CAACkC,KAAK,CAAComB,aAAa,CAAC;MACrC,MAAMvoB,GAAG,GAAGC,IAAI,CAACkC,KAAK,CAACsmB,aAAa,CAAC;MAErC,IAAIzoB,GAAG,GAAGD,GAAG,GAAG,CAAC,IAAIiD,KAAK,CAAC0lB,QAAQ,EAAE;QACnC1lB,KAAK,CAAC0lB,QAAQ,CAAC,CAAC3oB,GAAG,EAAEC,GAAG,CAAC,CAAC;;;IAI9BmnB,cAAc,EAAE;GACjB,EAAE,CAACtqB,IAAI,EAAEsqB,cAAc,CAAC,CAAC;EAE1BnpB,SAAS,CAAC;IACR,IAAInB,IAAI,EAAE;MACRA,IAAI,CAAC8rB,UAAU,CAAC3iB,OAAO,CAAE4iB,KAAK;QAC3BA,KAAqB,CAAC/mB,KAAK,CAACgnB,UAAU,GAAG,MAAM;OACjD,CAAC;MAEFhsB,IAAI,CAACqB,gBAAgB,CAAC,WAAW,EAAEmpB,cAAc,CAAC;MAClDxqB,IAAI,CAACqB,gBAAgB,CAAC,YAAY,EAAEmpB,cAAc,CAAC;MACnDxqB,IAAI,CAACqB,gBAAgB,CAAC,WAAW,EAAEgO,MAAM,CAAC;MAC1CrP,IAAI,CAACqB,gBAAgB,CAAC,WAAW,EAAEgO,MAAM,CAAC;MAC1CrP,IAAI,CAACqB,gBAAgB,CAAC,YAAY,EAAEkqB,YAAY,CAAC;MACjDvrB,IAAI,CAACqB,gBAAgB,CAAC,SAAS,EAAEoqB,aAAa,CAAC;MAC/CzrB,IAAI,CAACqB,gBAAgB,CAAC,UAAU,EAAEoqB,aAAa,CAAC;MAChDxnB,QAAQ,CAAC5C,gBAAgB,CAAC,SAAS,EAAEoqB,aAAa,CAAC;;IAGrD,OAAO;MACLzrB,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,WAAW,EAAEkpB,cAAc,CAAC;MACtDxqB,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,YAAY,EAAEkpB,cAAc,CAAC;MACvDxqB,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,WAAW,EAAE+N,MAAM,CAAC;MAC9CrP,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,WAAW,EAAE+N,MAAM,CAAC;MAC9CrP,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,YAAY,EAAEiqB,YAAY,CAAC;MACrDvrB,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,SAAS,EAAEmqB,aAAa,CAAC;MACnDzrB,IAAI,YAAJA,IAAI,CAAEsB,mBAAmB,CAAC,UAAU,EAAEmqB,aAAa,CAAC;MACpDxnB,QAAQ,CAAC3C,mBAAmB,CAAC,SAAS,EAAEmqB,aAAa,CAAC;KACvD;GACF,EAAE,CAACzrB,IAAI,CAAC,CAAC;AACZ,CAAC;;AC7IM,MAAMwf,UAAQ,GAAGvd,IAAA;MAAC;IACvBL,GAAG;IACH6d,MAAM;IACNC,MAAM;IACNC,WAAW;IACXE,SAAS;IACTC;GACc,GAAA7d,IAAA;EACd,IAAI,CAAC6d,SAAS,IAAI,CAACD,SAAS,EAAE;EAE9B,MAAM3O,MAAM,GAAGtP,GAAG,CACfC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEynB,kBAAkB,CAACM,kBAAkB,CAAC;EAEvD,MAAM9J,MAAM,GAAGN,MAAM,CAACnT,KAAK,CAACqT,WAAW,CAAC;EACxC,MAAM3c,KAAK,GAAG0c,MAAM,CAAC1c,KAAK,EAAE;EAC5B,MAAMuJ,MAAM,GAAGmT,MAAM,CAACnT,MAAM,EAAE;EAE9B,IAAIsT,SAAS,EAAE;IACb3O,MAAM,CACHrP,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAAC6U,MAAM,CAAC,CACZ3R,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEuM,CAAC,IACdA,CAAC,KAAK,CAAC,GACAkb,kBAAkB,CAACO,iBAAiB,SAAIP,kBAAkB,CAACQ,qBAAqB,GACnFR,kBAAkB,CAACO,iBAAiB,CACzC,CACAhoB,IAAI,CAAC,IAAI,EAAE,MAAMkB,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1BlB,IAAI,CAAC,IAAI,EAAE,MAAMkB,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1BlB,IAAI,CAAC,IAAI,EAAGuM,CAAqB,IAAKjL,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACpR,CAAC,CAAW,CAAC,CAAC,CACtEvM,IAAI,CAAC,IAAI,EAAGuM,CAAqB,IAAKjL,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACpR,CAAC,CAAW,CAAC,CAAC;;EAG3E,IAAIyR,SAAS,EAAE;IACb,MAAMmM,IAAI,GAAItlB,KAAa,IACzB4F,MAAM,CAAC5F,KAAK,CAAC,KAAK,KAAK,CAAC,GACpBA,KAAK,KAAK,CAAC,GACT3D,KAAK,CAAC,CAAC,CAAC,GACRI,IAAI,CAACkC,KAAK,CACRoa,MAAM,CAACmD,IAAI,EAAE,GAAGlc,KAAK,GACnB3D,KAAK,CAAC,CAAC,CAAC,GACP0c,MAAM,CAACmD,IAAI,EAAE,GAAG,CAAC,GAAInD,MAAM,CAACwM,OAAO,EAAE,CACzC,GACHlpB,KAAK,CAAC,CAAC,CAAC;IAEdkO,MAAM,CACHrP,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACpC,KAAK,CAACC,IAAI,CAAC;MAAE/B,MAAM,EAAEuF,MAAM,CAACvF,MAAM,GAAG;KAAG,EAAE,CAACgC,CAAC,EAAErC,KAAK,KAAKA,KAAK,CAAC,CAAC,CACpEyH,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAEuM,CAAC,IACdA,CAAC,KAAK,CAAC,GACAkb,kBAAkB,CAACU,iBAAiB,SAAIV,kBAAkB,CAACS,qBAAqB,GACnFT,kBAAkB,CAACU,iBAAiB,CACzC,CACAnoB,IAAI,CAAC,IAAI,EAAEmqB,IAAI,CAAC,CAChBnqB,IAAI,CAAC,IAAI,EAAEmqB,IAAI,CAAC,CAChBnqB,IAAI,CAAC,IAAI,EAAE,MAAMsB,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACM,MAAM,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,CACzDje,IAAI,CAAC,IAAI,EAAE,MACVsB,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACM,MAAM,CAACA,MAAM,CAAC/Y,MAAM,GAAG,CAAC,CAAC,CAAW,CAAC,CACxD;;AAEP,CAAC;;;ACnED,AAAO,MAAMmlB,SAAS,GAAGlqB,IAAA;MAAC;IACxBiJ,IAAI;IACJkhB,cAAc;IACdC;GACkE,GAAApqB,IAAA;EAClE,IAAIqqB,GAAG,GAAG9O,MAAM,CAAC+O,iBAAiB;EAClC,IAAIC,GAAG,GAAGhP,MAAM,CAACiP,iBAAiB;EAElCvhB,IAAI,CAAC/B,OAAO,CAACC,KAAA;QAAiBsjB,MAAM,GAAAtmB,6BAAA,CAAAgD,KAAA,EAAA/C,WAAA;IAClC,IAAIsmB,QAAQ,GAAG,CAAC;IAChB,IAAIC,QAAQ,GAAG,CAAC;IAEhBrY,MAAM,CAACiP,IAAI,CAACkJ,MAAM,CAAC,CAACvjB,OAAO,CAAC0M,GAAG;MAC7B,MAAMgX,KAAK,GAAGH,MAAM,CAAC7W,GAAY,CAAC;MAElC,IAAIiX,QAAQ,GAAG,CAAC;MAChB,IAAIC,QAAQ,GAAG,CAAC;MAEhBxY,MAAM,CAACiP,IAAI,CAACqJ,KAAK,CAAC,CAAC1jB,OAAO,CAAC6jB,QAAQ;QACjC,MAAM1kB,KAAK,GAAGukB,KAAK,CAACG,QAAQ,CAAC;QAE7B,IAAI1kB,KAAK,GAAG,CAAC,EAAE;UACbwkB,QAAQ,IAAIxkB,KAAK;SAClB,MAAM;UACLykB,QAAQ,IAAIzkB,KAAK;;OAEpB,CAAC;MAEFqkB,QAAQ,GAAGvpB,IAAI,CAACF,GAAG,CAACypB,QAAQ,EAAEI,QAAQ,CAAC;MACvCH,QAAQ,GAAGxpB,IAAI,CAACD,GAAG,CAACypB,QAAQ,EAAEE,QAAQ,CAAC;KACxC,CAAC;IAEFR,GAAG,GAAGlpB,IAAI,CAACF,GAAG,CAACopB,GAAG,EAAEK,QAAQ,CAAC;IAC7BH,GAAG,GAAGppB,IAAI,CAACD,GAAG,CAACqpB,GAAG,EAAEI,QAAQ,CAAC;GAC9B,CAAC;EAEF,IAAIN,GAAG,KAAK,CAAC,IAAIE,GAAG,KAAK,CAAC,EAAE;IAC1B,OAAO;MACLtpB,GAAG,EAAE,OAAOkpB,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAG,CAAC;MAC5DjpB,GAAG,EAAE,OAAOkpB,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAG;KAC5D;;EAGH,OAAO;IACLnpB,GAAG,EAAE,OAAOkpB,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAGE,GAAG;IAC9DnpB,GAAG,EAAE,OAAOkpB,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAGG;GAC5D;AACH,CAAC;;;AC/CD,AAAO,MAAMS,UAAU,GAAGhrB,IAAA;EAAA,IAAC;IACzBiJ,IAAI;IACJuU,MAAM;IACNC,MAAM;IACNwN,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNxW;GACmB,GAAA3U,IAAA;EAAA,OACnBiJ,IAAI,CAACgB,GAAG,CAAC,CAAA9C,KAAA,EAA2BikB,UAAU;QAApC;QAAEC;OAAsB,GAAAlkB,KAAA;MAARsjB,MAAM,GAAAtmB,6BAAA,CAAAgD,KAAA,EAAA/C,WAAA;IAC9B,MAAMknB,eAAe,GAA8B,EAAE;IACrD,MAAMtoB,OAAO,GAAG,GAAG;IACnB,MAAMijB,SAAS,GAAGxI,MAAM,CAACwI,SAAS,EAAE;IACpC,MAAMsF,UAAU,GAAGjZ,MAAM,CAACiP,IAAI,CAACkJ,MAAM,CAAC;IAEtCc,UAAU,CAACrkB,OAAO,CAAC,CAAC0M,GAAW,EAAE4X,UAAkB;MACjD,MAAMZ,KAAK,GAAGH,MAAM,CAAC7W,GAAY,CAAC;MAClC,MAAM6X,SAAS,GAAGnZ,MAAM,CAACiP,IAAI,CAACqJ,KAAK,CAAC;MACpC,MAAMc,aAAa,GACjB,CAAET,QAAmB,GAAIC,UAAqB,IAAIK,UAAU,CAACxmB,MAAM,IAClE0mB,SAAS,CAAC1mB,MAAM,GAAG,CAAC,GAAImmB,UAAqB,GAAG,CAAC,CAAC;MAErD,IAAIL,QAAQ,GAAG,CAAC;MAChB,IAAIC,QAAQ,GAAG,CAAC;MAEhBW,SAAS,CAACvkB,OAAO,CAAC6jB,QAAQ;QACxB,MAAM1kB,KAAK,GAAGukB,KAAK,CAACG,QAAQ,CAAC;QAC7B,MAAMpX,KAAK,GAAGwX,MAAM,CAACJ,QAAQ,CAAC;QAC9B,MAAMvoB,CAAC,GACL,CAAEyoB,QAAmB,GAAIC,UAAqB,IAAIM,UAAU,GAC5DvF,SAAS,GAAG,CAAC,GACbyF,aAAa,GAAG,CAAC;QACnB,MAAMC,eAAe,GAAGtlB,KAAK,GAAG,CAAC;QACjC,MAAM9G,MAAM,GAAGosB,eAAe,GAC1BxqB,IAAI,CAAC0a,GAAG,CACL,CAAC2B,MAAM,CAACqN,QAAQ,GAAGxkB,KAAK,CAAC,GAAGmX,MAAM,CAACqN,QAAQ,CAAC,GAAGtP,MAAM,CAACqQ,OAAO,IAC5D5oB,OAAO,GACPA,OAAO,CACV,GACD7B,IAAI,CAAC0a,GAAG,CACL,CAAC2B,MAAM,CAACsN,QAAQ,GAAGzkB,KAAK,CAAC,GAAGmX,MAAM,CAACsN,QAAQ,CAAC,GAAGvP,MAAM,CAACqQ,OAAO,IAC5D5oB,OAAO,GACPA,OAAO,CACV;QAEL,IAAI2oB,eAAe,EAAE;UACnBd,QAAQ,IAAIxkB,KAAK;;QAGnB,MAAMY,CAAC,GAAG0kB,eAAe,GACpB,CAACnO,MAAM,CAACqN,QAAQ,CAAC,GAAGtP,MAAM,CAACqQ,OAAO,IAAI5oB,OAAO,GAAIA,OAAO,GACzDwa,MAAM,CAACsN,QAAQ,CAAC,GAAGtN,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;QAE5C8N,eAAe,CAAC5gB,IAAI,CAAC;UACnBlI,CAAC;UACDyE,CAAC,EAAEA,CAAC,IAAI0N,SAAS,IAAI,CAAC,CAAC;UACvBpV,MAAM;UACNoU,KAAK;UACLtN,KAAK;UACLglB,SAAS,EAAEA,SAAmB;UAC9B1f,IAAI,EAAEof,QAAQ;UACdS,UAAU;UACVJ;SACD,CAAC;QAEF,IAAI,CAACO,eAAe,EAAE;UACpBb,QAAQ,IAAIzkB,KAAK;;OAEpB,CAAC;KACH,CAAC;IAEF,OAAOilB,eAAe;GACvB,CAAC;AAAA;;ACxEG,MAAMO,SAAS,GAAGA,CACvBC,aAAoC,EACpC9M,EAAU,EACVtS,IAA6B;EAE7B,QAAQof,aAAa;IACnB,KAAK,QAAQ;MACX,OAAOpf,IAAI,CAACzF,CAAC,GAAGyF,IAAI,CAACnN,MAAM,GAAG,CAAC,GAAGyf,EAAE;IACtC,KAAK,QAAQ;MACX,OAAOtS,IAAI,CAACzF,CAAC,GAAGyF,IAAI,CAACnN,MAAM,GAAGyf,EAAE;IAClC;MACE,OAAOtS,IAAI,CAACzF,CAAC;;AAEnB,CAAC;;ACPM,MAAM8kB,QAAQ,GAAID,aAAoC;EAC3D,QAAQA,aAAa;IACnB,KAAK,KAAK;MACR,OAAOza,QAAQ;IACjB,KAAK,QAAQ;MACX,OAAOE,WAAW;IACpB;MACE,OAAOya,OAAO;;AAEpB,CAAC;;;ACjBD,AA4BO,MAAMva,aAAW,GAAGzR,IAAA;MAAC;IAC1BL,GAAG;IACH5B,IAAI;IACJkL,IAAI;IACJgjB,cAAc;IACdxO,MAAM;IACND,MAAM;IACN1L,aAAa;IACbga,aAAa;IACbnX,SAAS;IACT3O,WAAW;IACXilB,QAAQ;IACRC,UAAU;IACVtI,oBAAoB;IACpBsJ,oBAAoB;IACpBC,QAAQ;IACRta,WAAW;IACXgU,QAAQ;IACRuG,kBAAkB;IAClBC,iBAAiB;IACjBC,cAAc;IACdC,kBAAkB;IAClBC,WAAW;IACXC,YAAY;IACZC,IAAI;IACJ/a,WAAW;IACXC,gBAAgB;IAChB+a,UAAU;IACVC;GACiB,GAAA5sB,IAAA;EACjBR,MAAS,CAACzB,IAAI,CAAC,CACZ0B,MAAM,OAAK6nB,kBAAkB,CAACf,sBAAwB,CAAC,CACvD7mB,MAAM,EAAE;EAEX,MAAMmtB,gBAAgB,GAAGpP,MAAM,CAACnT,MAAM,EAAE;EACxC,MAAM,CAACuU,EAAE,EAAEC,EAAE,CAAC,GAAGrB,MAAM,CAAC1c,KAAK,EAAE;EAC/B,MAAM,CAACge,EAAE,EAAEC,EAAE,CAAC,GAAGxB,MAAM,CAACzc,KAAK,EAAE;EAC/B,MAAMklB,SAAS,GAAGxI,MAAM,CAACwI,SAAS,EAAE;EACpC,MAAM3Z,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;EAE7B,MAAMwqB,IAAI,GAAItlB,KAAa,IACzBmoB,gBAAgB,CAACnoB,KAAK,CAAC,KAAK,KAAK,CAAC,GAC9BA,KAAK,KAAK,CAAC,GACTma,EAAE,GACF1d,IAAI,CAACkC,KAAK,CACRoa,MAAM,CAACmD,IAAI,EAAE,GAAGlc,KAAK,GAAGma,EAAE,GAAIpB,MAAM,CAACmD,IAAI,EAAE,GAAG,CAAC,GAAInD,MAAM,CAACwM,OAAO,EAAE,CACpE,GACHnL,EAAE;EACR,MAAM2L,MAAM,GAAGoC,gBAAgB,CAAC5iB,GAAG,CAAC5D,KAAK,IAAI2jB,IAAI,CAACzO,MAAM,CAAClV,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;EAErE,MAAMymB,UAAU,GAAGR,cAAc,GAC7BA,cAAc,CAAC;IAAErjB,IAAI,EAAEgjB,cAAc;IAAEpG,QAAQ;IAAErI;GAAQ,CAAC,GAC1DyO,cAAc,CAACzK,MAAM,CAAC,CAACC,GAAG,EAAEsL,IAAI,EAAEroB,KAAK;IACrC,MAAMsoB,OAAO,GACXxtB,GAAM,CAACqmB,QAA8B,EAAE1e,KAAA;MAAA,IAAC;QAAE2S;OAAQ,GAAA3S,KAAA;MAAA,OAChD,OAAO2S,MAAM,CAACpV,KAAK,CAAC,KAAK,QAAQ,GAC7B8Y,MAAM,CAAC,CAAC1D,MAAM,CAACpV,KAAK,CAAC,IAAI,CAAC,IAAIsa,EAAE,CAAC,GACjCzD,MAAM,CAAC+O,iBAAiB;MAC7B,IAAI/O,MAAM,CAAC+O,iBAAiB;IAE/B7I,GAAG,CAAC/W,IAAI,CACNqiB,IAAI,CAACvL,MAAM,CACT,CAACC,GAAG,EAAA5W,KAAA;MAAA,IAAE;QAAE5D;OAAG,GAAA4D,KAAA;MAAA,OAAK1J,IAAI,CAACF,GAAG,CAACwgB,GAAG,EAAExa,CAAC,EAAE+lB,OAAiB,CAAC;OACnDzR,MAAM,CAAC+O,iBAAiB,CAClB,CACT;IACD,OAAO7I,GAAG;GACX,EAAE,EAAE,CAAC;EAEV,MAAMxC,WAAW,GAAGtf,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;EACzE,MAAMqf,SAAS,GAAGD,WAAW,CAC1Brf,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,OAAO,EAAEif,EAAE,GAAGD,EAAE,CAAC,CACtBhf,IAAI,CAAC,QAAQ,EAAEsB,IAAI,CAAC0a,GAAG,CAACkD,EAAE,GAAGC,EAAE,CAAC,CAAC,CACjCnf,IAAI,CAAC,OAAO,EAAEynB,kBAAkB,CAAChB,iBAAiB,CAAC,CACnDzmB,IAAI,CAAC,WAAW,iBAAegf,EAAE,UAAKG,EAAE,MAAG,CAAC;EAE/C,IAAI4D,oBAAoB,EAAE;IACxB,MAAMvQ,gBAAgB,GACpBV,WAAW,IAAI3P,QAAQ,CAACiQ,aAAa,CAAC,MAAM,CAAC;IAC/C,IAAIgb,OAAO,GAAyCztB,MAAS,OACvD8nB,kBAAkB,CAACb,oBAAsB,CAC9C;IAED,IAAIwG,OAAO,CAACvN,IAAI,EAAE,KAAK,CAAC,EAAE;MACxBuN,OAAO,GAAGztB,MACD,CAAC6S,gBAAgB,CAAC,CACxBzS,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAEynB,kBAAkB,CAACb,oBAAoB,CAAC,CACtD1jB,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CACrBA,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BqE,IAAI,CAAC;QACJ,MAAMA,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAAC8L,WAAW;UAACnD,SAAS,EAAEoa,kBAAkB,CAACd;UAAuB,CACnE;QAED,OAAOpf,IAAI;OACZ,CAAC;;IAGN,MAAM8lB,kBAAkB,GAAGD,OAAO,CAACxtB,MAAM,OACnC6nB,kBAAkB,CAACd,mBAAqB,CAC7C;IAED,IAAI9T,SAAS,GAAG,KAAK;IACrB,IAAIya,aAAa,GAAkB,IAAI;IAEvC,MAAMxa,UAAU,GAAIC,OAAiB;MACnCF,SAAS,GAAGG,OAAO,CAACD,OAAO,CAAC;MAE5B,MAAME,OAAO,GAAGJ,SAAS,GAAG,GAAG,GAAG,GAAG;MACrCua,OAAO,CAAClqB,KAAK,CAAC,SAAS,EAAE+P,OAAO,CAAC;MAEjC,IAAI,CAACJ,SAAS,EAAE;QACdua,OAAO,CAACptB,IAAI,CAAC,OAAO,EAAEynB,kBAAkB,CAACb,oBAAoB,CAAC;QAC9D0G,aAAa,GAAG,IAAI;QACpBF,OAAO,CAAClqB,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;QACnCkqB,OAAO,CAAClqB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAC1BkqB,OAAO,CAAClqB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;OAC5B,MAAM;QACLkqB,OAAO,CAACptB,IAAI,CACV,OAAO,EACJynB,kBAAkB,CAACb,oBAAoB,UAAI7U,gBAAgB,IAAI,EAAE,CAAE,CACvE;QACDqb,OAAO,CAAClqB,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC;;KAEpC;IAEDmc,SAAS,CAAC3b,EAAE,CAAC,kBAAkB,EAAE,MAAMoP,UAAU,EAAE,CAAC;IACpDuM,SAAS,CAAC3b,EAAE,CAAC,qCAAqC,EAAElB,KAAK;MACvD,MAAM,CAACud,IAAI,EAAEC,IAAI,CAAC,GAAGrgB,OAAU,CAAC6C,KAAK,EAAEL,QAAQ,CAAC;MAChD,MAAM,CAAC8d,MAAM,CAAC,GAAGtgB,OAAU,CAAC6C,KAAK,EAAE6c,SAAS,CAAC;MAC7C,MAAM,CAACa,KAAK,EAAEC,KAAK,CAAC,GAAGxgB,OAAU,CAAC6C,KAAK,EAAEtE,IAAI,CAAC;MAC9C,MAAMyE,CAAC,GAAGsd,MAAM,IAAIA,MAAM,GAAGC,KAAK,CAAC;MACnC,MAAMkJ,OAAO,GAAGrJ,IAAI,GAAGG,KAAK;MAC5B,MAAMqN,OAAO,GAAGvN,IAAI,GAAGG,KAAK;MAE5B,MAAMC,SAAS,GAAGwK,MAAM,CAAC4C,SAAS,CAAChnB,KAAK,IAAI7D,CAAC,IAAI6D,KAAK,CAAC;MAEvD,IAAIomB,YAAY,EAAE;QAChB,MAAMa,SAAS,GAAGtrB,QAAQ,CAACurB,iBAAiB,CAC1ClrB,KAAK,CAACmrB,OAAO,EACbnrB,KAAK,CAACorB,OAAO,CACd;QACD,MAAMC,QAAQ,GAAGluB,MACR,CAACktB,IAAI,CAACrN,KAAK,EAAE,CAACY,SAAS,CAAC,CAAC,CAC/B9Z,SAAS,CAAC,MAAM,CAAC,CACjBkZ,KAAK,EAAE;QACV,MAAMsO,UAAU,GAAGL,SAAS,CAAChJ,IAAI,CAAC5X,IAAI,IAAIghB,QAAQ,CAAChrB,QAAQ,CAACgK,IAAI,CAAC,CAAC;QAElE,IAAI,CAACihB,UAAU,EAAE;UACf,IAAIjb,SAAS,EAAE;YACbC,UAAU,CAAC,KAAK,CAAC;;UAEnBuM,SAAS,CAACnc,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;UACpC;SACD,MAAM;UACLmc,SAAS,CAACnc,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;;;MAIxC,MAAMwE,GAAG,GACP,CAAC,OAAO4kB,QAAQ,KAAK,QAAQ,GACzBA,QAAQ,GACNW,UAAU,CAAC7M,SAAS,CAAwB,GAAGjB,EAAE,IAAIoO,OAAO;MACpE,MAAMtpB,IAAI,GACR,CAAC+N,WAAW,GACR,CAAC4L,MAAM,CAAEwC,SAA+B,CAAC,IAAI,CAAC,IAAIgG,SAAS,GAAG,CAAC,GAC/DzjB,CAAC,IAAIymB,OAAO;MAElB,IAAIpX,WAAW,IAAIsb,aAAa,KAAKlN,SAAS,EAAE;QAC9C;;MAGF,IAAI4E,QAAQ,GAAGoH,cAAc,CAAChM,SAAS,CAAuB;MAC9D,IAAIpZ,KAAK,CAACod,OAAO,CAACY,QAAQ,CAAC,IAAIA,QAAQ,CAAC9f,MAAM,KAAK,CAAC,EAAE;QACpD;;MAGF,IAAI8gB,QAAQ,EAAE;QACZ,MAAM+H,YAAY,GAAG/H,QAAQ,CAAC5b,GAAG,CAACe,KAAA;UAAA,IAAC;cAAE8O;aAAiB,GAAA9O,KAAA;YAANiW,IAAI,GAAA9c,6BAAA,CAAA6G,KAAA,EAAA5G,WAAA;UAAA,OAAAE,QAAA,KAC/C2c,IAAI;YACP5a,KAAK,EAAEyT,MAAM,CAACmG,SAAS,CAAC;YACxBoL,SAAS,EAAEpiB,IAAI,CAACgX,SAAS,CAAC,IAAIhX,IAAI,CAACgX,SAAS,CAAC,CAACoL;;SAC9C,CAAC;QAEH,IAAIxkB,KAAK,CAACod,OAAO,CAAC2J,YAAY,CAAC,IAAI/mB,KAAK,CAACod,OAAO,CAACY,QAAQ,CAAC,EAAE;UAC1DA,QAAQ,GAAGA,QAAQ,CAACgJ,MAAM,CAACD,YAAkC,CAAC;;;MAIlE,MAAME,QAAQ,GAAInuB,GAAG,CAAC5B,IAAI,EAAiB,CAACwE,qBAAqB,EAAE,CAChE3D,KAAe;MAElB,IAAI,OAAO2tB,kBAAkB,KAAK,UAAU,EAAE;QAC5CA,kBAAkB,CAAC;UACjBzoB,IAAI;UACJyD,GAAG;UACH0lB,OAAO;UACPa;SACD,CAAC;OACH,MAAM,IAAI,CAACvB,kBAAkB,EAAE;QAC9BU,OAAO,CAAClqB,KAAK,CAAC,MAAM,EAAKe,IAAI,OAAI,CAAC,CAACf,KAAK,CAAC,KAAK,EAAKwE,GAAG,OAAI,CAAC;;MAG7D,IAAIuK,aAAa,EAAE;QACjBob,kBAAkB,CAAC9lB,IAAI,CAAC;UACtB,MAAMA,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,0CACGuN,aAAa,CACZ+S,QAAQ,EACR0H,kBAAkB,GACd;YACEzoB,IAAI;YACJyD,GAAG;YACH0lB,OAAO;YACPa;WACD,GACD7uB,SAAS,EACbgsB,QAAQ,CACT,CACA,CACJ;UAED,OAAO7jB,IAAI;SACZ,CAAC;OACH,MAAM;QACL,IAAI,CAACsL,SAAS,EAAE;UACdC,UAAU,CAAC,IAAI,CAAC;;QAGlBua,kBAAkB,CAAC9lB,IAAI,CAAC;UACtB,MAAMA,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAACiM,gBAAgB;YAACtD,SAAS,EAAEoa,kBAAkB,CAACZ;aAC7C7B,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAACqH,oBAAoB,IAC/C3nB,oBAACkM,gBAAgB;YACfvD,SAAS,EAAEoa,kBAAkB,CAACT;aAE7BhC,QAAQ,CAAC,CAAC,CAAC,CAACwG,SAAS,CAEzB,EACAxG,QAAQ,IACPA,QAAQ,CAAC5a,GAAG,CACVyB,KAAA;YAAA,IAAC;cAAEC,IAAI;cAAEtF,KAAK;cAAEmZ,MAAM;cAAE+E,IAAI;cAAE5Q,KAAK;cAAEwS;aAAU,GAAAza,KAAA;YAAA,OAC7CnH,oBAACmM,WAAW;cACVkD,GAAG,EAAEjI,IAAI;cACTuB,SAAS,EAAEoa,kBAAkB,CAACX;eAE9BpiB,oBAACoM,OAAO;cACNzD,SAAS,EAAEoa,kBAAkB,CAACV;eAE7BT,QAAQ,GACP5hB,oBAACwM,SAAS;cACR7D,SAAS,EAAEoa,kBAAkB,CAACP,iBAAiB;cAC/ChkB,KAAK,EAAE;gBAAE8Q,eAAe,EAAE2L,MAAM,IAAI+E;;cACpC,GAEFhgB,oBAACsM,QAAQ;cACP3D,SAAS,EAAEoa,kBAAkB,CAACR,gBAAgB;cAC9C/jB,KAAK,EAAE;gBAAE8Q,eAAe,EAAEF;;cAE7B,EACDpP,oBAACmD,MAAI;cACHwF,SAAS,EAAEoa,kBAAkB,CAACN;eAE7BqF,iBAAiB,GAAGA,iBAAiB,CAAC1gB,IAAI,CAAC,GAAGA,IAAI,CAC9C,CACC,EACVpH,oBAAC2M,KAAK;cACJhE,SAAS,EAAEoa,kBAAkB,CAACL;eAE7BmF,kBAAkB,GACfA,kBAAkB,CAAC/lB,KAAK,EAAEsF,IAAI,CAAC,GAC/BW,QAAM,CAACjG,KAAK,CAAC,CACX,CACI;WACf,CACF,CACc,CACpB;UAED,OAAOe,IAAI;SACZ,CAAC;;MAGJ+lB,aAAa,GAAGlN,SAAS;MACzB,IAAI,CAACvN,SAAS,EAAE;QACdC,UAAU,CAAC,IAAI,CAAC;;KAEnB,CAAC;;EAGJ,MAAM9Q,SAAS,GAAGrC,MACT,CAACzB,IAAI,CAAC,CACZ6B,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAEynB,kBAAkB,CAACf,sBAAsB,CAAC;EAE3D,MAAM9G,cAAc,GAAG5d,SAAS,CAC7BjC,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAEynB,kBAAkB,CAACH,sBAAsB,CAAC,CACxDpkB,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BA,KAAK,CAAC,KAAK,EAAKic,EAAE,OAAI,CAAC;EAE1B,MAAM+O,aAAa,GAAGA,CAACvF,CAAa,EAAE3pB,QAAkD;IACtF,MAAM,CAACihB,MAAM,EAAEkO,MAAM,CAAC,GAAGxuB,OAAU,CAACgpB,CAAC,EAAEtJ,SAAS,CAAC;IACjD,MAAM,CAACa,KAAK,EAAEC,KAAK,CAAC,GAAGxgB,OAAU,CAACgpB,CAAC,EAAEzqB,IAAI,CAAC;IAC1C,MAAMyE,CAAC,GAAGsd,MAAM,IAAIA,MAAM,GAAGC,KAAK,CAAC;IACnC,MAAM9Y,CAAC,GAAG+mB,MAAM,GAAGhO,KAAK;IAExB,MAAMC,SAAS,GAAGwK,MAAM,CAAC4C,SAAS,CAAChnB,KAAK,IAAI7D,CAAC,IAAI6D,KAAK,CAAC;IACvD,MAAMgG,QAAQ,GAAG4f,cAAc,CAAChM,SAAS,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAI5T,QAAQ,CAAC9M,MAAM,IAAIwf,EAAE,GAAG9X,CAAC,EAAE;MAC7BpI,QAAQ,CAACwN,QAAQ,CAAC;;GAErB;EAED4S,WAAW,CACR1b,EAAE,CAAC,OAAO,EAAEilB,CAAC,IAAIuF,aAAa,CAACvF,CAAC,EAAGnc,QAAQ,IAAKsgB,UAAU,IAAIA,UAAU,CAACtgB,QAAQ,CAAC,CAAC,CAAC,CACpF9I,EAAE,CAAC,WAAW,EAAEilB,CAAC,IAAIuF,aAAa,CAACvF,CAAC,EAAGnc,QAAQ,IAAKugB,UAAU,IAAIA,UAAU,CAACvgB,QAAQ,CAAC,CAAC,CAAC,CACxF9I,EAAE,CAAC,YAAY,EAAE,MAAMqpB,UAAU,IAAIA,UAAU,CAAC3tB,SAAS,CAAC,CAAC;EAE9D,IAAI6sB,aAAa,EAAE;IACjB,MAAMmC,YAAY,GAAgCpI,QAAQ,GACtDoG,cAAc,CAAChiB,GAAG,CAAC,CAACikB,KAAK,EAAExpB,KAAK,KAC9BwpB,KAAK,CAACL,MAAM,CACVhI,QAAQ,CAAC5b,GAAG,CAAC2C,KAAA;UAAC;QAAEkN,MAAM;QAAEnO,IAAI;QAAE6T;OAAQ,GAAA5S,KAAA;MACpC,MAAM;QAAEuhB;OAAa,GAAGD,KAAK,CAAC1M,MAAM,CAClC,CAACC,GAAG,EAAAT,KAAA;YAAE;UAAEwK;SAAY,GAAAxK,KAAA;QAClB,MAAM;UAAEoN,SAAS;UAAED;SAAa,GAAG1M,GAAG;QACtC,IAAI+J,UAAU,KAAK4C,SAAS,EAAE;UAC5B,OAAO;YACLA,SAAS,EAAE5C,UAAU;YACrB2C,WAAW,EAAEA,WAAW,GAAG;WAC5B;;QAEH,OAAO1M,GAAG;OACX,EACD;QACE2M,SAAS,EAAE,CAAC,CAAC;QACbD,WAAW,EAAE;OACd,CACF;MACD,MAAME,SAAS,GACb,CAACpD,QAAQ,GAAGkD,WAAW,GACrB,CAACjD,UAAU,IAAI,CAAC,KAAKiD,WAAW,GAAG,CAAC,CAAC,IACvC,CAAC;MAEH,OAAO;QACL3rB,CAAC,EAAE0rB,KAAK,CAAC,CAAC,CAAC,CAAC1rB,CAAC,GAAGyoB,QAAQ,GAAG,CAAC,GAAGoD,SAAS;QACxCpnB,CAAC,EAAEuW,MAAM,CAAC1D,MAAM,CAACpV,KAAK,CAAW,CAAC,GAAGiQ,SAAS;QAC9CpV,MAAM,EAAE,CAAC;QACToU,KAAK,EAAE6L,MAAM;QACbnZ,KAAK,EAAEyT,MAAM,CAACpV,KAAK,CAAC;QACpB2mB,SAAS,EAAE6C,KAAK,CAAC,CAAC,CAAC,CAAC7C,SAAS;QAC7B1f,IAAI;QACJ6f,UAAU,EAAE,CAAC;QACbJ,UAAU,EAAE1mB;OACb;KACF,CAA8B,CAChC,CACF,GACDunB,cAAc;IAElB,MAAMxB,MAAM,GAAGhL,cAAc,CAC1BtZ,SAAS,CAAC,KAAK,CAAC,CAChB8C,IAAI,CAACglB,YAAY,CAAC,CAClB1iB,KAAK,EAAE,CACP3L,MAAM,CAAC,KAAK,CAAC,CACbmD,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BA,KAAK,CACJ,WAAW,EACX,CAACgE,CAA4B,EAAErC,KAAK,oBACrBvD,IAAI,CAACkC,KAAK,CACrBoa,MAAM,CAAE/Y,KAA2B,CAAW,CAC/C,WAAM,EAAEiQ,SAAS,IAAI,CAAC,CAAC,QAAK,CAChC;IAEH,MAAM2Z,eAAe,GACnBxC,aAAa,KAAK,QAAQ,GAAGvb,eAAe,GAAGD,SAAS;IAE1D,MAAMie,UAAU,GAAGxC,QAAQ,CAACD,aAAa,CAAC;IAE1CrB,MAAM,CACHtkB,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAAEyD,IAA+B,IACpC8f,WAAW,GAAGA,WAAW,CAAC9f,IAAI,CAAC,GAAGA,IAAI,CACvC,CACAP,IAAI,CAAC,KAAK,CAAC,CACXpJ,KAAK,CAAC,MAAM,EAAE2J,IAAI,IAAOvL,IAAI,CAACkC,KAAK,CAACqJ,IAAI,CAAClK,CAAC,GAAGyoB,QAAQ,GAAG,CAAC,CAAC,OAAI,CAAC,CAC/DloB,KAAK,CACJ,KAAK,EACJ2J,IAA6B,IACzBmf,SAAS,CAACC,aAAa,EAAE9M,EAAE,EAAEtS,IAAI,CAAC,OAAI,CAC5C,CACA3J,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7BqE,IAAI,CAAEsF,IAA6B,IAClCrF,cAAc,CAACC,cAAc,CAC3B/C,oBAAC+pB,eAAe;MAACphB,SAAS,EAAEoa,kBAAkB,CAACF;OAC5CphB,WAAW,GACVA,WAAW,CAAA1B,QAAA,KAAMoI,IAAI;MAAEue;MAAU,CAAC,GAElC1mB,oBAACgqB,UAAU;MAACrhB,SAAS,EAAEoa,kBAAkB,CAACD;OACvC/a,QAAM,CAACI,IAAI,CAACrG,KAAK,CAAC,CAEtB,CACe,CACnB,CACF;;AAEP,CAAC;;;ACpbD,AAAO,MAAMmoB,cAAc,GAAGxuB,IAAA;MAAC;IAC7BiJ,IAAI;IACJlI,KAAK;IACLkqB,QAAQ;IACRC,UAAU;IACVuD;GACoB,GAAAzuB,IAAA;EACpB,MAAM0uB,YAAY,GAAG,OAAOD,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAG,CAAC;EAC5E,MAAM5U,UAAU,GAAG9Y,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC;EACtC,MAAMstB,SAAS,GAAGplB,IAAI,CAACuY,MAAM,CAAC,CAACC,GAAG,EAAAta,KAAA;QAAkB4lB,IAAI,GAAA5oB,6BAAA,CAAAgD,KAAA,EAAA/C,WAAA;IACtD,OACEqd,GAAG,GACHnP,MAAM,CAACiP,IAAI,CAACwL,IAAI,CAAC,CAACvL,MAAM,CACtB,CAACC,GAAG,EAAEkN,IAAI,EAAEjqB,KAAK,KACfA,KAAK,GAAG,CAAC,GACL+c,GAAG,IAAIwJ,QAAQ,IAAI,CAAC,CAAC,IAAIC,UAAU,IAAI,CAAC,CAAC,GACzCzJ,GAAG,GAAGwJ,QAAQ,EACpB,CAAC,CACF,GACDyD,YAAY;GAEf,EAAEA,YAAY,CAAC;EAEhB,IAAI7U,UAAU,GAAGwU,SAAS,EAAE;IAC1B,OAAOltB,IAAI,CAACkf,KAAK,CAAC4K,QAAQ,IAAIpR,UAAU,GAAGwU,SAAS,CAAC,CAAC;;EAGxD,OAAOpD,QAAQ;AACjB,CAAC;;AC3BD,MAAM2D,cAAc,GAAG,CAAC;AAExB,AAAO,MAAMC,OAAO,GAAG7uB,IAAA;MAAC;IAAEyqB,MAAM;IAAEQ;GAAwB,GAAAjrB,IAAA;EACxD,OAAOyqB,MAAM,CACVtkB,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAAEyD,IAA+B,IAAKA,IAAI,CAAC,CAC/CP,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,GAAG,EAAG6M,IAA6B,IAAKA,IAAI,CAAClK,CAAC,CAAC,CACpD3C,IAAI,CAAC,GAAG,EAAG6M,IAA6B,IAAKA,IAAI,CAACzF,CAAC,CAAC,CACpDpH,IAAI,CAAC,OAAO,EAAEorB,QAAQ,CAAC,CACvBprB,IAAI,CAAC,QAAQ,EAAG6M,IAA6B,IAC5CA,IAAI,CAACrG,KAAK,KAAK,IAAI,GAAG,CAAC,GAAGlF,IAAI,CAACD,GAAG,CAACwL,IAAI,CAACnN,MAAM,EAAEqvB,cAAc,CAAC,CAAC,CACjE7rB,KAAK,CAAC,MAAM,EAAG2J,IAA6B,IAAKA,IAAI,CAACiH,KAAK,CAAC;AACjE,CAAC;;ACDD,MAAMib,gBAAc,GAAG,CAAC;AAExB,AAAO,MAAMzuB,MAAI,GAAGA,CAACpC,IAAwB,EAAEmG,KAAoB;EACjE,MAAM;IACJ+E,IAAI;IACJ4c,QAAQ,GAAG,EAAE;IACbiJ,OAAO,GAAG,EAAE;IACZ7D,QAAQ,EAAE8D,YAAY;IACtB7D,UAAU;IACVC,MAAM;IACNlX,MAAM;IACNwO,YAAY;IACZD,YAAY;IACZ3E,SAAS;IACTD,SAAS;IACTiF,YAAY;IACZmM,YAAY;IACZC,eAAe;IACfC,iBAAiB;IACjB5M,WAAW;IACXC,WAAW;IACX4M,UAAU;IACV1lB,SAAS;IACTmZ,oBAAoB;IACpBsJ,oBAAoB;IACpBpa,aAAa;IACbga,aAAa;IACb9lB,WAAW;IACXmmB,QAAQ;IACRta,WAAW;IACXiU,WAAW;IACX5c,KAAK;IACLkjB,kBAAkB;IAClBC,iBAAiB;IACjBoC,cAAc;IACdW,aAAa;IACb9C,cAAc;IACd+C,aAAa;IACbrlB,QAAQ;IACRrE,QAAQ;IACRwkB,cAAc;IACdC,cAAc;IACdkF,QAAQ;IACR/C,kBAAkB;IAClBC,WAAW;IACXC,YAAY;IACZ1J,eAAe;IACfpR,WAAW;IACXC,gBAAgB;IAChB+a,UAAU;IACVC;GACD,GAAG1oB,KAAK;EAET,IAAInG,IAAI,KAAK,IAAI,IAAIkL,IAAI,CAAClE,MAAM,EAAE;IAChC,MAAM4P,SAAS,GAAGV,MAAM,GAAGA,MAAM,CAAC1M,GAAG,GAAG,CAAC;IACzC,MAAMqN,WAAW,GAAGX,MAAM,GAAGA,MAAM,CAACY,KAAK,GAAG,CAAC;IAC7C,MAAMC,YAAY,GAAGb,MAAM,GAAGA,MAAM,CAACc,MAAM,GAAG,CAAC;IAC/C,MAAMC,UAAU,GAAGf,MAAM,GAAGA,MAAM,CAACnQ,IAAI,GAAG,CAAC;IAC3C,MAAMyrB,eAAe,GAAG,EAAE;IAC1B,MAAM;MAAE3wB,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,CAACwE,qBAAqB,EAAE;IACzD,MAAM3D,KAAK,GAAGsF,KAAK,CAACtF,KAAK,IAAI0D,SAAS;IACtC,MAAM/C,MAAM,GAAG2E,KAAK,CAAC3E,MAAM,IAAI,CAAC;IAChC,MAAMiwB,SAAS,GAAGtF,SAAS,CAAC;MAC1BjhB,IAAI;MACJkhB,cAAc;MACdC;KACD,CAAC;IAEF,MAAMnpB,KAAG,GACP,OAAO+I,QAAQ,KAAK,QAAQ,GACxBA,QAAQ,GACR7I,IAAI,CAACF,GAAG,CACNzB,GAAM,CAACqmB,QAAQ,EAAE7lB,IAAA;MAAA,IAAC;QAAE8Z;OAAQ,GAAA9Z,IAAA;MAAA,OAAKR,GAAM,CAACsa,MAAkB,CAAC;MAAC,IAC1DyB,MAAM,CAAC+O,iBAAiB,EAC1BkF,SAAS,CAACvuB,GAAG,IAAI,CAAC,CACnB;IACP,MAAMC,KAAG,GACP,OAAOyE,QAAQ,KAAK,QAAQ,GACxBA,QAAQ,GACRxE,IAAI,CAACD,GAAG,CACN1B,GAAM,CAACqmB,QAAQ,EAAE1e,KAAA;MAAA,IAAC;QAAE2S;OAAQ,GAAA3S,KAAA;MAAA,OAAK3H,GAAM,CAACsa,MAAkB,CAAC;MAAC,IAC1DyB,MAAM,CAACiP,iBAAiB,EAC1BgF,SAAS,CAACtuB,GAAG,CACd;IACP,MAAMvB,GAAG,GAAGL,SAAS,CAACvB,IAAI,EAAEa,KAAK,EAAEW,MAAM,IAAI,CAAC,CAAC;IAC/C,MAAM6jB,kBAAkB,GAAG,CAAC;IAC5B,MAAMxc,MAAM,GAAGqC,IAAI,CAACgB,GAAG,CAAEyC,IAAkB,IAAKA,IAAI,CAAC2e,SAAmB,CAAC;IACzE,IAAIJ,QAAQ,GAAG8D,YAAY,IAAIQ,eAAe;IAE9C,MAAM/R,MAAM,GAAGhe,WACD,EAAE,CACb8K,MAAM,CAAC,CAACrJ,KAAG,EAAEC,KAAG,CAAC,CAAC,CAClBH,KAAK,CAAC,CACLxB,MAAM,GAAGoV,SAAS,GAAGG,YAAY,IAAI2N,YAAY,IAAI,CAAC,CAAC,EACvD9N,SAAS,CACV,CAAC,CACDwO,IAAI,EAAE;IAETN,YAAY,IAAIA,YAAY,CAACrF,MAAM,CAAC;IAEpC,MAAMM,MAAM,GAAGN,MAAM,CAACnT,KAAK,EAAE;IAC7B,MAAMgZ,SAAS,GAAG7jB,QAAW,CAACge,MAAM,CAAC,CAACnT,KAAK,CAAC+Y,kBAAkB,CAAC;IAE/D6L,eAAe,IAAIA,eAAe,CAAC5L,SAAS,CAAC;IAE7C,MAAM3F,WAAW,GAAG2F,SAAS,CAACC,aAAa,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAMC,KAAK,GAAG5jB,GAAG,CACdC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEqS,kBAAU,CAACuV,aAAa,CAAC,CACvCjQ,IAAI,CAAC6L,SAAS,CAAC;IAElBE,KAAK,CAACpd,SAAS,CAAC,OAAO,CAAC,CAACtG,IAAI,CAAC,OAAO,EAAEwG,KAAK;MAC1C,OAAOA,KAAK,KAAK,CAAC,aAAW6L,kBAAU,CAACyV,qBAAqB,GAAK,MAAM;KACzE,CAAC;IAEFrF,WAAW,IAAIA,WAAW,CAACiB,KAAK,CAAC;IAEjC,MAAM;MAAE3kB,KAAK,EAAE4kB;KAAY,GAAGxI,iBAAiB,CAACuI,KAAK,CAAC;IACtD,MAAMxiB,KAAK,GAAG,CACZiU,UAAU,GAAGwO,UAAU,IAAIhB,YAAY,IAAI,CAAC,CAAC,EAC7C5jB,KAAK,GAAGgW,WAAW,CACpB;IAED,MAAM6I,MAAM,GAAGje,SACH,EAAE,CACX8K,MAAM,CAAC9K,OAAQ,CAACyJ,IAAI,CAAClE,MAAM,CAAO,CAAC,CACnChE,KAAK,CAACA,KAAK,CAAC;IAEfkqB,QAAQ,GAAGuD,cAAc,CAAC;MACxBvlB,IAAI;MACJwlB,cAAc;MACd1tB,KAAK;MACLkqB,QAAQ;MACRC;KACD,CAAC;IAEF8D,YAAY,IAAIA,YAAY,CAACvR,MAAM,CAAC;IAEpC,MAAM,CAACoB,EAAE,EAAEC,EAAE,CAAC,GAAGrB,MAAM,CAAC1c,KAAK,EAAE;IAE/B,MAAMgjB,WAAW,GAAGvkB,UACP,CAACie,MAAM,CAAC,CAClB5G,UAAU,CAACxQ,KAAK,IAAIO,MAAM,CAAC2U,MAAM,CAAClV,KAAK,CAAC,CAAC,CAAC;IAE7C,IAAI,OAAO0c,eAAe,KAAK,QAAQ,EAAE;MACvCgB,WAAW,CACRjN,UAAU,CACT2G,MAAM,CAACnT,MAAM,EAAE,CAACqU,MAAM,CAAC,CAAC5X,CAAC,EAAER,CAAC,EAAEkpB,KAAK;QACjC,MAAM5V,UAAU,GAAGiF,EAAE,GAAGD,EAAE;QAC1B,MAAMxU,KAAK,GAAGlJ,IAAI,CAACkC,KAAK,CAACwW,UAAU,GAAGkJ,eAAe,CAAC;QACtD,MAAMhe,MAAM,GAAG0qB,KAAK,CAAC1qB,MAAM;QAC3B,MAAM2qB,OAAO,GAAGvuB,IAAI,CAACkC,KAAK,CAAC0B,MAAM,GAAGsF,KAAK,CAAC;QAE1C,OAAO,EAAE9D,CAAC,GAAGmpB,OAAO,CAAC;OACtB,CAAC,CACH,CACA1L,aAAa,CAAC,CAAC,CAAC;;IAGrBkL,iBAAiB,IAAIA,iBAAiB,CAACnL,WAAW,EAAE;MAAEhmB,IAAI;MAAE6I;KAAQ,CAAC;IAErE,MAAMsd,KAAK,GAAGvkB,GAAG,CACdC,MAAM,CAAC,GAAG,CAAC,CACX4X,IAAI,CAACuM,WAAW,CAAC,CACjBlkB,IAAI,CAAC,OAAO,EAAEqS,kBAAU,CAACwV,aAAa,CAAC;IAE1CnF,WAAW,IAAIA,WAAW,CAAC2B,KAAK,CAAC;IAEjC,MAAMyL,UAAU,GAAG3E,UAAU,CAAC;MAC5B/hB,IAAI;MACJuU,MAAM;MACNC,MAAM;MACNwN,QAAQ;MACRC,UAAU,EAAE,OAAOA,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAG,CAAC;MAC3DC,MAAM;MACNxW;KACD,CAAC;IAEF,MAAMsX,cAAc,GAAGoD,aAAa,GAChCA,aAAa,CAACM,UAAU,CAAC,GACzBA,UAAU;IAEdpM,KAAK,CAAC1jB,IAAI,CAAC,WAAW,mBAAgBmV,UAAU,GAAGwO,UAAU,UAAM,CAAC;IAEpEjG,UAAQ,CAAC;MACP5d,GAAG;MACH6d,MAAM;MACNC,MAAM;MACNC,WAAW;MACXG,SAAS;MACTD;KACD,CAAC;IAEFsG,KAAK,CAACrkB,IAAI,CACR,WAAW,qBACK2d,MAAM,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI2E,YAAY,IAAI,CAAC,CAAC,OAAG,CAC3D;IAED,MAAMmN,MAAM,0BAAwBC,QAAQ,EAAI;IAEhDlwB,GAAG,CAACC,MAAM,CAAC,MAAM,CAAC,CACfA,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,IAAI,EAAE+vB,MAAM,CAAC,CAClBhwB,MAAM,CAAC,MAAM,CAAC,CACdC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CACrBA,IAAI,CAAC,QAAQ,EAAEN,MAAM,GAAGuV,YAAY,GAAG8Z,gBAAc,CAAC,CACtD/uB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;IAExB,MAAMiwB,IAAI,GAAGnwB,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,CACzBC,IAAI,CAAC,OAAO,EAAEqS,kBAAU,CAACqV,iBAAiB,CAAC,CAC3C1nB,IAAI,CAAC,MAAM,YAAU+vB,MAAM,MAAG,CAAC;IAElC,MAAMnF,MAAM,GAAGqF,IAAI,CAChB3pB,SAAS,CAAC,GAAG,CAAC,CACd8C,IAAI,CAACgjB,cAAc,CAAC,CACpB1gB,KAAK,EAAE,CACP3L,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CACH,WAAW,EACX,CAACkH,CAA4B,EAAER,CAAC,oBACjBpF,IAAI,CAACkC,KAAK,CACrBoa,MAAM,CAAElX,CAAuB,CAAW,CAC3C,SAAI,EAAEoO,SAAS,IAAI,CAAC,CAAC,MAAG,CAC5B;IAEH,MAAM+X,IAAI,GAAG4C,QAAQ,GACjBA,QAAQ,CAAC;MAAE7E,MAAM;MAAEjN,MAAM;MAAEyO,cAAc;MAAEhB;KAAU,CAAC,GACtD4D,OAAO,CAAC;MAAEpE,MAAM;MAAEQ;KAAU,CAAC;IAEjC6D,OAAO,CAAC5nB,OAAO,CAAE6oB,MAAM;MACrB,IAAI,CAACA,MAAM,EAAE;QACX;;MAGF,IAAIA,MAAM,CAACC,UAAU,EAAE;QACrB,IAAID,MAAM,CAACzP,IAAI,EAAE;UACf3gB,GAAG,CAACC,MAAM,CAAC,MAAM,CAAC,CACfmD,KAAK,CAAC,QAAQ,EAAEgtB,MAAM,CAACE,SAAS,IAAIF,MAAM,CAACpc,KAAK,IAAI,SAAS,CAAC,CAC9D5Q,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CACxBA,KAAK,CAAC,kBAAkB,EAAG,MAAO,CAAC,CACnClD,IAAI,CAAC,IAAI,EAAEmV,UAAU,GAAGwO,UAAU,CAAC,CACnC3jB,IAAI,CAAC,IAAI,EAAE2d,MAAM,CAACuS,MAAM,CAAC1pB,KAAK,CAAC,GAAG,CAAC,CAAC,CACpCxG,IAAI,CAAC,IAAI,EAAEjB,KAAK,CAAC,CACjBiB,IAAI,CAAC,IAAI,EAAE2d,MAAM,CAACuS,MAAM,CAAC1pB,KAAK,CAAC,GAAG,CAAC,CAAC;;QAGzC1G,GAAG,CAACC,MAAM,CAAC,MAAM,CAAC,CACfC,IAAI,CAAC,GAAG,EAAE2d,MAAM,CAACuS,MAAM,CAAC1pB,KAAK,CAAC,GAAG,CAAC,CAAC,CACnCxG,IAAI,CAAC,GAAG,EAAEmV,UAAU,GAAGwO,UAAU,CAAC,CAClC3jB,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC7BA,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAEkwB,MAAM,CAAC7iB,SAAS,CAAC,CAACyR,MAAM,CAAC9L,OAAO,CAAC,CAAC1G,IAAI,CAAC,GAAG,CAAC,CAAC,CACrEpJ,KAAK,CAAC,MAAM,EAAE,CAAAgtB,MAAM,oBAANA,MAAM,CAAEpc,KAAK,KAAI,SAAS,CAAC,CACzCnH,IAAI,CAACujB,MAAM,CAACvoB,KAAK,CAAC;QAErB;;MAGF,IAAIuoB,MAAM,CAACzP,IAAI,EAAE;QACf3gB,GAAG,CAACC,MAAM,CAAC,MAAM,CAAC,CACfmD,KAAK,CAAC,QAAQ,EAAEgtB,MAAM,CAACE,SAAS,IAAIF,MAAM,CAACpc,KAAK,IAAI,SAAS,CAAC,CAC9D5Q,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CACxBA,KAAK,CAAC,kBAAkB,EAAG,MAAO,CAAC,CACnClD,IAAI,CAAC,IAAI,EAAEjB,KAAK,GAAGqK,IAAI,CAAClE,MAAM,GAAGgrB,MAAM,CAAC1pB,KAAK,GAAG,CAAC,CAAC,CAClDxG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACbA,IAAI,CAAC,IAAI,EAAEjB,KAAK,GAAGqK,IAAI,CAAClE,MAAM,GAAGgrB,MAAM,CAAC1pB,KAAK,GAAG,CAAC,CAAC,CAClDxG,IAAI,CAAC,IAAI,EAAGN,MAAM,GAAGoV,SAAS,GAAGG,YAAY,GAAG,CAAE,CAAC;;MAGxDnV,GAAG,CAACC,MAAM,CAAC,MAAM,CAAC,CACfC,IAAI,CAAC,GAAG,EAAEN,MAAM,GAAG,CAAC,CAAC,CACrBM,IAAI,CAAC,GAAG,EAAEjB,KAAK,GAAGqK,IAAI,CAAClE,MAAM,GAAGgrB,MAAM,CAAC1pB,KAAK,GAAG,CAAC,CAAC,CACjDxG,IAAI,CAAC,aAAa,EAAEkwB,MAAM,CAACG,KAAK,KAAK,OAAO,GAAG,KAAK,GAAGH,MAAM,CAACG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,CACpGrwB,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAEkwB,MAAM,CAAC7iB,SAAS,CAAC,CAACyR,MAAM,CAAC9L,OAAO,CAAC,CAAC1G,IAAI,CAAC,GAAG,CAAC,CAAC,CACrEpJ,KAAK,CAAC,MAAM,EAAE,CAAAgtB,MAAM,oBAANA,MAAM,CAAEpc,KAAK,KAAI,SAAS,CAAC,CACzCnH,IAAI,CAACujB,MAAM,CAACvoB,KAAK,CAAC;KACtB,CAAC;IAEF,IAAI4X,KAAK,GAAG,IAAI;IAEhB,IAAIvY,KAAK,CAACod,OAAO,CAAC4B,QAAQ,CAAC,IAAIA,QAAQ,CAAC9gB,MAAM,GAAG,CAAC,EAAE;MAClDqa,KAAK,GAAGwG,SAAS,CAAC;QAChBjmB,GAAG;QACHkmB,QAAQ;QACRpI,MAAM;QACND,MAAM;QACNvc,GAAG,EAAE,OAAOmuB,aAAa,KAAK,QAAQ,GAAGA,aAAa,GAAGnuB,KAAG;QAC5D6kB,WAAW;QACX5c;OACD,CAAC;;IAGJimB,UAAU,IAAIA,UAAU,CAAC;MAAEzC,IAAI;MAAElP,MAAM;MAAE4B,KAAK;MAAE6M,cAAc;MAAEpG;KAAU,CAAC;IAE3E,IAAIjD,oBAAoB,IAAIkJ,aAAa,EAAE;MACzCra,aAAW,CAAC;QACV9R,GAAG;QACH5B,IAAI;QACJ0f,MAAM;QACND,MAAM;QACNyO,cAAc;QACdhjB,IAAI;QACJ4c,QAAQ;QACR/T,aAAa;QACbga,aAAa;QACbnX,SAAS;QACT3O,WAAW;QACXilB,QAAQ;QACRC,UAAU;QACVtI,oBAAoB;QACpBsJ,oBAAoB;QACpBC,QAAQ;QACRta,WAAW;QACXua,kBAAkB;QAClBC,iBAAiB;QACjBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,YAAY;QACZC,IAAI,EAAEjC,MAAM;QACZ9Y,WAAW;QACXC,gBAAgB;QAChB+a,UAAU;QACVC;OACD,CAAC;;IAGJnjB,SAAS,IAAIA,SAAS,CAAC;MAAE9J,GAAG;MAAEssB,cAAc;MAAEzO,MAAM;MAAEC,MAAM;MAAEoI;KAAU,CAAC;;AAE7E,CAAC;;MC5UYsK,QAAQ,GAAuBjsB,KAAK;EAC/C,MAAM;IAAEgJ,SAAS;IAAEnK,KAAK;IAAEkB,QAAQ;IAAEikB;GAAY,GAAGhkB,KAAK;EACxD,MAAM,CAAChG,GAAG,EAAEH,IAAI,CAAC,GAAGD,OAAO,EAAE;EAE7BoB,SAAS,CAAC;IACRnB,IAAI,IAAIoC,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;GAC1B,EAAE,CAACnG,IAAI,EAAEmG,KAAK,CAAC,CAAC;EAEjB,MAAMkJ,MAAM,GAAGA,MAAMjN,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;EAEtCvF,SAAS,CAACuF,KAAK,CAACtF,KAAK,EAAEwO,MAAM,CAAC;EAC9B+a,YAAY,CAACD,UAAU,GAAGnqB,IAAI,GAAG,IAAI,EAAEmG,KAAK,CAAC;EAE7C,OACEK;IAAK2I,SAAS,EAAEA,SAAS;IAAEnK,KAAK,EAAEA;KAChCwB,oBAAC8Y,eAAa,OAAG,EACjB9Y,oBAACyE,YAAU;IAAC9K,GAAG,EAAEA,GAAG;IAAEgqB,UAAU,EAAEA;KAAajkB,QAAQ,CAAc,CACjE;AAEV,CAAC;AAEDksB,QAAQ,CAAC3rB,YAAY,GAAG;EACtByE,IAAI,EAAE,EAAE;EACRkiB,MAAM,EAAE,EAAE;EACVlX,MAAM,EAAE;IACN1M,GAAG,EAAE,EAAE;IACPsN,KAAK,EAAE,EAAE;IACTE,MAAM,EAAE,EAAE;IACVjR,IAAI,EAAE;GACP;EACDmnB,QAAQ,EAAE,EAAE;EACZC,UAAU,EAAE,CAAC;EACb3rB,MAAM,EAAE,GAAG;EACXijB,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACf5Q,WAAW,EAAE,IAAI;EACjB4c,cAAc,EAAE;CACjB;;;ACjDD,AASA,MAAMzrB,OAAO,GAAG,GAAG;AAEnB,AAAO,MAAMotB,aAAa,GAAGpwB,IAAA;MAAC;IAC5BiJ,IAAI;IACJonB,UAAU;IACV1qB,QAAQ;IACRiB;GAID,GAAA5G,IAAA;EAIC,OAAOhB,OAAO,CAAC;IACb,MAAMsxB,OAAO,GAAG9wB,GAAM,CAACyJ,IAAI,EAAEyD,IAAI,IAC/BlN,GAAM,CAACkN,IAAI,EAAEvF,KAAA;MAAA,IAAC;QAAEd;OAAO,GAAAc,KAAA;MAAA,OAAKd,KAAK;MAAC,CACzB;IACX,MAAMkqB,aAAW,GAAG/wB,WACN,EAAE,CACb8K,MAAM,CAAC,CACN,CAAC,EACD,OAAO3E,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAG2qB,OAAO,CACtB,CAAC,CAC7BvvB,KAAK,CAAC,CAAC,CAAC,EAAEiC,OAAO,CAAC,CAAC;IAEtB,OAAO;MACLstB,OAAO;MACPrnB,IAAI,EAAEA,IAAI,CAACgB,GAAG,CAAC,CAACyC,IAA8B,EAAEhI,KAAK;QACnD,IAAI,CAAC2rB,UAAU,EAAE;UACfE,aAAW,CAACjmB,MAAM,CAAC,CACjB,CAAC,EACD,OAAO3E,QAAQ,KAAK,QAAQ,GACxBA,QAAQ,GACRnG,GAAM,CAACkN,IAAI,EAAE7B,KAAA;YAAA,IAAC;cAAExE;aAAO,GAAAwE,KAAA;YAAA,OAAKxE,KAAK;YAAC,CACX,CAAC;;QAGhC,OAAOqG,IAAI,CAACzC,GAAG,CAACe,KAAA;UAAA,IAAC;cAAE3E;aAAgB,GAAA2E,KAAA;YAANiW,IAAI,GAAA9c,6BAAA,CAAA6G,KAAA,EAAA5G,WAAA;UAAA,OAAAE,QAAA,KAC5B2c,IAAI;YACP5a,KAAK;YACLzH,KAAK,EAAE2xB,aAAW,CAAClqB,KAAK,CAAC;YACzBglB,SAAS,EAAEzkB,MAAM,GAAGA,MAAM,CAAClC,KAAK,CAAC,GAAG;;SACpC,CAAC;OACJ;KACF;GACF,EAAE,CAACuE,IAAI,EAAEonB,UAAU,EAAE1qB,QAAQ,EAAEiB,MAAM,CAAC,CAAC;AAC1C,CAAC;;;ACxDD,MAIa4pB,4BAA4B,GAAG;EAC1CC,0BAA0B,EAAE,4BAA4B;EACxDC,yBAAyB,EAAE,2BAA2B;EACtDC,2BAA2B,EAAE,6BAA6B;EAC1DC,uBAAuB,EAAE,yBAAyB;EAClDC,yBAAyB,EAAE,2BAA2B;EACtDC,qBAAqB,EAAE,uBAAuB;EAC9CC,0BAA0B,EAAE,4BAA4B;EACxDC,yBAAyB,EAAE,2BAA2B;EACtDC,yBAAyB,EAAE,2BAA2B;EACtDC,6BAA6B,EAAE,+BAA+B;EAC9DC,8BAA8B,EAAE,gCAAgC;EAChEC,kCAAkC,EAAE,oCAAoC;EACxEC,mCAAmC,EAAE,qCAAqC;EAC1EC,0BAA0B,EAAE,4BAA4B;EACxDC,0BAA0B,EAAE,4BAA4B;EACxDC,6BAA6B,EAAE,+BAA+B;EAC9DC,4BAA4B,EAAE,8BAA8B;EAC5DC,6BAA6B,EAAE,+BAA+B;EAC9DC,6BAA6B,EAAE,+BAA+B;EAC9DC,8BAA8B,EAAE;CACjC;AAED,AAAO,MAAMC,KAAK,gBAAGn0B,MAAM,CAACo0B,KAAK,CAAAl0B,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,0BAEhC;AAED,AAAO,MAAMk0B,SAAS,gBAAGr0B,MAAM,CAACC,GAAG,CAAAgK,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,gCAElC;AAED,AAAO,MAAMm0B,OAAO,gBAAGt0B,MAAM,CAACC,GAAG,CAAAmK,kBAAA,KAAAA,kBAAA,gBAAAjK,2BAAA,6DAIhC;AAED,AAAO,MAAMo0B,MAAM,gBAAGv0B,MAAM,CAACw0B,EAAE,CAAAlqB,kBAAA,KAAAA,kBAAA,gBAAAnK,2BAAA,4EAI9B;AAED,AAAO,MAAMwS,aAAW,gBAAG3S,MAAM,CAACy0B,WAAa,CAAC,CAAAjqB,kBAAA,KAAAA,kBAAA,gBAAArK,2BAAA,0HAM/C;AAED,AAAO,MAAMu0B,iBAAiB,gBAAG10B,MAAM,CAACC,GAAG,CAAAyK,kBAAA,KAAAA,kBAAA,gBAAAvK,2BAAA,iCAE1C;AAED,AAAO,MAAMw0B,QAAQ,gBAAG30B,MAAM,CAACC,GAAG,CAAAiT,kBAAA,KAAAA,kBAAA,gBAAA/S,2BAAA,sHAMjC;AAED,AAAO,MAAMy0B,YAAY,gBAAG50B,MAAM,CAACC,GAAG,CAAAmT,kBAAA,KAAAA,kBAAA,gBAAAjT,2BAAA,+GAMrC;;ACxDM,MAAM00B,OAAO,GAA2BvyB,IAAA;MAAC;IAC9C8R,aAAa;IACb4a,IAAI;IACJ3pB,KAAK;IACLmK;GACD,GAAAlN,IAAA;EACC,MAAMsM,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;EAE7B,OACE+E,oBAAC8L,aAAW;IACVnD,SAAS,EAAKgF,4BAAU,CAACgf,6BAA6B,UAAIhkB,SAAS,IACjE,EAAE,CAAE;IACNnK,KAAK,EAAEA;KAEPwB,oBAACiM,gBAAgB;IACftD,SAAS,EAAEgF,4BAAU,CAACkf;KAErBtf,aAAa,GACVA,aAAa,CAAC4a,IAAI,CAAC,GACnBA,IAAI,CAACziB,GAAG,CAAC,CAAA9C,KAAA,EAAoCzC,KAAK;IAAA,IAAxC;MAAEiP,KAAK;MAAEhI,IAAI;MAAEtF,KAAK;MAAEglB;KAAW,GAAAlkB,KAAA;IAAA,OACzC5C,oBAACmM,WAAW;MACVkD,GAAG,GAAKjI,IAAI,IAAI,EAAE,UAAIjH,KAAK,SAAI2mB,SAAW;MAC1Cne,SAAS,EAAEgF,4BAAU,CAACwf;OAErB/d,KAAK,IAAIpP,oBAACsM,QAAQ;MAAC9N,KAAK,EAAE;QAAE8Q,eAAe,EAAEF;;MAAW,EACxDhI,IAAI,IACHpH,oBAACmD,MAAI;MAACwF,SAAS,EAAEgF,4BAAU,CAACyf;OACzBhmB,IAAI,CAER,EACDpH,oBAAC2M,KAAK;MAAChE,SAAS,EAAEgF,4BAAU,CAAC0f;OAC1BtlB,QAAM,CAACjG,KAAK,CAAC,CACR,CACI;GACf,CAAC,CACW,CACP;AAElB,CAAC;;AC3CD,MAAMmsB,WAAW,gBAAmBxwB,QAAQ,CAACkU,aAAa,CAAC,KAAK,CAAC;AAEjE,AAAO,MAAMuc,UAAU,GAAGzyB,IAAA;MAAC;IACzB8R,aAAa;IACbD,WAAW;IACXG,YAAY;IACZL,WAAW;IACXC,gBAAgB;IAChB8gB;GASD,GAAA1yB,IAAA;EACCd,SAAS,CAAC;IACR,MAAM2C,SAAS,GACb8P,WAAW,IAAI3P,QAAQ,CAACiQ,aAAa,CAAC,MAAM,CAAC;IAE/CpQ,SAAS,IAAIA,SAAS,CAACiZ,WAAW,CAAC0X,WAAW,CAAC;IAC/C,OAAO;MACLG,sBAAsB,CAACH,WAAW,CAAC;KACpC;GACF,EAAE,CAAC7gB,WAAW,CAAC,CAAC;EAEjB,MAAMihB,WAAW,GAAGz0B,WAAW,CAC7B,CAACkE,KAAuB,EAAEqqB,IAAwC;IAChE,IAAI,CAAClqB,CAAC,EAAEyE,CAAC,CAAC,GAAGzH,OAAU,CAAC6C,KAAK,EAAEL,QAAQ,CAAC;IAExC,IAAI,CAAC6P,WAAW,IAAI,uBAAuB,IAAIxP,KAAK,CAAC8Q,MAAM,EAAE;MAC3D,MAAM;QACJvU,KAAK;QACLW;OACD,GAAa8C,KAAK,CAAC8Q,MAAyB,CAAC5Q,qBAAqB,EAAE;MACrE,MAAM,CAACswB,IAAI,EAAEC,IAAI,CAAC,GAAGtzB,OAAU,CAAC6C,KAAK,EAAEA,KAAK,CAAC8Q,MAAM,CAAC;MAEpD3Q,CAAC,GAAGA,CAAC,GAAGqwB,IAAI,GAAGj0B,KAAK,GAAG,CAAC;MACxBqI,CAAC,GAAGA,CAAC,GAAG6rB,IAAI,GAAGvzB,MAAM,GAAG,CAAC;;IAG3B,IAAIizB,WAAW,EAAE;MACfA,WAAW,CAACzvB,KAAK,CAACgwB,UAAU,GAAG,SAAS;;IAG1CC,MAAM,CACJzuB,oBAACguB,OAAO;MACNxvB,KAAK,EAAAuB,QAAA;QACHR,IAAI,EAAEtB,CAAC;QACP+E,GAAG,EAAEN;SACF+K,YAAY,CAChB;MACD0a,IAAI,EAAEA,IAAI;MACV5a,aAAa,EAAEA,aAAa;MAC5B5E,SAAS,EAAE0E;MACX,EACF4gB,WAAW,CACZ;GACF,EACD,CAAC5gB,gBAAgB,EAAEI,YAAY,EAAEF,aAAa,EAAED,WAAW,CAAC,CAC7D;EAED,MAAMyX,YAAY,GAAGnrB,WAAW,CAAC;IAC/B,IAAIq0B,WAAW,EAAE;MACfA,WAAW,CAACzvB,KAAK,CAACgwB,UAAU,GAAG,QAAQ;MACvCL,WAAW,IAAIA,WAAW,EAAE;;GAE/B,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,OAAO,CAACE,WAAW,EAAEtJ,YAAY,CAAC;AACpC,CAAC;;;ACpFD,AAaO,MAAM2J,eAAe,GAAI1U,cAAwB;EACtD,OAAOvf,OAAO,CACZ,MACEuf,cAAc,GACVve,IAAA;IAAA,IAAC;QACC0M,IAAI;QACJiT,SAAS;QACTuT,UAAU;QACVrhB;OAQD,GAAA7R,IAAA;MAPIkE,KAAK,GAAAC,6BAAA,CAAAnE,IAAA,EAAAoE,WAAA;IAAA,OAQRG,oBAAC+tB,YAAY;MACXplB,SAAS,EAAEgF,4BAAU,CAACif,8BAA8B;MACpDgC,WAAW,EAAE9wB,KAAK,IAAIsd,SAAS,CAACtd,KAAK,EAAEqK,IAAI,CAAC;MAC5CkmB,WAAW,EACT/gB,WAAW,GAAGxP,KAAK,IAAIsd,SAAS,CAACtd,KAAK,EAAEqK,IAAI,CAAC,GAAG,KAAK,CAAC;MAExD0mB,UAAU,EAAEF;OACRhvB,KAAK,EACT;GACH,GACDiD,KAAA;IAAA,IAAC;MAAElD;KAAoC,GAAAkD,KAAA;IAAA,OACrC5C,oBAAC8uB,QAAQ,QAAEpvB,QAAQ,CAAY;GAChC,EACP,CAACsa,cAAc,CAAC,CACjB;AACH,CAAC;;;AC7CD,AAEO,MAAM+U,SAAS,gBAAG51B,MAAM,CAACC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,2EAIlC;;ACCM,MAAM01B,GAAG,GAAuBvzB,IAAA;MAAC;IACtC0U,WAAW;IACX8e,GAAG;IACHC,iBAAiB;IACjB5hB,WAAW;IACX8N,SAAS;IACTuT,UAAU;IACVQ,iBAAiB;IACjBC,YAAY;IACZC,WAAW;IACXC;GACD,GAAA7zB,IAAA;EACC,MAAM;IAAE2T,KAAK;IAAE/U;GAAO,GAAG40B,GAAG;EAC5B,MAAMM,WAAW,GAAG3yB,IAAI,CAAC0a,GAAG,CAACjd,KAAK,CAAC;EACnC,MAAMg0B,WAAW,GAAGle,WAAW,GAC1BrS,KAAuB,IAAKsd,SAAS,CAACtd,KAAK,EAAE,CAACmxB,GAAG,CAAC,CAAC,GACpD,KAAK,CAAC;EACV,MAAMlK,YAAY,GAAG5U,WAAW,GAAG,MAAMwe,UAAU,EAAE,GAAG,KAAK,CAAC;EAE9D,OACE3uB,oBAAC+uB,SAAS;IACRpmB,SAAS,EAAKgF,4BAAU,CAAC4e,qBAAqB,UAC5C6C,YAAY,GAAGzhB,4BAAU,CAAC6e,0BAA0B,GAAG,EACzD,WAAI6C,WAAW,GAAG1hB,4BAAU,CAAC8e,yBAAyB,GAAG,EAAE,WACzD6C,WAAW,GAAG3hB,4BAAU,CAAC+e,yBAAyB,GAAG,EACvD,CAAE;IACFluB,KAAK,EAAE;MACLnE,KAAK,EAAKk1B,WAAW,MAAG;MACxBjgB,eAAe,EAAEF,KAAK;MACtBogB,aAAa,EAAEL,iBAAiB,GAAG,MAAM,GAAG;KAC7C;IACD9c,KAAK,EAAE6c,iBAAiB,GAAGA,iBAAiB,CAACD,GAAG,CAAC,GAAG,EAAE;IACtDL,WAAW,EAAEP,WAAW;IACxBA,WAAW,EAAE/gB,WAAW,GAAG+gB,WAAW,GAAG,KAAK,CAAC;IAC/CQ,UAAU,EAAE9J;IACZ;AAEN,CAAC;;ACpCD,MAAMtmB,SAAO,GAAG,GAAG;AAEnB,AAAO,MAAMgxB,QAAQ,GAAGh0B,IAAA;MAAC;IACvB2F,QAAQ;IACRsuB,UAAU;IACVC;GAID,GAAAl0B,IAAA;EACC,OAAOhB,OAAO,CAAC;IACb,MAAMuxB,aAAW,GAAG/wB,WACN,EAAE,CACb8K,MAAM,CAAC,CAAC,CAAC,EAAE3E,QAAQ,CAA6B,CAAC,CACjD5E,KAAK,CAAC,CAAC,CAAC,EAAEiC,SAAO,CAAC,CAAC;IAEtB,MAAMqH,KAAK,GAAGkmB,aAAW,CAAClmB,KAAK,CAAC4pB,UAAU,CAAC;IAE3C,OAAO,CAACC,WAAW,IAAI7pB,KAAK,EAAEJ,GAAG,CAAE5D,KAAa,KAAM;MACpDA,KAAK;MACL7D,CAAC,EAAE+tB,aAAW,CAAClqB,KAAK;KACrB,CAAC,CAAC;GACJ,EAAE,CAACV,QAAQ,EAAEsuB,UAAU,EAAEC,WAAW,CAAC,CAAC;AACzC,CAAC;;;AC/BD,AAEO,MAAMC,MAAM,gBAAGz2B,MAAM,CAACw0B,EAAE,CAAAt0B,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,iCAE9B;AAED,AAAO,MAAMu2B,KAAK,gBAAG12B,MAAM,CAACC,GAAG,CAAAgK,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,kDAG9B;AAED,AAAO,MAAMw2B,IAAI,gBAAG32B,MAAM,CAACC,GAAG,CAAAmK,kBAAA,KAAAA,kBAAA,gBAAAjK,2BAAA,uMAU7B;;ACXM,MAAMy2B,MAAM,GAGdt0B,IAAA;MAAC;IACJ2F,QAAQ;IACRsuB,UAAU;IACVM,WAAW;IACXL;GACD,GAAAl0B,IAAA;EACC,MAAMe,KAAK,GAAGizB,QAAQ,CAAC;IAAEruB,QAAQ;IAAEsuB,UAAU;IAAEC;GAAa,CAAC;EAC7D,MAAM5nB,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;EAE7B,OACE+E,gCACEA,+BAAM,EACNA,oBAAC4vB,MAAM;IAACjnB,SAAS,EAAEgF,4BAAU,CAACqf;KAC5BhtB,oBAAC6vB,KAAK;IAAClnB,SAAS,EAAEgF,4BAAU,CAACsf;KAC1BzwB,KAAK,CAACkJ,GAAG,CAAC,CAACgN,IAAI,EAAEvS,KAAK,EAAE2F,KAAK;IAC5B,MAAM;MAAEhE,KAAK;MAAE7D;KAAG,GAAGyU,IAAI;IAEzB,OACE1S,oBAAC8vB,IAAI;MACHzgB,GAAG,EAAEvN,KAAK;MACV6G,SAAS,EAAEgF,4BAAU,CAACuf,4BAA4B;MAClD1uB,KAAK,EAAE;QACLe,IAAI,EAAKtB,CAAC,MAAG;QACbgyB,cAAc,EACZ9vB,KAAK,KAAK,CAAC,GACP,YAAY,GACZA,KAAK,KAAK2F,KAAK,CAACtF,MAAM,GAAG,CAAC,GAC1B,UAAU,GACV;;OAGPwvB,WAAW,GAAGA,WAAW,CAACtd,IAAI,CAAC,GAAG3K,QAAM,CAACjG,KAAK,CAAC,CAC3C;GAEV,CAAC,CACI,CACD,CACN;AAET,CAAC;;MC9BYouB,kBAAkB,GAAgCz0B,IAAA;MAAC;IAC9DiJ,IAAI;IACJiE,SAAS;IACTnK,KAAK;IACLkB,QAAQ;IACR2C,MAAM;IACNypB,UAAU;IACV1qB,QAAQ;IACR8tB,iBAAiB;IACjB3hB,aAAa;IACb4C,WAAW;IACXggB,YAAY;IACZ7iB,WAAW;IACXoiB,UAAU;IACVM,WAAW;IACXI,YAAY;IACZ3iB,YAAY;IACZJ,gBAAgB;IAChBsiB,WAAW;IACXU,eAAe;IACfC,KAAK;IACLC,aAAa;IACbvW,cAAc;IACd7M,gBAAgB;IAChBghB;GACD,GAAA1yB,IAAA;EACC,MAAM;IAAEswB,OAAO;IAAErnB,IAAI,EAAE8rB;GAAgB,GAAG3E,aAAa,CAAC;IACtDnnB,IAAI;IACJonB,UAAU;IACV1qB,QAAQ;IACRiB;GACD,CAAC;EACF,MAAM,CAAC+Y,SAAS,EAAEuT,UAAU,CAAC,GAAGT,UAAU,CAAC;IACzC3gB,aAAa;IACbD,WAAW;IACXG,YAAY;IACZJ,gBAAgB;IAChB8gB;GACD,CAAC;EACF,MAAMsC,KAAK,GAAG/B,eAAe,CAAC1U,cAAc,CAAC;EAE7C,OACEha,oBAACstB,KAAK;IACJ3kB,SAAS,EAAEA,SAAS;IACpBnK,KAAK,EAAEA,KAAK;IACZowB,WAAW,EACTzhB,gBAAgB,GACZrP,KAAK,IAAIsd,SAAS,CAACtd,KAAK,EAAE0yB,cAAc,CAACE,IAAI,EAAE,CAAC,GAChD,KAAK,CAAC;IAEZrC,WAAW,EACTlhB,gBAAgB,GACZrP,KAAK,IAAIsd,SAAS,CAACtd,KAAK,EAAE0yB,cAAc,CAACE,IAAI,EAAE,CAAC,GAChD,KAAK,CAAC;IAEZ7B,UAAU,EAAE1hB,gBAAgB,GAAGwhB,UAAU,GAAG,KAAK;KAEhD2B,KAAK,EACNtwB,mCACCwwB,cAAc,CAAC9qB,GAAG,CAAC,CAACyC,IAAI,EAAEwoB,QAAQ;IACjC,MAAMC,QAAQ,GACZ,CAACT,YAAY,IAAIE,eAAe,KAChCp1B,GAAM,CAACkN,IAAI,EAAEvF,KAAA;MAAA,IAAC;QAAEd;OAAO,GAAAc,KAAA;MAAA,OAAKd,KAAK;MAAC;IACpC,MAAM+uB,QAAQ,GAAG51B,GAAM,CAACkN,IAAI,EAAE7B,KAAA;MAAA,IAAC;QAAEjM;OAAO,GAAAiM,KAAA;MAAA,OAAKjM,KAAK;MAAC;IAEnD,OACE2F;MAAIqP,GAAG,WAASshB;OACb,OAAOP,YAAY,KAAK,UAAU,IACjCpwB;MAAI2I,SAAS,EAAEgF,4BAAU,CAACue;OACvBkE,YAAY,CAACjoB,IAAI,EAAEwoB,QAAQ,CAAC,CAEhC,EACD3wB;MAAI2I,SAAS,EAAEgF,4BAAU,CAACwe;OACvB9pB,MAAM,IAAIA,MAAM,CAAEsuB,QAAQ,CAAE,IAC3B3wB,oBAACwtB,SAAS;MAAC7kB,SAAS,EAAEgF,4BAAU,CAACye;OAC9B/pB,MAAM,CAAEsuB,QAAQ,CAAE,CAEtB,CACE,EACL3wB,oBAAC0tB,MAAM;MACL/kB,SAAS,EAAEgF,4BAAU,CAAC0e,uBAAuB;MAC7C7tB,KAAK,EAAE;QAAEgxB,aAAa,EAAEriB,gBAAgB,GAAG,MAAM,GAAG;;OAEpDnN,oBAACytB,OAAO;MACN9kB,SAAS,EAAEgF,4BAAU,CAAC2e,yBAAyB;MAC/C9tB,KAAK,EAAE;QAAEgxB,aAAa,EAAEriB,gBAAgB,GAAG,MAAM,GAAG;;OAEpDnN,oBAACywB,KAAK;MACJjyB,KAAK,EAAEwb,cAAc,GAAG;QAAE3f,KAAK,EAAKw2B,QAAQ;OAAK,GAAG,KAAK,CAAC;MAC1D1oB,IAAI,EAAEA,IAAI;MACVmF,WAAW,EAAEA,WAAW;MACxB8N,SAAS,EAAEA,SAAS;MACpBuT,UAAU,EAAEA;MACZ,EACDxmB,IAAI,CAACzC,GAAG,CACP,CAACupB,GAAG,EAAE6B,QAAQ,EAAE5F,KAAK,KACnB+D,GAAG,CAACntB,KAAK,KAAK,CAAC,IACb9B,oBAACgvB,GAAG;MACF3f,GAAG,YAAS4f,GAAG,CAAC7nB,IAAI,IAAI,EAAE,UAAI0pB,QAAU;MACxC5B,iBAAiB,EAAEA,iBAAiB;MACpCD,GAAG,EAAEA,GAAG;MACR3hB,WAAW,EAAEA,WAAW;MACxB6hB,iBAAiB,EAAEnV,cAAc,IAAI7M,gBAAgB;MACrDgD,WAAW,EAAEA,WAAW,IAAI,CAAC6J,cAAc;MAC3CoB,SAAS,EAAEA,SAAS;MACpBuT,UAAU,EAAEA,UAAU;MACtBW,WAAW,EAAEpE,KAAK,CAAC1qB,MAAM,KAAK,CAAC;MAC/B4uB,YAAY,EAAE0B,QAAQ,KAAK,CAAC,IAAI5F,KAAK,CAAC1qB,MAAM,GAAG,CAAC;MAChD6uB,WAAW,EACTnE,KAAK,CAAC1qB,MAAM,GAAG,CAAC,KAAKswB,QAAQ,IAAI5F,KAAK,CAAC1qB,MAAM,GAAG;MAGrD,CACJ,EACA2vB,YAAY,IACXnwB,oBAAC6tB,iBAAiB;MAChBllB,SAAS,EAAEgF,4BAAU,CAACmf;OAEtB9sB,oBAAC8tB,QAAQ;MACPnlB,SAAS,EAAEgF,4BAAU,CAACof;OAErB6D,QAAQ,CACA,CAEd,CACO,CACH,EACRP,eAAe,IACdA,eAAe,CAACloB,IAAI,EAAEyoB,QAAkB,EAAED,QAAQ,CAAC,CAClD;GAER,CAAC,EACD,CAACJ,aAAa,IACbvwB,oBAAC+vB,MAAM;IACL3uB,QAAQ,EAAE,OAAOA,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAG2qB,OAAO;IAC3D2D,UAAU,EAAEA,UAAU;IACtBM,WAAW,EAAEA,WAAW;IACxBL,WAAW,EAAEA;IAEhB,EACAjwB,QAAQ,CACD,CACF;AAEZ,CAAC;AAEDwwB,kBAAkB,CAACjwB,YAAY,GAAG;EAChC6rB,UAAU,EAAE,IAAI;EAChB3b,WAAW,EAAE,KAAK;EAClBggB,YAAY,EAAE,KAAK;EACnB7iB,WAAW,EAAE,KAAK;EAClBoiB,UAAU,EAAE,CAAC;EACba,aAAa,EAAE;CAChB;;AC/KM,MAAMQ,uBAAuB,GAAG;EACrC/1B,MAAM,EAAE,GAAG;EACXg2B,OAAO,EAAE,CAAC;EACVC,OAAO,EAAE,EAAE;EACXvhB,MAAM,EAAE;IACN1M,GAAG,EAAE,EAAE;IACPsN,KAAK,EAAE,EAAE;IACTE,MAAM,EAAE,EAAE;IACVjR,IAAI,EAAE;GACP;EACD0e,YAAY,EAAE,EAAE;EAChBC,YAAY,EAAE,EAAE;EAChBgT,kBAAkB,EAAE;CACrB;;;ACZD,MAIaC,qBAAqB,GAAG;EACnCC,gBAAgB,EAAE,kBAAkB;EACpCC,wBAAwB,EAAE,0BAA0B;EACpDC,gBAAgB,EAAE,kBAAkB;EACpCC,qBAAqB,EAAE,uBAAuB;EAC9CC,oBAAoB,EAAE,sBAAsB;EAC5CC,oBAAoB,EAAE,sBAAsB;EAC5CC,iBAAiB,EAAE,mBAAmB;EACtCC,sBAAsB,EAAE,wBAAwB;EAChDC,kBAAkB,EAAE,oBAAoB;EACxCC,2BAA2B,EAAE,6BAA6B;EAC1DC,sBAAsB,EAAE,wBAAwB;EAChDC,cAAc,EAAE;CACjB;AAED,AAAO,MAAMttB,YAAU,gBAAGtL,MAAM,CAACD,OAAO,CAAC,CAAAG,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,6LACpC63B,qBAAqB,CAACC,gBAAgB,EACtCD,qBAAqB,CAACG,gBAAgB,EACtCH,qBAAqB,CAACI,qBAAqB,EAI3CJ,qBAAqB,CAACK,oBAAoB,EAC1CL,qBAAqB,CAACM,oBAAoB,EAI1CN,qBAAqB,CAACQ,sBAAsB,CAGhD;AAED,AAAO,MAAM7Y,eAAa,gBAAGC,iBAAiB,CAAA3V,kBAAA,KAAAA,kBAAA,gBAAA9J,2BAAA,6JACzC63B,qBAAqB,CAACU,2BAA2B,CAMvB;;ACxCxB,MAAM7Y,UAAQ,GAAGvd,IAAA;MAAC;IACvBL,GAAG;IACH6d,MAAM;IACNC,MAAM;IACNC,WAAW;IACXE,SAAS;IACTC;GACc,GAAA7d,IAAA;EACd,IAAI,CAAC6d,SAAS,IAAI,CAACD,SAAS,EAAE;EAC9B,MAAM,CAAC3c,GAAG,EAAEC,GAAG,CAAC,GAAGuc,MAAM,CAACnT,MAAM,EAAE;EAElC,MAAM2E,MAAM,GAAGtP,GAAG,CACfC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAE61B,qBAAqB,CAACI,qBAAqB,CAAC;EAE7D,MAAMhY,MAAM,GAAGN,MAAM,CAACnT,KAAK,CAACqT,WAAW,CAAC;EAExC,IAAIE,SAAS,EAAE;IACb3O,MAAM,CACHrP,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAAC6U,MAAM,CAAC,CACZ3R,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAE61B,qBAAqB,CAACK,oBAAoB,CAAC,CACzDl2B,IAAI,CAAC,IAAI,EAAE,MAAM4d,MAAM,CAACxc,GAAG,CAAC,CAAC,CAC7BpB,IAAI,CAAC,IAAI,EAAE,MAAM4d,MAAM,CAACvc,GAAG,CAAC,CAAC,CAC7BrB,IAAI,CAAC,IAAI,EAAGuM,CAAS,IAAKjL,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACpR,CAAC,CAAC,CAAC,CAAC,CAChDvM,IAAI,CAAC,IAAI,EAAGuM,CAAS,IAAKjL,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACpR,CAAC,CAAC,CAAC,CAAC;;EAGrD,IAAIyR,SAAS,EAAE;IACb5O,MAAM,CACHrP,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,MAAM,CAAC,CACjB8C,IAAI,CAACwU,MAAM,CAACpT,KAAK,CAACqT,WAAW,CAAC,CAAC,CAC/BvR,IAAI,CAAC,MAAM,CAAC,CACZtM,IAAI,CAAC,OAAO,EAAE61B,qBAAqB,CAACM,oBAAoB,CAAC,CACzDn2B,IAAI,CAAC,IAAI,EAAGuM,CAAS,IAAKjL,IAAI,CAACkC,KAAK,CAACoa,MAAM,CAACrR,CAAC,CAAC,CAAC,CAAC,CAChDvM,IAAI,CAAC,IAAI,EAAGuM,CAAS,IAAKjL,IAAI,CAACkC,KAAK,CAACoa,MAAM,CAACrR,CAAC,CAAC,CAAC,CAAC,CAChDvM,IAAI,CAAC,IAAI,EAAE,MAAMsB,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/Cje,IAAI,CAAC,IAAI,EAAE,MAAMsB,IAAI,CAACkC,KAAK,CAACma,MAAM,CAACM,MAAM,CAACA,MAAM,CAAC/Y,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEtE,CAAC;;;AC9CD,AAEO,MAAMwtB,SAAO,gBAAG70B,MAAM,CAACC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,yJAQhC;;ACDM,MAAM4T,aAAW,GAAGzR,IAAA;MAAC;IAC1Bu2B,OAAO;IACP5kB,WAAW;IACXC,gBAAgB;IAChBE;GACiB,GAAA9R,IAAA;EACjB,MAAMw2B,IAAI,GAAmB7kB,WAAW,IAAI3P,QAAQ,CAACiQ,aAAa,CAAC,MAAM,CAAC;EAC1E,MAAM3F,QAAM,GAAG9M,MAAS,CAAC,GAAG,CAAC;EAE7B,IAAIqC,SAAS,GAAyCrC,MAC7C,CAACg3B,IAAI,CAAC,CACZ/2B,MAAM,OAAKyS,qBAAU,CAACikB,kBAAoB,CAAC;EAE9C,IAAIt0B,SAAS,CAAC9D,IAAI,EAAE,KAAK,IAAI,EAAE;IAC7B8D,SAAS,GAAGrC,MACH,CAACg3B,IAAI,CAAC,CACZ52B,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CAAC,OAAO,EAAEqS,qBAAU,CAACikB,kBAAkB,CAAC;;EAGjD,IAAIlJ,OAAO,GAKPprB,SAAS,CACVjC,MAAM,CAAC,KAAK,CAAC,CACbC,IAAI,CACH,OAAO,EACJqS,qBAAU,CAACkkB,2BAA2B,UAAIxkB,gBAAgB,IAAI,EAAE,CAAE,CACtE,CACA7O,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;EAExBwzB,OAAO,CAAChzB,EAAE,CAAC,mBAAmB,EAAE,CAAClB,KAAK,EAAE4G,IAAI;IAC1C,MAAM;MAAEwtB;KAAW,GAAGxtB,IAAI;IAC1B,MAAMytB,MAAM,GAAGr0B,KAAK,CAACs0B,aAAiC;IACtD,MAAM;MAAEn0B,CAAC;MAAEyE,CAAC;MAAErI;KAAO,GAAG83B,MAAM,CAACn0B,qBAAqB,EAAE;IACtD,MAAMuB,IAAI,GAAG3E,MAAM,CAACy3B,WAAW,GAAGp0B,CAAC,GAAG5D,KAAK,GAAG,CAAC;IAC/C,MAAM2I,GAAG,GAAGpI,MAAM,CAAC03B,WAAW,GAAG5vB,CAAC;IAElCgmB,OAAO,CACJlqB,KAAK,CAAC,MAAM,EAAKe,IAAI,OAAI,CAAC,CAC1Bf,KAAK,CAAC,KAAK,EAAKwE,GAAG,OAAI,CAAC,CACxBH,IAAI,CAAC;MACJ,MAAMA,IAAI,GAAGC,cAAc,CAACC,cAAc,CACxC/C,oBAACguB,SAAO;QAACrlB,SAAS,EAAEgF,qBAAU,CAACmkB;SAC7B9xB,oBAACiM,gBAAgB;QAACtD,SAAS,EAAEgF,qBAAU,CAACokB;SACrChqB,QAAM,CAACmqB,SAAS,CAAC,CACD,CACX,CACX;MAED,OAAOrvB,IAAI;KACZ,CAAC;IAEJ0K,aAAa,IAAIA,aAAa,CAAC;MAAEmb,OAAO;MAAEhkB,IAAI;MAAEytB;KAAQ,CAAC;IAEzDzJ,OAAO,CAAClqB,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;GAC9B,CAAC;EAEFwzB,OAAO,CAAChzB,EAAE,CAAC,kBAAkB,EAAE;IAC7B0pB,OAAO,CAAClqB,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;GAC9B,CAAC;AACJ,CAAC;;AC3DM,MAAM5C,MAAI,GAAGA,CAClBpC,IAAwB,EACxBmG,KAAuB;EAEvB,MAAM;IACJ+E,IAAI;IACJgL,MAAM;IACNwO,YAAY;IACZD,YAAY;IACZK,YAAY;IACZP,WAAW;IACX0M,YAAY;IACZzM,WAAW;IACXgT,OAAO;IACPC,OAAO;IACPsB,SAAS;IACTC,SAAS;IACTlZ,SAAS;IACTD,SAAS;cACToZ,UAAQ;IACRjU,eAAe;IACfkU,WAAW;IACXxtB,SAAS;IACTytB,WAAW;IACXzB,kBAAkB;IAClB0B,aAAa;IACbxlB,WAAW;IACXC,gBAAgB;IAChBE;GACD,GAAG5N,KAAK;EAET,IAAInG,IAAI,KAAK,IAAI,IAAIkL,IAAI,CAAClE,MAAM,EAAE;IAChC,MAAM4P,SAAS,GAAGV,MAAM,GAAGA,MAAM,CAAC1M,GAAG,GAAG,CAAC;IACzC,MAAMqN,WAAW,GAAGX,MAAM,GAAGA,MAAM,CAACY,KAAK,GAAG,CAAC;IAC7C,MAAMC,YAAY,GAAGb,MAAM,GAAGA,MAAM,CAACc,MAAM,GAAG,CAAC;IAC/C,MAAMC,UAAU,GAAGf,MAAM,GAAGA,MAAM,CAACnQ,IAAI,GAAG,CAAC;IAC3C,MAAM;MAAElF,KAAK,EAAE0D;KAAW,GAAGvE,IAAI,CAACwE,qBAAqB,EAAE;IACzD,MAAM3D,KAAK,GAAGsF,KAAK,CAACtF,KAAK,IAAI0D,SAAS;IACtC,MAAM/C,MAAM,GAAG2E,KAAK,CAAC3E,MAAM,IAAI,CAAC;IAChC,MAAM6jB,kBAAkB,GAAG,CAAC;IAE5B,MAAMgU,IAAI,GACR,OAAON,SAAS,KAAK,QAAQ,GACzBA,SAAS,GACRt3B,GAAM,CAACyJ,IAAI,EAAEjJ,IAAA;MAAA,IAAC;QAAEq3B;OAAQ,GAAAr3B,IAAA;MAAA,OAAKq3B,MAAM;MAAY;IACtD,MAAMC,IAAI,GACR,OAAOP,SAAS,KAAK,QAAQ,GACzBA,SAAS,GACRv3B,GAAM,CAACyJ,IAAI,EAAE9B,KAAA;MAAA,IAAC;QAAEkwB;OAAQ,GAAAlwB,KAAA;MAAA,OAAKkwB,MAAM;MAAY;IAEtD,MAAM13B,GAAG,GAAGL,SAAS,CAACvB,IAAI,EAAEa,KAAK,EAAEW,MAAM,IAAI,CAAC,CAAC;IAE/C,MAAMg4B,SAAS,GAAGP,UAAQ,GACtBx3B,QACS,EAAE,CACV8K,MAAM,CAAC,CACN9K,GAAM,CAACyJ,IAAI,EAAE4B,KAAA;MAAA,IAAC;QAAE4rB;OAAW,GAAA5rB,KAAA;MAAA,OAAK4rB,SAAS;MAAW,IAAI,GAAG,EAC3Dj3B,GAAM,CAACyJ,IAAI,EAAE+B,KAAA;MAAA,IAAC;QAAEyrB;OAAW,GAAAzrB,KAAA;MAAA,OAAKyrB,SAAS;MAAW,IAAI,GAAG,CAC5D,CAAC,CACD11B,KAAK,CAAC,CACLw0B,OAAO,IAAID,uBAAuB,CAACC,OAAO,IAAI,GAAG,EACjDC,OAAO,IAAIF,uBAAuB,CAACE,OAAO,IAAI,GAAG,CAClD,CAAC,GACFh2B,WACY,EAAE,CACb8K,MAAM,CAAC,CACN9K,GAAM,CAACyJ,IAAI,EAAEyC,KAAA;MAAA,IAAC;QAAE+qB;OAAW,GAAA/qB,KAAA;MAAA,OAAK+qB,SAAS;MAAW,EACpDj3B,GAAM,CAACyJ,IAAI,EAAE2D,KAAA;MAAA,IAAC;QAAE6pB;OAAW,GAAA7pB,KAAA;MAAA,OAAK6pB,SAAS;MAAW,CACrD,CAAC,CACD11B,KAAK,CAAC,CACLw0B,OAAO,IAAID,uBAAuB,CAACC,OAAO,EAC1CC,OAAO,IAAIF,uBAAuB,CAACE,OAAO,CAC3C,CAAC;IAEN,MAAMgC,OAAO,GAAGj4B,MAAM,GAAGoV,SAAS,GAAGG,YAAY,IAAI2N,YAAY,IAAI,CAAC,CAAC;IAEvE,MAAMjF,MAAM,GAAGwZ,UAAQ,GACnBx3B,QACS,EAAE,CACV8K,MAAM,CAAC,CAAC8sB,IAAI,IAAI,GAAG,EAAEE,IAAI,IAAI,GAAG,CAAC,CAAC,CAClCv2B,KAAK,CAAC,CAACy2B,OAAO,IAAI,GAAG,EAAE7iB,SAAS,IAAI,GAAG,CAAC,CAAC,CACzCwO,IAAI,EAAE,GACP3jB,WACY,EAAE,CACb8K,MAAM,CAAC,CAAC8sB,IAAI,EAAEE,IAAI,CAAC,CAAC,CACpBv2B,KAAK,CAAC,CAACy2B,OAAO,EAAE7iB,SAAS,CAAC,CAAC,CAC3BwO,IAAI,EAAE;IAEXN,YAAY,IAAIA,YAAY,CAACrF,MAAM,CAAC;IAEpC,MAAMM,MAAM,GAAGN,MAAM,CAACnT,KAAK,EAAE;IAC7B,MAAMgZ,SAAS,GAAG7jB,QAAW,CAACge,MAAM,CAAC,CAACnT,KAAK,CAAC+Y,kBAAkB,CAAC;IAE/D,MAAM1F,WAAW,GAAG2F,SAAS,CAACC,aAAa,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAMC,KAAK,GAAG5jB,GAAG,CACdC,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC,OAAO,EAAEqS,qBAAU,CAACyjB,gBAAgB,CAAC,CAC1Cne,IAAI,CAAC6L,SAAS,CAAC;IAElB,IAAIoU,iBAAiB,GAAGhC,kBAAkB,IAAI,CAAC;IAE/C,IAAIyB,WAAW,EAAE;MACf,MAAM1vB,KAAK,GAAG7H,GAAG,CACdC,MAAM,CAAC,MAAM,CAAC,CACd4M,IAAI,CAAC0qB,WAAW,CAAC,CACjBr3B,IAAI,CAAC,OAAO,EAAEqS,qBAAU,CAACgkB,sBAAsB,CAAC;MAEnD,MAAM;QAAEt3B,KAAK;QAAEW;OAAQ,GAAGyb,iBAAiB,CAACxT,KAAK,CAAC;MAElDiwB,iBAAiB,GAAGA,iBAAiB,GAAGl4B,MAAM;MAE9CiI,KAAK,CAAC3H,IAAI,CACR,WAAW,8BACe,CAAC23B,OAAO,GAAG1iB,YAAY,GAAGlW,KAAK,IACvD,CAAC,UAAKW,MAAM,MAAG,CAClB;;IAGHgkB,KAAK,CAACpd,SAAS,CAAC,OAAO,CAAC,CAACtG,IAAI,CAAC,OAAO,EAAEwG,KAAK;MAC1C,OAAOA,KAAK,KAAK,CAAC,aACN6L,qBAAU,CAAC0jB,wBAAwB,GAC3C,MAAM;KACX,CAAC;IAEFtT,WAAW,IAAIA,WAAW,CAACiB,KAAK,CAAC;IAEjC,MAAM;MAAE3kB,KAAK,EAAE4kB;KAAY,GAAGxI,iBAAiB,CAACuI,KAAK,CAAC;IAEtD,MAAM9F,MAAM,GAAGuZ,UAAQ,GACnBx3B,QACS,EAAE,CACV8K,MAAM,CAAC,CACN9K,GAAM,CAACyJ,IAAI,EAAE+X,KAAA;MAAA,IAAC;QAAE0W;OAAQ,GAAA1W,KAAA;MAAA,OAAK0W,MAAM;MAAW,IAAI,GAAG,EACrDl4B,GAAM,CAACyJ,IAAI,EAAEoY,KAAA;MAAA,IAAC;QAAEqW;OAAQ,GAAArW,KAAA;MAAA,OAAKqW,MAAM;MAAW,IAAI,GAAG,CACtD,CAAC,CACD32B,KAAK,CAAC,CACJiU,UAAU,GAAGwO,UAAU,IAAIhB,YAAY,IAAI,CAAC,CAAC,GAAGiV,iBAAiB,IAAK,GAAG,EACzE74B,KAAK,GAAGgW,WAAW,IAAK,GAAG,CAC7B,CAAC,GACFpV,WACY,EAAE,CACb8K,MAAM,CAAC,CACN9K,GAAM,CAACyJ,IAAI,EAAE+b,KAAA;MAAA,IAAC;QAAE0S;OAAQ,GAAA1S,KAAA;MAAA,OAAK0S,MAAM;MAAW,EAC9Cl4B,GAAM,CAACyJ,IAAI,EAAEic,KAAA;MAAA,IAAC;QAAEwS;OAAQ,GAAAxS,KAAA;MAAA,OAAKwS,MAAM;MAAW,CAC/C,CAAC,CACD32B,KAAK,CAAC,CACLiU,UAAU,GAAGwO,UAAU,IAAIhB,YAAY,IAAI,CAAC,CAAC,GAAGiV,iBAAiB,EACjE74B,KAAK,GAAGgW,WAAW,CACpB,CAAC;IAENoa,YAAY,IAAIA,YAAY,CAACvR,MAAM,CAAC;IAEpC,MAAMsG,WAAW,GAAGvkB,UAAa,CAACie,MAAM,CAAC;IAEzC,IAAI,OAAOsF,eAAe,KAAK,QAAQ,EAAE;MACvC,MAAM,CAAClE,EAAE,EAAEC,EAAE,CAAC,GAAGrB,MAAM,CAAC1c,KAAK,EAAE;MAC/B,MAAM8Y,UAAU,GAAGiF,EAAE,GAAGD,EAAE;MAE1BkF,WAAW,CACR1Z,KAAK,CAAClJ,IAAI,CAACkC,KAAK,CAACwW,UAAU,GAAGkJ,eAAe,CAAC,CAAC,CAC/CiB,aAAa,CAAC,CAAC,CAAC;;IAGrB,MAAME,KAAK,GAAGvkB,GAAG,CACdC,MAAM,CAAC,GAAG,CAAC,CACX4X,IAAI,CAACuM,WAAW,CAAC,CACjBlkB,IAAI,CAAC,OAAO,EAAEqS,qBAAU,CAAC2jB,gBAAgB,CAAC;IAE7CtT,WAAW,IAAIA,WAAW,CAAC2B,KAAK,CAAC;IAEjCX,KAAK,CAAC1jB,IAAI,CACR,WAAW,kBACEmV,UAAU,GAAGwO,UAAU,GAAGiU,iBAAiB,UAAM,CAC/D;IAEDla,UAAQ,CAAC;MACP5d,GAAG;MACH6d,MAAM;MACNC,MAAM;MACNC,WAAW;MACXG,SAAS;MACTD;KACD,CAAC;IAEFsG,KAAK,CAACrkB,IAAI,CACR,WAAW,qBACK2d,MAAM,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI2E,YAAY,IAAI,CAAC,CAAC,OAAG,CAC3D;IAED,MAAM8T,OAAO,GAAG52B,GAAG,CAChBC,MAAM,CAAC,GAAG,CAAC,CACXuG,SAAS,CAAC,KAAK,CAAC,CAChB8C,IAAI,CAACA,IAAI,CAAC,CACVsC,KAAK,EAAE,CACP3L,MAAM,CAAC,QAAQ,CAAC,CAChBC,IAAI,CAAC,OAAO,EAAEqS,qBAAU,CAAC+jB,iBAAiB,CAAC,CAC3Cp2B,IAAI,CAAC,IAAI,EAAE83B,KAAA;MAAA,IAAC;QAAED;OAAQ,GAAAC,KAAA;MAAA,OAAKla,MAAM,CAACia,MAAM,CAAC;MAAC,CAC1C73B,IAAI,CAAC,IAAI,EAAE+3B,MAAA;MAAA,IAAC;QAAEP;OAAQ,GAAAO,MAAA;MAAA,OAAKpa,MAAM,CAAC6Z,MAAM,CAAC;MAAC,CAC1Cx3B,IAAI,CAAC,GAAG,EAAEg4B,MAAA;MAAA,IAAC;QAAEpB;OAAW,GAAAoB,MAAA;MAAA,OAAKN,SAAS,CAACd,SAAS,CAAC,GAAG,CAAC;MAAC,CACtD52B,IAAI,CAAC,MAAM,EAAEi4B,MAAA;MAAA,IAAC;QAAEnkB;OAAO,GAAAmkB,MAAA;MAAA,OAAKnkB,KAAK,IAAI,wBAAwB;MAAC,CAC9D9T,IAAI,CAAC,QAAQ,EAAEk4B,MAAA;MAAA,IAAC;QAAEvY;OAAQ,GAAAuY,MAAA;MAAA,OAAKvY,MAAM,IAAI,aAAa;MAAC,CACvD3f,IAAI,CAAC,OAAO,EAAEm4B,MAAA;MAAA,IAAC;QAAEj1B;OAAO,GAAAi1B,MAAA;MAAA,OAAKj1B,KAAK,IAAIk0B,WAAW,IAAI,EAAE;MAAC;IAE3D,IAAIE,aAAa,EAAE;MACjB1lB,aAAW,CAAC;QAAE8kB,OAAO;QAAE5kB,WAAW;QAAEC,gBAAgB;QAAEE;OAAe,CAAC;;IAGxErI,SAAS,IAAIA,SAAS,CAAC;MAAE9J,GAAG;MAAE42B,OAAO;MAAE/Y,MAAM;MAAEC,MAAM;MAAE8Z;KAAW,CAAC;;AAEvE,CAAC;;AC3NM,MAAMU,OAAO,GAAItmB,WAAqB;EAC3C,MAAM6kB,IAAI,GAAmB7kB,WAAW,IAAI3P,QAAQ,CAACiQ,aAAa,CAAC,MAAM,CAAC;EAE1EzS,MAAS,CAACg3B,IAAI,CAAC,CACZ/2B,MAAM,OAAKyS,qBAAU,CAACikB,kBAAoB,CAAC,CAC3Cz2B,MAAM,EAAE;AACb,CAAC;;MCGYw4B,WAAW,GACtBh0B,KAAK;EAEL,MAAM;IAAEgJ,SAAS;IAAEnK,KAAK;IAAEkB,QAAQ;IAAE0N;GAAa,GAAGzN,KAAK;EACzD,MAAM,CAAChG,GAAG,EAAEH,IAAI,CAAC,GAAGD,OAAO,EAAE;EAE7BoB,SAAS,CAAC;IACRnB,IAAI,IAAIoC,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;GAC1B,EAAE,CAACnG,IAAI,EAAEmG,KAAK,CAAC,CAAC;EAEjBhF,SAAS,CAAC;IACR,OAAO,MAAM+4B,OAAO,CAACtmB,WAAW,CAAC;GAClC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMvE,MAAM,GAAGA,MAAMjN,MAAI,CAACpC,IAAI,EAAEmG,KAAK,CAAC;EAEtCvF,SAAS,CAACuF,KAAK,CAACtF,KAAK,EAAEwO,MAAM,CAAC;EAE9B,OACE7I;IAAK2I,SAAS,EAAEA,SAAS;IAAEnK,KAAK,EAAEA;KAChCwB,oBAAC8Y,eAAa,OAAG,EACjB9Y,oBAACyE,YAAU;IAAC9K,GAAG,EAAEA;KAAM+F,QAAQ,CAAc,CACzC;AAEV,CAAC;AAEDi0B,WAAW,CAAC1zB,YAAY,GAAG8wB,uBAAuB;;;;"}
1
+ {"version":3,"file":"charts.esm.js","sources":["../../../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../../node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/styled-components/dist/styled-components.browser.esm.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/internmap/src/index.js","../../../node_modules/d3-array/src/identity.js","../../../node_modules/d3-array/src/group.js","../../../node_modules/d3-array/src/sort.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-array/src/quickselect.js","../../../node_modules/d3-array/src/quantile.js","../../../node_modules/d3-array/src/range.js","../../../node_modules/d3-array/src/sum.js","../../../node_modules/d3-axis/src/identity.js","../../../node_modules/d3-axis/src/axis.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/create.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/pointer.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/basis.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-interpolate/src/quantize.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-scale/src/band.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js","../../../node_modules/d3-scale/src/nice.js","../../../node_modules/d3-scale/src/log.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/sequential.js","../../../node_modules/d3-scale-chromatic/src/colors.js","../../../node_modules/d3-scale-chromatic/src/ramp.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/math.js","../../../node_modules/d3-shape/src/path.js","../../../node_modules/d3-shape/src/arc.js","../../../node_modules/d3-shape/src/array.js","../../../node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3-shape/src/point.js","../../../node_modules/d3-shape/src/line.js","../../../node_modules/d3-shape/src/area.js","../../../node_modules/d3-shape/src/descending.js","../../../node_modules/d3-shape/src/identity.js","../../../node_modules/d3-shape/src/pie.js","../../../node_modules/d3-shape/src/curve/radial.js","../../../node_modules/d3-shape/src/lineRadial.js","../../../node_modules/d3-shape/src/noop.js","../../../node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/d3-zoom/src/transform.js"],"sourcesContent":["function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import{typeOf as e,isElement as t,isValidElementType as n}from\"react-is\";import r,{useState as o,useContext as s,useMemo as i,useEffect as a,useRef as c,createElement as u,useDebugValue as l,useLayoutEffect as d}from\"react\";import h from\"shallowequal\";import p from\"@emotion/stylis\";import f from\"@emotion/unitless\";import m from\"@emotion/is-prop-valid\";import y from\"hoist-non-react-statics\";function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var g=function(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n},S=function(t){return null!==t&&\"object\"==typeof t&&\"[object Object]\"===(t.toString?t.toString():Object.prototype.toString.call(t))&&!e(t)},w=Object.freeze([]),E=Object.freeze({});function b(e){return\"function\"==typeof e}function _(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function N(e){return e&&\"string\"==typeof e.styledComponentId}var A=\"undefined\"!=typeof process&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",C=\"5.3.5\",I=\"undefined\"!=typeof window&&\"HTMLElement\"in window,P=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),O={},R=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"}:{};function D(){for(var e=arguments.length<=0?void 0:arguments[0],t=[],n=1,r=arguments.length;n<r;n+=1)t.push(n<0||arguments.length<=n?void 0:arguments[n]);return t.forEach((function(t){e=e.replace(/%[a-z]/,t)})),e}function j(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://git.io/JUIaE#\"+e+\" for more information.\"+(n.length>0?\" Args: \"+n.join(\", \"):\"\")):new Error(D.apply(void 0,[R[e]].concat(n)).trim())}var T=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&j(16,\"\"+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s<o;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=0,c=t.length;a<c;a++)this.tag.insertRule(i,t[a])&&(this.groupSizes[e]++,i++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),r=n+t;this.groupSizes[e]=0;for(var o=n;o<r;o++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s<o;s++)t+=this.tag.getRule(s)+\"/*!sc*/\\n\";return t},e}(),x=new Map,k=new Map,V=1,B=function(e){if(x.has(e))return x.get(e);for(;k.has(V);)V++;var t=V++;return\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>1<<30)&&j(16,\"\"+t),x.set(e,t),k.set(t,e),t},z=function(e){return k.get(e)},M=function(e,t){t>=V&&(V=t+1),x.set(e,t),k.set(t,e)},G=\"style[\"+A+'][data-styled-version=\"5.3.5\"]',L=new RegExp(\"^\"+A+'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),F=function(e,t,n){for(var r,o=n.split(\",\"),s=0,i=o.length;s<i;s++)(r=o[s])&&e.registerName(t,r)},Y=function(e,t){for(var n=(t.textContent||\"\").split(\"/*!sc*/\\n\"),r=[],o=0,s=n.length;o<s;o++){var i=n[o].trim();if(i){var a=i.match(L);if(a){var c=0|parseInt(a[1],10),u=a[2];0!==c&&(M(u,c),F(e,u,a[3]),e.getTag().insertRules(c,r)),r.length=0}else r.push(i)}}},q=function(){return\"undefined\"!=typeof window&&void 0!==window.__webpack_nonce__?window.__webpack_nonce__:null},H=function(e){var t=document.head,n=e||t,r=document.createElement(\"style\"),o=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(A))return r}}(n),s=void 0!==o?o.nextSibling:null;r.setAttribute(A,\"active\"),r.setAttribute(\"data-styled-version\",\"5.3.5\");var i=q();return i&&r.setAttribute(\"nonce\",i),n.insertBefore(r,s),r},$=function(){function e(e){var t=this.element=H(e);t.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n<r;n++){var o=t[n];if(o.ownerNode===e)return o}j(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&\"string\"==typeof t.cssText?t.cssText:\"\"},e}(),W=function(){function e(e){var t=this.element=H(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),U=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),J=I,X={isServer:!I,useCSSOMInjection:!P},Z=function(){function e(e,t,n){void 0===e&&(e=E),void 0===t&&(t={}),this.options=v({},X,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&I&&J&&(J=!1,function(e){for(var t=document.querySelectorAll(G),n=0,r=t.length;n<r;n++){var o=t[n];o&&\"active\"!==o.getAttribute(A)&&(Y(e,o),o.parentNode&&o.parentNode.removeChild(o))}}(this))}e.registerId=function(e){return B(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(v({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,r=t.useCSSOMInjection,o=t.target,e=n?new U(o):r?new $(o):new W(o),new T(e)));var e,t,n,r,o},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(B(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(B(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(B(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,r=\"\",o=0;o<n;o++){var s=z(o);if(void 0!==s){var i=e.names.get(s),a=t.getGroup(o);if(i&&a&&i.size){var c=A+\".g\"+o+'[id=\"'+s+'\"]',u=\"\";void 0!==i&&i.forEach((function(e){e.length>0&&(u+=e+\",\")})),r+=\"\"+a+c+'{content:\"'+u+'\"}/*!sc*/\\n'}}}return r}(this)},e}(),K=/(a)(d)/gi,Q=function(e){return String.fromCharCode(e+(e>25?39:97))};function ee(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=Q(t%52)+n;return(Q(t%52)+n).replace(K,\"$1-$2\")}var te=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},ne=function(e){return te(5381,e)};function re(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(b(n)&&!N(n))return!1}return!0}var oe=ne(\"5.3.5\"),se=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&re(e),this.componentId=t,this.baseHash=te(oe,t),this.baseStyle=n,Z.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var r=this.componentId,o=[];if(this.baseStyle&&o.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(r,this.staticRulesId))o.push(this.staticRulesId);else{var s=Ne(this.rules,e,t,n).join(\"\"),i=ee(te(this.baseHash,s)>>>0);if(!t.hasNameForId(r,i)){var a=n(s,\".\"+i,void 0,r);t.insertRules(r,i,a)}o.push(i),this.staticRulesId=i}else{for(var c=this.rules.length,u=te(this.baseHash,n.hash),l=\"\",d=0;d<c;d++){var h=this.rules[d];if(\"string\"==typeof h)l+=h,\"production\"!==process.env.NODE_ENV&&(u=te(u,h+d));else if(h){var p=Ne(h,e,t,n),f=Array.isArray(p)?p.join(\"\"):p;u=te(u,f+d),l+=f}}if(l){var m=ee(u>>>0);if(!t.hasNameForId(r,m)){var y=n(l,\".\"+m,void 0,r);t.insertRules(r,m,y)}o.push(m)}}return o.join(\" \")},e}(),ie=/^\\s*\\/\\/.*$/gm,ae=[\":\",\"[\",\".\",\"#\"];function ce(e){var t,n,r,o,s=void 0===e?E:e,i=s.options,a=void 0===i?E:i,c=s.plugins,u=void 0===c?w:c,l=new p(a),d=[],h=function(e){function t(t){if(t)try{e(t+\"}\")}catch(e){}}return function(n,r,o,s,i,a,c,u,l,d){switch(n){case 1:if(0===l&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===u)return r+\"/*|*/\";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===d?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t)}}}((function(e){d.push(e)})),f=function(e,r,s){return 0===r&&-1!==ae.indexOf(s[n.length])||s.match(o)?e:\".\"+t};function m(e,s,i,a){void 0===a&&(a=\"&\");var c=e.replace(ie,\"\"),u=s&&i?i+\" \"+s+\" { \"+c+\" }\":c;return t=a,n=s,r=new RegExp(\"\\\\\"+n+\"\\\\b\",\"g\"),o=new RegExp(\"(\\\\\"+n+\"\\\\b){2,}\"),l(i||!s?\"\":s,u)}return l.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,f))},h,function(e){if(-2===e){var t=d;return d=[],t}}])),m.hash=u.length?u.reduce((function(e,t){return t.name||j(15),te(e,t.name)}),5381).toString():\"\",m}var ue=r.createContext(),le=ue.Consumer,de=r.createContext(),he=(de.Consumer,new Z),pe=ce();function fe(){return s(ue)||he}function me(){return s(de)||pe}function ye(e){var t=o(e.stylisPlugins),n=t[0],s=t[1],c=fe(),u=i((function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=i((function(){return ce({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return a((function(){h(n,e.stylisPlugins)||s(e.stylisPlugins)}),[e.stylisPlugins]),r.createElement(ue.Provider,{value:u},r.createElement(de.Provider,{value:l},\"production\"!==process.env.NODE_ENV?r.Children.only(e.children):e.children))}var ve=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=pe);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,\"@keyframes\"))},this.toString=function(){return j(12,String(n.name))},this.name=e,this.id=\"sc-keyframes-\"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=pe),this.name+e.hash},e}(),ge=/([A-Z])/,Se=/([A-Z])/g,we=/^ms-/,Ee=function(e){return\"-\"+e.toLowerCase()};function be(e){return ge.test(e)?e.replace(Se,Ee).replace(we,\"-ms-\"):e}var _e=function(e){return null==e||!1===e||\"\"===e};function Ne(e,n,r,o){if(Array.isArray(e)){for(var s,i=[],a=0,c=e.length;a<c;a+=1)\"\"!==(s=Ne(e[a],n,r,o))&&(Array.isArray(s)?i.push.apply(i,s):i.push(s));return i}if(_e(e))return\"\";if(N(e))return\".\"+e.styledComponentId;if(b(e)){if(\"function\"!=typeof(l=e)||l.prototype&&l.prototype.isReactComponent||!n)return e;var u=e(n);return\"production\"!==process.env.NODE_ENV&&t(u)&&console.warn(_(e)+\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"),Ne(u,n,r,o)}var l;return e instanceof ve?r?(e.inject(r,o),e.getName(o)):e:S(e)?function e(t,n){var r,o,s=[];for(var i in t)t.hasOwnProperty(i)&&!_e(t[i])&&(Array.isArray(t[i])&&t[i].isCss||b(t[i])?s.push(be(i)+\":\",t[i],\";\"):S(t[i])?s.push.apply(s,e(t[i],i)):s.push(be(i)+\": \"+(r=i,null==(o=t[i])||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||r in f?String(o).trim():o+\"px\")+\";\"));return n?[n+\" {\"].concat(s,[\"}\"]):s}(e):e.toString()}var Ae=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function Ce(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return b(e)||S(e)?Ae(Ne(g(w,[e].concat(n)))):0===n.length&&1===e.length&&\"string\"==typeof e[0]?e:Ae(Ne(g(e,n)))}var Ie=/invalid hook call/i,Pe=new Set,Oe=function(e,t){if(\"production\"!==process.env.NODE_ENV){var n=\"The component \"+e+(t?' with the id of \"'+t+'\"':\"\")+\" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",r=console.error;try{var o=!0;console.error=function(e){if(Ie.test(e))o=!1,Pe.delete(n);else{for(var t=arguments.length,s=new Array(t>1?t-1:0),i=1;i<t;i++)s[i-1]=arguments[i];r.apply(void 0,[e].concat(s))}},c(),o&&!Pe.has(n)&&(console.warn(n),Pe.add(n))}catch(e){Ie.test(e.message)&&Pe.delete(n)}finally{console.error=r}}},Re=function(e,t,n){return void 0===n&&(n=E),e.theme!==n.theme&&e.theme||t||n.theme},De=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,je=/(^-|-$)/g;function Te(e){return e.replace(De,\"-\").replace(je,\"\")}var xe=function(e){return ee(ne(e)>>>0)};function ke(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var Ve=function(e){return\"function\"==typeof e||\"object\"==typeof e&&null!==e&&!Array.isArray(e)},Be=function(e){return\"__proto__\"!==e&&\"constructor\"!==e&&\"prototype\"!==e};function ze(e,t,n){var r=e[n];Ve(t)&&Ve(r)?Me(r,t):e[n]=t}function Me(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var o=0,s=n;o<s.length;o++){var i=s[o];if(Ve(i))for(var a in i)Be(a)&&ze(e,i[a],a)}return e}var Ge=r.createContext(),Le=Ge.Consumer;function Fe(e){var t=s(Ge),n=i((function(){return function(e,t){if(!e)return j(14);if(b(e)){var n=e(t);return\"production\"===process.env.NODE_ENV||null!==n&&!Array.isArray(n)&&\"object\"==typeof n?n:j(7)}return Array.isArray(e)||\"object\"!=typeof e?j(8):t?v({},t,{},e):e}(e.theme,t)}),[e.theme,t]);return e.children?r.createElement(Ge.Provider,{value:n},e.children):null}var Ye={};function qe(e,t,n){var o=N(e),i=!ke(e),a=t.attrs,c=void 0===a?w:a,d=t.componentId,h=void 0===d?function(e,t){var n=\"string\"!=typeof e?\"sc\":Te(e);Ye[n]=(Ye[n]||0)+1;var r=n+\"-\"+xe(\"5.3.5\"+n+Ye[n]);return t?t+\"-\"+r:r}(t.displayName,t.parentComponentId):d,p=t.displayName,f=void 0===p?function(e){return ke(e)?\"styled.\"+e:\"Styled(\"+_(e)+\")\"}(e):p,g=t.displayName&&t.componentId?Te(t.displayName)+\"-\"+t.componentId:t.componentId||h,S=o&&e.attrs?Array.prototype.concat(e.attrs,c).filter(Boolean):c,A=t.shouldForwardProp;o&&e.shouldForwardProp&&(A=t.shouldForwardProp?function(n,r,o){return e.shouldForwardProp(n,r,o)&&t.shouldForwardProp(n,r,o)}:e.shouldForwardProp);var C,I=new se(n,g,o?e.componentStyle:void 0),P=I.isStatic&&0===c.length,O=function(e,t){return function(e,t,n,r){var o=e.attrs,i=e.componentStyle,a=e.defaultProps,c=e.foldedComponentIds,d=e.shouldForwardProp,h=e.styledComponentId,p=e.target;\"production\"!==process.env.NODE_ENV&&l(h);var f=function(e,t,n){void 0===e&&(e=E);var r=v({},t,{theme:e}),o={};return n.forEach((function(e){var t,n,s,i=e;for(t in b(i)&&(i=i(r)),i)r[t]=o[t]=\"className\"===t?(n=o[t],s=i[t],n&&s?n+\" \"+s:n||s):i[t]})),[r,o]}(Re(t,s(Ge),a)||E,t,o),y=f[0],g=f[1],S=function(e,t,n,r){var o=fe(),s=me(),i=t?e.generateAndInjectStyles(E,o,s):e.generateAndInjectStyles(n,o,s);return\"production\"!==process.env.NODE_ENV&&l(i),\"production\"!==process.env.NODE_ENV&&!t&&r&&r(i),i}(i,r,y,\"production\"!==process.env.NODE_ENV?e.warnTooManyClasses:void 0),w=n,_=g.$as||t.$as||g.as||t.as||p,N=ke(_),A=g!==t?v({},t,{},g):t,C={};for(var I in A)\"$\"!==I[0]&&\"as\"!==I&&(\"forwardedAs\"===I?C.as=A[I]:(d?d(I,m,_):!N||m(I))&&(C[I]=A[I]));return t.style&&g.style!==t.style&&(C.style=v({},t.style,{},g.style)),C.className=Array.prototype.concat(c,h,S!==h?S:null,t.className,g.className).filter(Boolean).join(\" \"),C.ref=w,u(_,C)}(C,e,t,P)};return O.displayName=f,(C=r.forwardRef(O)).attrs=S,C.componentStyle=I,C.displayName=f,C.shouldForwardProp=A,C.foldedComponentIds=o?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):w,C.styledComponentId=g,C.target=o?e.target:e,C.withComponent=function(e){var r=t.componentId,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,[\"componentId\"]),s=r&&r+\"-\"+(ke(e)?e:Te(_(e)));return qe(e,v({},o,{attrs:S,componentId:s}),n)},Object.defineProperty(C,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?Me({},e.defaultProps,t):t}}),\"production\"!==process.env.NODE_ENV&&(Oe(f,g),C.warnTooManyClasses=function(e,t){var n={},r=!1;return function(o){if(!r&&(n[o]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'+t+'\"':\"\";console.warn(\"Over 200 classes were generated for component \"+e+s+\".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),r=!0,n={}}}}(f,g)),C.toString=function(){return\".\"+C.styledComponentId},i&&y(C,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),C}var He=function(e){return function e(t,r,o){if(void 0===o&&(o=E),!n(r))return j(1,String(r));var s=function(){return t(r,o,Ce.apply(void 0,arguments))};return s.withConfig=function(n){return e(t,r,v({},o,{},n))},s.attrs=function(n){return e(t,r,v({},o,{attrs:Array.prototype.concat(o.attrs,n).filter(Boolean)}))},s}(qe,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"textPath\",\"tspan\"].forEach((function(e){He[e]=He(e)}));var $e=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=re(e),Z.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(Ne(this.rules,t,n,r).join(\"\"),\"\"),s=this.componentId+e;n.insertRules(s,s,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&Z.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function We(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var i=Ce.apply(void 0,[e].concat(n)),a=\"sc-global-\"+xe(JSON.stringify(i)),u=new $e(i,a);function l(e){var t=fe(),n=me(),o=s(Ge),l=c(t.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&r.Children.count(e.children)&&console.warn(\"The global style component \"+a+\" was given child JSX. createGlobalStyle does not render children.\"),\"production\"!==process.env.NODE_ENV&&i.some((function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")}))&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),t.server&&h(l,e,t,o,n),d((function(){if(!t.server)return h(l,e,t,o,n),function(){return u.removeStyles(l,t)}}),[l,e,t,o,n]),null}function h(e,t,n,r,o){if(u.isStatic)u.renderStyles(e,O,n,o);else{var s=v({},t,{theme:Re(t,r,l.defaultProps)});u.renderStyles(e,s,n,o)}}return\"production\"!==process.env.NODE_ENV&&Oe(a),r.memo(l)}function Ue(e){\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=Ce.apply(void 0,[e].concat(n)).join(\"\"),s=xe(o);return new ve(s,o)}var Je=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return\"\";var n=q();return\"<style \"+[n&&'nonce=\"'+n+'\"',A+'=\"true\"','data-styled-version=\"5.3.5\"'].filter(Boolean).join(\" \")+\">\"+t+\"</style>\"},this.getStyleTags=function(){return e.sealed?j(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return j(2);var n=((t={})[A]=\"\",t[\"data-styled-version\"]=\"5.3.5\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=q();return o&&(n.nonce=o),[r.createElement(\"style\",v({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Z({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?j(2):r.createElement(ye,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return j(3)},e}(),Xe=function(e){var t=r.forwardRef((function(t,n){var o=s(Ge),i=e.defaultProps,a=Re(t,o,i);return\"production\"!==process.env.NODE_ENV&&void 0===a&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'+_(e)+'\"'),r.createElement(e,v({},t,{theme:a,ref:n}))}));return y(t,e),t.displayName=\"WithTheme(\"+_(e)+\")\",t},Ze=function(){return s(Ge)},Ke={StyleSheet:Z,masterSheet:he};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"),\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[\"__styled-components-init__\"]=window[\"__styled-components-init__\"]||0,1===window[\"__styled-components-init__\"]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[\"__styled-components-init__\"]+=1);export default He;export{Je as ServerStyleSheet,le as StyleSheetConsumer,ue as StyleSheetContext,ye as StyleSheetManager,Le as ThemeConsumer,Ge as ThemeContext,Fe as ThemeProvider,Ke as __PRIVATE__,We as createGlobalStyle,Ce as css,N as isStyledComponent,Ue as keyframes,Ze as useTheme,C as version,Xe as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","export default function identity(x) {\n return x;\n}\n","import {InternMap} from \"internmap\";\nimport identity from \"./identity.js\";\n\nexport default function group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nexport function groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nfunction flatten(groups, keys) {\n for (let i = 1, n = keys.length; i < n; ++i) {\n groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));\n }\n return groups;\n}\n\nexport function flatGroup(values, ...keys) {\n return flatten(groups(values, ...keys), keys);\n}\n\nexport function flatRollup(values, reduce, ...keys) {\n return flatten(rollups(values, reduce, ...keys), keys);\n}\n\nexport function rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nexport function rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nexport function index(values, ...keys) {\n return nest(values, identity, unique, keys);\n}\n\nexport function indexes(values, ...keys) {\n return nest(values, Array.from, unique, keys);\n}\n\nfunction unique(values) {\n if (values.length !== 1) throw new Error(\"duplicate key\");\n return values[0];\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new InternMap();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import creator from \"./creator.js\";\nimport select from \"./select.js\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default scheme => interpolateRgbBasis(scheme[scheme.length - 1]);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","export default function() {}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n"],"names":["e","x","re","p","s","t","f","c","l","m","u","y","n","d","ascending","descending","zero","number","identity","max","min","range","epsilon","noop","parseTypenames","get","set","none","Selection","array","constant","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","styleFunction","textConstant","textFunction","linear","rgb","colorRgb","basis","value","string","timeout","interpolateTransform","style","easeCubicInOut","pi","tau","locale","defaultLocale","formatLocale","sequence","bisect","copy","transformer","interpolateValue","interpolate","interpolateRgbBasis","ramp","pointX","pointY"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176]}