@payloadcms/ui 3.0.0-alpha.14 → 3.0.0-alpha.16

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 (409) hide show
  1. package/dist/@types/assets.d.js +0 -1
  2. package/dist/config.js +2 -12
  3. package/dist/elements/ArrayAction/index.js +25 -81
  4. package/dist/elements/ArrayAction/types.js +2 -5
  5. package/dist/elements/Autosave/index.js +37 -92
  6. package/dist/elements/Autosave/types.js +2 -5
  7. package/dist/elements/Banner/index.js +10 -34
  8. package/dist/elements/Banner/types.js +2 -5
  9. package/dist/elements/Button/index.js +30 -89
  10. package/dist/elements/Button/types.js +2 -5
  11. package/dist/elements/Card/index.js +9 -24
  12. package/dist/elements/Card/types.js +2 -5
  13. package/dist/elements/CodeEditor/CodeEditor.js +10 -25
  14. package/dist/elements/CodeEditor/index.js +8 -59
  15. package/dist/elements/CodeEditor/types.js +2 -5
  16. package/dist/elements/Collapsible/index.js +26 -82
  17. package/dist/elements/Collapsible/provider.js +7 -66
  18. package/dist/elements/Collapsible/types.js +2 -5
  19. package/dist/elements/ColumnSelector/index.js +20 -76
  20. package/dist/elements/ColumnSelector/types.js +2 -5
  21. package/dist/elements/CopyToClipboard/index.js +14 -65
  22. package/dist/elements/CopyToClipboard/types.js +2 -5
  23. package/dist/elements/DatePicker/DatePicker.js +19 -75
  24. package/dist/elements/DatePicker/index.js +8 -59
  25. package/dist/elements/DatePicker/types.js +2 -5
  26. package/dist/elements/DeleteDocument/index.js +36 -86
  27. package/dist/elements/DeleteDocument/types.js +2 -5
  28. package/dist/elements/DeleteMany/index.js +38 -102
  29. package/dist/elements/DeleteMany/types.js +2 -5
  30. package/dist/elements/DocumentControls/index.js +46 -102
  31. package/dist/elements/DocumentDrawer/DrawerContent.js +62 -114
  32. package/dist/elements/DocumentDrawer/index.js +33 -98
  33. package/dist/elements/DocumentDrawer/types.js +2 -5
  34. package/dist/elements/DocumentFields/index.js +16 -31
  35. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +4 -14
  36. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +9 -24
  37. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +9 -68
  38. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +5 -15
  39. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +2 -12
  40. package/dist/elements/DocumentHeader/Tabs/index.js +18 -33
  41. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +8 -23
  42. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +5 -23
  43. package/dist/elements/DocumentHeader/index.js +10 -66
  44. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -66
  45. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +2 -5
  46. package/dist/elements/DraggableSortable/index.js +15 -66
  47. package/dist/elements/DraggableSortable/types.js +2 -5
  48. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +4 -14
  49. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +2 -5
  50. package/dist/elements/Drawer/index.js +32 -94
  51. package/dist/elements/Drawer/types.js +2 -5
  52. package/dist/elements/Drawer/useDrawerSlug.js +8 -18
  53. package/dist/elements/Dropzone/index.js +20 -35
  54. package/dist/elements/DuplicateDocument/index.js +33 -83
  55. package/dist/elements/DuplicateDocument/types.js +2 -5
  56. package/dist/elements/EditMany/index.js +72 -128
  57. package/dist/elements/EditMany/types.js +2 -5
  58. package/dist/elements/EditUpload/index.js +66 -122
  59. package/dist/elements/ErrorPill/index.js +7 -22
  60. package/dist/elements/ErrorPill/types.js +2 -5
  61. package/dist/elements/FieldSelect/index.js +23 -79
  62. package/dist/elements/FileDetails/FileMeta/index.js +19 -75
  63. package/dist/elements/FileDetails/FileMeta/types.js +2 -5
  64. package/dist/elements/FileDetails/index.js +15 -30
  65. package/dist/elements/FileDetails/types.js +2 -5
  66. package/dist/elements/GenerateConfirmation/index.js +22 -37
  67. package/dist/elements/GenerateConfirmation/types.js +2 -5
  68. package/dist/elements/GetFilterOptions/index.js +18 -33
  69. package/dist/elements/Gutter/index.js +5 -56
  70. package/dist/elements/Hamburger/index.js +18 -33
  71. package/dist/elements/Header/index.js +39 -95
  72. package/dist/elements/HydrateClientUser/index.js +6 -16
  73. package/dist/elements/IDLabel/index.js +5 -20
  74. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +6 -16
  75. package/dist/elements/ListControls/index.js +52 -104
  76. package/dist/elements/ListControls/types.js +2 -5
  77. package/dist/elements/ListDrawer/DrawerContent.js +72 -128
  78. package/dist/elements/ListDrawer/index.js +32 -100
  79. package/dist/elements/ListDrawer/types.js +2 -5
  80. package/dist/elements/ListSelection/index.js +11 -62
  81. package/dist/elements/Loading/index.js +25 -51
  82. package/dist/elements/LoadingOverlay/index.js +17 -79
  83. package/dist/elements/LoadingOverlay/reducer.js +3 -21
  84. package/dist/elements/LoadingOverlay/types.js +2 -5
  85. package/dist/elements/Localizer/LocalizerLabel/index.js +15 -30
  86. package/dist/elements/Localizer/index.js +24 -80
  87. package/dist/elements/Logout/index.js +13 -28
  88. package/dist/elements/Nav/NavHamburger/index.js +8 -23
  89. package/dist/elements/Nav/NavToggler/index.js +13 -28
  90. package/dist/elements/Nav/NavWrapper/index.js +8 -23
  91. package/dist/elements/Nav/context.js +20 -82
  92. package/dist/elements/Nav/index.js +36 -51
  93. package/dist/elements/NavGroup/index.js +21 -77
  94. package/dist/elements/Pagination/ClickableArrow/index.js +7 -22
  95. package/dist/elements/Pagination/ClickableArrow/types.js +2 -5
  96. package/dist/elements/Pagination/Page/index.js +4 -19
  97. package/dist/elements/Pagination/Page/types.js +2 -5
  98. package/dist/elements/Pagination/Separator/index.js +4 -19
  99. package/dist/elements/Pagination/index.js +20 -35
  100. package/dist/elements/Pagination/types.js +2 -5
  101. package/dist/elements/PerPage/index.js +28 -83
  102. package/dist/elements/Pill/index.js +16 -40
  103. package/dist/elements/Pill/types.js +2 -5
  104. package/dist/elements/Popup/PopupButtonList/index.js +10 -75
  105. package/dist/elements/Popup/PopupTrigger/index.js +6 -21
  106. package/dist/elements/Popup/PopupTrigger/types.js +2 -5
  107. package/dist/elements/Popup/index.js +29 -80
  108. package/dist/elements/Popup/types.js +2 -5
  109. package/dist/elements/PreviewButton/index.js +22 -73
  110. package/dist/elements/PreviewSizes/index.js +24 -80
  111. package/dist/elements/Publish/index.js +23 -79
  112. package/dist/elements/PublishMany/index.js +37 -93
  113. package/dist/elements/PublishMany/types.js +2 -5
  114. package/dist/elements/ReactSelect/ClearIndicator/index.js +7 -22
  115. package/dist/elements/ReactSelect/Control/index.js +5 -20
  116. package/dist/elements/ReactSelect/MultiValue/index.js +8 -23
  117. package/dist/elements/ReactSelect/MultiValueLabel/index.js +7 -22
  118. package/dist/elements/ReactSelect/MultiValueRemove/index.js +12 -27
  119. package/dist/elements/ReactSelect/SingleValue/index.js +5 -20
  120. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -22
  121. package/dist/elements/ReactSelect/index.js +45 -60
  122. package/dist/elements/ReactSelect/types.js +2 -5
  123. package/dist/elements/RenderCustomComponent/index.js +5 -20
  124. package/dist/elements/RenderCustomComponent/types.js +2 -5
  125. package/dist/elements/RenderTitle/index.js +9 -24
  126. package/dist/elements/RenderTitle/types.js +2 -5
  127. package/dist/elements/Save/index.js +16 -72
  128. package/dist/elements/SaveDraft/index.js +24 -80
  129. package/dist/elements/SearchFilter/index.js +31 -86
  130. package/dist/elements/SearchFilter/types.js +2 -5
  131. package/dist/elements/SelectAll/index.js +13 -28
  132. package/dist/elements/SelectRow/index.js +10 -25
  133. package/dist/elements/ShimmerEffect/index.js +12 -71
  134. package/dist/elements/SortColumn/index.js +27 -90
  135. package/dist/elements/SortColumn/types.js +2 -5
  136. package/dist/elements/SortComplex/index.js +35 -90
  137. package/dist/elements/SortComplex/types.js +2 -5
  138. package/dist/elements/Status/index.js +38 -88
  139. package/dist/elements/StayLoggedIn/index.js +20 -34
  140. package/dist/elements/StayLoggedIn/types.js +2 -5
  141. package/dist/elements/StepNav/SetStepNav.js +6 -16
  142. package/dist/elements/StepNav/index.js +27 -93
  143. package/dist/elements/StepNav/types.js +2 -5
  144. package/dist/elements/Table/TableCellProvider/index.js +7 -30
  145. package/dist/elements/Table/index.js +15 -38
  146. package/dist/elements/Table/types.js +2 -5
  147. package/dist/elements/TableColumns/buildColumns.js +7 -22
  148. package/dist/elements/TableColumns/columnReducer.js +2 -12
  149. package/dist/elements/TableColumns/index.js +24 -86
  150. package/dist/elements/Thumbnail/index.js +12 -68
  151. package/dist/elements/Thumbnail/types.js +2 -5
  152. package/dist/elements/ThumbnailCard/index.js +13 -28
  153. package/dist/elements/ThumbnailCard/types.js +2 -5
  154. package/dist/elements/Tooltip/index.js +14 -65
  155. package/dist/elements/Tooltip/types.js +2 -5
  156. package/dist/elements/Translation/index.js +7 -58
  157. package/dist/elements/UnpublishMany/index.js +37 -93
  158. package/dist/elements/UnpublishMany/types.js +2 -5
  159. package/dist/elements/Upload/index.js +57 -127
  160. package/dist/elements/Upload/types.js +2 -5
  161. package/dist/elements/ViewDescription/index.js +12 -27
  162. package/dist/elements/ViewDescription/types.js +4 -19
  163. package/dist/elements/WhereBuilder/Condition/Date/index.js +6 -21
  164. package/dist/elements/WhereBuilder/Condition/Date/types.js +2 -5
  165. package/dist/elements/WhereBuilder/Condition/Number/index.js +7 -22
  166. package/dist/elements/WhereBuilder/Condition/Number/types.js +2 -5
  167. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +28 -84
  168. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +5 -15
  169. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +2 -5
  170. package/dist/elements/WhereBuilder/Condition/Select/index.js +15 -30
  171. package/dist/elements/WhereBuilder/Condition/Select/types.js +2 -5
  172. package/dist/elements/WhereBuilder/Condition/Text/index.js +7 -22
  173. package/dist/elements/WhereBuilder/Condition/Text/types.js +2 -5
  174. package/dist/elements/WhereBuilder/Condition/index.js +37 -93
  175. package/dist/elements/WhereBuilder/Condition/types.js +2 -5
  176. package/dist/elements/WhereBuilder/field-types.js +2 -12
  177. package/dist/elements/WhereBuilder/index.js +43 -98
  178. package/dist/elements/WhereBuilder/reducer.js +2 -12
  179. package/dist/elements/WhereBuilder/transformWhereQuery.js +6 -12
  180. package/dist/elements/WhereBuilder/types.js +2 -5
  181. package/dist/elements/WhereBuilder/validateWhereQuery.js +4 -14
  182. package/dist/exports/assets.js +3 -26
  183. package/dist/exports/elements.js +48 -249
  184. package/dist/exports/forms.js +38 -173
  185. package/dist/exports/graphics.js +3 -26
  186. package/dist/exports/hooks.js +10 -54
  187. package/dist/exports/icons.js +18 -81
  188. package/dist/exports/index.js +10 -27
  189. package/dist/exports/providers.js +24 -118
  190. package/dist/exports/templates.js +3 -21
  191. package/dist/exports/types.js +2 -5
  192. package/dist/exports/utilities.js +11 -61
  193. package/dist/forms/Error/index.js +11 -26
  194. package/dist/forms/FieldDescription/index.js +9 -24
  195. package/dist/forms/FieldDescription/types.js +2 -5
  196. package/dist/forms/FieldPathProvider/index.js +7 -30
  197. package/dist/forms/FieldPathProvider/types.js +2 -5
  198. package/dist/forms/Form/buildFieldSchemaMap.js +14 -14
  199. package/dist/forms/Form/buildInitialState.js +2 -12
  200. package/dist/forms/Form/context.js +17 -67
  201. package/dist/forms/Form/createNestedFieldPath.js +5 -15
  202. package/dist/forms/Form/errorMessages.js +2 -12
  203. package/dist/forms/Form/fieldReducer.js +25 -38
  204. package/dist/forms/Form/getDataByPath.js +4 -14
  205. package/dist/forms/Form/getSiblingData.js +6 -21
  206. package/dist/forms/Form/index.js +84 -140
  207. package/dist/forms/Form/initContextState.js +2 -12
  208. package/dist/forms/Form/mergeServerFormState.js +4 -14
  209. package/dist/forms/Form/reduceFieldsToValues.js +4 -14
  210. package/dist/forms/Form/rows.js +3 -21
  211. package/dist/forms/Form/types.js +2 -5
  212. package/dist/forms/Label/index.js +9 -24
  213. package/dist/forms/NullifyField/index.js +15 -71
  214. package/dist/forms/RenderFields/RenderField.js +6 -21
  215. package/dist/forms/RenderFields/index.js +13 -28
  216. package/dist/forms/RenderFields/types.js +2 -5
  217. package/dist/forms/RowLabel/index.js +13 -28
  218. package/dist/forms/RowLabel/types.js +4 -19
  219. package/dist/forms/Submit/index.js +11 -62
  220. package/dist/forms/WatchChildErrors/buildPathSegments.js +2 -12
  221. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +2 -12
  222. package/dist/forms/WatchChildErrors/getNestedFieldState.js +5 -14
  223. package/dist/forms/WatchChildErrors/index.js +11 -26
  224. package/dist/forms/fields/Array/ArrayRow.js +24 -39
  225. package/dist/forms/fields/Array/index.js +59 -115
  226. package/dist/forms/fields/Array/types.js +2 -5
  227. package/dist/forms/fields/Blocks/BlockRow.js +27 -42
  228. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +10 -25
  229. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +29 -85
  230. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +2 -5
  231. package/dist/forms/fields/Blocks/RowActions.js +12 -27
  232. package/dist/forms/fields/Blocks/SectionTitle/index.js +10 -25
  233. package/dist/forms/fields/Blocks/SectionTitle/types.js +2 -5
  234. package/dist/forms/fields/Blocks/index.js +64 -120
  235. package/dist/forms/fields/Blocks/types.js +2 -5
  236. package/dist/forms/fields/Checkbox/Input.js +11 -34
  237. package/dist/forms/fields/Checkbox/index.js +19 -75
  238. package/dist/forms/fields/Checkbox/types.js +2 -5
  239. package/dist/forms/fields/Code/index.js +15 -71
  240. package/dist/forms/fields/Code/types.js +2 -5
  241. package/dist/forms/fields/Collapsible/index.js +31 -87
  242. package/dist/forms/fields/Collapsible/types.js +2 -5
  243. package/dist/forms/fields/ConfirmPassword/index.js +19 -75
  244. package/dist/forms/fields/ConfirmPassword/types.js +2 -5
  245. package/dist/forms/fields/DateTime/index.js +18 -74
  246. package/dist/forms/fields/DateTime/types.js +2 -5
  247. package/dist/forms/fields/Email/index.js +19 -83
  248. package/dist/forms/fields/Email/types.js +2 -5
  249. package/dist/forms/fields/Group/index.js +32 -88
  250. package/dist/forms/fields/Group/provider.js +7 -69
  251. package/dist/forms/fields/Group/types.js +2 -5
  252. package/dist/forms/fields/HiddenInput/index.js +8 -64
  253. package/dist/forms/fields/HiddenInput/types.js +2 -5
  254. package/dist/forms/fields/JSON/index.js +20 -76
  255. package/dist/forms/fields/JSON/types.js +2 -5
  256. package/dist/forms/fields/Number/index.js +26 -82
  257. package/dist/forms/fields/Number/types.js +2 -5
  258. package/dist/forms/fields/Password/index.js +15 -79
  259. package/dist/forms/fields/Password/types.js +2 -5
  260. package/dist/forms/fields/Point/index.js +24 -80
  261. package/dist/forms/fields/Point/types.js +2 -5
  262. package/dist/forms/fields/RadioGroup/Radio/index.js +13 -28
  263. package/dist/forms/fields/RadioGroup/index.js +23 -79
  264. package/dist/forms/fields/RadioGroup/types.js +2 -5
  265. package/dist/forms/fields/Relationship/AddNew/index.js +43 -99
  266. package/dist/forms/fields/Relationship/AddNew/types.js +2 -5
  267. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +6 -16
  268. package/dist/forms/fields/Relationship/createRelationMap.js +2 -12
  269. package/dist/forms/fields/Relationship/findOptionsByValue.js +2 -12
  270. package/dist/forms/fields/Relationship/index.js +64 -120
  271. package/dist/forms/fields/Relationship/optionsReducer.js +7 -17
  272. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +21 -72
  273. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +22 -73
  274. package/dist/forms/fields/Relationship/types.js +2 -5
  275. package/dist/forms/fields/RichText/index.js +2 -12
  276. package/dist/forms/fields/RichText/types.js +2 -5
  277. package/dist/forms/fields/Row/index.js +11 -26
  278. package/dist/forms/fields/Row/provider.js +7 -69
  279. package/dist/forms/fields/Row/types.js +2 -5
  280. package/dist/forms/fields/Select/index.js +24 -88
  281. package/dist/forms/fields/Select/types.js +2 -5
  282. package/dist/forms/fields/Tabs/Tab/index.js +13 -64
  283. package/dist/forms/fields/Tabs/index.js +35 -91
  284. package/dist/forms/fields/Tabs/provider.js +7 -69
  285. package/dist/forms/fields/Tabs/types.js +2 -5
  286. package/dist/forms/fields/Text/Input.js +14 -29
  287. package/dist/forms/fields/Text/index.js +23 -79
  288. package/dist/forms/fields/Text/types.js +2 -5
  289. package/dist/forms/fields/Textarea/Input.js +15 -30
  290. package/dist/forms/fields/Textarea/index.js +20 -76
  291. package/dist/forms/fields/Textarea/types.js +2 -5
  292. package/dist/forms/fields/UI/index.js +2 -12
  293. package/dist/forms/fields/Upload/Input.js +35 -91
  294. package/dist/forms/fields/Upload/index.js +14 -70
  295. package/dist/forms/fields/Upload/types.js +2 -5
  296. package/dist/forms/fields/getFilterOptionsQuery.js +2 -12
  297. package/dist/forms/fields/index.js +50 -65
  298. package/dist/forms/fields/shared.js +7 -21
  299. package/dist/forms/useField/index.js +25 -40
  300. package/dist/forms/useField/types.js +2 -5
  301. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +21 -33
  302. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +5 -14
  303. package/dist/forms/utilities/buildStateFromSchema/index.js +4 -14
  304. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +8 -16
  305. package/dist/forms/withCondition/WatchCondition.js +7 -57
  306. package/dist/forms/withCondition/index.js +8 -23
  307. package/dist/graphics/Account/Default/index.js +7 -22
  308. package/dist/graphics/Account/Gravatar/index.js +10 -25
  309. package/dist/graphics/Account/index.js +15 -30
  310. package/dist/graphics/DefaultBlockImage/index.js +11 -62
  311. package/dist/graphics/ExternalLink/index.js +5 -20
  312. package/dist/graphics/File/index.js +7 -22
  313. package/dist/graphics/Icon/index.js +13 -28
  314. package/dist/graphics/Logo/index.js +15 -30
  315. package/dist/graphics/Search/index.js +6 -21
  316. package/dist/hooks/useAdminThumbnail.js +5 -15
  317. package/dist/hooks/useDebounce.js +6 -16
  318. package/dist/hooks/useDebouncedCallback.js +10 -15
  319. package/dist/hooks/useDebouncedEffect.js +6 -16
  320. package/dist/hooks/useDelay.js +7 -58
  321. package/dist/hooks/useDelayedRender.js +11 -62
  322. package/dist/hooks/useHotkey.js +10 -20
  323. package/dist/hooks/useIntersect.js +7 -17
  324. package/dist/hooks/usePayloadAPI.js +17 -32
  325. package/dist/hooks/useResize.js +5 -15
  326. package/dist/hooks/useThrottledEffect.js +5 -15
  327. package/dist/hooks/useThumbnail.js +8 -18
  328. package/dist/hooks/useUseAsTitle.js +6 -16
  329. package/dist/icons/Calendar/index.js +8 -23
  330. package/dist/icons/Check/index.js +6 -21
  331. package/dist/icons/Chevron/index.js +5 -20
  332. package/dist/icons/CloseMenu/index.js +6 -21
  333. package/dist/icons/CodeBlock/index.js +5 -20
  334. package/dist/icons/Copy/index.js +6 -21
  335. package/dist/icons/DragHandle/index.js +10 -25
  336. package/dist/icons/Edit/index.js +7 -22
  337. package/dist/icons/Line/index.js +5 -20
  338. package/dist/icons/Link/index.js +6 -21
  339. package/dist/icons/LogOut/index.js +7 -22
  340. package/dist/icons/Menu/index.js +7 -22
  341. package/dist/icons/MinimizeMaximize/index.js +12 -63
  342. package/dist/icons/More/index.js +7 -22
  343. package/dist/icons/Plus/index.js +6 -21
  344. package/dist/icons/Search/index.js +6 -21
  345. package/dist/icons/Swap/index.js +8 -23
  346. package/dist/icons/X/index.js +6 -21
  347. package/dist/index.js +2 -19
  348. package/dist/providers/ActionsProvider/SetViewActions/index.js +6 -16
  349. package/dist/providers/ActionsProvider/index.js +11 -70
  350. package/dist/providers/Auth/HydrateClientUser/index.js +6 -16
  351. package/dist/providers/Auth/index.js +52 -116
  352. package/dist/providers/Auth/types.js +2 -5
  353. package/dist/providers/ClientFunction/index.js +14 -40
  354. package/dist/providers/ComponentMapProvider/index.js +9 -68
  355. package/dist/providers/Config/index.js +6 -65
  356. package/dist/providers/CustomProvider/index.js +9 -24
  357. package/dist/providers/DocumentEvents/index.js +7 -66
  358. package/dist/providers/DocumentEvents/types.js +2 -5
  359. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +9 -19
  360. package/dist/providers/DocumentInfo/index.js +42 -100
  361. package/dist/providers/DocumentInfo/types.js +2 -5
  362. package/dist/providers/EditDepth/index.js +5 -67
  363. package/dist/providers/FormQueryParams/index.js +7 -69
  364. package/dist/providers/ListInfo/index.js +9 -68
  365. package/dist/providers/ListInfo/types.js +2 -5
  366. package/dist/providers/Locale/index.js +28 -87
  367. package/dist/providers/OperationProvider/index.js +5 -67
  368. package/dist/providers/Params/index.js +9 -67
  369. package/dist/providers/Portal/index.js +4 -19
  370. package/dist/providers/Preferences/index.js +25 -89
  371. package/dist/providers/Root/index.js +31 -82
  372. package/dist/providers/SearchParams/index.js +14 -77
  373. package/dist/providers/SearchParams/types.js +2 -5
  374. package/dist/providers/SelectionProvider/index.js +23 -90
  375. package/dist/providers/Theme/index.js +11 -73
  376. package/dist/providers/Theme/types.js +2 -5
  377. package/dist/providers/Theme/utilities.js +3 -21
  378. package/dist/providers/Translation/index.js +8 -67
  379. package/dist/templates/Default/NavHamburger/index.js +7 -22
  380. package/dist/templates/Default/Wrapper/index.js +7 -22
  381. package/dist/templates/Default/index.js +17 -68
  382. package/dist/templates/Default/types.js +2 -5
  383. package/dist/templates/Minimal/index.js +6 -21
  384. package/dist/templates/Minimal/types.js +2 -5
  385. package/dist/utilities/api.js +4 -19
  386. package/dist/utilities/arraysHaveSameStrings.js +2 -12
  387. package/dist/utilities/buildComponentMap/index.js +16 -31
  388. package/dist/utilities/buildComponentMap/mapActions.js +5 -20
  389. package/dist/utilities/buildComponentMap/mapFields.js +34 -90
  390. package/dist/utilities/buildComponentMap/types.js +2 -5
  391. package/dist/utilities/buildFieldSchemaMap/index.js +5 -15
  392. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +9 -19
  393. package/dist/utilities/buildFieldSchemaMap/types.js +2 -5
  394. package/dist/utilities/canUseDOM.js +2 -12
  395. package/dist/utilities/findLocaleFromCode.js +4 -12
  396. package/dist/utilities/formatDate/getSupportedDateLocale.js +2 -12
  397. package/dist/utilities/formatDate/index.js +10 -69
  398. package/dist/utilities/formatDocTitle.js +6 -16
  399. package/dist/utilities/formatFields.js +3 -13
  400. package/dist/utilities/getFormState.js +2 -12
  401. package/dist/utilities/getOffsetTop.js +2 -12
  402. package/dist/utilities/getRequestLanguage.js +2 -12
  403. package/dist/utilities/getSupportedMonacoLocale.js +2 -12
  404. package/dist/utilities/groupNavItems.js +7 -25
  405. package/dist/utilities/scrollToID.js +2 -12
  406. package/dist/utilities/setsAreEqual.js +2 -12
  407. package/dist/utilities/withMergedProps/index.js +23 -21
  408. package/dist/views/Global/RenderCustomView.js +0 -1
  409. package/package.json +4 -4
@@ -1,87 +1,31 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- const _translations = require("@payloadcms/translations");
13
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
14
- const _Banner = /*#__PURE__*/ _interop_require_default(require("../../../elements/Banner"));
15
- const _Button = require("../../../elements/Button");
16
- const _DraggableSortable = /*#__PURE__*/ _interop_require_default(require("../../../elements/DraggableSortable"));
17
- const _DraggableSortableItem = /*#__PURE__*/ _interop_require_default(require("../../../elements/DraggableSortable/DraggableSortableItem"));
18
- const _Drawer = require("../../../elements/Drawer");
19
- const _useDrawerSlug = require("../../../elements/Drawer/useDrawerSlug");
20
- const _ErrorPill = require("../../../elements/ErrorPill");
21
- const _Config = require("../../../providers/Config");
22
- const _DocumentInfo = require("../../../providers/DocumentInfo");
23
- const _Locale = require("../../../providers/Locale");
24
- const _Translation = require("../../../providers/Translation");
25
- const _scrollToID = require("../../../utilities/scrollToID");
26
- const _context = require("../../Form/context");
27
- const _Label = /*#__PURE__*/ _interop_require_default(require("../../Label"));
28
- const _NullifyField = require("../../NullifyField");
29
- const _useField = /*#__PURE__*/ _interop_require_default(require("../../useField"));
30
- const _shared = require("../shared");
31
- const _BlockRow = require("./BlockRow");
32
- const _BlocksDrawer = require("./BlocksDrawer");
33
- require("./index.scss");
34
- function _interop_require_default(obj) {
35
- return obj && obj.__esModule ? obj : {
36
- default: obj
37
- };
38
- }
39
- function _getRequireWildcardCache(nodeInterop) {
40
- if (typeof WeakMap !== "function") return null;
41
- var cacheBabelInterop = new WeakMap();
42
- var cacheNodeInterop = new WeakMap();
43
- return (_getRequireWildcardCache = function(nodeInterop) {
44
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
45
- })(nodeInterop);
46
- }
47
- function _interop_require_wildcard(obj, nodeInterop) {
48
- if (!nodeInterop && obj && obj.__esModule) {
49
- return obj;
50
- }
51
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
52
- return {
53
- default: obj
54
- };
55
- }
56
- var cache = _getRequireWildcardCache(nodeInterop);
57
- if (cache && cache.has(obj)) {
58
- return cache.get(obj);
59
- }
60
- var newObj = {
61
- __proto__: null
62
- };
63
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
64
- for(var key in obj){
65
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
66
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
67
- if (desc && (desc.get || desc.set)) {
68
- Object.defineProperty(newObj, key, desc);
69
- } else {
70
- newObj[key] = obj[key];
71
- }
72
- }
73
- }
74
- newObj.default = obj;
75
- if (cache) {
76
- cache.set(obj, newObj);
77
- }
78
- return newObj;
79
- }
2
+ import { getTranslation } from '@payloadcms/translations';
3
+ import React, { Fragment, useCallback } from 'react';
4
+ import Banner from '../../../elements/Banner';
5
+ import { Button } from '../../../elements/Button';
6
+ import DraggableSortable from '../../../elements/DraggableSortable';
7
+ import DraggableSortableItem from '../../../elements/DraggableSortable/DraggableSortableItem';
8
+ import { DrawerToggler } from '../../../elements/Drawer';
9
+ import { useDrawerSlug } from '../../../elements/Drawer/useDrawerSlug';
10
+ import { ErrorPill } from '../../../elements/ErrorPill';
11
+ import { useConfig } from '../../../providers/Config';
12
+ import { useDocumentInfo } from '../../../providers/DocumentInfo';
13
+ import { useLocale } from '../../../providers/Locale';
14
+ import { useTranslation } from '../../../providers/Translation';
15
+ import { scrollToID } from '../../../utilities/scrollToID';
16
+ import { useForm, useFormSubmitted } from '../../Form/context';
17
+ import LabelComp from '../../Label';
18
+ import { NullifyLocaleField } from '../../NullifyField';
19
+ import useField from '../../useField';
20
+ import { fieldBaseClass } from '../shared';
21
+ import { BlockRow } from './BlockRow';
22
+ import { BlocksDrawer } from './BlocksDrawer';
23
+ import './index.scss';
80
24
  const baseClass = 'blocks-field';
81
25
  const BlocksField = (props)=>{
82
- const { i18n, t } = (0, _Translation.useTranslation)();
26
+ const { i18n, t } = useTranslation();
83
27
  const { name, Description, Error, Label: LabelFromProps, className, forceRender = false, indexPath, label, localized, path: pathFromProps, permissions, readOnly, required, validate } = props;
84
- const Label = LabelFromProps || /*#__PURE__*/ _react.default.createElement(_Label.default, {
28
+ const Label = LabelFromProps || /*#__PURE__*/ React.createElement(LabelComp, {
85
29
  label: label,
86
30
  required: required
87
31
  });
@@ -89,12 +33,12 @@ const BlocksField = (props)=>{
89
33
  const maxRows = 'maxRows' in props ? props.maxRows : undefined;
90
34
  const blocks = 'blocks' in props ? props.blocks : undefined;
91
35
  const labelsFromProps = 'labels' in props ? props.labels : undefined;
92
- const { setDocFieldPreferences } = (0, _DocumentInfo.useDocumentInfo)();
93
- const { dispatchFields, setModified } = (0, _context.useForm)();
94
- const { code: locale } = (0, _Locale.useLocale)();
95
- const { localization } = (0, _Config.useConfig)();
96
- const drawerSlug = (0, _useDrawerSlug.useDrawerSlug)('blocks-drawer');
97
- const submitted = (0, _context.useFormSubmitted)();
36
+ const { setDocFieldPreferences } = useDocumentInfo();
37
+ const { dispatchFields, setModified } = useForm();
38
+ const { code: locale } = useLocale();
39
+ const { localization } = useConfig();
40
+ const drawerSlug = useDrawerSlug('blocks-drawer');
41
+ const submitted = useFormSubmitted();
98
42
  const labels = {
99
43
  plural: t('fields:blocks'),
100
44
  singular: t('fields:block'),
@@ -107,7 +51,7 @@ const BlocksField = (props)=>{
107
51
  }
108
52
  return true;
109
53
  })();
110
- const memoizedValidate = (0, _react.useCallback)((value, options)=>{
54
+ const memoizedValidate = useCallback((value, options)=>{
111
55
  // alternative locales can be null
112
56
  if (!editingDefaultLocale && value === null) {
113
57
  return true;
@@ -127,12 +71,12 @@ const BlocksField = (props)=>{
127
71
  validate,
128
72
  editingDefaultLocale
129
73
  ]);
130
- const { path, rows = [], schemaPath, showError, valid, value } = (0, _useField.default)({
74
+ const { path, rows = [], schemaPath, showError, valid, value } = useField({
131
75
  hasRows: true,
132
76
  path: pathFromProps || name,
133
77
  validate: memoizedValidate
134
78
  });
135
- const addRow = (0, _react.useCallback)(async (rowIndex, blockType)=>{
79
+ const addRow = useCallback(async (rowIndex, blockType)=>{
136
80
  dispatchFields({
137
81
  blockType,
138
82
  path,
@@ -141,13 +85,13 @@ const BlocksField = (props)=>{
141
85
  });
142
86
  setModified(true);
143
87
  setTimeout(()=>{
144
- (0, _scrollToID.scrollToID)(`${path}-row-${rowIndex + 1}`);
88
+ scrollToID(`${path}-row-${rowIndex + 1}`);
145
89
  }, 0);
146
90
  }, [
147
91
  path,
148
92
  setModified
149
93
  ]);
150
- const duplicateRow = (0, _react.useCallback)((rowIndex)=>{
94
+ const duplicateRow = useCallback((rowIndex)=>{
151
95
  dispatchFields({
152
96
  path,
153
97
  rowIndex,
@@ -155,14 +99,14 @@ const BlocksField = (props)=>{
155
99
  });
156
100
  setModified(true);
157
101
  setTimeout(()=>{
158
- (0, _scrollToID.scrollToID)(`${path}-row-${rowIndex + 1}`);
102
+ scrollToID(`${path}-row-${rowIndex + 1}`);
159
103
  }, 0);
160
104
  }, [
161
105
  dispatchFields,
162
106
  path,
163
107
  setModified
164
108
  ]);
165
- const removeRow = (0, _react.useCallback)((rowIndex)=>{
109
+ const removeRow = useCallback((rowIndex)=>{
166
110
  dispatchFields({
167
111
  path,
168
112
  rowIndex,
@@ -174,7 +118,7 @@ const BlocksField = (props)=>{
174
118
  dispatchFields,
175
119
  setModified
176
120
  ]);
177
- const moveRow = (0, _react.useCallback)((moveFromIndex, moveToIndex)=>{
121
+ const moveRow = useCallback((moveFromIndex, moveToIndex)=>{
178
122
  dispatchFields({
179
123
  moveFromIndex,
180
124
  moveToIndex,
@@ -187,7 +131,7 @@ const BlocksField = (props)=>{
187
131
  path,
188
132
  setModified
189
133
  ]);
190
- const toggleCollapseAll = (0, _react.useCallback)((collapsed)=>{
134
+ const toggleCollapseAll = useCallback((collapsed)=>{
191
135
  dispatchFields({
192
136
  collapsed,
193
137
  path,
@@ -199,7 +143,7 @@ const BlocksField = (props)=>{
199
143
  path,
200
144
  setDocFieldPreferences
201
145
  ]);
202
- const setCollapse = (0, _react.useCallback)((rowID, collapsed)=>{
146
+ const setCollapse = useCallback((rowID, collapsed)=>{
203
147
  dispatchFields({
204
148
  collapsed,
205
149
  path,
@@ -217,41 +161,41 @@ const BlocksField = (props)=>{
217
161
  const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0;
218
162
  const showMinRows = rows.length < minRows || required && rows.length === 0;
219
163
  const showRequired = readOnly && rows.length === 0;
220
- return /*#__PURE__*/ _react.default.createElement("div", {
164
+ return /*#__PURE__*/ React.createElement("div", {
221
165
  className: [
222
- _shared.fieldBaseClass,
166
+ fieldBaseClass,
223
167
  baseClass,
224
168
  className,
225
169
  fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`
226
170
  ].filter(Boolean).join(' '),
227
171
  id: `field-${path.replace(/\./g, '__')}`
228
- }, showError && /*#__PURE__*/ _react.default.createElement("div", {
172
+ }, showError && /*#__PURE__*/ React.createElement("div", {
229
173
  className: `${baseClass}__error-wrap`
230
- }, Error), /*#__PURE__*/ _react.default.createElement("header", {
174
+ }, Error), /*#__PURE__*/ React.createElement("header", {
231
175
  className: `${baseClass}__header`
232
- }, /*#__PURE__*/ _react.default.createElement("div", {
176
+ }, /*#__PURE__*/ React.createElement("div", {
233
177
  className: `${baseClass}__header-wrap`
234
- }, /*#__PURE__*/ _react.default.createElement("div", {
178
+ }, /*#__PURE__*/ React.createElement("div", {
235
179
  className: `${baseClass}__heading-with-error`
236
- }, /*#__PURE__*/ _react.default.createElement("h3", null, Label), fieldHasErrors && fieldErrorCount > 0 && /*#__PURE__*/ _react.default.createElement(_ErrorPill.ErrorPill, {
180
+ }, /*#__PURE__*/ React.createElement("h3", null, Label), fieldHasErrors && fieldErrorCount > 0 && /*#__PURE__*/ React.createElement(ErrorPill, {
237
181
  count: fieldErrorCount,
238
182
  i18n: i18n,
239
183
  withMessage: true
240
- })), rows.length > 0 && /*#__PURE__*/ _react.default.createElement("ul", {
184
+ })), rows.length > 0 && /*#__PURE__*/ React.createElement("ul", {
241
185
  className: `${baseClass}__header-actions`
242
- }, /*#__PURE__*/ _react.default.createElement("li", null, /*#__PURE__*/ _react.default.createElement("button", {
186
+ }, /*#__PURE__*/ React.createElement("li", null, /*#__PURE__*/ React.createElement("button", {
243
187
  className: `${baseClass}__header-action`,
244
188
  onClick: ()=>toggleCollapseAll(true),
245
189
  type: "button"
246
- }, t('fields:collapseAll'))), /*#__PURE__*/ _react.default.createElement("li", null, /*#__PURE__*/ _react.default.createElement("button", {
190
+ }, t('fields:collapseAll'))), /*#__PURE__*/ React.createElement("li", null, /*#__PURE__*/ React.createElement("button", {
247
191
  className: `${baseClass}__header-action`,
248
192
  onClick: ()=>toggleCollapseAll(false),
249
193
  type: "button"
250
- }, t('fields:showAll'))))), Description), /*#__PURE__*/ _react.default.createElement(_NullifyField.NullifyLocaleField, {
194
+ }, t('fields:showAll'))))), Description), /*#__PURE__*/ React.createElement(NullifyLocaleField, {
251
195
  fieldValue: value,
252
196
  localized: localized,
253
197
  path: path
254
- }), (rows.length > 0 || !valid && (showRequired || showMinRows)) && /*#__PURE__*/ _react.default.createElement(_DraggableSortable.default, {
198
+ }), (rows.length > 0 || !valid && (showRequired || showMinRows)) && /*#__PURE__*/ React.createElement(DraggableSortable, {
255
199
  className: `${baseClass}__rows`,
256
200
  ids: rows.map((row)=>row.id),
257
201
  onDragEnd: ({ moveFromIndex, moveToIndex })=>moveRow(moveFromIndex, moveToIndex)
@@ -259,11 +203,11 @@ const BlocksField = (props)=>{
259
203
  const { blockType } = row;
260
204
  const blockToRender = blocks.find((block)=>block.slug === blockType);
261
205
  if (blockToRender) {
262
- return /*#__PURE__*/ _react.default.createElement(_DraggableSortableItem.default, {
206
+ return /*#__PURE__*/ React.createElement(DraggableSortableItem, {
263
207
  disabled: readOnly,
264
208
  id: row.id,
265
209
  key: row.id
266
- }, (draggableSortableItemProps)=>/*#__PURE__*/ _react.default.createElement(_BlockRow.BlockRow, {
210
+ }, (draggableSortableItemProps)=>/*#__PURE__*/ React.createElement(BlockRow, {
267
211
  ...draggableSortableItemProps,
268
212
  addRow: addRow,
269
213
  block: blockToRender,
@@ -286,25 +230,25 @@ const BlocksField = (props)=>{
286
230
  }));
287
231
  }
288
232
  return null;
289
- }), !editingDefaultLocale && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, showMinRows && /*#__PURE__*/ _react.default.createElement(_Banner.default, {
233
+ }), !editingDefaultLocale && /*#__PURE__*/ React.createElement(React.Fragment, null, showMinRows && /*#__PURE__*/ React.createElement(Banner, {
290
234
  type: "error"
291
235
  }, t('validation:requiresAtLeast', {
292
236
  count: minRows,
293
- label: (0, _translations.getTranslation)(minRows === 1 || typeof minRows === 'undefined' ? labels.singular : labels.plural, i18n)
294
- })), showRequired && /*#__PURE__*/ _react.default.createElement(_Banner.default, null, t('validation:fieldHasNo', {
295
- label: (0, _translations.getTranslation)(labels.plural, i18n)
296
- })))), !readOnly && !hasMaxRows && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement(_Drawer.DrawerToggler, {
237
+ label: getTranslation(minRows === 1 || typeof minRows === 'undefined' ? labels.singular : labels.plural, i18n)
238
+ })), showRequired && /*#__PURE__*/ React.createElement(Banner, null, t('validation:fieldHasNo', {
239
+ label: getTranslation(labels.plural, i18n)
240
+ })))), !readOnly && !hasMaxRows && /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement(DrawerToggler, {
297
241
  className: `${baseClass}__drawer-toggler`,
298
242
  slug: drawerSlug
299
- }, /*#__PURE__*/ _react.default.createElement(_Button.Button, {
243
+ }, /*#__PURE__*/ React.createElement(Button, {
300
244
  buttonStyle: "icon-label",
301
245
  el: "span",
302
246
  icon: "plus",
303
247
  iconPosition: "left",
304
248
  iconStyle: "with-border"
305
249
  }, t('fields:addLabel', {
306
- label: (0, _translations.getTranslation)(labels.singular, i18n)
307
- }))), /*#__PURE__*/ _react.default.createElement(_BlocksDrawer.BlocksDrawer, {
250
+ label: getTranslation(labels.singular, i18n)
251
+ }))), /*#__PURE__*/ React.createElement(BlocksDrawer, {
308
252
  addRow: addRow,
309
253
  addRowIndex: rows?.length || 0,
310
254
  blocks: blocks,
@@ -312,6 +256,6 @@ const BlocksField = (props)=>{
312
256
  labels: labels
313
257
  })));
314
258
  };
315
- const _default = BlocksField;
259
+ export default BlocksField;
316
260
 
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQmxvY2tzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IEJhbm5lciBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9CYW5uZXInXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9CdXR0b24nXG5pbXBvcnQgRHJhZ2dhYmxlU29ydGFibGUgZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRHJhZ2dhYmxlU29ydGFibGUnXG5pbXBvcnQgRHJhZ2dhYmxlU29ydGFibGVJdGVtIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL0RyYWdnYWJsZVNvcnRhYmxlL0RyYWdnYWJsZVNvcnRhYmxlSXRlbSdcbmltcG9ydCB7IERyYXdlclRvZ2dsZXIgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9EcmF3ZXInXG5pbXBvcnQgeyB1c2VEcmF3ZXJTbHVnIH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRHJhd2VyL3VzZURyYXdlclNsdWcnXG5pbXBvcnQgeyBFcnJvclBpbGwgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9FcnJvclBpbGwnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9UcmFuc2xhdGlvbidcbmltcG9ydCB7IHNjcm9sbFRvSUQgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvc2Nyb2xsVG9JRCdcbmltcG9ydCB7IHVzZUZvcm0sIHVzZUZvcm1TdWJtaXR0ZWQgfSBmcm9tICcuLi8uLi9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgTGFiZWxDb21wIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHsgTnVsbGlmeUxvY2FsZUZpZWxkIH0gZnJvbSAnLi4vLi4vTnVsbGlmeUZpZWxkJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHsgZmllbGRCYXNlQ2xhc3MgfSBmcm9tICcuLi9zaGFyZWQnXG5pbXBvcnQgeyBCbG9ja1JvdyB9IGZyb20gJy4vQmxvY2tSb3cnXG5pbXBvcnQgeyBCbG9ja3NEcmF3ZXIgfSBmcm9tICcuL0Jsb2Nrc0RyYXdlcidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnYmxvY2tzLWZpZWxkJ1xuXG5jb25zdCBCbG9ja3NGaWVsZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIERlc2NyaXB0aW9uLFxuICAgIEVycm9yLFxuICAgIExhYmVsOiBMYWJlbEZyb21Qcm9wcyxcbiAgICBjbGFzc05hbWUsXG4gICAgZm9yY2VSZW5kZXIgPSBmYWxzZSxcbiAgICBpbmRleFBhdGgsXG4gICAgbGFiZWwsXG4gICAgbG9jYWxpemVkLFxuICAgIHBhdGg6IHBhdGhGcm9tUHJvcHMsXG4gICAgcGVybWlzc2lvbnMsXG4gICAgcmVhZE9ubHksXG4gICAgcmVxdWlyZWQsXG4gICAgdmFsaWRhdGUsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IExhYmVsID0gTGFiZWxGcm9tUHJvcHMgfHwgPExhYmVsQ29tcCBsYWJlbD17bGFiZWx9IHJlcXVpcmVkPXtyZXF1aXJlZH0gLz5cblxuICBjb25zdCBtaW5Sb3dzID0gJ21pblJvd3MnIGluIHByb3BzID8gcHJvcHMubWluUm93cyA6IDBcbiAgY29uc3QgbWF4Um93cyA9ICdtYXhSb3dzJyBpbiBwcm9wcyA/IHByb3BzLm1heFJvd3MgOiB1bmRlZmluZWRcbiAgY29uc3QgYmxvY2tzID0gJ2Jsb2NrcycgaW4gcHJvcHMgPyBwcm9wcy5ibG9ja3MgOiB1bmRlZmluZWRcbiAgY29uc3QgbGFiZWxzRnJvbVByb3BzID0gJ2xhYmVscycgaW4gcHJvcHMgPyBwcm9wcy5sYWJlbHMgOiB1bmRlZmluZWRcblxuICBjb25zdCB7IHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IHsgZGlzcGF0Y2hGaWVsZHMsIHNldE1vZGlmaWVkIH0gPSB1c2VGb3JtKClcbiAgY29uc3QgeyBjb2RlOiBsb2NhbGUgfSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IHsgbG9jYWxpemF0aW9uIH0gPSB1c2VDb25maWcoKVxuICBjb25zdCBkcmF3ZXJTbHVnID0gdXNlRHJhd2VyU2x1ZygnYmxvY2tzLWRyYXdlcicpXG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuXG4gIGNvbnN0IGxhYmVscyA9IHtcbiAgICBwbHVyYWw6IHQoJ2ZpZWxkczpibG9ja3MnKSxcbiAgICBzaW5ndWxhcjogdCgnZmllbGRzOmJsb2NrJyksXG4gICAgLi4ubGFiZWxzRnJvbVByb3BzLFxuICB9XG5cbiAgY29uc3QgZWRpdGluZ0RlZmF1bHRMb2NhbGUgPSAoKCkgPT4ge1xuICAgIGlmIChsb2NhbGl6YXRpb24gJiYgbG9jYWxpemF0aW9uLmZhbGxiYWNrKSB7XG4gICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGUgfHwgJ2VuJ1xuICAgICAgcmV0dXJuIGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0pKClcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAvLyBhbHRlcm5hdGl2ZSBsb2NhbGVzIGNhbiBiZSBudWxsXG4gICAgICBpZiAoIWVkaXRpbmdEZWZhdWx0TG9jYWxlICYmIHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZSh2YWx1ZSwgeyAuLi5vcHRpb25zLCBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW21heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB2YWxpZGF0ZSwgZWRpdGluZ0RlZmF1bHRMb2NhbGVdLFxuICApXG5cbiAgY29uc3Qge1xuICAgIHBhdGgsXG4gICAgcm93cyA9IFtdLFxuICAgIHNjaGVtYVBhdGgsXG4gICAgc2hvd0Vycm9yLFxuICAgIHZhbGlkLFxuICAgIHZhbHVlLFxuICB9ID0gdXNlRmllbGQ8bnVtYmVyPih7XG4gICAgaGFzUm93czogdHJ1ZSxcbiAgICBwYXRoOiBwYXRoRnJvbVByb3BzIHx8IG5hbWUsXG4gICAgdmFsaWRhdGU6IG1lbW9pemVkVmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgYWRkUm93ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJvd0luZGV4OiBudW1iZXIsIGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIGJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcm93SW5kZXgsXG4gICAgICAgIHR5cGU6ICdBRERfUk9XJyxcbiAgICAgIH0pXG5cbiAgICAgIHNldE1vZGlmaWVkKHRydWUpXG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0lEKGAke3BhdGh9LXJvdy0ke3Jvd0luZGV4ICsgMX1gKVxuICAgICAgfSwgMClcbiAgICB9LFxuICAgIFtwYXRoLCBzZXRNb2RpZmllZF0sXG4gIClcblxuICBjb25zdCBkdXBsaWNhdGVSb3cgPSB1c2VDYWxsYmFjayhcbiAgICAocm93SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBwYXRoLCByb3dJbmRleCwgdHlwZTogJ0RVUExJQ0FURV9ST1cnIH0pXG4gICAgICBzZXRNb2RpZmllZCh0cnVlKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2Nyb2xsVG9JRChgJHtwYXRofS1yb3ctJHtyb3dJbmRleCArIDF9YClcbiAgICAgIH0sIDApXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIHBhdGgsIHNldE1vZGlmaWVkXSxcbiAgKVxuXG4gIGNvbnN0IHJlbW92ZVJvdyA9IHVzZUNhbGxiYWNrKFxuICAgIChyb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJvd0luZGV4LFxuICAgICAgICB0eXBlOiAnUkVNT1ZFX1JPVycsXG4gICAgICB9KVxuXG4gICAgICBzZXRNb2RpZmllZCh0cnVlKVxuICAgIH0sXG4gICAgW3BhdGgsIGRpc3BhdGNoRmllbGRzLCBzZXRNb2RpZmllZF0sXG4gIClcblxuICBjb25zdCBtb3ZlUm93ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1vdmVGcm9tSW5kZXg6IG51bWJlciwgbW92ZVRvSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCwgcGF0aCwgdHlwZTogJ01PVkVfUk9XJyB9KVxuICAgICAgc2V0TW9kaWZpZWQodHJ1ZSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgcGF0aCwgc2V0TW9kaWZpZWRdLFxuICApXG5cbiAgY29uc3QgdG9nZ2xlQ29sbGFwc2VBbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29sbGFwc2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IGNvbGxhcHNlZCwgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlcywgdHlwZTogJ1NFVF9BTExfUk9XU19DT0xMQVBTRUQnIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIHBhdGgsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXNdLFxuICApXG5cbiAgY29uc3Qgc2V0Q29sbGFwc2UgPSB1c2VDYWxsYmFjayhcbiAgICAocm93SUQ6IHN0cmluZywgY29sbGFwc2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IGNvbGxhcHNlZCwgcGF0aCwgcm93SUQsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMsIHR5cGU6ICdTRVRfUk9XX0NPTExBUFNFRCcgfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlc10sXG4gIClcblxuICBjb25zdCBoYXNNYXhSb3dzID0gbWF4Um93cyAmJiByb3dzLmxlbmd0aCA+PSBtYXhSb3dzXG5cbiAgY29uc3QgZmllbGRFcnJvckNvdW50ID0gcm93cy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgKHJvdz8uZXJyb3JQYXRocz8uc2l6ZSB8fCAwKSwgMClcbiAgY29uc3QgZmllbGRIYXNFcnJvcnMgPSBzdWJtaXR0ZWQgJiYgZmllbGRFcnJvckNvdW50ICsgKHZhbGlkID8gMCA6IDEpID4gMFxuXG4gIGNvbnN0IHNob3dNaW5Sb3dzID0gcm93cy5sZW5ndGggPCBtaW5Sb3dzIHx8IChyZXF1aXJlZCAmJiByb3dzLmxlbmd0aCA9PT0gMClcbiAgY29uc3Qgc2hvd1JlcXVpcmVkID0gcmVhZE9ubHkgJiYgcm93cy5sZW5ndGggPT09IDBcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W1xuICAgICAgICBmaWVsZEJhc2VDbGFzcyxcbiAgICAgICAgYmFzZUNsYXNzLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGZpZWxkSGFzRXJyb3JzID8gYCR7YmFzZUNsYXNzfS0taGFzLWVycm9yYCA6IGAke2Jhc2VDbGFzc30tLWhhcy1uby1lcnJvcmAsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIGlkPXtgZmllbGQtJHtwYXRoLnJlcGxhY2UoL1xcLi9nLCAnX18nKX1gfVxuICAgID5cbiAgICAgIHtzaG93RXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Vycm9yLXdyYXBgfT57RXJyb3J9PC9kaXY+fVxuICAgICAgPGhlYWRlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyLXdyYXBgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGluZy13aXRoLWVycm9yYH0+XG4gICAgICAgICAgICA8aDM+e0xhYmVsfTwvaDM+XG4gICAgICAgICAgICB7ZmllbGRIYXNFcnJvcnMgJiYgZmllbGRFcnJvckNvdW50ID4gMCAmJiAoXG4gICAgICAgICAgICAgIDxFcnJvclBpbGwgY291bnQ9e2ZpZWxkRXJyb3JDb3VudH0gaTE4bj17aTE4bn0gd2l0aE1lc3NhZ2UgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3Jvd3MubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uc2B9PlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uYH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlQWxsKHRydWUpfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3QoJ2ZpZWxkczpjb2xsYXBzZUFsbCcpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uYH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlQWxsKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0KCdmaWVsZHM6c2hvd0FsbCcpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge0Rlc2NyaXB0aW9ufVxuICAgICAgPC9oZWFkZXI+XG4gICAgICA8TnVsbGlmeUxvY2FsZUZpZWxkIGZpZWxkVmFsdWU9e3ZhbHVlfSBsb2NhbGl6ZWQ9e2xvY2FsaXplZH0gcGF0aD17cGF0aH0gLz5cbiAgICAgIHsocm93cy5sZW5ndGggPiAwIHx8ICghdmFsaWQgJiYgKHNob3dSZXF1aXJlZCB8fCBzaG93TWluUm93cykpKSAmJiAoXG4gICAgICAgIDxEcmFnZ2FibGVTb3J0YWJsZVxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcm93c2B9XG4gICAgICAgICAgaWRzPXtyb3dzLm1hcCgocm93KSA9PiByb3cuaWQpfVxuICAgICAgICAgIG9uRHJhZ0VuZD17KHsgbW92ZUZyb21JbmRleCwgbW92ZVRvSW5kZXggfSkgPT4gbW92ZVJvdyhtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCl9XG4gICAgICAgID5cbiAgICAgICAgICB7cm93cy5tYXAoKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9ja1R5cGUgfSA9IHJvd1xuICAgICAgICAgICAgY29uc3QgYmxvY2tUb1JlbmRlciA9IGJsb2Nrcy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gYmxvY2tUeXBlKVxuXG4gICAgICAgICAgICBpZiAoYmxvY2tUb1JlbmRlcikge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxEcmFnZ2FibGVTb3J0YWJsZUl0ZW0gZGlzYWJsZWQ9e3JlYWRPbmx5fSBpZD17cm93LmlkfSBrZXk9e3Jvdy5pZH0+XG4gICAgICAgICAgICAgICAgICB7KGRyYWdnYWJsZVNvcnRhYmxlSXRlbVByb3BzKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxCbG9ja1Jvd1xuICAgICAgICAgICAgICAgICAgICAgIHsuLi5kcmFnZ2FibGVTb3J0YWJsZUl0ZW1Qcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICBhZGRSb3c9e2FkZFJvd31cbiAgICAgICAgICAgICAgICAgICAgICBibG9jaz17YmxvY2tUb1JlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBibG9ja3M9e2Jsb2Nrc31cbiAgICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVSb3c9e2R1cGxpY2F0ZVJvd31cbiAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcj17Zm9yY2VSZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgaGFzTWF4Um93cz17aGFzTWF4Um93c31cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleFBhdGg9e2luZGV4UGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgICAgICAgICAgICAgICBtb3ZlUm93PXttb3ZlUm93fVxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM9e3Blcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVSb3c9e3JlbW92ZVJvd31cbiAgICAgICAgICAgICAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICAgICAgICAgICAgICByb3dDb3VudD17cm93cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgcm93SW5kZXg9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRDb2xsYXBzZT17c2V0Q29sbGFwc2V9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlU29ydGFibGVJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgeyFlZGl0aW5nRGVmYXVsdExvY2FsZSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIHtzaG93TWluUm93cyAmJiAoXG4gICAgICAgICAgICAgICAgPEJhbm5lciB0eXBlPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQ6IG1pblJvd3MsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Sb3dzID09PSAxIHx8IHR5cGVvZiBtaW5Sb3dzID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBsYWJlbHMuc2luZ3VsYXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWxzLnBsdXJhbCxcbiAgICAgICAgICAgICAgICAgICAgICBpMThuLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9CYW5uZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG93UmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgICAgIDxCYW5uZXI+XG4gICAgICAgICAgICAgICAgICB7dCgndmFsaWRhdGlvbjpmaWVsZEhhc05vJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24obGFiZWxzLnBsdXJhbCwgaTE4bikgfSl9XG4gICAgICAgICAgICAgICAgPC9CYW5uZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRHJhZ2dhYmxlU29ydGFibGU+XG4gICAgICApfVxuICAgICAgeyFyZWFkT25seSAmJiAhaGFzTWF4Um93cyAmJiAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2RyYXdlci10b2dnbGVyYH0gc2x1Zz17ZHJhd2VyU2x1Z30+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICAgIGVsPVwic3BhblwiXG4gICAgICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIGljb25TdHlsZT1cIndpdGgtYm9yZGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoJ2ZpZWxkczphZGRMYWJlbCcsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGxhYmVscy5zaW5ndWxhciwgaTE4bikgfSl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0RyYXdlclRvZ2dsZXI+XG4gICAgICAgICAgPEJsb2Nrc0RyYXdlclxuICAgICAgICAgICAgYWRkUm93PXthZGRSb3d9XG4gICAgICAgICAgICBhZGRSb3dJbmRleD17cm93cz8ubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICBibG9ja3M9e2Jsb2Nrc31cbiAgICAgICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBCbG9ja3NGaWVsZFxuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsIkJsb2Nrc0ZpZWxkIiwicHJvcHMiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwibmFtZSIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsIkxhYmVsRnJvbVByb3BzIiwiY2xhc3NOYW1lIiwiZm9yY2VSZW5kZXIiLCJpbmRleFBhdGgiLCJsYWJlbCIsImxvY2FsaXplZCIsInBhdGgiLCJwYXRoRnJvbVByb3BzIiwicGVybWlzc2lvbnMiLCJyZWFkT25seSIsInJlcXVpcmVkIiwidmFsaWRhdGUiLCJMYWJlbENvbXAiLCJtaW5Sb3dzIiwibWF4Um93cyIsInVuZGVmaW5lZCIsImJsb2NrcyIsImxhYmVsc0Zyb21Qcm9wcyIsImxhYmVscyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJ1c2VEb2N1bWVudEluZm8iLCJkaXNwYXRjaEZpZWxkcyIsInNldE1vZGlmaWVkIiwidXNlRm9ybSIsImNvZGUiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJsb2NhbGl6YXRpb24iLCJ1c2VDb25maWciLCJkcmF3ZXJTbHVnIiwidXNlRHJhd2VyU2x1ZyIsInN1Ym1pdHRlZCIsInVzZUZvcm1TdWJtaXR0ZWQiLCJwbHVyYWwiLCJzaW5ndWxhciIsImVkaXRpbmdEZWZhdWx0TG9jYWxlIiwiZmFsbGJhY2siLCJkZWZhdWx0TG9jYWxlIiwibWVtb2l6ZWRWYWxpZGF0ZSIsInVzZUNhbGxiYWNrIiwidmFsdWUiLCJvcHRpb25zIiwicm93cyIsInNjaGVtYVBhdGgiLCJzaG93RXJyb3IiLCJ2YWxpZCIsInVzZUZpZWxkIiwiaGFzUm93cyIsImFkZFJvdyIsInJvd0luZGV4IiwiYmxvY2tUeXBlIiwidHlwZSIsInNldFRpbWVvdXQiLCJzY3JvbGxUb0lEIiwiZHVwbGljYXRlUm93IiwicmVtb3ZlUm93IiwibW92ZVJvdyIsIm1vdmVGcm9tSW5kZXgiLCJtb3ZlVG9JbmRleCIsInRvZ2dsZUNvbGxhcHNlQWxsIiwiY29sbGFwc2VkIiwic2V0Q29sbGFwc2UiLCJyb3dJRCIsImhhc01heFJvd3MiLCJsZW5ndGgiLCJmaWVsZEVycm9yQ291bnQiLCJyZWR1Y2UiLCJ0b3RhbCIsInJvdyIsImVycm9yUGF0aHMiLCJzaXplIiwiZmllbGRIYXNFcnJvcnMiLCJzaG93TWluUm93cyIsInNob3dSZXF1aXJlZCIsImRpdiIsImZpZWxkQmFzZUNsYXNzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJpZCIsInJlcGxhY2UiLCJoZWFkZXIiLCJoMyIsIkVycm9yUGlsbCIsImNvdW50Iiwid2l0aE1lc3NhZ2UiLCJ1bCIsImxpIiwiYnV0dG9uIiwib25DbGljayIsIk51bGxpZnlMb2NhbGVGaWVsZCIsImZpZWxkVmFsdWUiLCJEcmFnZ2FibGVTb3J0YWJsZSIsImlkcyIsIm1hcCIsIm9uRHJhZ0VuZCIsImkiLCJibG9ja1RvUmVuZGVyIiwiZmluZCIsImJsb2NrIiwic2x1ZyIsIkRyYWdnYWJsZVNvcnRhYmxlSXRlbSIsImRpc2FibGVkIiwia2V5IiwiZHJhZ2dhYmxlU29ydGFibGVJdGVtUHJvcHMiLCJCbG9ja1JvdyIsInJvd0NvdW50IiwiUmVhY3QiLCJGcmFnbWVudCIsIkJhbm5lciIsImdldFRyYW5zbGF0aW9uIiwiRHJhd2VyVG9nZ2xlciIsIkJ1dHRvbiIsImJ1dHRvblN0eWxlIiwiZWwiLCJpY29uIiwiaWNvblBvc2l0aW9uIiwiaWNvblN0eWxlIiwiQmxvY2tzRHJhd2VyIiwiYWRkUm93SW5kZXgiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkE0VEE7OztlQUFBOzs7OEJBM1QrQjsrREFDYzsrREFJMUI7d0JBQ0k7MEVBQ087OEVBQ0k7d0JBQ0o7K0JBQ0E7MkJBQ0o7d0JBQ0E7OEJBQ007d0JBQ047NkJBQ0s7NEJBQ0o7eUJBQ2U7OERBQ3BCOzhCQUNhO2lFQUNkO3dCQUNVOzBCQUNOOzhCQUNJO1FBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsY0FBK0IsQ0FBQ0M7SUFDcEMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSwyQkFBYztJQUVsQyxNQUFNLEVBQ0pDLElBQUksRUFDSkMsV0FBVyxFQUNYQyxLQUFLLEVBQ0xDLE9BQU9DLGNBQWMsRUFDckJDLFNBQVMsRUFDVEMsY0FBYyxLQUFLLEVBQ25CQyxTQUFTLEVBQ1RDLEtBQUssRUFDTEMsU0FBUyxFQUNUQyxNQUFNQyxhQUFhLEVBQ25CQyxXQUFXLEVBQ1hDLFFBQVEsRUFDUkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1QsR0FBR25CO0lBRUosTUFBTU8sUUFBUUMsZ0NBQWtCLDZCQUFDWSxjQUFTO1FBQUNSLE9BQU9BO1FBQU9NLFVBQVVBOztJQUVuRSxNQUFNRyxVQUFVLGFBQWFyQixRQUFRQSxNQUFNcUIsT0FBTyxHQUFHO0lBQ3JELE1BQU1DLFVBQVUsYUFBYXRCLFFBQVFBLE1BQU1zQixPQUFPLEdBQUdDO0lBQ3JELE1BQU1DLFNBQVMsWUFBWXhCLFFBQVFBLE1BQU13QixNQUFNLEdBQUdEO0lBQ2xELE1BQU1FLGtCQUFrQixZQUFZekIsUUFBUUEsTUFBTTBCLE1BQU0sR0FBR0g7SUFFM0QsTUFBTSxFQUFFSSxzQkFBc0IsRUFBRSxHQUFHQyxJQUFBQSw2QkFBZTtJQUNsRCxNQUFNLEVBQUVDLGNBQWMsRUFBRUMsV0FBVyxFQUFFLEdBQUdDLElBQUFBLGdCQUFPO0lBQy9DLE1BQU0sRUFBRUMsTUFBTUMsTUFBTSxFQUFFLEdBQUdDLElBQUFBLGlCQUFTO0lBQ2xDLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLElBQUFBLGlCQUFTO0lBQ2xDLE1BQU1DLGFBQWFDLElBQUFBLDRCQUFhLEVBQUM7SUFDakMsTUFBTUMsWUFBWUMsSUFBQUEseUJBQWdCO0lBRWxDLE1BQU1kLFNBQVM7UUFDYmUsUUFBUXZDLEVBQUU7UUFDVndDLFVBQVV4QyxFQUFFO1FBQ1osR0FBR3VCLGVBQWU7SUFDcEI7SUFFQSxNQUFNa0IsdUJBQXVCLEFBQUMsQ0FBQTtRQUM1QixJQUFJUixnQkFBZ0JBLGFBQWFTLFFBQVEsRUFBRTtZQUN6QyxNQUFNQyxnQkFBZ0JWLGFBQWFVLGFBQWEsSUFBSTtZQUNwRCxPQUFPWixXQUFXWTtRQUNwQjtRQUVBLE9BQU87SUFDVCxDQUFBO0lBRUEsTUFBTUMsbUJBQW1CQyxJQUFBQSxrQkFBVyxFQUNsQyxDQUFDQyxPQUFPQztRQUNOLGtDQUFrQztRQUNsQyxJQUFJLENBQUNOLHdCQUF3QkssVUFBVSxNQUFNO1lBQzNDLE9BQU87UUFDVDtRQUNBLElBQUksT0FBTzdCLGFBQWEsWUFBWTtZQUNsQyxPQUFPQSxTQUFTNkIsT0FBTztnQkFBRSxHQUFHQyxPQUFPO2dCQUFFM0I7Z0JBQVNEO2dCQUFTSDtZQUFTO1FBQ2xFO0lBQ0YsR0FDQTtRQUFDSTtRQUFTRDtRQUFTSDtRQUFVQztRQUFVd0I7S0FBcUI7SUFHOUQsTUFBTSxFQUNKN0IsSUFBSSxFQUNKb0MsT0FBTyxFQUFFLEVBQ1RDLFVBQVUsRUFDVkMsU0FBUyxFQUNUQyxLQUFLLEVBQ0xMLEtBQUssRUFDTixHQUFHTSxJQUFBQSxpQkFBUSxFQUFTO1FBQ25CQyxTQUFTO1FBQ1R6QyxNQUFNQyxpQkFBaUJYO1FBQ3ZCZSxVQUFVMkI7SUFDWjtJQUVBLE1BQU1VLFNBQVNULElBQUFBLGtCQUFXLEVBQ3hCLE9BQU9VLFVBQWtCQztRQUN2QjdCLGVBQWU7WUFDYjZCO1lBQ0E1QztZQUNBMkM7WUFDQUUsTUFBTTtRQUNSO1FBRUE3QixZQUFZO1FBRVo4QixXQUFXO1lBQ1RDLElBQUFBLHNCQUFVLEVBQUMsQ0FBQyxFQUFFL0MsS0FBSyxLQUFLLEVBQUUyQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxHQUFHO0lBQ0wsR0FDQTtRQUFDM0M7UUFBTWdCO0tBQVk7SUFHckIsTUFBTWdDLGVBQWVmLElBQUFBLGtCQUFXLEVBQzlCLENBQUNVO1FBQ0M1QixlQUFlO1lBQUVmO1lBQU0yQztZQUFVRSxNQUFNO1FBQWdCO1FBQ3ZEN0IsWUFBWTtRQUVaOEIsV0FBVztZQUNUQyxJQUFBQSxzQkFBVSxFQUFDLENBQUMsRUFBRS9DLEtBQUssS0FBSyxFQUFFMkMsV0FBVyxFQUFFLENBQUM7UUFDMUMsR0FBRztJQUNMLEdBQ0E7UUFBQzVCO1FBQWdCZjtRQUFNZ0I7S0FBWTtJQUdyQyxNQUFNaUMsWUFBWWhCLElBQUFBLGtCQUFXLEVBQzNCLENBQUNVO1FBQ0M1QixlQUFlO1lBQ2JmO1lBQ0EyQztZQUNBRSxNQUFNO1FBQ1I7UUFFQTdCLFlBQVk7SUFDZCxHQUNBO1FBQUNoQjtRQUFNZTtRQUFnQkM7S0FBWTtJQUdyQyxNQUFNa0MsVUFBVWpCLElBQUFBLGtCQUFXLEVBQ3pCLENBQUNrQixlQUF1QkM7UUFDdEJyQyxlQUFlO1lBQUVvQztZQUFlQztZQUFhcEQ7WUFBTTZDLE1BQU07UUFBVztRQUNwRTdCLFlBQVk7SUFDZCxHQUNBO1FBQUNEO1FBQWdCZjtRQUFNZ0I7S0FBWTtJQUdyQyxNQUFNcUMsb0JBQW9CcEIsSUFBQUEsa0JBQVcsRUFDbkMsQ0FBQ3FCO1FBQ0N2QyxlQUFlO1lBQUV1QztZQUFXdEQ7WUFBTWE7WUFBd0JnQyxNQUFNO1FBQXlCO0lBQzNGLEdBQ0E7UUFBQzlCO1FBQWdCZjtRQUFNYTtLQUF1QjtJQUdoRCxNQUFNMEMsY0FBY3RCLElBQUFBLGtCQUFXLEVBQzdCLENBQUN1QixPQUFlRjtRQUNkdkMsZUFBZTtZQUFFdUM7WUFBV3REO1lBQU13RDtZQUFPM0M7WUFBd0JnQyxNQUFNO1FBQW9CO0lBQzdGLEdBQ0E7UUFBQzlCO1FBQWdCZjtRQUFNYTtLQUF1QjtJQUdoRCxNQUFNNEMsYUFBYWpELFdBQVc0QixLQUFLc0IsTUFBTSxJQUFJbEQ7SUFFN0MsTUFBTW1ELGtCQUFrQnZCLEtBQUt3QixNQUFNLENBQUMsQ0FBQ0MsT0FBT0MsTUFBUUQsUUFBU0MsQ0FBQUEsS0FBS0MsWUFBWUMsUUFBUSxDQUFBLEdBQUk7SUFDMUYsTUFBTUMsaUJBQWlCeEMsYUFBYWtDLGtCQUFtQnBCLENBQUFBLFFBQVEsSUFBSSxDQUFBLElBQUs7SUFFeEUsTUFBTTJCLGNBQWM5QixLQUFLc0IsTUFBTSxHQUFHbkQsV0FBWUgsWUFBWWdDLEtBQUtzQixNQUFNLEtBQUs7SUFDMUUsTUFBTVMsZUFBZWhFLFlBQVlpQyxLQUFLc0IsTUFBTSxLQUFLO0lBRWpELHFCQUNFLDZCQUFDVTtRQUNDekUsV0FBVztZQUNUMEUsc0JBQWM7WUFDZHJGO1lBQ0FXO1lBQ0FzRSxpQkFBaUIsQ0FBQyxFQUFFakYsVUFBVSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUVBLFVBQVUsY0FBYyxDQUFDO1NBQzFFLENBQ0VzRixNQUFNLENBQUNDLFNBQ1BDLElBQUksQ0FBQztRQUNSQyxJQUFJLENBQUMsTUFBTSxFQUFFekUsS0FBSzBFLE9BQU8sQ0FBQyxPQUFPLE1BQU0sQ0FBQztPQUV2Q3BDLDJCQUFhLDZCQUFDOEI7UUFBSXpFLFdBQVcsQ0FBQyxFQUFFWCxVQUFVLFlBQVksQ0FBQztPQUFHUSxzQkFDM0QsNkJBQUNtRjtRQUFPaEYsV0FBVyxDQUFDLEVBQUVYLFVBQVUsUUFBUSxDQUFDO3FCQUN2Qyw2QkFBQ29GO1FBQUl6RSxXQUFXLENBQUMsRUFBRVgsVUFBVSxhQUFhLENBQUM7cUJBQ3pDLDZCQUFDb0Y7UUFBSXpFLFdBQVcsQ0FBQyxFQUFFWCxVQUFVLG9CQUFvQixDQUFDO3FCQUNoRCw2QkFBQzRGLFlBQUluRixRQUNKd0Usa0JBQWtCTixrQkFBa0IsbUJBQ25DLDZCQUFDa0Isb0JBQVM7UUFBQ0MsT0FBT25CO1FBQWlCeEUsTUFBTUE7UUFBTTRGLGFBQUFBO1NBR2xEM0MsS0FBS3NCLE1BQU0sR0FBRyxtQkFDYiw2QkFBQ3NCO1FBQUdyRixXQUFXLENBQUMsRUFBRVgsVUFBVSxnQkFBZ0IsQ0FBQztxQkFDM0MsNkJBQUNpRywwQkFDQyw2QkFBQ0M7UUFDQ3ZGLFdBQVcsQ0FBQyxFQUFFWCxVQUFVLGVBQWUsQ0FBQztRQUN4Q21HLFNBQVMsSUFBTTlCLGtCQUFrQjtRQUNqQ1IsTUFBSztPQUVKekQsRUFBRSx1Q0FHUCw2QkFBQzZGLDBCQUNDLDZCQUFDQztRQUNDdkYsV0FBVyxDQUFDLEVBQUVYLFVBQVUsZUFBZSxDQUFDO1FBQ3hDbUcsU0FBUyxJQUFNOUIsa0JBQWtCO1FBQ2pDUixNQUFLO09BRUp6RCxFQUFFLHVCQU1aRyw0QkFFSCw2QkFBQzZGLGdDQUFrQjtRQUFDQyxZQUFZbkQ7UUFBT25DLFdBQVdBO1FBQVdDLE1BQU1BO1FBQ2xFLEFBQUNvQyxDQUFBQSxLQUFLc0IsTUFBTSxHQUFHLEtBQU0sQ0FBQ25CLFNBQVU0QixDQUFBQSxnQkFBZ0JELFdBQVUsQ0FBRSxtQkFDM0QsNkJBQUNvQiwwQkFBaUI7UUFDaEIzRixXQUFXLENBQUMsRUFBRVgsVUFBVSxNQUFNLENBQUM7UUFDL0J1RyxLQUFLbkQsS0FBS29ELEdBQUcsQ0FBQyxDQUFDMUIsTUFBUUEsSUFBSVcsRUFBRTtRQUM3QmdCLFdBQVcsQ0FBQyxFQUFFdEMsYUFBYSxFQUFFQyxXQUFXLEVBQUUsR0FBS0YsUUFBUUMsZUFBZUM7T0FFckVoQixLQUFLb0QsR0FBRyxDQUFDLENBQUMxQixLQUFLNEI7UUFDZCxNQUFNLEVBQUU5QyxTQUFTLEVBQUUsR0FBR2tCO1FBQ3RCLE1BQU02QixnQkFBZ0JqRixPQUFPa0YsSUFBSSxDQUFDLENBQUNDLFFBQVVBLE1BQU1DLElBQUksS0FBS2xEO1FBRTVELElBQUkrQyxlQUFlO1lBQ2pCLHFCQUNFLDZCQUFDSSw4QkFBcUI7Z0JBQUNDLFVBQVU3RjtnQkFBVXNFLElBQUlYLElBQUlXLEVBQUU7Z0JBQUV3QixLQUFLbkMsSUFBSVcsRUFBRTtlQUMvRCxDQUFDeUIsMkNBQ0EsNkJBQUNDLGtCQUFRO29CQUNOLEdBQUdELDBCQUEwQjtvQkFDOUJ4RCxRQUFRQTtvQkFDUm1ELE9BQU9GO29CQUNQakYsUUFBUUE7b0JBQ1JzQyxjQUFjQTtvQkFDZHBELGFBQWFBO29CQUNiNkQsWUFBWUE7b0JBQ1o1RCxXQUFXQTtvQkFDWGUsUUFBUUE7b0JBQ1JzQyxTQUFTQTtvQkFDVGxELE1BQU1BO29CQUNORSxhQUFhQTtvQkFDYkMsVUFBVUE7b0JBQ1Y4QyxXQUFXQTtvQkFDWGEsS0FBS0E7b0JBQ0xzQyxVQUFVaEUsS0FBS3NCLE1BQU07b0JBQ3JCZixVQUFVK0M7b0JBQ1ZyRCxZQUFZQTtvQkFDWmtCLGFBQWFBOztRQUt2QjtRQUVBLE9BQU87SUFDVCxJQUNDLENBQUMxQixzQ0FDQSw2QkFBQ3dFLGNBQUssQ0FBQ0MsUUFBUSxRQUNacEMsNkJBQ0MsNkJBQUNxQyxlQUFNO1FBQUMxRCxNQUFLO09BQ1Z6RCxFQUFFLDhCQUE4QjtRQUMvQjBGLE9BQU92RTtRQUNQVCxPQUFPMEcsSUFBQUEsNEJBQWMsRUFDbkJqRyxZQUFZLEtBQUssT0FBT0EsWUFBWSxjQUNoQ0ssT0FBT2dCLFFBQVEsR0FDZmhCLE9BQU9lLE1BQU0sRUFDakJ4QztJQUVKLEtBR0hnRiw4QkFDQyw2QkFBQ29DLGVBQU0sUUFDSm5ILEVBQUUseUJBQXlCO1FBQUVVLE9BQU8wRyxJQUFBQSw0QkFBYyxFQUFDNUYsT0FBT2UsTUFBTSxFQUFFeEM7SUFBTSxPQU9wRixDQUFDZ0IsWUFBWSxDQUFDc0QsNEJBQ2IsNkJBQUM2QyxlQUFRLHNCQUNQLDZCQUFDRyxxQkFBYTtRQUFDOUcsV0FBVyxDQUFDLEVBQUVYLFVBQVUsZ0JBQWdCLENBQUM7UUFBRThHLE1BQU12RTtxQkFDOUQsNkJBQUNtRixjQUFNO1FBQ0xDLGFBQVk7UUFDWkMsSUFBRztRQUNIQyxNQUFLO1FBQ0xDLGNBQWE7UUFDYkMsV0FBVTtPQUVUM0gsRUFBRSxtQkFBbUI7UUFBRVUsT0FBTzBHLElBQUFBLDRCQUFjLEVBQUM1RixPQUFPZ0IsUUFBUSxFQUFFekM7SUFBTSxvQkFHekUsNkJBQUM2SCwwQkFBWTtRQUNYdEUsUUFBUUE7UUFDUnVFLGFBQWE3RSxNQUFNc0IsVUFBVTtRQUM3QmhELFFBQVFBO1FBQ1JhLFlBQVlBO1FBQ1pYLFFBQVFBOztBQU1wQjtNQUVBLFdBQWUzQiJ9
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQmxvY2tzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IEJhbm5lciBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9CYW5uZXInXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9CdXR0b24nXG5pbXBvcnQgRHJhZ2dhYmxlU29ydGFibGUgZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRHJhZ2dhYmxlU29ydGFibGUnXG5pbXBvcnQgRHJhZ2dhYmxlU29ydGFibGVJdGVtIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL0RyYWdnYWJsZVNvcnRhYmxlL0RyYWdnYWJsZVNvcnRhYmxlSXRlbSdcbmltcG9ydCB7IERyYXdlclRvZ2dsZXIgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9EcmF3ZXInXG5pbXBvcnQgeyB1c2VEcmF3ZXJTbHVnIH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRHJhd2VyL3VzZURyYXdlclNsdWcnXG5pbXBvcnQgeyBFcnJvclBpbGwgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9FcnJvclBpbGwnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9UcmFuc2xhdGlvbidcbmltcG9ydCB7IHNjcm9sbFRvSUQgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvc2Nyb2xsVG9JRCdcbmltcG9ydCB7IHVzZUZvcm0sIHVzZUZvcm1TdWJtaXR0ZWQgfSBmcm9tICcuLi8uLi9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgTGFiZWxDb21wIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHsgTnVsbGlmeUxvY2FsZUZpZWxkIH0gZnJvbSAnLi4vLi4vTnVsbGlmeUZpZWxkJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHsgZmllbGRCYXNlQ2xhc3MgfSBmcm9tICcuLi9zaGFyZWQnXG5pbXBvcnQgeyBCbG9ja1JvdyB9IGZyb20gJy4vQmxvY2tSb3cnXG5pbXBvcnQgeyBCbG9ja3NEcmF3ZXIgfSBmcm9tICcuL0Jsb2Nrc0RyYXdlcidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnYmxvY2tzLWZpZWxkJ1xuXG5jb25zdCBCbG9ja3NGaWVsZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIERlc2NyaXB0aW9uLFxuICAgIEVycm9yLFxuICAgIExhYmVsOiBMYWJlbEZyb21Qcm9wcyxcbiAgICBjbGFzc05hbWUsXG4gICAgZm9yY2VSZW5kZXIgPSBmYWxzZSxcbiAgICBpbmRleFBhdGgsXG4gICAgbGFiZWwsXG4gICAgbG9jYWxpemVkLFxuICAgIHBhdGg6IHBhdGhGcm9tUHJvcHMsXG4gICAgcGVybWlzc2lvbnMsXG4gICAgcmVhZE9ubHksXG4gICAgcmVxdWlyZWQsXG4gICAgdmFsaWRhdGUsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IExhYmVsID0gTGFiZWxGcm9tUHJvcHMgfHwgPExhYmVsQ29tcCBsYWJlbD17bGFiZWx9IHJlcXVpcmVkPXtyZXF1aXJlZH0gLz5cblxuICBjb25zdCBtaW5Sb3dzID0gJ21pblJvd3MnIGluIHByb3BzID8gcHJvcHMubWluUm93cyA6IDBcbiAgY29uc3QgbWF4Um93cyA9ICdtYXhSb3dzJyBpbiBwcm9wcyA/IHByb3BzLm1heFJvd3MgOiB1bmRlZmluZWRcbiAgY29uc3QgYmxvY2tzID0gJ2Jsb2NrcycgaW4gcHJvcHMgPyBwcm9wcy5ibG9ja3MgOiB1bmRlZmluZWRcbiAgY29uc3QgbGFiZWxzRnJvbVByb3BzID0gJ2xhYmVscycgaW4gcHJvcHMgPyBwcm9wcy5sYWJlbHMgOiB1bmRlZmluZWRcblxuICBjb25zdCB7IHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IHsgZGlzcGF0Y2hGaWVsZHMsIHNldE1vZGlmaWVkIH0gPSB1c2VGb3JtKClcbiAgY29uc3QgeyBjb2RlOiBsb2NhbGUgfSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IHsgbG9jYWxpemF0aW9uIH0gPSB1c2VDb25maWcoKVxuICBjb25zdCBkcmF3ZXJTbHVnID0gdXNlRHJhd2VyU2x1ZygnYmxvY2tzLWRyYXdlcicpXG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuXG4gIGNvbnN0IGxhYmVscyA9IHtcbiAgICBwbHVyYWw6IHQoJ2ZpZWxkczpibG9ja3MnKSxcbiAgICBzaW5ndWxhcjogdCgnZmllbGRzOmJsb2NrJyksXG4gICAgLi4ubGFiZWxzRnJvbVByb3BzLFxuICB9XG5cbiAgY29uc3QgZWRpdGluZ0RlZmF1bHRMb2NhbGUgPSAoKCkgPT4ge1xuICAgIGlmIChsb2NhbGl6YXRpb24gJiYgbG9jYWxpemF0aW9uLmZhbGxiYWNrKSB7XG4gICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGUgfHwgJ2VuJ1xuICAgICAgcmV0dXJuIGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0pKClcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAvLyBhbHRlcm5hdGl2ZSBsb2NhbGVzIGNhbiBiZSBudWxsXG4gICAgICBpZiAoIWVkaXRpbmdEZWZhdWx0TG9jYWxlICYmIHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZSh2YWx1ZSwgeyAuLi5vcHRpb25zLCBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW21heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB2YWxpZGF0ZSwgZWRpdGluZ0RlZmF1bHRMb2NhbGVdLFxuICApXG5cbiAgY29uc3Qge1xuICAgIHBhdGgsXG4gICAgcm93cyA9IFtdLFxuICAgIHNjaGVtYVBhdGgsXG4gICAgc2hvd0Vycm9yLFxuICAgIHZhbGlkLFxuICAgIHZhbHVlLFxuICB9ID0gdXNlRmllbGQ8bnVtYmVyPih7XG4gICAgaGFzUm93czogdHJ1ZSxcbiAgICBwYXRoOiBwYXRoRnJvbVByb3BzIHx8IG5hbWUsXG4gICAgdmFsaWRhdGU6IG1lbW9pemVkVmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgYWRkUm93ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJvd0luZGV4OiBudW1iZXIsIGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIGJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcm93SW5kZXgsXG4gICAgICAgIHR5cGU6ICdBRERfUk9XJyxcbiAgICAgIH0pXG5cbiAgICAgIHNldE1vZGlmaWVkKHRydWUpXG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0lEKGAke3BhdGh9LXJvdy0ke3Jvd0luZGV4ICsgMX1gKVxuICAgICAgfSwgMClcbiAgICB9LFxuICAgIFtwYXRoLCBzZXRNb2RpZmllZF0sXG4gIClcblxuICBjb25zdCBkdXBsaWNhdGVSb3cgPSB1c2VDYWxsYmFjayhcbiAgICAocm93SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBwYXRoLCByb3dJbmRleCwgdHlwZTogJ0RVUExJQ0FURV9ST1cnIH0pXG4gICAgICBzZXRNb2RpZmllZCh0cnVlKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2Nyb2xsVG9JRChgJHtwYXRofS1yb3ctJHtyb3dJbmRleCArIDF9YClcbiAgICAgIH0sIDApXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIHBhdGgsIHNldE1vZGlmaWVkXSxcbiAgKVxuXG4gIGNvbnN0IHJlbW92ZVJvdyA9IHVzZUNhbGxiYWNrKFxuICAgIChyb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJvd0luZGV4LFxuICAgICAgICB0eXBlOiAnUkVNT1ZFX1JPVycsXG4gICAgICB9KVxuXG4gICAgICBzZXRNb2RpZmllZCh0cnVlKVxuICAgIH0sXG4gICAgW3BhdGgsIGRpc3BhdGNoRmllbGRzLCBzZXRNb2RpZmllZF0sXG4gIClcblxuICBjb25zdCBtb3ZlUm93ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1vdmVGcm9tSW5kZXg6IG51bWJlciwgbW92ZVRvSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCwgcGF0aCwgdHlwZTogJ01PVkVfUk9XJyB9KVxuICAgICAgc2V0TW9kaWZpZWQodHJ1ZSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgcGF0aCwgc2V0TW9kaWZpZWRdLFxuICApXG5cbiAgY29uc3QgdG9nZ2xlQ29sbGFwc2VBbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29sbGFwc2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IGNvbGxhcHNlZCwgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlcywgdHlwZTogJ1NFVF9BTExfUk9XU19DT0xMQVBTRUQnIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIHBhdGgsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXNdLFxuICApXG5cbiAgY29uc3Qgc2V0Q29sbGFwc2UgPSB1c2VDYWxsYmFjayhcbiAgICAocm93SUQ6IHN0cmluZywgY29sbGFwc2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IGNvbGxhcHNlZCwgcGF0aCwgcm93SUQsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMsIHR5cGU6ICdTRVRfUk9XX0NPTExBUFNFRCcgfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlc10sXG4gIClcblxuICBjb25zdCBoYXNNYXhSb3dzID0gbWF4Um93cyAmJiByb3dzLmxlbmd0aCA+PSBtYXhSb3dzXG5cbiAgY29uc3QgZmllbGRFcnJvckNvdW50ID0gcm93cy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgKHJvdz8uZXJyb3JQYXRocz8uc2l6ZSB8fCAwKSwgMClcbiAgY29uc3QgZmllbGRIYXNFcnJvcnMgPSBzdWJtaXR0ZWQgJiYgZmllbGRFcnJvckNvdW50ICsgKHZhbGlkID8gMCA6IDEpID4gMFxuXG4gIGNvbnN0IHNob3dNaW5Sb3dzID0gcm93cy5sZW5ndGggPCBtaW5Sb3dzIHx8IChyZXF1aXJlZCAmJiByb3dzLmxlbmd0aCA9PT0gMClcbiAgY29uc3Qgc2hvd1JlcXVpcmVkID0gcmVhZE9ubHkgJiYgcm93cy5sZW5ndGggPT09IDBcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W1xuICAgICAgICBmaWVsZEJhc2VDbGFzcyxcbiAgICAgICAgYmFzZUNsYXNzLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGZpZWxkSGFzRXJyb3JzID8gYCR7YmFzZUNsYXNzfS0taGFzLWVycm9yYCA6IGAke2Jhc2VDbGFzc30tLWhhcy1uby1lcnJvcmAsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIGlkPXtgZmllbGQtJHtwYXRoLnJlcGxhY2UoL1xcLi9nLCAnX18nKX1gfVxuICAgID5cbiAgICAgIHtzaG93RXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Vycm9yLXdyYXBgfT57RXJyb3J9PC9kaXY+fVxuICAgICAgPGhlYWRlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyLXdyYXBgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGluZy13aXRoLWVycm9yYH0+XG4gICAgICAgICAgICA8aDM+e0xhYmVsfTwvaDM+XG4gICAgICAgICAgICB7ZmllbGRIYXNFcnJvcnMgJiYgZmllbGRFcnJvckNvdW50ID4gMCAmJiAoXG4gICAgICAgICAgICAgIDxFcnJvclBpbGwgY291bnQ9e2ZpZWxkRXJyb3JDb3VudH0gaTE4bj17aTE4bn0gd2l0aE1lc3NhZ2UgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3Jvd3MubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uc2B9PlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uYH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlQWxsKHRydWUpfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3QoJ2ZpZWxkczpjb2xsYXBzZUFsbCcpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uYH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlQWxsKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0KCdmaWVsZHM6c2hvd0FsbCcpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge0Rlc2NyaXB0aW9ufVxuICAgICAgPC9oZWFkZXI+XG4gICAgICA8TnVsbGlmeUxvY2FsZUZpZWxkIGZpZWxkVmFsdWU9e3ZhbHVlfSBsb2NhbGl6ZWQ9e2xvY2FsaXplZH0gcGF0aD17cGF0aH0gLz5cbiAgICAgIHsocm93cy5sZW5ndGggPiAwIHx8ICghdmFsaWQgJiYgKHNob3dSZXF1aXJlZCB8fCBzaG93TWluUm93cykpKSAmJiAoXG4gICAgICAgIDxEcmFnZ2FibGVTb3J0YWJsZVxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcm93c2B9XG4gICAgICAgICAgaWRzPXtyb3dzLm1hcCgocm93KSA9PiByb3cuaWQpfVxuICAgICAgICAgIG9uRHJhZ0VuZD17KHsgbW92ZUZyb21JbmRleCwgbW92ZVRvSW5kZXggfSkgPT4gbW92ZVJvdyhtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCl9XG4gICAgICAgID5cbiAgICAgICAgICB7cm93cy5tYXAoKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9ja1R5cGUgfSA9IHJvd1xuICAgICAgICAgICAgY29uc3QgYmxvY2tUb1JlbmRlciA9IGJsb2Nrcy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gYmxvY2tUeXBlKVxuXG4gICAgICAgICAgICBpZiAoYmxvY2tUb1JlbmRlcikge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxEcmFnZ2FibGVTb3J0YWJsZUl0ZW0gZGlzYWJsZWQ9e3JlYWRPbmx5fSBpZD17cm93LmlkfSBrZXk9e3Jvdy5pZH0+XG4gICAgICAgICAgICAgICAgICB7KGRyYWdnYWJsZVNvcnRhYmxlSXRlbVByb3BzKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxCbG9ja1Jvd1xuICAgICAgICAgICAgICAgICAgICAgIHsuLi5kcmFnZ2FibGVTb3J0YWJsZUl0ZW1Qcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICBhZGRSb3c9e2FkZFJvd31cbiAgICAgICAgICAgICAgICAgICAgICBibG9jaz17YmxvY2tUb1JlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBibG9ja3M9e2Jsb2Nrc31cbiAgICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVSb3c9e2R1cGxpY2F0ZVJvd31cbiAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcj17Zm9yY2VSZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgaGFzTWF4Um93cz17aGFzTWF4Um93c31cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleFBhdGg9e2luZGV4UGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgICAgICAgICAgICAgICBtb3ZlUm93PXttb3ZlUm93fVxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM9e3Blcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVSb3c9e3JlbW92ZVJvd31cbiAgICAgICAgICAgICAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICAgICAgICAgICAgICByb3dDb3VudD17cm93cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgcm93SW5kZXg9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRDb2xsYXBzZT17c2V0Q29sbGFwc2V9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlU29ydGFibGVJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgeyFlZGl0aW5nRGVmYXVsdExvY2FsZSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIHtzaG93TWluUm93cyAmJiAoXG4gICAgICAgICAgICAgICAgPEJhbm5lciB0eXBlPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQ6IG1pblJvd3MsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Sb3dzID09PSAxIHx8IHR5cGVvZiBtaW5Sb3dzID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBsYWJlbHMuc2luZ3VsYXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWxzLnBsdXJhbCxcbiAgICAgICAgICAgICAgICAgICAgICBpMThuLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9CYW5uZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG93UmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgICAgIDxCYW5uZXI+XG4gICAgICAgICAgICAgICAgICB7dCgndmFsaWRhdGlvbjpmaWVsZEhhc05vJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24obGFiZWxzLnBsdXJhbCwgaTE4bikgfSl9XG4gICAgICAgICAgICAgICAgPC9CYW5uZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRHJhZ2dhYmxlU29ydGFibGU+XG4gICAgICApfVxuICAgICAgeyFyZWFkT25seSAmJiAhaGFzTWF4Um93cyAmJiAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2RyYXdlci10b2dnbGVyYH0gc2x1Zz17ZHJhd2VyU2x1Z30+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICAgIGVsPVwic3BhblwiXG4gICAgICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIGljb25TdHlsZT1cIndpdGgtYm9yZGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoJ2ZpZWxkczphZGRMYWJlbCcsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGxhYmVscy5zaW5ndWxhciwgaTE4bikgfSl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0RyYXdlclRvZ2dsZXI+XG4gICAgICAgICAgPEJsb2Nrc0RyYXdlclxuICAgICAgICAgICAgYWRkUm93PXthZGRSb3d9XG4gICAgICAgICAgICBhZGRSb3dJbmRleD17cm93cz8ubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICBibG9ja3M9e2Jsb2Nrc31cbiAgICAgICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBCbG9ja3NGaWVsZFxuIl0sIm5hbWVzIjpbImdldFRyYW5zbGF0aW9uIiwiUmVhY3QiLCJGcmFnbWVudCIsInVzZUNhbGxiYWNrIiwiQmFubmVyIiwiQnV0dG9uIiwiRHJhZ2dhYmxlU29ydGFibGUiLCJEcmFnZ2FibGVTb3J0YWJsZUl0ZW0iLCJEcmF3ZXJUb2dnbGVyIiwidXNlRHJhd2VyU2x1ZyIsIkVycm9yUGlsbCIsInVzZUNvbmZpZyIsInVzZURvY3VtZW50SW5mbyIsInVzZUxvY2FsZSIsInVzZVRyYW5zbGF0aW9uIiwic2Nyb2xsVG9JRCIsInVzZUZvcm0iLCJ1c2VGb3JtU3VibWl0dGVkIiwiTGFiZWxDb21wIiwiTnVsbGlmeUxvY2FsZUZpZWxkIiwidXNlRmllbGQiLCJmaWVsZEJhc2VDbGFzcyIsIkJsb2NrUm93IiwiQmxvY2tzRHJhd2VyIiwiYmFzZUNsYXNzIiwiQmxvY2tzRmllbGQiLCJwcm9wcyIsImkxOG4iLCJ0IiwibmFtZSIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsIkxhYmVsRnJvbVByb3BzIiwiY2xhc3NOYW1lIiwiZm9yY2VSZW5kZXIiLCJpbmRleFBhdGgiLCJsYWJlbCIsImxvY2FsaXplZCIsInBhdGgiLCJwYXRoRnJvbVByb3BzIiwicGVybWlzc2lvbnMiLCJyZWFkT25seSIsInJlcXVpcmVkIiwidmFsaWRhdGUiLCJtaW5Sb3dzIiwibWF4Um93cyIsInVuZGVmaW5lZCIsImJsb2NrcyIsImxhYmVsc0Zyb21Qcm9wcyIsImxhYmVscyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJkaXNwYXRjaEZpZWxkcyIsInNldE1vZGlmaWVkIiwiY29kZSIsImxvY2FsZSIsImxvY2FsaXphdGlvbiIsImRyYXdlclNsdWciLCJzdWJtaXR0ZWQiLCJwbHVyYWwiLCJzaW5ndWxhciIsImVkaXRpbmdEZWZhdWx0TG9jYWxlIiwiZmFsbGJhY2siLCJkZWZhdWx0TG9jYWxlIiwibWVtb2l6ZWRWYWxpZGF0ZSIsInZhbHVlIiwib3B0aW9ucyIsInJvd3MiLCJzY2hlbWFQYXRoIiwic2hvd0Vycm9yIiwidmFsaWQiLCJoYXNSb3dzIiwiYWRkUm93Iiwicm93SW5kZXgiLCJibG9ja1R5cGUiLCJ0eXBlIiwic2V0VGltZW91dCIsImR1cGxpY2F0ZVJvdyIsInJlbW92ZVJvdyIsIm1vdmVSb3ciLCJtb3ZlRnJvbUluZGV4IiwibW92ZVRvSW5kZXgiLCJ0b2dnbGVDb2xsYXBzZUFsbCIsImNvbGxhcHNlZCIsInNldENvbGxhcHNlIiwicm93SUQiLCJoYXNNYXhSb3dzIiwibGVuZ3RoIiwiZmllbGRFcnJvckNvdW50IiwicmVkdWNlIiwidG90YWwiLCJyb3ciLCJlcnJvclBhdGhzIiwic2l6ZSIsImZpZWxkSGFzRXJyb3JzIiwic2hvd01pblJvd3MiLCJzaG93UmVxdWlyZWQiLCJkaXYiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImlkIiwicmVwbGFjZSIsImhlYWRlciIsImgzIiwiY291bnQiLCJ3aXRoTWVzc2FnZSIsInVsIiwibGkiLCJidXR0b24iLCJvbkNsaWNrIiwiZmllbGRWYWx1ZSIsImlkcyIsIm1hcCIsIm9uRHJhZ0VuZCIsImkiLCJibG9ja1RvUmVuZGVyIiwiZmluZCIsImJsb2NrIiwic2x1ZyIsImRpc2FibGVkIiwia2V5IiwiZHJhZ2dhYmxlU29ydGFibGVJdGVtUHJvcHMiLCJyb3dDb3VudCIsImJ1dHRvblN0eWxlIiwiZWwiLCJpY29uIiwiaWNvblBvc2l0aW9uIiwiaWNvblN0eWxlIiwiYWRkUm93SW5kZXgiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsY0FBYyxRQUFRLDJCQUEwQjtBQUN6RCxPQUFPQyxTQUFTQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxRQUFPO0FBSXBELE9BQU9DLFlBQVksMkJBQTBCO0FBQzdDLFNBQVNDLE1BQU0sUUFBUSwyQkFBMEI7QUFDakQsT0FBT0MsdUJBQXVCLHNDQUFxQztBQUNuRSxPQUFPQywyQkFBMkIsNERBQTJEO0FBQzdGLFNBQVNDLGFBQWEsUUFBUSwyQkFBMEI7QUFDeEQsU0FBU0MsYUFBYSxRQUFRLHlDQUF3QztBQUN0RSxTQUFTQyxTQUFTLFFBQVEsOEJBQTZCO0FBQ3ZELFNBQVNDLFNBQVMsUUFBUSw0QkFBMkI7QUFDckQsU0FBU0MsZUFBZSxRQUFRLGtDQUFpQztBQUNqRSxTQUFTQyxTQUFTLFFBQVEsNEJBQTJCO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxpQ0FBZ0M7QUFDL0QsU0FBU0MsVUFBVSxRQUFRLGdDQUErQjtBQUMxRCxTQUFTQyxPQUFPLEVBQUVDLGdCQUFnQixRQUFRLHFCQUFvQjtBQUM5RCxPQUFPQyxlQUFlLGNBQWE7QUFDbkMsU0FBU0Msa0JBQWtCLFFBQVEscUJBQW9CO0FBQ3ZELE9BQU9DLGNBQWMsaUJBQWdCO0FBQ3JDLFNBQVNDLGNBQWMsUUFBUSxZQUFXO0FBQzFDLFNBQVNDLFFBQVEsUUFBUSxhQUFZO0FBQ3JDLFNBQVNDLFlBQVksUUFBUSxpQkFBZ0I7QUFDN0MsT0FBTyxlQUFjO0FBRXJCLE1BQU1DLFlBQVk7QUFFbEIsTUFBTUMsY0FBK0IsQ0FBQ0M7SUFDcEMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLENBQUMsRUFBRSxHQUFHZDtJQUVwQixN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
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
1
+ export { };
5
2
 
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQmxvY2tzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGRQZXJtaXNzaW9ucyB9IGZyb20gJ3BheWxvYWQvYXV0aCdcblxuaW1wb3J0IHR5cGUgeyBGb3JtRmllbGRCYXNlIH0gZnJvbSAnLi4vc2hhcmVkJ1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IEZvcm1GaWVsZEJhc2UgJiB7XG4gIGZvcmNlUmVuZGVyPzogYm9vbGVhblxuICBpbmRleFBhdGg6IHN0cmluZ1xuICBuYW1lPzogc3RyaW5nXG4gIHBlcm1pc3Npb25zOiBGaWVsZFBlcm1pc3Npb25zXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsV0FLQyJ9
@@ -1,42 +1,19 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- CheckboxInput: function() {
14
- return CheckboxInput;
15
- },
16
- inputBaseClass: function() {
17
- return inputBaseClass;
18
- }
19
- });
20
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
21
- const _Check = require("../../../icons/Check");
22
- const _Line = require("../../../icons/Line");
23
- function _interop_require_default(obj) {
24
- return obj && obj.__esModule ? obj : {
25
- default: obj
26
- };
27
- }
28
- const inputBaseClass = 'checkbox-input';
29
- const CheckboxInput = ({ id, name, AfterInput, BeforeInput, Label, checked, className, inputRef, onToggle, partialChecked, readOnly, required })=>{
30
- return /*#__PURE__*/ _react.default.createElement("div", {
2
+ import React from 'react';
3
+ import { Check } from '../../../icons/Check';
4
+ import { Line } from '../../../icons/Line';
5
+ export const inputBaseClass = 'checkbox-input';
6
+ export const CheckboxInput = ({ id, name, AfterInput, BeforeInput, Label, checked, className, inputRef, onToggle, partialChecked, readOnly, required })=>{
7
+ return /*#__PURE__*/ React.createElement("div", {
31
8
  className: [
32
9
  className,
33
10
  inputBaseClass,
34
11
  checked && `${inputBaseClass}--checked`,
35
12
  readOnly && `${inputBaseClass}--read-only`
36
13
  ].filter(Boolean).join(' ')
37
- }, /*#__PURE__*/ _react.default.createElement("div", {
14
+ }, /*#__PURE__*/ React.createElement("div", {
38
15
  className: `${inputBaseClass}__input`
39
- }, BeforeInput, /*#__PURE__*/ _react.default.createElement("input", {
16
+ }, BeforeInput, /*#__PURE__*/ React.createElement("input", {
40
17
  "aria-label": "",
41
18
  defaultChecked: Boolean(checked),
42
19
  disabled: readOnly,
@@ -46,12 +23,12 @@ const CheckboxInput = ({ id, name, AfterInput, BeforeInput, Label, checked, clas
46
23
  ref: inputRef,
47
24
  required: required,
48
25
  type: "checkbox"
49
- }), /*#__PURE__*/ _react.default.createElement("span", {
26
+ }), /*#__PURE__*/ React.createElement("span", {
50
27
  className: [
51
28
  `${inputBaseClass}__icon`,
52
29
  !checked && partialChecked ? 'check' : 'partial'
53
30
  ].filter(Boolean).join(' ')
54
- }, checked && /*#__PURE__*/ _react.default.createElement(_Check.Check, null), !checked && partialChecked && /*#__PURE__*/ _react.default.createElement(_Line.Line, null)), AfterInput), Label);
31
+ }, checked && /*#__PURE__*/ React.createElement(Check, null), !checked && partialChecked && /*#__PURE__*/ React.createElement(Line, null)), AfterInput), Label);
55
32
  };
56
33
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQ2hlY2tib3gvSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBDaGVjayB9IGZyb20gJy4uLy4uLy4uL2ljb25zL0NoZWNrJ1xuaW1wb3J0IHsgTGluZSB9IGZyb20gJy4uLy4uLy4uL2ljb25zL0xpbmUnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIEFmdGVySW5wdXQ/OiBSZWFjdC5SZWFjdE5vZGVcbiAgQmVmb3JlSW5wdXQ/OiBSZWFjdC5SZWFjdE5vZGVcbiAgTGFiZWw/OiBSZWFjdC5SZWFjdE5vZGVcbiAgY2hlY2tlZD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGlkPzogc3RyaW5nXG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+XG4gIG5hbWU/OiBzdHJpbmdcbiAgb25Ub2dnbGU6IChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWRcbiAgcGFydGlhbENoZWNrZWQ/OiBib29sZWFuXG4gIHJlYWRPbmx5PzogYm9vbGVhblxuICByZXF1aXJlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IGlucHV0QmFzZUNsYXNzID0gJ2NoZWNrYm94LWlucHV0J1xuXG5leHBvcnQgY29uc3QgQ2hlY2tib3hJbnB1dDogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgaWQsXG4gIG5hbWUsXG4gIEFmdGVySW5wdXQsXG4gIEJlZm9yZUlucHV0LFxuICBMYWJlbCxcbiAgY2hlY2tlZCxcbiAgY2xhc3NOYW1lLFxuICBpbnB1dFJlZixcbiAgb25Ub2dnbGUsXG4gIHBhcnRpYWxDaGVja2VkLFxuICByZWFkT25seSxcbiAgcmVxdWlyZWQsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgaW5wdXRCYXNlQ2xhc3MsXG4gICAgICAgIGNoZWNrZWQgJiYgYCR7aW5wdXRCYXNlQ2xhc3N9LS1jaGVja2VkYCxcbiAgICAgICAgcmVhZE9ubHkgJiYgYCR7aW5wdXRCYXNlQ2xhc3N9LS1yZWFkLW9ubHlgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2lucHV0QmFzZUNsYXNzfV9faW5wdXRgfT5cbiAgICAgICAge0JlZm9yZUlucHV0fVxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiXCJcbiAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17Qm9vbGVhbihjaGVja2VkKX1cbiAgICAgICAgICBkaXNhYmxlZD17cmVhZE9ubHl9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgb25JbnB1dD17b25Ub2dnbGV9XG4gICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzc05hbWU9e1tgJHtpbnB1dEJhc2VDbGFzc31fX2ljb25gLCAhY2hlY2tlZCAmJiBwYXJ0aWFsQ2hlY2tlZCA/ICdjaGVjaycgOiAncGFydGlhbCddXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAuam9pbignICcpfVxuICAgICAgICA+XG4gICAgICAgICAge2NoZWNrZWQgJiYgPENoZWNrIC8+fVxuICAgICAgICAgIHshY2hlY2tlZCAmJiBwYXJ0aWFsQ2hlY2tlZCAmJiA8TGluZSAvPn1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7QWZ0ZXJJbnB1dH1cbiAgICAgIDwvZGl2PlxuICAgICAge0xhYmVsfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiQ2hlY2tib3hJbnB1dCIsImlucHV0QmFzZUNsYXNzIiwiaWQiLCJuYW1lIiwiQWZ0ZXJJbnB1dCIsIkJlZm9yZUlucHV0IiwiTGFiZWwiLCJjaGVja2VkIiwiY2xhc3NOYW1lIiwiaW5wdXRSZWYiLCJvblRvZ2dsZSIsInBhcnRpYWxDaGVja2VkIiwicmVhZE9ubHkiLCJyZXF1aXJlZCIsImRpdiIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiaW5wdXQiLCJhcmlhLWxhYmVsIiwiZGVmYXVsdENoZWNrZWQiLCJkaXNhYmxlZCIsIm9uSW5wdXQiLCJyZWYiLCJ0eXBlIiwic3BhbiIsIkNoZWNrIiwiTGluZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztJQXVCYUEsYUFBYTtlQUFiQTs7SUFGQUMsY0FBYztlQUFkQTs7OzhEQXBCSzt1QkFFSTtzQkFDRDs7Ozs7O0FBaUJkLE1BQU1BLGlCQUFpQjtBQUV2QixNQUFNRCxnQkFBaUMsQ0FBQyxFQUM3Q0UsRUFBRSxFQUNGQyxJQUFJLEVBQ0pDLFVBQVUsRUFDVkMsV0FBVyxFQUNYQyxLQUFLLEVBQ0xDLE9BQU8sRUFDUEMsU0FBUyxFQUNUQyxRQUFRLEVBQ1JDLFFBQVEsRUFDUkMsY0FBYyxFQUNkQyxRQUFRLEVBQ1JDLFFBQVEsRUFDVDtJQUNDLHFCQUNFLDZCQUFDQztRQUNDTixXQUFXO1lBQ1RBO1lBQ0FQO1lBQ0FNLFdBQVcsQ0FBQyxFQUFFTixlQUFlLFNBQVMsQ0FBQztZQUN2Q1csWUFBWSxDQUFDLEVBQUVYLGVBQWUsV0FBVyxDQUFDO1NBQzNDLENBQ0VjLE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO3FCQUVSLDZCQUFDSDtRQUFJTixXQUFXLENBQUMsRUFBRVAsZUFBZSxPQUFPLENBQUM7T0FDdkNJLDJCQUNELDZCQUFDYTtRQUNDQyxjQUFXO1FBQ1hDLGdCQUFnQkosUUFBUVQ7UUFDeEJjLFVBQVVUO1FBQ1ZWLElBQUlBO1FBQ0pDLE1BQU1BO1FBQ05tQixTQUFTWjtRQUNUYSxLQUFLZDtRQUNMSSxVQUFVQTtRQUNWVyxNQUFLO3NCQUVQLDZCQUFDQztRQUNDakIsV0FBVztZQUFDLENBQUMsRUFBRVAsZUFBZSxNQUFNLENBQUM7WUFBRSxDQUFDTSxXQUFXSSxpQkFBaUIsVUFBVTtTQUFVLENBQ3JGSSxNQUFNLENBQUNDLFNBQ1BDLElBQUksQ0FBQztPQUVQVix5QkFBVyw2QkFBQ21CLFlBQUssU0FDakIsQ0FBQ25CLFdBQVdJLGdDQUFrQiw2QkFBQ2dCLFVBQUksVUFFckN2QixhQUVGRTtBQUdQIn0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQ2hlY2tib3gvSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBDaGVjayB9IGZyb20gJy4uLy4uLy4uL2ljb25zL0NoZWNrJ1xuaW1wb3J0IHsgTGluZSB9IGZyb20gJy4uLy4uLy4uL2ljb25zL0xpbmUnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIEFmdGVySW5wdXQ/OiBSZWFjdC5SZWFjdE5vZGVcbiAgQmVmb3JlSW5wdXQ/OiBSZWFjdC5SZWFjdE5vZGVcbiAgTGFiZWw/OiBSZWFjdC5SZWFjdE5vZGVcbiAgY2hlY2tlZD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGlkPzogc3RyaW5nXG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+XG4gIG5hbWU/OiBzdHJpbmdcbiAgb25Ub2dnbGU6IChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWRcbiAgcGFydGlhbENoZWNrZWQ/OiBib29sZWFuXG4gIHJlYWRPbmx5PzogYm9vbGVhblxuICByZXF1aXJlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IGlucHV0QmFzZUNsYXNzID0gJ2NoZWNrYm94LWlucHV0J1xuXG5leHBvcnQgY29uc3QgQ2hlY2tib3hJbnB1dDogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgaWQsXG4gIG5hbWUsXG4gIEFmdGVySW5wdXQsXG4gIEJlZm9yZUlucHV0LFxuICBMYWJlbCxcbiAgY2hlY2tlZCxcbiAgY2xhc3NOYW1lLFxuICBpbnB1dFJlZixcbiAgb25Ub2dnbGUsXG4gIHBhcnRpYWxDaGVja2VkLFxuICByZWFkT25seSxcbiAgcmVxdWlyZWQsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgaW5wdXRCYXNlQ2xhc3MsXG4gICAgICAgIGNoZWNrZWQgJiYgYCR7aW5wdXRCYXNlQ2xhc3N9LS1jaGVja2VkYCxcbiAgICAgICAgcmVhZE9ubHkgJiYgYCR7aW5wdXRCYXNlQ2xhc3N9LS1yZWFkLW9ubHlgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2lucHV0QmFzZUNsYXNzfV9faW5wdXRgfT5cbiAgICAgICAge0JlZm9yZUlucHV0fVxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiXCJcbiAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17Qm9vbGVhbihjaGVja2VkKX1cbiAgICAgICAgICBkaXNhYmxlZD17cmVhZE9ubHl9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgb25JbnB1dD17b25Ub2dnbGV9XG4gICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzc05hbWU9e1tgJHtpbnB1dEJhc2VDbGFzc31fX2ljb25gLCAhY2hlY2tlZCAmJiBwYXJ0aWFsQ2hlY2tlZCA/ICdjaGVjaycgOiAncGFydGlhbCddXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAuam9pbignICcpfVxuICAgICAgICA+XG4gICAgICAgICAge2NoZWNrZWQgJiYgPENoZWNrIC8+fVxuICAgICAgICAgIHshY2hlY2tlZCAmJiBwYXJ0aWFsQ2hlY2tlZCAmJiA8TGluZSAvPn1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7QWZ0ZXJJbnB1dH1cbiAgICAgIDwvZGl2PlxuICAgICAge0xhYmVsfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJDaGVjayIsIkxpbmUiLCJpbnB1dEJhc2VDbGFzcyIsIkNoZWNrYm94SW5wdXQiLCJpZCIsIm5hbWUiLCJBZnRlcklucHV0IiwiQmVmb3JlSW5wdXQiLCJMYWJlbCIsImNoZWNrZWQiLCJjbGFzc05hbWUiLCJpbnB1dFJlZiIsIm9uVG9nZ2xlIiwicGFydGlhbENoZWNrZWQiLCJyZWFkT25seSIsInJlcXVpcmVkIiwiZGl2IiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJpbnB1dCIsImFyaWEtbGFiZWwiLCJkZWZhdWx0Q2hlY2tlZCIsImRpc2FibGVkIiwib25JbnB1dCIsInJlZiIsInR5cGUiLCJzcGFuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLFdBQVcsUUFBTztBQUV6QixTQUFTQyxLQUFLLFFBQVEsdUJBQXNCO0FBQzVDLFNBQVNDLElBQUksUUFBUSxzQkFBcUI7QUFpQjFDLE9BQU8sTUFBTUMsaUJBQWlCLGlCQUFnQjtBQUU5QyxPQUFPLE1BQU1DLGdCQUFpQyxDQUFDLEVBQzdDQyxFQUFFLEVBQ0ZDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLEtBQUssRUFDTEMsT0FBTyxFQUNQQyxTQUFTLEVBQ1RDLFFBQVEsRUFDUkMsUUFBUSxFQUNSQyxjQUFjLEVBQ2RDLFFBQVEsRUFDUkMsUUFBUSxFQUNUO0lBQ0MscUJBQ0Usb0JBQUNDO1FBQ0NOLFdBQVc7WUFDVEE7WUFDQVI7WUFDQU8sV0FBVyxDQUFDLEVBQUVQLGVBQWUsU0FBUyxDQUFDO1lBQ3ZDWSxZQUFZLENBQUMsRUFBRVosZUFBZSxXQUFXLENBQUM7U0FDM0MsQ0FDRWUsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7cUJBRVIsb0JBQUNIO1FBQUlOLFdBQVcsQ0FBQyxFQUFFUixlQUFlLE9BQU8sQ0FBQztPQUN2Q0ssMkJBQ0Qsb0JBQUNhO1FBQ0NDLGNBQVc7UUFDWEMsZ0JBQWdCSixRQUFRVDtRQUN4QmMsVUFBVVQ7UUFDVlYsSUFBSUE7UUFDSkMsTUFBTUE7UUFDTm1CLFNBQVNaO1FBQ1RhLEtBQUtkO1FBQ0xJLFVBQVVBO1FBQ1ZXLE1BQUs7c0JBRVAsb0JBQUNDO1FBQ0NqQixXQUFXO1lBQUMsQ0FBQyxFQUFFUixlQUFlLE1BQU0sQ0FBQztZQUFFLENBQUNPLFdBQVdJLGlCQUFpQixVQUFVO1NBQVUsQ0FDckZJLE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO09BRVBWLHlCQUFXLG9CQUFDVCxjQUNaLENBQUNTLFdBQVdJLGdDQUFrQixvQkFBQ1osY0FFakNLLGFBRUZFO0FBR1AsRUFBQyJ9