@ultraviolet/ui 1.51.2 → 1.51.4

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 (275) hide show
  1. package/dist/components/ActionBar/index.cjs +32 -0
  2. package/dist/components/ActionBar/index.js +16 -26
  3. package/dist/components/Alert/index.cjs +117 -0
  4. package/dist/components/Alert/index.js +77 -88
  5. package/dist/components/Avatar/index.cjs +59 -0
  6. package/dist/components/Avatar/index.js +29 -26
  7. package/dist/components/Badge/index.cjs +101 -0
  8. package/dist/components/Badge/index.js +36 -52
  9. package/dist/components/Banner/assets/default-image-small.svg.cjs +3 -0
  10. package/dist/components/Banner/assets/default-image.svg.cjs +3 -0
  11. package/dist/components/Banner/index.cjs +118 -0
  12. package/dist/components/Banner/index.js +64 -139
  13. package/dist/components/BarChart/Tooltip.cjs +42 -0
  14. package/dist/components/BarChart/Tooltip.js +23 -18
  15. package/dist/components/BarChart/index.cjs +69 -0
  16. package/dist/components/BarChart/index.js +29 -42
  17. package/dist/components/BarStack/index.cjs +116 -0
  18. package/dist/components/BarStack/index.js +89 -163
  19. package/dist/components/Breadcrumbs/index.cjs +75 -0
  20. package/dist/components/Breadcrumbs/index.js +30 -33
  21. package/dist/components/Bullet/index.cjs +86 -0
  22. package/dist/components/Bullet/index.js +24 -28
  23. package/dist/components/Button/index.cjs +251 -0
  24. package/dist/components/Button/index.js +117 -159
  25. package/dist/components/Card/index.cjs +54 -0
  26. package/dist/components/Card/index.js +45 -52
  27. package/dist/components/Carousel/index.cjs +125 -0
  28. package/dist/components/Carousel/index.js +75 -99
  29. package/dist/components/Checkbox/index.cjs +264 -0
  30. package/dist/components/Checkbox/index.js +246 -343
  31. package/dist/components/CheckboxGroup/index.cjs +118 -0
  32. package/dist/components/CheckboxGroup/index.js +60 -56
  33. package/dist/components/CopyButton/index.cjs +25 -0
  34. package/dist/components/CopyButton/index.js +1 -15
  35. package/dist/components/DateInput/datepicker.css.cjs +3 -0
  36. package/dist/components/DateInput/index.cjs +185 -0
  37. package/dist/components/DateInput/index.js +124 -243
  38. package/dist/components/Dialog/Context.cjs +13 -0
  39. package/dist/components/Dialog/Context.js +1 -3
  40. package/dist/components/Dialog/index.cjs +68 -0
  41. package/dist/components/Dialog/index.js +22 -43
  42. package/dist/components/Dialog/subComponents/Button.cjs +15 -0
  43. package/dist/components/Dialog/subComponents/Button.js +1 -10
  44. package/dist/components/Dialog/subComponents/Buttons.cjs +12 -0
  45. package/dist/components/Dialog/subComponents/CancelButton.cjs +9 -0
  46. package/dist/components/Dialog/subComponents/Stack.cjs +8 -0
  47. package/dist/components/Dialog/subComponents/Stack.js +3 -1
  48. package/dist/components/Dialog/subComponents/Text.cjs +8 -0
  49. package/dist/components/Dialog/subComponents/Text.js +3 -1
  50. package/dist/components/EmptyState/index.cjs +92 -0
  51. package/dist/components/EmptyState/index.js +58 -50
  52. package/dist/components/Expandable/index.cjs +77 -0
  53. package/dist/components/Expandable/index.js +19 -23
  54. package/dist/components/GlobalAlert/GlobalAlertLink.cjs +23 -0
  55. package/dist/components/GlobalAlert/GlobalAlertLink.js +4 -20
  56. package/dist/components/GlobalAlert/index.cjs +61 -0
  57. package/dist/components/GlobalAlert/index.js +34 -87
  58. package/dist/components/LineChart/CustomLegend.cjs +115 -0
  59. package/dist/components/LineChart/CustomLegend.js +76 -72
  60. package/dist/components/LineChart/Tooltip.cjs +37 -0
  61. package/dist/components/LineChart/Tooltip.js +26 -37
  62. package/dist/components/LineChart/helpers.cjs +52 -0
  63. package/dist/components/LineChart/helpers.js +11 -9
  64. package/dist/components/LineChart/index.cjs +101 -0
  65. package/dist/components/LineChart/index.js +38 -55
  66. package/dist/components/Link/index.cjs +130 -0
  67. package/dist/components/Link/index.js +86 -125
  68. package/dist/components/List/Body.cjs +18 -0
  69. package/dist/components/List/Body.js +12 -7
  70. package/dist/components/List/Cell.cjs +43 -0
  71. package/dist/components/List/Cell.js +36 -33
  72. package/dist/components/List/HeaderCell.cjs +84 -0
  73. package/dist/components/List/HeaderCell.js +54 -68
  74. package/dist/components/List/HeaderRow.cjs +38 -0
  75. package/dist/components/List/HeaderRow.js +16 -18
  76. package/dist/components/List/ListContext.cjs +136 -0
  77. package/dist/components/List/ListContext.js +68 -87
  78. package/dist/components/List/Row.cjs +163 -0
  79. package/dist/components/List/Row.js +136 -169
  80. package/dist/components/List/SelectBar.cjs +54 -0
  81. package/dist/components/List/SelectBar.js +31 -14
  82. package/dist/components/List/SkeletonRows.cjs +57 -0
  83. package/dist/components/List/SkeletonRows.js +42 -23
  84. package/dist/components/List/constants.cjs +6 -0
  85. package/dist/components/List/index.cjs +62 -0
  86. package/dist/components/List/index.js +39 -59
  87. package/dist/components/Loader/index.cjs +79 -0
  88. package/dist/components/Loader/index.js +44 -65
  89. package/dist/components/Menu/Item.cjs +92 -0
  90. package/dist/components/Menu/Item.js +52 -62
  91. package/dist/components/Menu/index.cjs +118 -0
  92. package/dist/components/Menu/index.js +105 -171
  93. package/dist/components/MenuV2/Group.cjs +23 -0
  94. package/dist/components/MenuV2/Group.js +14 -16
  95. package/dist/components/MenuV2/Item.cjs +114 -0
  96. package/dist/components/MenuV2/Item.js +67 -74
  97. package/dist/components/MenuV2/index.cjs +92 -0
  98. package/dist/components/MenuV2/index.js +76 -110
  99. package/dist/components/Meter/index.cjs +65 -0
  100. package/dist/components/Meter/index.js +44 -57
  101. package/dist/components/Modal/Dialog.cjs +143 -0
  102. package/dist/components/Modal/Dialog.js +44 -100
  103. package/dist/components/Modal/Disclosure.cjs +44 -0
  104. package/dist/components/Modal/constants.cjs +52 -0
  105. package/dist/components/Modal/index.cjs +81 -0
  106. package/dist/components/Modal/index.js +23 -58
  107. package/dist/components/Notice/index.cjs +25 -0
  108. package/dist/components/Notice/index.js +13 -29
  109. package/dist/components/Notification/index.cjs +49 -0
  110. package/dist/components/Notification/index.js +9 -48
  111. package/dist/components/Notification/react-toastify.css.cjs +3 -0
  112. package/dist/components/NumberInput/helpers.cjs +10 -0
  113. package/dist/components/NumberInput/index.cjs +264 -0
  114. package/dist/components/NumberInput/index.js +113 -200
  115. package/dist/components/NumberInputV2/index.cjs +223 -0
  116. package/dist/components/NumberInputV2/index.js +200 -349
  117. package/dist/components/Pagination/getPageNumbers.cjs +23 -0
  118. package/dist/components/Pagination/getPageNumbers.js +3 -1
  119. package/dist/components/Pagination/index.cjs +90 -0
  120. package/dist/components/Pagination/index.js +45 -81
  121. package/dist/components/PasswordCheck/index.cjs +26 -0
  122. package/dist/components/PasswordCheck/index.js +10 -15
  123. package/dist/components/PasswordStrengthMeter/index.cjs +98 -0
  124. package/dist/components/PasswordStrengthMeter/index.js +66 -68
  125. package/dist/components/PieChart/Legends.cjs +143 -0
  126. package/dist/components/PieChart/Legends.js +121 -99
  127. package/dist/components/PieChart/Tooltip.cjs +50 -0
  128. package/dist/components/PieChart/Tooltip.js +35 -15
  129. package/dist/components/PieChart/index.cjs +103 -0
  130. package/dist/components/PieChart/index.js +68 -87
  131. package/dist/components/Popover/index.cjs +102 -0
  132. package/dist/components/Popover/index.js +57 -106
  133. package/dist/components/Popup/animations.cjs +25 -0
  134. package/dist/components/Popup/helpers.cjs +216 -0
  135. package/dist/components/Popup/helpers.js +24 -12
  136. package/dist/components/Popup/index.cjs +299 -0
  137. package/dist/components/Popup/index.js +263 -351
  138. package/dist/components/ProgressBar/index.cjs +55 -0
  139. package/dist/components/ProgressBar/index.js +33 -51
  140. package/dist/components/Radio/index.cjs +135 -0
  141. package/dist/components/Radio/index.js +119 -188
  142. package/dist/components/RadioGroup/index.cjs +101 -0
  143. package/dist/components/RadioGroup/index.js +46 -51
  144. package/dist/components/Row/index.cjs +36 -0
  145. package/dist/components/Row/index.js +11 -20
  146. package/dist/components/SelectInput/index.cjs +520 -0
  147. package/dist/components/SelectInput/index.js +165 -212
  148. package/dist/components/SelectInputV2/Dropdown.cjs +431 -0
  149. package/dist/components/SelectInputV2/Dropdown.js +233 -473
  150. package/dist/components/SelectInputV2/DropdownOption.cjs +64 -0
  151. package/dist/components/SelectInputV2/DropdownOption.js +44 -115
  152. package/dist/components/SelectInputV2/SearchBarDropdown.cjs +109 -0
  153. package/dist/components/SelectInputV2/SearchBarDropdown.js +28 -44
  154. package/dist/components/SelectInputV2/SelectBar.cjs +226 -0
  155. package/dist/components/SelectInputV2/SelectBar.js +137 -240
  156. package/dist/components/SelectInputV2/SelectInputProvider.cjs +171 -0
  157. package/dist/components/SelectInputV2/SelectInputProvider.js +45 -77
  158. package/dist/components/SelectInputV2/findOptionInOptions.cjs +12 -0
  159. package/dist/components/SelectInputV2/index.cjs +89 -0
  160. package/dist/components/SelectInputV2/index.js +39 -98
  161. package/dist/components/SelectInputV2/types.cjs +13 -0
  162. package/dist/components/SelectableCard/index.cjs +139 -0
  163. package/dist/components/SelectableCard/index.js +127 -183
  164. package/dist/components/SelectableCardGroup/index.cjs +109 -0
  165. package/dist/components/SelectableCardGroup/index.js +50 -55
  166. package/dist/components/Separator/index.cjs +58 -0
  167. package/dist/components/Separator/index.js +44 -64
  168. package/dist/components/Skeleton/Block.cjs +40 -0
  169. package/dist/components/Skeleton/Block.js +28 -20
  170. package/dist/components/Skeleton/Blocks.cjs +40 -0
  171. package/dist/components/Skeleton/Blocks.js +26 -16
  172. package/dist/components/Skeleton/BoxWithIcon.cjs +38 -0
  173. package/dist/components/Skeleton/BoxWithIcon.js +24 -17
  174. package/dist/components/Skeleton/Donut.cjs +63 -0
  175. package/dist/components/Skeleton/Donut.js +46 -21
  176. package/dist/components/Skeleton/IconSkeleton.cjs +24 -0
  177. package/dist/components/Skeleton/IconSkeleton.js +19 -9
  178. package/dist/components/Skeleton/Line.cjs +18 -0
  179. package/dist/components/Skeleton/Line.js +11 -8
  180. package/dist/components/Skeleton/List.cjs +58 -0
  181. package/dist/components/Skeleton/List.js +48 -21
  182. package/dist/components/Skeleton/Slider.cjs +42 -0
  183. package/dist/components/Skeleton/Slider.js +36 -22
  184. package/dist/components/Skeleton/Square.cjs +14 -0
  185. package/dist/components/Skeleton/Square.js +9 -7
  186. package/dist/components/Skeleton/index.cjs +81 -0
  187. package/dist/components/Skeleton/index.js +38 -45
  188. package/dist/components/Snippet/index.cjs +184 -0
  189. package/dist/components/Snippet/index.js +139 -128
  190. package/dist/components/Stack/index.cjs +31 -0
  191. package/dist/components/Stack/index.js +10 -17
  192. package/dist/components/Status/index.cjs +74 -0
  193. package/dist/components/Status/index.js +42 -27
  194. package/dist/components/StepList/index.cjs +60 -0
  195. package/dist/components/StepList/index.js +34 -45
  196. package/dist/components/Stepper/index.cjs +147 -0
  197. package/dist/components/Stepper/index.js +106 -114
  198. package/dist/components/SwitchButton/FocusOverlay.cjs +40 -0
  199. package/dist/components/SwitchButton/FocusOverlay.js +18 -27
  200. package/dist/components/SwitchButton/index.cjs +78 -0
  201. package/dist/components/SwitchButton/index.js +39 -103
  202. package/dist/components/Table/Body.cjs +7 -0
  203. package/dist/components/Table/Body.js +3 -1
  204. package/dist/components/Table/Cell.cjs +21 -0
  205. package/dist/components/Table/Cell.js +15 -6
  206. package/dist/components/Table/Header.cjs +18 -0
  207. package/dist/components/Table/Header.js +12 -5
  208. package/dist/components/Table/HeaderCell.cjs +82 -0
  209. package/dist/components/Table/HeaderCell.js +48 -91
  210. package/dist/components/Table/HeaderRow.cjs +23 -0
  211. package/dist/components/Table/HeaderRow.js +11 -13
  212. package/dist/components/Table/Row.cjs +82 -0
  213. package/dist/components/Table/Row.js +39 -44
  214. package/dist/components/Table/SelectBar.cjs +54 -0
  215. package/dist/components/Table/SelectBar.js +31 -14
  216. package/dist/components/Table/SkeletonRows.cjs +56 -0
  217. package/dist/components/Table/SkeletonRows.js +43 -11
  218. package/dist/components/Table/TableContext.cjs +88 -0
  219. package/dist/components/Table/TableContext.js +29 -44
  220. package/dist/components/Table/index.cjs +69 -0
  221. package/dist/components/Table/index.js +37 -51
  222. package/dist/components/Tabs/Tab.cjs +122 -0
  223. package/dist/components/Tabs/Tab.js +108 -158
  224. package/dist/components/Tabs/TabMenu.cjs +64 -0
  225. package/dist/components/Tabs/TabMenu.js +52 -53
  226. package/dist/components/Tabs/TabMenuItem.cjs +36 -0
  227. package/dist/components/Tabs/TabMenuItem.js +19 -24
  228. package/dist/components/Tabs/TabsContext.cjs +7 -0
  229. package/dist/components/Tabs/TabsContext.js +1 -3
  230. package/dist/components/Tabs/index.cjs +104 -0
  231. package/dist/components/Tabs/index.js +44 -79
  232. package/dist/components/Tag/index.cjs +147 -0
  233. package/dist/components/Tag/index.js +66 -75
  234. package/dist/components/TagInput/index.cjs +255 -0
  235. package/dist/components/TagInput/index.js +125 -188
  236. package/dist/components/TagList/index.cjs +100 -0
  237. package/dist/components/TagList/index.js +51 -56
  238. package/dist/components/Text/index.cjs +84 -0
  239. package/dist/components/Text/index.js +10 -35
  240. package/dist/components/TextArea/index.cjs +160 -0
  241. package/dist/components/TextArea/index.js +140 -208
  242. package/dist/components/TextInput/index.cjs +390 -0
  243. package/dist/components/TextInput/index.js +326 -411
  244. package/dist/components/TextInputV2/index.cjs +192 -0
  245. package/dist/components/TextInputV2/index.js +170 -294
  246. package/dist/components/TimeInput/index.cjs +28 -0
  247. package/dist/components/TimeInput/index.js +3 -174
  248. package/dist/components/Toaster/index.cjs +85 -0
  249. package/dist/components/Toaster/index.js +26 -74
  250. package/dist/components/Toaster/react-toastify.css.cjs +3 -0
  251. package/dist/components/Toggle/index.cjs +138 -0
  252. package/dist/components/Toggle/index.js +112 -172
  253. package/dist/components/ToggleGroup/index.cjs +98 -0
  254. package/dist/components/ToggleGroup/index.js +44 -35
  255. package/dist/components/Tooltip/index.cjs +42 -0
  256. package/dist/components/Tooltip/index.js +34 -41
  257. package/dist/components/VerificationCode/index.cjs +219 -0
  258. package/dist/components/VerificationCode/index.js +58 -63
  259. package/dist/helpers/isJSON.cjs +10 -0
  260. package/dist/helpers/legend.cjs +14 -0
  261. package/dist/helpers/legend.js +4 -4
  262. package/dist/helpers/recursivelyGetChildrenString.cjs +14 -0
  263. package/dist/hooks/useIsOverflowing.cjs +23 -0
  264. package/dist/index.cjs +196 -0
  265. package/dist/theme/index.cjs +34 -0
  266. package/dist/theme/index.js +10 -13
  267. package/dist/utils/animations.cjs +276 -0
  268. package/dist/utils/capitalize.cjs +3 -0
  269. package/dist/utils/ids.cjs +8 -0
  270. package/dist/utils/ids.js +3 -1
  271. package/dist/utils/normalize.cjs +36 -0
  272. package/dist/utils/responsive/Breakpoint.cjs +16 -0
  273. package/dist/utils/responsive/Breakpoint.js +8 -6
  274. package/dist/utils/responsive/utilities.cjs +15 -0
  275. package/package.json +23 -7
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
2
+ import _styled from "@emotion/styled/base";
2
3
  import { css, useTheme } from "@emotion/react";
3
- import styled from "@emotion/styled";
4
4
  import { Icon } from "@ultraviolet/icons";
5
5
  import React, { forwardRef, useState, useId, useMemo, Children, useEffect } from "react";
6
6
  import Select, { components } from "react-select";
@@ -10,11 +10,19 @@ import { Expandable } from "../Expandable/index.js";
10
10
  import { Separator } from "../Separator/index.js";
11
11
  import { Stack } from "../Stack/index.js";
12
12
  import { Text } from "../Text/index.js";
13
- const StyledSeparator = styled(Separator)`
14
- background-color: ${({ theme }) => theme.colors.neutral.border};
15
- height: 100%;
16
- `;
17
- const getControlColor = ({ state, error, theme }) => {
13
+ const StyledSeparator = /* @__PURE__ */ _styled(Separator, process.env.NODE_ENV === "production" ? {
14
+ target: "e11gt5pw5"
15
+ } : {
16
+ target: "e11gt5pw5",
17
+ label: "StyledSeparator"
18
+ })("background-color:", ({
19
+ theme
20
+ }) => theme.colors.neutral.border, ";height:100%;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1Q3lDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
21
+ const getControlColor = ({
22
+ state,
23
+ error,
24
+ theme
25
+ }) => {
18
26
  if (state.isDisabled)
19
27
  return theme.colors.neutral.textDisabled;
20
28
  if (error)
@@ -32,7 +40,10 @@ const getPlaceholderColor = ({
32
40
  return theme.colors.danger.text;
33
41
  return theme.colors.neutral.textWeak;
34
42
  };
35
- const getOptionColor = ({ state, theme }) => {
43
+ const getOptionColor = ({
44
+ state,
45
+ theme
46
+ }) => {
36
47
  let color = theme.colors.neutral.text;
37
48
  let backgroundColor = theme.colors.neutral.backgroundWeakElevated;
38
49
  if (state.isDisabled) {
@@ -44,7 +55,10 @@ const getOptionColor = ({ state, theme }) => {
44
55
  } else if (state.isFocused) {
45
56
  backgroundColor = theme.colors.primary.background;
46
57
  }
47
- return { backgroundColor, color };
58
+ return {
59
+ backgroundColor,
60
+ color
61
+ };
48
62
  };
49
63
  const getSelectStyles = ({
50
64
  error,
@@ -62,7 +76,11 @@ const getSelectStyles = ({
62
76
  borderStyle: "solid",
63
77
  borderWidth: "1px",
64
78
  boxShadow: "none",
65
- color: getControlColor({ error, state, theme }),
79
+ color: getControlColor({
80
+ error,
81
+ state,
82
+ theme
83
+ }),
66
84
  fontSize: "16px",
67
85
  fontWeight: 500,
68
86
  lineHeight: "24px",
@@ -153,7 +171,10 @@ const getSelectStyles = ({
153
171
  }),
154
172
  option: (provided, state) => ({
155
173
  ...provided,
156
- ...getOptionColor({ state, theme }),
174
+ ...getOptionColor({
175
+ state,
176
+ theme
177
+ }),
157
178
  cursor: state.isDisabled ? "not-allowed" : "pointer",
158
179
  ":active": {
159
180
  backgroundColor: state.isDisabled ? theme.colors.neutral.backgroundDisabled : theme.colors.primary.background,
@@ -167,7 +188,11 @@ const getSelectStyles = ({
167
188
  }),
168
189
  placeholder: (provided, state) => ({
169
190
  ...provided,
170
- color: getPlaceholderColor({ error, state, theme }),
191
+ color: getPlaceholderColor({
192
+ error,
193
+ state,
194
+ theme
195
+ }),
171
196
  ...customStyle(state)?.["placeholder"] || {}
172
197
  }),
173
198
  singleValue: (provided, state) => ({
@@ -190,78 +215,99 @@ const getSelectStyles = ({
190
215
  paddingTop: 0
191
216
  })
192
217
  });
193
- const StyledContainer = styled("div", {
194
- shouldForwardProp: (prop) => !["isDisabled", "additionalStyles"].includes(prop)
195
- })`
196
- width: 100%;
197
- ${({ isDisabled }) => isDisabled && `pointer-events: initial;`};
198
- ${({ additionalStyles }) => css(additionalStyles)}
199
- `;
200
- const StyledError = styled.div`
201
- font-size: 12px;
202
- color: ${({ theme }) => theme.colors.danger.text};
203
- padding-top: ${({ theme }) => theme.space["0.25"]};
204
- `;
218
+ const StyledContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
219
+ shouldForwardProp: (prop) => !["isDisabled", "additionalStyles"].includes(prop),
220
+ target: "e11gt5pw4"
221
+ } : {
222
+ shouldForwardProp: (prop) => !["isDisabled", "additionalStyles"].includes(prop),
223
+ target: "e11gt5pw4",
224
+ label: "StyledContainer"
225
+ })("width:100%;", ({
226
+ isDisabled
227
+ }) => isDisabled && `pointer-events: initial;`, ";", ({
228
+ additionalStyles
229
+ }) => /* @__PURE__ */ css(additionalStyles, process.env.NODE_ENV === "production" ? "" : ";label:StyledContainer;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrVThCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"), ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErVHdCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
230
+ const StyledError = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
231
+ target: "e11gt5pw3"
232
+ } : {
233
+ target: "e11gt5pw3",
234
+ label: "StyledError"
235
+ })("font-size:12px;color:", ({
236
+ theme
237
+ }) => theme.colors.danger.text, ";padding-top:", ({
238
+ theme
239
+ }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxVThCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
205
240
  const SelectContainer = (props) => {
206
241
  const {
207
242
  children,
208
243
  getStyles,
209
- innerProps: { onKeyDown } = {},
244
+ innerProps: {
245
+ onKeyDown
246
+ } = {},
210
247
  isDisabled = false,
211
248
  className,
212
- selectProps: { name = "", error, className: selectPropsClassName } = {}
249
+ selectProps: {
250
+ name = "",
251
+ error,
252
+ className: selectPropsClassName
253
+ } = {}
213
254
  } = props;
214
- return /* @__PURE__ */ jsxs(
215
- StyledContainer,
216
- {
217
- "data-testid": `select-input-${name}`,
218
- additionalStyles: getStyles?.("container", props),
219
- isDisabled,
220
- className: [className, selectPropsClassName].filter(Boolean).join(" "),
221
- onKeyDown,
222
- children: [
223
- children,
224
- /* @__PURE__ */ jsx(Expandable, { opened: !!error, children: /* @__PURE__ */ jsx(StyledError, { children: error }) })
225
- ]
226
- }
227
- );
255
+ return /* @__PURE__ */ jsxs(StyledContainer, { "data-testid": `select-input-${name}`, additionalStyles: getStyles?.("container", props), isDisabled, className: [className, selectPropsClassName].filter(Boolean).join(" "), onKeyDown, children: [
256
+ children,
257
+ /* @__PURE__ */ jsx(Expandable, { opened: !!error, children: /* @__PURE__ */ jsx(StyledError, { children: error }) })
258
+ ] });
228
259
  };
229
- const StyledPlaceholder = styled("label", {
230
- shouldForwardProp: (prop) => !["error", "hasValue", "isDisabled", "isMulti"].includes(prop)
231
- })`
232
- position: absolute;
233
- left: 0;
234
- font-weight: 400;
235
- pointer-events: none;
236
- color: ${({ theme, error }) => error ? theme.colors.danger.text : theme.colors.neutral.text};
237
- white-space: nowrap;
238
- width: 100%;
239
- height: 100%;
240
- font-size: 16px;
241
- transition: transform 250ms ease;
242
- opacity: 0;
243
- ${({ hasValue }) => hasValue && `
260
+ const StyledPlaceholder = /* @__PURE__ */ _styled("label", process.env.NODE_ENV === "production" ? {
261
+ shouldForwardProp: (prop) => !["error", "hasValue", "isDisabled", "isMulti"].includes(prop),
262
+ target: "e11gt5pw2"
263
+ } : {
264
+ shouldForwardProp: (prop) => !["error", "hasValue", "isDisabled", "isMulti"].includes(prop),
265
+ target: "e11gt5pw2",
266
+ label: "StyledPlaceholder"
267
+ })("position:absolute;left:0;font-weight:400;pointer-events:none;color:", ({
268
+ theme,
269
+ error
270
+ }) => error ? theme.colors.danger.text : theme.colors.neutral.text, ";white-space:nowrap;width:100%;height:100%;font-size:16px;transition:transform 250ms ease;opacity:0;", ({
271
+ hasValue
272
+ }) => hasValue && `
244
273
  transform: translate(0, -8px) scale(0.8);
245
274
  transform-origin: left;
246
275
  padding-left: 8px;
247
276
  left: 0;
248
277
  top: 2px;
249
278
  opacity: 1;
250
- `}
251
- ${({ isDisabled, hasValue }) => hasValue && isDisabled && "opacity: 0.5"}
252
- `;
253
- const StyledText = styled(Text)`
254
- margin-left: ${({ theme }) => theme.space["1"]};
255
- color: ${({ isSelectedAndNotFocused, theme }) => isSelectedAndNotFocused ? theme.colors.primary.textStrong : void 0};
256
- `;
257
- const MaxLineStyledText = styled(StyledText)`
258
- -webkit-line-clamp: 3;
259
- margin-top: ${({ theme }) => theme.space["2"]};
260
- `;
279
+ `, " ", ({
280
+ isDisabled,
281
+ hasValue
282
+ }) => hasValue && isDisabled && "opacity: 0.5", ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpWDBCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
283
+ const StyledText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "production" ? {
284
+ target: "e11gt5pw1"
285
+ } : {
286
+ target: "e11gt5pw1",
287
+ label: "StyledText"
288
+ })("margin-left:", ({
289
+ theme
290
+ }) => theme.space["1"], ";color:", ({
291
+ isSelectedAndNotFocused,
292
+ theme
293
+ }) => isSelectedAndNotFocused ? theme.colors.primary.textStrong : void 0, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyWXFFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
294
+ const MaxLineStyledText = /* @__PURE__ */ _styled(StyledText, process.env.NODE_ENV === "production" ? {
295
+ target: "e11gt5pw0"
296
+ } : {
297
+ target: "e11gt5pw0",
298
+ label: "MaxLineStyledText"
299
+ })("-webkit-line-clamp:3;margin-top:", ({
300
+ theme
301
+ }) => theme.space["2"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpWjRDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
261
302
  const ValueContainer = ({
262
303
  isDisabled,
263
304
  children,
264
- selectProps: { error, labelId, inputId, ...selectProps },
305
+ selectProps: {
306
+ error,
307
+ labelId,
308
+ inputId,
309
+ ...selectProps
310
+ },
265
311
  isMulti,
266
312
  hasValue,
267
313
  clearValue,
@@ -276,52 +322,22 @@ const ValueContainer = ({
276
322
  theme,
277
323
  className,
278
324
  innerProps
279
- }) => /* @__PURE__ */ jsx(
280
- components.ValueContainer,
281
- {
282
- clearValue,
283
- getStyles,
284
- getValue,
285
- isRtl,
286
- cx,
287
- options,
288
- selectOption,
289
- setValue,
290
- theme,
291
- className,
292
- innerProps,
293
- selectProps,
294
- isMulti,
295
- hasValue,
296
- isDisabled,
297
- getClassNames,
298
- children: /* @__PURE__ */ jsxs(Fragment, { children: [
299
- selectProps.placeholder ? /* @__PURE__ */ jsx(
300
- StyledPlaceholder,
301
- {
302
- as: "label",
303
- id: labelId,
304
- htmlFor: inputId,
305
- "aria-live": "assertive",
306
- error,
307
- isMulti,
308
- isDisabled,
309
- hasValue,
310
- children: selectProps.placeholder
311
- }
312
- ) : null,
313
- children
314
- ] })
315
- }
316
- );
317
- const inputStyles = ({ isMulti }) => css`
318
- margin-left: 0px;
319
- ${!isMulti && "caret-color: transparent"};
320
- `;
325
+ }) => /* @__PURE__ */ jsx(components.ValueContainer, { clearValue, getStyles, getValue, isRtl, cx, options, selectOption, setValue, theme, className, innerProps, selectProps, isMulti, hasValue, isDisabled, getClassNames, children: /* @__PURE__ */ jsxs(Fragment, { children: [
326
+ selectProps.placeholder ? /* @__PURE__ */ jsx(StyledPlaceholder, { as: "label", id: labelId, htmlFor: inputId, "aria-live": "assertive", error, isMulti, isDisabled, hasValue, children: selectProps.placeholder }) : null,
327
+ children
328
+ ] }) });
329
+ const inputStyles = ({
330
+ isMulti
331
+ }) => /* @__PURE__ */ css("margin-left:0px;", !isMulti && "caret-color: transparent", ";" + (process.env.NODE_ENV === "production" ? "" : ";label:inputStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErYzhEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQpPHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW4gfT5gXG4gIG1hcmdpbi1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycxJ119O1xuICBjb2xvcjogJHsoeyBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCwgdGhlbWUgfSkgPT5cbiAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmcgOiB1bmRlZmluZWR9O1xuYFxuXG5jb25zdCBNYXhMaW5lU3R5bGVkVGV4dCA9IHN0eWxlZChTdHlsZWRUZXh0KWBcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycyJ119O1xuYFxuXG5jb25zdCBWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIGlzRGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBzZWxlY3RQcm9wczogeyBlcnJvciwgbGFiZWxJZCwgaW5wdXRJZCwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGdldENsYXNzTmFtZXMsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaW5uZXJQcm9wcyxcbn06IFZhbHVlQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lclxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlubmVyUHJvcHM9e2lubmVyUHJvcHN9XG4gICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgZ2V0Q2xhc3NOYW1lcz17Z2V0Q2xhc3NOYW1lc31cbiAgPlxuICAgIDw+XG4gICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXIgPyAoXG4gICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgIGFzPVwibGFiZWxcIlxuICAgICAgICAgIGlkPXtsYWJlbElkfVxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICA8L2NvbXBvbmVudHMuVmFsdWVDb250YWluZXI+XG4pXG5cbmNvbnN0IGlucHV0U3R5bGVzID0gKHsgaXNNdWx0aSB9OiBQYXJ0aWFsPFNlbGVjdFByb3BzPikgPT4gY3NzYFxuICBtYXJnaW4tbGVmdDogMHB4O1xuICAkeyFpc011bHRpICYmICdjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQnfTtcbmBcblxuY29uc3QgSW5wdXQgPSAoe1xuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgc2VsZWN0UHJvcHM6IHsgaW5wdXRJZCwgbGFiZWxJZCwgcGxhY2Vob2xkZXIsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGNsZWFyVmFsdWUsXG4gIGdldFN0eWxlcyxcbiAgZ2V0VmFsdWUsXG4gIGlzUnRsLFxuICBjeCxcbiAgb3B0aW9ucyxcbiAgc2VsZWN0T3B0aW9uLFxuICBzZXRWYWx1ZSxcbiAgdGhlbWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNIaWRkZW4sXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuSW5wdXRcbiAgICB7Li4ucHJvcHN9XG4gICAgY3NzPXtpbnB1dFN0eWxlcyh7IGlzTXVsdGkgfSl9XG4gICAgaWQ9e2lucHV0SWR9XG4gICAgYXJpYS1jb250cm9scz17bGFiZWxJZH1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgc2VsZWN0UHJvcHM9e1xuICAgICAgeyAuLi5zZWxlY3RQcm9wcywgcGxhY2Vob2xkZXIgfSBhcyBJbnB1dFByb3BzPFNlbGVjdE9wdGlvbj5bJ3NlbGVjdFByb3BzJ11cbiAgICB9XG4gIC8+XG4pXG5cbmNvbnN0IE9wdGlvbiA9ICh7XG4gIHNlbGVjdFByb3BzLFxuICB2YWx1ZSxcbiAgbGFiZWwsXG4gIGNoaWxkcmVuLFxuICBkYXRhOiB7IGlubGluZURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiB9LFxuICBpc1NlbGVjdGVkLFxuICBkYXRhLFxuICAuLi5wcm9wc1xufTogT3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbikgPT4ge1xuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3RpZD17YG9wdGlvbi0ke3NlbGVjdFByb3BzLm5hbWUgfHwgJyd9LSR7XG4gICAgICAgIGlzSlNPTlN0cmluZyh2YWx1ZSkgPyBsYWJlbCA6IHZhbHVlXG4gICAgICB9YH1cbiAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XG4gICAgICBvbk1vdXNlT3V0PXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk9wdGlvblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpbmxpbmVEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8U3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */");
321
332
  const Input = ({
322
333
  isMulti,
323
334
  hasValue,
324
- selectProps: { inputId, labelId, placeholder, ...selectProps },
335
+ selectProps: {
336
+ inputId,
337
+ labelId,
338
+ placeholder,
339
+ ...selectProps
340
+ },
325
341
  clearValue,
326
342
  getStyles,
327
343
  getValue,
@@ -334,113 +350,58 @@ const Input = ({
334
350
  className,
335
351
  isHidden,
336
352
  ...props
337
- }) => /* @__PURE__ */ jsx(
338
- components.Input,
339
- {
340
- ...props,
341
- css: inputStyles({ isMulti }),
342
- id: inputId,
343
- "aria-controls": labelId,
344
- hasValue,
345
- isMulti,
346
- clearValue,
347
- getStyles,
348
- getValue,
349
- isRtl,
350
- cx,
351
- options,
352
- selectOption,
353
- setValue,
354
- theme,
355
- className,
356
- isHidden,
357
- selectProps: { ...selectProps, placeholder }
358
- }
359
- );
353
+ }) => /* @__PURE__ */ jsx(components.Input, { ...props, css: inputStyles({
354
+ isMulti
355
+ }), id: inputId, "aria-controls": labelId, hasValue, isMulti, clearValue, getStyles, getValue, isRtl, cx, options, selectOption, setValue, theme, className, isHidden, selectProps: {
356
+ ...selectProps,
357
+ placeholder
358
+ } });
360
359
  const Option = ({
361
360
  selectProps,
362
361
  value,
363
362
  label,
364
363
  children,
365
- data: { inlineDescription, description },
364
+ data: {
365
+ inlineDescription,
366
+ description
367
+ },
366
368
  isSelected,
367
369
  data,
368
370
  ...props
369
371
  }) => {
370
372
  const [isFocused, setIsFocused] = useState(false);
371
- return /* @__PURE__ */ jsx(
372
- "div",
373
- {
374
- "data-testid": `option-${selectProps.name || ""}-${isJSONString(value) ? label : value}`,
375
- onMouseOver: () => setIsFocused(true),
376
- onFocus: () => setIsFocused(true),
377
- onMouseOut: () => setIsFocused(false),
378
- onBlur: () => setIsFocused(false),
379
- children: /* @__PURE__ */ jsxs(
380
- components.Option,
381
- {
382
- ...props,
383
- selectProps,
384
- label,
385
- data,
386
- isSelected,
387
- children: [
388
- children,
389
- inlineDescription ? /* @__PURE__ */ jsx(
390
- StyledText,
391
- {
392
- as: "span",
393
- variant: "bodySmall",
394
- isSelectedAndNotFocused: isSelected && !isFocused,
395
- children: inlineDescription
396
- }
397
- ) : null,
398
- description ? /* @__PURE__ */ jsx(
399
- MaxLineStyledText,
400
- {
401
- as: "p",
402
- variant: "bodySmall",
403
- isSelectedAndNotFocused: isSelected && !isFocused,
404
- children: description
405
- }
406
- ) : null
407
- ]
408
- }
409
- )
410
- }
411
- );
373
+ return /* @__PURE__ */ jsx("div", { "data-testid": `option-${selectProps.name || ""}-${isJSONString(value) ? label : value}`, onMouseOver: () => setIsFocused(true), onFocus: () => setIsFocused(true), onMouseOut: () => setIsFocused(false), onBlur: () => setIsFocused(false), children: /* @__PURE__ */ jsxs(components.Option, { ...props, selectProps, label, data, isSelected, children: [
374
+ children,
375
+ inlineDescription ? /* @__PURE__ */ jsx(StyledText, { as: "span", variant: "bodySmall", isSelectedAndNotFocused: isSelected && !isFocused, children: inlineDescription }) : null,
376
+ description ? /* @__PURE__ */ jsx(MaxLineStyledText, { as: "p", variant: "bodySmall", isSelectedAndNotFocused: isSelected && !isFocused, children: description }) : null
377
+ ] }) });
412
378
  };
413
379
  const DropdownIndicator = (props) => {
414
380
  const {
415
- selectProps: { isDisabled, time, required }
381
+ selectProps: {
382
+ isDisabled,
383
+ time,
384
+ required
385
+ }
416
386
  } = props;
417
387
  return /* @__PURE__ */ jsx(components.DropdownIndicator, { ...props, children: /* @__PURE__ */ jsxs(Stack, { gap: 1, direction: "row", alignItems: "center", children: [
418
388
  required ? /* @__PURE__ */ jsx(Icon, { name: "asterisk", size: 10, color: "danger" }) : null,
419
389
  time ? /* @__PURE__ */ jsx(StyledSeparator, { direction: "vertical" }) : null,
420
- /* @__PURE__ */ jsx(
421
- Icon,
422
- {
423
- name: time ? "clock-outline" : "arrow-down",
424
- size: time ? 24 : 16,
425
- disabled: isDisabled
426
- }
427
- )
390
+ /* @__PURE__ */ jsx(Icon, { name: time ? "clock-outline" : "arrow-down", size: time ? 24 : 16, disabled: isDisabled })
428
391
  ] }) });
429
392
  };
430
393
  const ClearIndicator = (props) => {
431
394
  const {
432
- selectProps: { checked, error },
433
- innerProps: { ref, ...restInnerProps }
434
- } = props;
435
- return /* @__PURE__ */ jsx(components.ClearIndicator, { ...props, children: /* @__PURE__ */ jsx(
436
- Icon,
437
- {
438
- ...restInnerProps,
439
- name: "close",
440
- cursor: "pointer",
441
- color: checked && "primary" || error && "danger" || "neutral"
395
+ selectProps: {
396
+ checked,
397
+ error
398
+ },
399
+ innerProps: {
400
+ ref,
401
+ ...restInnerProps
442
402
  }
443
- ) });
403
+ } = props;
404
+ return /* @__PURE__ */ jsx(components.ClearIndicator, { ...props, children: /* @__PURE__ */ jsx(Icon, { ...restInnerProps, name: "close", cursor: "pointer", color: checked && "primary" || error && "danger" || "neutral" }) });
444
405
  };
445
406
  const MultiValueContainer = (props) => /* @__PURE__ */ jsx(components.MultiValueContainer, { ...props });
446
407
  const MultiValueLabel = (props) => /* @__PURE__ */ jsx(components.MultiValueLabel, { ...props });
@@ -483,21 +444,15 @@ const FwdSelectInput = ({
483
444
  const theme = useTheme();
484
445
  const [isAnimated, setIsAnimated] = useState(false);
485
446
  const currentValue = value?.value;
486
- const selectOptions = useMemo(
487
- () => options || Children.toArray(children).reduce((acc, child) => {
488
- if (React.isValidElement(child)) {
489
- return [
490
- ...acc,
491
- {
492
- ...child.props,
493
- label: child.props.children
494
- }
495
- ];
496
- }
497
- return acc;
498
- }, []),
499
- [options, children]
500
- );
447
+ const selectOptions = useMemo(() => options || Children.toArray(children).reduce((acc, child) => {
448
+ if (React.isValidElement(child)) {
449
+ return [...acc, {
450
+ ...child.props,
451
+ label: child.props.children
452
+ }];
453
+ }
454
+ return acc;
455
+ }, []), [options, children]);
501
456
  useEffect(() => {
502
457
  if (animationOnChange) {
503
458
  setIsAnimated(true);
@@ -553,9 +508,7 @@ const FwdSelectInput = ({
553
508
  }
554
509
  );
555
510
  };
556
- const SelectInput = forwardRef(
557
- (props, ref) => /* @__PURE__ */ jsx(FwdSelectInput, { innerRef: ref, ...props })
558
- );
511
+ const SelectInput = forwardRef((props, ref) => /* @__PURE__ */ jsx(FwdSelectInput, { innerRef: ref, ...props }));
559
512
  SelectInput.displayName = "SelectInput";
560
513
  SelectInput.Option = Option;
561
514
  export {