@kando-env/kando-ui 1.2.412-alpha.3 → 1.2.412-alpha.6

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 (704) hide show
  1. package/lib/Router.js +37 -42
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +4 -5
  3. package/lib/Widgets/EventsRow/EventsRow.js +6 -7
  4. package/lib/Widgets/Map/GraphUtils.js +3 -5
  5. package/lib/Widgets/Map/Map.js +109 -82
  6. package/lib/Widgets/Map/MapUtils.js +35 -67
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +33 -36
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +4 -5
  9. package/lib/Widgets/Map/areas/AreaUtils.js +7 -13
  10. package/lib/Widgets/Map/areas/Patterns.js +2 -3
  11. package/lib/Widgets/Map/edges/Edge.js +4 -5
  12. package/lib/Widgets/Map/edges/Edges.js +4 -5
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +2 -3
  14. package/lib/Widgets/Map/events/Event.js +4 -5
  15. package/lib/Widgets/Map/events/EventIndicator.js +4 -5
  16. package/lib/Widgets/Map/events/EventPath.js +4 -5
  17. package/lib/Widgets/Map/events/EventUtils.js +21 -34
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +4 -5
  19. package/lib/Widgets/Map/events/PointOfEvent.js +4 -5
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +4 -5
  21. package/lib/Widgets/Map/events/Snail.js +4 -5
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +5 -7
  23. package/lib/Widgets/Map/map/FloatingGraph.js +2 -3
  24. package/lib/Widgets/Map/map/GraphDateButton.js +2 -3
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +2 -3
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +2 -3
  27. package/lib/Widgets/Map/points/PointIcon.js +3 -5
  28. package/lib/Widgets/Map/points/PointMarker.js +33 -36
  29. package/lib/Widgets/Map/points/PointMarkers.js +8 -9
  30. package/lib/Widgets/Map/points/PointUtils.js +31 -60
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +4 -5
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +4 -5
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +4 -5
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -5
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +4 -5
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +2 -3
  37. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/styles.js +3 -5
  39. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +2 -3
  40. package/lib/Widgets/MostPolluting/Factories/Factories.js +4 -5
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +2 -3
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +2 -3
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +3 -5
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -5
  45. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -3
  46. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  47. package/lib/Widgets/MostPolluting/Factories/styles.js +3 -5
  48. package/lib/Widgets/MostPolluting/MostPolluting.js +4 -5
  49. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +6 -11
  50. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +2 -3
  51. package/lib/Widgets/MostPolluting/ShowMore/styles.js +2 -3
  52. package/lib/Widgets/MostPolluting/assets/index.js +1 -1
  53. package/lib/Widgets/MostPolluting/components/ChangePercent.js +2 -3
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +1 -1
  55. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +4 -5
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +1 -1
  57. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +2 -3
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +1 -2
  59. package/lib/Widgets/MostPolluting/models.js +1 -1
  60. package/lib/Widgets/MostPolluting/styles.js +3 -5
  61. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +2 -3
  62. package/lib/Widgets/PotentialImpactSummary/Icon.js +4 -6
  63. package/lib/Widgets/PotentialImpactSummary/index.js +2 -3
  64. package/lib/Widgets/PotentialImpactSummary/index.test.js +1 -1
  65. package/lib/Widgets/PotentialImpactSummary/styles.js +6 -11
  66. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  67. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +2 -3
  68. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +2 -3
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +1 -1
  70. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +2 -3
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +3 -3
  72. package/lib/Widgets/QualitySummary/QualitySummary.js +2 -3
  73. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -7
  74. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  75. package/lib/Widgets/QualitySummary/styles.js +6 -11
  76. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +4 -5
  77. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +4 -5
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +2 -3
  79. package/lib/Widgets/UtilityInformation/UtilityInformation.js +4 -5
  80. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  81. package/lib/Widgets/UtilityInformation/styles.js +9 -15
  82. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -5
  83. package/lib/assets/icons/TopNavbar/index.js +1 -1
  84. package/lib/assets/icons/TrendSvg.js +2 -3
  85. package/lib/assets/icons/index.js +1 -1
  86. package/lib/assets/icons/kandoStepper/index.js +1 -1
  87. package/lib/assets/icons/siteTypes/index.js +1 -1
  88. package/lib/components/ApplyButton/ApplyButton.js +2 -3
  89. package/lib/components/ApplyButton/index.js +2 -3
  90. package/lib/components/Backdrop/Backdrop.js +2 -3
  91. package/lib/components/ContentLoader/ContentLoader.js +2 -3
  92. package/lib/components/ContentLoader/index.js +1 -1
  93. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +3 -5
  94. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
  95. package/lib/components/CustomInputs/DoubleTabs/styles.js +4 -7
  96. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +4 -5
  97. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +2 -3
  98. package/lib/components/CustomInputs/Search/Search.js +4 -5
  99. package/lib/components/CustomInputs/Search/index.js +2 -3
  100. package/lib/components/CustomInputs/Select/Select.js +4 -5
  101. package/lib/components/CustomInputs/Select/Select.stories.js +3 -5
  102. package/lib/components/DamageType/DamageType.js +6 -7
  103. package/lib/components/DamageType/index.js +2 -3
  104. package/lib/components/DataLoaderError/DataLoaderError.js +2 -3
  105. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +2 -3
  106. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +1 -1
  107. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +4 -5
  108. package/lib/components/DischargeHeatmap/HighchartsOptions.js +2 -3
  109. package/lib/components/DischargeHeatmap/index.js +2 -3
  110. package/lib/components/DischargeHeatmap/mocks/handlers.js +2 -3
  111. package/lib/components/DischargeHeatmap/popupText.js +2 -3
  112. package/lib/components/DischargeHeatmap/titles.js +3 -5
  113. package/lib/components/DischargeHeatmap/types.js +1 -1
  114. package/lib/components/ErrorBoundary.js +9 -9
  115. package/lib/components/Events/Events.js +4 -5
  116. package/lib/components/Events/index.js +2 -3
  117. package/lib/components/Graph/Graph.js +7 -8
  118. package/lib/components/Graph/index.js +2 -3
  119. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +2 -3
  120. package/lib/components/Header/Breadcrumbs/index.js +2 -3
  121. package/lib/components/Header/DoubleTabs/DoubleTabs.js +5 -7
  122. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
  123. package/lib/components/Header/DoubleTabs/styles.js +4 -7
  124. package/lib/components/Header/Header.js +2 -3
  125. package/lib/components/Header/Header.stories.js +3 -5
  126. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +15 -17
  127. package/lib/components/Header/InfoBar/InfoBar.js +31 -34
  128. package/lib/components/Header/InfoBar/Search/Control.js +2 -3
  129. package/lib/components/Header/InfoBar/Search/GroupLabel.js +2 -3
  130. package/lib/components/Header/InfoBar/Search/Search.js +4 -5
  131. package/lib/components/Header/InfoBar/Search/SearchContainer.js +4 -5
  132. package/lib/components/Header/InfoBar/Search/index.js +2 -3
  133. package/lib/components/Header/InfoBar/Search/searchStyle.js +2 -3
  134. package/lib/components/Header/InfoBar/TimeFilter.js +2 -3
  135. package/lib/components/Header/InfoBar/types.js +1 -1
  136. package/lib/components/Header/KandoNavbar/KandoNavbar.js +7 -8
  137. package/lib/components/Header/KandoNavbar/index.js +2 -3
  138. package/lib/components/Header/Slideshow/Slideshow.js +4 -5
  139. package/lib/components/Header/Slideshow/index.js +2 -3
  140. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +2 -3
  141. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +2 -3
  142. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +5 -6
  143. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +2 -3
  144. package/lib/components/Header/Toolbar/Toolbar.js +4 -5
  145. package/lib/components/InfoBar/InfoBar.js +4 -5
  146. package/lib/components/InfoBar/InfoBar.stories.js +3 -5
  147. package/lib/components/KandoModal/KandoModal.js +4 -5
  148. package/lib/components/KandoModal/index.js +2 -3
  149. package/lib/components/Link.js +2 -3
  150. package/lib/components/Links/CustomRedirect/CustomRedirect.js +2 -3
  151. package/lib/components/Links/StyledLink/StyledLink.js +3 -5
  152. package/lib/components/Links/StyledNavLink/StyledNavLink.js +2 -3
  153. package/lib/components/LiveEvents/CarouselSlide.js +2 -3
  154. package/lib/components/LiveEvents/LiveEvents.js +2 -3
  155. package/lib/components/LiveEvents/index.js +2 -3
  156. package/lib/components/LoaderByPercent/LoaderByPercent.js +3 -5
  157. package/lib/components/Map/Map.js +4 -5
  158. package/lib/components/Map/index.js +2 -3
  159. package/lib/components/Modal/Modal.js +2 -3
  160. package/lib/components/NarrowHeader.js +9 -9
  161. package/lib/components/PointInfo/PointInfo.js +2 -3
  162. package/lib/components/PointInfo/index.js +2 -3
  163. package/lib/components/PopupModal/PopupModal.js +2 -3
  164. package/lib/components/PopupModal/PopupModal.stories.js +4 -7
  165. package/lib/components/Sector/Sector.js +2 -3
  166. package/lib/components/Sector/Sector.test.js +1 -1
  167. package/lib/components/Sector/SectorIconsNew.js +2 -3
  168. package/lib/components/Sector/index.js +2 -3
  169. package/lib/components/Sector/sectorIcons.js +2 -3
  170. package/lib/components/SevereEvent/Eta/Eta.js +4 -5
  171. package/lib/components/SevereEvent/Eta/styles.js +2 -3
  172. package/lib/components/SevereEvent/SevereEvent.js +6 -6
  173. package/lib/components/Spinner/Spinner.js +2 -3
  174. package/lib/components/Spinner/Spinner.stories.js +4 -7
  175. package/lib/components/Spinner/index.js +2 -3
  176. package/lib/components/Spinner/styles.js +4 -7
  177. package/lib/components/Tabs/Tabs.js +5 -7
  178. package/lib/components/Tabs/Tabs.stories.js +3 -5
  179. package/lib/components/Tabs/assets/index.js +1 -1
  180. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +4 -5
  181. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +4 -5
  182. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +4 -5
  183. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +2 -3
  184. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +5 -9
  185. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +2 -3
  186. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +2 -3
  187. package/lib/components/TimeRangeSelector/TimeRangeList.js +4 -5
  188. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +4 -5
  189. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +5 -7
  190. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +3 -5
  191. package/lib/components/TimeRangeSelector/constants.js +3 -5
  192. package/lib/components/TimeRangeSelector/index.js +2 -3
  193. package/lib/components/Toggle/Toggle.js +4 -5
  194. package/lib/components/Toggle/index.js +2 -3
  195. package/lib/components/TrendGraph/TrendGraph.js +4 -5
  196. package/lib/components/TrendGraph/index.js +2 -3
  197. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +4 -6
  198. package/lib/components/TrendGraphNVL/index.js +2 -3
  199. package/lib/development-environment/index.js +2 -3
  200. package/lib/development-environment/mock/browser.js +2 -3
  201. package/lib/development-environment/mock/get.js +2 -3
  202. package/lib/development-environment/mock/handlers.js +2 -3
  203. package/lib/development-environment/mock/mockBus.js +3 -5
  204. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -3
  205. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -3
  206. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -3
  207. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -3
  208. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -3
  209. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -3
  210. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -3
  211. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -3
  212. package/lib/development-environment/mock/mockObjects/data-search.js +2 -3
  213. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -3
  214. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -3
  215. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -3
  216. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -3
  217. package/lib/development-environment/mock/mockObjects/metascore.js +2 -3
  218. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -3
  219. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -3
  220. package/lib/development-environment/mock/mockObjects/site-info.js +2 -3
  221. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -3
  222. package/lib/development-environment/togly/ToglyDashboard.js +4 -5
  223. package/lib/development-environment/togly/ToglyItem.js +4 -5
  224. package/lib/development-environment/togly/flags.js +1 -1
  225. package/lib/development-environment/togly/init.js +1 -1
  226. package/lib/development-environment/togly/macro.js +1 -1
  227. package/lib/development-environment/togly/useDoubleKeyDown.js +2 -3
  228. package/lib/development-environment/togly/useLocalStorage.js +2 -3
  229. package/lib/hooks/useApi.js +30 -32
  230. package/lib/hooks/useApiWithDashboardQuery.js +3 -5
  231. package/lib/hooks/useClickOutside.js +2 -3
  232. package/lib/hooks/useInitializeHeaders.js +2 -3
  233. package/lib/hooks/useKandoFetch.js +2 -3
  234. package/lib/hooks/useMap.js +2 -3
  235. package/lib/hooks/useNavContext.js +2 -3
  236. package/lib/hooks/useQueryURL.js +2 -3
  237. package/lib/hooks/useRemoveExistingLayers.js +2 -3
  238. package/lib/hooks/useUpdateEventBodyTail.js +2 -3
  239. package/lib/hooks/useUserTimeZone.js +8 -15
  240. package/lib/hooks/useUserTimeZone.test.js +3 -3
  241. package/lib/hooks/useWindowSize.js +1 -1
  242. package/lib/index.js +4 -5
  243. package/lib/macros/getVersion.js +2 -2
  244. package/lib/models/IAction.js +1 -1
  245. package/lib/models/IAppState.js +1 -1
  246. package/lib/pages/AreaPage/AreaPage.js +28 -31
  247. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +4 -5
  248. package/lib/pages/AreaPage/Dashboard/Dashboard.js +4 -5
  249. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +4 -5
  250. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +2 -3
  251. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +2 -3
  252. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +2 -3
  253. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -5
  254. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  255. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -3
  256. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -7
  257. package/lib/pages/AssessmentPage/AssessmentPage.js +4 -5
  258. package/lib/pages/CannyWidget/Feedback.js +7 -8
  259. package/lib/pages/CovidPage/CovidPage.js +4 -5
  260. package/lib/pages/CovidPage/components/Body.js +4 -5
  261. package/lib/pages/CovidPage/components/Map.js +4 -5
  262. package/lib/pages/CovidPage/components/Sidebar.js +4 -5
  263. package/lib/pages/CovidPage/components/Summary.js +4 -5
  264. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +4 -6
  265. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +2 -3
  266. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +4 -5
  267. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +2 -3
  268. package/lib/pages/CovidPage/components/areas/Area.js +4 -5
  269. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +4 -5
  270. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +4 -5
  271. package/lib/pages/CovidPage/components/areas/AreasList.js +4 -5
  272. package/lib/pages/CovidPage/components/areas/Sort.js +4 -5
  273. package/lib/pages/CovidPage/components/nvlStatusHelper.js +5 -9
  274. package/lib/pages/DashboardMap/AreaCard.js +2 -3
  275. package/lib/pages/DashboardMap/AssessmentIcon.js +2 -3
  276. package/lib/pages/DashboardMap/Capacity.js +39 -45
  277. package/lib/pages/DashboardMap/FactoryCard.js +2 -3
  278. package/lib/pages/DashboardMap/HighchartsOptions.js +2 -3
  279. package/lib/pages/DashboardMap/List.js +7 -7
  280. package/lib/pages/DashboardMap/ListContext.js +5 -7
  281. package/lib/pages/DashboardMap/Loader.js +2 -3
  282. package/lib/pages/DashboardMap/SeverityBadge.js +2 -3
  283. package/lib/pages/DashboardMap/WWTPMap.js +4 -5
  284. package/lib/pages/DashboardMap/WaterDischarge.js +2 -3
  285. package/lib/pages/DashboardMap/Widget.js +5 -7
  286. package/lib/pages/DashboardMap/index.js +2 -3
  287. package/lib/pages/DashboardMap/utils.js +12 -23
  288. package/lib/pages/EventsPage/Body/Body.js +4 -5
  289. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +3 -3
  290. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +5 -9
  291. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +2 -3
  292. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +2 -3
  293. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +1 -1
  294. package/lib/pages/EventsPage/DragAndDropArea/index.js +2 -3
  295. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +4 -5
  296. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +5 -9
  297. package/lib/pages/EventsPage/EventsPage.js +4 -5
  298. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +4 -5
  299. package/lib/pages/EventsPage/events/MoreInfo.js +4 -5
  300. package/lib/pages/EventsPage/events/Sidebar.js +15 -15
  301. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +2 -3
  302. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +2 -3
  303. package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +2 -3
  304. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +4 -5
  305. package/lib/pages/EventsPage/events/event_info/EventDetails.js +2 -3
  306. package/lib/pages/EventsPage/events/event_info/EventInfo.js +4 -5
  307. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +2 -3
  308. package/lib/pages/EventsPage/events/event_info/EventSection.js +2 -3
  309. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +1 -1
  310. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +4 -5
  311. package/lib/pages/EventsPage/events/event_info/Header/Header.js +2 -3
  312. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +4 -5
  313. package/lib/pages/EventsPage/events/event_info/Header/index.js +2 -3
  314. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +2 -3
  315. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +4 -5
  316. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +2 -3
  317. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +2 -3
  318. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +2 -3
  319. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /index.js +2 -3
  320. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +4 -5
  321. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +4 -5
  322. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +2 -3
  323. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +2 -3
  324. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +2 -3
  325. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +4 -5
  326. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +2 -3
  327. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +2 -3
  328. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +2 -3
  329. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +2 -3
  330. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +2 -3
  331. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -3
  332. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +1 -1
  333. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +2 -3
  334. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +3 -5
  335. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +2 -3
  336. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +2 -3
  337. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +2 -3
  338. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +2 -3
  339. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +2 -3
  340. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +3 -3
  341. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +2 -3
  342. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +2 -3
  343. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +2 -3
  344. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +2 -3
  345. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +2 -3
  346. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +2 -3
  347. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +1 -1
  348. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -3
  349. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +2 -3
  350. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -5
  351. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +4 -5
  352. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +4 -5
  353. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +2 -3
  354. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +2 -3
  355. package/lib/pages/EventsPage/events/event_info/sources/Source.js +2 -3
  356. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +4 -5
  357. package/lib/pages/EventsPage/events/event_info/styles.js +3 -5
  358. package/lib/pages/EventsPage/events/events_list/EventItem.js +4 -5
  359. package/lib/pages/EventsPage/events/events_list/EventUtils.js +4 -7
  360. package/lib/pages/EventsPage/events/events_list/EventsList.js +5 -6
  361. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +4 -5
  362. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +4 -5
  363. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +4 -5
  364. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +4 -5
  365. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +4 -5
  366. package/lib/pages/EventsPage/events/events_list/Sort.js +4 -5
  367. package/lib/pages/ImportFileWizard/FileUploadRespones.js +2 -3
  368. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +2 -3
  369. package/lib/pages/ImportFileWizard/ImportFile.js +4 -5
  370. package/lib/pages/ImportFileWizard/ResponseBody.js +2 -3
  371. package/lib/pages/ImportFileWizard/ValidationForm.js +2 -3
  372. package/lib/pages/ImportFileWizard/ValidationResponse.js +4 -5
  373. package/lib/pages/ImportFileWizard/importFileUtils.js +4 -5
  374. package/lib/pages/ImportFileWizard/index.js +2 -3
  375. package/lib/pages/ImportGisPage/ImportGisContainer.js +5 -7
  376. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +2 -3
  377. package/lib/pages/ImportGisPage/importGisUtils.js +5 -7
  378. package/lib/pages/ImportGisProcess/index.js +2 -3
  379. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +4 -5
  380. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +2 -3
  381. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +2 -3
  382. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +4 -5
  383. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +3 -5
  384. package/lib/pages/NotificationsPage/Notification/Notification.js +2 -3
  385. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  386. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -3
  387. package/lib/pages/NotificationsPage/Notifications.stories.js +3 -5
  388. package/lib/pages/NotificationsPage/NotificationsPage.js +4 -5
  389. package/lib/pages/NotificationsPage/assets/index.js +1 -1
  390. package/lib/pages/NotificationsPageV2/NotificationsPage.js +5 -7
  391. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +2 -3
  392. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +2 -3
  393. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +2 -3
  394. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +2 -3
  395. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +2 -3
  396. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +2 -3
  397. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +5 -7
  398. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +2 -3
  399. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +4 -5
  400. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +17 -33
  401. package/lib/pages/NotificationsPageV2/notificationUtils.js +9 -15
  402. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  403. package/lib/pages/OldSitePage/OldSitePage.js +51 -56
  404. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -9
  405. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  406. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +2 -3
  407. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +2 -3
  408. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +5 -9
  409. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +4 -5
  410. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +3 -5
  411. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  412. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +5 -9
  413. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +4 -5
  414. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +2 -3
  415. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +4 -5
  416. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -7
  417. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +6 -11
  418. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +4 -5
  419. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +4 -5
  420. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +3 -5
  421. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +2 -3
  422. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  423. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -7
  424. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +3 -5
  425. package/lib/pages/OperationsPage/LeftPanel.js +4 -5
  426. package/lib/pages/OperationsPage/Map/Map.js +4 -5
  427. package/lib/pages/OperationsPage/Map/useMap.js +5 -6
  428. package/lib/pages/OperationsPage/OperationsPage.js +4 -5
  429. package/lib/pages/OperationsPage/RightPanel.js +2 -3
  430. package/lib/pages/OperationsPage/index.js +2 -3
  431. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +28 -31
  432. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +4 -5
  433. package/lib/pages/PollutionRiskAssessment/FilterButton.js +2 -3
  434. package/lib/pages/PollutionRiskAssessment/Map.js +4 -5
  435. package/lib/pages/PollutionRiskAssessment/SearchButton.js +2 -3
  436. package/lib/pages/PollutionRiskAssessment/SearchField.js +4 -5
  437. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +2 -3
  438. package/lib/pages/PollutionRiskAssessment/UseCases.js +2 -3
  439. package/lib/pages/PollutionRiskAssessment/index.js +28 -31
  440. package/lib/pages/PollutionRiskAssessment/useMap.js +4 -5
  441. package/lib/pages/PollutionRiskAssessment/utils.js +2 -3
  442. package/lib/pages/ProfilePage/Container.js +2 -3
  443. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +4 -5
  444. package/lib/pages/ProfilePage/ProfilePage.js +4 -5
  445. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +4 -5
  446. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +4 -7
  447. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +3 -3
  448. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +69 -74
  449. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +4 -5
  450. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +2 -3
  451. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +4 -7
  452. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +2 -3
  453. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +2 -3
  454. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +2 -3
  455. package/lib/pages/SamplingsPage/DesktopActions/index.js +2 -3
  456. package/lib/pages/SamplingsPage/NavigationDropdown.js +3 -5
  457. package/lib/pages/SamplingsPage/NewSamplingAction.js +20 -23
  458. package/lib/pages/SamplingsPage/SamplingMobileModal.js +2 -3
  459. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +2 -3
  460. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +2 -3
  461. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +4 -5
  462. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +4 -5
  463. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +2 -3
  464. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +85 -92
  465. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +4 -5
  466. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +4 -5
  467. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +4 -5
  468. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +12 -21
  469. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -5
  470. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +2 -3
  471. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +4 -5
  472. package/lib/pages/SamplingsPage/SamplingsMobileList.js +4 -5
  473. package/lib/pages/SamplingsPage/SamplingsPage.js +5 -7
  474. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +4 -5
  475. package/lib/pages/SamplingsPage/index.js +2 -3
  476. package/lib/pages/SamplingsPage/samplingsPageUtils.js +20 -39
  477. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +3 -5
  478. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +2 -3
  479. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +2 -3
  480. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +3 -5
  481. package/lib/pages/SitePage/PollutionContributor/index.js +2 -3
  482. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  483. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +5 -9
  484. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +2 -3
  485. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +1 -1
  486. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +2 -3
  487. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +1 -1
  488. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +5 -9
  489. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +4 -5
  490. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +3 -5
  491. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  492. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +5 -9
  493. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +4 -5
  494. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +2 -3
  495. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +4 -5
  496. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -9
  497. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +6 -11
  498. package/lib/pages/SitePage/SamplingParameters/body/Body.js +2 -3
  499. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +4 -5
  500. package/lib/pages/SitePage/SamplingParameters/body/index.js +2 -3
  501. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +4 -5
  502. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +4 -5
  503. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +3 -5
  504. package/lib/pages/SitePage/SamplingParameters/dataParser.js +2 -3
  505. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +1 -1
  506. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  507. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -7
  508. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +3 -5
  509. package/lib/pages/SitePage/SiteInformation/EmptyState.js +2 -3
  510. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +5 -5
  511. package/lib/pages/SitePage/SitePage.js +28 -31
  512. package/lib/pages/UploadLabResult/index.js +2 -3
  513. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +10 -9
  514. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +4 -7
  515. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +6 -11
  516. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
  517. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +4 -5
  518. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +2 -3
  519. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +2 -3
  520. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +2 -3
  521. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +2 -3
  522. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  523. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +2 -3
  524. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +2 -3
  525. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -3
  526. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +5 -7
  527. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +6 -11
  528. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +4 -5
  529. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +4 -5
  530. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +4 -5
  531. package/lib/pages/WbeDashboard/ExpandableComponent.js +4 -5
  532. package/lib/pages/WbeDashboard/GraphWrapper.js +4 -5
  533. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +4 -5
  534. package/lib/pages/WbeDashboard/SearchInput.js +4 -5
  535. package/lib/pages/WbeDashboard/SummaryGraph.js +23 -26
  536. package/lib/pages/WbeDashboard/SummaryGraphModal.js +2 -3
  537. package/lib/pages/WbeDashboard/Tabs.js +2 -3
  538. package/lib/pages/WbeDashboard/WbeDashboardPage.js +4 -5
  539. package/lib/pages/WbeDashboard/WbeSummaryBar.js +4 -5
  540. package/lib/pages/WwtpPage/DashboardCard.js +2 -3
  541. package/lib/pages/WwtpPage/DischargePatternCard.js +5 -7
  542. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +2 -3
  543. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +2 -3
  544. package/lib/pages/WwtpPage/InletsCard/index.js +2 -3
  545. package/lib/pages/WwtpPage/Map.js +4 -4
  546. package/lib/pages/WwtpPage/OrganicCard.js +2 -3
  547. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -3
  548. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +2 -3
  549. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +2 -3
  550. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +2 -3
  551. package/lib/pages/WwtpPage/PotentialSaving/index.js +2 -3
  552. package/lib/pages/WwtpPage/PotentialSaving/types.js +1 -1
  553. package/lib/pages/WwtpPage/PredictionCard.js +2 -3
  554. package/lib/pages/WwtpPage/TrendCard.js +2 -3
  555. package/lib/pages/WwtpPage/UpgradeBox.js +2 -3
  556. package/lib/pages/WwtpPage/WwtpPage.js +2 -3
  557. package/lib/pages/WwtpPage/WwtpPageContainer.js +2 -3
  558. package/lib/pages/WwtpPage/index.js +2 -3
  559. package/lib/providers/Slideshow/SlideshowContext.js +4 -7
  560. package/lib/providers/Slideshow/SlideshowProvider.js +4 -5
  561. package/lib/providers/Slideshow/SlideshowRunner.js +2 -3
  562. package/lib/providers/UrlHistory/UrlHistoryContext.js +4 -7
  563. package/lib/providers/UrlHistory/UrlHistoryProvider.js +4 -5
  564. package/lib/providers/UrlHistory/index.js +1 -1
  565. package/lib/providers/UrlHistory/useLastVisited.js +2 -3
  566. package/lib/react-app-env.d.js +1 -1
  567. package/lib/store/ImportGis/action.js +1 -1
  568. package/lib/store/ImportGis/actionTypes.js +4 -5
  569. package/lib/store/ImportGis/actionsCreator.js +1 -1
  570. package/lib/store/ImportGis/models/gisImports.js +1 -1
  571. package/lib/store/ImportGis/reducer.js +1 -1
  572. package/lib/store/WBE/actionTypes.js +2 -3
  573. package/lib/store/WBE/actions.js +1 -1
  574. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  575. package/lib/store/WBE/models/IWBE.js +1 -1
  576. package/lib/store/WBE/models/IWBEState.js +1 -1
  577. package/lib/store/WBE/reducer.js +1 -1
  578. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +5 -9
  579. package/lib/store/WWTPDashboard/types.js +1 -1
  580. package/lib/store/areas/actionTypes.js +4 -7
  581. package/lib/store/areas/actions.js +1 -1
  582. package/lib/store/areas/models/IArea.js +1 -1
  583. package/lib/store/areas/models/IAreasState.js +1 -1
  584. package/lib/store/areas/reducer.js +1 -1
  585. package/lib/store/context/actionTypes.js +3 -5
  586. package/lib/store/context/actions.js +1 -1
  587. package/lib/store/context/contextMiddlewares.js +2 -3
  588. package/lib/store/context/models/INavContext.js +1 -1
  589. package/lib/store/context/models/INavContextState.js +1 -1
  590. package/lib/store/context/reducer.js +1 -1
  591. package/lib/store/dashboard/dashboardSlice.js +3 -5
  592. package/lib/store/dashboard/periodType.js +1 -1
  593. package/lib/store/edges/actionTypes.js +5 -9
  594. package/lib/store/edges/actions.js +1 -1
  595. package/lib/store/edges/models/IEdge.js +1 -1
  596. package/lib/store/edges/models/IEdgesState.js +1 -1
  597. package/lib/store/edges/reducer.js +1 -1
  598. package/lib/store/events/actionTypes.js +17 -33
  599. package/lib/store/events/actions.js +1 -1
  600. package/lib/store/events/models/IEvent.js +1 -1
  601. package/lib/store/events/models/IEventsState.js +1 -1
  602. package/lib/store/events/models/ISource.js +1 -1
  603. package/lib/store/events/reducer.js +1 -1
  604. package/lib/store/filters/IFilter.js +1 -1
  605. package/lib/store/filters/IFilterItem.js +1 -1
  606. package/lib/store/global/actionTypes.js +11 -21
  607. package/lib/store/global/actions.js +1 -1
  608. package/lib/store/global/models/IGlobalState.js +1 -1
  609. package/lib/store/global/reducer.js +1 -1
  610. package/lib/store/permissions/permissionsSlice.js +2 -3
  611. package/lib/store/points/actionTypes.js +3 -5
  612. package/lib/store/points/actions.js +1 -1
  613. package/lib/store/points/models/IGeoPoint.js +1 -1
  614. package/lib/store/points/models/IGroup.js +1 -1
  615. package/lib/store/points/models/IIssue.js +1 -1
  616. package/lib/store/points/models/IPoint.js +1 -1
  617. package/lib/store/points/models/IPointsState.js +1 -1
  618. package/lib/store/points/reducer.js +1 -1
  619. package/lib/store/rootActionTypes.js +2 -3
  620. package/lib/store/rootActions.js +1 -1
  621. package/lib/store/rootReducer.js +2 -3
  622. package/lib/store/rootStore.js +1 -1
  623. package/lib/store/samplings/action.js +1 -1
  624. package/lib/store/samplings/actionTypes.js +4 -5
  625. package/lib/store/samplings/actionsCreator.js +1 -1
  626. package/lib/store/samplings/models/Samplings.js +1 -1
  627. package/lib/store/samplings/reducer.js +1 -1
  628. package/lib/styles/StylesLayout.js +2 -3
  629. package/lib/styles/theme/theme.js +4 -7
  630. package/lib/test/mocks/browser.js +2 -3
  631. package/lib/test/test-utils.js +1 -1
  632. package/lib/ui-kit/Alert/KandoAlert.js +2 -3
  633. package/lib/ui-kit/Button/Button.js +4 -7
  634. package/lib/ui-kit/Button/Button.test.js +3 -3
  635. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  636. package/lib/ui-kit/Checkbox/Checkbox.js +3 -5
  637. package/lib/ui-kit/ContentCard/ContentCard.js +2 -3
  638. package/lib/ui-kit/Dashboard/Dashboard.js +4 -5
  639. package/lib/ui-kit/Dashboard/index.js +2 -3
  640. package/lib/ui-kit/DropDown/DropDown.js +2 -3
  641. package/lib/ui-kit/DropDown/DropDown.test.js +1 -1
  642. package/lib/ui-kit/DropDown/DropDownItem.js +3 -5
  643. package/lib/ui-kit/DropDown/DropdownToggle.js +3 -5
  644. package/lib/ui-kit/EmptyState/EmptyState.js +2 -3
  645. package/lib/ui-kit/IconAction/IconAction.js +2 -3
  646. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +4 -5
  647. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +2 -3
  648. package/lib/ui-kit/InletsPie/InletsPie.js +2 -3
  649. package/lib/ui-kit/InletsPie/index.js +2 -3
  650. package/lib/ui-kit/InletsPie/options.js +3 -5
  651. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +4 -5
  652. package/lib/ui-kit/KandoFilter/KandoFilter.js +2 -3
  653. package/lib/ui-kit/KandoList/KandoList.js +4 -5
  654. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  655. package/lib/ui-kit/KandoTable/KandoTable.js +4 -5
  656. package/lib/ui-kit/KandoTable/KandoTable.test.js +1 -1
  657. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  658. package/lib/ui-kit/Layout/Layout.js +2 -3
  659. package/lib/ui-kit/MobileInput/MobileInput.js +2 -3
  660. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +2 -3
  661. package/lib/ui-kit/ModalConfirmation/index.js +2 -3
  662. package/lib/ui-kit/OrganicEvents/GaugeChart.js +2 -3
  663. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +2 -3
  664. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +2 -3
  665. package/lib/ui-kit/OrganicEvents/TextInfo.js +2 -3
  666. package/lib/ui-kit/OrganicEvents/index.js +2 -3
  667. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +2 -3
  668. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +2 -3
  669. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -5
  670. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +3 -5
  671. package/lib/ui-kit/ScoreGauge/constant.js +2 -3
  672. package/lib/ui-kit/ScoreGauge/index.js +2 -3
  673. package/lib/ui-kit/TimeLineChart/TrendChart.js +2 -3
  674. package/lib/ui-kit/TimeLineChart/index.js +2 -3
  675. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +3 -5
  676. package/lib/ui-kit/Tooltip/Tooltip.js +2 -3
  677. package/lib/ui-kit/index.js +1 -1
  678. package/lib/ui-kit/kandoStepper/KandoStepper.js +2 -3
  679. package/lib/ui-kit/siteName/SiteName.js +2 -3
  680. package/lib/utilities/ActionUtility.js +1 -1
  681. package/lib/utilities/Alert.js +2 -3
  682. package/lib/utilities/Analytics.js +2 -3
  683. package/lib/utilities/Array.js +3 -5
  684. package/lib/utilities/Enum.js +26 -29
  685. package/lib/utilities/ErrorBoundary.js +9 -9
  686. package/lib/utilities/File.js +42 -48
  687. package/lib/utilities/GetDir.js +2 -3
  688. package/lib/utilities/KandoDate.js +3 -5
  689. package/lib/utilities/KandoModal.js +4 -5
  690. package/lib/utilities/LocalStorage.js +5 -9
  691. package/lib/utilities/ThousandsToK.js +2 -3
  692. package/lib/utilities/TimeFormat.js +4 -5
  693. package/lib/utilities/Truncate.js +4 -5
  694. package/lib/utilities/edgesMath.js +6 -7
  695. package/lib/utilities/i18n.js +2 -3
  696. package/lib/utilities/kql.js +3 -5
  697. package/lib/utilities/map/icons.js +2 -3
  698. package/lib/utilities/polylinedecorator.js +3 -5
  699. package/lib/utilities/scoreToData.js +6 -11
  700. package/lib/utilities/scoreToData.test.js +1 -1
  701. package/lib/utilities/time.js +4 -7
  702. package/lib/utilities/uploadToS3.js +2 -3
  703. package/lib/utilities/urls.js +4 -7
  704. package/package.json +1 -1
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.SamplingProperties = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
11
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
12
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
@@ -28,16 +27,15 @@ var _SamplingPropertiesHead = require("./SamplingPropertiesHead");
28
27
  var _SamplingPropertiesHeadMobile = require("./SamplingPropertiesHeadMobile");
29
28
  var _samplingPropertiesUtils = require("./samplingPropertiesUtils");
30
29
  var _SamplerInProcess = _interopRequireDefault(require("./SamplerInProcess"));
31
- 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); }
32
- 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; }
33
- /*
34
- * Properties and Cancelling forms.
35
- **/
36
-
30
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
31
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw (o = s, n.arg); n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } /*
33
+ * Properties and Cancelling forms.
34
+ **/
37
35
  var isPropertiesPage = function isPropertiesPage(pageType) {
38
36
  return pageType === 'edit';
39
37
  };
40
- var SamplingProperties = function SamplingProperties() {
38
+ var SamplingProperties = exports.SamplingProperties = function SamplingProperties() {
41
39
  var _useState = (0, _react.useState)(new Date()),
42
40
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
43
41
  collectionTime = _useState2[0],
@@ -115,7 +113,7 @@ var SamplingProperties = function SamplingProperties() {
115
113
  }
116
114
  return isCanceled;
117
115
  };
118
- var fetchSamplingProperties = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
116
+ var fetchSamplingProperties = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
119
117
  var samplingId,
120
118
  op,
121
119
  response,
@@ -123,30 +121,28 @@ var SamplingProperties = function SamplingProperties() {
123
121
  samplingProperties,
124
122
  isCanceled,
125
123
  _args = arguments;
126
- return _regenerator.default.wrap(function _callee$(_context) {
127
- while (1) {
128
- switch (_context.prev = _context.next) {
129
- case 0:
130
- samplingId = _args.length > 0 && _args[0] !== undefined ? _args[0] : sampleId;
131
- op = _args.length > 1 ? _args[1] : undefined;
132
- _context.next = 4;
133
- return _axios.default.get((0, _urls.urls)({
134
- samplingId: samplingId
135
- }).samplingProperties.fetchSampling.url);
136
- case 4:
137
- response = _context.sent;
138
- sampling = response.data;
139
- samplingProperties = sampling.sampling_properties;
140
- pageType.current = detectPageType(samplingProperties.sampling.is_canceled, op);
141
- setCollectionTime(determineCollectionTime((0, _samplingPropertiesUtils.collectionTimeFormat)(samplingProperties.sampling.collection_time, sampling.sampling_plan.time_zone), op));
142
- isCanceled = isCancelledLayout(samplingProperties.sampling.is_canceled);
143
- initFormikValues(samplingProperties, isCanceled, sampling.sampling_plan.time_zone, userInfo);
144
- setSamplingProperties(samplingProperties);
145
- setSamplingPlan(sampling.sampling_plan);
146
- case 13:
147
- case "end":
148
- return _context.stop();
149
- }
124
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
125
+ while (1) switch (_context.prev = _context.next) {
126
+ case 0:
127
+ samplingId = _args.length > 0 && _args[0] !== undefined ? _args[0] : sampleId;
128
+ op = _args.length > 1 ? _args[1] : undefined;
129
+ _context.next = 4;
130
+ return _axios.default.get((0, _urls.urls)({
131
+ samplingId: samplingId
132
+ }).samplingProperties.fetchSampling.url);
133
+ case 4:
134
+ response = _context.sent;
135
+ sampling = response.data;
136
+ samplingProperties = sampling.sampling_properties;
137
+ pageType.current = detectPageType(samplingProperties.sampling.is_canceled, op);
138
+ setCollectionTime(determineCollectionTime((0, _samplingPropertiesUtils.collectionTimeFormat)(samplingProperties.sampling.collection_time, sampling.sampling_plan.time_zone), op));
139
+ isCanceled = isCancelledLayout(samplingProperties.sampling.is_canceled);
140
+ initFormikValues(samplingProperties, isCanceled, sampling.sampling_plan.time_zone, userInfo);
141
+ setSamplingProperties(samplingProperties);
142
+ setSamplingPlan(sampling.sampling_plan);
143
+ case 13:
144
+ case "end":
145
+ return _context.stop();
150
146
  }
151
147
  }, _callee);
152
148
  })), []);
@@ -203,67 +199,65 @@ var SamplingProperties = function SamplingProperties() {
203
199
  return formData;
204
200
  };
205
201
  var updateOrCreate = /*#__PURE__*/function () {
206
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(formData) {
202
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(formData) {
207
203
  var _samplingProperties$s2;
208
204
  var updateOrCreateSuccess, samplingID;
209
- return _regenerator.default.wrap(function _callee2$(_context2) {
210
- while (1) {
211
- switch (_context2.prev = _context2.next) {
212
- case 0:
213
- updateOrCreateSuccess = function updateOrCreateSuccess(msg) {
214
- setSavingMsg(_i18n.default.t(msg));
215
- setSamplingUpdated(true);
216
- setOriginalSaveMessageWithTimeout();
217
- handleClose();
218
- };
219
- samplingID = samplingProperties === null || samplingProperties === void 0 ? void 0 : (_samplingProperties$s2 = samplingProperties.sampling) === null || _samplingProperties$s2 === void 0 ? void 0 : _samplingProperties$s2.id;
220
- if (!(samplingID === null)) {
221
- _context2.next = 16;
222
- break;
223
- }
224
- // create
225
- formData.append("sampling[date]", collectionTime);
226
- _context2.prev = 4;
227
- _context2.next = 7;
228
- return _axios.default.post((0, _urls.urls)({
229
- waterAuthorityId: waterAuthorityId
230
- }).samplingProperties.createSampling.url, formData);
231
- case 7:
232
- updateOrCreateSuccess('buttons.created');
233
- _context2.next = 14;
234
- break;
235
- case 10:
236
- _context2.prev = 10;
237
- _context2.t0 = _context2["catch"](4);
238
- setSavingMsg(_i18n.default.t('buttons.error'));
205
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
206
+ while (1) switch (_context2.prev = _context2.next) {
207
+ case 0:
208
+ updateOrCreateSuccess = function updateOrCreateSuccess(msg) {
209
+ setSavingMsg(_i18n.default.t(msg));
210
+ setSamplingUpdated(true);
239
211
  setOriginalSaveMessageWithTimeout();
240
- case 14:
241
- _context2.next = 27;
242
- break;
243
- case 16:
244
- if (pageType.current === 'revert_cancel') {
245
- formData.append("sampling[collection_time]", collectionTime);
246
- }
247
- // update
248
- _context2.prev = 17;
249
- _context2.next = 20;
250
- return _axios.default.put((0, _urls.urls)({
251
- samplingId: samplingID,
252
- waterAuthorityId: waterAuthorityId
253
- }).samplingProperties.updateSampling.url, formData);
254
- case 20:
255
- updateOrCreateSuccess('buttons.updated');
256
- _context2.next = 27;
212
+ handleClose();
213
+ };
214
+ samplingID = samplingProperties === null || samplingProperties === void 0 ? void 0 : (_samplingProperties$s2 = samplingProperties.sampling) === null || _samplingProperties$s2 === void 0 ? void 0 : _samplingProperties$s2.id;
215
+ if (!(samplingID === null)) {
216
+ _context2.next = 16;
257
217
  break;
258
- case 23:
259
- _context2.prev = 23;
260
- _context2.t1 = _context2["catch"](17);
261
- setSavingMsg(_i18n.default.t('buttons.error'));
262
- setOriginalSaveMessageWithTimeout();
263
- case 27:
264
- case "end":
265
- return _context2.stop();
266
- }
218
+ }
219
+ // create
220
+ formData.append("sampling[date]", collectionTime);
221
+ _context2.prev = 4;
222
+ _context2.next = 7;
223
+ return _axios.default.post((0, _urls.urls)({
224
+ waterAuthorityId: waterAuthorityId
225
+ }).samplingProperties.createSampling.url, formData);
226
+ case 7:
227
+ updateOrCreateSuccess('buttons.created');
228
+ _context2.next = 14;
229
+ break;
230
+ case 10:
231
+ _context2.prev = 10;
232
+ _context2.t0 = _context2["catch"](4);
233
+ setSavingMsg(_i18n.default.t('buttons.error'));
234
+ setOriginalSaveMessageWithTimeout();
235
+ case 14:
236
+ _context2.next = 27;
237
+ break;
238
+ case 16:
239
+ if (pageType.current === 'revert_cancel') {
240
+ formData.append("sampling[collection_time]", collectionTime);
241
+ }
242
+ // update
243
+ _context2.prev = 17;
244
+ _context2.next = 20;
245
+ return _axios.default.put((0, _urls.urls)({
246
+ samplingId: samplingID,
247
+ waterAuthorityId: waterAuthorityId
248
+ }).samplingProperties.updateSampling.url, formData);
249
+ case 20:
250
+ updateOrCreateSuccess('buttons.updated');
251
+ _context2.next = 27;
252
+ break;
253
+ case 23:
254
+ _context2.prev = 23;
255
+ _context2.t1 = _context2["catch"](17);
256
+ setSavingMsg(_i18n.default.t('buttons.error'));
257
+ setOriginalSaveMessageWithTimeout();
258
+ case 27:
259
+ case "end":
260
+ return _context2.stop();
267
261
  }
268
262
  }, _callee2, null, [[4, 10], [17, 23]]);
269
263
  }));
@@ -350,5 +344,4 @@ var SamplingProperties = function SamplingProperties() {
350
344
  formik: formik
351
345
  }))));
352
346
  };
353
- exports.SamplingProperties = SamplingProperties;
354
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0RGV2aWNlRGV0ZWN0IiwiX2Zvcm1payIsIl9yZWFjdFJvdXRlckRvbSIsIl9yZWFjdFJlZHV4IiwiX0xheW91dCIsIl9pMThuIiwiX3VzZVF1ZXJ5VVJMIiwiX1NwaW5uZXIiLCJfdXJscyIsIl9zdHlsZXMiLCJfc2FtcGxpbmdzUGFnZVV0aWxzIiwiX1NhbXBsaW5nUHJvcGVydGllc0Zvcm0iLCJfU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCIsIl9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlIiwiX3NhbXBsaW5nUHJvcGVydGllc1V0aWxzIiwiX1NhbXBsZXJJblByb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImlzUHJvcGVydGllc1BhZ2UiLCJwYWdlVHlwZSIsIlNhbXBsaW5nUHJvcGVydGllcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiRGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJjb2xsZWN0aW9uVGltZSIsInNldENvbGxlY3Rpb25UaW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwaG90b3MiLCJzZXRQaG90b3MiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBob3Rvc1RvRGVsZXRlIiwic2V0UGhvdG9zVG9EZWxldGUiLCJfdXNlU3RhdGU3IiwiaTE4biIsInQiLCJfdXNlU3RhdGU4Iiwic2F2aW5nTXNnIiwic2V0U2F2aW5nTXNnIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2FtcGxpbmdVcGRhdGVkIiwic2V0U2FtcGxpbmdVcGRhdGVkIiwiX3VzZVN0YXRlMTEiLCJ1bmRlZmluZWQiLCJfdXNlU3RhdGUxMiIsInNhbXBsaW5nUGxhbiIsInNldFNhbXBsaW5nUGxhbiIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwibG9jYXRpb24iLCJ1c2VMb2NhdGlvbiIsInF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJ1c2VySW5mbyIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwZXJtaXNzaW9ucyIsInVzZXJfaW5mbyIsImRhdGVGb3JtYXQiLCJkYXRlX3RpbWVfZm9ybWF0IiwidXNlUmVmIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNhbXBsaW5nUHJvcGVydGllcyIsInNldFNhbXBsaW5nUHJvcGVydGllcyIsIl91c2VQYXJhbXMiLCJ1c2VQYXJhbXMiLCJzYW1wbGVJZCIsIndhdGVyQXV0aG9yaXR5SWQiLCJnbG9iYWxfZGF0YSIsImxvY2FsZSIsIm5hdl9jb250ZXh0X2RhdGEiLCJuYXZDb250ZXh0IiwiaW5pdEZvcm1pa1ZhbHVlcyIsImlzQ2FuY2VsZWQiLCJ0aW1lWm9uZSIsInBhZ2VDb2xsZWN0aW9uVGltZSIsImlzQ29sbGVjdExheW91dCIsImN1cnJlbnQiLCJjb2xsZWN0aW9uVGltZUZvcm1hdCIsInNhbXBsaW5nIiwiY29sbGVjdGlvbl90aW1lIiwic2FtIiwiZm9ybWlrVmFsdWVzIiwibGFiX2lkIiwicHVtcF9zYW1wbGluZ192b2x1bWUiLCJwdW1wX2JhdHRlcnlfbGV2ZWwiLCJkZXNjcmlwdGlvbiIsImthbmRvX3JlcCIsInNhbXBsaW5nX3BsYW5faWQiLCJjYW5jZWxsYXRpb25fcmVhc29uIiwiaXNfY2FuY2VsZWQiLCJpc0NhbmNlbGxlZExheW91dCIsImNhbmNlbGVkX2J5X2lkIiwibmFtZSIsImNhbmNlbGVkX2J5X25hbWUiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwiaWQiLCJmb3JtaWsiLCJzZXRWYWx1ZXMiLCJwYWdlVHlwZTJpc0NhbmNlbGxlZCIsImNhbmNlbCIsImNvbGxlY3QiLCJyZXZlcnRfY2FuY2VsIiwiZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMiLCJ1c2VDYWxsYmFjayIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwic2FtcGxpbmdJZCIsIm9wIiwicmVzcG9uc2UiLCJfYXJncyIsImFyZ3VtZW50cyIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJsZW5ndGgiLCJheGlvcyIsInVybHMiLCJmZXRjaFNhbXBsaW5nIiwidXJsIiwic2VudCIsImRhdGEiLCJzYW1wbGluZ19wcm9wZXJ0aWVzIiwiZGV0ZWN0UGFnZVR5cGUiLCJkZXRlcm1pbmVDb2xsZWN0aW9uVGltZSIsInNhbXBsaW5nX3BsYW4iLCJ0aW1lX3pvbmUiLCJzdG9wIiwidXNlRWZmZWN0IiwiZ2V0VXJsUXVlcnlPcCIsInZhbGlkYXRpb25TY2hlbWEiLCJwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYSIsImNhbmNlbGxhdGlvblZhbGlkYXRpb25TY2hlbWEiLCJ1c2VGb3JtaWsiLCJlbmFibGVSZWluaXRpYWxpemUiLCJpbml0aWFsVmFsdWVzIiwic2FtcGxpbmdQcm9wZXJ0eSIsInZhbGlkYXRlT25DaGFuZ2UiLCJ2YWxpZGF0ZU9uQmx1ciIsIm9uU3VibWl0IiwidmFsdWVzIiwiaGFuZGxlU3VibWl0IiwiaGFuZGxlQ2xvc2UiLCJnb0JhY2siLCJwdXNoIiwic2FtcGxpbmdzUGFnZSIsInNhbXBsaW5nc0xpc3RSb3V0ZSIsIl9zYW1wbGluZ1Byb3BlcnRpZXMkcyIsInBpY3R1cmVzX2F0dHJpYnV0ZXMiLCJzYXZlRm9ybURhdGEiLCJmb3JtRGF0YUJ1aWxkZXIiLCJ1cGRhdGVPckNyZWF0ZSIsInNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCIsInNldFRpbWVvdXQiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwidmFsdWUiLCJhcHBlbmQiLCJjb25jYXQiLCJ1bmlxdWVQaG90b3NUb0RlbGV0ZSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJTZXQiLCJmb3JFYWNoIiwiaW5kZXgiLCJKU09OIiwic3RyaW5naWZ5IiwiX3JlZjIiLCJfY2FsbGVlMiIsIl9zYW1wbGluZ1Byb3BlcnRpZXMkczIiLCJ1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MiLCJzYW1wbGluZ0lEIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwibXNnIiwicG9zdCIsImNyZWF0ZVNhbXBsaW5nIiwidDAiLCJwdXQiLCJ1cGRhdGVTYW1wbGluZyIsInQxIiwiX3giLCJhcHBseSIsImlzU2FtcGxpbmdDYW5jZWxsZWQiLCJlZGl0UGFnZVZhbHVlIiwiQ09MTEVDVF9TQU1QTElOR19PUCIsIkNBTkNFTF9TQU1QTElOR19PUCIsIlJFVkVSVF9DQU5DRUxMQVRJT04iLCJzZXJ2ZXJDb2xsZWN0aW9uVGltZSIsImN1cnJlbnRUaW1lIiwic2VydmVyVGltZSIsImluY2x1ZGVzIiwiY3JlYXRlRWxlbWVudCIsIlNwaW5uZXIiLCJpc19wdW1wX2luX3Byb2dyZXNzIiwiU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGUiLCJpc01vYmlsZSIsIlNhbXBsaW5nUHJvcGVydGllc0hlYWQiLCJpc0RhdGVQaWNrZXJEaXNhYmxlZCIsIlNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUiLCJTYW1wbGluZ1Byb3BlcnRpZXNGb3JtIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL1NhbXBsaW5nUHJvcGVydGllcy9TYW1wbGluZ1Byb3BlcnRpZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQcm9wZXJ0aWVzIGFuZCBDYW5jZWxsaW5nIGZvcm1zLlxuICoqL1xuaW1wb3J0IFJlYWN0LCB7IEZDLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IEZvcm1pa0NvbmZpZyB9IGZyb20gJ2Zvcm1pay9kaXN0L3R5cGVzJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAncmVhY3QtZGV2aWNlLWRldGVjdCc7XG5pbXBvcnQgeyB1c2VGb3JtaWsgfSBmcm9tICdmb3JtaWsnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlUGFyYW1zLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCBMYXlvdXQgZnJvbSAnc3JjL3VpLWtpdC9MYXlvdXQvTGF5b3V0JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnc3JjL2hvb2tzL3VzZVF1ZXJ5VVJMJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICdzcmMvY29tcG9uZW50cy9TcGlubmVyL1NwaW5uZXInO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJ3NyYy91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZSB9IGZyb20gJy4vc3R5bGVzJztcbmltcG9ydCB7XG4gIENBTkNFTF9TQU1QTElOR19PUCxcbiAgQ09MTEVDVF9TQU1QTElOR19PUCxcbiAgUkVWRVJUX0NBTkNFTExBVElPTixcbiAgU2FtcGxpbmdGZXRjaERhdGEsXG59IGZyb20gJy4uL3NhbXBsaW5nc1BhZ2VVdGlscyc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNGb3JtIH0gZnJvbSAnLi9TYW1wbGluZ1Byb3BlcnRpZXNGb3JtJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0hlYWQgfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0hlYWQnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZE1vYmlsZSB9IGZyb20gJy4vU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZE1vYmlsZSc7XG5pbXBvcnQge1xuICBGb3JtVHlwZSxcbiAgVFNhbXBsaW5nUHJvcGVydGllcyxcbiAgY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYSxcbiAgaXNDb2xsZWN0TGF5b3V0LFxuICBwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYSxcbiAgc2FtcGxpbmdQcm9wZXJ0eSxcbiAgY29sbGVjdGlvblRpbWVGb3JtYXQsXG59IGZyb20gJy4vc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IFNhbXBsZXJJblByb2Nlc3MgZnJvbSAnLi9TYW1wbGVySW5Qcm9jZXNzJztcblxuY29uc3QgaXNQcm9wZXJ0aWVzUGFnZSA9IChwYWdlVHlwZSkgPT4gcGFnZVR5cGUgPT09ICdlZGl0JztcblxuZXhwb3J0IGNvbnN0IFNhbXBsaW5nUHJvcGVydGllczogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IFtjb2xsZWN0aW9uVGltZSwgc2V0Q29sbGVjdGlvblRpbWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgRGF0ZSB8IG51bGw+KFxuICAgIG5ldyBEYXRlKCksXG4gICk7XG4gIGNvbnN0IFtwaG90b3MsIHNldFBob3Rvc10gPSB1c2VTdGF0ZTxzdHJpbmcgfCBCbG9iIHwgYW55PihbXSk7XG4gIGNvbnN0IFtwaG90b3NUb0RlbGV0ZSwgc2V0UGhvdG9zVG9EZWxldGVdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgY29uc3QgW3NhdmluZ01zZywgc2V0U2F2aW5nTXNnXSA9IHVzZVN0YXRlPHN0cmluZz4oaTE4bi50KCdidXR0b25zLnNhdmUnKSk7XG4gIGNvbnN0IFtzYW1wbGluZ1VwZGF0ZWQsIHNldFNhbXBsaW5nVXBkYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzYW1wbGluZ1BsYW4sIHNldFNhbXBsaW5nUGxhbl0gPSB1c2VTdGF0ZTxcbiAgICBTYW1wbGluZ0ZldGNoRGF0YSB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcbiAgY29uc3QgZGF0ZUZvcm1hdCA9XG4gICAgdXNlckluZm8uZGF0ZV90aW1lX2Zvcm1hdCA9PT0gJ3VzJ1xuICAgICAgPyAnTU1NIGQsIHl5eXkgaGg6bW0gYWEnXG4gICAgICA6ICdkL01NL3l5eXkgSEg6bW0nO1xuICBjb25zdCBwYWdlVHlwZSA9IHVzZVJlZjxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3NhbXBsaW5nUHJvcGVydGllcywgc2V0U2FtcGxpbmdQcm9wZXJ0aWVzXSA9XG4gICAgdXNlU3RhdGU8VFNhbXBsaW5nUHJvcGVydGllcz4oKTtcbiAgY29uc3QgeyBzYW1wbGVJZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IGxvY2FsZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUubmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZSxcbiAgKTtcblxuICBjb25zdCBpbml0Rm9ybWlrVmFsdWVzID0gKFxuICAgIHNhbXBsaW5nUHJvcGVydGllcyxcbiAgICBpc0NhbmNlbGVkLFxuICAgIHRpbWVab25lLFxuICAgIHVzZXJJbmZvLFxuICApID0+IHtcbiAgICBjb25zdCBwYWdlQ29sbGVjdGlvblRpbWUgPSBpc0NvbGxlY3RMYXlvdXQocGFnZVR5cGUuY3VycmVudClcbiAgICAgID8gY29sbGVjdGlvblRpbWVcbiAgICAgIDogY29sbGVjdGlvblRpbWVGb3JtYXQoXG4gICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmNvbGxlY3Rpb25fdGltZSxcbiAgICAgICAgICB0aW1lWm9uZSxcbiAgICAgICAgKTtcbiAgICBjb25zdCBzYW0gPSBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmc7XG4gICAgbGV0IGZvcm1pa1ZhbHVlczogRm9ybVR5cGUgPSB7XG4gICAgICBsYWJfaWQ6IHNhbS5sYWJfaWQsXG4gICAgICBjb2xsZWN0aW9uX3RpbWU6IHBhZ2VDb2xsZWN0aW9uVGltZSxcbiAgICAgIHB1bXBfc2FtcGxpbmdfdm9sdW1lOiBzYW0ucHVtcF9zYW1wbGluZ192b2x1bWUsXG4gICAgICBwdW1wX2JhdHRlcnlfbGV2ZWw6IHNhbS5wdW1wX2JhdHRlcnlfbGV2ZWwsXG4gICAgICBkZXNjcmlwdGlvbjogc2FtLmRlc2NyaXB0aW9uLFxuICAgICAga2FuZG9fcmVwOiBzYW0ua2FuZG9fcmVwLFxuICAgICAgc2FtcGxpbmdfcGxhbl9pZDogc2FtLnNhbXBsaW5nX3BsYW5faWQsXG4gICAgICBjYW5jZWxsYXRpb25fcmVhc29uOiBzYW0uY2FuY2VsbGF0aW9uX3JlYXNvbiB8fCAnJyxcbiAgICAgIGlzX2NhbmNlbGVkOiBpc0NhbmNlbGVkLFxuICAgIH07XG5cbiAgICBpZiAoaXNDYW5jZWxsZWRMYXlvdXQoc2FtcGxpbmdQcm9wZXJ0aWVzKSlcbiAgICAgIGZvcm1pa1ZhbHVlcy5jYW5jZWxlZF9ieV9pZCA9IHtcbiAgICAgICAgbmFtZTpcbiAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuY2FuY2VsZWRfYnlfbmFtZSB8fFxuICAgICAgICAgIHVzZXJJbmZvLmZpcnN0X25hbWUgKyAnICcgKyB1c2VySW5mby5sYXN0X25hbWUsXG4gICAgICAgIGlkOiBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuY2FuY2VsZWRfYnlfaWQgfHwgdXNlckluZm8uaWQsXG4gICAgICB9O1xuICAgIGZvcm1pa1ZhbHVlcy5rYW5kb19yZXAgPSBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcua2FuZG9fcmVwO1xuICAgIGZvcm1pay5zZXRWYWx1ZXMoZm9ybWlrVmFsdWVzKTtcbiAgfTtcblxuICBjb25zdCBpc0NhbmNlbGxlZExheW91dCA9IChzYW1wbGluZ1Byb3BlcnRpZXMpID0+IHtcbiAgICBjb25zdCBwYWdlVHlwZTJpc0NhbmNlbGxlZCA9IHtcbiAgICAgIGNhbmNlbDogdHJ1ZSxcbiAgICAgIGNvbGxlY3Q6IGZhbHNlLFxuICAgICAgcmV2ZXJ0X2NhbmNlbDogZmFsc2UsXG4gICAgfTtcbiAgICBsZXQgaXNDYW5jZWxlZCA9IHBhZ2VUeXBlMmlzQ2FuY2VsbGVkW3BhZ2VUeXBlLmN1cnJlbnRdO1xuICAgIGlmIChpc0NhbmNlbGVkID09PSBudWxsKSB7XG4gICAgICBpc0NhbmNlbGVkID0gc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmlzX2NhbmNlbGVkIHx8IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gaXNDYW5jZWxlZDtcbiAgfTtcblxuICBjb25zdCBmZXRjaFNhbXBsaW5nUHJvcGVydGllcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChzYW1wbGluZ0lkID0gc2FtcGxlSWQsIG9wKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgICAgdXJscyh7IHNhbXBsaW5nSWQ6IHNhbXBsaW5nSWQgfSkuc2FtcGxpbmdQcm9wZXJ0aWVzLmZldGNoU2FtcGxpbmcudXJsLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNhbXBsaW5nID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIGNvbnN0IHNhbXBsaW5nUHJvcGVydGllcyA9IHNhbXBsaW5nLnNhbXBsaW5nX3Byb3BlcnRpZXM7XG4gICAgICBwYWdlVHlwZS5jdXJyZW50ID0gZGV0ZWN0UGFnZVR5cGUoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCxcbiAgICAgICAgb3AsXG4gICAgICApO1xuICAgICAgc2V0Q29sbGVjdGlvblRpbWUoXG4gICAgICAgIGRldGVybWluZUNvbGxlY3Rpb25UaW1lKFxuICAgICAgICAgIGNvbGxlY3Rpb25UaW1lRm9ybWF0KFxuICAgICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmNvbGxlY3Rpb25fdGltZSxcbiAgICAgICAgICAgIHNhbXBsaW5nLnNhbXBsaW5nX3BsYW4udGltZV96b25lLFxuICAgICAgICAgICksXG4gICAgICAgICAgb3AsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgbGV0IGlzQ2FuY2VsZWQgPSBpc0NhbmNlbGxlZExheW91dChcbiAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmlzX2NhbmNlbGVkLFxuICAgICAgKTtcbiAgICAgIGluaXRGb3JtaWtWYWx1ZXMoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcyxcbiAgICAgICAgaXNDYW5jZWxlZCxcbiAgICAgICAgc2FtcGxpbmcuc2FtcGxpbmdfcGxhbi50aW1lX3pvbmUsXG4gICAgICAgIHVzZXJJbmZvLFxuICAgICAgKTtcbiAgICAgIHNldFNhbXBsaW5nUHJvcGVydGllcyhzYW1wbGluZ1Byb3BlcnRpZXMpO1xuICAgICAgc2V0U2FtcGxpbmdQbGFuKHNhbXBsaW5nLnNhbXBsaW5nX3BsYW4pO1xuICAgIH0sXG4gICAgW10sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmZXRjaFNhbXBsaW5nUHJvcGVydGllcyhzYW1wbGVJZCwgZ2V0VXJsUXVlcnlPcCgpKTtcbiAgfSwgW3NhbXBsaW5nVXBkYXRlZF0pO1xuXG4gIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSBpc0NvbGxlY3RMYXlvdXQocGFnZVR5cGUuY3VycmVudClcbiAgICA/IHByb3BlcnRpZXNWYWxpZGF0aW9uU2NoZW1hXG4gICAgOiBjYW5jZWxsYXRpb25WYWxpZGF0aW9uU2NoZW1hO1xuICBjb25zdCBmb3JtaWsgPSB1c2VGb3JtaWs8Rm9ybWlrQ29uZmlnPEZvcm1UeXBlPj4oe1xuICAgIGVuYWJsZVJlaW5pdGlhbGl6ZTogdHJ1ZSxcbiAgICBpbml0aWFsVmFsdWVzOiBzYW1wbGluZ1Byb3BlcnR5LFxuICAgIHZhbGlkYXRpb25TY2hlbWE6IHZhbGlkYXRpb25TY2hlbWEsXG4gICAgdmFsaWRhdGVPbkNoYW5nZTogZmFsc2UsXG4gICAgdmFsaWRhdGVPbkJsdXI6IHRydWUsXG4gICAgb25TdWJtaXQ6ICh2YWx1ZXMpID0+IHtcbiAgICAgIGhhbmRsZVN1Ym1pdCh2YWx1ZXMpO1xuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIGlmIChsb2NhdGlvbi5rZXkpIHtcbiAgICAgIGhpc3RvcnkuZ29CYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgdXJscyh7IGxvY2FsZSwgd2F0ZXJBdXRob3JpdHlJZCB9KS5zYW1wbGluZ3NQYWdlLnNhbXBsaW5nc0xpc3RSb3V0ZS51cmwsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAodmFsdWVzKSA9PiB7XG4gICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5zYXZpbmcnKSk7XG4gICAgdmFsdWVzLnBpY3R1cmVzX2F0dHJpYnV0ZXMgPSBwaG90b3M7XG4gICAgaWYgKHZhbHVlcy5jYW5jZWxlZF9ieV9pZCAmJiBpc0NhbmNlbGxlZExheW91dChzYW1wbGluZ1Byb3BlcnRpZXMpKVxuICAgICAgdmFsdWVzLmNhbmNlbGVkX2J5X2lkID1cbiAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzPy5zYW1wbGluZz8uY2FuY2VsZWRfYnlfaWQgfHwgdXNlckluZm8uaWQ7XG4gICAgY29uc3Qgc2F2ZUZvcm1EYXRhID0gZm9ybURhdGFCdWlsZGVyKHZhbHVlcyk7XG4gICAgdXBkYXRlT3JDcmVhdGUoc2F2ZUZvcm1EYXRhKTtcbiAgfTtcblxuICBjb25zdCBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLnNhdmUnKSk7XG4gICAgfSwgMzAwMCk7XG4gIH07XG5cbiAgY29uc3QgZm9ybURhdGFCdWlsZGVyID0gKHZhbHVlcykgPT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWVzKSB7XG4gICAgICBpZiAoa2V5ICE9PSAncGljdHVyZXNfYXR0cmlidXRlcycpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNba2V5XSA9PT0gbnVsbCA/ICcnIDogdmFsdWVzW2tleV07XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbJHtrZXl9XWAsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHVuaXF1ZVBob3Rvc1RvRGVsZXRlID0gWy4uLm5ldyBTZXQocGhvdG9zVG9EZWxldGUpXTtcbiAgICB1bmlxdWVQaG90b3NUb0RlbGV0ZS5sZW5ndGggIT09IDAgJiZcbiAgICAgIHVuaXF1ZVBob3Rvc1RvRGVsZXRlLmZvckVhY2goKGlkLCBpbmRleCkgPT4ge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgYHNhbXBsaW5nW3BpY3R1cmVzX2F0dHJpYnV0ZXNdWyR7aW5kZXh9XVtpZF1gLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGlkKSxcbiAgICAgICAgKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGBzYW1wbGluZ1twaWN0dXJlc19hdHRyaWJ1dGVzXVske2luZGV4fV1bX2Rlc3Ryb3ldYCxcbiAgICAgICAgICAndHJ1ZScsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZm9ybURhdGE7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlT3JDcmVhdGUgPSBhc3luYyAoZm9ybURhdGEpID0+IHtcbiAgICBjb25zdCB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MgPSAobXNnKSA9PiB7XG4gICAgICBzZXRTYXZpbmdNc2coaTE4bi50KG1zZykpO1xuICAgICAgc2V0U2FtcGxpbmdVcGRhdGVkKHRydWUpO1xuICAgICAgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0KCk7XG4gICAgICBoYW5kbGVDbG9zZSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBzYW1wbGluZ0lEID0gc2FtcGxpbmdQcm9wZXJ0aWVzPy5zYW1wbGluZz8uaWQ7XG4gICAgaWYgKHNhbXBsaW5nSUQgPT09IG51bGwpIHtcbiAgICAgIC8vIGNyZWF0ZVxuICAgICAgZm9ybURhdGEuYXBwZW5kKGBzYW1wbGluZ1tkYXRlXWAsIGNvbGxlY3Rpb25UaW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF4aW9zLnBvc3QoXG4gICAgICAgICAgdXJscyh7XG4gICAgICAgICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgICAgIH0pLnNhbXBsaW5nUHJvcGVydGllcy5jcmVhdGVTYW1wbGluZy51cmwsXG4gICAgICAgICAgZm9ybURhdGEsXG4gICAgICAgICk7XG4gICAgICAgIHVwZGF0ZU9yQ3JlYXRlU3VjY2VzcygnYnV0dG9ucy5jcmVhdGVkJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuZXJyb3InKSk7XG4gICAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGFnZVR5cGUuY3VycmVudCA9PT0gJ3JldmVydF9jYW5jZWwnKSB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbY29sbGVjdGlvbl90aW1lXWAsIGNvbGxlY3Rpb25UaW1lKTtcbiAgICAgIH1cbiAgICAgIC8vIHVwZGF0ZVxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYXhpb3MucHV0KFxuICAgICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lELCB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkIH0pXG4gICAgICAgICAgICAuc2FtcGxpbmdQcm9wZXJ0aWVzLnVwZGF0ZVNhbXBsaW5nLnVybCxcbiAgICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAgKTtcbiAgICAgICAgdXBkYXRlT3JDcmVhdGVTdWNjZXNzKCdidXR0b25zLnVwZGF0ZWQnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5lcnJvcicpKTtcbiAgICAgICAgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0KCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRldGVjdFBhZ2VUeXBlID0gKGlzU2FtcGxpbmdDYW5jZWxsZWQsIG9wKSA9PiB7XG4gICAgY29uc3QgZWRpdFBhZ2VWYWx1ZSA9IGlzU2FtcGxpbmdDYW5jZWxsZWQgPyAnY2FuY2VsJyA6ICdjb2xsZWN0JztcbiAgICBpZiAob3AgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ09MTEVDVF9TQU1QTElOR19PUCkge1xuICAgICAgcmV0dXJuICdjb2xsZWN0JztcbiAgICB9IGVsc2UgaWYgKG9wID09PSBDQU5DRUxfU0FNUExJTkdfT1ApIHtcbiAgICAgIHJldHVybiAnY2FuY2VsJztcbiAgICB9IGVsc2UgaWYgKG9wID09PSBSRVZFUlRfQ0FOQ0VMTEFUSU9OKSB7XG4gICAgICByZXR1cm4gJ3JldmVydF9jYW5jZWwnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGV0ZXJtaW5lQ29sbGVjdGlvblRpbWUgPSAoc2VydmVyQ29sbGVjdGlvblRpbWUsIG9wKSA9PiB7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHNlcnZlclRpbWUgPSBzZXJ2ZXJDb2xsZWN0aW9uVGltZVxuICAgICAgPyBuZXcgRGF0ZShzZXJ2ZXJDb2xsZWN0aW9uVGltZSlcbiAgICAgIDogY3VycmVudFRpbWU7XG4gICAgY29uc3QgZWRpdFBhZ2VWYWx1ZSA9IHNlcnZlckNvbGxlY3Rpb25UaW1lID8gc2VydmVyVGltZSA6IGN1cnJlbnRUaW1lO1xuICAgIGlmIChvcCA9PT0gJ2VkaXQnKSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wID09PSBDT0xMRUNUX1NBTVBMSU5HX09QKSB7XG4gICAgICByZXR1cm4gY3VycmVudFRpbWU7XG4gICAgfSBlbHNlIGlmIChbQ0FOQ0VMX1NBTVBMSU5HX09QLCBSRVZFUlRfQ0FOQ0VMTEFUSU9OXS5pbmNsdWRlcyhvcCkpIHtcbiAgICAgIHJldHVybiBzZXJ2ZXJUaW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0VXJsUXVlcnlPcCA9ICgpID0+IHtcbiAgICBsZXQgb3AgPSBxdWVyeS5nZXQoJ29wJyk7XG4gICAgLy8gaWYgbm90IHByZXNlbnQgdGhlbiBkZWZhdWx0IG9wIGlzICdjb2xsZWN0aW5nJ1xuICAgIGlmIChbdW5kZWZpbmVkLCBudWxsLCAnJ10uaW5jbHVkZXMob3ApKSB7XG4gICAgICByZXR1cm4gQ09MTEVDVF9TQU1QTElOR19PUDtcbiAgICB9XG4gICAgcmV0dXJuIG9wO1xuICB9O1xuXG4gIGlmICghc2FtcGxpbmdQbGFuIHx8ICFzYW1wbGluZ1Byb3BlcnRpZXMpIHtcbiAgICByZXR1cm4gPFNwaW5uZXIgLz47XG4gIH1cblxuICBpZiAoc2FtcGxpbmdQcm9wZXJ0aWVzLmlzX3B1bXBfaW5fcHJvZ3Jlc3MpIHtcbiAgICByZXR1cm4gPFNhbXBsZXJJblByb2Nlc3MgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfSAvPjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGZvcm0gb25TdWJtaXQ9e2Zvcm1pay5oYW5kbGVTdWJtaXR9PlxuICAgICAgPExheW91dD5cbiAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc1N0eWxlPlxuICAgICAgICAgIHshaXNNb2JpbGUgJiYgKFxuICAgICAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc0hlYWRcbiAgICAgICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzPXtzYW1wbGluZ1Byb3BlcnRpZXN9XG4gICAgICAgICAgICAgIHNhbXBsaW5nPXtzYW1wbGluZ1BsYW59XG4gICAgICAgICAgICAgIGZvcm1paz17Zm9ybWlrfVxuICAgICAgICAgICAgICBwYWdlVHlwZT17cGFnZVR5cGUuY3VycmVudH1cbiAgICAgICAgICAgICAgY29sbGVjdGlvblRpbWU9e2NvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRDb2xsZWN0aW9uVGltZT17c2V0Q29sbGVjdGlvblRpbWV9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBpc0RhdGVQaWNrZXJEaXNhYmxlZD17aXNQcm9wZXJ0aWVzUGFnZShwYWdlVHlwZSl9XG4gICAgICAgICAgICAgIGRhdGVGb3JtYXQ9e2RhdGVGb3JtYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7aXNNb2JpbGUgJiYgKFxuICAgICAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGVcbiAgICAgICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzPXtzYW1wbGluZ1Byb3BlcnRpZXN9XG4gICAgICAgICAgICAgIHNhbXBsaW5nPXtzYW1wbGluZ1BsYW59XG4gICAgICAgICAgICAgIGZvcm1paz17Zm9ybWlrfVxuICAgICAgICAgICAgICBwYWdlVHlwZT17cGFnZVR5cGUuY3VycmVudH1cbiAgICAgICAgICAgICAgY29sbGVjdGlvblRpbWU9e2NvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRDb2xsZWN0aW9uVGltZT17c2V0Q29sbGVjdGlvblRpbWV9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBpc0RhdGVQaWNrZXJEaXNhYmxlZD17aXNQcm9wZXJ0aWVzUGFnZShwYWdlVHlwZSl9XG4gICAgICAgICAgICAgIGRhdGVGb3JtYXQ9e2RhdGVGb3JtYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2FtcGxpbmdQcm9wZXJ0aWVzICYmIHBhZ2VUeXBlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNGb3JtXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBwYWdlVHlwZT17cGFnZVR5cGUuY3VycmVudH1cbiAgICAgICAgICAgICAgc2V0U2FtcGxpbmdVcGRhdGVkPXtzZXRTYW1wbGluZ1VwZGF0ZWR9XG4gICAgICAgICAgICAgIHNhdmluZ01zZz17c2F2aW5nTXNnfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgIHNldFBob3Rvc1RvRGVsZXRlPXtzZXRQaG90b3NUb0RlbGV0ZX1cbiAgICAgICAgICAgICAgc2V0UGhvdG9zPXtzZXRQaG90b3N9XG4gICAgICAgICAgICAgIHBob3Rvcz17cGhvdG9zfVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TYW1w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
347
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0RGV2aWNlRGV0ZWN0IiwiX2Zvcm1payIsIl9yZWFjdFJvdXRlckRvbSIsIl9yZWFjdFJlZHV4IiwiX0xheW91dCIsIl9pMThuIiwiX3VzZVF1ZXJ5VVJMIiwiX1NwaW5uZXIiLCJfdXJscyIsIl9zdHlsZXMiLCJfc2FtcGxpbmdzUGFnZVV0aWxzIiwiX1NhbXBsaW5nUHJvcGVydGllc0Zvcm0iLCJfU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCIsIl9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlIiwiX3NhbXBsaW5nUHJvcGVydGllc1V0aWxzIiwiX1NhbXBsZXJJblByb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInByb3RvdHlwZSIsIm8iLCJ2YWx1ZSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXR1cm4iLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJjYXRjaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJpc1Byb3BlcnRpZXNQYWdlIiwicGFnZVR5cGUiLCJTYW1wbGluZ1Byb3BlcnRpZXMiLCJleHBvcnRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJEYXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImNvbGxlY3Rpb25UaW1lIiwic2V0Q29sbGVjdGlvblRpbWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBob3RvcyIsInNldFBob3RvcyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicGhvdG9zVG9EZWxldGUiLCJzZXRQaG90b3NUb0RlbGV0ZSIsIl91c2VTdGF0ZTciLCJpMThuIiwiX3VzZVN0YXRlOCIsInNhdmluZ01zZyIsInNldFNhdmluZ01zZyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNhbXBsaW5nVXBkYXRlZCIsInNldFNhbXBsaW5nVXBkYXRlZCIsIl91c2VTdGF0ZTExIiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlMTIiLCJzYW1wbGluZ1BsYW4iLCJzZXRTYW1wbGluZ1BsYW4iLCJoaXN0b3J5IiwidXNlSGlzdG9yeSIsImxvY2F0aW9uIiwidXNlTG9jYXRpb24iLCJxdWVyeSIsInVzZVF1ZXJ5VVJMIiwidXNlckluZm8iLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJkYXRlRm9ybWF0IiwiZGF0ZV90aW1lX2Zvcm1hdCIsInVzZVJlZiIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzYW1wbGluZ1Byb3BlcnRpZXMiLCJzZXRTYW1wbGluZ1Byb3BlcnRpZXMiLCJfdXNlUGFyYW1zIiwidXNlUGFyYW1zIiwic2FtcGxlSWQiLCJ3YXRlckF1dGhvcml0eUlkIiwiZ2xvYmFsX2RhdGEiLCJsb2NhbGUiLCJuYXZfY29udGV4dF9kYXRhIiwibmF2Q29udGV4dCIsImluaXRGb3JtaWtWYWx1ZXMiLCJpc0NhbmNlbGVkIiwidGltZVpvbmUiLCJwYWdlQ29sbGVjdGlvblRpbWUiLCJpc0NvbGxlY3RMYXlvdXQiLCJjdXJyZW50IiwiY29sbGVjdGlvblRpbWVGb3JtYXQiLCJzYW1wbGluZyIsImNvbGxlY3Rpb25fdGltZSIsInNhbSIsImZvcm1pa1ZhbHVlcyIsImxhYl9pZCIsInB1bXBfc2FtcGxpbmdfdm9sdW1lIiwicHVtcF9iYXR0ZXJ5X2xldmVsIiwiZGVzY3JpcHRpb24iLCJrYW5kb19yZXAiLCJzYW1wbGluZ19wbGFuX2lkIiwiY2FuY2VsbGF0aW9uX3JlYXNvbiIsImlzX2NhbmNlbGVkIiwiaXNDYW5jZWxsZWRMYXlvdXQiLCJjYW5jZWxlZF9ieV9pZCIsImNhbmNlbGVkX2J5X25hbWUiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwiaWQiLCJmb3JtaWsiLCJzZXRWYWx1ZXMiLCJwYWdlVHlwZTJpc0NhbmNlbGxlZCIsImNhbmNlbCIsImNvbGxlY3QiLCJyZXZlcnRfY2FuY2VsIiwiZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMiLCJ1c2VDYWxsYmFjayIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9jYWxsZWUiLCJzYW1wbGluZ0lkIiwib3AiLCJyZXNwb25zZSIsIl9hcmdzIiwiYXJndW1lbnRzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImF4aW9zIiwidXJscyIsImZldGNoU2FtcGxpbmciLCJ1cmwiLCJkYXRhIiwic2FtcGxpbmdfcHJvcGVydGllcyIsImRldGVjdFBhZ2VUeXBlIiwiZGV0ZXJtaW5lQ29sbGVjdGlvblRpbWUiLCJzYW1wbGluZ19wbGFuIiwidGltZV96b25lIiwidXNlRWZmZWN0IiwiZ2V0VXJsUXVlcnlPcCIsInZhbGlkYXRpb25TY2hlbWEiLCJwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYSIsImNhbmNlbGxhdGlvblZhbGlkYXRpb25TY2hlbWEiLCJ1c2VGb3JtaWsiLCJlbmFibGVSZWluaXRpYWxpemUiLCJpbml0aWFsVmFsdWVzIiwic2FtcGxpbmdQcm9wZXJ0eSIsInZhbGlkYXRlT25DaGFuZ2UiLCJ2YWxpZGF0ZU9uQmx1ciIsIm9uU3VibWl0IiwiaGFuZGxlU3VibWl0IiwiaGFuZGxlQ2xvc2UiLCJrZXkiLCJnb0JhY2siLCJzYW1wbGluZ3NQYWdlIiwic2FtcGxpbmdzTGlzdFJvdXRlIiwiX3NhbXBsaW5nUHJvcGVydGllcyRzIiwicGljdHVyZXNfYXR0cmlidXRlcyIsInNhdmVGb3JtRGF0YSIsImZvcm1EYXRhQnVpbGRlciIsInVwZGF0ZU9yQ3JlYXRlIiwic2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0Iiwic2V0VGltZW91dCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJjb25jYXQiLCJ1bmlxdWVQaG90b3NUb0RlbGV0ZSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJTZXQiLCJpbmRleCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfcmVmMiIsIl9jYWxsZWUyIiwiX3NhbXBsaW5nUHJvcGVydGllcyRzMiIsInVwZGF0ZU9yQ3JlYXRlU3VjY2VzcyIsInNhbXBsaW5nSUQiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJtc2ciLCJwb3N0IiwiY3JlYXRlU2FtcGxpbmciLCJ0MCIsInB1dCIsInVwZGF0ZVNhbXBsaW5nIiwidDEiLCJfeCIsImFwcGx5IiwiaXNTYW1wbGluZ0NhbmNlbGxlZCIsImVkaXRQYWdlVmFsdWUiLCJDT0xMRUNUX1NBTVBMSU5HX09QIiwiQ0FOQ0VMX1NBTVBMSU5HX09QIiwiUkVWRVJUX0NBTkNFTExBVElPTiIsInNlcnZlckNvbGxlY3Rpb25UaW1lIiwiY3VycmVudFRpbWUiLCJzZXJ2ZXJUaW1lIiwiaW5jbHVkZXMiLCJjcmVhdGVFbGVtZW50IiwiU3Bpbm5lciIsImlzX3B1bXBfaW5fcHJvZ3Jlc3MiLCJTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZSIsImlzTW9iaWxlIiwiU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCIsImlzRGF0ZVBpY2tlckRpc2FibGVkIiwiU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZE1vYmlsZSIsIlNhbXBsaW5nUHJvcGVydGllc0Zvcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvU2FtcGxpbmdzUGFnZS9TYW1wbGluZ1Byb3BlcnRpZXMvU2FtcGxpbmdQcm9wZXJ0aWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHJvcGVydGllcyBhbmQgQ2FuY2VsbGluZyBmb3Jtcy5cbiAqKi9cbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBGb3JtaWtDb25maWcgfSBmcm9tICdmb3JtaWsvZGlzdC90eXBlcyc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJ3JlYWN0LWRldmljZS1kZXRlY3QnO1xuaW1wb3J0IHsgdXNlRm9ybWlrIH0gZnJvbSAnZm9ybWlrJztcbmltcG9ydCB7IHVzZUhpc3RvcnksIHVzZVBhcmFtcywgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgTGF5b3V0IGZyb20gJ3NyYy91aS1raXQvTGF5b3V0L0xheW91dCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJ3NyYy9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3VybHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGUgfSBmcm9tICcuL3N0eWxlcyc7XG5pbXBvcnQge1xuICBDQU5DRUxfU0FNUExJTkdfT1AsXG4gIENPTExFQ1RfU0FNUExJTkdfT1AsXG4gIFJFVkVSVF9DQU5DRUxMQVRJT04sXG4gIFNhbXBsaW5nRmV0Y2hEYXRhLFxufSBmcm9tICcuLi9zYW1wbGluZ3NQYWdlVXRpbHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSB9IGZyb20gJy4vU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNIZWFkIH0gZnJvbSAnLi9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUgfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUnO1xuaW1wb3J0IHtcbiAgRm9ybVR5cGUsXG4gIFRTYW1wbGluZ1Byb3BlcnRpZXMsXG4gIGNhbmNlbGxhdGlvblZhbGlkYXRpb25TY2hlbWEsXG4gIGlzQ29sbGVjdExheW91dCxcbiAgcHJvcGVydGllc1ZhbGlkYXRpb25TY2hlbWEsXG4gIHNhbXBsaW5nUHJvcGVydHksXG4gIGNvbGxlY3Rpb25UaW1lRm9ybWF0LFxufSBmcm9tICcuL3NhbXBsaW5nUHJvcGVydGllc1V0aWxzJztcbmltcG9ydCBTYW1wbGVySW5Qcm9jZXNzIGZyb20gJy4vU2FtcGxlckluUHJvY2Vzcyc7XG5cbmNvbnN0IGlzUHJvcGVydGllc1BhZ2UgPSAocGFnZVR5cGUpID0+IHBhZ2VUeXBlID09PSAnZWRpdCc7XG5cbmV4cG9ydCBjb25zdCBTYW1wbGluZ1Byb3BlcnRpZXM6IEZDID0gKCkgPT4ge1xuICBjb25zdCBbY29sbGVjdGlvblRpbWUsIHNldENvbGxlY3Rpb25UaW1lXSA9IHVzZVN0YXRlPHN0cmluZyB8IERhdGUgfCBudWxsPihcbiAgICBuZXcgRGF0ZSgpLFxuICApO1xuICBjb25zdCBbcGhvdG9zLCBzZXRQaG90b3NdID0gdXNlU3RhdGU8c3RyaW5nIHwgQmxvYiB8IGFueT4oW10pO1xuICBjb25zdCBbcGhvdG9zVG9EZWxldGUsIHNldFBob3Rvc1RvRGVsZXRlXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSk7XG4gIGNvbnN0IFtzYXZpbmdNc2csIHNldFNhdmluZ01zZ10gPSB1c2VTdGF0ZTxzdHJpbmc+KGkxOG4udCgnYnV0dG9ucy5zYXZlJykpO1xuICBjb25zdCBbc2FtcGxpbmdVcGRhdGVkLCBzZXRTYW1wbGluZ1VwZGF0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2FtcGxpbmdQbGFuLCBzZXRTYW1wbGluZ1BsYW5dID0gdXNlU3RhdGU8XG4gICAgU2FtcGxpbmdGZXRjaERhdGEgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgdXNlckluZm8gPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnBlcm1pc3Npb25zLnVzZXJfaW5mbyk7XG4gIGNvbnN0IGRhdGVGb3JtYXQgPVxuICAgIHVzZXJJbmZvLmRhdGVfdGltZV9mb3JtYXQgPT09ICd1cydcbiAgICAgID8gJ01NTSBkLCB5eXl5IGhoOm1tIGFhJ1xuICAgICAgOiAnZC9NTS95eXl5IEhIOm1tJztcbiAgY29uc3QgcGFnZVR5cGUgPSB1c2VSZWY8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtzYW1wbGluZ1Byb3BlcnRpZXMsIHNldFNhbXBsaW5nUHJvcGVydGllc10gPVxuICAgIHVzZVN0YXRlPFRTYW1wbGluZ1Byb3BlcnRpZXM+KCk7XG4gIGNvbnN0IHsgc2FtcGxlSWQgfSA9IHVzZVBhcmFtcygpO1xuICBjb25zdCB3YXRlckF1dGhvcml0eUlkID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICApO1xuICBjb25zdCBsb2NhbGUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLm5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGUsXG4gICk7XG5cbiAgY29uc3QgaW5pdEZvcm1pa1ZhbHVlcyA9IChcbiAgICBzYW1wbGluZ1Byb3BlcnRpZXMsXG4gICAgaXNDYW5jZWxlZCxcbiAgICB0aW1lWm9uZSxcbiAgICB1c2VySW5mbyxcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFnZUNvbGxlY3Rpb25UaW1lID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgICA/IGNvbGxlY3Rpb25UaW1lXG4gICAgICA6IGNvbGxlY3Rpb25UaW1lRm9ybWF0KFxuICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5jb2xsZWN0aW9uX3RpbWUsXG4gICAgICAgICAgdGltZVpvbmUsXG4gICAgICAgICk7XG4gICAgY29uc3Qgc2FtID0gc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nO1xuICAgIGxldCBmb3JtaWtWYWx1ZXM6IEZvcm1UeXBlID0ge1xuICAgICAgbGFiX2lkOiBzYW0ubGFiX2lkLFxuICAgICAgY29sbGVjdGlvbl90aW1lOiBwYWdlQ29sbGVjdGlvblRpbWUsXG4gICAgICBwdW1wX3NhbXBsaW5nX3ZvbHVtZTogc2FtLnB1bXBfc2FtcGxpbmdfdm9sdW1lLFxuICAgICAgcHVtcF9iYXR0ZXJ5X2xldmVsOiBzYW0ucHVtcF9iYXR0ZXJ5X2xldmVsLFxuICAgICAgZGVzY3JpcHRpb246IHNhbS5kZXNjcmlwdGlvbixcbiAgICAgIGthbmRvX3JlcDogc2FtLmthbmRvX3JlcCxcbiAgICAgIHNhbXBsaW5nX3BsYW5faWQ6IHNhbS5zYW1wbGluZ19wbGFuX2lkLFxuICAgICAgY2FuY2VsbGF0aW9uX3JlYXNvbjogc2FtLmNhbmNlbGxhdGlvbl9yZWFzb24gfHwgJycsXG4gICAgICBpc19jYW5jZWxlZDogaXNDYW5jZWxlZCxcbiAgICB9O1xuXG4gICAgaWYgKGlzQ2FuY2VsbGVkTGF5b3V0KHNhbXBsaW5nUHJvcGVydGllcykpXG4gICAgICBmb3JtaWtWYWx1ZXMuY2FuY2VsZWRfYnlfaWQgPSB7XG4gICAgICAgIG5hbWU6XG4gICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzLmNhbmNlbGVkX2J5X25hbWUgfHxcbiAgICAgICAgICB1c2VySW5mby5maXJzdF9uYW1lICsgJyAnICsgdXNlckluZm8ubGFzdF9uYW1lLFxuICAgICAgICBpZDogc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmNhbmNlbGVkX2J5X2lkIHx8IHVzZXJJbmZvLmlkLFxuICAgICAgfTtcbiAgICBmb3JtaWtWYWx1ZXMua2FuZG9fcmVwID0gc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmthbmRvX3JlcDtcbiAgICBmb3JtaWsuc2V0VmFsdWVzKGZvcm1pa1ZhbHVlcyk7XG4gIH07XG5cbiAgY29uc3QgaXNDYW5jZWxsZWRMYXlvdXQgPSAoc2FtcGxpbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgcGFnZVR5cGUyaXNDYW5jZWxsZWQgPSB7XG4gICAgICBjYW5jZWw6IHRydWUsXG4gICAgICBjb2xsZWN0OiBmYWxzZSxcbiAgICAgIHJldmVydF9jYW5jZWw6IGZhbHNlLFxuICAgIH07XG4gICAgbGV0IGlzQ2FuY2VsZWQgPSBwYWdlVHlwZTJpc0NhbmNlbGxlZFtwYWdlVHlwZS5jdXJyZW50XTtcbiAgICBpZiAoaXNDYW5jZWxlZCA9PT0gbnVsbCkge1xuICAgICAgaXNDYW5jZWxlZCA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCB8fCBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQ2FuY2VsZWQ7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2FtcGxpbmdJZCA9IHNhbXBsZUlkLCBvcCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQoXG4gICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lkIH0pLnNhbXBsaW5nUHJvcGVydGllcy5mZXRjaFNhbXBsaW5nLnVybCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzYW1wbGluZyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICBjb25zdCBzYW1wbGluZ1Byb3BlcnRpZXMgPSBzYW1wbGluZy5zYW1wbGluZ19wcm9wZXJ0aWVzO1xuICAgICAgcGFnZVR5cGUuY3VycmVudCA9IGRldGVjdFBhZ2VUeXBlKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuaXNfY2FuY2VsZWQsXG4gICAgICAgIG9wLFxuICAgICAgKTtcbiAgICAgIHNldENvbGxlY3Rpb25UaW1lKFxuICAgICAgICBkZXRlcm1pbmVDb2xsZWN0aW9uVGltZShcbiAgICAgICAgICBjb2xsZWN0aW9uVGltZUZvcm1hdChcbiAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5jb2xsZWN0aW9uX3RpbWUsXG4gICAgICAgICAgICBzYW1wbGluZy5zYW1wbGluZ19wbGFuLnRpbWVfem9uZSxcbiAgICAgICAgICApLFxuICAgICAgICAgIG9wLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGxldCBpc0NhbmNlbGVkID0gaXNDYW5jZWxsZWRMYXlvdXQoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCxcbiAgICAgICk7XG4gICAgICBpbml0Rm9ybWlrVmFsdWVzKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMsXG4gICAgICAgIGlzQ2FuY2VsZWQsXG4gICAgICAgIHNhbXBsaW5nLnNhbXBsaW5nX3BsYW4udGltZV96b25lLFxuICAgICAgICB1c2VySW5mbyxcbiAgICAgICk7XG4gICAgICBzZXRTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxpbmdQcm9wZXJ0aWVzKTtcbiAgICAgIHNldFNhbXBsaW5nUGxhbihzYW1wbGluZy5zYW1wbGluZ19wbGFuKTtcbiAgICB9LFxuICAgIFtdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxlSWQsIGdldFVybFF1ZXJ5T3AoKSk7XG4gIH0sIFtzYW1wbGluZ1VwZGF0ZWRdKTtcblxuICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgPyBwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYVxuICAgIDogY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYTtcbiAgY29uc3QgZm9ybWlrID0gdXNlRm9ybWlrPEZvcm1pa0NvbmZpZzxGb3JtVHlwZT4+KHtcbiAgICBlbmFibGVSZWluaXRpYWxpemU6IHRydWUsXG4gICAgaW5pdGlhbFZhbHVlczogc2FtcGxpbmdQcm9wZXJ0eSxcbiAgICB2YWxpZGF0aW9uU2NoZW1hOiB2YWxpZGF0aW9uU2NoZW1hLFxuICAgIHZhbGlkYXRlT25DaGFuZ2U6IGZhbHNlLFxuICAgIHZhbGlkYXRlT25CbHVyOiB0cnVlLFxuICAgIG9uU3VibWl0OiAodmFsdWVzKSA9PiB7XG4gICAgICBoYW5kbGVTdWJtaXQodmFsdWVzKTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBpZiAobG9jYXRpb24ua2V5KSB7XG4gICAgICBoaXN0b3J5LmdvQmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIHVybHMoeyBsb2NhbGUsIHdhdGVyQXV0aG9yaXR5SWQgfSkuc2FtcGxpbmdzUGFnZS5zYW1wbGluZ3NMaXN0Um91dGUudXJsLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcykgPT4ge1xuICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuc2F2aW5nJykpO1xuICAgIHZhbHVlcy5waWN0dXJlc19hdHRyaWJ1dGVzID0gcGhvdG9zO1xuICAgIGlmICh2YWx1ZXMuY2FuY2VsZWRfYnlfaWQgJiYgaXNDYW5jZWxsZWRMYXlvdXQoc2FtcGxpbmdQcm9wZXJ0aWVzKSlcbiAgICAgIHZhbHVlcy5jYW5jZWxlZF9ieV9pZCA9XG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz8uc2FtcGxpbmc/LmNhbmNlbGVkX2J5X2lkIHx8IHVzZXJJbmZvLmlkO1xuICAgIGNvbnN0IHNhdmVGb3JtRGF0YSA9IGZvcm1EYXRhQnVpbGRlcih2YWx1ZXMpO1xuICAgIHVwZGF0ZU9yQ3JlYXRlKHNhdmVGb3JtRGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0ID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5zYXZlJykpO1xuICAgIH0sIDMwMDApO1xuICB9O1xuXG4gIGNvbnN0IGZvcm1EYXRhQnVpbGRlciA9ICh2YWx1ZXMpID0+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlcykge1xuICAgICAgaWYgKGtleSAhPT0gJ3BpY3R1cmVzX2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2tleV0gPT09IG51bGwgPyAnJyA6IHZhbHVlc1trZXldO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nWyR7a2V5fV1gLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCB1bmlxdWVQaG90b3NUb0RlbGV0ZSA9IFsuLi5uZXcgU2V0KHBob3Rvc1RvRGVsZXRlKV07XG4gICAgdW5pcXVlUGhvdG9zVG9EZWxldGUubGVuZ3RoICE9PSAwICYmXG4gICAgICB1bmlxdWVQaG90b3NUb0RlbGV0ZS5mb3JFYWNoKChpZCwgaW5kZXgpID0+IHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGBzYW1wbGluZ1twaWN0dXJlc19hdHRyaWJ1dGVzXVske2luZGV4fV1baWRdYCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShpZCksXG4gICAgICAgICk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBgc2FtcGxpbmdbcGljdHVyZXNfYXR0cmlidXRlc11bJHtpbmRleH1dW19kZXN0cm95XWAsXG4gICAgICAgICAgJ3RydWUnLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZU9yQ3JlYXRlID0gYXN5bmMgKGZvcm1EYXRhKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlT3JDcmVhdGVTdWNjZXNzID0gKG1zZykgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udChtc2cpKTtcbiAgICAgIHNldFNhbXBsaW5nVXBkYXRlZCh0cnVlKTtcbiAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgaGFuZGxlQ2xvc2UoKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2FtcGxpbmdJRCA9IHNhbXBsaW5nUHJvcGVydGllcz8uc2FtcGxpbmc/LmlkO1xuICAgIGlmIChzYW1wbGluZ0lEID09PSBudWxsKSB7XG4gICAgICAvLyBjcmVhdGVcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbZGF0ZV1gLCBjb2xsZWN0aW9uVGltZSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBheGlvcy5wb3N0KFxuICAgICAgICAgIHVybHMoe1xuICAgICAgICAgICAgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgICB9KS5zYW1wbGluZ1Byb3BlcnRpZXMuY3JlYXRlU2FtcGxpbmcudXJsLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICApO1xuICAgICAgICB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MoJ2J1dHRvbnMuY3JlYXRlZCcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLmVycm9yJykpO1xuICAgICAgICBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBhZ2VUeXBlLmN1cnJlbnQgPT09ICdyZXZlcnRfY2FuY2VsJykge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nW2NvbGxlY3Rpb25fdGltZV1gLCBjb2xsZWN0aW9uVGltZSk7XG4gICAgICB9XG4gICAgICAvLyB1cGRhdGVcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF4aW9zLnB1dChcbiAgICAgICAgICB1cmxzKHsgc2FtcGxpbmdJZDogc2FtcGxpbmdJRCwgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCB9KVxuICAgICAgICAgICAgLnNhbXBsaW5nUHJvcGVydGllcy51cGRhdGVTYW1wbGluZy51cmwsXG4gICAgICAgICAgZm9ybURhdGEsXG4gICAgICAgICk7XG4gICAgICAgIHVwZGF0ZU9yQ3JlYXRlU3VjY2VzcygnYnV0dG9ucy51cGRhdGVkJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuZXJyb3InKSk7XG4gICAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZXRlY3RQYWdlVHlwZSA9IChpc1NhbXBsaW5nQ2FuY2VsbGVkLCBvcCkgPT4ge1xuICAgIGNvbnN0IGVkaXRQYWdlVmFsdWUgPSBpc1NhbXBsaW5nQ2FuY2VsbGVkID8gJ2NhbmNlbCcgOiAnY29sbGVjdCc7XG4gICAgaWYgKG9wID09PSAnZWRpdCcpIHtcbiAgICAgIHJldHVybiBlZGl0UGFnZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3AgPT09IENPTExFQ1RfU0FNUExJTkdfT1ApIHtcbiAgICAgIHJldHVybiAnY29sbGVjdCc7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ0FOQ0VMX1NBTVBMSU5HX09QKSB7XG4gICAgICByZXR1cm4gJ2NhbmNlbCc7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gUkVWRVJUX0NBTkNFTExBVElPTikge1xuICAgICAgcmV0dXJuICdyZXZlcnRfY2FuY2VsJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRldGVybWluZUNvbGxlY3Rpb25UaW1lID0gKHNlcnZlckNvbGxlY3Rpb25UaW1lLCBvcCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzZXJ2ZXJUaW1lID0gc2VydmVyQ29sbGVjdGlvblRpbWVcbiAgICAgID8gbmV3IERhdGUoc2VydmVyQ29sbGVjdGlvblRpbWUpXG4gICAgICA6IGN1cnJlbnRUaW1lO1xuICAgIGNvbnN0IGVkaXRQYWdlVmFsdWUgPSBzZXJ2ZXJDb2xsZWN0aW9uVGltZSA/IHNlcnZlclRpbWUgOiBjdXJyZW50VGltZTtcbiAgICBpZiAob3AgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ09MTEVDVF9TQU1QTElOR19PUCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgIH0gZWxzZSBpZiAoW0NBTkNFTF9TQU1QTElOR19PUCwgUkVWRVJUX0NBTkNFTExBVElPTl0uaW5jbHVkZXMob3ApKSB7XG4gICAgICByZXR1cm4gc2VydmVyVGltZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldFVybFF1ZXJ5T3AgPSAoKSA9PiB7XG4gICAgbGV0IG9wID0gcXVlcnkuZ2V0KCdvcCcpO1xuICAgIC8vIGlmIG5vdCBwcmVzZW50IHRoZW4gZGVmYXVsdCBvcCBpcyAnY29sbGVjdGluZydcbiAgICBpZiAoW3VuZGVmaW5lZCwgbnVsbCwgJyddLmluY2x1ZGVzKG9wKSkge1xuICAgICAgcmV0dXJuIENPTExFQ1RfU0FNUExJTkdfT1A7XG4gICAgfVxuICAgIHJldHVybiBvcDtcbiAgfTtcblxuICBpZiAoIXNhbXBsaW5nUGxhbiB8fCAhc2FtcGxpbmdQcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIDxTcGlubmVyIC8+O1xuICB9XG5cbiAgaWYgKHNhbXBsaW5nUHJvcGVydGllcy5pc19wdW1wX2luX3Byb2dyZXNzKSB7XG4gICAgcmV0dXJuIDxTYW1wbGVySW5Qcm9jZXNzIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZX0gLz47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtmb3JtaWsuaGFuZGxlU3VibWl0fT5cbiAgICAgIDxMYXlvdXQ+XG4gICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZT5cbiAgICAgICAgICB7IWlzTW9iaWxlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNIZWFkXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25UaW1lPXtjb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0Q29sbGVjdGlvblRpbWU9e3NldENvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgaXNEYXRlUGlja2VyRGlzYWJsZWQ9e2lzUHJvcGVydGllc1BhZ2UocGFnZVR5cGUpfVxuICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2lzTW9iaWxlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25UaW1lPXtjb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0Q29sbGVjdGlvblRpbWU9e3NldENvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgaXNEYXRlUGlja2VyRGlzYWJsZWQ9e2lzUHJvcGVydGllc1BhZ2UocGFnZVR5cGUpfVxuICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NhbXBsaW5nUHJvcGVydGllcyAmJiBwYWdlVHlwZSAmJiAoXG4gICAgICAgICAgICA8U2FtcGxpbmdQcm9wZXJ0aWVzRm9ybVxuICAgICAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc31cbiAgICAgICAgICAgICAgc2FtcGxpbmc9e3NhbXBsaW5nUGxhbn1cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBzYXZpbmdNc2c9e3NhdmluZ01zZ31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICBzZXRQaG90b3NUb0RlbGV0ZT17c2V0UGhvdG9zVG9EZWxldGV9XG4gICAgICAgICAgICAgIHNldFBob3Rvcz17c2V0UGhvdG9zfVxuICAgICAgICAgICAgICBwaG90b3M9e3Bob3Rvc31cbiAgICAgICAgICAgICAgZm9ybWlrPXtmb3JtaWt9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGU+XG4gICAgICA8L0xheW91dD5cbiAgICA8L2Zvcm0+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMs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