@kando-env/kando-ui 1.2.383 → 1.2.385-alpha.0
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.
- package/lib/Router.js +78 -36
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +35 -25
- package/lib/Widgets/EventsRow/EventsRow.js +39 -27
- package/lib/Widgets/Map/GraphUtils.js +3 -3
- package/lib/Widgets/Map/Map.js +138 -99
- package/lib/Widgets/Map/MapUtils.js +99 -82
- package/lib/Widgets/Map/areas/AreaPolygon.js +77 -53
- package/lib/Widgets/Map/areas/AreaPolygons.js +24 -23
- package/lib/Widgets/Map/areas/AreaUtils.js +46 -47
- package/lib/Widgets/Map/areas/Patterns.js +4 -4
- package/lib/Widgets/Map/edges/Edge.js +37 -33
- package/lib/Widgets/Map/edges/Edges.js +26 -21
- package/lib/Widgets/Map/edges/arrows/Arrows.js +44 -23
- package/lib/Widgets/Map/events/Event.js +17 -17
- package/lib/Widgets/Map/events/EventIndicator.js +60 -65
- package/lib/Widgets/Map/events/EventPath.js +23 -25
- package/lib/Widgets/Map/events/EventUtils.js +80 -60
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +18 -17
- package/lib/Widgets/Map/events/PointOfEvent.js +34 -29
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +37 -30
- package/lib/Widgets/Map/events/Snail.js +20 -19
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +86 -93
- package/lib/Widgets/Map/map/FloatingGraph.js +18 -22
- package/lib/Widgets/Map/map/GraphDateButton.js +17 -25
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +12 -13
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +15 -16
- package/lib/Widgets/Map/points/PointIcon.js +15 -22
- package/lib/Widgets/Map/points/PointMarker.js +87 -71
- package/lib/Widgets/Map/points/PointMarkers.js +66 -45
- package/lib/Widgets/Map/points/PointUtils.js +83 -145
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +47 -30
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +10 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +12 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/Areas.js +60 -31
- package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
- package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +8 -11
- package/lib/Widgets/MostPolluting/Factories/Factories.js +70 -39
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +18 -15
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +10 -12
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
- package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
- package/lib/Widgets/MostPolluting/MostPolluting.js +35 -25
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +22 -18
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +4 -6
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +4 -6
- package/lib/Widgets/MostPolluting/assets/index.js +10 -10
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +13 -19
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +30 -35
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +35 -45
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +35 -39
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -28
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +50 -54
- package/lib/Widgets/MostPolluting/styles.js +3 -3
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +5 -7
- package/lib/Widgets/PotentialImpactSummary/Icon.js +10 -12
- package/lib/Widgets/PotentialImpactSummary/index.js +27 -19
- package/lib/Widgets/PotentialImpactSummary/index.test.js +52 -47
- package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +7 -9
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +17 -22
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +32 -35
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +24 -26
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +37 -35
- package/lib/Widgets/QualitySummary/QualitySummary.js +13 -9
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
- package/lib/Widgets/QualitySummary/styles.js +15 -23
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +13 -12
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +26 -27
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +24 -29
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +37 -23
- package/lib/Widgets/UtilityInformation/styles.js +25 -34
- package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
- package/lib/assets/icons/TopNavbar/index.js +6 -6
- package/lib/assets/icons/TrendSvg.js +6 -6
- package/lib/assets/icons/index.js +15 -15
- package/lib/assets/icons/kandoStepper/index.js +5 -5
- package/lib/assets/icons/siteTypes/index.js +1 -1
- package/lib/components/ApplyButton/ApplyButton.js +9 -9
- package/lib/components/Backdrop/Backdrop.js +4 -6
- package/lib/components/ContentLoader/ContentLoader.js +9 -11
- package/lib/components/ContentLoader/index.js +1 -1
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -13
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +5 -3
- package/lib/components/CustomInputs/DoubleTabs/styles.js +12 -20
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +20 -13
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +4 -6
- package/lib/components/CustomInputs/Search/Search.js +63 -42
- package/lib/components/CustomInputs/Select/Select.js +58 -45
- package/lib/components/CustomInputs/Select/Select.stories.js +6 -4
- package/lib/components/DamageType/DamageType.js +57 -35
- package/lib/components/DataLoaderError/DataLoaderError.js +6 -8
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +10 -9
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +71 -70
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -27
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +12 -10
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
- package/lib/components/DischargeHeatmap/popupText.js +10 -10
- package/lib/components/DischargeHeatmap/titles.js +3 -3
- package/lib/components/ErrorBoundary.js +41 -27
- package/lib/components/Events/Events.js +58 -41
- package/lib/components/Graph/Graph.js +96 -77
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +21 -17
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +33 -25
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +5 -3
- package/lib/components/Header/DoubleTabs/styles.js +4 -4
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.stories.js +5 -3
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +34 -22
- package/lib/components/Header/InfoBar/InfoBar.js +103 -74
- package/lib/components/Header/InfoBar/Search/Control.js +9 -9
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +5 -7
- package/lib/components/Header/InfoBar/Search/Search.js +21 -16
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +33 -21
- package/lib/components/Header/InfoBar/Search/searchStyle.js +49 -41
- package/lib/components/Header/InfoBar/TimeFilter.js +14 -11
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +89 -64
- package/lib/components/Header/Slideshow/Slideshow.js +90 -68
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +4 -6
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +23 -21
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +43 -37
- package/lib/components/Header/Toolbar/Toolbar.js +74 -55
- package/lib/components/InfoBar/InfoBar.js +23 -10
- package/lib/components/InfoBar/InfoBar.stories.js +5 -3
- package/lib/components/KandoModal/KandoModal.js +41 -27
- package/lib/components/Link.js +7 -8
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +8 -9
- package/lib/components/Links/StyledLink/StyledLink.js +12 -12
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +10 -11
- package/lib/components/LiveEvents/CarouselSlide.js +7 -9
- package/lib/components/LiveEvents/LiveEvents.js +3 -5
- package/lib/components/LoaderByPercent/LoaderByPercent.js +29 -37
- package/lib/components/Map/Map.js +23 -20
- package/lib/components/Modal/Modal.js +9 -9
- package/lib/components/NarrowHeader.js +31 -17
- package/lib/components/PointInfo/PointInfo.js +17 -19
- package/lib/components/PopupModal/PopupModal.js +16 -12
- package/lib/components/PopupModal/PopupModal.stories.js +19 -15
- package/lib/components/Sector/Sector.js +23 -18
- package/lib/components/Sector/Sector.test.js +20 -19
- package/lib/components/Sector/SectorIconsNew.js +112 -0
- package/lib/components/Sector/sectorIcons.js +2 -2
- package/lib/components/SevereEvent/Eta/Eta.js +52 -49
- package/lib/components/SevereEvent/Eta/styles.js +6 -10
- package/lib/components/SevereEvent/SevereEvent.js +37 -30
- package/lib/components/Spinner/Spinner.js +8 -8
- package/lib/components/Spinner/Spinner.stories.js +6 -4
- package/lib/components/Spinner/styles.js +14 -22
- package/lib/components/Tabs/Tabs.js +29 -21
- package/lib/components/Tabs/Tabs.stories.js +6 -4
- package/lib/components/Tabs/assets/index.js +5 -5
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +15 -12
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +51 -40
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +31 -19
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +25 -20
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
- package/lib/components/TimeRangeSelector/TimeRangeList.js +24 -23
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +25 -17
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +32 -31
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +6 -4
- package/lib/components/TimeRangeSelector/constants.js +3 -3
- package/lib/components/Toggle/Toggle.js +17 -12
- package/lib/components/TrendGraph/TrendGraph.js +39 -23
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +33 -27
- package/lib/development-environment/index.js +12 -8
- package/lib/development-environment/mock/browser.js +4 -2
- package/lib/development-environment/mock/get.js +10 -8
- package/lib/development-environment/mock/handlers.js +2 -2
- package/lib/development-environment/mock/mockBus.js +4 -4
- package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
- package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
- package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
- package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
- package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
- package/lib/development-environment/togly/ToglyDashboard.js +22 -13
- package/lib/development-environment/togly/ToglyItem.js +31 -36
- package/lib/development-environment/togly/init.js +2 -2
- package/lib/development-environment/togly/macro.js +10 -14
- package/lib/development-environment/togly/useDoubleKeyDown.js +9 -7
- package/lib/development-environment/togly/useLocalStorage.js +18 -13
- package/lib/hooks/useApi.js +55 -19
- package/lib/hooks/useApiWithDashboardQuery.js +49 -30
- package/lib/hooks/useClickOutside.js +3 -3
- package/lib/hooks/useInitializeHeaders.js +5 -5
- package/lib/hooks/useKandoFetch.js +29 -16
- package/lib/hooks/useMap.js +34 -22
- package/lib/hooks/useNavContext.js +26 -22
- package/lib/hooks/useRemoveExistingLayers.js +6 -6
- package/lib/hooks/useUpdateEventBodyTail.js +17 -13
- package/lib/hooks/useUserTimeZone.js +30 -33
- package/lib/hooks/useUserTimeZone.test.js +22 -19
- package/lib/hooks/useWindowSize.js +14 -7
- package/lib/i18n/en.json +15 -0
- package/lib/index.js +12 -11
- package/lib/macros/getVersion.js +3 -3
- package/lib/pages/AreaPage/AreaPage.js +67 -34
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +17 -16
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +31 -30
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +25 -17
- package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
- package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
- package/lib/pages/AssessmentPage/AssessmentPage.js +46 -40
- package/lib/pages/CannyWidget/Feedback.js +13 -13
- package/lib/pages/CovidPage/CovidPage.js +13 -8
- package/lib/pages/CovidPage/components/Body.js +27 -25
- package/lib/pages/CovidPage/components/Map.js +39 -29
- package/lib/pages/CovidPage/components/Sidebar.js +15 -16
- package/lib/pages/CovidPage/components/Summary.js +27 -20
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +33 -27
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +73 -51
- package/lib/pages/CovidPage/components/areas/Area.js +40 -29
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +46 -55
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +35 -32
- package/lib/pages/CovidPage/components/areas/AreasList.js +46 -34
- package/lib/pages/CovidPage/components/areas/Sort.js +14 -11
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
- package/lib/pages/DashboardMap/AreaCard.js +28 -28
- package/lib/pages/DashboardMap/AssessmentIcon.js +7 -8
- package/lib/pages/DashboardMap/Capacity.js +80 -31
- package/lib/pages/DashboardMap/FactoryCard.js +26 -31
- package/lib/pages/DashboardMap/HighchartsOptions.js +4 -5
- package/lib/pages/DashboardMap/List.js +105 -74
- package/lib/pages/DashboardMap/ListContext.js +19 -15
- package/lib/pages/DashboardMap/Loader.js +2 -2
- package/lib/pages/DashboardMap/SeverityBadge.js +21 -14
- package/lib/pages/DashboardMap/WWTPMap.js +60 -48
- package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
- package/lib/pages/DashboardMap/Widget.js +71 -54
- package/lib/pages/DashboardMap/utils.js +65 -48
- package/lib/pages/EventsPage/Body/Body.js +15 -20
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +19 -17
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +35 -27
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +6 -8
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +7 -11
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +30 -21
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +64 -53
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +31 -19
- package/lib/pages/EventsPage/EventsPage.js +10 -7
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +38 -26
- package/lib/pages/EventsPage/events/MoreInfo.js +16 -17
- package/lib/pages/EventsPage/events/Sidebar.js +18 -22
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
- package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +20 -17
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +35 -30
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +37 -40
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +42 -43
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
- package/lib/pages/EventsPage/events/event_info/EventSection.js +19 -17
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +38 -43
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +47 -39
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +4 -6
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +33 -30
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +36 -29
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +6 -4
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +9 -7
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +21 -22
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +19 -12
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +26 -22
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +8 -12
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +4 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +10 -12
- package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +8 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +12 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +4 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
- package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
- package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +5 -7
- package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +15 -17
- package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
- package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +8 -10
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +11 -16
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +8 -9
- package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
- package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +38 -25
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +36 -29
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +9 -11
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +17 -15
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +30 -27
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +26 -23
- package/lib/pages/EventsPage/events/event_info/styles.js +12 -20
- package/lib/pages/EventsPage/events/events_list/EventItem.js +19 -18
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
- package/lib/pages/EventsPage/events/events_list/EventsList.js +145 -124
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +55 -40
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +115 -79
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +77 -60
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +41 -38
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +36 -29
- package/lib/pages/EventsPage/events/events_list/Sort.js +16 -13
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +20 -13
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +4 -6
- package/lib/pages/ImportFileWizard/ImportFile.js +22 -20
- package/lib/pages/ImportFileWizard/ResponseBody.js +33 -24
- package/lib/pages/ImportFileWizard/ValidationForm.js +22 -23
- package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
- package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
- package/lib/pages/ImportGisPage/ImportGisContainer.js +24 -21
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +23 -21
- package/lib/pages/ImportGisPage/importGisUtils.js +21 -13
- package/lib/pages/ImportGisProcess/index.js +15 -12
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +12 -7
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +19 -17
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +65 -56
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -6
- package/lib/pages/NotificationsPage/Notification/Notification.js +12 -16
- package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
- package/lib/pages/NotificationsPage/Notifications.stories.js +6 -4
- package/lib/pages/NotificationsPage/NotificationsPage.js +36 -18
- package/lib/pages/NotificationsPage/assets/index.js +9 -9
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +97 -71
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +63 -94
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +16 -14
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +16 -18
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +21 -17
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +21 -17
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +22 -18
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +69 -83
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +22 -18
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +95 -97
- package/lib/pages/NotificationsPageV2/notificationUtils.js +48 -54
- package/lib/pages/OldSitePage/OldSitePage.js +132 -57
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +6 -8
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +20 -18
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +18 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -18
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +63 -51
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +53 -29
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +10 -11
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +11 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +28 -32
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +29 -27
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +12 -18
- package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +130 -0
- package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +64 -0
- package/lib/pages/PollutionRiskAssessment/FilterButton.js +36 -0
- package/lib/pages/PollutionRiskAssessment/Map.js +49 -0
- package/lib/pages/PollutionRiskAssessment/Map.scss +59 -0
- package/lib/pages/PollutionRiskAssessment/TotalSavings.js +51 -0
- package/lib/pages/PollutionRiskAssessment/UseCases.js +53 -0
- package/lib/pages/PollutionRiskAssessment/contact_us.svg +18 -0
- package/lib/pages/PollutionRiskAssessment/filter_button.svg +5 -0
- package/lib/pages/PollutionRiskAssessment/index.js +246 -0
- package/lib/pages/PollutionRiskAssessment/index.scss +45 -0
- package/lib/pages/PollutionRiskAssessment/pig.svg +3 -0
- package/lib/pages/PollutionRiskAssessment/useMap.js +132 -0
- package/lib/pages/PollutionRiskAssessment/use_cases.json +50 -0
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +44 -28
- package/lib/pages/ProfilePage/ProfilePage.js +214 -121
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +33 -25
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +16 -19
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +30 -28
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +117 -57
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +20 -17
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +10 -12
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +41 -39
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +26 -25
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +15 -13
- package/lib/pages/SamplingsPage/NavigationDropdown.js +32 -45
- package/lib/pages/SamplingsPage/NewSamplingAction.js +100 -76
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +101 -129
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +22 -21
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +22 -34
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +59 -36
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +18 -15
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +7 -9
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +194 -110
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +55 -49
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +43 -47
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +45 -49
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +20 -19
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +6 -10
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +54 -58
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +28 -21
- package/lib/pages/SamplingsPage/SamplingsPage.js +33 -27
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +58 -50
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +76 -68
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +4 -6
- package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +13 -14
- package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +13 -10
- package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +10 -14
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -9
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +23 -26
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +17 -14
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +32 -36
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +24 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -18
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +70 -58
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +26 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
- package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +37 -29
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +11 -10
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +59 -60
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +39 -30
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +12 -18
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +7 -11
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +30 -31
- package/lib/pages/SitePage/SitePage.js +81 -42
- package/lib/pages/UploadLabResult/index.js +13 -13
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +35 -26
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +8 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +8 -9
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +5 -3
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +48 -47
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +6 -10
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +6 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +12 -13
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +12 -15
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +29 -21
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +30 -26
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +17 -16
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +13 -7
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +31 -27
- package/lib/pages/WbeDashboard/ExpandableComponent.js +8 -9
- package/lib/pages/WbeDashboard/GraphWrapper.js +36 -30
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -17
- package/lib/pages/WbeDashboard/SearchInput.js +20 -15
- package/lib/pages/WbeDashboard/SummaryGraph.js +76 -50
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +17 -19
- package/lib/pages/WbeDashboard/Tabs.js +11 -11
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +213 -151
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +48 -40
- package/lib/pages/WwtpPage/DashboardCard.js +23 -26
- package/lib/pages/WwtpPage/DischargePatternCard.js +23 -14
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +22 -26
- package/lib/pages/WwtpPage/InletsCard/InletsCard.js +18 -19
- package/lib/pages/WwtpPage/Map.js +3 -5
- package/lib/pages/WwtpPage/OrganicCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +6 -8
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +8 -9
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +14 -18
- package/lib/pages/WwtpPage/PredictionCard.js +2 -2
- package/lib/pages/WwtpPage/TrendCard.js +19 -18
- package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
- package/lib/pages/WwtpPage/WwtpPage.js +8 -8
- package/lib/pages/WwtpPage/WwtpPageContainer.js +16 -21
- package/lib/providers/Slideshow/SlideshowContext.js +9 -11
- package/lib/providers/Slideshow/SlideshowProvider.js +38 -22
- package/lib/providers/Slideshow/SlideshowRunner.js +19 -17
- package/lib/providers/UrlHistory/UrlHistoryContext.js +4 -6
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +11 -12
- package/lib/providers/UrlHistory/index.js +2 -2
- package/lib/providers/UrlHistory/useLastVisited.js +5 -5
- package/lib/store/ImportGis/actionTypes.js +1 -1
- package/lib/store/ImportGis/actionsCreator.js +5 -7
- package/lib/store/ImportGis/reducer.js +29 -40
- package/lib/store/WBE/actionTypes.js +2 -2
- package/lib/store/WBE/reducer.js +9 -13
- package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +14 -24
- package/lib/store/areas/actionTypes.js +4 -4
- package/lib/store/areas/actions.js +13 -7
- package/lib/store/areas/reducer.js +6 -8
- package/lib/store/context/actionTypes.js +3 -3
- package/lib/store/context/actions.js +3 -3
- package/lib/store/context/contextMiddlewares.js +16 -14
- package/lib/store/context/reducer.js +9 -13
- package/lib/store/dashboard/dashboardSlice.js +10 -18
- package/lib/store/edges/actionTypes.js +5 -5
- package/lib/store/edges/actions.js +8 -4
- package/lib/store/edges/reducer.js +17 -13
- package/lib/store/events/actionTypes.js +17 -17
- package/lib/store/events/actions.js +7 -3
- package/lib/store/events/reducer.js +49 -42
- package/lib/store/global/actionTypes.js +11 -11
- package/lib/store/global/actions.js +6 -8
- package/lib/store/global/reducer.js +10 -11
- package/lib/store/permissions/permissionsSlice.js +8 -12
- package/lib/store/points/actionTypes.js +3 -3
- package/lib/store/points/actions.js +8 -4
- package/lib/store/points/models/IGeoPoint.js +6 -0
- package/lib/store/points/reducer.js +5 -7
- package/lib/store/rootActionTypes.js +2 -2
- package/lib/store/rootReducer.js +12 -17
- package/lib/store/rootStore.js +5 -5
- package/lib/store/samplings/actionTypes.js +1 -1
- package/lib/store/samplings/reducer.js +14 -16
- package/lib/styles/StylesLayout.js +3 -5
- package/lib/styles/theme/theme.js +28 -27
- package/lib/test/mocks/browser.js +4 -2
- package/lib/test/test-utils.js +15 -17
- package/lib/ui-kit/Button/Button.js +80 -128
- package/lib/ui-kit/Button/Button.test.js +29 -24
- package/lib/ui-kit/Checkbox/Checkbox.js +26 -31
- package/lib/ui-kit/ContentCard/ContentCard.js +18 -15
- package/lib/ui-kit/Dashboard/Dashboard.js +22 -25
- package/lib/ui-kit/DropDown/DropDown.js +24 -23
- package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
- package/lib/ui-kit/DropDown/DropDownItem.js +21 -24
- package/lib/ui-kit/DropDown/DropdownToggle.js +8 -12
- package/lib/ui-kit/EmptyState/EmptyState.js +4 -6
- package/lib/ui-kit/IconAction/IconAction.js +5 -7
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +64 -48
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +52 -69
- package/lib/ui-kit/InletsPie/InletsPie.js +13 -15
- package/lib/ui-kit/InletsPie/options.js +6 -6
- package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +44 -0
- package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +18 -0
- package/lib/ui-kit/KandoList/KandoList.js +12 -14
- package/lib/ui-kit/KandoTable/KandoTable.js +40 -48
- package/lib/ui-kit/KandoTable/KandoTable.test.js +22 -16
- package/lib/ui-kit/Layout/Layout.js +4 -6
- package/lib/ui-kit/MobileInput/MobileInput.js +50 -60
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +16 -13
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +6 -8
- package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
- package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +20 -27
- package/lib/ui-kit/OrganicEvents/TextInfo.js +10 -15
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +8 -10
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +17 -14
- package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
- package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
- package/lib/ui-kit/ScoreGauge/constant.js +3 -3
- package/lib/ui-kit/TimeLineChart/TrendChart.js +42 -54
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +7 -8
- package/lib/ui-kit/Tooltip/Tooltip.js +8 -14
- package/lib/ui-kit/index.js +8 -8
- package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
- package/lib/ui-kit/siteName/SiteName.js +8 -11
- package/lib/utilities/ActionUtility.js +7 -7
- package/lib/utilities/Alert.js +17 -21
- package/lib/utilities/Analytics.js +11 -11
- package/lib/utilities/Array.js +5 -4
- package/lib/utilities/Enum.js +51 -15
- package/lib/utilities/ErrorBoundary.js +41 -27
- package/lib/utilities/File.js +69 -40
- package/lib/utilities/GetDir.js +7 -8
- package/lib/utilities/KandoDate.js +15 -7
- package/lib/utilities/KandoModal.js +26 -16
- package/lib/utilities/LocalStorage.js +10 -8
- package/lib/utilities/ThousandsToK.js +3 -3
- package/lib/utilities/TimeFormat.js +20 -21
- package/lib/utilities/Truncate.js +25 -17
- package/lib/utilities/edgesMath.js +15 -14
- package/lib/utilities/i18n.js +3 -3
- package/lib/utilities/kql.js +14 -12
- package/lib/utilities/map/icons.js +3 -3
- package/lib/utilities/polylinedecorator.js +112 -87
- package/lib/utilities/scoreToData.js +17 -17
- package/lib/utilities/scoreToData.test.js +5 -5
- package/lib/utilities/time.js +8 -8
- package/lib/utilities/uploadToS3.js +11 -11
- package/lib/utilities/urls.js +64 -61
- package/package.json +3 -1
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
8
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
14
|
var _reactBootstrap = require("react-bootstrap");
|
|
@@ -27,51 +31,67 @@ var _urls = require("utilities/urls");
|
|
|
27
31
|
var _reactRedux = require("react-redux");
|
|
28
32
|
var _actionsCreator = require("store/samplings/actionsCreator");
|
|
29
33
|
var _IconAction = _interopRequireDefault(require("../../ui-kit/IconAction/IconAction"));
|
|
30
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
refetch
|
|
48
|
-
} = (0, _reactQuery.useQuery)('selector_points', async () => {
|
|
49
|
-
const waterAuthorityPointsURL = (0, _urls.urls)({
|
|
50
|
-
waterAuthorityId
|
|
51
|
-
}).samplingsPage.getPoints.url;
|
|
52
|
-
const response = await _axios.default.get(waterAuthorityPointsURL);
|
|
53
|
-
return response.data.data.points;
|
|
54
|
-
}, {
|
|
55
|
-
refetchOnWindowFocus: false
|
|
34
|
+
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); }
|
|
35
|
+
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; }
|
|
36
|
+
var NewSamplingAction = function NewSamplingAction(_ref) {
|
|
37
|
+
var waterAuthorityId = _ref.waterAuthorityId;
|
|
38
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
39
|
+
t = _useTranslation.t;
|
|
40
|
+
var _useState = (0, _react.useState)(false),
|
|
41
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
42
|
+
isOpen = _useState2[0],
|
|
43
|
+
setIsOpen = _useState2[1];
|
|
44
|
+
var _useSelector = (0, _reactRedux.useSelector)(function (state) {
|
|
45
|
+
return state.samplings_data;
|
|
46
|
+
}),
|
|
47
|
+
perPage = _useSelector.perPage;
|
|
48
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
49
|
+
var userInfo = (0, _reactRedux.useSelector)(function (state) {
|
|
50
|
+
return state.permissions.user_info;
|
|
56
51
|
});
|
|
57
|
-
|
|
52
|
+
var _useQuery = (0, _reactQuery.useQuery)('selector_points', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
53
|
+
var waterAuthorityPointsURL, response;
|
|
54
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
55
|
+
while (1) {
|
|
56
|
+
switch (_context.prev = _context.next) {
|
|
57
|
+
case 0:
|
|
58
|
+
waterAuthorityPointsURL = (0, _urls.urls)({
|
|
59
|
+
waterAuthorityId: waterAuthorityId
|
|
60
|
+
}).samplingsPage.getPoints.url;
|
|
61
|
+
_context.next = 3;
|
|
62
|
+
return _axios.default.get(waterAuthorityPointsURL);
|
|
63
|
+
case 3:
|
|
64
|
+
response = _context.sent;
|
|
65
|
+
return _context.abrupt("return", response.data.data.points);
|
|
66
|
+
case 5:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context.stop();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, _callee);
|
|
72
|
+
})), {
|
|
73
|
+
refetchOnWindowFocus: false
|
|
74
|
+
}),
|
|
75
|
+
points = _useQuery.data,
|
|
76
|
+
refetch = _useQuery.refetch;
|
|
77
|
+
var createSamplingMutation = (0, _reactQuery.useMutation)(function (newSamplingValues) {
|
|
58
78
|
// @ts-ignore
|
|
59
79
|
_axios.default.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('[name=csrf-token]').content;
|
|
60
80
|
_axios.default.defaults.headers.common['Content-Type'] = 'application/js';
|
|
61
81
|
return _axios.default.put((0, _urls.urls)({
|
|
62
|
-
waterAuthorityId
|
|
63
|
-
}).samplingsPage.createNewSampling.url, newSamplingValues).then(res
|
|
82
|
+
waterAuthorityId: waterAuthorityId
|
|
83
|
+
}).samplingsPage.createNewSampling.url, newSamplingValues).then(function (res) {
|
|
64
84
|
_reactToastify.toast.success(t('samplings_page.sampling_created'), {
|
|
65
85
|
position: 'top-center'
|
|
66
86
|
});
|
|
67
87
|
setIsOpen(false);
|
|
68
|
-
}).catch(e
|
|
88
|
+
}).catch(function (e) {
|
|
69
89
|
_reactToastify.toast.error(t('samplings_page.sampling_not_created'), {
|
|
70
90
|
position: 'top-center'
|
|
71
91
|
});
|
|
72
92
|
});
|
|
73
93
|
}, {
|
|
74
|
-
onSuccess: ()
|
|
94
|
+
onSuccess: function onSuccess() {
|
|
75
95
|
// Refresh the samplings hack
|
|
76
96
|
dispatch((0, _actionsCreator.setSamplingData)({
|
|
77
97
|
perPage: perPage - 1
|
|
@@ -84,37 +104,39 @@ const NewSamplingAction = _ref => {
|
|
|
84
104
|
}
|
|
85
105
|
});
|
|
86
106
|
|
|
87
|
-
(0, _react.useEffect)(()
|
|
107
|
+
(0, _react.useEffect)(function () {
|
|
88
108
|
refetch();
|
|
89
109
|
setIsOpen(false);
|
|
90
110
|
}, [waterAuthorityId]);
|
|
91
|
-
|
|
111
|
+
var NewSamplingValidationSchema = Yup.object().shape({
|
|
92
112
|
sampling: Yup.object().shape({
|
|
93
113
|
date: Yup.string().required(t('samplings_page.date_required')),
|
|
94
114
|
point_id: Yup.string().required(t('samplings_page.site_required'))
|
|
95
115
|
})
|
|
96
116
|
});
|
|
97
|
-
|
|
98
|
-
|
|
117
|
+
var today = (0, _moment.default)().format('YYYY-MM-DD');
|
|
118
|
+
var newSiteInitialValues = {
|
|
99
119
|
sampling: {
|
|
100
120
|
date: today,
|
|
101
121
|
point_id: '',
|
|
102
122
|
type: 'sampling_type_rapid'
|
|
103
123
|
}
|
|
104
124
|
};
|
|
105
|
-
|
|
125
|
+
var handleNewSamplingSubmit = function handleNewSamplingSubmit(values) {
|
|
106
126
|
createSamplingMutation.mutate(values);
|
|
107
127
|
};
|
|
108
|
-
|
|
109
|
-
|
|
128
|
+
var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
|
|
129
|
+
return state.global_data.waterAuthorityName;
|
|
130
|
+
});
|
|
131
|
+
var handleOpenPopupAnalytics = function handleOpenPopupAnalytics() {
|
|
110
132
|
(0, _Analytics.analyticsTrack)('Sampling Operation New Sampling Clicked', {
|
|
111
133
|
water_authority: waterAuthorityId,
|
|
112
134
|
utility_name: waterAuthorityName
|
|
113
135
|
});
|
|
114
136
|
};
|
|
115
|
-
|
|
137
|
+
var NewSamplingButton = function NewSamplingButton() {
|
|
116
138
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !_reactDeviceDetect.isMobile && /*#__PURE__*/_react.default.createElement(_IconAction.default, {
|
|
117
|
-
callback: ()
|
|
139
|
+
callback: function callback() {
|
|
118
140
|
handleOpenPopupAnalytics();
|
|
119
141
|
setIsOpen(!isOpen);
|
|
120
142
|
},
|
|
@@ -123,7 +145,9 @@ const NewSamplingAction = _ref => {
|
|
|
123
145
|
icon: _freeSolidSvgIcons.faPlus
|
|
124
146
|
})), _reactDeviceDetect.isMobile && /*#__PURE__*/_react.default.createElement("div", {
|
|
125
147
|
className: _styleModule.default.newSamplerBtnMobile,
|
|
126
|
-
onClick: ()
|
|
148
|
+
onClick: function onClick() {
|
|
149
|
+
return setIsOpen(!isOpen);
|
|
150
|
+
}
|
|
127
151
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
128
152
|
className: _styleModule.default.faPlus,
|
|
129
153
|
icon: _freeSolidSvgIcons.faPlus
|
|
@@ -138,22 +162,22 @@ const NewSamplingAction = _ref => {
|
|
|
138
162
|
onSubmit: handleNewSamplingSubmit,
|
|
139
163
|
initialValues: newSiteInitialValues,
|
|
140
164
|
validationSchema: NewSamplingValidationSchema
|
|
141
|
-
},
|
|
165
|
+
}, function (_ref3) {
|
|
142
166
|
var _errors$sampling, _errors$sampling2, _errors$sampling3, _errors$sampling4, _errors$sampling5;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
setFieldValue
|
|
149
|
-
} = _ref2;
|
|
167
|
+
var handleSubmit = _ref3.handleSubmit,
|
|
168
|
+
handleChange = _ref3.handleChange,
|
|
169
|
+
values = _ref3.values,
|
|
170
|
+
errors = _ref3.errors,
|
|
171
|
+
setFieldValue = _ref3.setFieldValue;
|
|
150
172
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form, {
|
|
151
173
|
onSubmit: handleSubmit
|
|
152
174
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, t('samplings_page.samplings_table_cols.sampling_date')), /*#__PURE__*/_react.default.createElement(_reactDatepicker.default, {
|
|
153
|
-
className:
|
|
175
|
+
className: "".concat(_styleModule.default.dateInput, " ").concat((errors === null || errors === void 0 ? void 0 : (_errors$sampling = errors.sampling) === null || _errors$sampling === void 0 ? void 0 : _errors$sampling.date) && 'invalid'),
|
|
154
176
|
name: "sampling.date",
|
|
155
177
|
selected: values.sampling.date && new Date(values.sampling.date) || new Date(),
|
|
156
|
-
onChange:
|
|
178
|
+
onChange: function onChange(date) {
|
|
179
|
+
return setFieldValue('sampling.date', date.toDateString());
|
|
180
|
+
},
|
|
157
181
|
calendarClassName: _styleModule.default.calendar,
|
|
158
182
|
dateFormat: userInfo.date_time_format === 'us' ? 'MMM d, yyyy' : 'd/MM/yyyy'
|
|
159
183
|
})), (errors === null || errors === void 0 ? void 0 : (_errors$sampling2 = errors.sampling) === null || _errors$sampling2 === void 0 ? void 0 : _errors$sampling2.date) ? /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -162,21 +186,23 @@ const NewSamplingAction = _ref => {
|
|
|
162
186
|
className: _styleModule.default.required
|
|
163
187
|
}, "*")), /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
|
|
164
188
|
placeholder: t('samplings_page.site_placeholder'),
|
|
165
|
-
className:
|
|
189
|
+
className: "".concat(_styleModule.default.siteInput, " ").concat((errors === null || errors === void 0 ? void 0 : (_errors$sampling3 = errors.sampling) === null || _errors$sampling3 === void 0 ? void 0 : _errors$sampling3.point_id) && _styleModule.default.invalidBorders),
|
|
166
190
|
name: "sampling.point_id",
|
|
167
|
-
onChange: option
|
|
191
|
+
onChange: function onChange(option) {
|
|
168
192
|
setFieldValue('sampling.point_id', option.value);
|
|
169
193
|
},
|
|
170
194
|
isSearchable: true,
|
|
171
195
|
classNamePrefix: 'dashboard-select',
|
|
172
|
-
options: points === null || points === void 0 ? void 0 : points.map(pt
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
196
|
+
options: points === null || points === void 0 ? void 0 : points.map(function (pt) {
|
|
197
|
+
return {
|
|
198
|
+
value: pt.point.id,
|
|
199
|
+
label: pt.point.label
|
|
200
|
+
};
|
|
201
|
+
})
|
|
176
202
|
}), (errors === null || errors === void 0 ? void 0 : (_errors$sampling4 = errors.sampling) === null || _errors$sampling4 === void 0 ? void 0 : _errors$sampling4.point_id) && /*#__PURE__*/_react.default.createElement("div", {
|
|
177
203
|
className: _styleModule.default.validationError
|
|
178
204
|
}, errors.sampling.point_id), /*#__PURE__*/_react.default.createElement(_uiKit.MobileInput, {
|
|
179
|
-
className:
|
|
205
|
+
className: "".concat(_styleModule.default.typeInput, " ").concat((errors === null || errors === void 0 ? void 0 : (_errors$sampling5 = errors.sampling) === null || _errors$sampling5 === void 0 ? void 0 : _errors$sampling5.type) && _styleModule.default.invalidBorders),
|
|
180
206
|
inputTitle: t('lab_results_screen.type'),
|
|
181
207
|
value: values.sampling.type,
|
|
182
208
|
name: "sampling.type",
|
|
@@ -196,7 +222,9 @@ const NewSamplingAction = _ref => {
|
|
|
196
222
|
}, t('sampling_types_mini.sampling_type_both'))), /*#__PURE__*/_react.default.createElement("div", {
|
|
197
223
|
className: _styleModule.default.buttonsContainer
|
|
198
224
|
}, /*#__PURE__*/_react.default.createElement(_uiKit.Button, {
|
|
199
|
-
onClick: ()
|
|
225
|
+
onClick: function onClick() {
|
|
226
|
+
return setIsOpen(false);
|
|
227
|
+
},
|
|
200
228
|
variant: "close"
|
|
201
229
|
}, t('close')), /*#__PURE__*/_react.default.createElement(_uiKit.Button, {
|
|
202
230
|
className: _styleModule.default.buttonCreate,
|
|
@@ -206,31 +234,27 @@ const NewSamplingAction = _ref => {
|
|
|
206
234
|
}, t('samplings_page.create_button'))));
|
|
207
235
|
})));
|
|
208
236
|
};
|
|
209
|
-
|
|
237
|
+
var NewSamplingTitle = _styledComponents.default.p.withConfig({
|
|
210
238
|
displayName: "NewSamplingAction__NewSamplingTitle",
|
|
211
239
|
componentId: "sc-1koa4p7-0"
|
|
212
|
-
})(["font-weight:", ";"],
|
|
213
|
-
|
|
214
|
-
theme
|
|
215
|
-
} = _ref3;
|
|
240
|
+
})(["font-weight:", ";"], function (_ref4) {
|
|
241
|
+
var theme = _ref4.theme;
|
|
216
242
|
return theme.fontWeight.w700;
|
|
217
243
|
});
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
244
|
+
var MenuInputStyle = _styledComponents.default.div.attrs(function (props) {
|
|
245
|
+
return {
|
|
246
|
+
isOpen: props.isOpen
|
|
247
|
+
};
|
|
248
|
+
}).withConfig({
|
|
221
249
|
displayName: "NewSamplingAction__MenuInputStyle",
|
|
222
250
|
componentId: "sc-1koa4p7-1"
|
|
223
|
-
})(["padding:33px 28px;position:absolute;right:16px;top:140px;z-index:", ";min-height:400px;width:390px;background-color:", ";border:1px solid #a6acb9;box-shadow:0 1px 3px #e3e3e3;.rtl &{right:unset;left:16px;}*{font-family:Nunito,Gilroy,Arial,Helvetica,sans-serif;}animation:transition-in 444ms,fade-in 444ms;@keyframes transition-in{from{transform:translateX(200px);}to{transform:translateX(0);}}@keyframes fade-in{0%{opacity:0;}100%{opacity:1;}}@media (max-width:480px){top:auto;width:100vw;right:0;bottom:0;}"],
|
|
224
|
-
|
|
225
|
-
theme
|
|
226
|
-
} = _ref4;
|
|
251
|
+
})(["padding:33px 28px;position:absolute;right:16px;top:140px;z-index:", ";min-height:400px;width:390px;background-color:", ";border:1px solid #a6acb9;box-shadow:0 1px 3px #e3e3e3;.rtl &{right:unset;left:16px;}*{font-family:Nunito,Gilroy,Arial,Helvetica,sans-serif;}animation:transition-in 444ms,fade-in 444ms;@keyframes transition-in{from{transform:translateX(200px);}to{transform:translateX(0);}}@keyframes fade-in{0%{opacity:0;}100%{opacity:1;}}@media (max-width:480px){top:auto;width:100vw;right:0;bottom:0;}"], function (_ref5) {
|
|
252
|
+
var theme = _ref5.theme;
|
|
227
253
|
return theme.zIndexes.modal;
|
|
228
|
-
},
|
|
229
|
-
|
|
230
|
-
theme
|
|
231
|
-
} = _ref5;
|
|
254
|
+
}, function (_ref6) {
|
|
255
|
+
var theme = _ref6.theme;
|
|
232
256
|
return theme.colorScheme.natural.n1;
|
|
233
257
|
});
|
|
234
258
|
var _default = NewSamplingAction;
|
|
235
259
|
exports.default = _default;
|
|
236
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJfcmVhY3REZXZpY2VEZXRlY3QiLCJfZm9ybWlrIiwiWXVwIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3RRdWVyeSIsIl9tb21lbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2F4aW9zIiwiX3JlYWN0U2VsZWN0IiwiX3JlYWN0VG9hc3RpZnkiLCJfcmVhY3RJMThuZXh0IiwiX3JlYWN0RGF0ZXBpY2tlciIsIl9BbmFseXRpY3MiLCJfdWlLaXQiLCJfc3R5bGVNb2R1bGUiLCJfdXJscyIsIl9yZWFjdFJlZHV4IiwiX2FjdGlvbnNDcmVhdG9yIiwiX0ljb25BY3Rpb24iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTmV3U2FtcGxpbmdBY3Rpb24iLCJfcmVmIiwid2F0ZXJBdXRob3JpdHlJZCIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImlzT3BlbiIsInNldElzT3BlbiIsInVzZVN0YXRlIiwicGVyUGFnZSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJzYW1wbGluZ3NfZGF0YSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJ1c2VySW5mbyIsInBlcm1pc3Npb25zIiwidXNlcl9pbmZvIiwiZGF0YSIsInBvaW50cyIsInJlZmV0Y2giLCJ1c2VRdWVyeSIsIndhdGVyQXV0aG9yaXR5UG9pbnRzVVJMIiwidXJscyIsInNhbXBsaW5nc1BhZ2UiLCJnZXRQb2ludHMiLCJ1cmwiLCJyZXNwb25zZSIsImF4aW9zIiwicmVmZXRjaE9uV2luZG93Rm9jdXMiLCJjcmVhdGVTYW1wbGluZ011dGF0aW9uIiwidXNlTXV0YXRpb24iLCJuZXdTYW1wbGluZ1ZhbHVlcyIsImRlZmF1bHRzIiwiaGVhZGVycyIsImNvbW1vbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNvbnRlbnQiLCJwdXQiLCJjcmVhdGVOZXdTYW1wbGluZyIsInRoZW4iLCJyZXMiLCJ0b2FzdCIsInN1Y2Nlc3MiLCJwb3NpdGlvbiIsImNhdGNoIiwiZSIsImVycm9yIiwib25TdWNjZXNzIiwic2V0U2FtcGxpbmdEYXRhIiwidXNlRWZmZWN0IiwiTmV3U2FtcGxpbmdWYWxpZGF0aW9uU2NoZW1hIiwib2JqZWN0Iiwic2hhcGUiLCJzYW1wbGluZyIsImRhdGUiLCJzdHJpbmciLCJyZXF1aXJlZCIsInBvaW50X2lkIiwidG9kYXkiLCJtb21lbnQiLCJmb3JtYXQiLCJuZXdTaXRlSW5pdGlhbFZhbHVlcyIsInR5cGUiLCJoYW5kbGVOZXdTYW1wbGluZ1N1Ym1pdCIsInZhbHVlcyIsIm11dGF0ZSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImdsb2JhbF9kYXRhIiwiaGFuZGxlT3BlblBvcHVwQW5hbHl0aWNzIiwiYW5hbHl0aWNzVHJhY2siLCJ3YXRlcl9hdXRob3JpdHkiLCJ1dGlsaXR5X25hbWUiLCJOZXdTYW1wbGluZ0J1dHRvbiIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsImlzTW9iaWxlIiwiY2FsbGJhY2siLCJ0ZXh0X2tleSIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYVBsdXMiLCJjbGFzc05hbWUiLCJTdHlsZSIsIm5ld1NhbXBsZXJCdG5Nb2JpbGUiLCJvbkNsaWNrIiwibmV3U2FtcGxpbmdBY3Rpb25Ecm9wZG93biIsIk1lbnVJbnB1dFN0eWxlIiwiTmV3U2FtcGxpbmdUaXRsZSIsIkZvcm1payIsIm9uU3VibWl0IiwiaW5pdGlhbFZhbHVlcyIsInZhbGlkYXRpb25TY2hlbWEiLCJfcmVmMiIsIl9lcnJvcnMkc2FtcGxpbmciLCJfZXJyb3JzJHNhbXBsaW5nMiIsIl9lcnJvcnMkc2FtcGxpbmczIiwiX2Vycm9ycyRzYW1wbGluZzQiLCJfZXJyb3JzJHNhbXBsaW5nNSIsImhhbmRsZVN1Ym1pdCIsImhhbmRsZUNoYW5nZSIsImVycm9ycyIsInNldEZpZWxkVmFsdWUiLCJGb3JtIiwiR3JvdXAiLCJMYWJlbCIsImRhdGVJbnB1dCIsIm5hbWUiLCJzZWxlY3RlZCIsIkRhdGUiLCJvbkNoYW5nZSIsInRvRGF0ZVN0cmluZyIsImNhbGVuZGFyQ2xhc3NOYW1lIiwiY2FsZW5kYXIiLCJkYXRlRm9ybWF0IiwiZGF0ZV90aW1lX2Zvcm1hdCIsInZhbGlkYXRpb25FcnJvciIsInBsYWNlaG9sZGVyIiwic2l0ZUlucHV0IiwiaW52YWxpZEJvcmRlcnMiLCJvcHRpb24iLCJ2YWx1ZSIsImlzU2VhcmNoYWJsZSIsImNsYXNzTmFtZVByZWZpeCIsIm9wdGlvbnMiLCJtYXAiLCJwdCIsInBvaW50IiwiaWQiLCJsYWJlbCIsIk1vYmlsZUlucHV0IiwidHlwZUlucHV0IiwiaW5wdXRUaXRsZSIsIm1hbmRhdG9yeSIsImJ1dHRvbnNDb250YWluZXIiLCJCdXR0b24iLCJ2YXJpYW50IiwiYnV0dG9uQ3JlYXRlIiwib3V0bGluZSIsIlNFQ09OREFSWSIsInN0eWxlZCIsInAiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYzIiwidGhlbWUiLCJmb250V2VpZ2h0IiwidzcwMCIsImRpdiIsImF0dHJzIiwicHJvcHMiLCJfcmVmNCIsInpJbmRleGVzIiwibW9kYWwiLCJfcmVmNSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm4xIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL1NhbXBsaW5nc1BhZ2UvTmV3U2FtcGxpbmdBY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGQywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0gfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgZmFQbHVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICdyZWFjdC1kZXZpY2UtZGV0ZWN0JztcbmltcG9ydCB7IEZvcm1payB9IGZyb20gJ2Zvcm1payc7XG5pbXBvcnQgKiBhcyBZdXAgZnJvbSAneXVwJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgeyB1c2VRdWVyeSwgdXNlTXV0YXRpb24gfSBmcm9tICdyZWFjdC1xdWVyeSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IFNlbGVjdCBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAncmVhY3QtZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuaW1wb3J0IHsgQnV0dG9uLCBNb2JpbGVJbnB1dCwgdmFyaWFudCB9IGZyb20gJ3NyYy91aS1raXQnO1xuaW1wb3J0IFN0eWxlIGZyb20gJy4vc3R5bGUubW9kdWxlLnNjc3MnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJ3NyYy91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnc3JjL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB7IHNldFNhbXBsaW5nRGF0YSB9IGZyb20gJ3NyYy9zdG9yZS9zYW1wbGluZ3MvYWN0aW9uc0NyZWF0b3InO1xuaW1wb3J0IEljb25BY3Rpb24gZnJvbSAnLi4vLi4vdWkta2l0L0ljb25BY3Rpb24vSWNvbkFjdGlvbic7XG5cbmludGVyZmFjZSBOZXdTaXRlSW5wdXRzIHtcbiAgc2FtcGxpbmc6IHtcbiAgICBkYXRlOiBzdHJpbmc7XG4gICAgcG9pbnRfaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBQb2ludFByb3BzIHtcbiAgcG9pbnQ6IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH07XG59XG50eXBlIEdldFBvaW50c1Jlc3BvbnNlID0ge1xuICBkYXRhOiB7XG4gICAgcG9pbnRzOiBQb2ludFByb3BzW107XG4gIH07XG59O1xuaW50ZXJmYWNlIE1lbnVJbnB1dFByb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xufVxuXG50eXBlIE5ld1NhbXBsaW5nQWN0aW9uUHJvcHMgPSB7XG4gIHdhdGVyQXV0aG9yaXR5SWQ6IG51bWJlcjtcbn07XG5cbmNvbnN0IE5ld1NhbXBsaW5nQWN0aW9uOiBGQzxOZXdTYW1wbGluZ0FjdGlvblByb3BzPiA9ICh7XG4gIHdhdGVyQXV0aG9yaXR5SWQsXG59KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdCB7IHBlclBhZ2UgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLnNhbXBsaW5nc19kYXRhLFxuICApO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHVzZXJJbmZvID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5wZXJtaXNzaW9ucy51c2VyX2luZm8pO1xuXG4gIGNvbnN0IHsgZGF0YTogcG9pbnRzLCByZWZldGNoIH0gPSB1c2VRdWVyeShcbiAgICAnc2VsZWN0b3JfcG9pbnRzJyxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB3YXRlckF1dGhvcml0eVBvaW50c1VSTCA9IHVybHMoeyB3YXRlckF1dGhvcml0eUlkIH0pLnNhbXBsaW5nc1BhZ2VcbiAgICAgICAgLmdldFBvaW50cy51cmw7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldDxHZXRQb2ludHNSZXNwb25zZT4oXG4gICAgICAgIHdhdGVyQXV0aG9yaXR5UG9pbnRzVVJMLFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGEucG9pbnRzO1xuICAgIH0sXG4gICAge1xuICAgICAgcmVmZXRjaE9uV2luZG93Rm9jdXM6IGZhbHNlLFxuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgY3JlYXRlU2FtcGxpbmdNdXRhdGlvbiA9IHVzZU11dGF0aW9uKFxuICAgIChuZXdTYW1wbGluZ1ZhbHVlcykgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ1gtQ1NSRi1UT0tFTiddID1cbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9Y3NyZi10b2tlbl0nKS5jb250ZW50O1xuICAgICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzJztcbiAgICAgIHJldHVybiBheGlvc1xuICAgICAgICAucHV0KFxuICAgICAgICAgIHVybHMoeyB3YXRlckF1dGhvcml0eUlkIH0pLnNhbXBsaW5nc1BhZ2UuY3JlYXRlTmV3U2FtcGxpbmcudXJsLFxuICAgICAgICAgIG5ld1NhbXBsaW5nVmFsdWVzLFxuICAgICAgICApXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICB0b2FzdC5zdWNjZXNzKHQoJ3NhbXBsaW5nc19wYWdlLnNhbXBsaW5nX2NyZWF0ZWQnKSwge1xuICAgICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICB0b2FzdC5lcnJvcih0KCdzYW1wbGluZ3NfcGFnZS5zYW1wbGluZ19ub3RfY3JlYXRlZCcpLCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIHtcbiAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAvLyBSZWZyZXNoIHRoZSBzYW1wbGluZ3MgaGFja1xuICAgICAgICBkaXNwYXRjaChzZXRTYW1wbGluZ0RhdGEoeyBwZXJQYWdlOiBwZXJQYWdlIC0gMSB9KSk7XG4gICAgICAgIGRpc3BhdGNoKHNldFNhbXBsaW5nRGF0YSh7IHBlclBhZ2U6IHBlclBhZ2UgfSkpO1xuICAgICAgICAvLyBUT0RPOiByZW1vdmUgdGhlIGFib3ZlIHJlZnJlc2ggaGFjayBhbmQgcmVwbGFjZSB3aXRoIHRoZSBmb2xsb3dpbmcgLSBjaGVjayBLU0QtMjkyMlxuICAgICAgICAvLyBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcygndGhlX3NhbXBsaW5nc19saXN0Jyk7XG4gICAgICB9LFxuICAgIH0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZWZldGNoKCk7XG4gICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgfSwgW3dhdGVyQXV0aG9yaXR5SWRdKTtcblxuICBjb25zdCBOZXdTYW1wbGluZ1ZhbGlkYXRpb25TY2hlbWEgPSBZdXAub2JqZWN0KCkuc2hhcGUoe1xuICAgIHNhbXBsaW5nOiBZdXAub2JqZWN0KCkuc2hhcGUoe1xuICAgICAgZGF0ZTogWXVwLnN0cmluZygpLnJlcXVpcmVkKHQoJ3NhbXBsaW5nc19wYWdlLmRhdGVfcmVxdWlyZWQnKSksXG4gICAgICBwb2ludF9pZDogWXVwLnN0cmluZygpLnJlcXVpcmVkKHQoJ3NhbXBsaW5nc19wYWdlLnNpdGVfcmVxdWlyZWQnKSksXG4gICAgfSksXG4gIH0pO1xuXG4gIGNvbnN0IHRvZGF5ID0gbW9tZW50KCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG5cbiAgY29uc3QgbmV3U2l0ZUluaXRpYWxWYWx1ZXM6IE5ld1NpdGVJbnB1dHMgPSB7XG4gICAgc2FtcGxpbmc6IHtcbiAgICAgIGRhdGU6IHRvZGF5LFxuICAgICAgcG9pbnRfaWQ6ICcnLFxuICAgICAgdHlwZTogJ3NhbXBsaW5nX3R5cGVfcmFwaWQnLFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgaGFuZGxlTmV3U2FtcGxpbmdTdWJtaXQgPSAodmFsdWVzKSA9PiB7XG4gICAgY3JlYXRlU2FtcGxpbmdNdXRhdGlvbi5tdXRhdGUodmFsdWVzKTtcbiAgfTtcblxuICBjb25zdCB3YXRlckF1dGhvcml0eU5hbWUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVPcGVuUG9wdXBBbmFseXRpY3MgPSAoKSA9PiB7XG4gICAgYW5hbHl0aWNzVHJhY2soJ1NhbXBsaW5nIE9wZXJhdGlvbiBOZXcgU2FtcGxpbmcgQ2xpY2tlZCcsIHtcbiAgICAgIHdhdGVyX2F1dGhvcml0eTogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IE5ld1NhbXBsaW5nQnV0dG9uID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTW9iaWxlICYmIChcbiAgICAgICAgICA8SWNvbkFjdGlvblxuICAgICAgICAgICAgY2FsbGJhY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgaGFuZGxlT3BlblBvcHVwQW5hbHl0aWNzKCk7XG4gICAgICAgICAgICAgIHNldElzT3BlbighaXNPcGVuKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0ZXh0X2tleT17J3NhbXBsaW5nc19wYWdlLm5ld19idXR0b24nfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFQbHVzfSAvPlxuICAgICAgICAgIDwvSWNvbkFjdGlvbj5cbiAgICAgICAgKX1cbiAgICAgICAge2lzTW9iaWxlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e1N0eWxlLm5ld1NhbXBsZXJCdG5Nb2JpbGV9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc09wZW4oIWlzT3Blbil9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBjbGFzc05hbWU9e1N0eWxlLmZhUGx1c30gaWNvbj17ZmFQbHVzfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdC1pZD1cImNyZWF0ZS1uZXctc2FtcGxpbmdcIlxuICAgICAgY2xhc3NOYW1lPXtTdHlsZS5uZXdTYW1wbGluZ0FjdGlvbkRyb3Bkb3dufVxuICAgID5cbiAgICAgIDxOZXdTYW1wbGluZ0J1dHRvbiAvPlxuICAgICAge2lzT3BlbiAmJiAoXG4gICAgICAgIDxNZW51SW5wdXRTdHlsZSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgPE5ld1NhbXBsaW5nVGl0bGU+XG4gICAgICAgICAgICB7dCgnc2FtcGxpbmdzX3BhZ2UuYWRkX25ld19zYW1wbGluZycpfVxuICAgICAgICAgIDwvTmV3U2FtcGxpbmdUaXRsZT5cbiAgICAgICAgICA8Rm9ybWlrXG4gICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlTmV3U2FtcGxpbmdTdWJtaXR9XG4gICAgICAgICAgICBpbml0aWFsVmFsdWVzPXtuZXdTaXRlSW5pdGlhbFZhbHVlc31cbiAgICAgICAgICAgIHZhbGlkYXRpb25TY2hlbWE9e05ld1NhbXBsaW5nVmFsaWRhdGlvblNjaGVtYX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7KHtcbiAgICAgICAgICAgICAgaGFuZGxlU3VibWl0LFxuICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2UsXG4gICAgICAgICAgICAgIHZhbHVlcyxcbiAgICAgICAgICAgICAgZXJyb3JzLFxuICAgICAgICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICA8Rm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fT5cbiAgICAgICAgICAgICAgICA8Rm9ybS5Hcm91cD5cbiAgICAgICAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7dCgnc2FtcGxpbmdzX3BhZ2Uuc2FtcGxpbmdzX3RhYmxlX2NvbHMuc2FtcGxpbmdfZGF0ZScpfVxuICAgICAgICAgICAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgICAgICAgPERhdGVQaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZS5kYXRlSW5wdXR9ICR7XG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3JzPy5zYW1wbGluZz8uZGF0ZSAmJiAnaW52YWxpZCdcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzYW1wbGluZy5kYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZXMuc2FtcGxpbmcuZGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUodmFsdWVzLnNhbXBsaW5nLmRhdGUpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0RmllbGRWYWx1ZSgnc2FtcGxpbmcuZGF0ZScsIGRhdGUudG9EYXRlU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJDbGFzc05hbWU9e1N0eWxlLmNhbGVuZGFyfVxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtcbiAgICAgICAgICAgICAgICAgICAgICB1c2VySW5mby5kYXRlX3RpbWVfZm9ybWF0ID09PSAndXMnXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdNTU0gZCwgeXl5eSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2QvTU0veXl5eSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICAgICAgICAge2Vycm9ycz8uc2FtcGxpbmc/LmRhdGUgPyAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17U3R5bGUudmFsaWRhdGlvbkVycm9yfT5cbiAgICAgICAgICAgICAgICAgICAge2Vycm9ycy5zYW1wbGluZy5kYXRlfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICAgICAgICA8Rm9ybS5MYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt0KCdzYW1wbGluZ3NfcGFnZS5zYW1wbGluZ3NfdGFibGVfY29scy5zaXRlJyl9XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e1N0eWxlLnJlcXVpcmVkfT4qPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dCgnc2FtcGxpbmdzX3BhZ2Uuc2l0ZV9wbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZS5zaXRlSW5wdXR9ICR7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycz8uc2FtcGxpbmc/LnBvaW50X2lkICYmIFN0eWxlLmludmFsaWRCb3JkZXJzXG4gICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJzYW1wbGluZy5wb2ludF9pZFwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldEZpZWxkVmFsdWUoJ3NhbXBsaW5nLnBvaW50X2lkJywgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eydkYXNoYm9hcmQtc2VsZWN0J31cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3BvaW50cz8ubWFwKChwdDogUG9pbnRQcm9wcykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHB0LnBvaW50LmlkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcHQucG9pbnQubGFiZWwsXG4gICAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7ZXJyb3JzPy5zYW1wbGluZz8ucG9pbnRfaWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1N0eWxlLnZhbGlkYXRpb25FcnJvcn0+XG4gICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuc2FtcGxpbmcucG9pbnRfaWR9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgPE1vYmlsZUlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1N0eWxlLnR5cGVJbnB1dH0gJHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzPy5zYW1wbGluZz8udHlwZSAmJiBTdHlsZS5pbnZhbGlkQm9yZGVyc1xuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBpbnB1dFRpdGxlPXt0KCdsYWJfcmVzdWx0c19zY3JlZW4udHlwZScpfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlcy5zYW1wbGluZy50eXBlfVxuICAgICAgICAgICAgICAgICAgbmFtZT1cInNhbXBsaW5nLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgIG1hbmRhdG9yeT17dHJ1ZX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIGtleT1cInJhcGlkXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzYW1wbGluZ190eXBlX3JhcGlkXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3RydWV9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdzYW1wbGluZ190eXBlc19taW5pLnNhbXBsaW5nX3R5cGVfcmFwaWQnKX1cbiAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9XCJjb21wbGV4XCIgdmFsdWU9XCJzYW1wbGluZ190eXBlX2NvbXBsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAge3QoJ3NhbXBsaW5nX3R5cGVzX21pbmkuc2FtcGxpbmdfdHlwZV9jb21wbGV4Jyl9XG4gICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PVwiYm90aFwiIHZhbHVlPVwic2FtcGxpbmdfdHlwZV9ib3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdzYW1wbGluZ190eXBlc19taW5pLnNhbXBsaW5nX3R5cGVfYm90aCcpfVxuICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9Nb2JpbGVJbnB1dD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtTdHlsZS5idXR0b25zQ29udGFpbmVyfT5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gb25DbGljaz17KCkgPT4gc2V0SXNPcGVuKGZhbHNlKX0gdmFyaWFudD1cImNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdjbG9zZScpfVxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17U3R5bGUuYnV0dG9uQ3JlYXRlfVxuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXt2YXJpYW50LlNFQ09OREFSWX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdzYW1wbGluZ3NfcGFnZS5jcmVhdGVfYnV0dG9uJyl9XG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0Zvcm1paz5cbiAgICAgICAgPC9NZW51SW5wdXRTdHlsZT5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBOZXdTYW1wbGluZ1RpdGxlID0gc3R5bGVkLnBgXG4gIGZvbnQtd2VpZ2h0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRXZWlnaHQudzcwMH07XG5gO1xuXG5jb25zdCBNZW51SW5wdXRTdHlsZSA9IHN0eWxlZC5kaXYuYXR0cnMoKHByb3BzOiBNZW51SW5wdXRQcm9wcykgPT4gKHtcbiAgaXNPcGVuOiBwcm9wcy5pc09wZW4sXG59KSlgXG4gIHBhZGRpbmc6IDMzcHggMjhweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTZweDtcbiAgdG9wOiAxNDBweDtcbiAgei1pbmRleDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS56SW5kZXhlcy5tb2RhbH07XG4gIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICB3aWR0aDogMzkwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uMX07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhNmFjYjk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAjZTNlM2UzO1xuXG4gIC5ydGwgJiB7XG4gICAgcmlnaHQ6IHVuc2V0O1xuICAgIGxlZnQ6IDE2cHg7XG4gIH1cblxuICAqIHtcbiAgICBmb250LWZhbWlseTogTnVuaXRvLCBHaWxyb3ksIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIH1cblxuICBhbmltYXRpb246IHRyYW5zaXRpb24taW4gNDQ0bXMsIGZhZGUtaW4gNDQ0bXM7XG4gIEBrZXlmcmFtZXMgdHJhbnNpdGlvbi1pbiB7XG4gICAgZnJvbSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICB9XG4gIEBrZXlmcmFtZXMgZmFkZS1pbiB7XG4gICAgMCUge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC8qIFVzZSA0ODBweCBhcyBtb2JpbGUncyBtYXgtd2lkdGggKi9cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IE5ld1NhbXBsaW5nQWN0aW9uO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxrQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssR0FBQSxHQUFBTix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQVQsT0FBQTtBQUNBLElBQUFVLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQVQsT0FBQTtBQUNBLElBQUFXLFlBQUEsR0FBQUYsc0JBQUEsQ0FBQVQsT0FBQTtBQUNBLElBQUFZLGNBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLGFBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLGdCQUFBLEdBQUFMLHNCQUFBLENBQUFULE9BQUE7QUFFQSxJQUFBZSxVQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0IsTUFBQSxHQUFBaEIsT0FBQTtBQUNBLElBQUFpQixZQUFBLEdBQUFSLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFB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
|
|
260
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJfcmVhY3REZXZpY2VEZXRlY3QiLCJfZm9ybWlrIiwiWXVwIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3RRdWVyeSIsIl9tb21lbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2F4aW9zIiwiX3JlYWN0U2VsZWN0IiwiX3JlYWN0VG9hc3RpZnkiLCJfcmVhY3RJMThuZXh0IiwiX3JlYWN0RGF0ZXBpY2tlciIsIl9BbmFseXRpY3MiLCJfdWlLaXQiLCJfc3R5bGVNb2R1bGUiLCJfdXJscyIsIl9yZWFjdFJlZHV4IiwiX2FjdGlvbnNDcmVhdG9yIiwiX0ljb25BY3Rpb24iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk5ld1NhbXBsaW5nQWN0aW9uIiwiX3JlZiIsIndhdGVyQXV0aG9yaXR5SWQiLCJfdXNlVHJhbnNsYXRpb24iLCJ1c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU2VsZWN0b3IiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwic2FtcGxpbmdzX2RhdGEiLCJwZXJQYWdlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInVzZXJJbmZvIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJfdXNlUXVlcnkiLCJ1c2VRdWVyeSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid2F0ZXJBdXRob3JpdHlQb2ludHNVUkwiLCJyZXNwb25zZSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1cmxzIiwic2FtcGxpbmdzUGFnZSIsImdldFBvaW50cyIsInVybCIsImF4aW9zIiwic2VudCIsImFicnVwdCIsImRhdGEiLCJwb2ludHMiLCJzdG9wIiwicmVmZXRjaE9uV2luZG93Rm9jdXMiLCJyZWZldGNoIiwiY3JlYXRlU2FtcGxpbmdNdXRhdGlvbiIsInVzZU11dGF0aW9uIiwibmV3U2FtcGxpbmdWYWx1ZXMiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjb250ZW50IiwicHV0IiwiY3JlYXRlTmV3U2FtcGxpbmciLCJ0aGVuIiwicmVzIiwidG9hc3QiLCJzdWNjZXNzIiwicG9zaXRpb24iLCJjYXRjaCIsImUiLCJlcnJvciIsIm9uU3VjY2VzcyIsInNldFNhbXBsaW5nRGF0YSIsInVzZUVmZmVjdCIsIk5ld1NhbXBsaW5nVmFsaWRhdGlvblNjaGVtYSIsIm9iamVjdCIsInNoYXBlIiwic2FtcGxpbmciLCJkYXRlIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwb2ludF9pZCIsInRvZGF5IiwibW9tZW50IiwiZm9ybWF0IiwibmV3U2l0ZUluaXRpYWxWYWx1ZXMiLCJ0eXBlIiwiaGFuZGxlTmV3U2FtcGxpbmdTdWJtaXQiLCJ2YWx1ZXMiLCJtdXRhdGUiLCJ3YXRlckF1dGhvcml0eU5hbWUiLCJnbG9iYWxfZGF0YSIsImhhbmRsZU9wZW5Qb3B1cEFuYWx5dGljcyIsImFuYWx5dGljc1RyYWNrIiwid2F0ZXJfYXV0aG9yaXR5IiwidXRpbGl0eV9uYW1lIiwiTmV3U2FtcGxpbmdCdXR0b24iLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJpc01vYmlsZSIsImNhbGxiYWNrIiwidGV4dF9rZXkiLCJGb250QXdlc29tZUljb24iLCJpY29uIiwiZmFQbHVzIiwiY2xhc3NOYW1lIiwiU3R5bGUiLCJuZXdTYW1wbGVyQnRuTW9iaWxlIiwib25DbGljayIsIm5ld1NhbXBsaW5nQWN0aW9uRHJvcGRvd24iLCJNZW51SW5wdXRTdHlsZSIsIk5ld1NhbXBsaW5nVGl0bGUiLCJGb3JtaWsiLCJvblN1Ym1pdCIsImluaXRpYWxWYWx1ZXMiLCJ2YWxpZGF0aW9uU2NoZW1hIiwiX3JlZjMiLCJfZXJyb3JzJHNhbXBsaW5nIiwiX2Vycm9ycyRzYW1wbGluZzIiLCJfZXJyb3JzJHNhbXBsaW5nMyIsIl9lcnJvcnMkc2FtcGxpbmc0IiwiX2Vycm9ycyRzYW1wbGluZzUiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVDaGFuZ2UiLCJlcnJvcnMiLCJzZXRGaWVsZFZhbHVlIiwiRm9ybSIsIkdyb3VwIiwiTGFiZWwiLCJjb25jYXQiLCJkYXRlSW5wdXQiLCJuYW1lIiwic2VsZWN0ZWQiLCJEYXRlIiwib25DaGFuZ2UiLCJ0b0RhdGVTdHJpbmciLCJjYWxlbmRhckNsYXNzTmFtZSIsImNhbGVuZGFyIiwiZGF0ZUZvcm1hdCIsImRhdGVfdGltZV9mb3JtYXQiLCJ2YWxpZGF0aW9uRXJyb3IiLCJwbGFjZWhvbGRlciIsInNpdGVJbnB1dCIsImludmFsaWRCb3JkZXJzIiwib3B0aW9uIiwidmFsdWUiLCJpc1NlYXJjaGFibGUiLCJjbGFzc05hbWVQcmVmaXgiLCJvcHRpb25zIiwibWFwIiwicHQiLCJwb2ludCIsImlkIiwibGFiZWwiLCJNb2JpbGVJbnB1dCIsInR5cGVJbnB1dCIsImlucHV0VGl0bGUiLCJtYW5kYXRvcnkiLCJidXR0b25zQ29udGFpbmVyIiwiQnV0dG9uIiwidmFyaWFudCIsImJ1dHRvbkNyZWF0ZSIsIm91dGxpbmUiLCJTRUNPTkRBUlkiLCJzdHlsZWQiLCJwIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmNCIsInRoZW1lIiwiZm9udFdlaWdodCIsInc3MDAiLCJkaXYiLCJhdHRycyIsInByb3BzIiwiX3JlZjUiLCJ6SW5kZXhlcyIsIm1vZGFsIiwiX3JlZjYiLCJjb2xvclNjaGVtZSIsIm5hdHVyYWwiLCJuMSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL05ld1NhbXBsaW5nQWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgRkMsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IGZhUGx1cyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAncmVhY3QtZGV2aWNlLWRldGVjdCc7XG5pbXBvcnQgeyBGb3JtaWsgfSBmcm9tICdmb3JtaWsnO1xuaW1wb3J0ICogYXMgWXVwIGZyb20gJ3l1cCc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgdXNlUXVlcnksIHVzZU11dGF0aW9uIH0gZnJvbSAncmVhY3QtcXVlcnknO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBTZWxlY3QgZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJ3JlYWN0LWRhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBhbmFseXRpY3NUcmFjayB9IGZyb20gJ3NyYy91dGlsaXRpZXMvQW5hbHl0aWNzJztcbmltcG9ydCB7IEJ1dHRvbiwgTW9iaWxlSW5wdXQsIHZhcmlhbnQgfSBmcm9tICdzcmMvdWkta2l0JztcbmltcG9ydCBTdHlsZSBmcm9tICcuL3N0eWxlLm1vZHVsZS5zY3NzJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3VybHMnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJ3NyYy9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyBzZXRTYW1wbGluZ0RhdGEgfSBmcm9tICdzcmMvc3RvcmUvc2FtcGxpbmdzL2FjdGlvbnNDcmVhdG9yJztcbmltcG9ydCBJY29uQWN0aW9uIGZyb20gJy4uLy4uL3VpLWtpdC9JY29uQWN0aW9uL0ljb25BY3Rpb24nO1xuXG5pbnRlcmZhY2UgTmV3U2l0ZUlucHV0cyB7XG4gIHNhbXBsaW5nOiB7XG4gICAgZGF0ZTogc3RyaW5nO1xuICAgIHBvaW50X2lkOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUG9pbnRQcm9wcyB7XG4gIHBvaW50OiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9O1xufVxudHlwZSBHZXRQb2ludHNSZXNwb25zZSA9IHtcbiAgZGF0YToge1xuICAgIHBvaW50czogUG9pbnRQcm9wc1tdO1xuICB9O1xufTtcbmludGVyZmFjZSBNZW51SW5wdXRQcm9wcyB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbn1cblxudHlwZSBOZXdTYW1wbGluZ0FjdGlvblByb3BzID0ge1xuICB3YXRlckF1dGhvcml0eUlkOiBudW1iZXI7XG59O1xuXG5jb25zdCBOZXdTYW1wbGluZ0FjdGlvbjogRkM8TmV3U2FtcGxpbmdBY3Rpb25Qcm9wcz4gPSAoe1xuICB3YXRlckF1dGhvcml0eUlkLFxufSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3QgeyBwZXJQYWdlIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5zYW1wbGluZ3NfZGF0YSxcbiAgKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcblxuICBjb25zdCB7IGRhdGE6IHBvaW50cywgcmVmZXRjaCB9ID0gdXNlUXVlcnkoXG4gICAgJ3NlbGVjdG9yX3BvaW50cycsXG4gICAgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgd2F0ZXJBdXRob3JpdHlQb2ludHNVUkwgPSB1cmxzKHsgd2F0ZXJBdXRob3JpdHlJZCB9KS5zYW1wbGluZ3NQYWdlXG4gICAgICAgIC5nZXRQb2ludHMudXJsO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQ8R2V0UG9pbnRzUmVzcG9uc2U+KFxuICAgICAgICB3YXRlckF1dGhvcml0eVBvaW50c1VSTCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhLnBvaW50cztcbiAgICB9LFxuICAgIHtcbiAgICAgIHJlZmV0Y2hPbldpbmRvd0ZvY3VzOiBmYWxzZSxcbiAgICB9LFxuICApO1xuXG4gIGNvbnN0IGNyZWF0ZVNhbXBsaW5nTXV0YXRpb24gPSB1c2VNdXRhdGlvbihcbiAgICAobmV3U2FtcGxpbmdWYWx1ZXMpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydYLUNTUkYtVE9LRU4nXSA9XG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPWNzcmYtdG9rZW5dJykuY29udGVudDtcbiAgICAgIGF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qcyc7XG4gICAgICByZXR1cm4gYXhpb3NcbiAgICAgICAgLnB1dChcbiAgICAgICAgICB1cmxzKHsgd2F0ZXJBdXRob3JpdHlJZCB9KS5zYW1wbGluZ3NQYWdlLmNyZWF0ZU5ld1NhbXBsaW5nLnVybCxcbiAgICAgICAgICBuZXdTYW1wbGluZ1ZhbHVlcyxcbiAgICAgICAgKVxuICAgICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgdG9hc3Quc3VjY2Vzcyh0KCdzYW1wbGluZ3NfcGFnZS5zYW1wbGluZ19jcmVhdGVkJyksIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcicsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgdG9hc3QuZXJyb3IodCgnc2FtcGxpbmdzX3BhZ2Uuc2FtcGxpbmdfbm90X2NyZWF0ZWQnKSwge1xuICAgICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICB7XG4gICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgLy8gUmVmcmVzaCB0aGUgc2FtcGxpbmdzIGhhY2tcbiAgICAgICAgZGlzcGF0Y2goc2V0U2FtcGxpbmdEYXRhKHsgcGVyUGFnZTogcGVyUGFnZSAtIDEgfSkpO1xuICAgICAgICBkaXNwYXRjaChzZXRTYW1wbGluZ0RhdGEoeyBwZXJQYWdlOiBwZXJQYWdlIH0pKTtcbiAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoZSBhYm92ZSByZWZyZXNoIGhhY2sgYW5kIHJlcGxhY2Ugd2l0aCB0aGUgZm9sbG93aW5nIC0gY2hlY2sgS1NELTI5MjJcbiAgICAgICAgLy8gcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoJ3RoZV9zYW1wbGluZ3NfbGlzdCcpO1xuICAgICAgfSxcbiAgICB9LFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmVmZXRjaCgpO1xuICAgIHNldElzT3BlbihmYWxzZSk7XG4gIH0sIFt3YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgY29uc3QgTmV3U2FtcGxpbmdWYWxpZGF0aW9uU2NoZW1hID0gWXVwLm9iamVjdCgpLnNoYXBlKHtcbiAgICBzYW1wbGluZzogWXVwLm9iamVjdCgpLnNoYXBlKHtcbiAgICAgIGRhdGU6IFl1cC5zdHJpbmcoKS5yZXF1aXJlZCh0KCdzYW1wbGluZ3NfcGFnZS5kYXRlX3JlcXVpcmVkJykpLFxuICAgICAgcG9pbnRfaWQ6IFl1cC5zdHJpbmcoKS5yZXF1aXJlZCh0KCdzYW1wbGluZ3NfcGFnZS5zaXRlX3JlcXVpcmVkJykpLFxuICAgIH0pLFxuICB9KTtcblxuICBjb25zdCB0b2RheSA9IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuXG4gIGNvbnN0IG5ld1NpdGVJbml0aWFsVmFsdWVzOiBOZXdTaXRlSW5wdXRzID0ge1xuICAgIHNhbXBsaW5nOiB7XG4gICAgICBkYXRlOiB0b2RheSxcbiAgICAgIHBvaW50X2lkOiAnJyxcbiAgICAgIHR5cGU6ICdzYW1wbGluZ190eXBlX3JhcGlkJyxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU5ld1NhbXBsaW5nU3VibWl0ID0gKHZhbHVlcykgPT4ge1xuICAgIGNyZWF0ZVNhbXBsaW5nTXV0YXRpb24ubXV0YXRlKHZhbHVlcyk7XG4gIH07XG5cbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlT3BlblBvcHVwQW5hbHl0aWNzID0gKCkgPT4ge1xuICAgIGFuYWx5dGljc1RyYWNrKCdTYW1wbGluZyBPcGVyYXRpb24gTmV3IFNhbXBsaW5nIENsaWNrZWQnLCB7XG4gICAgICB3YXRlcl9hdXRob3JpdHk6IHdhdGVyQXV0aG9yaXR5SWQsXG4gICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBOZXdTYW1wbGluZ0J1dHRvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc01vYmlsZSAmJiAoXG4gICAgICAgICAgPEljb25BY3Rpb25cbiAgICAgICAgICAgIGNhbGxiYWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGhhbmRsZU9wZW5Qb3B1cEFuYWx5dGljcygpO1xuICAgICAgICAgICAgICBzZXRJc09wZW4oIWlzT3Blbik7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdGV4dF9rZXk9eydzYW1wbGluZ3NfcGFnZS5uZXdfYnV0dG9uJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhUGx1c30gLz5cbiAgICAgICAgICA8L0ljb25BY3Rpb24+XG4gICAgICAgICl9XG4gICAgICAgIHtpc01vYmlsZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtTdHlsZS5uZXdTYW1wbGVyQnRuTW9iaWxlfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0SXNPcGVuKCFpc09wZW4pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb250QXdlc29tZUljb24gY2xhc3NOYW1lPXtTdHlsZS5mYVBsdXN9IGljb249e2ZhUGx1c30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3QtaWQ9XCJjcmVhdGUtbmV3LXNhbXBsaW5nXCJcbiAgICAgIGNsYXNzTmFtZT17U3R5bGUubmV3U2FtcGxpbmdBY3Rpb25Ecm9wZG93bn1cbiAgICA+XG4gICAgICA8TmV3U2FtcGxpbmdCdXR0b24gLz5cbiAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICA8TWVudUlucHV0U3R5bGUgaXNPcGVuPXtpc09wZW59PlxuICAgICAgICAgIDxOZXdTYW1wbGluZ1RpdGxlPlxuICAgICAgICAgICAge3QoJ3NhbXBsaW5nc19wYWdlLmFkZF9uZXdfc2FtcGxpbmcnKX1cbiAgICAgICAgICA8L05ld1NhbXBsaW5nVGl0bGU+XG4gICAgICAgICAgPEZvcm1pa1xuICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZU5ld1NhbXBsaW5nU3VibWl0fVxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlcz17bmV3U2l0ZUluaXRpYWxWYWx1ZXN9XG4gICAgICAgICAgICB2YWxpZGF0aW9uU2NoZW1hPXtOZXdTYW1wbGluZ1ZhbGlkYXRpb25TY2hlbWF9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlLFxuICAgICAgICAgICAgICB2YWx1ZXMsXG4gICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgICAgIH0pID0+IChcbiAgICAgICAgICAgICAgPEZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uR3JvdXA+XG4gICAgICAgICAgICAgICAgICA8Rm9ybS5MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge3QoJ3NhbXBsaW5nc19wYWdlLnNhbXBsaW5nc190YWJsZV9jb2xzLnNhbXBsaW5nX2RhdGUnKX1cbiAgICAgICAgICAgICAgICAgIDwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxEYXRlUGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGUuZGF0ZUlucHV0fSAke1xuICAgICAgICAgICAgICAgICAgICAgIGVycm9ycz8uc2FtcGxpbmc/LmRhdGUgJiYgJ2ludmFsaWQnXG4gICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2FtcGxpbmcuZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAodmFsdWVzLnNhbXBsaW5nLmRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKHZhbHVlcy5zYW1wbGluZy5kYXRlKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIHNldEZpZWxkVmFsdWUoJ3NhbXBsaW5nLmRhdGUnLCBkYXRlLnRvRGF0ZVN0cmluZygpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyQ2xhc3NOYW1lPXtTdHlsZS5jYWxlbmRhcn1cbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD17XG4gICAgICAgICAgICAgICAgICAgICAgdXNlckluZm8uZGF0ZV90aW1lX2Zvcm1hdCA9PT0gJ3VzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAnTU1NIGQsIHl5eXknXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdkL01NL3l5eXknXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICAgICAgICAgIHtlcnJvcnM/LnNhbXBsaW5nPy5kYXRlID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1N0eWxlLnZhbGlkYXRpb25FcnJvcn0+XG4gICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuc2FtcGxpbmcuZGF0ZX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgICAgICAgPEZvcm0uTGFiZWw+XG4gICAgICAgICAgICAgICAgICB7dCgnc2FtcGxpbmdzX3BhZ2Uuc2FtcGxpbmdzX3RhYmxlX2NvbHMuc2l0ZScpfVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtTdHlsZS5yZXF1aXJlZH0+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ3NhbXBsaW5nc19wYWdlLnNpdGVfcGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGUuc2l0ZUlucHV0fSAke1xuICAgICAgICAgICAgICAgICAgICBlcnJvcnM/LnNhbXBsaW5nPy5wb2ludF9pZCAmJiBTdHlsZS5pbnZhbGlkQm9yZGVyc1xuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBuYW1lPVwic2FtcGxpbmcucG9pbnRfaWRcIlxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRGaWVsZFZhbHVlKCdzYW1wbGluZy5wb2ludF9pZCcsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lUHJlZml4PXsnZGFzaGJvYXJkLXNlbGVjdCd9XG4gICAgICAgICAgICAgICAgICBvcHRpb25zPXtwb2ludHM/Lm1hcCgocHQ6IFBvaW50UHJvcHMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwdC5wb2ludC5pZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHB0LnBvaW50LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge2Vycm9ycz8uc2FtcGxpbmc/LnBvaW50X2lkICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtTdHlsZS52YWxpZGF0aW9uRXJyb3J9PlxuICAgICAgICAgICAgICAgICAgICB7ZXJyb3JzLnNhbXBsaW5nLnBvaW50X2lkfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIDxNb2JpbGVJbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZS50eXBlSW5wdXR9ICR7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycz8uc2FtcGxpbmc/LnR5cGUgJiYgU3R5bGUuaW52YWxpZEJvcmRlcnNcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgaW5wdXRUaXRsZT17dCgnbGFiX3Jlc3VsdHNfc2NyZWVuLnR5cGUnKX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZXMuc2FtcGxpbmcudHlwZX1cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJzYW1wbGluZy50eXBlXCJcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cInNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICBtYW5kYXRvcnk9e3RydWV9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgICBrZXk9XCJyYXBpZFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic2FtcGxpbmdfdHlwZV9yYXBpZFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dCgnc2FtcGxpbmdfdHlwZXNfbWluaS5zYW1wbGluZ190eXBlX3JhcGlkJyl9XG4gICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PVwiY29tcGxleFwiIHZhbHVlPVwic2FtcGxpbmdfdHlwZV9jb21wbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdzYW1wbGluZ190eXBlc19taW5pLnNhbXBsaW5nX3R5cGVfY29tcGxleCcpfVxuICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT1cImJvdGhcIiB2YWx1ZT1cInNhbXBsaW5nX3R5cGVfYm90aFwiPlxuICAgICAgICAgICAgICAgICAgICB7dCgnc2FtcGxpbmdfdHlwZXNfbWluaS5zYW1wbGluZ190eXBlX2JvdGgnKX1cbiAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvTW9iaWxlSW5wdXQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17U3R5bGUuYnV0dG9uc0NvbnRhaW5lcn0+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldElzT3BlbihmYWxzZSl9IHZhcmlhbnQ9XCJjbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICB7dCgnY2xvc2UnKX1cbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1N0eWxlLmJ1dHRvbkNyZWF0ZX1cbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17dmFyaWFudC5TRUNPTkRBUll9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dCgnc2FtcGxpbmdzX3BhZ2UuY3JlYXRlX2J1dHRvbicpfVxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Gb3JtaWs+XG4gICAgICAgIDwvTWVudUlucHV0U3R5bGU+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgTmV3U2FtcGxpbmdUaXRsZSA9IHN0eWxlZC5wYFxuICBmb250LXdlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250V2VpZ2h0Lnc3MDB9O1xuYDtcblxuY29uc3QgTWVudUlucHV0U3R5bGUgPSBzdHlsZWQuZGl2LmF0dHJzKChwcm9wczogTWVudUlucHV0UHJvcHMpID0+ICh7XG4gIGlzT3BlbjogcHJvcHMuaXNPcGVuLFxufSkpYFxuICBwYWRkaW5nOiAzM3B4IDI4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE2cHg7XG4gIHRvcDogMTQwcHg7XG4gIHotaW5kZXg6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuekluZGV4ZXMubW9kYWx9O1xuICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgd2lkdGg6IDM5MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjF9O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYTZhY2I5O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggI2UzZTNlMztcblxuICAucnRsICYge1xuICAgIHJpZ2h0OiB1bnNldDtcbiAgICBsZWZ0OiAxNnB4O1xuICB9XG5cbiAgKiB7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bywgR2lscm95LCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICB9XG5cbiAgYW5pbWF0aW9uOiB0cmFuc2l0aW9uLWluIDQ0NG1zLCBmYWRlLWluIDQ0NG1zO1xuICBAa2V5ZnJhbWVzIHRyYW5zaXRpb24taW4ge1xuICAgIGZyb20ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMHB4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbiAgfVxuICBAa2V5ZnJhbWVzIGZhZGUtaW4ge1xuICAgIDAlIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAvKiBVc2UgNDgwcHggYXMgbW9iaWxlJ3MgbWF4LXdpZHRoICovXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIHRvcDogYXV0bztcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICB9XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBOZXdTYW1wbGluZ0FjdGlvbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsa0JBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxHQUFBLEdBQUFOLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBRCxzQkFBQSxDQUFBVCxPQUFBO0FBQ0EsSUFB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
|