@kando-env/kando-ui 1.2.228-alpha.3 → 1.2.228-alpha.32

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 (569) hide show
  1. package/lib/Router.js +38 -106
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +14 -46
  3. package/lib/Widgets/EventsRow/EventsRow.js +17 -46
  4. package/lib/Widgets/Map/GraphUtils.js +2 -5
  5. package/lib/Widgets/Map/Map.js +59 -88
  6. package/lib/Widgets/Map/MapUtils.js +6 -57
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +9 -31
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +10 -25
  9. package/lib/Widgets/Map/edges/Edge.js +11 -34
  10. package/lib/Widgets/Map/edges/Edges.js +13 -24
  11. package/lib/Widgets/Map/edges/arrows/Arrows.js +9 -24
  12. package/lib/Widgets/Map/events/Event.js +9 -27
  13. package/lib/Widgets/Map/events/EventIndicator.js +21 -46
  14. package/lib/Widgets/Map/events/EventPath.js +7 -24
  15. package/lib/Widgets/Map/events/EventUtils.js +5 -55
  16. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +7 -23
  17. package/lib/Widgets/Map/events/PointOfEvent.js +7 -38
  18. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +5 -17
  19. package/lib/Widgets/Map/events/Snail.js +9 -23
  20. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +17 -58
  21. package/lib/Widgets/Map/map/FloatingGraph.js +4 -20
  22. package/lib/Widgets/Map/map/GraphDateButton.js +4 -10
  23. package/lib/Widgets/Map/matchGraph/MatchGraph.js +5 -11
  24. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +5 -11
  25. package/lib/Widgets/Map/points/PointIcon.js +7 -23
  26. package/lib/Widgets/Map/points/PointMarker.js +15 -25
  27. package/lib/Widgets/Map/points/PointMarkers.js +18 -26
  28. package/lib/Widgets/Map/points/PointUtils.js +12 -95
  29. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +17 -53
  30. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +6 -23
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +3 -17
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +2 -6
  33. package/lib/Widgets/MostPolluting/Areas/Areas.js +21 -57
  34. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +1 -1
  35. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  36. package/lib/Widgets/MostPolluting/Areas/styles.js +2 -8
  37. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +4 -12
  38. package/lib/Widgets/MostPolluting/Factories/Factories.js +32 -68
  39. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +5 -22
  40. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +2 -11
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +5 -18
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +4 -8
  43. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +1 -1
  44. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  45. package/lib/Widgets/MostPolluting/Factories/styles.js +2 -8
  46. package/lib/Widgets/MostPolluting/MostPolluting.js +6 -21
  47. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +14 -18
  48. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +3 -10
  49. package/lib/Widgets/MostPolluting/ShowMore/styles.js +2 -6
  50. package/lib/Widgets/MostPolluting/assets/index.js +18 -29
  51. package/lib/Widgets/MostPolluting/components/ChangePercent.js +2 -17
  52. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +16 -27
  53. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +5 -27
  54. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +26 -34
  55. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +5 -21
  56. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +30 -44
  57. package/lib/Widgets/MostPolluting/models.js +1 -1
  58. package/lib/Widgets/MostPolluting/styles.js +2 -8
  59. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +3 -10
  60. package/lib/Widgets/PotentialImpactSummary/Icon.js +2 -12
  61. package/lib/Widgets/PotentialImpactSummary/index.js +9 -31
  62. package/lib/Widgets/PotentialImpactSummary/index.test.js +18 -37
  63. package/lib/Widgets/PotentialImpactSummary/styles.js +3 -16
  64. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  65. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +5 -11
  66. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +8 -22
  67. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +20 -30
  68. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +16 -25
  69. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +9 -25
  70. package/lib/Widgets/QualitySummary/QualitySummary.js +9 -25
  71. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +2 -2
  72. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  73. package/lib/Widgets/QualitySummary/styles.js +3 -16
  74. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +11 -24
  75. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +11 -38
  76. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +10 -19
  77. package/lib/Widgets/UtilityInformation/UtilityInformation.js +26 -51
  78. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  79. package/lib/Widgets/UtilityInformation/styles.js +4 -26
  80. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +2 -2
  81. package/lib/assets/icons/index.js +5 -8
  82. package/lib/assets/icons/kandoStepper/index.js +9 -14
  83. package/lib/components/ApplyButton/ApplyButton.js +6 -12
  84. package/lib/components/ApplyButton/index.js +2 -5
  85. package/lib/components/Backdrop/Backdrop.js +3 -9
  86. package/lib/components/ContentLoader/ContentLoader.js +8 -13
  87. package/lib/components/ContentLoader/index.js +1 -2
  88. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +8 -15
  89. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -9
  90. package/lib/components/CustomInputs/DoubleTabs/styles.js +3 -11
  91. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +7 -22
  92. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +2 -6
  93. package/lib/components/CustomInputs/Search/Search.js +15 -42
  94. package/lib/components/CustomInputs/Search/index.js +2 -5
  95. package/lib/components/CustomInputs/Select/Select.js +15 -35
  96. package/lib/components/CustomInputs/Select/Select.stories.js +3 -9
  97. package/lib/components/DamageType/DamageType.js +39 -80
  98. package/lib/components/DamageType/index.js +2 -5
  99. package/lib/components/DataLoaderError/DataLoaderError.js +5 -11
  100. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +7 -17
  101. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +18 -38
  102. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +14 -41
  103. package/lib/components/DischargeHeatmap/HighchartsOptions.js +7 -11
  104. package/lib/components/DischargeHeatmap/index.js +2 -5
  105. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -4
  106. package/lib/components/DischargeHeatmap/popupText.js +2 -17
  107. package/lib/components/DischargeHeatmap/titles.js +2 -9
  108. package/lib/components/DischargeHeatmap/types.js +1 -1
  109. package/lib/components/ErrorBoundary.js +4 -16
  110. package/lib/components/Events/Events.js +7 -34
  111. package/lib/components/Events/index.js +2 -5
  112. package/lib/components/Graph/Graph.js +35 -80
  113. package/lib/components/Graph/index.js +2 -5
  114. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +2 -8
  115. package/lib/components/Header/Breadcrumbs/index.js +2 -5
  116. package/lib/components/Header/DoubleTabs/DoubleTabs.js +16 -34
  117. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -9
  118. package/lib/components/Header/DoubleTabs/styles.js +3 -11
  119. package/lib/components/Header/Header.js +2 -8
  120. package/lib/components/Header/Header.stories.js +3 -9
  121. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +2 -12
  122. package/lib/components/Header/InfoBar/InfoBar.js +6 -34
  123. package/lib/components/Header/InfoBar/Search/Control.js +3 -14
  124. package/lib/components/Header/InfoBar/Search/GroupLabel.js +2 -13
  125. package/lib/components/Header/InfoBar/Search/Search.js +7 -30
  126. package/lib/components/Header/InfoBar/Search/SearchContainer.js +6 -25
  127. package/lib/components/Header/InfoBar/Search/index.js +2 -5
  128. package/lib/components/Header/InfoBar/Search/searchStyle.js +2 -5
  129. package/lib/components/Header/KandoNavbar/KandoNavbar.js +48 -95
  130. package/lib/components/Header/KandoNavbar/index.js +2 -5
  131. package/lib/components/Header/Slideshow/Slideshow.js +33 -71
  132. package/lib/components/Header/Slideshow/index.js +2 -5
  133. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +2 -8
  134. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +3 -16
  135. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +2 -16
  136. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +8 -25
  137. package/lib/components/Header/Toolbar/Toolbar.js +49 -89
  138. package/lib/components/InfoBar/InfoBar.js +10 -27
  139. package/lib/components/InfoBar/InfoBar.stories.js +3 -9
  140. package/lib/components/KandoModal/KandoModal.js +21 -46
  141. package/lib/components/KandoModal/index.js +2 -5
  142. package/lib/components/Link.js +3 -12
  143. package/lib/components/Links/CustomRedirect/CustomRedirect.js +4 -13
  144. package/lib/components/Links/StyledLink/StyledLink.js +7 -17
  145. package/lib/components/Links/StyledNavLink/StyledNavLink.js +5 -15
  146. package/lib/components/LiveEvents/CarouselSlide.js +6 -12
  147. package/lib/components/LiveEvents/LiveEvents.js +2 -11
  148. package/lib/components/LiveEvents/index.js +2 -5
  149. package/lib/components/LoaderByPercent/LoaderByPercent.js +14 -24
  150. package/lib/components/Map/Map.js +14 -30
  151. package/lib/components/Map/index.js +2 -5
  152. package/lib/components/Modal/Modal.js +4 -11
  153. package/lib/components/NarrowHeader.js +2 -13
  154. package/lib/components/PointInfo/PointInfo.js +11 -23
  155. package/lib/components/PointInfo/index.js +2 -5
  156. package/lib/components/PopupModal/PopupModal.js +7 -18
  157. package/lib/components/PopupModal/PopupModal.stories.js +3 -12
  158. package/lib/components/Sector/Sector.js +5 -14
  159. package/lib/components/Sector/Sector.test.js +4 -9
  160. package/lib/components/Sector/index.js +2 -5
  161. package/lib/components/Sector/sectorIcons.js +2 -28
  162. package/lib/components/SevereEvent/Eta/Eta.js +16 -43
  163. package/lib/components/SevereEvent/Eta/styles.js +2 -6
  164. package/lib/components/SevereEvent/SevereEvent.js +17 -40
  165. package/lib/components/Spinner/Spinner.js +6 -11
  166. package/lib/components/Spinner/Spinner.stories.js +3 -9
  167. package/lib/components/Spinner/index.js +2 -5
  168. package/lib/components/Spinner/styles.js +2 -10
  169. package/lib/components/Tabs/Tabs.js +7 -29
  170. package/lib/components/Tabs/Tabs.stories.js +3 -9
  171. package/lib/components/Tabs/assets/index.js +1 -6
  172. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +4 -16
  173. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +14 -47
  174. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +14 -40
  175. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +2 -5
  176. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +10 -30
  177. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +5 -10
  178. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +2 -5
  179. package/lib/components/TimeRangeSelector/TimeRangeList.js +6 -17
  180. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +13 -28
  181. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +13 -40
  182. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +3 -11
  183. package/lib/components/TimeRangeSelector/constants.js +2 -2
  184. package/lib/components/TimeRangeSelector/index.js +2 -5
  185. package/lib/components/Toggle/Toggle.js +9 -25
  186. package/lib/components/Toggle/index.js +2 -5
  187. package/lib/components/TrendGraph/TrendGraph.js +19 -54
  188. package/lib/components/TrendGraph/index.js +2 -5
  189. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +12 -39
  190. package/lib/components/TrendGraphNVL/index.js +2 -5
  191. package/lib/development-environment/index.js +2 -14
  192. package/lib/development-environment/mock/browser.js +2 -9
  193. package/lib/development-environment/mock/get.js +1 -5
  194. package/lib/development-environment/mock/handlers.js +1 -26
  195. package/lib/development-environment/mock/mockBus.js +2 -7
  196. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +1 -1
  197. package/lib/development-environment/mock/mockObjects/areaInformation.js +1 -1
  198. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +1 -1
  199. package/lib/development-environment/mock/mockObjects/areaSitesData.js +1 -1
  200. package/lib/development-environment/mock/mockObjects/areasJson.js +1 -1
  201. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +1 -1
  202. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +1 -1
  203. package/lib/development-environment/mock/mockObjects/data-menuData.js +1 -1
  204. package/lib/development-environment/mock/mockObjects/data-search.js +1 -1
  205. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +1 -1
  206. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +1 -1
  207. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +1 -1
  208. package/lib/development-environment/mock/mockObjects/eventsJson.js +1 -1
  209. package/lib/development-environment/mock/mockObjects/metascore.js +1 -1
  210. package/lib/development-environment/mock/mockObjects/permissionsJson.js +1 -1
  211. package/lib/development-environment/mock/mockObjects/pointsJson.js +1 -1
  212. package/lib/development-environment/mock/mockObjects/site-info.js +1 -1
  213. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +1 -1
  214. package/lib/development-environment/togly/ToglyDashboard.js +6 -26
  215. package/lib/development-environment/togly/ToglyItem.js +7 -29
  216. package/lib/development-environment/togly/flags.js +1 -1
  217. package/lib/development-environment/togly/init.js +2 -7
  218. package/lib/development-environment/togly/macro.js +7 -9
  219. package/lib/development-environment/togly/useDoubleKeyDown.js +1 -8
  220. package/lib/development-environment/togly/useLocalStorage.js +13 -20
  221. package/lib/hooks/useApi.js +38 -59
  222. package/lib/hooks/useApiWithDashboardQuery.js +11 -31
  223. package/lib/hooks/useClickOutside.js +1 -5
  224. package/lib/hooks/useInitializeHeaders.js +2 -8
  225. package/lib/hooks/useKandoFetch.js +14 -28
  226. package/lib/hooks/useMap.js +11 -38
  227. package/lib/hooks/useNavContext.js +14 -23
  228. package/lib/hooks/useQueryURL.js +1 -4
  229. package/lib/hooks/useRemoveExistingLayers.js +2 -7
  230. package/lib/hooks/useUpdateEventBodyTail.js +1 -10
  231. package/lib/hooks/useUserTimeZone.js +1 -9
  232. package/lib/hooks/useUserTimeZone.test.js +3 -13
  233. package/lib/hooks/useWindowSize.js +15 -20
  234. package/lib/index.js +14 -30
  235. package/lib/macros/getVersion.js +2 -3
  236. package/lib/models/IAction.js +1 -1
  237. package/lib/models/IAppState.js +1 -1
  238. package/lib/pages/AreaPage/AreaPage.js +31 -64
  239. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +7 -20
  240. package/lib/pages/AreaPage/Dashboard/Dashboard.js +4 -27
  241. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +13 -39
  242. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +7 -9
  243. package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +30 -68
  244. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +2 -11
  245. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +4 -16
  246. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +4 -8
  247. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  248. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +1 -1
  249. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +3 -11
  250. package/lib/pages/AssessmentPage/AssessmentPage.js +7 -34
  251. package/lib/pages/CannyWidget/Feedback.js +12 -29
  252. package/lib/pages/CovidPage/CovidPage.js +3 -18
  253. package/lib/pages/CovidPage/components/Body.js +11 -37
  254. package/lib/pages/CovidPage/components/Map.js +22 -42
  255. package/lib/pages/CovidPage/components/Sidebar.js +6 -22
  256. package/lib/pages/CovidPage/components/Summary.js +10 -33
  257. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +12 -39
  258. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +2 -5
  259. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +15 -45
  260. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +2 -5
  261. package/lib/pages/CovidPage/components/areas/Area.js +8 -37
  262. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +6 -49
  263. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +7 -22
  264. package/lib/pages/CovidPage/components/areas/AreasList.js +16 -37
  265. package/lib/pages/CovidPage/components/areas/Sort.js +7 -23
  266. package/lib/pages/CovidPage/components/nvlStatusHelper.js +2 -11
  267. package/lib/pages/EventsPage/Body/Body.js +4 -23
  268. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +13 -32
  269. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +12 -32
  270. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +5 -12
  271. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +4 -12
  272. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +6 -11
  273. package/lib/pages/EventsPage/DragAndDropArea/index.js +2 -5
  274. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +9 -37
  275. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +3 -22
  276. package/lib/pages/EventsPage/EventsPage.js +3 -17
  277. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +12 -37
  278. package/lib/pages/EventsPage/events/MoreInfo.js +3 -23
  279. package/lib/pages/EventsPage/events/Sidebar.js +7 -22
  280. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +7 -33
  281. package/lib/pages/EventsPage/events/event_info/EventDetails.js +9 -33
  282. package/lib/pages/EventsPage/events/event_info/EventInfo.js +14 -45
  283. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +3 -15
  284. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +12 -44
  285. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +2 -13
  286. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +10 -34
  287. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +2 -9
  288. package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/LineChartYear/LineChartYear.js +9 -31
  289. package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/MockHistoryInformation.js +3 -11
  290. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +7 -25
  291. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsLineChart.js +6 -27
  292. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +6 -26
  293. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +8 -37
  294. package/lib/pages/EventsPage/events/event_info/samplings/Sampling.js +4 -16
  295. package/lib/pages/EventsPage/events/event_info/samplings/Samplings.js +3 -11
  296. package/lib/pages/EventsPage/events/event_info/sources/Source.js +9 -32
  297. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +6 -24
  298. package/lib/pages/EventsPage/events/events_list/EventItem.js +5 -28
  299. package/lib/pages/EventsPage/events/events_list/EventUtils.js +3 -14
  300. package/lib/pages/EventsPage/events/events_list/EventsList.js +41 -107
  301. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +13 -36
  302. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +33 -100
  303. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +12 -59
  304. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +7 -21
  305. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +17 -42
  306. package/lib/pages/EventsPage/events/events_list/Sort.js +6 -27
  307. package/lib/pages/ImportFileWizard/FileUploadRespones.js +5 -20
  308. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +4 -10
  309. package/lib/pages/ImportFileWizard/ImportFile.js +12 -33
  310. package/lib/pages/ImportFileWizard/ResponseBody.js +4 -13
  311. package/lib/pages/ImportFileWizard/ValidationForm.js +8 -28
  312. package/lib/pages/ImportFileWizard/ValidationResponse.js +9 -35
  313. package/lib/pages/ImportFileWizard/importFileUtils.js +5 -6
  314. package/lib/pages/ImportFileWizard/index.js +2 -5
  315. package/lib/pages/ImportGisPage/ImportGisContainer.js +9 -31
  316. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +11 -28
  317. package/lib/pages/ImportGisPage/importGisUtils.js +6 -18
  318. package/lib/pages/ImportGisProcess/index.js +5 -19
  319. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -23
  320. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +4 -11
  321. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +2 -9
  322. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +27 -62
  323. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +3 -9
  324. package/lib/pages/NotificationsPage/Notification/Notification.js +9 -17
  325. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  326. package/lib/pages/NotificationsPage/Notifications.mock.js +1 -1
  327. package/lib/pages/NotificationsPage/Notifications.stories.js +3 -11
  328. package/lib/pages/NotificationsPage/NotificationsPage.js +14 -40
  329. package/lib/pages/NotificationsPage/assets/index.js +15 -24
  330. package/lib/pages/NotificationsPageV2/NotificationsPage.js +37 -87
  331. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +5 -25
  332. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +17 -44
  333. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +20 -53
  334. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +5 -48
  335. package/lib/pages/NotificationsPageV2/notificationUtils.js +3 -30
  336. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  337. package/lib/pages/OldSitePage/OldSitePage.js +65 -132
  338. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +4 -17
  339. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -9
  340. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +5 -10
  341. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +6 -13
  342. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +3 -13
  343. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +9 -27
  344. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +7 -21
  345. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -11
  346. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +3 -13
  347. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +11 -28
  348. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +5 -13
  349. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +30 -63
  350. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
  351. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +13 -11
  352. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +5 -22
  353. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +4 -19
  354. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +9 -17
  355. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +3 -18
  356. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  357. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +3 -11
  358. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +3 -8
  359. package/lib/pages/ProfilePage/Container.js +2 -6
  360. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +18 -47
  361. package/lib/pages/ProfilePage/ProfilePage.js +41 -92
  362. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +11 -36
  363. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +8 -18
  364. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +5 -18
  365. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +69 -111
  366. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +6 -25
  367. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +8 -16
  368. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +9 -30
  369. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +7 -26
  370. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +10 -22
  371. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +2 -14
  372. package/lib/pages/SamplingsPage/DesktopActions/index.js +2 -5
  373. package/lib/pages/SamplingsPage/NavigationDropdown.js +4 -22
  374. package/lib/pages/SamplingsPage/NewSamplingAction.js +29 -79
  375. package/lib/pages/SamplingsPage/SamplingMobileModal.js +13 -66
  376. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +6 -20
  377. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +3 -14
  378. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +24 -60
  379. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +6 -24
  380. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +2 -15
  381. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +113 -192
  382. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +13 -46
  383. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +16 -51
  384. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +17 -53
  385. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +7 -25
  386. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -9
  387. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +2 -12
  388. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +9 -40
  389. package/lib/pages/SamplingsPage/SamplingsMobileList.js +12 -38
  390. package/lib/pages/SamplingsPage/SamplingsPage.js +16 -43
  391. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +16 -52
  392. package/lib/pages/SamplingsPage/index.js +1 -3
  393. package/lib/pages/SamplingsPage/samplingsPageUtils.js +8 -31
  394. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +3 -11
  395. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -9
  396. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +4 -18
  397. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +7 -12
  398. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +16 -24
  399. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +8 -17
  400. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +19 -28
  401. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +3 -13
  402. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +11 -30
  403. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +7 -21
  404. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -11
  405. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +3 -13
  406. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +11 -28
  407. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +5 -13
  408. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +34 -72
  409. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
  410. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +13 -11
  411. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +6 -23
  412. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +4 -19
  413. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +18 -39
  414. package/lib/pages/SitePage/SamplingParameters/dataParser.js +15 -31
  415. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +3 -7
  416. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  417. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +3 -11
  418. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +3 -9
  419. package/lib/pages/SitePage/SiteInformation/ContributorItem.js +6 -13
  420. package/lib/pages/SitePage/SiteInformation/EmptyState.js +2 -11
  421. package/lib/pages/SitePage/SiteInformation/PollutionContributor.js +6 -16
  422. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +19 -52
  423. package/lib/pages/SitePage/SiteInformation/style.js +3 -9
  424. package/lib/pages/SitePage/SitePage.js +36 -79
  425. package/lib/pages/UploadLabResult/index.js +2 -9
  426. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +12 -42
  427. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +3 -10
  428. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +3 -17
  429. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -9
  430. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +11 -39
  431. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +2 -6
  432. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +2 -8
  433. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +2 -11
  434. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +8 -17
  435. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  436. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +2 -11
  437. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -6
  438. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +5 -29
  439. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +14 -20
  440. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +7 -20
  441. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -24
  442. package/lib/pages/WbeDashboard/ExpandableComponent.js +3 -15
  443. package/lib/pages/WbeDashboard/GraphWrapper.js +7 -30
  444. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +8 -23
  445. package/lib/pages/WbeDashboard/SearchInput.js +6 -26
  446. package/lib/pages/WbeDashboard/SummaryGraph.js +34 -69
  447. package/lib/pages/WbeDashboard/SummaryGraphModal.js +2 -14
  448. package/lib/pages/WbeDashboard/Tabs.js +4 -10
  449. package/lib/pages/WbeDashboard/WbeDashboardPage.js +27 -116
  450. package/lib/pages/WbeDashboard/WbeSummaryBar.js +10 -46
  451. package/lib/providers/Slideshow/SlideshowContext.js +3 -5
  452. package/lib/providers/Slideshow/SlideshowProvider.js +18 -35
  453. package/lib/providers/Slideshow/SlideshowRunner.js +7 -17
  454. package/lib/providers/UrlHistory/UrlHistoryContext.js +4 -8
  455. package/lib/providers/UrlHistory/UrlHistoryProvider.js +2 -16
  456. package/lib/providers/UrlHistory/index.js +6 -9
  457. package/lib/providers/UrlHistory/useLastVisited.js +1 -7
  458. package/lib/react-app-env.d.js +1 -1
  459. package/lib/store/ImportGis/action.js +1 -1
  460. package/lib/store/ImportGis/actionTypes.js +5 -6
  461. package/lib/store/ImportGis/actionsCreator.js +7 -17
  462. package/lib/store/ImportGis/models/gisImports.js +1 -1
  463. package/lib/store/ImportGis/reducer.js +3 -19
  464. package/lib/store/WBE/actionTypes.js +1 -1
  465. package/lib/store/WBE/actions.js +1 -3
  466. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  467. package/lib/store/WBE/models/IWBE.js +1 -1
  468. package/lib/store/WBE/models/IWBEState.js +1 -1
  469. package/lib/store/WBE/reducer.js +3 -10
  470. package/lib/store/areas/actionTypes.js +2 -2
  471. package/lib/store/areas/actions.js +3 -12
  472. package/lib/store/areas/models/IArea.js +1 -1
  473. package/lib/store/areas/models/IAreasState.js +1 -1
  474. package/lib/store/areas/reducer.js +1 -9
  475. package/lib/store/context/actionTypes.js +2 -2
  476. package/lib/store/context/actions.js +2 -6
  477. package/lib/store/context/contextMiddlewares.js +1 -9
  478. package/lib/store/context/models/INavContext.js +1 -1
  479. package/lib/store/context/models/INavContextState.js +1 -1
  480. package/lib/store/context/reducer.js +3 -10
  481. package/lib/store/dashboard/dashboardSlice.js +1 -3
  482. package/lib/store/dashboard/periodType.js +1 -1
  483. package/lib/store/edges/actionTypes.js +2 -2
  484. package/lib/store/edges/actions.js +3 -9
  485. package/lib/store/edges/models/IEdge.js +1 -1
  486. package/lib/store/edges/models/IEdgesState.js +1 -1
  487. package/lib/store/edges/reducer.js +3 -17
  488. package/lib/store/events/actionTypes.js +2 -2
  489. package/lib/store/events/actions.js +10 -28
  490. package/lib/store/events/models/IEvent.js +1 -1
  491. package/lib/store/events/models/IEventsState.js +1 -1
  492. package/lib/store/events/models/ISource.js +1 -1
  493. package/lib/store/events/reducer.js +4 -42
  494. package/lib/store/filters/IFilter.js +1 -1
  495. package/lib/store/filters/IFilterItem.js +1 -1
  496. package/lib/store/global/actionTypes.js +2 -2
  497. package/lib/store/global/actions.js +8 -20
  498. package/lib/store/global/models/IGlobalState.js +1 -1
  499. package/lib/store/global/reducer.js +3 -19
  500. package/lib/store/permissions/permissionsSlice.js +1 -6
  501. package/lib/store/points/actionTypes.js +2 -2
  502. package/lib/store/points/actions.js +1 -5
  503. package/lib/store/points/models/IGroup.js +1 -1
  504. package/lib/store/points/models/IPoint.js +1 -1
  505. package/lib/store/points/models/IPointsState.js +1 -1
  506. package/lib/store/points/reducer.js +1 -7
  507. package/lib/store/rootActionTypes.js +1 -1
  508. package/lib/store/rootActions.js +1 -3
  509. package/lib/store/rootReducer.js +5 -24
  510. package/lib/store/rootStore.js +5 -13
  511. package/lib/store/samplings/action.js +1 -1
  512. package/lib/store/samplings/actionTypes.js +5 -6
  513. package/lib/store/samplings/actionsCreator.js +2 -5
  514. package/lib/store/samplings/models/Samplings.js +1 -1
  515. package/lib/store/samplings/reducer.js +2 -10
  516. package/lib/styles/StylesLayout.js +2 -8
  517. package/lib/styles/theme/theme.js +2 -4
  518. package/lib/test/mocks/browser.js +4 -8
  519. package/lib/test/test-utils.js +12 -22
  520. package/lib/ui-kit/Button/Button.js +16 -24
  521. package/lib/ui-kit/Button/Button.test.js +8 -30
  522. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  523. package/lib/ui-kit/Checkbox/Checkbox.js +8 -22
  524. package/lib/ui-kit/DropDown/DropDown.js +6 -17
  525. package/lib/ui-kit/DropDown/DropDown.test.js +7 -13
  526. package/lib/ui-kit/DropDown/DropDownItem.js +6 -14
  527. package/lib/ui-kit/DropDown/DropdownToggle.js +3 -14
  528. package/lib/ui-kit/IconAction/IconAction.js +4 -10
  529. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +19 -54
  530. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +17 -28
  531. package/lib/ui-kit/KandoList/KandoList.js +6 -19
  532. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  533. package/lib/ui-kit/KandoTable/KandoTable.js +23 -39
  534. package/lib/ui-kit/KandoTable/KandoTable.test.js +2 -17
  535. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  536. package/lib/ui-kit/Layout/Layout.js +2 -9
  537. package/lib/ui-kit/MobileInput/MobileInput.js +19 -34
  538. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +9 -15
  539. package/lib/ui-kit/ModalConfirmation/index.js +1 -3
  540. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +6 -11
  541. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +4 -12
  542. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +4 -11
  543. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +6 -15
  544. package/lib/ui-kit/Tooltip/Tooltip.js +4 -9
  545. package/lib/ui-kit/index.js +1 -15
  546. package/lib/ui-kit/kandoStepper/KandoStepper.js +3 -8
  547. package/lib/utilities/ActionUtility.js +1 -2
  548. package/lib/utilities/Alert.js +3 -11
  549. package/lib/utilities/Analytics.js +2 -13
  550. package/lib/utilities/Array.js +2 -6
  551. package/lib/utilities/Enum.js +22 -39
  552. package/lib/utilities/ErrorBoundary.js +4 -19
  553. package/lib/utilities/File.js +43 -66
  554. package/lib/utilities/GetDir.js +5 -9
  555. package/lib/utilities/KandoDate.js +2 -8
  556. package/lib/utilities/KandoModal.js +9 -26
  557. package/lib/utilities/LocalStorage.js +2 -13
  558. package/lib/utilities/ThousandsToK.js +1 -3
  559. package/lib/utilities/TimeFormat.js +8 -23
  560. package/lib/utilities/Truncate.js +9 -31
  561. package/lib/utilities/edgesMath.js +9 -28
  562. package/lib/utilities/i18n.js +2 -15
  563. package/lib/utilities/kql.js +3 -10
  564. package/lib/utilities/map/icons.js +2 -19
  565. package/lib/utilities/scoreToColor.js +1 -8
  566. package/lib/utilities/time.js +3 -10
  567. package/lib/utilities/uploadToS3.js +2 -10
  568. package/lib/utilities/urls.js +5 -13
  569. package/package.json +4 -2
@@ -1,57 +1,31 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.ProfilePage = void 0;
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
13
-
14
10
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _Select = require("components/CustomInputs/Select/Select");
21
-
22
14
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
23
-
24
15
  var _PasswordModal = require("./PasswordModal/PasswordModal");
25
-
26
16
  var _pen = require("@svgr/webpack?-svgo!./pen.svg");
27
-
28
17
  var _cancel = require("@svgr/webpack?-svgo!./cancel.svg");
29
-
30
18
  var _reactPhoneInput = _interopRequireDefault(require("react-phone-input-2"));
31
-
32
19
  require("react-phone-input-2/lib/style.css");
33
-
34
20
  var _TelegramModal = require("./TelegramModal/TelegramModal");
35
-
36
21
  var _axios = _interopRequireDefault(require("axios"));
37
-
38
22
  var _Container = require("./Container");
39
-
40
23
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
41
-
42
24
  var _Analytics = require("../../utilities/Analytics");
43
-
44
25
  var _reactRedux = require("react-redux");
45
-
46
26
  var _reactToastify = require("react-toastify");
47
-
48
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
-
50
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
-
52
27
  var ProfilePage = function ProfilePage() {
53
28
  var timezonesArray = _momentTimezone.default.tz.names();
54
-
55
29
  var dateTimeFormatOptions = [{
56
30
  value: 'us',
57
31
  label: 'United States',
@@ -96,22 +70,18 @@ var ProfilePage = function ProfilePage() {
96
70
  value: 'it',
97
71
  label: 'Italiano'
98
72
  }];
99
-
100
73
  var _useState = (0, _react.useState)(localeOptions[0]),
101
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
102
- locale = _useState2[0],
103
- setLocale = _useState2[1];
104
-
74
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
75
+ locale = _useState2[0],
76
+ setLocale = _useState2[1];
105
77
  var _useState3 = (0, _react.useState)(dateTimeFormatOptions[0]),
106
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
107
- dateTimeFormat = _useState4[0],
108
- setDateTimeFormat = _useState4[1];
109
-
78
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
79
+ dateTimeFormat = _useState4[0],
80
+ setDateTimeFormat = _useState4[1];
110
81
  var _useState5 = (0, _react.useState)(timezones[20]),
111
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
112
- timezone = _useState6[0],
113
- setTimezone = _useState6[1];
114
-
82
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
83
+ timezone = _useState6[0],
84
+ setTimezone = _useState6[1];
115
85
  var initialParamsState = {
116
86
  first_name: '',
117
87
  last_name: '',
@@ -122,52 +92,43 @@ var ProfilePage = function ProfilePage() {
122
92
  locale: '',
123
93
  telegram_name: ''
124
94
  };
125
-
126
95
  var _useState7 = (0, _react.useState)(false),
127
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
128
- isTelegramOpen = _useState8[0],
129
- setIsTelegramOpen = _useState8[1];
130
-
96
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
97
+ isTelegramOpen = _useState8[0],
98
+ setIsTelegramOpen = _useState8[1];
131
99
  var _useState9 = (0, _react.useState)(false),
132
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
133
- showPasswordModal = _useState10[0],
134
- setShowPasswordModal = _useState10[1];
135
-
100
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
101
+ showPasswordModal = _useState10[0],
102
+ setShowPasswordModal = _useState10[1];
136
103
  var _useState11 = (0, _react.useState)(false),
137
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
138
- submitting = _useState12[0],
139
- setSubmitting = _useState12[1];
140
-
104
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
105
+ submitting = _useState12[0],
106
+ setSubmitting = _useState12[1];
141
107
  var _useState13 = (0, _react.useState)(false),
142
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
143
- showSuccessMessage = _useState14[0],
144
- setShowSuccessMessage = _useState14[1];
145
-
108
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
109
+ showSuccessMessage = _useState14[0],
110
+ setShowSuccessMessage = _useState14[1];
146
111
  var _useState15 = (0, _react.useState)(false),
147
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
148
- showErrorMessage = _useState16[0],
149
- setShowErrorMessage = _useState16[1];
150
-
112
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
113
+ showErrorMessage = _useState16[0],
114
+ setShowErrorMessage = _useState16[1];
151
115
  var _useState17 = (0, _react.useState)({
152
- show: false,
153
- status: '',
154
- message: ''
155
- }),
156
- _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
157
- showTelegramResponseMessage = _useState18[0],
158
- setShowTelegramResponseMessage = _useState18[1];
159
-
116
+ show: false,
117
+ status: '',
118
+ message: ''
119
+ }),
120
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
121
+ showTelegramResponseMessage = _useState18[0],
122
+ setShowTelegramResponseMessage = _useState18[1];
160
123
  var _useState19 = (0, _react.useState)(initialParamsState),
161
- _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
162
- params = _useState20[0],
163
- setParams = _useState20[1];
164
-
124
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
125
+ params = _useState20[0],
126
+ setParams = _useState20[1];
165
127
  var handleOnChange = function handleOnChange(e) {
166
128
  if (typeof e === 'string') {
167
129
  if (e.startsWith('9720')) {
168
130
  e = e.replace(/(9720)/g, '972');
169
131
  }
170
-
171
132
  setParams(function (prevState) {
172
133
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
173
134
  phone: e
@@ -175,14 +136,13 @@ var ProfilePage = function ProfilePage() {
175
136
  });
176
137
  } else {
177
138
  var _e$target = e.target,
178
- value = _e$target.value,
179
- name = _e$target.name;
139
+ value = _e$target.value,
140
+ name = _e$target.name;
180
141
  setParams(function (prevState) {
181
142
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, (0, _defineProperty2.default)({}, name, value));
182
143
  });
183
144
  }
184
145
  };
185
-
186
146
  var getParamsWithAggregatedValues = function getParamsWithAggregatedValues() {
187
147
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
188
148
  date_time_format: dateTimeFormat.value,
@@ -190,15 +150,12 @@ var ProfilePage = function ProfilePage() {
190
150
  time_zone: timezone.value
191
151
  });
192
152
  };
193
-
194
153
  var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
195
154
  return state.global_data.waterAuthorityName;
196
155
  });
197
-
198
156
  var showToast = function showToast(data) {
199
157
  var username = data.username;
200
158
  var error = data.error;
201
-
202
159
  if (data.status === 'success') {
203
160
  _reactToastify.toast.success(_i18n.default.t("my_profile_tab.telegram_messages.".concat(data.message), {
204
161
  username: username
@@ -214,11 +171,9 @@ var ProfilePage = function ProfilePage() {
214
171
  });
215
172
  }
216
173
  };
217
-
218
174
  var handleSubmit = function handleSubmit(e) {
219
175
  e.preventDefault();
220
176
  setSubmitting(true);
221
-
222
177
  _axios.default.put('/profiles', {
223
178
  user: getParamsWithAggregatedValues()
224
179
  }).then(function (resp) {
@@ -252,7 +207,6 @@ var ProfilePage = function ProfilePage() {
252
207
  return p.innerHTML = '';
253
208
  });
254
209
  var errors = resp.data.errors;
255
-
256
210
  for (var error in errors) {
257
211
  var findElement = document.querySelector("input[name='".concat(error, "']"));
258
212
  var parent = findElement.closest('.field');
@@ -260,10 +214,8 @@ var ProfilePage = function ProfilePage() {
260
214
  findInput.classList.add('invalid-field');
261
215
  parent.querySelector('.error-message').innerHTML = _i18n.default.t("dashboard_v2.profile.errors.".concat(error));
262
216
  }
263
-
264
217
  setShowSuccessMessage(false);
265
218
  }
266
-
267
219
  setSubmitting(false);
268
220
  }).catch(function (error) {
269
221
  setShowErrorMessage(true);
@@ -274,16 +226,14 @@ var ProfilePage = function ProfilePage() {
274
226
  }, 6000);
275
227
  });
276
228
  };
277
-
278
229
  (0, _react.useEffect)(function () {
279
230
  (0, _Analytics.analyticsTrack)('Viewed Profile Page', {
280
231
  utility_name: waterAuthorityName
281
- }); // @ts-ignore
282
-
232
+ });
233
+ // @ts-ignore
283
234
  var token = document.querySelector('[name=csrf-token]').content;
284
235
  _axios.default.defaults.headers.common['X-CSRF-TOKEN'] = token;
285
236
  _axios.default.defaults.headers.common['Content-Type'] = 'application/js';
286
-
287
237
  _axios.default.get('/profiles/resource').then(function (resp) {
288
238
  setParams(resp.data);
289
239
  var findLocale = localeOptions.find(function (e) {
@@ -505,6 +455,5 @@ var ProfilePage = function ProfilePage() {
505
455
  handleSubmit: handleSubmit
506
456
  }));
507
457
  };
508
-
509
458
  exports.ProfilePage = ProfilePage;
510
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9Qcm9maWxlUGFnZS50c3giXSwibmFtZXMiOlsiUHJvZmlsZVBhZ2UiLCJ0aW1lem9uZXNBcnJheSIsIm1vbWVudCIsInR6IiwibmFtZXMiLCJkYXRlVGltZUZvcm1hdE9wdGlvbnMiLCJ2YWx1ZSIsImxhYmVsIiwiZm9ybWF0IiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiaG91ciIsIm1pbnV0ZSIsImhvdXIxMiIsInRpbWV6b25lcyIsIm1hcCIsInQiLCJsb2NhbGVPcHRpb25zIiwibG9jYWxlIiwic2V0TG9jYWxlIiwiZGF0ZVRpbWVGb3JtYXQiLCJzZXREYXRlVGltZUZvcm1hdCIsInRpbWV6b25lIiwic2V0VGltZXpvbmUiLCJpbml0aWFsUGFyYW1zU3RhdGUiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwicGhvbmUiLCJlbWFpbCIsInRpbWVfem9uZSIsImRhdGVfdGltZV9mb3JtYXQiLCJ0ZWxlZ3JhbV9uYW1lIiwiaXNUZWxlZ3JhbU9wZW4iLCJzZXRJc1RlbGVncmFtT3BlbiIsInNob3dQYXNzd29yZE1vZGFsIiwic2V0U2hvd1Bhc3N3b3JkTW9kYWwiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsInNob3dTdWNjZXNzTWVzc2FnZSIsInNldFNob3dTdWNjZXNzTWVzc2FnZSIsInNob3dFcnJvck1lc3NhZ2UiLCJzZXRTaG93RXJyb3JNZXNzYWdlIiwic2hvdyIsInN0YXR1cyIsIm1lc3NhZ2UiLCJzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJwYXJhbXMiLCJzZXRQYXJhbXMiLCJoYW5kbGVPbkNoYW5nZSIsImUiLCJzdGFydHNXaXRoIiwicmVwbGFjZSIsInByZXZTdGF0ZSIsInRhcmdldCIsIm5hbWUiLCJnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcyIsIndhdGVyQXV0aG9yaXR5TmFtZSIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJzaG93VG9hc3QiLCJkYXRhIiwidXNlcm5hbWUiLCJlcnJvciIsInRvYXN0Iiwic3VjY2VzcyIsImkxOG4iLCJwb3NpdGlvbiIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwiYXhpb3MiLCJwdXQiLCJ1c2VyIiwidGhlbiIsInJlc3AiLCJlcnJvcnMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicCIsImlubmVySFRNTCIsImNsYXNzTGlzdCIsInJlbW92ZSIsIkpTT04iLCJwYXJzZSIsImZpbmRMb2NhbGUiLCJmaW5kIiwiZmluZERhdGVUaW1lRm9ybWF0IiwiZmluZFRpbWV6b25lIiwic2V0VGltZW91dCIsImZpbmRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInBhcmVudCIsImNsb3Nlc3QiLCJmaW5kSW5wdXQiLCJhZGQiLCJjYXRjaCIsInV0aWxpdHlfbmFtZSIsInRva2VuIiwiY29udGVudCIsImRlZmF1bHRzIiwiaGVhZGVycyIsImNvbW1vbiIsImdldCIsImFsZXJ0IiwidW5kZWZpbmVkIiwiRGF0ZSIsInRvTG9jYWxlRGF0ZVN0cmluZyIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUMvQixNQUFNQyxjQUFjLEdBQUdDLHdCQUFPQyxFQUFQLENBQVVDLEtBQVYsRUFBdkI7O0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsQ0FDNUI7QUFDRUMsSUFBQUEsS0FBSyxFQUFFLElBRFQ7QUFFRUMsSUFBQUEsS0FBSyxFQUFFLGVBRlQ7QUFHRUMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLEtBQUssRUFBRSxPQUREO0FBRU5DLE1BQUFBLEdBQUcsRUFB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SSxFQUFFLFFBQWQ7QUFBd0IsSUFBQSxTQUFTLEVBQUUsTUFBbkM7QUFBMkMsSUFBQSxRQUFRLEVBQUVQO0FBQXJELEtBQ0csQ0FBQ0EsVUFBRCxJQUNDLENBQUNFLGtCQURGLElBRUMsQ0FBQ0UsZ0JBRkYsSUFHQzBCLGNBQUtsRCxDQUFMLENBQU8sNkJBQVAsQ0FKSixFQUtHb0IsVUFBVSxJQUNULENBQUNFLGtCQURGLElBRUMsQ0FBQ0UsZ0JBRkYsSUFHQzBCLGNBQUtsRCxDQUFMLENBQU8saUNBQVAsQ0FSSixFQVNHc0Isa0JBQWtCLElBQUk0QixjQUFLbEQsQ0FBTCxDQUFPLDhCQUFQLENBVHpCLEVBVUd3QixnQkFBZ0IsSUFBSTBCLGNBQUtsRCxDQUFMLENBQU8sNEJBQVAsQ0FWdkIsQ0F2TUYsQ0FERixDQUZGLEVBeU5Ha0IsaUJBQWlCLGlCQUNoQiw2QkFBQyw0QkFBRDtBQUNFLElBQUEsS0FBSyxFQUFFO0FBQUEsYUFBTUMsb0JBQW9CLENBQUMsS0FBRCxDQUExQjtBQUFBLEtBRFQ7QUFFRSxJQUFBLElBQUksRUFBRSxnQkFBTSxDQUFFO0FBRmhCLElBMU5KLEVBK05HSCxjQUFjLGlCQUNiLDZCQUFDLDRCQUFEO0FBQ0UsSUFBQSxLQUFLLEVBQUU7QUFBQSxhQUFNQyxpQkFBaUIsQ0FBQyxLQUFELENBQXZCO0FBQUEsS0FEVDtBQUVFLElBQUEsY0FBYyxFQUFFZ0IsY0FGbEI7QUFHRSxJQUFBLFlBQVksRUFBRW1CO0FBSGhCLElBaE9KLENBREY7QUF5T0QsQ0F0ZE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJ3NyYy9jb21wb25lbnRzL0N1c3RvbUlucHV0cy9TZWxlY3QvU2VsZWN0JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBQYXNzd29yZE1vZGFsIH0gZnJvbSAnLi9QYXNzd29yZE1vZGFsL1Bhc3N3b3JkTW9kYWwnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgUGVuU3ZnIH0gZnJvbSAnLi9wZW4uc3ZnJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENhbmNlbCB9IGZyb20gJy4vY2FuY2VsLnN2Zyc7XG5pbXBvcnQgUGhvbmVJbnB1dCBmcm9tICdyZWFjdC1waG9uZS1pbnB1dC0yJztcbmltcG9ydCAncmVhY3QtcGhvbmUtaW5wdXQtMi9saWIvc3R5bGUuY3NzJztcbmltcG9ydCB7IFRlbGVncmFtTW9kYWwgfSBmcm9tICcuL1RlbGVncmFtTW9kYWwvVGVsZWdyYW1Nb2RhbCc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSAnLi9Db250YWluZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgYW5hbHl0aWNzVHJhY2sgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQW5hbHl0aWNzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSc7XG5cbmV4cG9ydCBjb25zdCBQcm9maWxlUGFnZSA9ICgpID0+IHtcbiAgY29uc3QgdGltZXpvbmVzQXJyYXkgPSBtb21lbnQudHoubmFtZXMoKTtcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXRPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiAndXMnLFxuICAgICAgbGFiZWw6ICdVbml0ZWQgU3RhdGVzJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ2V1JyxcbiAgICAgIGxhYmVsOiAnRXVyb3BlJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICAgIG1pbnV0ZTogJ251bWVyaWMnLFxuICAgICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IHRpbWV6b25lcyA9IHRpbWV6b25lc0FycmF5Lm1hcCgodCkgPT4ge1xuICAgIHJldHVybiB7IHZhbHVlOiB0LCBsYWJlbDogdCB9O1xuICB9KTtcblxuICBjb25zdCBsb2NhbGVPcHRpb25zID0gW1xuICAgIHsgdmFsdWU6ICdlbicsIGxhYmVsOiAnRW5nbGlzaCcgfSxcbiAgICB7IHZhbHVlOiAnZW5fdWsnLCBsYWJlbDogJ0VuZ2xpc2ggKFVLKScgfSxcbiAgICB7IHZhbHVlOiAnaGUnLCBsYWJlbDogJ9ei15HXqNeZ16onIH0sXG4gICAgeyB2YWx1ZTogJ2ZyJywgbGFiZWw6ICdGcmFuw6dhaXMnIH0sXG4gICAgeyB2YWx1ZTogJ2l0JywgbGFiZWw6ICdJdGFsaWFubycgfSxcbiAgXTtcblxuICBjb25zdCBbbG9jYWxlLCBzZXRMb2NhbGVdID0gdXNlU3RhdGU8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfT4obG9jYWxlT3B0aW9uc1swXSk7XG5cbiAgY29uc3QgW2RhdGVUaW1lRm9ybWF0LCBzZXREYXRlVGltZUZvcm1hdF0gPSB1c2VTdGF0ZTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGZvcm1hdDogb2JqZWN0O1xuICB9PihkYXRlVGltZUZvcm1hdE9wdGlvbnNbMF0pO1xuXG4gIGNvbnN0IFt0aW1lem9uZSwgc2V0VGltZXpvbmVdID0gdXNlU3RhdGU8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfT4odGltZXpvbmVzWzIwXSk7XG5cbiAgY29uc3QgaW5pdGlhbFBhcmFtc1N0YXRlID0ge1xuICAgIGZpcnN0X25hbWU6ICcnLFxuICAgIGxhc3RfbmFtZTogJycsXG4gICAgcGhvbmU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICB0aW1lX3pvbmU6ICcnLFxuICAgIGRhdGVfdGltZV9mb3JtYXQ6ICcnLFxuICAgIGxvY2FsZTogJycsXG4gICAgdGVsZWdyYW1fbmFtZTogJycsXG4gIH07XG5cbiAgY29uc3QgW2lzVGVsZWdyYW1PcGVuLCBzZXRJc1RlbGVncmFtT3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93UGFzc3dvcmRNb2RhbCwgc2V0U2hvd1Bhc3N3b3JkTW9kYWxdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc3VibWl0dGluZywgc2V0U3VibWl0dGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93U3VjY2Vzc01lc3NhZ2UsIHNldFNob3dTdWNjZXNzTWVzc2FnZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93RXJyb3JNZXNzYWdlLCBzZXRTaG93RXJyb3JNZXNzYWdlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSwgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlXSA9XG4gICAgdXNlU3RhdGU8e1xuICAgICAgc2hvdzogYm9vbGVhbjtcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH0+KHtcbiAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgc3RhdHVzOiAnJyxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgIH0pO1xuICBjb25zdCBbcGFyYW1zLCBzZXRQYXJhbXNdID0gdXNlU3RhdGU8e1xuICAgIGZpcnN0X25hbWU6IHN0cmluZztcbiAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICBwaG9uZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgdGltZV96b25lOiBzdHJpbmc7XG4gICAgZGF0ZV90aW1lX2Zvcm1hdDogc3RyaW5nO1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHRlbGVncmFtX25hbWU6IHN0cmluZztcbiAgfT4oaW5pdGlhbFBhcmFtc1N0YXRlKTtcblxuICBjb25zdCBoYW5kbGVPbkNoYW5nZSA9IChlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGUuc3RhcnRzV2l0aCgnOTcyMCcpKSB7XG4gICAgICAgIGUgPSBlLnJlcGxhY2UoLyg5NzIwKS9nLCAnOTcyJyk7XG4gICAgICB9XG4gICAgICBzZXRQYXJhbXMoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICBwaG9uZTogZSxcbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgbmFtZSB9ID0gZS50YXJnZXQ7XG4gICAgICBzZXRQYXJhbXMoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICBbbmFtZV06IHZhbHVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgZGF0ZV90aW1lX2Zvcm1hdDogZGF0ZVRpbWVGb3JtYXQudmFsdWUsXG4gICAgICBsb2NhbGU6IGxvY2FsZS52YWx1ZSxcbiAgICAgIHRpbWVfem9uZTogdGltZXpvbmUudmFsdWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCB3YXRlckF1dGhvcml0eU5hbWUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZGF0YS51c2VybmFtZTtcbiAgICBjb25zdCBlcnJvciA9IGRhdGEuZXJyb3I7XG4gICAgaWYgKGRhdGEuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIGkxOG4udChgbXlfcHJvZmlsZV90YWIudGVsZWdyYW1fbWVzc2FnZXMuJHtkYXRhLm1lc3NhZ2V9YCwge1xuICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgaTE4bi50KGBteV9wcm9maWxlX3RhYi50ZWxlZ3JhbV9tZXNzYWdlcy4ke2RhdGEubWVzc2FnZX1gLCB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgc2V0U3VibWl0dGluZyh0cnVlKTtcbiAgICBheGlvc1xuICAgICAgLnB1dCgnL3Byb2ZpbGVzJywgeyB1c2VyOiBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcygpIH0pXG4gICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICBpZiAocmVzcC5kYXRhLmVycm9ycyA9PT0gbnVsbCkge1xuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmVycm9yLW1lc3NhZ2UnKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IChwLmlubmVySFRNTCA9ICcnKSk7XG5cbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnZhbGlkLWZpZWxkJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiBwLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQtZmllbGQnKSk7XG4gICAgICAgICAgbGV0IHVzZXIgPSBKU09OLnBhcnNlKHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICBjb25zdCBmaW5kTG9jYWxlID0gbG9jYWxlT3B0aW9ucy5maW5kKChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmxvY2FsZSk7XG4gICAgICAgICAgY29uc3QgZmluZERhdGVUaW1lRm9ybWF0ID0gZGF0ZVRpbWVGb3JtYXRPcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci5kYXRlX3RpbWVfZm9ybWF0LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmluZFRpbWV6b25lID0gdGltZXpvbmVzLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci50aW1lX3pvbmUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHNldFBhcmFtcyh1c2VyKTtcbiAgICAgICAgICBzZXRMb2NhbGUoZmluZExvY2FsZSEpO1xuICAgICAgICAgIHNldERhdGVUaW1lRm9ybWF0KGZpbmREYXRlVGltZUZvcm1hdCEpO1xuICAgICAgICAgIHNldFRpbWV6b25lKGZpbmRUaW1lem9uZSEpO1xuICAgICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZXJyb3ItbWVzc2FnZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgocCkgPT4gKHAuaW5uZXJIVE1MID0gJycpKTtcbiAgICAgICAgICBsZXQgZXJyb3JzID0gcmVzcC5kYXRhLmVycm9ycztcbiAgICAgICAgICBmb3IgKGNvbnN0IGVycm9yIGluIGVycm9ycykge1xuICAgICAgICAgICAgbGV0IGZpbmRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgaW5wdXRbbmFtZT0nJHtlcnJvcn0nXWApO1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IGZpbmRFbGVtZW50IS5jbG9zZXN0KCcuZmllbGQnKTtcbiAgICAgICAgICAgIGxldCBmaW5kSW5wdXQgPSBwYXJlbnQhLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICAgICAgICBmaW5kSW5wdXQhLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQtZmllbGQnKTtcbiAgICAgICAgICAgIHBhcmVudCEucXVlcnlTZWxlY3RvcignLmVycm9yLW1lc3NhZ2UnKSEuaW5uZXJIVE1MID0gaTE4bi50KFxuICAgICAgICAgICAgICBgZGFzaGJvYXJkX3YyLnByb2ZpbGUuZXJyb3JzLiR7ZXJyb3J9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHNldFNob3dFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcoZmFsc2UpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBzZXRTaG93RXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgfSwgNjAwMCk7XG4gICAgICB9KTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFuYWx5dGljc1RyYWNrKCdWaWV3ZWQgUHJvZmlsZSBQYWdlJywge1xuICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHRva2VuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9Y3NyZi10b2tlbl0nKSEuY29udGVudDtcbiAgICBheGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbjtcbiAgICBheGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanMnO1xuICAgIGF4aW9zXG4gICAgICAuZ2V0KCcvcHJvZmlsZXMvcmVzb3VyY2UnKVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgc2V0UGFyYW1zKHJlc3AuZGF0YSk7XG4gICAgICAgIGNvbnN0IGZpbmRMb2NhbGUgPSBsb2NhbGVPcHRpb25zLmZpbmQoXG4gICAgICAgICAgKGUpID0+IGUudmFsdWUgPT09IHJlc3AuZGF0YS5sb2NhbGUsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZpbmREYXRlVGltZUZvcm1hdCA9IGRhdGVUaW1lRm9ybWF0T3B0aW9ucy5maW5kKFxuICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSByZXNwLmRhdGEuZGF0ZV90aW1lX2Zvcm1hdCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmluZFRpbWV6b25lID0gdGltZXpvbmVzLmZpbmQoXG4gICAgICAgICAgKGUpID0+IGUudmFsdWUgPT09IHJlc3AuZGF0YS50aW1lX3pvbmUsXG4gICAgICAgICk7XG4gICAgICAgIHNldExvY2FsZShmaW5kTG9jYWxlISk7XG4gICAgICAgIHNldERhdGVUaW1lRm9ybWF0KGZpbmREYXRlVGltZUZvcm1hdCEpO1xuICAgICAgICBzZXRUaW1lem9uZShmaW5kVGltZXpvbmUhKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiBhbGVydChlcnJvcikpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItdGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aXRsZScpfTwvZGl2PlxuICAgICAgPGZvcm0gYWN0aW9uPVwiXCIgb25TdWJtaXQ9eyhlKSA9PiBoYW5kbGVTdWJtaXQoZSl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5wZXJzb25hbC1kZXRhaWxzJyl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGVyc29uYWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmZpcnN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2ZpcnN0X25hbWUnfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMuZmlyc3RfbmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU9uQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5sYXN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2xhc3RfbmFtZSd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5sYXN0X25hbWV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVPbkNoYW5nZShlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZCBmaWVsZC0tcmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmVtYWlsJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICByZWFkT25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgIG5hbWU9eydlbWFpbCd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5lbWFpbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUucGhvbmUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxQaG9uZUlucHV0XG4gICAgICAgICAgICAgICAgY291bnRyeT17J2lsJ31cbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb249e2kxOG4udCgnY291bnRyaWVzJyl9XG4gICAgICAgICAgICAgICAgaW5wdXRDbGFzcz1cInBob25lLWlucHV0XCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz1cIm15LXBob25lXCJcbiAgICAgICAgICAgICAgICBidXR0b25DbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBkcm9wZG93bkNsYXNzPVwicGhvbmUtZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMucGhvbmV9XG4gICAgICAgICAgICAgICAgZW5hYmxlU2VhcmNoXG4gICAgICAgICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI9e2kxOG4udCgnc2VhcmNoJyl9XG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGVFZGl0YWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlT25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17eyBuYW1lOiAncGhvbmUnIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNoYW5nZS1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwodHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGVuU3ZnIHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBmaWxsPVwiI2YwMTM0Y1wiIC8+XG4gICAgICAgICAgICAgICAgeycgICd9XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLXBhc3N3b3JkJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZXR0aW5ncycpfTwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNldHRpbmdzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aW1lLXpvbmUnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldFRpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dGltZXpvbmVzfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRhdGUtdGltZS1mb3JtYXQnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17ZGF0ZVRpbWVGb3JtYXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldERhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGF0ZS10aW1lLWZvcm1hdCd9PlxuICAgICAgICAgICAgICAgIHtkYXRlVGltZUZvcm1hdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCBkYXRlVGltZUZvcm1hdC5mb3JtYXQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUubGFuZ3VhZ2UnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J215LWlucHV0J30+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17bG9jYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtsb2NhbGV9XG4gICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQgZmllbGQtLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAge3BhcmFtcy50ZWxlZ3JhbV9uYW1lID09PSAnJyAmJiAoXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwidGVsZWdyYW1cIiBvbkNsaWNrPXsoKSA9PiBzZXRJc1RlbGVncmFtT3Blbih0cnVlKX0+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5jb25uZWN0LXRvLXRlbGVncmFtJyl9XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7cGFyYW1zLnRlbGVncmFtX25hbWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGVsZWdyYW1fbmFtZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZW5Tdmcgd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGZpbGw9XCIjZjAxMzRjXCIgLz57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLW5hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXQnfT5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17J3RlbGVncmFtX25hbWUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy50ZWxlZ3JhbV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXRfX2NhbmNlbC1idXR0b24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbGVncmFtX25hbWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW5jZWwgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0gb3Blbid9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChgL3RlbGVncmFtL3NlbmRfdGVzdF9tZXNzYWdlLmpzb25gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS5zdGF0dXNbMF0udG9VcHBlckNhc2UoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS5zdGF0dXMuc3Vic3RyaW5nKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcC5kYXRhLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KHJlc3AuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGFsZXJ0KGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHshc2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLnNob3cgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc2VuZF90ZWxlZ3JhbV9tZXNzYWdlJyl9XG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZS5zaG93ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uuc3RhdHVzfVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9eydzdWJtaXQnfSBjbGFzc05hbWU9eydzYXZlJ30gZGlzYWJsZWQ9e3N1Ym1pdHRpbmd9PlxuICAgICAgICAgICAgeyFzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXQnKX1cbiAgICAgICAgICAgIHtzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXR0aW5nJyl9XG4gICAgICAgICAgICB7c2hvd1N1Y2Nlc3NNZXNzYWdlICYmIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc3VjY2VzcycpfVxuICAgICAgICAgICAge3Nob3dFcnJvck1lc3NhZ2UgJiYgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5lcnJvcicpfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cblxuICAgICAge3Nob3dQYXNzd29yZE1vZGFsICYmIChcbiAgICAgICAgPFBhc3N3b3JkTW9kYWxcbiAgICAgICAgICBjbG9zZT17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwoZmFsc2UpfVxuICAgICAgICAgIHNhdmU9eygpID0+IHt9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtpc1RlbGVncmFtT3BlbiAmJiAoXG4gICAgICAgIDxUZWxlZ3JhbU1vZGFsXG4gICAgICAgICAgY2xvc2U9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKGZhbHNlKX1cbiAgICAgICAgICBoYW5kbGVPbkNoYW5nZT17aGFuZGxlT25DaGFuZ2V9XG4gICAgICAgICAgaGFuZGxlU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcbiJdfQ==
459
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfU2VsZWN0IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1Bhc3N3b3JkTW9kYWwiLCJfcGVuIiwiX2NhbmNlbCIsIl9yZWFjdFBob25lSW5wdXQiLCJfVGVsZWdyYW1Nb2RhbCIsIl9heGlvcyIsIl9Db250YWluZXIiLCJfbW9tZW50VGltZXpvbmUiLCJfQW5hbHl0aWNzIiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RUb2FzdGlmeSIsIlByb2ZpbGVQYWdlIiwidGltZXpvbmVzQXJyYXkiLCJtb21lbnQiLCJ0eiIsIm5hbWVzIiwiZGF0ZVRpbWVGb3JtYXRPcHRpb25zIiwidmFsdWUiLCJsYWJlbCIsImZvcm1hdCIsIm1vbnRoIiwiZGF5IiwieWVhciIsImhvdXIiLCJtaW51dGUiLCJob3VyMTIiLCJ0aW1lem9uZXMiLCJtYXAiLCJ0IiwibG9jYWxlT3B0aW9ucyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJsb2NhbGUiLCJzZXRMb2NhbGUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImRhdGVUaW1lRm9ybWF0Iiwic2V0RGF0ZVRpbWVGb3JtYXQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInRpbWV6b25lIiwic2V0VGltZXpvbmUiLCJpbml0aWFsUGFyYW1zU3RhdGUiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwicGhvbmUiLCJlbWFpbCIsInRpbWVfem9uZSIsImRhdGVfdGltZV9mb3JtYXQiLCJ0ZWxlZ3JhbV9uYW1lIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc1RlbGVncmFtT3BlbiIsInNldElzVGVsZWdyYW1PcGVuIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2hvd1Bhc3N3b3JkTW9kYWwiLCJzZXRTaG93UGFzc3dvcmRNb2RhbCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzaG93U3VjY2Vzc01lc3NhZ2UiLCJzZXRTaG93U3VjY2Vzc01lc3NhZ2UiLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2Iiwic2hvd0Vycm9yTWVzc2FnZSIsInNldFNob3dFcnJvck1lc3NhZ2UiLCJfdXNlU3RhdGUxNyIsInNob3ciLCJzdGF0dXMiLCJtZXNzYWdlIiwiX3VzZVN0YXRlMTgiLCJzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwicGFyYW1zIiwic2V0UGFyYW1zIiwiaGFuZGxlT25DaGFuZ2UiLCJlIiwic3RhcnRzV2l0aCIsInJlcGxhY2UiLCJwcmV2U3RhdGUiLCJfb2JqZWN0U3ByZWFkMyIsIl9lJHRhcmdldCIsInRhcmdldCIsIm5hbWUiLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0UGFyYW1zV2l0aEFnZ3JlZ2F0ZWRWYWx1ZXMiLCJ3YXRlckF1dGhvcml0eU5hbWUiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJzaG93VG9hc3QiLCJkYXRhIiwidXNlcm5hbWUiLCJlcnJvciIsInRvYXN0Iiwic3VjY2VzcyIsImkxOG4iLCJjb25jYXQiLCJwb3NpdGlvbiIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwiYXhpb3MiLCJwdXQiLCJ1c2VyIiwidGhlbiIsInJlc3AiLCJlcnJvcnMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicCIsImlubmVySFRNTCIsImNsYXNzTGlzdCIsInJlbW92ZSIsIkpTT04iLCJwYXJzZSIsImZpbmRMb2NhbGUiLCJmaW5kIiwiZmluZERhdGVUaW1lRm9ybWF0IiwiZmluZFRpbWV6b25lIiwic2V0VGltZW91dCIsImZpbmRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInBhcmVudCIsImNsb3Nlc3QiLCJmaW5kSW5wdXQiLCJhZGQiLCJjYXRjaCIsInVzZUVmZmVjdCIsImFuYWx5dGljc1RyYWNrIiwidXRpbGl0eV9uYW1lIiwidG9rZW4iLCJjb250ZW50IiwiZGVmYXVsdHMiLCJoZWFkZXJzIiwiY29tbW9uIiwiZ2V0IiwiYWxlcnQiLCJjcmVhdGVFbGVtZW50IiwiQ29udGFpbmVyIiwiY2xhc3NOYW1lIiwiYWN0aW9uIiwib25TdWJtaXQiLCJ0eXBlIiwib25DaGFuZ2UiLCJyZWFkT25seSIsImNvdW50cnkiLCJsb2NhbGl6YXRpb24iLCJpbnB1dENsYXNzIiwiY29udGFpbmVyQ2xhc3MiLCJidXR0b25DbGFzcyIsImRyb3Bkb3duQ2xhc3MiLCJlbmFibGVTZWFyY2giLCJzZWFyY2hQbGFjZWhvbGRlciIsImNvdW50cnlDb2RlRWRpdGFibGUiLCJpbnB1dFByb3BzIiwib25DbGljayIsIlJlYWN0Q29tcG9uZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJmaWxsIiwiU2VsZWN0Iiwic2V0VmFsdWUiLCJvcHRpb25zIiwiY2FuY2VsVGV4dFdpZHRoIiwidW5kZWZpbmVkIiwiRGF0ZSIsInRvTG9jYWxlRGF0ZVN0cmluZyIsIkZyYWdtZW50IiwidG9VcHBlckNhc2UiLCJzdWJzdHJpbmciLCJkaXNhYmxlZCIsIlBhc3N3b3JkTW9kYWwiLCJjbG9zZSIsInNhdmUiLCJUZWxlZ3JhbU1vZGFsIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9Qcm9maWxlUGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdzcmMvY29tcG9uZW50cy9DdXN0b21JbnB1dHMvU2VsZWN0L1NlbGVjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgUGFzc3dvcmRNb2RhbCB9IGZyb20gJy4vUGFzc3dvcmRNb2RhbC9QYXNzd29yZE1vZGFsJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFBlblN2ZyB9IGZyb20gJy4vcGVuLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDYW5jZWwgfSBmcm9tICcuL2NhbmNlbC5zdmcnO1xuaW1wb3J0IFBob25lSW5wdXQgZnJvbSAncmVhY3QtcGhvbmUtaW5wdXQtMic7XG5pbXBvcnQgJ3JlYWN0LXBob25lLWlucHV0LTIvbGliL3N0eWxlLmNzcyc7XG5pbXBvcnQgeyBUZWxlZ3JhbU1vZGFsIH0gZnJvbSAnLi9UZWxlZ3JhbU1vZGFsL1RlbGVncmFtTW9kYWwnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJy4vQ29udGFpbmVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknO1xuXG5leHBvcnQgY29uc3QgUHJvZmlsZVBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IHRpbWV6b25lc0FycmF5ID0gbW9tZW50LnR6Lm5hbWVzKCk7XG4gIGNvbnN0IGRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IFtcbiAgICB7XG4gICAgICB2YWx1ZTogJ3VzJyxcbiAgICAgIGxhYmVsOiAnVW5pdGVkIFN0YXRlcycsXG4gICAgICBmb3JtYXQ6IHtcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgICAgbWludXRlOiAnbnVtZXJpYycsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgdmFsdWU6ICdldScsXG4gICAgICBsYWJlbDogJ0V1cm9wZScsXG4gICAgICBmb3JtYXQ6IHtcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIG1vbnRoOiAnbnVtZXJpYycsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCB0aW1lem9uZXMgPSB0aW1lem9uZXNBcnJheS5tYXAoKHQpID0+IHtcbiAgICByZXR1cm4geyB2YWx1ZTogdCwgbGFiZWw6IHQgfTtcbiAgfSk7XG5cbiAgY29uc3QgbG9jYWxlT3B0aW9ucyA9IFtcbiAgICB7IHZhbHVlOiAnZW4nLCBsYWJlbDogJ0VuZ2xpc2gnIH0sXG4gICAgeyB2YWx1ZTogJ2VuX3VrJywgbGFiZWw6ICdFbmdsaXNoIChVSyknIH0sXG4gICAgeyB2YWx1ZTogJ2hlJywgbGFiZWw6ICfXoteR16jXmdeqJyB9LFxuICAgIHsgdmFsdWU6ICdmcicsIGxhYmVsOiAnRnJhbsOnYWlzJyB9LFxuICAgIHsgdmFsdWU6ICdpdCcsIGxhYmVsOiAnSXRhbGlhbm8nIH0sXG4gIF07XG5cbiAgY29uc3QgW2xvY2FsZSwgc2V0TG9jYWxlXSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0+KGxvY2FsZU9wdGlvbnNbMF0pO1xuXG4gIGNvbnN0IFtkYXRlVGltZUZvcm1hdCwgc2V0RGF0ZVRpbWVGb3JtYXRdID0gdXNlU3RhdGU8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBmb3JtYXQ6IG9iamVjdDtcbiAgfT4oZGF0ZVRpbWVGb3JtYXRPcHRpb25zWzBdKTtcblxuICBjb25zdCBbdGltZXpvbmUsIHNldFRpbWV6b25lXSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0+KHRpbWV6b25lc1syMF0pO1xuXG4gIGNvbnN0IGluaXRpYWxQYXJhbXNTdGF0ZSA9IHtcbiAgICBmaXJzdF9uYW1lOiAnJyxcbiAgICBsYXN0X25hbWU6ICcnLFxuICAgIHBob25lOiAnJyxcbiAgICBlbWFpbDogJycsXG4gICAgdGltZV96b25lOiAnJyxcbiAgICBkYXRlX3RpbWVfZm9ybWF0OiAnJyxcbiAgICBsb2NhbGU6ICcnLFxuICAgIHRlbGVncmFtX25hbWU6ICcnLFxuICB9O1xuXG4gIGNvbnN0IFtpc1RlbGVncmFtT3Blbiwgc2V0SXNUZWxlZ3JhbU9wZW5dID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc2hvd1Bhc3N3b3JkTW9kYWwsIHNldFNob3dQYXNzd29yZE1vZGFsXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc2hvd1N1Y2Nlc3NNZXNzYWdlLCBzZXRTaG93U3VjY2Vzc01lc3NhZ2VdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc2hvd0Vycm9yTWVzc2FnZSwgc2V0U2hvd0Vycm9yTWVzc2FnZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UsIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZV0gPVxuICAgIHVzZVN0YXRlPHtcbiAgICAgIHNob3c6IGJvb2xlYW47XG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICB9Pih7XG4gICAgICBzaG93OiBmYWxzZSxcbiAgICAgIHN0YXR1czogJycsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICB9KTtcbiAgY29uc3QgW3BhcmFtcywgc2V0UGFyYW1zXSA9IHVzZVN0YXRlPHtcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gICAgcGhvbmU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHRpbWVfem9uZTogc3RyaW5nO1xuICAgIGRhdGVfdGltZV9mb3JtYXQ6IHN0cmluZztcbiAgICBsb2NhbGU6IHN0cmluZztcbiAgICB0ZWxlZ3JhbV9uYW1lOiBzdHJpbmc7XG4gIH0+KGluaXRpYWxQYXJhbXNTdGF0ZSk7XG5cbiAgY29uc3QgaGFuZGxlT25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChlLnN0YXJ0c1dpdGgoJzk3MjAnKSkge1xuICAgICAgICBlID0gZS5yZXBsYWNlKC8oOTcyMCkvZywgJzk3MicpO1xuICAgICAgfVxuICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgcGhvbmU6IGUsXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIG5hbWUgfSA9IGUudGFyZ2V0O1xuICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgW25hbWVdOiB2YWx1ZSxcbiAgICAgIH0pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0UGFyYW1zV2l0aEFnZ3JlZ2F0ZWRWYWx1ZXMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIGRhdGVfdGltZV9mb3JtYXQ6IGRhdGVUaW1lRm9ybWF0LnZhbHVlLFxuICAgICAgbG9jYWxlOiBsb2NhbGUudmFsdWUsXG4gICAgICB0aW1lX3pvbmU6IHRpbWV6b25lLnZhbHVlLFxuICAgIH07XG4gIH07XG5cbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG5cbiAgY29uc3Qgc2hvd1RvYXN0ID0gKGRhdGEpID0+IHtcbiAgICBjb25zdCB1c2VybmFtZSA9IGRhdGEudXNlcm5hbWU7XG4gICAgY29uc3QgZXJyb3IgPSBkYXRhLmVycm9yO1xuICAgIGlmIChkYXRhLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICB0b2FzdC5zdWNjZXNzKFxuICAgICAgICBpMThuLnQoYG15X3Byb2ZpbGVfdGFiLnRlbGVncmFtX21lc3NhZ2VzLiR7ZGF0YS5tZXNzYWdlfWAsIHtcbiAgICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG9hc3QuZXJyb3IoXG4gICAgICAgIGkxOG4udChgbXlfcHJvZmlsZV90YWIudGVsZWdyYW1fbWVzc2FnZXMuJHtkYXRhLm1lc3NhZ2V9YCwge1xuICAgICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgICB1c2VybmFtZTogdXNlcm5hbWUsXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgYXhpb3NcbiAgICAgIC5wdXQoJy9wcm9maWxlcycsIHsgdXNlcjogZ2V0UGFyYW1zV2l0aEFnZ3JlZ2F0ZWRWYWx1ZXMoKSB9KVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgaWYgKHJlc3AuZGF0YS5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5lcnJvci1tZXNzYWdlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiAocC5pbm5lckhUTUwgPSAnJykpO1xuXG4gICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuaW52YWxpZC1maWVsZCcpXG4gICAgICAgICAgICAuZm9yRWFjaCgocCkgPT4gcC5jbGFzc0xpc3QucmVtb3ZlKCdpbnZhbGlkLWZpZWxkJykpO1xuICAgICAgICAgIGxldCB1c2VyID0gSlNPTi5wYXJzZShyZXNwLmRhdGEudXNlcik7XG4gICAgICAgICAgY29uc3QgZmluZExvY2FsZSA9IGxvY2FsZU9wdGlvbnMuZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci5sb2NhbGUpO1xuICAgICAgICAgIGNvbnN0IGZpbmREYXRlVGltZUZvcm1hdCA9IGRhdGVUaW1lRm9ybWF0T3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgKGUpID0+IGUudmFsdWUgPT09IHVzZXIuZGF0ZV90aW1lX2Zvcm1hdCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGZpbmRUaW1lem9uZSA9IHRpbWV6b25lcy5maW5kKFxuICAgICAgICAgICAgKGUpID0+IGUudmFsdWUgPT09IHVzZXIudGltZV96b25lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBzZXRQYXJhbXModXNlcik7XG4gICAgICAgICAgc2V0TG9jYWxlKGZpbmRMb2NhbGUhKTtcbiAgICAgICAgICBzZXREYXRlVGltZUZvcm1hdChmaW5kRGF0ZVRpbWVGb3JtYXQhKTtcbiAgICAgICAgICBzZXRUaW1lem9uZShmaW5kVGltZXpvbmUhKTtcbiAgICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UodHJ1ZSk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgIH0sIDYwMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmVycm9yLW1lc3NhZ2UnKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IChwLmlubmVySFRNTCA9ICcnKSk7XG4gICAgICAgICAgbGV0IGVycm9ycyA9IHJlc3AuZGF0YS5lcnJvcnM7XG4gICAgICAgICAgZm9yIChjb25zdCBlcnJvciBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgIGxldCBmaW5kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGlucHV0W25hbWU9JyR7ZXJyb3J9J11gKTtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBmaW5kRWxlbWVudCEuY2xvc2VzdCgnLmZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgZmluZElucHV0ID0gcGFyZW50IS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICAgICAgZmluZElucHV0IS5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkLWZpZWxkJyk7XG4gICAgICAgICAgICBwYXJlbnQhLnF1ZXJ5U2VsZWN0b3IoJy5lcnJvci1tZXNzYWdlJykhLmlubmVySFRNTCA9IGkxOG4udChcbiAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmVycm9ycy4ke2Vycm9yfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBzZXRTaG93RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgc2V0U2hvd0Vycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIH0sIDYwMDApO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhbmFseXRpY3NUcmFjaygnVmlld2VkIFByb2ZpbGUgUGFnZScsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB0b2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPWNzcmYtdG9rZW5dJykhLmNvbnRlbnQ7XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ1gtQ1NSRi1UT0tFTiddID0gdG9rZW47XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzJztcbiAgICBheGlvc1xuICAgICAgLmdldCgnL3Byb2ZpbGVzL3Jlc291cmNlJylcbiAgICAgIC50aGVuKChyZXNwKSA9PiB7XG4gICAgICAgIHNldFBhcmFtcyhyZXNwLmRhdGEpO1xuICAgICAgICBjb25zdCBmaW5kTG9jYWxlID0gbG9jYWxlT3B0aW9ucy5maW5kKFxuICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSByZXNwLmRhdGEubG9jYWxlLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmaW5kRGF0ZVRpbWVGb3JtYXQgPSBkYXRlVGltZUZvcm1hdE9wdGlvbnMuZmluZChcbiAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gcmVzcC5kYXRhLmRhdGVfdGltZV9mb3JtYXQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZpbmRUaW1lem9uZSA9IHRpbWV6b25lcy5maW5kKFxuICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSByZXNwLmRhdGEudGltZV96b25lLFxuICAgICAgICApO1xuICAgICAgICBzZXRMb2NhbGUoZmluZExvY2FsZSEpO1xuICAgICAgICBzZXREYXRlVGltZUZvcm1hdChmaW5kRGF0ZVRpbWVGb3JtYXQhKTtcbiAgICAgICAgc2V0VGltZXpvbmUoZmluZFRpbWV6b25lISk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gYWxlcnQoZXJyb3IpKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyLXRpdGxlXCI+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGl0bGUnKX08L2Rpdj5cbiAgICAgIDxmb3JtIGFjdGlvbj1cIlwiIG9uU3VibWl0PXsoZSkgPT4gaGFuZGxlU3VibWl0KGUpfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUucGVyc29uYWwtZGV0YWlscycpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInBlcnNvbmFsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5maXJzdF9uYW1lJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgIG5hbWU9eydmaXJzdF9uYW1lJ31cbiAgICAgICAgICAgICAgICB2YWx1ZT17cGFyYW1zLmZpcnN0X25hbWV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVPbkNoYW5nZShlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUubGFzdF9uYW1lJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgIG5hbWU9eydsYXN0X25hbWUnfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMubGFzdF9uYW1lfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlT25DaGFuZ2UoZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQgZmllbGQtLXJlYWRvbmx5XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5lbWFpbCcpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcmVhZE9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm15LWlucHV0XCJcbiAgICAgICAgICAgICAgICBuYW1lPXsnZW1haWwnfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMuZW1haWx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnBob25lJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8UGhvbmVJbnB1dFxuICAgICAgICAgICAgICAgIGNvdW50cnk9eydpbCd9XG4gICAgICAgICAgICAgICAgbG9jYWxpemF0aW9uPXtpMThuLnQoJ2NvdW50cmllcycpfVxuICAgICAgICAgICAgICAgIGlucHV0Q2xhc3M9XCJwaG9uZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M9XCJteS1waG9uZVwiXG4gICAgICAgICAgICAgICAgYnV0dG9uQ2xhc3M9XCJkcm9wZG93blwiXG4gICAgICAgICAgICAgICAgZHJvcGRvd25DbGFzcz1cInBob25lLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17cGFyYW1zLnBob25lfVxuICAgICAgICAgICAgICAgIGVuYWJsZVNlYXJjaFxuICAgICAgICAgICAgICAgIHNlYXJjaFBsYWNlaG9sZGVyPXtpMThuLnQoJ3NlYXJjaCcpfVxuICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlRWRpdGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZU9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlucHV0UHJvcHM9e3sgbmFtZTogJ3Bob25lJyB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjaGFuZ2UtcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dQYXNzd29yZE1vZGFsKHRydWUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBlblN2ZyB3aWR0aD1cIjEycHhcIiBoZWlnaHQ9XCIxMnB4XCIgZmlsbD1cIiNmMDEzNGNcIiAvPlxuICAgICAgICAgICAgICAgIHsnICAnfVxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmNoYW5nZS1wYXNzd29yZCcpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc2V0dGluZ3MnKX08L2Rpdj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJzZXR0aW5nc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGltZS16b25lJyl9KlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIHNldFZhbHVlPXtzZXRUaW1lem9uZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aW1lem9uZX1cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3RpbWV6b25lc31cbiAgICAgICAgICAgICAgICAgIGNhbmNlbFRleHRXaWR0aFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5kYXRlLXRpbWUtZm9ybWF0Jyl9KlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e2RhdGVUaW1lRm9ybWF0T3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRlVGltZUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgIHNldFZhbHVlPXtzZXREYXRlVGltZUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgIGNhbmNlbFRleHRXaWR0aFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2RhdGUtdGltZS1mb3JtYXQnfT5cbiAgICAgICAgICAgICAgICB7ZGF0ZVRpbWVGb3JtYXQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgZGF0ZVRpbWVGb3JtYXQuZm9ybWF0KX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmxhbmd1YWdlJyl9KlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydteS1pbnB1dCd9PlxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e2xvY2FsZU9wdGlvbnN9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldExvY2FsZX1cbiAgICAgICAgICAgICAgICAgIGNhbmNlbFRleHRXaWR0aFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkIGZpZWxkLS1idXR0b25zXCI+XG4gICAgICAgICAgICAgIHtwYXJhbXMudGVsZWdyYW1fbmFtZSA9PT0gJycgJiYgKFxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInRlbGVncmFtXCIgb25DbGljaz17KCkgPT4gc2V0SXNUZWxlZ3JhbU9wZW4odHJ1ZSl9PlxuICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY29ubmVjdC10by10ZWxlZ3JhbScpfVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge3BhcmFtcy50ZWxlZ3JhbV9uYW1lICE9PSAnJyAmJiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnRlbGVncmFtX25hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc1RlbGVncmFtT3Blbih0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGVuU3ZnIHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBmaWxsPVwiI2YwMTM0Y1wiIC8+eycgJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmNoYW5nZS1uYW1lJyl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RlbGVncmFtLWV4aXN0aW5nLWlucHV0J30+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm15LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyd0ZWxlZ3JhbV9uYW1lJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMudGVsZWdyYW1fbmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J3RlbGVncmFtLWV4aXN0aW5nLWlucHV0X19jYW5jZWwtYnV0dG9uJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhcmFtcygocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWxlZ3JhbV9uYW1lOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2FuY2VsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J3RlbGVncmFtIG9wZW4nfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF4aW9zXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoYC90ZWxlZ3JhbS9zZW5kX3Rlc3RfbWVzc2FnZS5qc29uYClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGEuc3RhdHVzWzBdLnRvVXBwZXJDYXNlKCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGEuc3RhdHVzLnN1YnN0cmluZygxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3AuZGF0YS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDYwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdChyZXNwLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiBhbGVydChlcnJvcikpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7IXNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZS5zaG93ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnNlbmRfdGVsZWdyYW1fbWVzc2FnZScpfVxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uuc2hvdyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLnN0YXR1c31cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPXsnc3VibWl0J30gY2xhc3NOYW1lPXsnc2F2ZSd9IGRpc2FibGVkPXtzdWJtaXR0aW5nfT5cbiAgICAgICAgICAgIHshc3VibWl0dGluZyAmJlxuICAgICAgICAgICAgICAhc2hvd1N1Y2Nlc3NNZXNzYWdlICYmXG4gICAgICAgICAgICAgICFzaG93RXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc3VibWl0Jyl9XG4gICAgICAgICAgICB7c3VibWl0dGluZyAmJlxuICAgICAgICAgICAgICAhc2hvd1N1Y2Nlc3NNZXNzYWdlICYmXG4gICAgICAgICAgICAgICFzaG93RXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc3VibWl0dGluZycpfVxuICAgICAgICAgICAge3Nob3dTdWNjZXNzTWVzc2FnZSAmJiBpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnN1Y2Nlc3MnKX1cbiAgICAgICAgICAgIHtzaG93RXJyb3JNZXNzYWdlICYmIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZXJyb3InKX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG5cbiAgICAgIHtzaG93UGFzc3dvcmRNb2RhbCAmJiAoXG4gICAgICAgIDxQYXNzd29yZE1vZGFsXG4gICAgICAgICAgY2xvc2U9eygpID0+IHNldFNob3dQYXNzd29yZE1vZGFsKGZhbHNlKX1cbiAgICAgICAgICBzYXZlPXsoKSA9PiB7fX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7aXNUZWxlZ3JhbU9wZW4gJiYgKFxuICAgICAgICA8VGVsZWdyYW1Nb2RhbFxuICAgICAgICAgIGNsb3NlPXsoKSA9PiBzZXRJc1RlbGVncmFtT3BlbihmYWxzZSl9XG4gICAgICAgICAgaGFuZGxlT25DaGFuZ2U9e2hhbmRsZU9uQ2hhbmdlfVxuICAgICAgICAgIGhhbmRsZVN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBSixPQUFBO0FBQThELElBQUFLLElBQUEsR0FBQUwsT0FBQTtBQUFBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUc5RCxJQUFBTyxnQkFBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBUSxjQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBWSxVQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxXQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxjQUFBLEdBQUFkLE9BQUE7QUFFTyxJQUFNZSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0VBQy9CLElBQU1DLGNBQWMsR0FBR0MsdUJBQU0sQ0FBQ0MsRUFBRSxDQUFDQyxLQUFLLENBQUMsQ0FBQztFQUN4QyxJQUFNQyxxQkFBcUIsR0FBRyxDQUM1QjtJQUNFQyxLQUFLLEVBQUUsSUFBSTtJQUNYQyxLQUFLLEVBQUUsZUFBZTtJQUN0QkMsTUFBTSxFQUFFO01BQ05DLEtBQUssRUFBRSxPQUFPO01BQ2RDLEdBQUcsRUFBRSxTQUFTO01BQ2RDLElBQUksRUFBRSxTQUFTO01BQ2ZDLElBQUksRUFBRSxTQUFTO01BQ2ZDLE1BQU0sRUFBRTtJQUNWO0VBQ0YsQ0FBQyxFQUNEO0lBQ0VQLEtBQUssRUFBRSxJQUFJO0lBQ1hDLEtBQUssRUFBRSxRQUFRO0lBQ2ZDLE1BQU0sRUFBRTtNQUNORSxHQUFHLEVBQUUsU0FBUztNQUNkRCxLQUFLLEVBQUUsU0FBUztNQUNoQkUsSUFBSSxFQUFFLFNBQVM7TUFDZkMsSUFBSSxFQUFFLFNBQVM7TUFDZkMsTUFBTSxFQUFFLFNBQVM7TUFDakJDLE1BQU0sRUFBRTtJQUNWO0VBQ0YsQ0FBQyxDQUNGO0VBRUQsSUFBTUMsU0FBUyxHQUFHZCxjQUFjLENBQUNlLEdBQUcsQ0FBQyxVQUFDQyxDQUFDLEVBQUs7SUFDMUMsT0FBTztNQUFFWCxLQUFLLEVBQUVXLENBQUM7TUFBRVYsS0FBSyxFQUFFVTtJQUFFLENBQUM7RUFDL0IsQ0FBQyxDQUFDO0VBRUYsSUFBTUMsYUFBYSxHQUFHLENBQ3BCO0lBQUVaLEtBQUssRUFBRSxJQUFJO0lBQUVDLEtBQUssRUFBRTtFQUFVLENBQUMsRUFDakM7SUFBRUQsS0FBSyxFQUFFLE9BQU87SUFBRUMsS0FBSyxFQUFFO0VBQWUsQ0FBQyxFQUN6QztJQUFFRCxLQUFLLEVBQUUsSUFBSTtJQUFFQyxLQUFLLEVBQUU7RUFBUSxDQUFDLEVBQy9CO0lBQUVELEtBQUssRUFBRSxJQUFJO0lBQUVDLEtBQUssRUFBRTtFQUFXLENBQUMsRUFDbEM7SUFBRUQsS0FBSyxFQUFFLElBQUk7SUFBRUMsS0FBSyxFQUFFO0VBQVcsQ0FBQyxDQUNuQztFQUVELElBQUFZLFNBQUEsR0FBNEIsSUFBQUMsZUFBUSxFQUdqQ0YsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUFHLFVBQUEsT0FBQUMsZUFBQSxDQUFBQyxPQUFBLEVBQUFKLFNBQUE7SUFIYkssTUFBTSxHQUFBSCxVQUFBO0lBQUVJLFNBQVMsR0FBQUosVUFBQTtFQUt4QixJQUFBSyxVQUFBLEdBQTRDLElBQUFOLGVBQVEsRUFJakRmLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUFzQixVQUFBLE9BQUFMLGVBQUEsQ0FBQUMsT0FBQSxFQUFBRyxVQUFBO0lBSnJCRSxjQUFjLEdBQUFELFVBQUE7SUFBRUUsaUJBQWlCLEdBQUFGLFVBQUE7RUFNeEMsSUFBQUcsVUFBQSxHQUFnQyxJQUFBVixlQUFRLEVBR3JDTCxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFBQWdCLFVBQUEsT0FBQVQsZUFBQSxDQUFBQyxPQUFBLEVBQUFPLFVBQUE7SUFIVkUsUUFBUSxHQUFBRCxVQUFBO0lBQUVFLFdBQVcsR0FBQUYsVUFBQTtFQUs1QixJQUFNRyxrQkFBa0IsR0FBRztJQUN6QkMsVUFBVSxFQUFFLEVBQUU7SUFDZEMsU0FBUyxFQUFFLEVBQUU7SUFDYkMsS0FBSyxFQUFFLEVBQUU7SUFDVEMsS0FBSyxFQUFFLEVBQUU7SUFDVEMsU0FBUyxFQUFFLEVBQUU7SUFDYkMsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQmhCLE1BQU0sRUFBRSxFQUFFO0lBQ1ZpQixhQUFhLEVBQUU7RUFDakIsQ0FBQztFQUVELElBQUFDLFVBQUEsR0FBNEMsSUFBQXRCLGVBQVEsRUFBVSxLQUFLLENBQUM7SUFBQXVCLFVBQUEsT0FBQXJCLGVBQUEsQ0FBQUMsT0FBQSxFQUFBbUIsVUFBQTtJQUE3REUsY0FBYyxHQUFBRCxVQUFBO0lBQUVFLGlCQUFpQixHQUFBRixVQUFBO0VBQ3hDLElBQUFHLFVBQUEsR0FBa0QsSUFBQTFCLGVBQVEsRUFBVSxLQUFLLENBQUM7SUFBQTJCLFdBQUEsT0FBQXpCLGVBQUEsQ0FBQUMsT0FBQSxFQUFBdUIsVUFBQTtJQUFuRUUsaUJBQWlCLEdBQUFELFdBQUE7SUFBRUUsb0JBQW9CLEdBQUFGLFdBQUE7RUFDOUMsSUFBQUcsV0FBQSxHQUFvQyxJQUFBOUIsZUFBUSxFQUFVLEtBQUssQ0FBQztJQUFBK0IsV0FBQSxPQUFBN0IsZUFBQSxDQUFBQyxPQUFBLEVBQUEyQixXQUFBO0lBQXJERSxVQUFVLEdBQUFELFdBQUE7SUFBRUUsYUFBYSxHQUFBRixXQUFBO0VBQ2hDLElBQUFHLFdBQUEsR0FBb0QsSUFBQWxDLGVBQVEsRUFBVSxLQUFLLENBQUM7SUFBQW1DLFdBQUEsT0FBQWpDLGVBQUEsQ0FBQUMsT0FBQSxFQUFBK0IsV0FBQTtJQUFyRUUsa0JBQWtCLEdBQUFELFdBQUE7SUFBRUUscUJBQXFCLEdBQUFGLFdBQUE7RUFDaEQsSUFBQUcsV0FBQSxHQUFnRCxJQUFBdEMsZUFBUSxFQUFVLEtBQUssQ0FBQztJQUFBdUMsV0FBQSxPQUFBckMsZUFBQSxDQUFBQyxPQUFBLEVBQUFtQyxXQUFBO0lBQWpFRSxnQkFBZ0IsR0FBQUQsV0FBQTtJQUFFRSxtQkFBbUIsR0FBQUYsV0FBQTtFQUM1QyxJQUFBRyxXQUFBLEdBQ0UsSUFBQTFDLGVBQVEsRUFJTDtNQUNEMkMsSUFBSSxFQUFFLEtBQUs7TUFDWEMsTUFBTSxFQUFFLEVBQUU7TUFDVkMsT0FBTyxFQUFFO0lBQ1gsQ0FBQyxDQUFDO0lBQUFDLFdBQUEsT0FBQTVDLGVBQUEsQ0FBQUMsT0FBQSxFQUFBdUMsV0FBQTtJQVRHSywyQkFBMkIsR0FBQUQsV0FBQTtJQUFFRSw4QkFBOEIsR0FBQUYsV0FBQTtFQVVsRSxJQUFBRyxXQUFBLEdBQTRCLElBQUFqRCxlQUFRLEVBU2pDYyxrQkFBa0IsQ0FBQztJQUFBb0MsV0FBQSxPQUFBaEQsZUFBQSxDQUFBQyxPQUFBLEVBQUE4QyxXQUFBO0lBVGZFLE1BQU0sR0FBQUQsV0FBQTtJQUFFRSxTQUFTLEdBQUFGLFdBQUE7RUFXeEIsSUFBTUcsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxDQUFDLEVBQUs7SUFDNUIsSUFBSSxPQUFPQSxDQUFDLEtBQUssUUFBUSxFQUFFO01BQ3pCLElBQUlBLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCRCxDQUFDLEdBQUdBLENBQUMsQ0FBQ0UsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7TUFDakM7TUFDQUosU0FBUyxDQUFDLFVBQUNLLFNBQVM7UUFBQSxXQUFBQyxjQUFBLENBQUF2RCxPQUFBLE1BQUF1RCxjQUFBLENBQUF2RCxPQUFBLE1BQ2ZzRCxTQUFTO1VBQ1p4QyxLQUFLLEVBQUVxQztRQUFDO01BQUEsQ0FDUixDQUFDO0lBQ0wsQ0FBQyxNQUFNO01BQ0wsSUFBQUssU0FBQSxHQUF3QkwsQ0FBQyxDQUFDTSxNQUFNO1FBQXhCMUUsS0FBSyxHQUFBeUUsU0FBQSxDQUFMekUsS0FBSztRQUFFMkUsSUFBSSxHQUFBRixTQUFBLENBQUpFLElBQUk7TUFDbkJULFNBQVMsQ0FBQyxVQUFDSyxTQUFTO1FBQUEsV0FBQUMsY0FBQSxDQUFBdkQsT0FBQSxNQUFBdUQsY0FBQSxDQUFBdkQsT0FBQSxNQUNmc0QsU0FBUyxXQUFBSyxnQkFBQSxDQUFBM0QsT0FBQSxNQUNYMEQsSUFBSSxFQUFHM0UsS0FBSztNQUFBLENBQ2IsQ0FBQztJQUNMO0VBQ0YsQ0FBQztFQUVELElBQU02RSw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQTZCQSxDQUFBLEVBQVM7SUFDMUMsV0FBQUwsY0FBQSxDQUFBdkQsT0FBQSxNQUFBdUQsY0FBQSxDQUFBdkQsT0FBQSxNQUNLZ0QsTUFBTTtNQUNUL0IsZ0JBQWdCLEVBQUVaLGNBQWMsQ0FBQ3RCLEtBQUs7TUFDdENrQixNQUFNLEVBQUVBLE1BQU0sQ0FBQ2xCLEtBQUs7TUFDcEJpQyxTQUFTLEVBQUVQLFFBQVEsQ0FBQzFCO0lBQUs7RUFFN0IsQ0FBQztFQUVELElBQU04RSxrQkFBa0IsR0FBRyxJQUFBQyx1QkFBVyxFQUNwQyxVQUFDQyxLQUFLO0lBQUEsT0FBS0EsS0FBSyxDQUFDQyxXQUFXLENBQUNILGtCQUFrQjtFQUFBLENBQ2pELENBQUM7RUFFRCxJQUFNSSxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSUMsSUFBSSxFQUFLO0lBQzFCLElBQU1DLFFBQVEsR0FBR0QsSUFBSSxDQUFDQyxRQUFRO0lBQzlCLElBQU1DLEtBQUssR0FBR0YsSUFBSSxDQUFDRSxLQUFLO0lBQ3hCLElBQUlGLElBQUksQ0FBQ3pCLE1BQU0sS0FBSyxTQUFTLEVBQUU7TUFDN0I0QixvQkFBSyxDQUFDQyxPQUFPLENBQ1hDLGFBQUksQ0FBQzdFLENBQUMscUNBQUE4RSxNQUFBLENBQXFDTixJQUFJLENBQUN4QixPQUFPLEdBQUk7UUFDekR5QixRQUFRLEVBQVJBO01BQ0YsQ0FBQyxDQUFDLEVBQ0Y7UUFDRU0sUUFBUSxFQUFFO01BQ1osQ0FDRixDQUFDO0lBQ0gsQ0FBQyxNQUFNO01BQ0xKLG9CQUFLLENBQUNELEtBQUssQ0FDVEcsYUFBSSxDQUFDN0UsQ0FBQyxxQ0FBQThFLE1BQUEsQ0FBcUNOLElBQUksQ0FBQ3hCLE9BQU8sR0FBSTtRQUN6RDBCLEtBQUssRUFBRUEsS0FBSztRQUNaRCxRQUFRLEVBQUVBO01BQ1osQ0FBQyxDQUFDLEVBQ0Y7UUFDRU0sUUFBUSxFQUFFO01BQ1osQ0FDRixDQUFDO0lBQ0g7RUFDRixDQUFDO0VBRUQsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUl2QixDQUFDLEVBQUs7SUFDMUJBLENBQUMsQ0FBQ3dCLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCN0MsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNuQjhDLGNBQUssQ0FDRkMsR0FBRyxDQUFDLFdBQVcsRUFBRTtNQUFFQyxJQUFJLEVBQUVsQiw2QkFBNkIsQ0FBQztJQUFFLENBQUMsQ0FBQyxDQUMzRG1CLElBQUksQ0FBQyxVQUFDQyxJQUFJLEVBQUs7TUFDZCxJQUFJQSxJQUFJLENBQUNkLElBQUksQ0FBQ2UsTUFBTSxLQUFLLElBQUksRUFBRTtRQUM3QkMsUUFBUSxDQUNMQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNsQ0MsT0FBTyxDQUFDLFVBQUNDLENBQUM7VUFBQSxPQUFNQSxDQUFDLENBQUNDLFNBQVMsR0FBRyxFQUFFO1FBQUEsQ0FBQyxDQUFDO1FBRXJDSixRQUFRLENBQ0xDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQ2xDQyxPQUFPLENBQUMsVUFBQ0MsQ0FBQztVQUFBLE9BQUtBLENBQUMsQ0FBQ0UsU0FBUyxDQUFDQyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQUEsRUFBQztRQUN0RCxJQUFJVixJQUFJLEdBQUdXLElBQUksQ0FBQ0MsS0FBSyxDQUFDVixJQUFJLENBQUNkLElBQUksQ0FBQ1ksSUFBSSxDQUFDO1FBQ3JDLElBQU1hLFVBQVUsR0FBR2hHLGFBQWEsQ0FBQ2lHLElBQUksQ0FBQyxVQUFDekMsQ0FBQztVQUFBLE9BQUtBLENBQUMsQ0FBQ3BFLEtBQUssS0FBSytGLElBQUksQ0FBQzdFLE1BQU07UUFBQSxFQUFDO1FBQ3JFLElBQU00RixrQkFBa0IsR0FBRy9HLHFCQUFxQixDQUFDOEcsSUFBSSxDQUNuRCxVQUFDekMsQ0FBQztVQUFBLE9BQUtBLENBQUMsQ0FBQ3BFLEtBQUssS0FBSytGLElBQUksQ0FBQzdELGdCQUFnQjtRQUFBLENBQzFDLENBQUM7UUFDRCxJQUFNNkUsWUFBWSxHQUFHdEcsU0FBUyxDQUFDb0csSUFBSSxDQUNqQyxVQUFDekMsQ0FBQztVQUFBLE9BQUtBLENBQUMsQ0FBQ3BFLEtBQUssS0FBSytGLElBQUksQ0FBQzlELFNBQVM7UUFBQSxDQUNuQyxDQUFDO1FBRURpQyxTQUFTLENBQUM2QixJQUFJLENBQUM7UUFDZjVFLFNBQVMsQ0FBQ3lGLFVBQVcsQ0FBQztRQUN0QnJGLGlCQUFpQixDQUFDdUYsa0JBQW1CLENBQUM7UUFDdENuRixXQUFXLENBQUNvRixZQUFhLENBQUM7UUFDMUI1RCxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDM0I2RCxVQUFVLENBQUMsWUFBTTtVQUNmN0QscUJBQXFCLENBQUMsS0FBSyxDQUFDO1FBQzlCLENBQUMsRUFBRSxJQUFJLENBQUM7TUFDVixDQUFDLE1BQU07UUFDTGdELFFBQVEsQ0FDTEMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FDbENDLE9BQU8sQ0FBQyxVQUFDQyxDQUFDO1VBQUEsT0FBTUEsQ0FBQyxDQUFDQyxTQUFTLEdBQUcsRUFBRTtRQUFBLENBQUMsQ0FBQztRQUNyQyxJQUFJTCxNQUFNLEdBQUdELElBQUksQ0FBQ2QsSUFBSSxDQUFDZSxNQUFNO1FBQzdCLEtBQUssSUFBTWIsS0FBSyxJQUFJYSxNQUFNLEVBQUU7VUFDMUIsSUFBSWUsV0FBVyxHQUFHZCxRQUFRLENBQUNlLGFBQWEsZ0JBQUF6QixNQUFBLENBQWdCSixLQUFLLE9BQUksQ0FBQztVQUNsRSxJQUFJOEIsTUFBTSxHQUFHRixXQUFXLENBQUVHLE9BQU8sQ0FBQyxRQUFRLENBQUM7VUFDM0MsSUFBSUMsU0FBUyxHQUFHRixNQUFNLENBQUVELGFBQWEsQ0FBQyxPQUFPLENBQUM7VUFDOUNHLFNBQVMsQ0FBRWIsU0FBUyxDQUFDYyxHQUFHLENBQUMsZUFBZSxDQUFDO1VBQ3pDSCxNQUFNLENBQUVELGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFFWCxTQUFTLEdBQUdmLGFBQUksQ0FBQzdFLENBQUMsZ0NBQUE4RSxNQUFBLENBQzFCSixLQUFLLENBQ3RDLENBQUM7UUFDSDtRQUNBbEMscUJBQXFCLENBQUMsS0FBSyxDQUFDO01BQzlCO01BRUFKLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQ0R3RSxLQUFLLENBQUMsVUFBQ2xDLEtBQUssRUFBSztNQUNoQjlCLG1CQUFtQixDQUFDLElBQUksQ0FBQztNQUN6QkoscUJBQXFCLENBQUMsS0FBSyxDQUFDO01BQzVCSixhQUFhLENBQUMsS0FBSyxDQUFDO01BQ3BCaUUsVUFBVSxDQUFDLFlBQU07UUFDZnpELG1CQUFtQixDQUFDLEtBQUssQ0FBQztNQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQ1YsQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELElBQUFpRSxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFBQyx5QkFBYyxFQUFDLHFCQUFxQixFQUFFO01BQ3BDQyxZQUFZLEVBQUU1QztJQUNoQixDQUFDLENBQUM7SUFDRjtJQUNBLElBQU02QyxLQUFLLEdBQUd4QixRQUFRLENBQUNlLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFFVSxPQUFPO0lBQ2xFL0IsY0FBSyxDQUFDZ0MsUUFBUSxDQUFDQyxPQUFPLENBQUNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBR0osS0FBSztJQUNyRDlCLGNBQUssQ0FBQ2dDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsZ0JBQWdCO0lBQ2hFbEMsY0FBSyxDQUNGbUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQ3pCaEMsSUFBSSxDQUFDLFVBQUNDLElBQUksRUFBSztNQUNkL0IsU0FBUyxDQUFDK0IsSUFBSSxDQUFDZCxJQUFJLENBQUM7TUFDcEIsSUFBTXlCLFVBQVUsR0FBR2hHLGFBQWEsQ0FBQ2lHLElBQUksQ0FDbkMsVUFBQ3pDLENBQUM7UUFBQSxPQUFLQSxDQUFDLENBQUNwRSxLQUFLLEtBQUtpRyxJQUFJLENBQUNkLElBQUksQ0FBQ2pFLE1BQU07TUFBQSxDQUNyQyxDQUFDO01BQ0QsSUFBTTRGLGtCQUFrQixHQUFHL0cscUJBQXFCLENBQUM4RyxJQUFJLENBQ25ELFVBQUN6QyxDQUFDO1FBQUEsT0FBS0EsQ0FBQyxDQUFDcEUsS0FBSyxLQUFLaUcsSUFBSSxDQUFDZCxJQUFJLENBQUNqRCxnQkFBZ0I7TUFBQSxDQUMvQyxDQUFDO01BQ0QsSUFBTTZFLFlBQVksR0FBR3RHLFNBQVMsQ0FBQ29HLElBQUksQ0FDakMsVUFBQ3pDLENBQUM7UUFBQSxPQUFLQSxDQUFDLENBQUNwRSxLQUFLLEtBQUtpRyxJQUFJLENBQUNkLElBQUksQ0FBQ2xELFNBQVM7TUFBQSxDQUN4QyxDQUFDO01BQ0RkLFNBQVMsQ0FBQ3lGLFVBQVcsQ0FBQztNQUN0QnJGLGlCQUFpQixDQUFDdUYsa0JBQW1CLENBQUM7TUFDdENuRixXQUFXLENBQUNvRixZQUFhLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQ0RRLEtBQUssQ0FBQyxVQUFDbEMsS0FBSztNQUFBLE9BQUs0QyxLQUFLLENBQUM1QyxLQUFLLENBQUM7SUFBQSxFQUFDO0VBQ25DLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixvQkFDRTVHLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQzdJLFVBQUEsQ0FBQThJLFNBQVMscUJBQ1IxSixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFjLEdBQUU1QyxhQUFJLENBQUM3RSxDQUFDLENBQUMsNEJBQTRCLENBQU8sQ0FBQyxlQUMxRWxDLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBTUcsTUFBTSxFQUFDLEVBQUU7SUFBQ0MsUUFBUSxFQUFFLFNBQUFBLFNBQUNsRSxDQUFDO01BQUEsT0FBS3VCLFlBQVksQ0FBQ3ZCLENBQUMsQ0FBQztJQUFBO0VBQUMsZ0JBQy9DM0YsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBUyxnQkFDdEIzSixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFPLEdBQ25CNUMsYUFBSSxDQUFDN0UsQ0FBQyxDQUFDLHVDQUF1QyxDQUM1QyxDQUFDLGVBQ05sQyxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQVNFLFNBQVMsRUFBQztFQUFVLGdCQUMzQjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sZ0JBQ3BCM0osTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBTyxHQUNuQjVDLGFBQUksQ0FBQzdFLENBQUMsQ0FBQyxpQ0FBaUMsQ0FDdEMsQ0FBQyxlQUNObEMsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUNFSyxJQUFJLEVBQUMsTUFBTTtJQUNYSCxTQUFTLEVBQUMsVUFBVTtJQUNwQnpELElBQUksRUFBRSxZQUFhO0lBQ25CM0UsS0FBSyxFQUFFaUUsTUFBTSxDQUFDcEMsVUFBVztJQUN6QjJHLFFBQVEsRUFBRSxTQUFBQSxTQUFDcEUsQ0FBQztNQUFBLE9BQUtELGNBQWMsQ0FBQ0MsQ0FBQyxDQUFDO0lBQUE7RUFBQyxDQUNwQyxDQUFDLGVBQ0YzRixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUdFLFNBQVMsRUFBRTtFQUFnQixDQUFJLENBQy9CLENBQUMsZUFDTjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sZ0JBQ3BCM0osTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBTyxHQUNuQjVDLGFBQUksQ0FBQzdFLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FDckMsQ0FBQyxlQUNObEMsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUNFSyxJQUFJLEVBQUMsTUFBTTtJQUNYSCxTQUFTLEVBQUMsVUFBVTtJQUNwQnpELElBQUksRUFBRSxXQUFZO0lBQ2xCM0UsS0FBSyxFQUFFaUUsTUFBTSxDQUFDbkMsU0FBVTtJQUN4QjBHLFFBQVEsRUFBRSxTQUFBQSxTQUFDcEUsQ0FBQztNQUFBLE9BQUtELGNBQWMsQ0FBQ0MsQ0FBQyxDQUFDO0lBQUE7RUFBQyxDQUNwQyxDQUFDLGVBQ0YzRixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUdFLFNBQVMsRUFBRTtFQUFnQixDQUFJLENBQy9CLENBQUMsZUFDTjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQXVCLGdCQUNwQzNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sR0FDbkI1QyxhQUFJLENBQUM3RSxDQUFDLENBQUMsNEJBQTRCLENBQ2pDLENBQUMsZUFDTmxDLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFDRU8sUUFBUSxFQUFFLElBQUs7SUFDZkYsSUFBSSxFQUFDLE1BQU07SUFDWEgsU0FBUyxFQUFDLFVBQVU7SUFDcEJ6RCxJQUFJLEVBQUUsT0FBUTtJQUNkM0UsS0FBSyxFQUFFaUUsTUFBTSxDQUFDakM7RUFBTSxDQUNyQixDQUFDLGVBQ0Z2RCxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUdFLFNBQVMsRUFBRTtFQUFnQixDQUFJLENBQy9CLENBQUMsZUFDTjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sZ0JBQ3BCM0osTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBTyxHQUNuQjVDLGFBQUksQ0FBQzdFLENBQUMsQ0FBQyw0QkFBNEIsQ0FDakMsQ0FBQyxlQUNObEMsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQSxDQUFDaEosZ0JBQUEsQ0FBQStCLE9BQVU7SUFDVHlILE9BQU8sRUFBRSxJQUFLO0lBQ2RDLFlBQVksRUFBRW5ELGFBQUksQ0FBQzdFLENBQUMsQ0FBQyxXQUFXLENBQUU7SUFDbENpSSxVQUFVLEVBQUMsYUFBYTtJQUN4QkMsY0FBYyxFQUFDLFVBQVU7SUFDekJDLFdBQVcsRUFBQyxVQUFVO0lBQ3RCQyxhQUFhLEVBQUMsZ0JBQWdCO0lBQzlCL0ksS0FBSyxFQUFFaUUsTUFBTSxDQUFDbEMsS0FBTTtJQUNwQmlILFlBQVk7SUFDWkMsaUJBQWlCLEVBQUV6RCxhQUFJLENBQUM3RSxDQUFDLENBQUMsUUFBUSxDQUFFO0lBQ3BDdUksbUJBQW1CLEVBQUUsS0FBTTtJQUMzQlYsUUFBUSxFQUFFLFNBQUFBLFNBQUN4SSxLQUFLLEVBQUs7TUFDbkJtRSxjQUFjLENBQUNuRSxLQUFLLENBQUM7SUFDdkIsQ0FBRTtJQUNGbUosVUFBVSxFQUFFO01BQUV4RSxJQUFJLEVBQUU7SUFBUTtFQUFFLENBQy9CLENBQUMsZUFDRmxHLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBR0UsU0FBUyxFQUFFO0VBQWdCLENBQUksQ0FDL0IsQ0FBQyxlQUNOM0osTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBTyxnQkFDcEIzSixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQ0VFLFNBQVMsRUFBQyxpQkFBaUI7SUFDM0JnQixPQUFPLEVBQUUsU0FBQUEsUUFBQTtNQUFBLE9BQU16RyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7SUFBQTtFQUFDLGdCQUUxQ2xFLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQ2xKLElBQUEsQ0FBQXFLLGNBQU07SUFBQ0MsS0FBSyxFQUFDLE1BQU07SUFBQ0MsTUFBTSxFQUFDLE1BQU07SUFBQ0MsSUFBSSxFQUFDO0VBQVMsQ0FBRSxDQUFDLEVBQ25ELElBQUksRUFDSmhFLGFBQUksQ0FBQzdFLENBQUMsQ0FBQyxzQ0FBc0MsQ0FDM0MsQ0FDRixDQUNFLENBQUMsZUFDVmxDLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sR0FBRTVDLGFBQUksQ0FBQzdFLENBQUMsQ0FBQywrQkFBK0IsQ0FBTyxDQUFDLGVBQ3RFbEMsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFTRSxTQUFTLEVBQUM7RUFBVSxnQkFDM0IzSixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFPLGdCQUNwQjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sR0FDbkI1QyxhQUFJLENBQUM3RSxDQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxHQUN2QyxDQUFDLGVBQ05sQyxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFVLGdCQUN2QjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQ3RKLE9BQUEsQ0FBQTZLLE1BQU07SUFDTEMsUUFBUSxFQUFFL0gsV0FBWTtJQUN0QjNCLEtBQUssRUFBRTBCLFFBQVM7SUFDaEJpSSxPQUFPLEVBQUVsSixTQUFVO0lBQ25CbUosZUFBZTtFQUFBLENBQ2hCLENBQ0UsQ0FDRixDQUFDLGVBQ05uTCxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFPLGdCQUNwQjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sR0FDbkI1QyxhQUFJLENBQUM3RSxDQUFDLENBQUMsdUNBQXVDLENBQUMsRUFBQyxHQUM5QyxDQUFDLGVBQ05sQyxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFVLGdCQUN2QjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQ3RKLE9BQUEsQ0FBQTZLLE1BQU07SUFDTEUsT0FBTyxFQUFFNUoscUJBQXNCO0lBQy9CQyxLQUFLLEVBQUVzQixjQUFlO0lBQ3RCb0ksUUFBUSxFQUFFbkksaUJBQWtCO0lBQzVCcUksZUFBZTtFQUFBLENBQ2hCLENBQ0UsQ0FBQyxlQUNObkwsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUU7RUFBbUIsR0FDaEM5RyxjQUFjLEtBQUt1SSxTQUFTLElBQzNCLElBQUlDLElBQUksQ0FBQyxDQUFDLENBQUNDLGtCQUFrQixDQUFDLE9BQU8sRUFBRXpJLGNBQWMsQ0FBQ3BCLE1BQU0sQ0FDM0QsQ0FDRixDQUFDLGVBQ056QixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFPLGdCQUNwQjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFDO0VBQU8sR0FDbkI1QyxhQUFJLENBQUM3RSxDQUFDLENBQUMsK0JBQStCLENBQUMsRUFBQyxHQUN0QyxDQUFDLGVBQ05sQyxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBRTtFQUFXLGdCQUN6QjNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQ3RKLE9BQUEsQ0FBQTZLLE1BQU07SUFDTEUsT0FBTyxFQUFFL0ksYUFBYztJQUN2QlosS0FBSyxFQUFFa0IsTUFBTztJQUNkd0ksUUFBUSxFQUFFdkksU0FBVTtJQUNwQnlJLGVBQWU7RUFBQSxDQUNoQixDQUNFLENBQ0YsQ0FBQyxlQUNObkwsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBc0IsR0FDbENuRSxNQUFNLENBQUM5QixhQUFhLEtBQUssRUFBRSxpQkFDMUIxRCxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUdFLFNBQVMsRUFBQyxVQUFVO0lBQUNnQixPQUFPLEVBQUUsU0FBQUEsUUFBQTtNQUFBLE9BQU03RyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFBQTtFQUFDLEdBQzVEaUQsYUFBSSxDQUFDN0UsQ0FBQyxDQUFDLDBDQUEwQyxDQUNqRCxDQUNKLEVBQ0FzRCxNQUFNLENBQUM5QixhQUFhLEtBQUssRUFBRSxpQkFDMUIxRCxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBLENBQUF6SixNQUFBLENBQUF3QyxPQUFBLENBQUErSSxRQUFBLHFCQUNFdkwsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBTyxnQkFDcEIzSixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFPLEdBQ25CNUMsYUFBSSxDQUFDN0UsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLGVBQzdDbEMsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUNFRSxTQUFTLEVBQUMsT0FBTztJQUNqQmdCLE9BQU8sRUFBRSxTQUFBQSxRQUFBO01BQUEsT0FBTTdHLGlCQUFpQixDQUFDLElBQUksQ0FBQztJQUFBO0VBQUMsZ0JBRXZDOUQsTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQSxDQUFDbEosSUFBQSxDQUFBcUssY0FBTTtJQUFDQyxLQUFLLEVBQUMsTUFBTTtJQUFDQyxNQUFNLEVBQUMsTUFBTTtJQUFDQyxJQUFJLEVBQUM7RUFBUyxDQUFFLENBQUMsRUFBQyxHQUFHLEVBQ3ZEaEUsYUFBSSxDQUFDN0UsQ0FBQyxDQUFDLGtDQUFrQyxDQUN2QyxDQUNGLENBQUMsZUFDTmxDLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFBS0UsU0FBUyxFQUFFO0VBQTBCLGdCQUN4QzNKLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFDRU8sUUFBUSxFQUFFLElBQUs7SUFDZkYsSUFBSSxFQUFDLE1BQU07SUFDWEgsU0FBUyxFQUFDLFVBQVU7SUFDcEJ6RCxJQUFJLEVBQUUsZUFBZ0I7SUFDdEIzRSxLQUFLLEVBQUVpRSxNQUFNLENBQUM5QjtFQUFjLENBQzdCLENBQUMsZUFDRjFELE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUE7SUFDRUUsU0FBUyxFQUFFLHdDQUF5QztJQUNwRGdCLE9BQU8sRUFBRSxTQUFBQSxRQUFDaEYsQ0FBQyxFQUFLO01BQ2RGLFNBQVMsQ0FBQyxVQUFDSyxTQUFTO1FBQUEsV0FBQUMsY0FBQSxDQUFBdkQsT0FBQSxNQUFBdUQsY0FBQSxDQUFBdkQsT0FBQSxNQUNmc0QsU0FBUztVQUNacEMsYUFBYSxFQUFFO1FBQUU7TUFBQSxDQUNqQixDQUFDO0lBQ0w7RUFBRSxnQkFFRjFELE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQ2pKLE9BQUEsQ0FBQW9LLGNBQU0sTUFBRSxDQUNOLENBQ0YsQ0FBQyxlQUNONUssTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUFHRSxTQUFTLEVBQUU7RUFBZ0IsQ0FBSSxDQUMvQixDQUFDLGVBQ04zSixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBLDJCQUNFekosTUFBQSxDQUFBd0MsT0FBQSxDQUFBaUgsYUFBQTtJQUNFRSxTQUFTLEVBQUUsZUFBZ0I7SUFDM0JnQixPQUFPLEVBQUUsU0FBQUEsUUFBQSxFQUFNO01BQ2J2RCxjQUFLLENBQ0ZtQyxHQUFHLG1DQUFtQyxDQUFDLENBQ3ZDaEMsSUFBSSxDQUFDLFVBQUNDLElBQUksRUFBSztRQUNkbkMsOEJBQThCLENBQUM7VUFDN0JKLE1BQU0sRUFDSnVDLElBQUksQ0FBQ2QsSUFBSSxDQUFDekIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDdUcsV0FBVyxDQUFDLENBQUMsR0FDakNoRSxJQUFJLENBQUNkLElBQUksQ0FBQ3pCLE1BQU0sQ0FBQ3dHLFNBQVMsQ0FBQyxDQUFDLENBQUM7VUFDL0J2RyxPQUFPLEVBQUVzQyxJQUFJLENBQUNkLElBQUksQ0FBQ3hCLE9BQU87VUFDMUJGLElBQUksRUFBRTtRQUNSLENBQUMsQ0FBQztRQUNGdUQsVUFBVSxDQUFDLFlBQU07VUFDZmxELDhCQUE4QixDQUFDO1lBQzdCSixNQUFNLEVBQUUsRUFBRTtZQUNWQyxPQUFPLEVBQUUsRUFBRTtZQUNYRixJQUFJLEVBQUU7VUFDUixDQUFDLENBQUM7UUFDSixDQUFDLEVBQUUsSUFBSSxDQUFDO1FBQ1J5QixTQUFTLENBQUNlLElBQUksQ0FBQ2QsSUFBSSxDQUFDO01BQ3RCLENBQUMsQ0FBQyxDQUNEb0MsS0FBSyxDQUFDLFVBQUNsQyxLQUFLO1FBQUEsT0FBSzRDLEtBQUssQ0FBQzVDLEtBQUssQ0FBQztNQUFBLEVBQUM7SUFDbkM7RUFBRSxHQUVELENBQUN4QiwyQkFBMkIsQ0FBQ0osSUFBSSxJQUNoQytCLGFBQUksQ0FBQzdFLENBQUMsQ0FBQyw0Q0FBNEMsQ0FBQyxFQUNyRGtELDJCQUEyQixDQUFDSixJQUFJLElBQy9CSSwyQkFBMkIsQ0FBQ0gsTUFDN0IsQ0FDQSxDQUNMLENBRUQsQ0FDRSxDQUFDLGVBQ1ZqRixNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBO0lBQVFLLElBQUksRUFBRSxRQUFTO0lBQUNILFNBQVMsRUFBRSxNQUFPO0lBQUMrQixRQUFRLEVBQUVySDtFQUFXLEdBQzdELENBQUNBLFVBQVUsSUFDVixDQUFDSSxrQkFBa0IsSUFDbkIsQ0FBQ0ksZ0JBQWdCLElBQ2pCa0MsYUFBSSxDQUFDN0UsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEVBQ3RDbUMsVUFBVSxJQUNULENBQUNJLGtCQUFrQixJQUNuQixDQUFDSSxnQkFBZ0IsSUFDakJrQyxhQUFJLENBQUM3RSxDQUFDLENBQUMsaUNBQWlDLENBQUMsRUFDMUN1QyxrQkFBa0IsSUFBSXNDLGFBQUksQ0FBQzdFLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUM1RDJDLGdCQUFnQixJQUFJa0MsYUFBSSxDQUFDN0UsQ0FBQyxDQUFDLDRCQUE0QixDQUNsRCxDQUNMLENBQ0QsQ0FBQyxFQUVOK0IsaUJBQWlCLGlCQUNoQmpFLE1BQUEsQ0FBQXdDLE9BQUEsQ0FBQWlILGFBQUEsQ0FBQ25KLGNBQUEsQ0FBQXFMLGFBQWE7SUFDWkMsS0FBSyxFQUFFLFNBQUFBLE1BQUE7TUFBQSxPQUFNMUgsb0JBQW9CLENBQUMsS0FBSyxDQUFDO0lBQUEsQ0FBQztJQUN6QzJILElBQUksRUFBRSxTQUFBQSxLQUFBLEVBQU0sQ0FBQztFQUFFLENBQ2hCLENBQ0YsRUFDQWhJLGNBQWMsaUJBQ2I3RCxNQUFBLENBQUF3QyxPQUFBLENBQUFpSCxhQUFBLENBQUMvSSxjQUFBLENBQUFvTCxhQUFhO0lBQ1pGLEtBQUssRUFBRSxTQUFBQSxNQUFBO01BQUEsT0FBTTlILGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUFBLENBQUM7SUFDdEM0QixjQUFjLEVBQUVBLGNBQWU7SUFDL0J3QixZQUFZLEVBQUVBO0VBQWEsQ0FDNUIsQ0FFTSxDQUFDO0FBRWhCLENBQUM7QUFBQzZFLE9BQUEsQ0FBQTlLLFdBQUEsR0FBQUEsV0FBQSJ9
@@ -1,61 +1,41 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.TelegramModal = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
13
-
14
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _PopupModal = require("components/PopupModal/PopupModal");
19
-
20
13
  var _i18n = _interopRequireDefault(require("../../../utilities/i18n"));
21
-
22
14
  var _device = require("@svgr/webpack?-svgo!../device.svg");
23
-
24
15
  var _axios = _interopRequireDefault(require("axios"));
25
-
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
16
  var Step = _styledComponents.default.div.withConfig({
31
17
  displayName: "TelegramModal__Step",
32
18
  componentId: "sc-k313ho-0"
33
19
  })(["display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:18px;padding:0 78px;h2{font-weight:900;font-size:24px;}p{text-align:center;}svg{width:3em;margin:32px 88px;}.final-step{border:1px solid rgba(0,0,0,0.1);padding:21px;border-radius:6px;display:flex;flex-direction:column;align-items:center;.number{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.1);border-radius:50%;margin:9px 0;}}"]);
34
-
35
20
  var Form = _styledComponents.default.form.withConfig({
36
21
  displayName: "TelegramModal__Form",
37
22
  componentId: "sc-k313ho-1"
38
23
  })(["display:flex;flex-direction:column;align-items:center;color:#1d1d1d;padding-bottom:40px;.password-title{font-size:24px;font-weight:700;padding-bottom:40px;}.field{font-size:18px;margin-bottom:30px;.title{margin-bottom:5px;[dir='rtl'] &{text-align:right;}}.my-input{height:51px;width:100%;font-size:18px;font-weight:300;border:solid 1px #ebebeb;outline-width:0;input{height:50px;width:300px;padding:5px 15px;outline-width:0;}}}.save{border:solid 1px #f6004f;background-color:#f6004f;width:200px;height:50px;border-radius:23px;color:white;margin-bottom:20px;&[disabled]{opacity:0.5;}}.cancel{color:#f6004f;background-color:transparent;border:none;}"]);
39
-
40
24
  var StepNavigator = _styledComponents.default.div.withConfig({
41
25
  displayName: "TelegramModal__StepNavigator",
42
26
  componentId: "sc-k313ho-2"
43
27
  })(["display:flex;align-items:center;justify-content:center;button{border:solid 1px #f6004f;background-color:#f6004f;width:200px;height:50px;border-radius:23px;color:white;-webkit-align-self:end;-ms-flex-item-align:end;align-self:end;margin:0 0 21px 0;}a{border:solid 1px #f6004f;background-color:#f6004f;width:200px;height:50px;border-radius:23px;color:white !important;display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 0 21px 0;}"]);
44
-
45
28
  var TelegramModal = function TelegramModal(_ref) {
46
29
  var close = _ref.close,
47
- handleOnChange = _ref.handleOnChange,
48
- handleSubmit = _ref.handleSubmit;
49
-
30
+ handleOnChange = _ref.handleOnChange,
31
+ handleSubmit = _ref.handleSubmit;
50
32
  var _useState = (0, _react.useState)(1),
51
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
52
- step = _useState2[0],
53
- setStep = _useState2[1];
54
-
33
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
+ step = _useState2[0],
35
+ setStep = _useState2[1];
55
36
  var step1 = function step1() {
56
37
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_device.ReactComponent, null), /*#__PURE__*/_react.default.createElement("h2", null, _i18n.default.t('dashboard_v2.profile.wizard.connect_to_telegram')), /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('dashboard_v2.profile.wizard.first')));
57
38
  };
58
-
59
39
  var step2 = function step2() {
60
40
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h2", null, _i18n.default.t('dashboard_v2.profile.wizard.connect_to_telegram')), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('dashboard_v2.profile.wizard.second')), /*#__PURE__*/_react.default.createElement("div", {
61
41
  className: "field"
@@ -69,7 +49,6 @@ var TelegramModal = function TelegramModal(_ref) {
69
49
  }
70
50
  }))));
71
51
  };
72
-
73
52
  var step3 = function step3() {
74
53
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h2", null, _i18n.default.t('dashboard_v2.profile.wizard.connect_to_telegram')), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("div", {
75
54
  className: 'final-step'
@@ -79,7 +58,6 @@ var TelegramModal = function TelegramModal(_ref) {
79
58
  className: 'number'
80
59
  }, "2"), /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('dashboard_v2.profile.wizard.third_2'))));
81
60
  };
82
-
83
61
  var renderSteps = function renderSteps() {
84
62
  if (step === 1) {
85
63
  return step1();
@@ -91,12 +69,10 @@ var TelegramModal = function TelegramModal(_ref) {
91
69
  return;
92
70
  }
93
71
  };
94
-
95
72
  var _useState3 = (0, _react.useState)(''),
96
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
97
- env = _useState4[0],
98
- setEnv = _useState4[1];
99
-
73
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
74
+ env = _useState4[0],
75
+ setEnv = _useState4[1];
100
76
  (0, _react.useEffect)(function () {
101
77
  _axios.default.get('/permissions').then(function (response) {
102
78
  setEnv(response.data.data.env);
@@ -124,6 +100,5 @@ var TelegramModal = function TelegramModal(_ref) {
124
100
  }
125
101
  }, _i18n.default.t('dashboard_v2.profile.registration'))));
126
102
  };
127
-
128
103
  exports.TelegramModal = TelegramModal;
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9UZWxlZ3JhbU1vZGFsL1RlbGVncmFtTW9kYWwudHN4Il0sIm5hbWVzIjpbIlN0ZXAiLCJzdHlsZWQiLCJkaXYiLCJGb3JtIiwiZm9ybSIsIlN0ZXBOYXZpZ2F0b3IiLCJUZWxlZ3JhbU1vZGFsIiwiY2xvc2UiLCJoYW5kbGVPbkNoYW5nZSIsImhhbmRsZVN1Ym1pdCIsInN0ZXAiLCJzZXRTdGVwIiwic3RlcDEiLCJpMThuIiwidCIsInN0ZXAyIiwiZSIsInN0ZXAzIiwicmVuZGVyU3RlcHMiLCJlbnYiLCJzZXRFbnYiLCJheGlvcyIsImdldCIsInRoZW4iLCJyZXNwb25zZSIsImRhdGEiLCJjYXRjaCIsImVycm9yIiwiY29uc29sZSIsInByZXZlbnREZWZhdWx0Iiwid2luZG93Iiwib3BlbiIsImZvY3VzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7OztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxJQUFJLEdBQUdDLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLCtkQUFWOztBQTJDQSxJQUFNQyxJQUFJLEdBQUdGLDBCQUFPRyxJQUFWO0FBQUE7QUFBQTtBQUFBLDhvQkFBVjs7QUE2REEsSUFBTUMsYUFBYSxHQUFHSiwwQkFBT0MsR0FBVjtBQUFBO0FBQUE7QUFBQSwrY0FBbkI7O0FBdUNPLElBQU1JLGFBQTJDLEdBQUcsU0FBOUNBLGFBQThDLE9BSXJEO0FBQUEsTUFISkMsS0FHSSxRQUhKQSxLQUdJO0FBQUEsTUFGSkMsY0FFSSxRQUZKQSxjQUVJO0FBQUEsTUFESkMsWUFDSSxRQURKQSxZQUNJOztBQUNKLGtCQUF3QixxQkFBaUIsQ0FBakIsQ0FBeEI7QUFBQTtBQUFBLE1BQU9DLElBQVA7QUFBQSxNQUFhQyxPQUFiOztBQUNBLE1BQU1DLEtBQUssR0FBRyxTQUFSQSxLQUFRLEdBQU07QUFDbEIsd0JBQ0UseUVBQ0UsNkJBQUMsc0JBQUQsT0FERixlQUVF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QUQsRUFBTztBQUNkUCxNQUFBQSxZQUFZLENBQUNPLENBQUQsQ0FBWjtBQUNBYyxNQUFBQSxNQUFNLENBQ0hDLElBREgsQ0FFSVosR0FBRyxLQUFLLFlBQVIsR0FDSSx3Q0FESixHQUVJLGdEQUpSLEVBS0ksUUFMSixFQU9HYSxLQVBIO0FBUUF6QixNQUFBQSxLQUFLO0FBQ047QUFaSCxLQWNHTSxjQUFLQyxDQUFMLENBQU8sbUNBQVAsQ0FkSCxDQU5KLENBVkYsQ0FERjtBQXFDRCxDQS9HTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBQb3B1cE1vZGFsIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvUG9wdXBNb2RhbC9Qb3B1cE1vZGFsJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIERldmljZVN2ZyB9IGZyb20gJy4uL2RldmljZS5zdmcnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuY29uc3QgU3RlcCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDAgNzhweDtcblxuICBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cblxuICBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAzZW07XG4gICAgbWFyZ2luOiAzMnB4IDg4cHg7XG4gIH1cblxuICAuZmluYWwtc3RlcCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIHBhZGRpbmc6IDIxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm51bWJlciB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBtYXJnaW46IDlweCAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgRm9ybSA9IHN0eWxlZC5mb3JtYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogIzFkMWQxZDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG5cbiAgLnBhc3N3b3JkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgfVxuXG4gIC5maWVsZCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAudGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5teS1pbnB1dCB7XG4gICAgICBoZWlnaHQ6IDUxcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXI6IHNvbGlkIDFweCAjZWJlYmViO1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcblxuICAgICAgaW5wdXQge1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICAgIG91dGxpbmUtd2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNhdmUge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNmNjAwNGY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2MDA0ZjtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIzcHg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxuXG4gIC5jYW5jZWwge1xuICAgIGNvbG9yOiAjZjYwMDRmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgU3RlcE5hdmlnYXRvciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2Y2MDA0ZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjYwMDRmO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjNweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBlbmQ7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICBtYXJnaW46IDAgMCAyMXB4IDA7XG4gIH1cblxuICBhIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZjYwMDRmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNjAwNGY7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyM3B4O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luOiAwIDAgMjFweCAwO1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgVGVsZWdyYW1Nb2RhbFByb3BzIHtcbiAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gIGhhbmRsZU9uQ2hhbmdlOiAoZSkgPT4gdm9pZDtcbiAgaGFuZGxlU3VibWl0OiAoZSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFRlbGVncmFtTW9kYWw6IFJlYWN0LkZDPFRlbGVncmFtTW9kYWxQcm9wcz4gPSAoe1xuICBjbG9zZSxcbiAgaGFuZGxlT25DaGFuZ2UsXG4gIGhhbmRsZVN1Ym1pdCxcbn0pID0+IHtcbiAgY29uc3QgW3N0ZXAsIHNldFN0ZXBdID0gdXNlU3RhdGU8bnVtYmVyPigxKTtcbiAgY29uc3Qgc3RlcDEgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxEZXZpY2VTdmcgLz5cbiAgICAgICAgPGgyPntpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLndpemFyZC5jb25uZWN0X3RvX3RlbGVncmFtJyl9PC9oMj5cbiAgICAgICAgPHA+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUud2l6YXJkLmZpcnN0Jyl9PC9wPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcbiAgY29uc3Qgc3RlcDIgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxoMj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS53aXphcmQuY29ubmVjdF90b190ZWxlZ3JhbScpfTwvaDI+XG4gICAgICAgIDxiciAvPlxuICAgICAgICA8cD57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS53aXphcmQuc2Vjb25kJyl9PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteS1pbnB1dFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9eyd0ZXh0J31cbiAgICAgICAgICAgICAgbmFtZT17J3RlbGVncmFtX25hbWUnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPbkNoYW5nZShlKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcbiAgY29uc3Qgc3RlcDMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxoMj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS53aXphcmQuY29ubmVjdF90b190ZWxlZ3JhbScpfTwvaDI+XG4gICAgICAgIDxiciAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbmFsLXN0ZXAnfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydudW1iZXInfT4xPC9zcGFuPlxuICAgICAgICAgIDxwPntpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLndpemFyZC50aGlyZF8xJyl9PC9wPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J251bWJlcid9PjI8L3NwYW4+XG4gICAgICAgICAgPHA+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUud2l6YXJkLnRoaXJkXzInKX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJTdGVwcyA9ICgpID0+IHtcbiAgICBpZiAoc3RlcCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHN0ZXAxKCk7XG4gICAgfSBlbHNlIGlmIChzdGVwID09PSAyKSB7XG4gICAgICByZXR1cm4gc3RlcDIoKTtcbiAgICB9IGVsc2UgaWYgKHN0ZXAgPT09IDMpIHtcbiAgICAgIHJldHVybiBzdGVwMygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuICBjb25zdCBbZW52LCBzZXRFbnZdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBheGlvc1xuICAgICAgLmdldCgnL3Blcm1pc3Npb25zJylcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBzZXRFbnYocmVzcG9uc2UuZGF0YS5kYXRhLmVudik7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UG9wdXBNb2RhbCBzaG93PXt0cnVlfSBzZXRTaG93PXtjbG9zZX0+XG4gICAgICA8Rm9ybVxuICAgICAgICBvblN1Ym1pdD17KGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0ZXA+e3JlbmRlclN0ZXBzKCl9PC9TdGVwPlxuICAgICAgPC9Gb3JtPlxuXG4gICAgICA8U3RlcE5hdmlnYXRvcj5cbiAgICAgICAge3N0ZXAgIT09IDMgPyAoXG4gICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRTdGVwKHN0ZXAgKyAxKX0+XG4gICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5jb250aW51ZScpfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBoYW5kbGVTdWJtaXQoZSk7XG4gICAgICAgICAgICAgIHdpbmRvd1xuICAgICAgICAgICAgICAgIC5vcGVuKFxuICAgICAgICAgICAgICAgICAgZW52ID09PSAncHJvZHVjdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyAnaHR0cHM6Ly90ZWxlZ3JhbS5tZS9jbGVhcl91cHN0cmVhbV9ib3QnXG4gICAgICAgICAgICAgICAgICAgIDogJ2h0dHBzOi8vdGVsZWdyYW0ubWUvY2xlYXJfdXBzdHJlYW1fc3RhZ2luZ19ib3QnLFxuICAgICAgICAgICAgICAgICAgJ19ibGFuaycsXG4gICAgICAgICAgICAgICAgKSFcbiAgICAgICAgICAgICAgICAuZm9jdXMoKTtcbiAgICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUucmVnaXN0cmF0aW9uJyl9XG4gICAgICAgICAgPC9hPlxuICAgICAgICApfVxuICAgICAgPC9TdGVwTmF2aWdhdG9yPlxuICAgIDwvUG9wdXBNb2RhbD5cbiAgKTtcbn07XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9wdXBNb2RhbCIsIl9pMThuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9kZXZpY2UiLCJfYXhpb3MiLCJTdGVwIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJGb3JtIiwiZm9ybSIsIlN0ZXBOYXZpZ2F0b3IiLCJUZWxlZ3JhbU1vZGFsIiwiX3JlZiIsImNsb3NlIiwiaGFuZGxlT25DaGFuZ2UiLCJoYW5kbGVTdWJtaXQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJkZWZhdWx0Iiwic3RlcCIsInNldFN0ZXAiLCJzdGVwMSIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsIlJlYWN0Q29tcG9uZW50IiwiaTE4biIsInQiLCJzdGVwMiIsImNsYXNzTmFtZSIsInR5cGUiLCJuYW1lIiwib25DaGFuZ2UiLCJlIiwic3RlcDMiLCJyZW5kZXJTdGVwcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZW52Iiwic2V0RW52IiwidXNlRWZmZWN0IiwiYXhpb3MiLCJnZXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJkYXRhIiwiY2F0Y2giLCJlcnJvciIsImNvbnNvbGUiLCJQb3B1cE1vZGFsIiwic2hvdyIsInNldFNob3ciLCJvblN1Ym1pdCIsInByZXZlbnREZWZhdWx0Iiwib25DbGljayIsIndpbmRvdyIsIm9wZW4iLCJmb2N1cyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvUHJvZmlsZVBhZ2UvVGVsZWdyYW1Nb2RhbC9UZWxlZ3JhbU1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgUG9wdXBNb2RhbCB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1BvcHVwTW9kYWwvUG9wdXBNb2RhbCc7XG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBEZXZpY2VTdmcgfSBmcm9tICcuLi9kZXZpY2Uuc3ZnJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5cbmNvbnN0IFN0ZXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nOiAwIDc4cHg7XG5cbiAgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICB9XG5cbiAgcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogM2VtO1xuICAgIG1hcmdpbjogMzJweCA4OHB4O1xuICB9XG5cbiAgLmZpbmFsLXN0ZXAge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBwYWRkaW5nOiAyMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5udW1iZXIge1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luOiA5cHggMDtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IEZvcm0gPSBzdHlsZWQuZm9ybWBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICMxZDFkMWQ7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG4gIC5wYXNzd29yZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gIH1cblxuICAuZmllbGQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubXktaW5wdXQge1xuICAgICAgaGVpZ2h0OiA1MXB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2ViZWJlYjtcbiAgICAgIG91dGxpbmUtd2lkdGg6IDA7XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zYXZlIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZjYwMDRmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNjAwNGY7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyM3B4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAuY2FuY2VsIHtcbiAgICBjb2xvcjogI2Y2MDA0ZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFN0ZXBOYXZpZ2F0b3IgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNmNjAwNGY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2MDA0ZjtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIzcHg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZW5kO1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgbWFyZ2luOiAwIDAgMjFweCAwO1xuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2Y2MDA0ZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjYwMDRmO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjNweDtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbjogMCAwIDIxcHggMDtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIFRlbGVncmFtTW9kYWxQcm9wcyB7XG4gIGNsb3NlOiAoKSA9PiB2b2lkO1xuICBoYW5kbGVPbkNoYW5nZTogKGUpID0+IHZvaWQ7XG4gIGhhbmRsZVN1Ym1pdDogKGUpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBUZWxlZ3JhbU1vZGFsOiBSZWFjdC5GQzxUZWxlZ3JhbU1vZGFsUHJvcHM+ID0gKHtcbiAgY2xvc2UsXG4gIGhhbmRsZU9uQ2hhbmdlLFxuICBoYW5kbGVTdWJtaXQsXG59KSA9PiB7XG4gIGNvbnN0IFtzdGVwLCBzZXRTdGVwXSA9IHVzZVN0YXRlPG51bWJlcj4oMSk7XG4gIGNvbnN0IHN0ZXAxID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8RGV2aWNlU3ZnIC8+XG4gICAgICAgIDxoMj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS53aXphcmQuY29ubmVjdF90b190ZWxlZ3JhbScpfTwvaDI+XG4gICAgICAgIDxwPntpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLndpemFyZC5maXJzdCcpfTwvcD5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0ZXAyID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8aDI+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUud2l6YXJkLmNvbm5lY3RfdG9fdGVsZWdyYW0nKX08L2gyPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPHA+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUud2l6YXJkLnNlY29uZCcpfTwvcD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXktaW5wdXRcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPXsndGV4dCd9XG4gICAgICAgICAgICAgIG5hbWU9eyd0ZWxlZ3JhbV9uYW1lJ31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT25DaGFuZ2UoZSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0ZXAzID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8aDI+e2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUud2l6YXJkLmNvbm5lY3RfdG9fdGVsZWdyYW0nKX08L2gyPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydmaW5hbC1zdGVwJ30+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnbnVtYmVyJ30+MTwvc3Bhbj5cbiAgICAgICAgICA8cD57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS53aXphcmQudGhpcmRfMScpfTwvcD5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydudW1iZXInfT4yPC9zcGFuPlxuICAgICAgICAgIDxwPntpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLndpemFyZC50aGlyZF8yJyl9PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyU3RlcHMgPSAoKSA9PiB7XG4gICAgaWYgKHN0ZXAgPT09IDEpIHtcbiAgICAgIHJldHVybiBzdGVwMSgpO1xuICAgIH0gZWxzZSBpZiAoc3RlcCA9PT0gMikge1xuICAgICAgcmV0dXJuIHN0ZXAyKCk7XG4gICAgfSBlbHNlIGlmIChzdGVwID09PSAzKSB7XG4gICAgICByZXR1cm4gc3RlcDMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgW2Vudiwgc2V0RW52XSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXhpb3NcbiAgICAgIC5nZXQoJy9wZXJtaXNzaW9ucycpXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgc2V0RW52KHJlc3BvbnNlLmRhdGEuZGF0YS5lbnYpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9KTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPFBvcHVwTW9kYWwgc2hvdz17dHJ1ZX0gc2V0U2hvdz17Y2xvc2V9PlxuICAgICAgPEZvcm1cbiAgICAgICAgb25TdWJtaXQ9eyhlKSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTdGVwPntyZW5kZXJTdGVwcygpfTwvU3RlcD5cbiAgICAgIDwvRm9ybT5cblxuICAgICAgPFN0ZXBOYXZpZ2F0b3I+XG4gICAgICAgIHtzdGVwICE9PSAzID8gKFxuICAgICAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4gc2V0U3RlcChzdGVwICsgMSl9PlxuICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY29udGludWUnKX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgaGFuZGxlU3VibWl0KGUpO1xuICAgICAgICAgICAgICB3aW5kb3dcbiAgICAgICAgICAgICAgICAub3BlbihcbiAgICAgICAgICAgICAgICAgIGVudiA9PT0gJ3Byb2R1Y3Rpb24nXG4gICAgICAgICAgICAgICAgICAgID8gJ2h0dHBzOi8vdGVsZWdyYW0ubWUvY2xlYXJfdXBzdHJlYW1fYm90J1xuICAgICAgICAgICAgICAgICAgICA6ICdodHRwczovL3RlbGVncmFtLm1lL2NsZWFyX3Vwc3RyZWFtX3N0YWdpbmdfYm90JyxcbiAgICAgICAgICAgICAgICAgICdfYmxhbmsnLFxuICAgICAgICAgICAgICAgICkhXG4gICAgICAgICAgICAgICAgLmZvY3VzKCk7XG4gICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnJlZ2lzdHJhdGlvbicpfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgKX1cbiAgICAgIDwvU3RlcE5hdmlnYXRvcj5cbiAgICA8L1BvcHVwTW9kYWw+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQTJDLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUUzQyxJQUFBSyxNQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFNTSxJQUFJLEdBQUdDLHlCQUFNLENBQUNDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrZEF5Q3RCO0FBRUQsSUFBTUMsSUFBSSxHQUFHTCx5QkFBTSxDQUFDTSxJQUFJLENBQUFKLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOG9CQTJEdkI7QUFFRCxJQUFNRyxhQUFhLEdBQUdQLHlCQUFNLENBQUNDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrY0ErQi9CO0FBUU0sSUFBTUksYUFBMkMsR0FBRyxTQUE5Q0EsYUFBMkNBLENBQUFDLElBQUEsRUFJbEQ7RUFBQSxJQUhKQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztJQUNMQyxjQUFjLEdBQUFGLElBQUEsQ0FBZEUsY0FBYztJQUNkQyxZQUFZLEdBQUFI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